/* ============================================================
   CUENTA — Login / Registro / Panel de usuario
   ============================================================ */

.account-container {
  max-width: 480px;
  transition: max-width var(--t-fast);
}

body:has(#account-section:not([hidden])) .account-container {
  max-width: 640px;
}

.account-form[hidden],
.account-divider[hidden],
.social-login-buttons[hidden],
.account-switch[hidden] {
  display: none;
}

/* CARD — envuelve login/registro y el panel */
#auth-section,
#account-section {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: var(--sp-7) var(--sp-6);
  box-shadow: var(--shadow-card);
}

.account-divider {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  margin: var(--sp-7) 0;
}

.account-divider::before,
.account-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.account-divider span {
  font-size: var(--text-xs);
  letter-spacing: 1px;
  color: var(--text-ghost);
  white-space: nowrap;
}

.social-login-buttons {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.social-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-primary);
  color: var(--text-primary);
  font-size: var(--text-sm);
  font-weight: 600;
  cursor: pointer;
  box-shadow: none;
  transition: border-color var(--t-fast), transform var(--t-fast);
}

.social-login-btn:hover {
  border-color: var(--border-strong);
  transform: translateY(-1px);
}

.account-switch {
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  display: inline-block;
  width: 100%;
  text-align: center;
  background: none;
  border: none;
  border-radius: 0;
  padding: var(--sp-7) 0 0;
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: none;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}

.account-switch:hover,
.account-switch:focus,
.account-switch:focus-visible,
.account-switch:active {
  color: var(--ignit-red);
  text-decoration-color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.account-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
}

.account-form label {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

.account-form input,
.account-form select {
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--text-sm);
  text-transform: none;
  letter-spacing: normal;
  box-shadow: var(--shadow-inset);
  transition: border-color var(--t-fast);
}

.account-form input:focus,
.account-form select:focus {
  outline: none;
  border-color: var(--ignit-red);
  box-shadow: var(--shadow-inset);
}

.account-form input:-webkit-autofill,
.account-form input:-webkit-autofill:hover,
.account-form input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px var(--bg-primary) inset;
  -webkit-text-fill-color: var(--text-primary);
  transition: background-color 9999s ease-in-out 0s;
}

.account-submit {
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  border: none;
  background: var(--ignit-red);
  color: #ffffff;
  font-weight: 700;
  font-size: var(--text-xs);
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: none;
  transition: background var(--t-fast), transform var(--t-fast);
}

.account-submit:hover {
  background: var(--ignit-red-hov);
  transform: translateY(-1px);
}

.account-error {
  color: var(--ignit-red);
  font-size: var(--text-xs);
  margin: 0;
  min-height: 1em;
}

.account-success {
  color: var(--text-secondary);
  font-size: var(--text-xs);
  margin: 0;
}

.account-form-intro {
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: 1.5;
  margin: 0 0 var(--sp-2);
}

.account-forgot-link {
  width: auto;
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  align-self: flex-end;
  margin-top: calc(var(--sp-2) * -1);
  background: none;
  border: none;
  border-radius: 0;
  padding: 0;
  color: var(--text-muted);
  font-size: var(--text-xs);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}

.account-forgot-link:hover,
.account-forgot-link:focus,
.account-forgot-link:focus-visible,
.account-forgot-link:active {
  color: var(--ignit-red);
  text-decoration-color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.account-forgot-link[hidden] {
  display: none;
}

/* AVISO DE VERIFICACIÓN */
.verify-banner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-2);
  background: var(--ignit-red-12);
  border: 1px solid var(--border-red);
  border-radius: var(--radius-md);
  padding: var(--sp-4) var(--sp-5);
  margin-bottom: var(--sp-7);
}

.verify-banner[hidden] {
  display: none;
}

.verify-banner span {
  color: var(--text-secondary);
  font-size: var(--text-xs);
  line-height: 1.5;
}

