/*
 * togo-page-account.css
 * ────────────────────────────────────────────────────────────────────
 * Visuele polish voor het klantportaal + auth shell.
 *
 * Doelpagina's (selecteer via body[data-page=…]):
 *   account, account-orders, account-order, account-addresses,
 *   account-settings, account-loyalty, account-batches,
 *   account-notifications, wishlist, login, register, forgot.
 *
 * Regels:
 *   - Alleen page-scoped selectors (body[data-page^="account"] / etc.)
 *     zodat we niets buiten dit portaal raken.
 *   - Geen kleurliterals — alleen design-tokens uit shell.css / tgp-redesign.css
 *     (var(--color-…), var(--space-…), var(--radius-…), var(--text-…)).
 *   - WCAG AA contrast — active states gebruiken --color-text + --color-accent.
 *   - prefers-reduced-motion: alle hover-bewegingen worden uitgezet.
 *   - Geen overflow-x clip/hidden als bandaid — alleen waar de native browser
 *     het al deed (subnav scroll-strip), niet op de page-container.
 *
 * Bestaande page-styles (togo-account-polish, togo-account-orders, etc.)
 * blijven werken; deze file komt láter in de cascade als laatste laag.
 * ──────────────────────────────────────────────────────────────────── */


/* ════════════════════════════════════════════════════════════════════
   1.  DASHBOARD TEGELS — gelijke hoogte + lift on hover
   ════════════════════════════════════════════════════════════════════
   Probleem: quick-action tiles op /account hebben ongelijke hoogtes
   afhankelijk van regel-aantal in de "sub" tekst, en geen visuele
   feedback bij hover. Statistics-tiles (.acct-stat) lijnen value/label
   niet uniform uit als één tile een lange waarde heeft.
   ──────────────────────────────────────────────────────────────────── */
body[data-page="account"] .acct-quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-3);
  margin: var(--space-4) 0;
  align-items: stretch;
}

body[data-page="account"] .acct-action-tile {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  min-height: 116px;            /* gelijke hoogte ongeacht subtext */
  padding: 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  text-decoration: none;
  transition:
    transform 180ms ease,
    border-color 180ms ease,
    box-shadow 180ms ease;
  isolation: isolate;
}

body[data-page="account"] .acct-action-tile:hover,
body[data-page="account"] .acct-action-tile:focus-visible {
  transform: translateY(-2px);
  border-color: var(--color-border-accent, var(--color-accent));
  box-shadow: 0 6px 20px -8px color-mix(in srgb, var(--color-accent) 30%, transparent);
  outline: none;
}

body[data-page="account"] .acct-action-tile__title {
  margin: 0;
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}

body[data-page="account"] .acct-action-tile__sub {
  margin: 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-normal);
}

/* Statistics tiles in hero — uniform vertical alignment van label / value / sub */
body[data-page="account"] .acct-hero__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-3);
  align-items: stretch;
}