.verify-banner button {
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 0;
  color: var(--ignit-red);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-decoration: underline;
  cursor: pointer;
  box-shadow: none;
  outline: none;
}

/* PANEL */
.account-header {
  display: flex;
  align-items: center;
  gap: var(--sp-4);
  margin-bottom: var(--sp-6);
}

.account-avatar {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background: var(--ignit-red-12);
  border: 1px solid var(--border-red);
  color: var(--ignit-red);
  font-weight: 700;
  font-size: var(--text-base);
  flex-shrink: 0;
  /* Halo centrado detrás de la foto — sin offset, para que quede
     simétrico alrededor del círculo en vez de desplazado. */
  box-shadow: 0 0 20px 3px var(--ignit-red-25);
}

.account-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-full);
  object-fit: cover;
}

.account-avatar-img[hidden],
#account-avatar-initial[hidden] {
  display: none;
}

/* Botón de edición — overlay circular en la esquina del avatar. La regla
   global `button{margin-top;padding;width:100%}` rompería este layout
   absoluto si no se sobreescribe explícitamente. */
.account-avatar-edit {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 18px;
  height: 18px;
  margin-top: 0;
  padding: 0;
  border-radius: var(--radius-full);
  background: var(--ignit-red);
  border: 2px solid var(--bg-primary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  /* Sin esto hereda el glow rojo desplazado del button{} global — se veía
     como un halo suelto junto al botón en vez del halo centrado del avatar. */
  box-shadow: none;
}

.account-avatar-edit:hover {
  background: var(--ignit-red-hov);
}

.account-header-text {
  flex: 1;
  min-width: 0;
}

.account-header-text .account-forgot-link {
  align-self: auto;
  margin-top: var(--sp-1);
}

.account-greeting {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.account-greeting-sub {
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin: 2px 0 0;
}

.account-logout {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius-full);
  color: var(--text-muted);
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  box-shadow: none;
  outline: none;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.account-logout:hover,
.account-logout:focus-visible,
.account-logout:active {
  border-color: var(--ignit-red);
  color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.account-block {
  padding-top: var(--sp-6);
  margin-top: var(--sp-6);
  border-top: 1px solid var(--border-subtle);
}

.account-block:first-of-type {
  padding-top: 0;
  margin-top: 0;
  border-top: none;
}

.account-block h2 {
  font-size: var(--text-xs);
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--ignit-red);
  font-weight: 600;
  margin-bottom: 0;
}

/* Cada categoría es plegable — cerrada por defecto para que el panel no
   se vea todo abierto de golpe. El botón resetea los estilos globales de
   button (que forzarían centrado, ancho 100% "correcto" aquí, pero
   margin-top/padding habría que anularlos igualmente para controlar el
   espaciado nosotros). */
.account-block-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  box-shadow: none;
  text-align: left;
  cursor: pointer;
}

.account-block-toggle:hover {
  transform: none;
  box-shadow: none;
}

.account-block-toggle h2 {
  margin-bottom: 0;
}

.account-block-chevron {
  flex-shrink: 0;
  margin-left: var(--sp-4);
  color: var(--text-muted);
  transition: transform var(--t-fast), color var(--t-fast);
}

.account-block-toggle:hover .account-block-chevron {
  color: var(--ignit-red);
}

.account-block-toggle[aria-expanded="true"] .account-block-chevron {
  transform: rotate(180deg);
}

.account-block-content {
  margin-top: var(--sp-5);
}

.account-block-content[hidden] {
  display: none;
}

.account-empty {
  color: var(--text-muted);
  font-size: var(--text-sm);
}

/* PEDIDOS */
.orders-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
}

.order-card {
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--sp-5);
  transition: border-color var(--t-fast);
}

.order-card:hover {
  border-color: var(--border-strong);
}

.order-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-3);
}

.order-number {
  font-weight: 700;
  color: var(--text-primary);
  font-size: var(--text-sm);
}

.order-date {
  color: var(--text-muted);
  font-size: var(--text-xs);
}

.order-items {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  margin-bottom: var(--sp-3);
}

.order-item-row {
  display: flex;
  justify-content: space-between;
  font-size: var(--text-xs);
  color: var(--text-secondary);
}

.order-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: var(--sp-3);
  border-top: 1px solid var(--border-subtle);
}

.order-status {
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

.order-status.status-pending {
  color: var(--text-secondary);
}

.order-status.status-confirmed {
  color: var(--text-primary);
}

.order-status.status-shipped {
  color: var(--ignit-red);
}

.order-status.status-cancelled {
  color: var(--text-muted);
  text-decoration: line-through;
}

.order-status.status-refunded {
  color: var(--text-muted);
  text-decoration: line-through;
}

.order-detail-toggle {
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  display: block;
  width: 100%;
  margin-top: var(--sp-3);
  padding-top: var(--sp-3);
  border: none;
  border-top: 1px solid var(--border-subtle);
  background: none;
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: color var(--t-fast);
}

.order-detail-toggle::after {
  content: " ▾";
}

.order-detail-toggle.open::after {
  content: " ▴";
}

.order-detail-toggle:hover,
.order-detail-toggle:focus,
.order-detail-toggle:focus-visible {
  color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.order-detail {
  margin-top: var(--sp-4);
}

.order-detail[hidden] {
  display: none;
}

.order-detail-label {
  color: var(--text-muted);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 600;
  margin: 0 0 var(--sp-2);
}

.order-detail-label:not(:first-child) {
  margin-top: var(--sp-4);
}

.order-detail-address,
.order-detail-tracking {
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: 0;
}

.order-total {
  font-weight: 700;
  color: var(--text-primary);
  font-size: var(--text-sm);
}

/* DIRECCIONES */
.addresses-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-4);
  margin-bottom: var(--sp-5);
}

.address-card {
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--sp-5);
}

.address-card-label {
  color: var(--ignit-red);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 700;
  margin: 0 0 var(--sp-2);
}

.address-card-text {
  color: var(--text-secondary);
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: 0 0 var(--sp-4);
}

.address-card-actions {
  display: flex;
  gap: var(--sp-3);
}

.address-card-actions button {
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  width: auto;
  margin-top: 0;
  background: none;
  border: none;
  padding: 0;
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-decoration: underline;
  text-decoration-color: transparent;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: color var(--t-fast), text-decoration-color var(--t-fast);
}

.address-card-actions button:hover,
.address-card-actions button:focus-visible {
  color: var(--ignit-red);
  text-decoration-color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.address-card-actions .address-delete-btn:hover,
.address-card-actions .address-delete-btn:focus-visible {
  color: var(--ignit-red);
}

#address-form[hidden] {
  display: none;
}

#address-form {
  margin-top: var(--sp-5);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-subtle);
}

.account-form-actions {
  display: flex;
  gap: var(--sp-3);
}

.account-form-actions button {
  flex: 1;
  margin-bottom: 0;
}

/* PREFERENCIAS */
.account-field {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
  margin-bottom: var(--sp-4);
}

.account-field input {
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: inherit;
  font-size: var(--text-sm);
  text-transform: none;
  letter-spacing: normal;
  box-shadow: var(--shadow-inset);
}

.account-field input:focus {
  outline: none;
  border-color: var(--ignit-red);
}

.account-save {
  display: inline-block;
  width: auto;
  appearance: none;
  -webkit-appearance: none;
  padding: var(--sp-3) var(--sp-6);
  border-radius: var(--radius-full);
  border: 1px solid var(--border-strong);
  background: none;
  color: var(--text-primary);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
  text-align: center;
  font-weight: 700;
  cursor: pointer;
  margin-top: 0;
  margin-bottom: var(--sp-6);
  box-shadow: none;
  outline: none;
  transition: border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
}