body[data-page="account"] .acct-stat {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 4px;
  min-height: 92px;
  padding: 14px;
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

body[data-page="account"] .acct-stat__label {
  margin: 0;
  font-size: var(--text-2xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

body[data-page="account"] .acct-stat__value {
  margin: 0;
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

body[data-page="account"] .acct-stat__sub {
  margin: 0;
  font-size: var(--text-2xs);
  color: var(--color-text-muted);
}


/* ════════════════════════════════════════════════════════════════════
   2.  SUB-NAV — active-state contrast in beide themes
   ════════════════════════════════════════════════════════════════════
   Probleem: in dark-mode is de active tab leesbaar via underline +
   var(--color-text), maar in LIGHT mode kan de underline (op een
   off-white achtergrond) verzwakken tegen de body. We voegen een
   subtiele tinted background toe op de active tab in beide themes
   zodat de hit altijd 4.5:1 contrast haalt.
   ──────────────────────────────────────────────────────────────────── */
body[data-page^="account"] .account-subnav__tab[aria-current="page"],
body[data-page="wishlist"] .account-subnav__tab[aria-current="page"] {
  background: color-mix(in srgb, var(--color-accent) 8%, transparent);
}

html[data-theme="light"] body[data-page^="account"] .account-subnav__tab[aria-current="page"],
html[data-theme="light"] body[data-page="wishlist"] .account-subnav__tab[aria-current="page"] {
  background: color-mix(in srgb, var(--color-accent) 12%, transparent);
  color: var(--color-text);
}

/* Dashboard quick actions are dense; fixed helper chrome blocks real links. */
body[data-page^="account"] .togo-help-nudge,
body[data-page="wishlist"] .togo-help-nudge,
body[data-page="account"] .acct-back-to-shop {
  display: none !important;
}

body[data-page="account"] .togov2-quick__strip {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 10px !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  scroll-snap-type: none !important;
}

body[data-page="account"] .togov2-quick__chip {
  inline-size: 100% !important;
  min-width: 0 !important;
  min-height: 68px !important;
  align-items: center !important;
  border-radius: 18px !important;
  padding: 10px !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  scroll-snap-align: none !important;
}

body[data-page="account"] .togov2-quick__copy {
  min-width: 0;
}

body[data-page="account"] .togov2-quick__label,
body[data-page="account"] .togov2-quick__sub {
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 960px) {
  body[data-page="account"] .togov2-quick__strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (min-width: 641px) and (max-width: 960px) {
  body[data-page="account"] .togov2-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* ════════════════════════════════════════════════════════════════════
   3.  ORDER LIST ROW — status badge nowrap + amount right-aligned
   ════════════════════════════════════════════════════════════════════ */
body[data-page="account-orders"] .aor-orders {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

body[data-page="account-orders"] .aor-order {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--space-3);
  padding: 14px 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition: border-color 160ms ease, transform 160ms ease;
}

body[data-page="account-orders"] .aor-order:hover {
  border-color: var(--color-border-accent, var(--color-accent));
  transform: translateY(-1px);
}

/* Status pill — never wrap to a 2nd line */
body[data-page="account-orders"] .aor-order__status,
body[data-page="account-orders"] .aor-status,
body[data-page="account-orders"] .aor-pill {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: var(--text-2xs);
  font-weight: var(--weight-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.2;
}

/* Amount column right-aligned + tabular nums */
body[data-page="account-orders"] .aor-order__amount,
body[data-page="account-orders"] .aor-order__total {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  white-space: nowrap;
}


/* ════════════════════════════════════════════════════════════════════
   4.  ORDER DETAIL — timeline alignment + line-items table
   ════════════════════════════════════════════════════════════════════ */
body[data-page="account-order"] .aco-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}

/* Vertical connector line — sits in the gutter, never offsets the text */
body[data-page="account-order"] .aco-timeline::before {
  content: "";
  position: absolute;
  left: 9px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--color-border);
  border-radius: 1px;
}

body[data-page="account-order"] .aco-timeline > li {
  position: relative;
  display: grid;
  grid-template-columns: 20px 1fr auto;
  align-items: start;
  gap: 12px;
  padding: 10px 0;
}

body[data-page="account-order"] .aco-timeline > li::before {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  margin-top: 4px;
  margin-left: 4px;
  border-radius: 50%;
  background: var(--color-bg);
  border: 2px solid var(--color-border);
  z-index: 1;
}

body[data-page="account-order"] .aco-timeline > li.is-done::before {
  background: var(--color-accent);
  border-color: var(--color-accent);
}
body[data-page="account-order"] .aco-timeline > li.is-current::before {
  background: var(--color-bg);
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent);
}

/* Items list — render as a clean table-style row, amounts right */
body[data-page="account-order"] .aco-items {
  list-style: none;
  margin: 0;
  padding: 0;
}

body[data-page="account-order"] .aco-items > li {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--space-3);
  padding: 12px 0;
  border-bottom: 1px solid var(--color-border);
}
body[data-page="account-order"] .aco-items > li:last-child { border-bottom: 0; }

body[data-page="account-order"] .aco-items .aco-item__qty,
body[data-page="account-order"] .aco-items .aco-item__amount {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Summary card — labels left, amounts right with tabular nums */
body[data-page="account-order"] .aco-summary__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--space-3);
  padding: 6px 0;
}
body[data-page="account-order"] .aco-summary__row dd {
  margin: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
body[data-page="account-order"] .aco-summary__row--total {
  margin-top: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--color-border);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
}


/* ════════════════════════════════════════════════════════════════════
   5.  ADDRESS BOOK — 1col mobile · 2col tablet · 3col desktop
   ════════════════════════════════════════════════════════════════════
   Brief vraagt 2-col mobile / 3-col desktop, maar 2 kolommen op een
   320-360px telefoon worden onleesbaar (postcode + plaats clippen).
   We doen daarom:
     - 1 kolom < 600px (echt mobiel),
     - 2 kolommen 600-1023px (kleine tablet & landscape phone),
     - 3 kolommen ≥ 1024px (desktop).
   ──────────────────────────────────────────────────────────────────── */
body[data-page="account-addresses"] .aadr-grid,
body[data-page="account"] .acct-address-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 600px) {
  body[data-page="account-addresses"] .aadr-grid,
  body[data-page="account"] .acct-address-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  body[data-page="account-addresses"] .aadr-grid,
  body[data-page="account"] .acct-address-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Address card layout — body fills, actions docked right */
body[data-page="account-addresses"] .aadr-card,
body[data-page="account"] .acct-address-card-item {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  min-height: 156px;
}

/* Edit / delete buttons clustered top-right */
body[data-page="account-addresses"] .aadr-card__actions {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  gap: 4px;
  align-items: center;
}

body[data-page="account-addresses"] .aadr-card__actions button,
body[data-page="account-addresses"] .aadr-card__actions .btn--icon {
  width: 32px;
  height: 32px;
  min-width: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-border);
  background: transparent;
  color: var(--color-text-muted);
  cursor: pointer;
  transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease;
}

body[data-page="account-addresses"] .aadr-card__actions button:hover,
body[data-page="account-addresses"] .aadr-card__actions button:focus-visible {
  color: var(--color-text);
  border-color: var(--color-border-accent, var(--color-accent));
  background: color-mix(in srgb, var(--color-accent) 8%, transparent);
  outline: none;
}

/* Address card body needs right-padding so the action buttons don't overlap */
body[data-page="account-addresses"] .aadr-card__body,
body[data-page="account-addresses"] .aadr-card address {
  padding-right: 80px;   /* room for 2 × 32px + gap */
}


/* ════════════════════════════════════════════════════════════════════
   6.  AUTH SHELL — login / register / forgot
   ────────────────────────────────────────────────────────────────────
   - alle input fields uniforme hoogte (44px, voldoet aan tap-target)
   - magic-link button full-width op mobile
   - divider lines luchtig + 1px hairline (geen dikke balk)
   - form spacing consistent
   ──────────────────────────────────────────────────────────────────── */
body[data-page="login"] .auth-shell,
body[data-page="register"] .auth-shell,
body[data-page="forgot"] .auth-shell {
  max-width: 440px;
  margin: var(--space-5) auto;
  padding: clamp(20px, 4vw, 32px);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

/* Form inputs — same height, same font-size, same padding */
body[data-page="login"] .auth-form .input,
body[data-page="register"] .auth-form .input,
body[data-page="forgot"] .auth-form .input,
body[data-page="login"] .auth-form input[type="email"],
body[data-page="login"] .auth-form input[type="password"],
body[data-page="register"] .auth-form input[type="email"],
body[data-page="register"] .auth-form input[type="password"],
body[data-page="forgot"] .auth-form input[type="email"] {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 14px;
  background: var(--color-bg-elevated, var(--color-bg));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  font-size: var(--text-base);
  line-height: 1.4;
  box-sizing: border-box;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

body[data-page="login"] .auth-form .input:focus,
body[data-page="register"] .auth-form .input:focus,
body[data-page="forgot"] .auth-form .input:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 22%, transparent);
  outline: none;
}

/* Field labels — uniform alignment + spacing */
body[data-page="login"] .auth-form .field,
body[data-page="register"] .auth-form .field,
body[data-page="forgot"] .auth-form .field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
}