.account-save:hover,
.account-save:focus-visible {
  border-color: var(--ignit-red);
  color: var(--ignit-red);
  transform: translateY(-1px);
  box-shadow: none;
  outline: none;
}

.marketing-toggle {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  cursor: pointer;
}

.marketing-toggle input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
  border-radius: var(--radius-full);
  background: var(--bg-primary);
  border: 1px solid var(--border);
  cursor: pointer;
  transition: background var(--t-fast), border-color var(--t-fast);
}

.marketing-toggle input[type="checkbox"]::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--text-muted);
  transition: transform var(--t-fast), background var(--t-fast);
}

.marketing-toggle input[type="checkbox"]:checked {
  background: var(--ignit-red-25);
  border-color: var(--ignit-red);
}

.marketing-toggle input[type="checkbox"]:checked::before {
  transform: translateX(16px);
  background: var(--ignit-red);
}

.marketing-toggle span {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.4;
}

/* ZONA DE PELIGRO */
.account-danger-zone h2 {
  color: var(--ignit-red);
}

.account-danger-desc {
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: 0 0 var(--sp-5);
}

.account-danger-btn {
  appearance: none;
  -webkit-appearance: none;
  -webkit-tap-highlight-color: transparent;
  padding: var(--sp-3) var(--sp-6);
  border-radius: var(--radius-full);
  border: 1px solid var(--border-red);
  background: none;
  color: var(--ignit-red);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: background var(--t-fast), color var(--t-fast), transform var(--t-fast);
}

.account-danger-btn:hover,
.account-danger-btn:focus-visible {
  background: var(--ignit-red);
  color: var(--text-primary);
  transform: translateY(-1px);
  box-shadow: none;
  outline: none;
}

#delete-account-confirm[hidden] {
  display: none;
}

#delete-account-confirm {
  margin-top: var(--sp-5);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-subtle);
}

.account-danger-actions {
  display: flex;
  gap: var(--sp-3);
}

.account-danger-actions .account-save {
  margin-bottom: 0;
}

.account-danger-actions .account-danger-btn {
  flex: 1;
}

/* ============================================================
   1. INFORMACIÓN DE CUENTA
   ============================================================ */

.account-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-4) var(--sp-5);
  margin-bottom: var(--sp-5);
}

.account-info-item {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  min-width: 0;
}

.account-info-item span {
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

.account-info-item strong {
  color: var(--text-primary);
  font-size: var(--text-sm);
  font-weight: 600;
  overflow-wrap: break-word;
}

.account-info-item strong.account-verified-yes {
  color: var(--text-secondary);
}

.account-info-item strong.account-verified-no {
  color: var(--ignit-red);
}

#edit-info-form[hidden] {
  display: none;
}

#edit-info-form {
  margin-top: var(--sp-5);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--border-subtle);
}

/* ============================================================
   2. MIS PEDIDOS — extras
   ============================================================ */

.order-card-meta {
  color: var(--text-muted);
  font-size: var(--text-xs);
  margin-bottom: var(--sp-3);
}

.order-breakdown-row {
  color: var(--text-muted) !important;
}

.order-breakdown-total {
  color: var(--text-primary) !important;
  font-weight: 700;
  padding-top: var(--sp-2);
  margin-top: var(--sp-1);
  border-top: 1px solid var(--border-subtle);
}

.order-track-btn {
  display: inline-block;
  margin-top: var(--sp-3);
  margin-bottom: 0;
  padding: var(--sp-2) var(--sp-5);
  font-size: var(--text-xs);
}

/* ============================================================
   3. FAVORITOS / WISHLIST
   ============================================================ */

.wishlist-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--sp-4);
}

.wishlist-card {
  position: relative;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: border-color var(--t-fast);
}

.wishlist-card:hover {
  border-color: var(--border-strong);
}

.wishlist-card-link {
  display: block;
  text-decoration: none;
}

.wishlist-card-link-name {
  display: block;
  text-decoration: none;
  color: inherit;
}

.wishlist-card-link-name:hover .wishlist-card-name {
  color: var(--ignit-red);
}

.wishlist-card-img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  background: var(--bg-card-alt);
  transition: transform var(--t-fast);
}

.wishlist-card-link:hover .wishlist-card-img {
  transform: scale(1.03);
}

.wishlist-card-img-empty {
  background: var(--bg-card-alt);
}

.wishlist-card-info {
  padding: var(--sp-3);
}

.wishlist-card-name {
  color: var(--text-primary);
  font-size: var(--text-sm);
  font-weight: 600;
  margin: 0 0 4px;
  transition: color var(--t-fast);
}

.wishlist-card-price {
  color: var(--text-secondary);
  font-size: var(--text-sm);
  margin: 0;
}

.wishlist-card-status {
  color: var(--text-muted);
  font-size: var(--text-xs);
  margin: 0;
}

.wishlist-remove-btn {
  position: absolute;
  top: var(--sp-2);
  right: var(--sp-2);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  margin: 0;
  border-radius: var(--radius-full);
  border: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.55);
  color: var(--text-primary);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.wishlist-remove-btn:hover,
.wishlist-remove-btn:focus-visible {
  border-color: var(--ignit-red);
  color: var(--ignit-red);
  box-shadow: none;
  outline: none;
}

.account-empty-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--sp-4);
}

/* Gotcha conocido del proyecto: cualquier elemento cuyo atributo "hidden"
   se alterne por JS necesita este override si su clase fija "display" sin
   condición — si no, [hidden] pierde el empate de especificidad contra
   .account-empty-block y el bloque se queda visible aunque hidden=true
   (bug real: los favoritos vacíos se veían superpuestos al grid con items). */
.account-empty-block[hidden] {
  display: none;
}

.account-empty-block .account-save {
  margin-bottom: 0;
}

/* ============================================================
   4. DIRECCIONES — extras
   ============================================================ */

.address-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  margin-bottom: var(--sp-2);
}

.address-card-top .address-card-label {
  margin: 0;
}

.address-default-badge {
  flex-shrink: 0;
  background: var(--ignit-red-12);
  border: 1px solid var(--border-red);
  color: var(--ignit-red);
  font-size: 10px;
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 700;
  padding: 3px var(--sp-3);
  border-radius: var(--radius-full);
}

.address-card-default {
  border-color: var(--border-red);
}

.address-card-actions {
  flex-wrap: wrap;
}

/* ============================================================
   5. PREFERENCIAS — extras
   ============================================================ */

.preference-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--border-subtle);
}

.preference-row span {
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
}

.preference-row strong {
  color: var(--text-secondary);
  font-size: var(--text-sm);
  font-weight: 600;
}

.preference-comms {
  margin-top: var(--sp-5);
}

.preference-comms-label {
  color: var(--ignit-red);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 700;
  margin: 0 0 var(--sp-3);
}

/* ============================================================
   6. SEGURIDAD
   ============================================================ */

.password-input-wrap {
  display: flex;
  align-items: stretch;
  gap: var(--sp-2);
}

.password-input-wrap input {
  flex: 1;
  min-width: 0;
}

.password-toggle {
  flex-shrink: 0;
  flex-grow: 0;
  width: auto;
  white-space: nowrap;
  appearance: none;
  -webkit-appearance: none;
  padding: 0 var(--sp-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-primary);
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  margin-top: 0;
  box-shadow: none;
  outline: none;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.password-toggle:hover,
.password-toggle:focus-visible {
  border-color: var(--border-strong);
  color: var(--text-primary);
  box-shadow: none;
  outline: none;
}

.account-security-logout {
  display: inline-block;
  width: auto;
  appearance: none;
  -webkit-appearance: none;
  margin-top: var(--sp-5);
  margin-left: var(--sp-4);
  margin-bottom: 0;
  padding: var(--sp-3) var(--sp-6);
  border-radius: var(--radius-full);
  border: 1px solid var(--border);
  background: none;
  color: var(--text-muted);
  font-size: var(--text-xs);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  box-shadow: none;
  outline: none;
  transition: border-color var(--t-fast), color var(--t-fast);
}

.account-security-logout:hover,
.account-security-logout:focus-visible {
  border-color: var(--border-strong);
  color: var(--text-primary);
  box-shadow: none;
  outline: none;
}

/* ============================================================
   8. ZONA DE PELIGRO — modal
   ============================================================ */

.danger-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-popup);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.7);
  padding: var(--sp-5);
}