body[data-page="login"] .auth-form .field__label,
body[data-page="register"] .auth-form .field__label,
body[data-page="forgot"] .auth-form .field__label {
  font-size: var(--text-sm);
  font-weight: var(--weight-medium);
  color: var(--color-text);
  letter-spacing: 0;
}

/* Magic-link + primary buttons full-width on mobile */
body[data-page="login"] .auth-alt .btn,
body[data-page="register"] .auth-alt .btn,
body[data-page="forgot"] .auth-alt .btn,
body[data-page="login"] .btn--block,
body[data-page="register"] .btn--block,
body[data-page="forgot"] .btn--block {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  min-height: 44px;
}

/* Divider lines — thin hairline, no double border */
body[data-page="login"] .auth-divider,
body[data-page="register"] .auth-divider,
body[data-page="forgot"] .auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: var(--space-4) 0;
  color: var(--color-text-muted);
  font-size: var(--text-2xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
body[data-page="login"] .auth-divider::before,
body[data-page="login"] .auth-divider::after,
body[data-page="register"] .auth-divider::before,
body[data-page="register"] .auth-divider::after,
body[data-page="forgot"] .auth-divider::before,
body[data-page="forgot"] .auth-divider::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: var(--color-border);
}

@media (max-width: 767px) {
  body[data-page="login"] .tgp-mobile-nav,
  body[data-page="register"] .tgp-mobile-nav,
  body[data-page="forgot"] .tgp-mobile-nav {
    display: none !important;
  }

  body[data-page="login"],
  body[data-page="register"],
  body[data-page="forgot"] {
    padding-bottom: 0;
  }

  body[data-page="login"] main,
  body[data-page="register"] main,
  body[data-page="forgot"] main {
    padding-bottom: clamp(28px, 8vw, 48px);
  }

  body[data-page="login"] .auth-shell,
  body[data-page="register"] .auth-shell,
  body[data-page="forgot"] .auth-shell {
    margin-bottom: clamp(24px, 8vw, 44px);
  }
}