.danger-modal-overlay[hidden] {
  display: none;
}

.danger-modal {
  width: 100%;
  max-width: 420px;
  background: var(--bg-card);
  border: 1px solid var(--border-red);
  border-radius: var(--radius-xl);
  padding: var(--sp-7) var(--sp-6);
  box-shadow: var(--shadow-card);
}

.danger-modal h3 {
  color: var(--text-primary);
  font-size: var(--text-lg);
  font-weight: 800;
  margin: 0 0 var(--sp-4);
}

.danger-modal p {
  color: var(--text-muted);
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: 0 0 var(--sp-5);
}

.danger-modal p strong {
  color: var(--ignit-red);
}

.danger-modal .account-field {
  margin-bottom: var(--sp-4);
}

.danger-modal-actions {
  display: flex;
  gap: var(--sp-3);
  margin-top: var(--sp-2);
}

.danger-modal-actions .account-save,
.danger-modal-actions .account-danger-btn {
  flex: 1;
  margin-bottom: 0;
  text-align: center;
}

@media (max-width: 500px) {
  #auth-section,
  #account-section {
    padding: var(--sp-6) var(--sp-4);
  }

  .account-info-grid {
    grid-template-columns: 1fr;
  }

  .wishlist-list {
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  }

  .password-input-wrap {
    flex-wrap: wrap;
  }

  .password-toggle {
    padding: var(--sp-2) var(--sp-4);
  }

  .account-security-logout {
    margin-left: 0;
    display: block;
    width: 100%;
    text-align: center;
    margin-top: var(--sp-3);
  }

  .danger-modal {
    padding: var(--sp-6) var(--sp-5);
  }

  .danger-modal-actions {
    flex-direction: column;
  }
}

/* ============================================================
   🏅 ATLETA — uso del código, saldo y retiradas
   ============================================================ */
.ath-panel { display: grid; gap: 18px; margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(244,242,237,.1); }
.ath-panel[hidden] { display: none; }
.ath-stats, .ath-balance { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ath-stats > div, .ath-balance > div { display: grid; gap: 6px; align-content: start; padding: 14px 16px; background: rgba(255,255,255,.04); box-shadow: inset 0 0 0 1px rgba(244,242,237,.1); min-width: 0; }
.ath-stats span, .ath-balance span { font: 700 9px/1.3 'Montserrat', sans-serif; letter-spacing: 2.5px; text-transform: uppercase; opacity: .65; }
.ath-stats b, .ath-balance b { font: 900 1.7rem/1 'Big Shoulders Display', Impact, sans-serif; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.ath-stats small, .ath-balance small { font-size: 11px; line-height: 1.4; opacity: .65; }
.ath-balance .ath-bal-main { background: rgba(193,18,31,.14); box-shadow: inset 0 0 0 1px rgba(193,18,31,.45); }
.ath-balance .ath-bal-main b { font-size: 2.2rem; color: #fff; }
.ath-form { display: grid; gap: 12px; padding: 18px; background: rgba(255,255,255,.03); box-shadow: inset 0 0 0 1px rgba(244,242,237,.1); }
.ath-form-t { margin: 0; font: 800 10px/1 'Montserrat', sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #ff4d57; }
.ath-methods { display: flex; flex-wrap: wrap; gap: 8px; }
.ath-methods label { cursor: pointer; }
.ath-methods input { position: absolute; opacity: 0; pointer-events: none; }
.ath-methods span { display: inline-flex; align-items: center; gap: 6px; padding: 11px 14px; font: 700 11px/1 'Montserrat', sans-serif; letter-spacing: 1.5px; text-transform: uppercase; box-shadow: inset 0 0 0 1px rgba(244,242,237,.22); transition: background .2s, box-shadow .2s; }
.ath-methods em { font-style: normal; color: #ff4d57; }
.ath-methods input:checked + span { background: #C1121F; box-shadow: none; }
.ath-methods input:checked + span em { color: #fff; }
.ath-methods input:focus-visible + span { outline: 2px solid #fff; outline-offset: 2px; }
.ath-fields { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.ath-field { display: grid; gap: 6px; }
.ath-field[hidden] { display: none; }
.ath-field span { font: 700 9px/1 'Montserrat', sans-serif; letter-spacing: 2.5px; text-transform: uppercase; opacity: .65; }
.ath-hint { margin: 0; font-size: 12px; line-height: 1.5; opacity: .75; }
.ath-success { padding: 12px 14px; font-size: 13px; background: rgba(46,160,90,.12); box-shadow: inset 0 0 0 1px rgba(46,160,90,.45); }
.ath-success[hidden] { display: none; }
.ath-success p { margin: 0 0 8px; }
.ath-code { display: inline-block; margin-top: 6px; padding: 6px 8px; font: 800 12px/1 'Montserrat', monospace; letter-spacing: 2px; background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 1px rgba(244,242,237,.25); user-select: all; }
.ath-code--big { font-size: 18px; padding: 10px 14px; }
.ath-form .account-save:disabled { opacity: .45; cursor: not-allowed; }
.ath-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; }
.ath-list li { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid rgba(244,242,237,.08); }
.ath-list li > div { display: grid; gap: 3px; min-width: 0; }
.ath-list b { font-size: 13px; }
.ath-list small { font-size: 11px; opacity: .6; overflow-wrap: anywhere; }
.ath-li-r { justify-items: end; text-align: right; flex: none; }
.ath-st { font: 800 9px/1 'Montserrat', sans-serif; letter-spacing: 1.5px; text-transform: uppercase; padding: 4px 6px; box-shadow: inset 0 0 0 1px rgba(244,242,237,.22); }
.ath-st--paid { color: #6fd39a; box-shadow: inset 0 0 0 1px rgba(111,211,154,.45); }
.ath-st--requested { color: #f0c36b; box-shadow: inset 0 0 0 1px rgba(240,195,107,.45); }
.ath-st--rejected { color: #ff6b73; box-shadow: inset 0 0 0 1px rgba(255,107,115,.45); }
.ath-orders summary { cursor: pointer; font: 800 10px/1 'Montserrat', sans-serif; letter-spacing: 3px; text-transform: uppercase; color: #ff4d57; padding: 6px 0; }
@media (max-width: 640px) {
  .ath-stats, .ath-balance { grid-template-columns: minmax(0, 1fr); }
  .ath-stats > div, .ath-balance > div { grid-template-columns: 1fr auto; align-items: baseline; }
  .ath-stats small, .ath-balance small { grid-column: 1 / -1; }
}
.ath-field input { width: 100%; padding: var(--sp-4); border-radius: var(--radius-md); border: 1px solid var(--border); background: var(--bg-primary); color: var(--text-primary); font-family: inherit; font-size: var(--text-sm); box-shadow: var(--shadow-inset); transition: border-color var(--t-fast); }
.ath-field input:focus { outline: none; border-color: var(--ignit-red); }
.ath-field input::-webkit-outer-spin-button, .ath-field input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ath-field input[type=number] { -moz-appearance: textfield; }
.account-athlete-code--link b { font: 700 .95rem/1.35 'Montserrat', sans-serif; letter-spacing: 0; word-break: break-all; }