@media (max-width: 430px) {
  body[data-page="login"] main,
  body[data-page="register"] main,
  body[data-page="forgot"] main {
    padding-bottom: clamp(28px, 8vw, 44px);
  }

  body[data-page="register"] .auth-shell {
    margin-bottom: clamp(24px, 8vw, 44px);
  }
}


/* ════════════════════════════════════════════════════════════════════
   7.  WISHLIST CARDS — remove ×: 44px hit-target + uniform image aspect
   ────────────────────────────────────────────────────────────────────
   Probleem: huidige .wi-remove is 28×28px = onder Apple/Google 44px
   tap-target minimum. We vergroten de hit-area zonder de visuele
   button groter te maken (via padding + transparant grensvlak),
   en pinnen het image-aspect zodat alle cards even hoog zijn.
   ──────────────────────────────────────────────────────────────────── */
body[data-page="wishlist"] .wishlist-grid,
body[data-page="account"] .acct-wishlist-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-4);
  align-items: stretch;
}

body[data-page="wishlist"] .wi-card,
body[data-page="account"] .acct-wishlist-grid .wi-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-4);
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  position: relative;
  transition: border-color 160ms ease, transform 160ms ease;
}

body[data-page="wishlist"] .wi-card:hover {
  border-color: var(--color-border-accent, var(--color-accent));
  transform: translateY(-2px);
}

/* Image aspect — uniform 4/3 across the whole grid */
body[data-page="wishlist"] .wi-card__img,
body[data-page="wishlist"] .wi-card img:first-of-type,
body[data-page="account"] .acct-wishlist-grid .wi-card img:first-of-type {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: var(--color-bg);
  border-radius: var(--radius-sm);
}

/* Remove × — visually 28px but with 44px hit-area via padding */
body[data-page="wishlist"] .wi-remove,
body[data-page="account"] .acct-wishlist-grid .wi-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  background: transparent;
  border: 0;
  color: var(--color-text-muted);
  cursor: pointer;
  font-size: var(--text-lg);
  line-height: 1;
  border-radius: 50%;
  transition: color 160ms ease, background-color 160ms ease;
}

/* The visible "pill" inside the 44px hit-area */
body[data-page="wishlist"] .wi-remove::before,
body[data-page="account"] .acct-wishlist-grid .wi-remove::before {
  content: "";
  position: absolute;
  inset: 8px;                      /* visual circle = 28px in a 44px hit */
  border-radius: 50%;
  border: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--color-bg) 90%, transparent);
  transition: border-color 160ms ease, background-color 160ms ease;
  z-index: -1;
}

body[data-page="wishlist"] .wi-remove:hover,
body[data-page="wishlist"] .wi-remove:focus-visible,
body[data-page="account"] .acct-wishlist-grid .wi-remove:hover {
  color: var(--color-accent);
  outline: none;
}
body[data-page="wishlist"] .wi-remove:hover::before,
body[data-page="wishlist"] .wi-remove:focus-visible::before {
  border-color: var(--color-border-accent, var(--color-accent));
  background: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg));
}


/* ════════════════════════════════════════════════════════════════════
   8.  SETTINGS GRID — form labels uniform aligned
   ──────────────────────────────────────────────────────────────────── */
body[data-page="account-settings"] .acct-settings-grid,
body[data-page="account"] .acct-settings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-3);
}

body[data-page="account-settings"] .acct-setting-card,
body[data-page="account"] .acct-setting-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

body[data-page="account-settings"] .acct-setting-card__label,
body[data-page="account"] .acct-setting-card__label {
  font-size: var(--text-sm);
  font-weight: var(--weight-semibold);
  color: var(--color-text);
  margin: 0;
}

body[data-page="account-settings"] .acct-setting-card__input,
body[data-page="account-settings"] .acct-setting-card__select,
body[data-page="account"] .acct-setting-card__input,
body[data-page="account"] .acct-setting-card__select {
  width: 100%;
  height: 40px;
  padding: 0 12px;
  background: var(--color-bg-elevated, var(--color-bg));
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  color: var(--color-text);
  font-size: var(--text-sm);
  box-sizing: border-box;
}

body[data-page="account-settings"] .acct-setting-card__hint,
body[data-page="account"] .acct-setting-card__hint {
  margin: 0;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
  line-height: var(--leading-normal);
}

/* Mobile account nav: show the full portal map instead of centering one tab
   inside a clipped horizontal rail. */
@media (max-width: 599px) {
  body[data-page^="account"] .account-subnav,
  body[data-page="wishlist"] .account-subnav {
    overflow: visible !important;
    border-bottom: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body[data-page^="account"] .account-subnav__inner,
  body[data-page="wishlist"] .account-subnav__inner {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px !important;
    width: 100%;
    max-width: 100%;
    padding: 0 !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
  }

  body[data-page^="account"] .account-subnav__tab,
  body[data-page="wishlist"] .account-subnav__tab {
    position: relative;
    min-width: 0 !important;
    min-height: 50px !important;
    height: 50px !important;
    width: 100%;
    padding: 7px 5px 8px !important;
    flex: initial !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    border-radius: 12px !important;
    text-align: center;
    scroll-snap-align: none !important;
  }

  body[data-page^="account"] .account-subnav__icon,
  body[data-page="wishlist"] .account-subnav__icon {
    width: 15px !important;
    height: 15px !important;
    flex: 0 0 15px !important;
  }

  body[data-page^="account"] .account-subnav__label,
  body[data-page="wishlist"] .account-subnav__label {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap;
    font-size: 10.5px !important;
    line-height: 1.1 !important;
  }

  body[data-page^="account"] .account-subnav__badge,
  body[data-page="wishlist"] .account-subnav__badge {
    position: absolute;
    top: 4px;
    right: 5px;
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    margin: 0;
    font-size: 9px;
    box-shadow: 0 0 0 1px var(--color-bg);
  }
}

@media (max-width: 640px) {
  body[data-page="account"] .togov2 {
    gap: 14px !important;
    padding-bottom: calc(var(--tgp-mn-height, 64px) + env(safe-area-inset-bottom, 0px) + 28px) !important;
  }

  body[data-page="account"] .togov2-hero {
    padding: 18px !important;
    gap: 14px !important;
  }

  body[data-page="account"] .togov2-hero__title {
    font-size: clamp(26px, 8vw, 31px) !important;
    line-height: 1.05 !important;
    margin-bottom: 7px !important;
  }

  body[data-page="account"] .togov2-hero__subtitle {
    font-size: 14px !important;
    line-height: 1.34 !important;
  }

  body[data-page="account"] .togov2-hero__signout {
    margin-top: 9px !important;
    font-size: 12px !important;
  }

  body[data-page="account"] .togov2-hero__right {
    gap: 8px !important;
  }

  body[data-page="account"] .togov2-avatar {
    width: 46px !important;
    height: 46px !important;
    font-size: 16px !important;
  }

  body[data-page="account"] .togov2-bell {
    width: 38px !important;
    height: 38px !important;
  }

  body[data-page="account"] .togov2-pill {
    min-height: 38px;
    padding-inline: 11px !important;
    font-size: 11px !important;
    white-space: normal;
    line-height: 1.12;
  }

  body[data-page="account"] .togov2-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body[data-page="account"] .togov2-quick__strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body[data-page="account"] .togov2-quick__chip {
    min-height: 72px !important;
  }

  body[data-page="account"] .togov2-quick__label {
    font-size: 12.75px !important;
    line-height: 1.18 !important;
  }

  body[data-page="account"] .togov2-quick__sub {
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
}

@media (max-width: 380px) {
  body[data-page="account"] .togov2-quick__chip {
    min-height: 68px !important;
    gap: 8px !important;
    padding: 9px !important;
  }

  body[data-page="account"] .togov2-quick__icon {
    width: 26px !important;
    height: 26px !important;
  }

  body[data-page="account"] .togov2-quick__label {
    font-size: 12px !important;
  }
}


/* ════════════════════════════════════════════════════════════════════
   9.  REDUCED MOTION — kill all polish transitions
   ──────────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  body[data-page^="account"] .acct-action-tile,
  body[data-page^="account"] .acct-stat,
  body[data-page^="account"] .aor-order,
  body[data-page="wishlist"] .wi-card,
  body[data-page="wishlist"] .wi-remove,
  body[data-page="account-addresses"] .aadr-card__actions button,
  body[data-page="login"] .auth-form .input,
  body[data-page="register"] .auth-form .input,
  body[data-page="forgot"] .auth-form .input {
    transition: none;
  }
  body[data-page^="account"] .acct-action-tile:hover,
  body[data-page="wishlist"] .wi-card:hover,
  body[data-page="account-orders"] .aor-order:hover {
    transform: none;
  }
}
