/* ============================================================================
   HIGHLAND VAULT — MY ACCOUNT DASHBOARD
   ----------------------------------------------------------------------------
   Premium customer dashboard. Loaded only on account pages (see functions.php).
   Reuses the theme system throughout: tokens.css variables, .hv-card, .hv-btn,
   .hv-badge. WooCommerce's own templates (orders, forms) are NOT overridden —
   they are styled here via their stable class hooks. !important appears only
   where the Elementor kit's global element styles would otherwise win.
   ========================================================================== */

/* No page title above the account area (fallback for the PHP filter in
   functions.php — covers builder-rendered titles too) */
body.hv-theme.woocommerce-account .page-header,
body.hv-theme.woocommerce-account h1.entry-title { display: none; }

/* The account area is a LIGHT (white) surface — re-assert the on-white token
   set + light tints/shadows so every card, table and form reads dark-on-white
   (the base.css dark-surface scope no longer lists the account). */
body.hv-theme.woocommerce-account {
  --hv-surface:   #fff;
  --hv-surface-2: #F4F7FC;
  --hv-track:     #E7EAF0;
  --hv-blue-050:  #EAF1FE;
  --hv-blue-100:  #DDE9FE;
  --hv-orange-050:#FFF4E8;
  --hv-green-100: #E7F6EC;
  --hv-shadow-sm: 0 4px 16px rgba(16, 24, 40, .06);
  --hv-shadow:    0 12px 30px rgba(16, 24, 40, .10);
  --hv-shadow-lg: 0 20px 44px rgba(16, 24, 40, .14);
  background: #F6F8FC;
}
/* Readable status badges on the light surface (the dark-theme values used a
   pale #6CA8FF that under-contrasts on white). */
body.hv-theme.woocommerce-account .hv-status { background: var(--hv-blue-050); color: var(--hv-primary); }
body.hv-theme.woocommerce-account .hv-status--completed { background: var(--hv-green-100); color: #15803D; }
body.hv-theme.woocommerce-account .hv-status--processing { background: var(--hv-blue-050); color: var(--hv-primary); }
body.hv-theme.woocommerce-account .hv-status--on-hold,
body.hv-theme.woocommerce-account .hv-status--pending { background: var(--hv-orange-050); color: #B45309; }
body.hv-theme.woocommerce-account .hv-status--cancelled,
body.hv-theme.woocommerce-account .hv-status--refunded { background: var(--hv-surface-2); color: var(--hv-muted); }
body.hv-theme.woocommerce-account .hv-status--draft { background: var(--hv-blue-050); color: var(--hv-primary); }

/* ---- Layout: 260px sidebar left + content right (~80%) --------------------
   The account page is rendered by the Elementor Pro "My Account" widget
   (vertical tabs): its stylesheet floats the nav at 25% and the content at 75%
   (nav selector specificity 0,4,0). The widget-scoped rules below reach
   (0,5,0), so they win everywhere including its ≤1024px media overrides; the
   generic rules cover a plain [woocommerce_my_account] shortcode page too. */
/* NOTE: the :has() variant is a SEPARATE rule — grouping it with the widget
   selector would invalidate both in browsers without :has() support. */
.elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab > .woocommerce {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--hv-space-5) var(--hv-space-6);
  padding-block: var(--hv-space-4) var(--hv-space-6);
}
.hv-theme.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--hv-space-5) var(--hv-space-6);
  padding-block: var(--hv-space-4) var(--hv-space-6);
}
.hv-theme.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { flex: 1 1 100%; }
.hv-theme.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
.elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation {
  float: none;
  width: 260px;
  flex: 0 0 260px;
}
.hv-theme.woocommerce-account .woocommerce > .woocommerce-MyAccount-content,
.elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content {
  float: none;
  width: auto;
  flex: 1 1 0;
  min-width: 0;
  padding: var(--hv-space-6); /* replaces the widget's padding-left: 6% gap */
}

/* ---- Sidebar -------------------------------------------------------------- */
.hv-account-nav { position: sticky; top: var(--hv-space-6); }
.hv-account-nav ul {
  background: var(--hv-surface);
  border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm);
  list-style: none;
  margin: 0;
  padding: var(--hv-space-2);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hv-account-nav li { margin: 0; }
.hv-account-nav li a {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--hv-space-3);
  padding: 0.7em 0.85em;
  border-radius: var(--hv-radius-sm);
  color: var(--hv-body) !important;         /* kit paints link colours */
  font-weight: var(--hv-fw-medium);
  text-decoration: none !important;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.hv-account-nav__icon { display: inline-flex; flex: 0 0 auto; color: var(--hv-muted); transition: color .15s ease; }
.hv-account-nav li a:hover { background: var(--hv-blue-050); color: var(--hv-primary) !important; transform: translateX(2px); }
.hv-account-nav li a:hover .hv-account-nav__icon { color: var(--hv-primary); }
.hv-account-nav li a:focus-visible { outline: none; box-shadow: var(--hv-ring); }

/* Active item: soft blue pill, blue text + left indicator bar (design) */
.hv-account-nav li.is-active a {
  background: var(--hv-blue-050);
  color: var(--hv-primary) !important;
  font-weight: var(--hv-fw-bold);
}
.hv-account-nav li.is-active a:hover { transform: none; }
.hv-account-nav li.is-active a::before {
  content: "";
  position: absolute;
  left: 0; top: 18%; bottom: 18%;
  width: 3px;
  border-radius: var(--hv-radius-pill);
  background: var(--hv-primary);
}
.hv-account-nav li.is-active .hv-account-nav__icon { color: var(--hv-primary); }

/* Logout — quietly destructive */
.hv-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--hv-red-500) !important; }
.hv-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a .hv-account-nav__icon { color: var(--hv-red-500); }
.hv-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: rgba(239,68,68,.14); color: var(--hv-red-500) !important; transform: none; }

/* Mobile disclosure toggle (hidden on desktop) */
.hv-account-nav__toggle {
  display: none;
  width: 100%;
  align-items: center;
  gap: var(--hv-space-2);
  padding: 0.8em 1em;
  background: var(--hv-surface) !important;
  border: 1px solid var(--hv-line) !important;
  border-radius: var(--hv-radius);
  color: var(--hv-ink) !important;
  font-family: var(--hv-font);
  font-weight: var(--hv-fw-bold);
  cursor: pointer;
}
.hv-account-nav__toggle:focus-visible { outline: none; box-shadow: var(--hv-ring); }

/* ---- Content area ---------------------------------------------------------
   Endpoint pages (orders, forms, plugin screens) live in one content card.
   The dashboard endpoint lays out its OWN cards → card chrome removed there. */
.hv-theme .woocommerce-MyAccount-content {
  background: var(--hv-surface);
  border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm);
  padding: var(--hv-space-6);
  min-width: 0;
}
body.hv-account-dashboard .woocommerce-MyAccount-content,
body.hv-account-dashboard .elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content { background: none; border: 0; box-shadow: none; padding: 0; }
.hv-theme .woocommerce-MyAccount-content > h2,
.hv-theme .woocommerce-MyAccount-content > h3 { margin-top: 0; font-size: var(--hv-fs-h3); color: var(--hv-ink); }
.hv-theme .woocommerce-MyAccount-content p { max-width: none; }
.hv-theme .woocommerce-MyAccount-content a:not(.button):not(.hv-btn):not(.woocommerce-button) { color: var(--hv-primary); }

/* ---- Dashboard (redesign) ------------------------------------------------- */
/* .hv-card is in base.css's dark-surface scope; re-assert on-white tokens for it
   inside the (now light) account area so panels read dark-on-white. */
body.hv-theme.woocommerce-account .hv-card {
  --hv-ink: #111827; --hv-body: #4B5563; --hv-muted: #6B7280; --hv-line: #E7EAF0;
  background: #fff; box-shadow: var(--hv-shadow-sm);
}
.hv-dash { display: flex; flex-direction: column; gap: var(--hv-space-5); }
.hv-dash > * { animation: hv-fade-up .35s ease both; }
.hv-dash > *:nth-child(2) { animation-delay: .06s; }
.hv-dash > *:nth-child(3) { animation-delay: .12s; }
@keyframes hv-fade-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hv-dash > * { animation: none; } }

/* ---- Hero ---- */
.hv-dash-hero {
  position: relative; overflow: hidden;
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--hv-space-5);
  padding: var(--hv-space-6);
  border-radius: var(--hv-radius-lg);
  background: linear-gradient(120deg, #065BE0 0%, #0A6BFF 55%, #054CBB 100%);
  color: #fff;
}
.hv-dash-hero__main { flex: 1 1 340px; position: relative; z-index: 2; }
.hv-dash-hero__title { margin: 0; font-size: var(--hv-fs-h1); font-weight: var(--hv-fw-black); color: #fff !important; }
.hv-dash-hero__sub { margin: var(--hv-space-2) 0 0; color: rgba(255,255,255,.9); }
.hv-dash-hero__stats { margin: 2px 0 var(--hv-space-4); color: rgba(255,255,255,.92); }
.hv-dash-hero__stats strong { color: #fff; font-weight: var(--hv-fw-black); }
.hv-dash-hero__actions { display: flex; flex-wrap: wrap; gap: var(--hv-space-3); }
.hv-dash-hero__btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 0.7em 1.05em;
  border-radius: var(--hv-radius); border: 1px solid rgba(255,255,255,.32); background: rgba(255,255,255,.12);
  color: #fff; font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm); text-decoration: none;
  transition: background .15s ease, border-color .15s ease;
}
.hv-dash-hero__btn:hover { background: rgba(255,255,255,.22); }
.hv-dash-hero__btn.is-primary { background: #fff; color: var(--hv-primary); border-color: #fff; }
.hv-dash-hero__btn.is-primary:hover { background: rgba(255,255,255,.9); }
.hv-dash-hero__btn svg { flex: 0 0 auto; }

.hv-dash-hero__aside { position: relative; z-index: 2; flex: 0 0 auto; display: flex; flex-direction: column; gap: var(--hv-space-3); }
.hv-dash-hero__countdown { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); border-radius: var(--hv-radius); padding: var(--hv-space-4); text-align: center; }
.hv-dash-hero__cd-label { display: block; font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold); letter-spacing: var(--hv-ls-wide); text-transform: uppercase; color: rgba(255,255,255,.85); margin-bottom: var(--hv-space-3); }
.hv-dash-hero__cd { display: flex; align-items: center; justify-content: center; gap: 6px; }
.hv-cd-box { display: flex; flex-direction: column; align-items: center; min-width: 52px; padding: 8px 6px; border-radius: var(--hv-radius-sm); background: rgba(0,0,0,.2); }
.hv-cd-box b { font-size: var(--hv-fs-h3); font-weight: var(--hv-fw-black); line-height: 1; }
.hv-cd-box small { font-size: 9px; letter-spacing: .08em; color: rgba(255,255,255,.75); margin-top: 3px; }
.hv-cd-sep { font-size: var(--hv-fs-h4); font-weight: var(--hv-fw-black); opacity: .5; }
.hv-dash-hero__live { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0.7em 1.1em; border-radius: var(--hv-radius); border: 1px solid rgba(255,255,255,.32); color: #fff; font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm); text-decoration: none; }
.hv-dash-hero__live:hover { background: rgba(255,255,255,.14); }
.hv-dash-hero__livedot { display: inline-flex; align-items: center; gap: 5px; }
.hv-dash-hero__livedot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #ff5252; box-shadow: 0 0 0 3px rgba(255,82,82,.3); }
.hv-dash-hero__img { position: absolute; right: 0; bottom: 0; height: 116%; width: auto; max-width: 300px; object-fit: contain; object-position: bottom right; z-index: 1; opacity: .96; pointer-events: none; }
@media (max-width: 1100px) { .hv-dash-hero__img { display: none; } }

/* ---- Stat cards ---- */
.hv-dash__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--hv-space-4); }
.hv-stat-card {
  display: flex; align-items: flex-start; gap: var(--hv-space-4);
  padding: var(--hv-space-5); background: #fff; border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius-lg); box-shadow: var(--hv-shadow-sm);
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hv-stat-card:hover { transform: translateY(-3px); box-shadow: var(--hv-shadow-lg); border-color: var(--hv-blue-100); }
.hv-stat-card:focus-visible { outline: none; box-shadow: var(--hv-ring); }
.hv-stat-card__icon { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border-radius: var(--hv-radius); background: var(--hv-blue-050); color: var(--hv-primary); }
.hv-stat-card__icon.is-amber { background: #FEF3E2; color: #D97706; }
.hv-stat-card__icon.is-purple { background: #EFE9FE; color: #7C3AED; }
.hv-stat-card__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; }
.hv-stat-card__label { font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-medium); color: var(--hv-muted); }
.hv-stat-card b { font-size: var(--hv-fs-h2); font-weight: var(--hv-fw-black); color: var(--hv-ink) !important; line-height: 1.1; }
.hv-stat-card b .amount { color: inherit; }
.hv-stat-card__hint { font-size: var(--hv-fs-xs); color: var(--hv-muted); font-weight: var(--hv-fw-medium); }
.hv-stat-card__hint.is-pos { color: #15803D; }
.hv-stat-card__hint.is-live { color: var(--hv-primary); }
.hv-stat-card__bar { display: block; height: 5px; border-radius: 3px; background: var(--hv-track); overflow: hidden; margin-top: 5px; }
.hv-stat-card__bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #7C3AED, #a855f7); }

/* ---- Two-column grid ---- */
.hv-dash__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: var(--hv-space-5); align-items: start; }
.hv-dash__col { display: flex; flex-direction: column; gap: var(--hv-space-5); min-width: 0; }
.hv-dash__panel { padding: var(--hv-space-5); }
.hv-dash__panel-head { display: flex; align-items: center; justify-content: space-between; gap: var(--hv-space-3); margin-bottom: var(--hv-space-4); }
.hv-dash__panel-head h3 { margin: 0; font-size: var(--hv-fs-h4); font-weight: var(--hv-fw-black); color: var(--hv-ink); }
.hv-dash__panel-head a { display: inline-flex; align-items: center; gap: 4px; color: var(--hv-primary); font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm); text-decoration: none; }
.hv-dash__panel-head a:hover { color: var(--hv-primary-strong); }

/* ---- Active competitions ---- */
.hv-actcomp-list { display: flex; flex-direction: column; gap: var(--hv-space-3); }
.hv-actcomp {
  display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto; align-items: center; gap: var(--hv-space-4);
  padding: var(--hv-space-3); border: 1px solid var(--hv-line); border-radius: var(--hv-radius); text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.hv-actcomp:hover { border-color: var(--hv-blue-100); box-shadow: var(--hv-shadow-sm); }
.hv-actcomp__media { width: 64px; }
.hv-actcomp__media img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--hv-radius-sm); display: block; }
.hv-actcomp__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hv-actcomp__cat { font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold); letter-spacing: var(--hv-ls-wide); text-transform: uppercase; color: var(--hv-primary); }
.hv-actcomp__name { font-size: var(--hv-fs-body); font-weight: var(--hv-fw-bold); color: var(--hv-ink); line-height: var(--hv-lh-snug); overflow-wrap: anywhere; }
.hv-actcomp__meta { font-size: var(--hv-fs-sm); color: var(--hv-muted); }
.hv-actcomp__meta .amount { color: var(--hv-ink); font-weight: var(--hv-fw-bold); }
.hv-actcomp__ring {
  position: relative; width: 58px; height: 58px; flex: 0 0 auto;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center;
  border-radius: 50%; background: conic-gradient(var(--hv-primary) calc(var(--pct, 0) * 1%), var(--hv-track) 0);
}
.hv-actcomp__ring::before { content: ""; position: absolute; width: 44px; height: 44px; border-radius: 50%; background: #fff; }
.hv-actcomp__ring b, .hv-actcomp__ring span { position: relative; z-index: 1; line-height: 1; }
.hv-actcomp__ring b { font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-black); color: var(--hv-ink); }
.hv-actcomp__ring span { font-size: 8px; color: var(--hv-muted); text-transform: uppercase; letter-spacing: .04em; margin-top: 2px; }
.hv-actcomp__end { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.hv-actcomp__end time { font-size: var(--hv-fs-xs); color: var(--hv-muted); line-height: 1.35; }
.hv-actcomp__live { display: inline-flex; align-items: center; gap: 4px; font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold); color: #16A34A; }
.hv-actcomp__live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #16A34A; }

/* ---- Referral card ---- */
.hv-dash__referral { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--hv-space-4); padding: var(--hv-space-5); }
.hv-dash__referral-ico { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--hv-blue-050); color: var(--hv-primary); }
.hv-dash__referral-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hv-dash__referral-body b { color: var(--hv-ink); }
.hv-dash__referral-body span { color: var(--hv-muted); font-size: var(--hv-fs-sm); }
.hv-dash__referral-code { text-align: right; }
.hv-dash__referral-label { display: block; font-size: var(--hv-fs-xs); color: var(--hv-muted); margin-bottom: 4px; }
.hv-dash__referral-row { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--hv-line); border-radius: var(--hv-radius); padding: 4px 4px 4px 12px; }
.hv-dash__referral-row code { font-family: var(--hv-font); font-weight: var(--hv-fw-black); color: var(--hv-primary); letter-spacing: .02em; }
.hv-copy { display: grid; place-items: center; width: 32px; height: 32px; flex: 0 0 auto; border: 0; background: var(--hv-blue-050); color: var(--hv-primary); border-radius: var(--hv-radius-sm); cursor: pointer; transition: background .15s ease; }
.hv-copy:hover { background: var(--hv-blue-100); }
.hv-copy.is-copied { background: var(--hv-green-100); color: #15803D; }

/* ---- Recent orders ---- */
.hv-recentorders { display: flex; flex-direction: column; }
.hv-recentorder { display: flex; align-items: center; gap: var(--hv-space-3); padding: var(--hv-space-3) 0; border-bottom: 1px solid var(--hv-line); text-decoration: none; }
.hv-recentorder:last-child { border-bottom: 0; }
.hv-recentorder__id { flex: 0 0 auto; font-size: var(--hv-fs-sm); color: var(--hv-muted); font-weight: var(--hv-fw-medium); }
.hv-recentorder__name { flex: 1 1 auto; min-width: 0; font-size: var(--hv-fs-sm); color: var(--hv-ink); font-weight: var(--hv-fw-bold); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hv-recentorder:hover .hv-recentorder__name { color: var(--hv-primary); }
.hv-recentorder__date { flex: 0 0 auto; font-size: var(--hv-fs-xs); color: var(--hv-muted); white-space: nowrap; }
.hv-recentorder .hv-status { flex: 0 0 auto; }
.hv-recentorder__total { flex: 0 0 auto; font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-black); color: var(--hv-primary); white-space: nowrap; }
.hv-recentorder__total .amount { color: inherit; }
.hv-recentorder__chev { flex: 0 0 auto; color: var(--hv-muted); display: inline-flex; }

/* ---- Recent winners ---- */
.hv-recentwins { display: flex; flex-direction: column; }
.hv-recentwin { display: flex; align-items: center; gap: var(--hv-space-3); padding: var(--hv-space-3) 0; border-bottom: 1px solid var(--hv-line); }
.hv-recentwin:last-child { border-bottom: 0; }
.hv-recentwin__avatar { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--hv-primary); color: #fff; font-weight: var(--hv-fw-black); }
.hv-recentwin__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.hv-recentwin__body b { color: var(--hv-ink); font-size: var(--hv-fs-sm); }
.hv-recentwin__body span { color: var(--hv-muted); font-size: var(--hv-fs-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hv-recentwin__body strong { color: var(--hv-ink); }
.hv-recentwin__time { flex: 0 0 auto; font-size: var(--hv-fs-xs); color: var(--hv-muted); white-space: nowrap; }
.hv-recentwin__prize { flex: 0 0 auto; }
.hv-recentwin__prize img { width: 34px; height: 42px; object-fit: cover; border-radius: var(--hv-radius-sm); display: block; }
.hv-recentwin__medal { flex: 0 0 auto; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #FEF3E2; color: #D97706; }

/* ---- Reassurance bar ---- */
.hv-dash__bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--hv-space-4); background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg); box-shadow: var(--hv-shadow-sm); padding: var(--hv-space-5); }
.hv-dash__bar-item { display: flex; align-items: center; gap: var(--hv-space-3); }
.hv-dash__bar-item:not(:last-child) { border-right: 1px solid var(--hv-line); }
.hv-dash__bar-ico { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: var(--hv-radius); background: var(--hv-blue-050); color: var(--hv-primary); }
.hv-dash__bar-item > span:last-child { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.hv-dash__bar-item b { color: var(--hv-ink); font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-bold); }
.hv-dash__bar-item > span:last-child > span { color: var(--hv-muted); font-size: var(--hv-fs-xs); }

/* ---- Invite & Earn card (sidebar) ---- */
.hv-account-invite { margin-top: var(--hv-space-4); padding: var(--hv-space-5); background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg); box-shadow: var(--hv-shadow-sm); text-align: center; }
.hv-account-invite__ico { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto var(--hv-space-3); border-radius: 50%; background: var(--hv-blue-050); color: var(--hv-primary); }
.hv-account-invite__title { display: block; font-size: var(--hv-fs-body); font-weight: var(--hv-fw-black); color: var(--hv-ink); }
.hv-account-invite__text { margin: var(--hv-space-2) 0 var(--hv-space-4); font-size: var(--hv-fs-sm); color: var(--hv-muted); line-height: var(--hv-lh-normal); }
.hv-account-invite__btn { display: block; padding: 0.7em 1em; border: 1px solid var(--hv-primary); border-radius: var(--hv-radius); color: var(--hv-primary); font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm); text-decoration: none; }
.hv-account-invite__btn:hover { background: var(--hv-blue-050); }

/* ---- Dashboard responsive ---- */
@media (max-width: 1080px) { .hv-dash__grid { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .hv-dash__stats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
  .hv-dash__bar { grid-template-columns: 1fr 1fr; gap: 0; }
  .hv-dash__bar-item { padding: var(--hv-space-3); }
  .hv-dash__bar-item:nth-child(odd) { border-right: 1px solid var(--hv-line); }
  .hv-dash__bar-item:nth-child(-n+2) { border-bottom: 1px solid var(--hv-line); }
}
@media (max-width: 560px) {
  .hv-dash__stats { grid-template-columns: 1fr; }
  .hv-dash-hero { padding: var(--hv-space-5); }
  .hv-dash-hero__aside { width: 100%; }
  .hv-actcomp { grid-template-columns: 56px minmax(0, 1fr) auto; }
  .hv-actcomp__media, .hv-actcomp__media img { width: 56px; }
  .hv-actcomp__media img { height: 56px; }
  .hv-actcomp__end { display: none; }
  .hv-recentorder__date { display: none; }
  .hv-dash__referral { grid-template-columns: auto 1fr; }
  .hv-dash__referral-code { grid-column: 1 / -1; text-align: left; }
  .hv-dash__bar { grid-template-columns: 1fr; }
  .hv-dash__bar-item:nth-child(odd) { border-right: 0; }
  .hv-dash__bar-item:not(:last-child) { border-bottom: 1px solid var(--hv-line); }
}

/* ---- Tables (dashboard + orders/downloads/wallet endpoints) --------------- */
.hv-theme .hv-account-table,
.hv-theme .woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  border-radius: 0;
}
.hv-theme .hv-account-table th, .hv-theme .hv-account-table td,
.hv-theme .woocommerce-MyAccount-content table.shop_table th,
.hv-theme .woocommerce-MyAccount-content table.shop_table td { border: 0; background: none; }
.hv-theme .hv-account-table thead th,
.hv-theme .woocommerce-MyAccount-content table.shop_table thead th {
  background: var(--hv-surface-2);
  padding: var(--hv-space-3);
  font-size: var(--hv-fs-xs);
  text-transform: uppercase;
  letter-spacing: var(--hv-ls-wide);
  color: var(--hv-muted);
  text-align: left;
}
.hv-theme .hv-account-table tbody th, .hv-theme .hv-account-table td,
.hv-theme .woocommerce-MyAccount-content table.shop_table tbody th,
.hv-theme .woocommerce-MyAccount-content table.shop_table td {
  padding: var(--hv-space-3);
  border-bottom: 1px solid var(--hv-line);
  text-align: left;
  vertical-align: middle;
}
.hv-theme .hv-account-table tbody tr:nth-child(even) td,
.hv-theme .woocommerce-MyAccount-content table.shop_table tbody tr:nth-child(even) td,
.hv-theme .woocommerce-MyAccount-content table.shop_table tbody tr:nth-child(even) th { background: var(--hv-surface-2); background: color-mix(in srgb, var(--hv-surface-2) 55%, transparent); }
.hv-theme .hv-account-table tbody tr:hover td,
.hv-theme .woocommerce-MyAccount-content table.shop_table tbody tr:hover td,
.hv-theme .woocommerce-MyAccount-content table.shop_table tbody tr:hover th { background: var(--hv-blue-050); }
.hv-theme .woocommerce-MyAccount-content table .amount { color: var(--hv-primary); font-weight: var(--hv-fw-bold); white-space: nowrap; }
.hv-theme .hv-account-table a, .hv-theme .woocommerce-orders-table__cell-order-number a { font-weight: var(--hv-fw-bold); }
.hv-account-table__actions { text-align: right; }

/* Order-item meta on the View Order page (Chosen Answer / Ticket Number(s)).
   WooCommerce floats the meta label, which mis-stacks the value; lay each row
   out as a clean "Label: value" instead. */
.hv-theme .woocommerce-MyAccount-content .wc-item-meta {
  list-style: none; margin: var(--hv-space-2) 0 0; padding: 0;
  font-size: var(--hv-fs-sm); color: var(--hv-muted);
}
.hv-theme .woocommerce-MyAccount-content .wc-item-meta li {
  display: flex; flex-wrap: wrap; gap: 0.4em; margin: 0 0 3px;
}
.hv-theme .woocommerce-MyAccount-content .wc-item-meta .wc-item-meta-label {
  float: none !important; margin: 0; font-weight: var(--hv-fw-bold); color: var(--hv-ink);
}
.hv-theme .woocommerce-MyAccount-content .wc-item-meta p { display: inline; margin: 0; overflow-wrap: anywhere; }
/* (.hv-btn--sm sizing lives in components.css — single source of truth) */

/* Order status badges (dashboard renders .hv-status; the orders endpoint gets
   the same look via its row status class) */
.hv-status { background: var(--hv-blue-100); color: #6CA8FF; }
.hv-status--completed { background: var(--hv-green-100); color: var(--hv-green-500); }
.hv-status--processing { background: var(--hv-blue-100); color: #6CA8FF; }
.hv-status--on-hold { background: var(--hv-orange-050); color: #6CA8FF; }
.hv-status--pending { background: var(--hv-orange-050); color: #6CA8FF; }
.hv-status--cancelled, .hv-status--refunded { background: var(--hv-surface-2); color: var(--hv-muted); }
.hv-status--failed { background: rgba(239,68,68,.14); color: var(--hv-red-500); }

/* Orders endpoint: status cell text → badge */
.hv-theme .woocommerce-orders-table__cell-order-status { font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-bold); }
.hv-theme .woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { color: var(--hv-green-500); }
.hv-theme .woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status { color: #6CA8FF; }
.hv-theme .woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status,
.hv-theme .woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status { color: #6CA8FF; }
.hv-theme .woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.hv-theme .woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status { color: var(--hv-muted); }
.hv-theme .woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status { color: var(--hv-red-500); }

/* Action buttons inside tables */
.hv-theme .woocommerce-MyAccount-content table .button { padding: 0.45em 0.95em; font-size: var(--hv-fs-sm); margin: 2px 4px 2px 0; }

/* Pagination */
.hv-theme .woocommerce-MyAccount-content .woocommerce-pagination { display: flex; gap: var(--hv-space-3); justify-content: center; margin-top: var(--hv-space-4); }

/* ---- Empty states ---------------------------------------------------------
   Dashboard renders .hv-empty; WooCommerce endpoints emit a .woocommerce-info
   notice with a button — both get the centred empty-state treatment. */
.hv-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hv-space-3);
  padding: var(--hv-space-7) var(--hv-space-5);
  text-align: center;
}
.hv-empty__icon {
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border-radius: var(--hv-radius-pill);
  background: var(--hv-blue-050);
  color: var(--hv-primary);
}
.hv-empty__icon svg { width: 26px; height: 26px; }
.hv-empty p { margin: 0; color: var(--hv-muted); }

/* !important throughout: the site-wide notice skin (woocommerce.css SYSTEM
   MESSAGES) pins its tinted background/border/padding with !important — these
   endpoint notices are empty-states, not alerts, so reassert the look here
   (this file loads after woocommerce.css and wins on equal importance). */
.hv-theme .woocommerce-MyAccount-content > .woocommerce-info,
.hv-theme .woocommerce-MyAccount-content > .woocommerce-message {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--hv-space-4);
  padding: var(--hv-space-7) var(--hv-space-5) !important;
  text-align: center;
  background: none !important;
  border: 1px dashed var(--hv-line) !important;
  border-radius: var(--hv-radius) !important;
  box-shadow: none;
  color: var(--hv-muted) !important;
  animation: none;
}
.hv-theme .woocommerce-MyAccount-content > .woocommerce-info::before,
.hv-theme .woocommerce-MyAccount-content > .woocommerce-message::before { content: none !important; }
.hv-theme .woocommerce-MyAccount-content > .woocommerce-info a.button,
.hv-theme .woocommerce-MyAccount-content > .woocommerce-message a.button { float: none; margin: 0 !important; }

/* ---- Forms (edit account, addresses, login — WC templates untouched) ------ */
.hv-theme .woocommerce-MyAccount-content .form-row label { display: block; margin-bottom: 4px; font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-medium); color: var(--hv-ink); }
.hv-theme .woocommerce-MyAccount-content .input-text,
.hv-theme .woocommerce-MyAccount-content select,
.hv-theme .woocommerce-MyAccount-content textarea {
  width: 100%;
  padding: 0.7em 0.9em;
  border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius-sm);
  background: var(--hv-surface);
  font-family: var(--hv-font);
  color: var(--hv-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.hv-theme .woocommerce-MyAccount-content .input-text:focus,
.hv-theme .woocommerce-MyAccount-content select:focus,
.hv-theme .woocommerce-MyAccount-content textarea:focus { border-color: var(--hv-primary); box-shadow: var(--hv-ring); outline: none; }
.hv-theme .woocommerce-MyAccount-content fieldset { border: 1px solid var(--hv-line); border-radius: var(--hv-radius); padding: var(--hv-space-4); margin: var(--hv-space-5) 0; }
.hv-theme .woocommerce-MyAccount-content fieldset legend { padding: 0 0.5em; font-weight: var(--hv-fw-bold); color: var(--hv-ink); }
.hv-theme .woocommerce-MyAccount-content .show-password-input { top: 0.55em; right: 0.8em; }

/* Addresses: two equal cards in ONE row. Forced with !important + the Elementor
   My-Account widget selector because the widget's own CSS floats/staggers the
   cards and out-ran the plain grid rule. As grid items the cards ignore float. */
.hv-theme .woocommerce-MyAccount-content .hv-addresses,
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses,
.elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content .woocommerce-Addresses {
  display: grid !important; grid-template-columns: 1fr 1fr !important;
  gap: var(--hv-space-5) !important; align-items: start !important; float: none !important;
}
/* Kill WC/Elementor column floats + widths that staggered the two cards */
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses .col-1,
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses .col-2,
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address {
  width: auto !important; max-width: none !important; float: none !important; margin: 0;
  background: var(--hv-surface-2); border: 1px solid var(--hv-line); border-radius: var(--hv-radius); padding: var(--hv-space-4);
}
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address address { border: 0; padding: 0; font-style: normal; line-height: 1.7; }
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--hv-space-3);
  border-bottom: 1px solid var(--hv-line); padding-bottom: var(--hv-space-2); margin-bottom: var(--hv-space-3);
}
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title :is(h2, h3) { font-size: var(--hv-fs-h4); margin: 0; color: var(--hv-ink); }
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title .edit { font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-medium); white-space: nowrap; }

/* =========================================================================
   AUTHENTICATION — wide two-column (marketing + form), full site chrome.
   Rendered by woocommerce/myaccount/form-login.php inside login-canvas.php
   (standard hv header + footer). LIGHT (white) surface: on-white tokens are
   re-asserted on the auth canvas so every card/field reads dark-on-white.
   ========================================================================= */
.hv-auth-canvas {
  --hv-surface: #fff;
  --hv-ink:    #111827;
  --hv-body:   #4B5563;
  --hv-muted:  #6B7280;
  --hv-line:   #E7EAF0;
  --hv-blue-050: #EAF1FE;
  --hv-blue-100: #D7E4FD;
  --hv-green-100: #E7F6EC;
  --hv-shadow-sm: 0 4px 16px rgba(16, 24, 40, .06);
  --hv-shadow:    0 18px 40px rgba(16, 24, 40, .10);
}

/* ---- Canvas + notices --------------------------------------------------- */
.hv-auth-canvas { max-width: 1360px; margin: 0 auto; padding: var(--hv-space-6) var(--hv-space-5); }
.hv-auth-canvas__notices { margin-bottom: var(--hv-space-4); }
.hv-auth-canvas .woocommerce-message,
.hv-auth-canvas .woocommerce-info,
.hv-auth-canvas .woocommerce-error {
  background: var(--hv-green-100) !important; color: #15803D !important;
  border: 1px solid rgba(22, 163, 74, .22) !important; border-left-width: 4px !important;
  border-radius: var(--hv-radius) !important; box-shadow: none !important;
  font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-medium);
}
.hv-auth-canvas .woocommerce-message::before,
.hv-auth-canvas .woocommerce-info::before { color: #16A34A !important; }
.hv-auth-canvas .woocommerce-error { background: rgba(239, 68, 68, .08) !important; color: var(--hv-red-600) !important; border-color: rgba(239, 68, 68, .25) !important; }
body.hv-theme.woocommerce-account:not(.logged-in) div.woocommerce { max-width: none; }

/* ---- Grid --------------------------------------------------------------- */
.hv-auth { animation: hv-fade-up .35s ease both; }
@media (prefers-reduced-motion: reduce) { .hv-auth { animation: none; } }
.hv-auth__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) 520px;
  gap: clamp(1.75rem, 3vw, 3.5rem); align-items: start;
}

/* Signed-out confirmation banner (spans both columns) */
.hv-auth__signout {
  grid-column: 1 / -1; text-align: center; max-width: 640px; margin: 0 auto var(--hv-space-6);
  background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm); padding: var(--hv-space-6);
}
.hv-auth__signout h2 { font-size: var(--hv-fs-h2); color: var(--hv-ink); margin: 0 0 var(--hv-space-2); }

/* =========================================================================
   MARKETING ASIDE
   ========================================================================= */
.hv-auth__aside { padding-top: var(--hv-space-4); }
.hv-auth__eyebrow {
  display: inline-block; margin-bottom: var(--hv-space-3);
  font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold); letter-spacing: var(--hv-ls-wider);
  text-transform: uppercase; color: var(--hv-muted);
}
.hv-auth .hv-auth__headline {
  font-family: var(--hv-font) !important;
  font-size: var(--hv-fs-hero); font-weight: var(--hv-fw-black); color: var(--hv-ink);
  line-height: 1.08; letter-spacing: -0.01em; margin: 0 0 var(--hv-space-3);
}
.hv-auth__headline .accent { color: var(--hv-primary); }
.hv-auth__lead { color: var(--hv-body); font-size: var(--hv-fs-lead); line-height: var(--hv-lh-normal); margin: 0 0 var(--hv-space-5); max-width: 44ch; }

.hv-auth__hero { margin: 0 0 var(--hv-space-5); }
.hv-auth__hero img { display: block; max-width: 100%; height: auto; max-height: 360px; margin: 0 auto; }

.hv-auth__feats { list-style: none; margin: 0 0 var(--hv-space-5); padding: 0; display: flex; flex-direction: column; gap: var(--hv-space-4); }
.hv-auth__feat { display: flex; align-items: flex-start; gap: var(--hv-space-3); }
.hv-auth__feat-ico {
  width: 44px; height: 44px; flex: 0 0 auto; display: grid; place-items: center;
  border-radius: var(--hv-radius); background: #fff; border: 1px solid var(--hv-line);
  color: var(--hv-primary); box-shadow: var(--hv-shadow-sm);
}
.hv-auth__feat-txt { display: flex; flex-direction: column; gap: 2px; }
.hv-auth__feat-txt b { color: var(--hv-ink); font-size: var(--hv-fs-body); font-weight: var(--hv-fw-bold); }
.hv-auth__feat-txt span { color: var(--hv-muted); font-size: var(--hv-fs-sm); line-height: var(--hv-lh-normal); }

/* Stats card (login) */
.hv-auth__stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--hv-space-3);
  background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm); padding: var(--hv-space-4) var(--hv-space-5); margin-bottom: var(--hv-space-4);
}
.hv-auth__stat { display: flex; align-items: center; gap: 10px; }
.hv-auth__stat:not(:last-child) { border-right: 1px solid var(--hv-line); }
.hv-auth__stat-ico { flex: 0 0 auto; color: var(--hv-primary); }
.hv-auth__stat b { display: block; font-size: var(--hv-fs-h4); font-weight: var(--hv-fw-black); color: var(--hv-ink); line-height: 1.1; }
.hv-auth__stat span { font-size: var(--hv-fs-xs); color: var(--hv-muted); }

/* Promo card (login) */
.hv-auth__promo {
  display: flex; align-items: center; gap: var(--hv-space-4);
  background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm); padding: var(--hv-space-4) var(--hv-space-5);
}
.hv-auth__promo-ico { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--hv-primary); color: #fff; }
.hv-auth__promo-txt { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hv-auth__promo-txt b { color: var(--hv-ink); }
.hv-auth__promo-txt span { color: var(--hv-muted); font-size: var(--hv-fs-sm); }
.hv-auth__promo-btn { flex: 0 0 auto; padding: 0.6em 1em; border: 1px solid var(--hv-line); border-radius: var(--hv-radius); color: var(--hv-primary); font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm); text-decoration: none; white-space: nowrap; }
.hv-auth__promo-btn:hover { border-color: var(--hv-primary); background: var(--hv-blue-050); }

/* Social proof (register) */
.hv-auth__social-proof {
  display: flex; align-items: center; gap: var(--hv-space-4);
  background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-lg);
  box-shadow: var(--hv-shadow-sm); padding: var(--hv-space-4) var(--hv-space-5);
}
.hv-auth__avatars { display: inline-flex; align-items: center; flex: 0 0 auto; }
.hv-auth__avatars i { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; margin-left: -10px; background: linear-gradient(135deg, #c7d2fe, #93c5fd); }
.hv-auth__avatars i:first-child { margin-left: 0; }
.hv-auth__avatars b { display: inline-flex; align-items: center; justify-content: center; margin-left: -10px; min-width: 44px; height: 36px; padding: 0 8px; border-radius: 999px; border: 2px solid #fff; background: var(--hv-primary); color: #fff; font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-black); }
.hv-auth__social-proof-txt { display: flex; flex-direction: column; gap: 2px; }
.hv-auth__social-proof-txt b { color: var(--hv-ink); }
.hv-auth__social-proof-txt span { color: var(--hv-muted); font-size: var(--hv-fs-sm); }

/* =========================================================================
   FORM CARD
   ========================================================================= */
.hv-auth__main { display: flex; flex-direction: column; }
.hv-auth__card {
  background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius-xl);
  box-shadow: var(--hv-shadow); padding: clamp(1.5rem, 3vw, 2.75rem);
}
/* Lost-password / reset use a lone card (direct child of .hv-auth, no grid) —
   keep it centred and narrow instead of full-canvas width. */
.hv-auth > .hv-auth__card { max-width: 520px; margin: var(--hv-space-5) auto 0; }
.hv-auth__chip {
  width: 56px; height: 56px; margin: 0 auto var(--hv-space-4); display: grid; place-items: center;
  border-radius: var(--hv-radius); background: var(--hv-blue-050); color: var(--hv-primary);
}
.hv-auth__chip--success { background: var(--hv-green-100); color: var(--hv-green-600); font-size: var(--hv-fs-h3); font-weight: var(--hv-fw-black); }
.hv-auth__head { text-align: center; margin-bottom: var(--hv-space-5); }
.hv-auth__head h2 { font-size: var(--hv-fs-h1); font-weight: var(--hv-fw-black); color: var(--hv-ink); margin: 0 0 var(--hv-space-2); }
.hv-auth__sub { color: var(--hv-muted); margin: 0; max-width: none; }
.hv-auth__note { color: var(--hv-muted); font-size: var(--hv-fs-sm); margin: 0 0 var(--hv-space-4); }

/* Rows + labels */
.hv-auth__row { margin: 0 0 var(--hv-space-4); }
.hv-auth__row label,
.hv-auth form .woocommerce-form-row label { display: block; margin-bottom: 6px; font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-bold); color: var(--hv-ink); }
.hv-auth form .woocommerce-form-row { margin-bottom: var(--hv-space-4); }

/* Field: icon inside input; survives WooCommerce's password wrapper */
.hv-auth__field { position: relative; display: block; }
.hv-auth__field .hv-auth__ico { position: absolute; left: 14px; top: 15px; color: var(--hv-muted); pointer-events: none; z-index: 1; }
.hv-auth__field .password-input { display: block; width: 100%; position: static; }
.hv-auth .hv-auth__field .input-text,
.hv-auth .woocommerce-form-row input.input-text,
.hv-auth .woocommerce-form-row input[type="text"],
.hv-auth .woocommerce-form-row input[type="email"],
.hv-auth .woocommerce-form-row input[type="password"],
.hv-auth .woocommerce-form-row input[type="tel"] {
  width: 100%;
  padding: 0.9em 1em !important;
  border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius);
  background: #fff;
  font-family: var(--hv-font);
  font-size: var(--hv-fs-body);
  color: var(--hv-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
/* Icon fields → room for the left icon + right eye toggle */
.hv-auth .hv-auth__field .input-text { padding: 0.9em 2.9em 0.9em 44px !important; }
.hv-auth .input-text::placeholder { color: var(--hv-muted); opacity: .85; }
.hv-auth .input-text:focus { border-color: var(--hv-primary); box-shadow: var(--hv-ring); outline: none; }
.hv-auth .input-text:user-invalid { border-color: var(--hv-red-500); }

/* WooCommerce show/hide password eye — strip native layers, draw one */
.hv-auth .show-password-input {
  position: absolute; right: 8px; top: 6px; transform: none;
  width: 36px; height: 36px; padding: 0; margin: 0;
  border: 0 !important; box-shadow: none;
  cursor: pointer; overflow: hidden; color: transparent; font-size: 0; line-height: 0;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12Z'/%3E%3Ccircle cx='12' cy='12' r='2.8'/%3E%3C/svg%3E") center/20px no-repeat !important;
}
.hv-auth .show-password-input::before,
.hv-auth .show-password-input::after { content: none !important; display: none !important; background: none !important; }
.hv-auth .password-input .show-password-input ~ .show-password-input { display: none !important; }
.hv-auth .password-input.display-password .show-password-input { opacity: .5; }
.hv-auth .show-password-input:focus-visible { outline: none; box-shadow: var(--hv-ring); border-radius: var(--hv-radius-sm); }

/* Custom password-strength bar (WC's own meter is hidden to avoid duplicates) */
.hv-auth .woocommerce-password-strength,
.hv-auth .woocommerce-password-hint { display: none !important; }
.hv-auth__strength { display: block; margin-top: 8px; }
.hv-auth__strength[hidden] { display: none; }
.hv-auth__strength-bar { display: flex; gap: 5px; margin-bottom: 5px; }
.hv-auth__strength-bar i { flex: 1; height: 5px; border-radius: 3px; background: var(--hv-line); transition: background .2s ease; }
.hv-auth__strength-label { font-size: var(--hv-fs-xs); color: var(--hv-muted); }
.hv-auth__strength-label b { font-weight: var(--hv-fw-bold); }
.hv-auth__strength[data-level="1"] .hv-auth__strength-bar i:nth-child(-n+1) { background: var(--hv-red-500); }
.hv-auth__strength[data-level="1"] .hv-auth__strength-label b { color: var(--hv-red-500); }
.hv-auth__strength[data-level="2"] .hv-auth__strength-bar i:nth-child(-n+2) { background: #F59E0B; }
.hv-auth__strength[data-level="2"] .hv-auth__strength-label b { color: #D97706; }
.hv-auth__strength[data-level="3"] .hv-auth__strength-bar i:nth-child(-n+3) { background: var(--hv-primary); }
.hv-auth__strength[data-level="3"] .hv-auth__strength-label b { color: var(--hv-primary); }
.hv-auth__strength[data-level="4"] .hv-auth__strength-bar i:nth-child(-n+4) { background: var(--hv-green-500); }
.hv-auth__strength[data-level="4"] .hv-auth__strength-label b { color: var(--hv-green-600); }

/* Confirm-password match hint */
.hv-auth__match { display: block; margin-top: 6px; font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-medium); }
.hv-auth__match[hidden] { display: none; }
.hv-auth__match.is-error { color: var(--hv-red-500); }
.hv-auth__match.is-ok { color: var(--hv-green-600); }

/* Keep me signed in + forgot */
.hv-auth__meta { display: flex; align-items: center; justify-content: space-between; gap: var(--hv-space-3); flex-wrap: wrap; margin: 0 0 var(--hv-space-4); }
.hv-auth__meta .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; color: var(--hv-body); font-size: var(--hv-fs-sm); cursor: pointer; margin: 0; }
.hv-auth__meta input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--hv-primary); }
.hv-auth__forgot { font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-bold); color: var(--hv-primary) !important; text-decoration: none !important; }
.hv-auth__forgot:hover { color: var(--hv-primary-strong) !important; }

/* Agree to terms (register) */
.hv-auth__agree { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 var(--hv-space-4); font-size: var(--hv-fs-sm); color: var(--hv-body); cursor: pointer; }
.hv-auth__agree input { width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; accent-color: var(--hv-primary); }
.hv-auth__agree a { color: var(--hv-primary); font-weight: var(--hv-fw-bold); text-decoration: none; }
.hv-auth__agree a:hover { text-decoration: underline; }

/* Submit — primary button, full width, lock + label + arrow, spinner on submit */
.hv-auth__submit { margin: 0; }
.hv-auth button[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; padding: 1em 1.4em;
  background: var(--hv-primary) !important; color: #fff !important; border: 0 !important;
  border-radius: var(--hv-radius); font-family: var(--hv-font); font-size: var(--hv-fs-body); font-weight: var(--hv-fw-bold);
  cursor: pointer; box-shadow: 0 8px 20px rgba(6, 91, 224, .28);
  transition: transform .12s ease, box-shadow .15s ease, background .15s ease;
}
.hv-auth button[type="submit"] svg { flex: 0 0 auto; }
.hv-auth__btn-arrow { margin-left: auto; }
.hv-auth--login .hv-auth__btn-label { text-transform: uppercase; letter-spacing: 0.05em; }
.hv-auth button[type="submit"]:hover { background: var(--hv-blue-700) !important; transform: translateY(-1px); box-shadow: var(--hv-shadow); }
.hv-auth button[type="submit"]:focus-visible { outline: none; box-shadow: var(--hv-ring); }
.hv-auth button[type="submit"]:disabled { opacity: .75; cursor: default; transform: none; }
.hv-auth button[type="submit"].is-loading .hv-auth__btn-label { opacity: .85; }
.hv-auth button[type="submit"].is-loading::after {
  content: ""; width: 17px; height: 17px; flex: 0 0 auto;
  border: 2px solid rgba(255, 255, 255, .35); border-top-color: #fff; border-radius: 50%;
  animation: hv-spin .7s linear infinite;
}
@keyframes hv-spin { to { transform: rotate(360deg); } }

/* Social divider + buttons */
.hv-auth__or { display: flex; align-items: center; gap: 12px; margin: var(--hv-space-5) 0 var(--hv-space-4); color: var(--hv-muted); font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold); text-transform: uppercase; letter-spacing: var(--hv-ls-wide); }
.hv-auth__or::before, .hv-auth__or::after { content: ""; flex: 1; height: 1px; background: var(--hv-line); }
.hv-auth__social { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--hv-space-3); }
.hv-auth__social-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 0.8em 0.5em; border: 1px solid var(--hv-line); border-radius: var(--hv-radius);
  background: #fff; color: var(--hv-ink); font-family: var(--hv-font); font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-sm);
  text-decoration: none; cursor: pointer; transition: border-color .15s ease, background .15s ease;
}
.hv-auth__social-btn:hover { border-color: var(--hv-primary); background: var(--hv-blue-050); }
.hv-auth__social-btn.is-disabled { opacity: .55; cursor: not-allowed; }
.hv-auth__social-btn.is-disabled:hover { border-color: var(--hv-line); background: #fff; }
.hv-auth__social-btn svg { flex: 0 0 auto; }

/* Footer switch link */
.hv-auth__footer { text-align: center; margin: var(--hv-space-5) 0 0; color: var(--hv-muted); font-size: var(--hv-fs-sm); }
.hv-auth__footer a { color: var(--hv-primary) !important; font-weight: var(--hv-fw-bold); text-decoration: none !important; }
.hv-auth__footer a:hover { color: var(--hv-primary-strong) !important; }

/* Plugin-injected register rows (referral code, privacy text) inherit the look */
.hv-auth .rrs-field-note { display: block; margin-top: 6px; font-size: var(--hv-fs-xs); color: var(--hv-green-600); font-weight: var(--hv-fw-medium); }
.hv-auth .woocommerce-privacy-policy-text { font-size: var(--hv-fs-xs); color: var(--hv-muted); margin-bottom: var(--hv-space-4); }
.hv-auth .woocommerce-privacy-policy-text a { color: var(--hv-primary); }

/* Trust row under the form card */
.hv-auth__trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--hv-space-4); margin: var(--hv-space-5) 0 0; padding: var(--hv-space-4) 0 0; list-style: none; border-top: 1px solid var(--hv-line); }
.hv-auth__trust-item { display: flex; align-items: center; gap: 10px; }
.hv-auth__trust-ico { flex: 0 0 auto; color: var(--hv-primary); }
.hv-auth__trust-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.hv-auth__trust-txt b { color: var(--hv-ink); font-size: var(--hv-fs-sm); font-weight: var(--hv-fw-bold); line-height: 1.2; }
.hv-auth__trust-txt span { color: var(--hv-muted); font-size: var(--hv-fs-xs); }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1024px) {
  .hv-auth__grid { grid-template-columns: 1fr; gap: var(--hv-space-6); }
  .hv-auth__main { order: -1; }               /* form first on tablet/mobile */
  .hv-auth__aside { padding-top: 0; }
  .hv-auth__hero { display: none; }            /* decorative image hidden when stacked */
  .hv-auth__headline { font-size: var(--hv-fs-h1); }
}
@media (max-width: 560px) {
  .hv-auth-canvas { padding: var(--hv-space-4); }
  .hv-auth__card { padding: var(--hv-space-5); }
  .hv-auth__stats { grid-template-columns: repeat(2, 1fr); gap: var(--hv-space-4) var(--hv-space-3); }
  .hv-auth__stat:nth-child(even) { border-right: 0; }
  .hv-auth__promo, .hv-auth__social-proof { flex-wrap: wrap; }
  .hv-auth__promo-btn { width: 100%; text-align: center; }
  .hv-auth__trust { grid-template-columns: 1fr 1fr; gap: var(--hv-space-4) var(--hv-space-3); }
  .hv-auth__social-btn { padding: 0.8em 0.35em; }
  .hv-auth-footer__inner { flex-direction: column; text-align: center; }
}


/* ---- Responsive ------------------------------------------------------------ */
@media (max-width: 960px) {
  /* :has() kept separate from the widget selector (old-browser rule validity) */
  .elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab > .woocommerce { flex-direction: column; gap: var(--hv-space-4); }
  .hv-theme.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { flex-direction: column; gap: var(--hv-space-4); }
  .hv-theme.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation,
  .elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-navigation { width: 100%; flex-basis: auto; }
  .hv-theme.woocommerce-account .woocommerce > .woocommerce-MyAccount-content,
  .elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content { width: 100%; flex-basis: auto; }

  /* Sidebar → collapsible disclosure under a toggle button */
  .hv-account-nav { position: static; }
  .hv-account-nav__toggle { display: flex; }
  .hv-account-nav ul { display: none; margin-top: var(--hv-space-2); }
  .hv-account-nav.is-open ul { display: flex; }
  .hv-account-nav li.is-active a::before { display: none; }

  .hv-dash__stats { grid-template-columns: repeat(2, 1fr); }
  .hv-dash .hv-card { padding: var(--hv-space-5); }
}

@media (max-width: 640px) {
  .hv-dash__stats { grid-template-columns: 1fr 1fr; }
  /* Narrow cards: smaller value type + wrapping so long wallet amounts fit */
  .hv-stat-card { padding: var(--hv-space-4); min-width: 0; }
  .hv-stat-card b { font-size: var(--hv-fs-h3); overflow-wrap: anywhere; }
  .hv-dash__actions { flex-basis: 100%; grid-template-columns: 1fr; }
  .hv-theme .woocommerce-MyAccount-content { padding: var(--hv-space-4); }
  .hv-theme .woocommerce-MyAccount-content .hv-addresses,
  .hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses,
  .elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content .woocommerce-Addresses { grid-template-columns: 1fr !important; }

  /* Tables stay TABLES on mobile — the row scrolls horizontally inside its
     container instead of stacking into per-row cards, so the desktop columns,
     hierarchy and styling are preserved (req: keep the table layout). */
  .hv-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .hv-table-scroll .hv-account-table { min-width: 460px; }
  /* WooCommerce responsive tables (orders / wallet / payment methods) have no
     wrapper we control, so the table element itself is the scroll container. */
  .hv-theme .woocommerce-MyAccount-content table.shop_table_responsive {
    display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;
  }
  /* Compact cells + single-line rows so columns align and read in one swipe.
     Scoped to tables that HAVE a scroll container (.hv-table-scroll wrapper for
     the dashboard table; display:block scroll for .shop_table_responsive). The
     View-Order details table (.shop_table.order_details, no scroll container)
     is deliberately excluded so its product names keep wrapping — nowrap there
     would overflow the page. */
  .hv-theme .hv-account-table th, .hv-theme .hv-account-table td,
  .hv-theme .woocommerce-MyAccount-content table.shop_table_responsive th,
  .hv-theme .woocommerce-MyAccount-content table.shop_table_responsive td {
    white-space: nowrap; padding: var(--hv-space-2) var(--hv-space-3);
  }
  .hv-theme .woocommerce-MyAccount-content table .button,
  .hv-account-table .hv-btn--sm { width: auto; }
}

/* =========================================================================
   DRAW DASHBOARD — lottery "My Draws" account endpoint
   ----------------------------------------------------------------------------
   Plugin markup (unchanged): .lty-myaccount-lottery-wrapper > h2 (title) +
   .lty-dashboard-navigation nav a (tabs) + .lty-myaccount-lottery-contents >
   .lty-data-table-wrapper > table.lty-frontend-table (cells → .lty_lottery_
   {status}_status > span badges). Styled to the premium look here; the plugin's
   own frontend.css is overridden by load order + specificity (this sheet loads
   last on account pages). Only the tab icon markup is overridden (navigation.php).
   ========================================================================= */
.hv-theme .lty-myaccount-lottery-wrapper { display: flex; flex-direction: column; gap: var(--hv-space-5); }
.hv-theme .lty-myaccount-lottery-wrapper > h2 {
  margin: 0; font-size: var(--hv-fs-h2); font-weight: var(--hv-fw-black);
  color: var(--hv-ink); line-height: 1.1;
}
.hv-theme .lty-myaccount-lottery-contents { margin: 0; }

/* Tabs → premium segmented pills */
.hv-theme .lty-dashboard-navigation { margin: 0; }
.hv-theme .lty-dashboard-navigation nav {
  display: flex; flex-wrap: wrap; gap: var(--hv-space-2);
  background: var(--hv-surface-2); border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius); padding: var(--hv-space-2);
}
.hv-theme .lty-dashboard-navigation nav a {
  display: inline-flex; align-items: center; gap: var(--hv-space-2);
  padding: 0.6em 1em; border-radius: var(--hv-radius-sm);
  color: var(--hv-body) !important; font-weight: var(--hv-fw-medium);
  font-size: var(--hv-fs-sm); text-decoration: none !important; white-space: nowrap;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.hv-theme .lty-dashboard-navigation nav a span { margin: 0; } /* neutralise plugin's margin-right:5px so the flex gap is the only spacing */
.hv-theme .lty-dashboard-navigation nav a .hv-draw-tab__ico { display: inline-flex; color: var(--hv-muted); transition: color .15s ease; }
.hv-theme .lty-dashboard-navigation nav a:hover { background: var(--hv-blue-050); color: var(--hv-primary) !important; }
.hv-theme .lty-dashboard-navigation nav a:hover .hv-draw-tab__ico { color: var(--hv-primary); }
.hv-theme .lty-dashboard-navigation nav a.lty-current {
  background: var(--hv-primary); color: #fff !important;
  font-weight: var(--hv-fw-bold); box-shadow: var(--hv-shadow-sm);
}
.hv-theme .lty-dashboard-navigation nav a.lty-current .hv-draw-tab__ico { color: #fff; }
/* Fallback: hide the plugin Dashicon if the navigation.php override didn't run */
.hv-theme .lty-dashboard-navigation nav a .dashicons { display: none; }

/* Table → premium card.
   Scoped to .lty-myaccount-lottery-contents so the "View more details" popup —
   which reuses .lty-data-table-wrapper / .lty-frontend-table but is moved to
   <body> (outside this container) when opened — keeps the plugin's own modal
   layout. */
.hv-theme .lty-myaccount-lottery-contents .lty-data-table-wrapper {
  background: var(--hv-surface); border: 1px solid var(--hv-line);
  border-radius: var(--hv-radius-lg); box-shadow: var(--hv-shadow-sm); overflow: hidden;
}
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table { width: 100%; border-collapse: collapse; margin: 0; border: 0; }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table thead { background: var(--hv-surface-2); }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table thead th {
  padding: var(--hv-space-3) var(--hv-space-4); border: 0;
  font-size: var(--hv-fs-xs); font-weight: var(--hv-fw-bold);
  text-transform: uppercase; letter-spacing: var(--hv-ls-wide);
  color: var(--hv-muted); text-align: left; white-space: nowrap; word-break: normal;
}
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody td {
  padding: var(--hv-space-4); border: 0; border-bottom: 1px solid var(--hv-line);
  font-size: var(--hv-fs-sm); color: var(--hv-body); text-align: left;
  vertical-align: middle; word-break: normal; overflow-wrap: anywhere;
}
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody tr:last-child td { border-bottom: 0; }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody tr:nth-child(2n) { background: color-mix(in srgb, var(--hv-surface-2) 55%, transparent); }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody tr:hover td { background: var(--hv-blue-050); }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody td a {
  color: var(--hv-primary) !important; font-weight: var(--hv-fw-bold);
  font-size: var(--hv-fs-sm); text-decoration: none !important;
}
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody td a:hover { color: #6CA8FF !important; text-decoration: underline; }

/* Status → premium pill badges (brand palette; scoped to this table so product
   pages / loop cards keep the plugin's own status styling). */
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_not_started_status span,
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_started_status span,
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_failed_status span,
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_finished_status span,
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_closed_status span {
  display: inline-block; float: none; padding: 0.35em 0.85em;
  border-radius: var(--hv-radius-pill); font-size: var(--hv-fs-xs);
  font-weight: var(--hv-fw-bold); white-space: nowrap; letter-spacing: 0.01em;
}
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_finished_status span { background: var(--hv-blue-100); color: #6CA8FF; }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_closed_status span { background: var(--hv-orange-050); color: #6CA8FF; }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_started_status span { background: var(--hv-green-100); color: var(--hv-green-500); }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_not_started_status span { background: var(--hv-orange-050); color: #6CA8FF; }
.hv-theme .lty-myaccount-lottery-contents .lty-frontend-table .lty_lottery_failed_status span { background: rgba(239,68,68,.14); color: var(--hv-red-500); }

/* Empty / no-products notice */
.hv-theme .lty-myaccount-lottery-contents .lty-no-product-notice { display: block; padding: var(--hv-space-7) var(--hv-space-5); text-align: center; color: var(--hv-muted); }

/* ---- Draw Dashboard: mobile (≤768px, matching the plugin's own breakpoint) --
   Keep the desktop TABLE and scroll it horizontally instead of the plugin's
   per-row card stacking. Each rule out-specifies the plugin's frontend.css
   (.hv-theme + container prefix) and re-asserts table semantics + kills the
   data-title pseudo-labels. */
@media (max-width: 768px) {
  .hv-theme .lty-myaccount-lottery-contents .lty-data-table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table { min-width: 640px; }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table thead { display: table-header-group; }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody { display: table-row-group; }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody tr { display: table-row; }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tbody tr td {
    display: table-cell; text-align: left !important;
    border-right: 0; border-bottom: 1px solid var(--hv-line);
    padding: var(--hv-space-3);
  }
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tr td::before,
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tr td::after { content: none !important; display: none !important; }
  /* Pagination footer stays centred (the tbody-scoped left-align above skips it) */
  .hv-theme .lty-myaccount-lottery-contents .lty-frontend-table tfoot td { display: table-cell; text-align: center !important; }
  /* Tabs: one scrollable row rather than wrapping */
  .hv-theme .lty-dashboard-navigation nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .hv-theme .lty-dashboard-navigation nav a { flex: 0 0 auto; }
  .hv-theme .lty-myaccount-lottery-wrapper > h2 { font-size: var(--hv-fs-h3); }
}

/* =========================================================================
   MY REFERRAL — referral-reward-system plugin reskin (.rrs-app)
   ----------------------------------------------------------------------------
   The plugin ships a solid, responsive premium layout but in off-brand indigo/
   violet/pink with a system font. We remap its --rrs-* design tokens to the
   Highland Vault tokens and rebrand the few hard-coded gradients / !important
   colours, so the whole page becomes a native part of the theme. CSS-only — no
   markup or logic change. Scoped to .hv-theme .rrs-app (only exists on this
   endpoint), and every rule out-specifies the plugin's own .rrs-* (0,1,x) via
   the .hv-theme prefix.
   ========================================================================= */
.hv-theme .rrs-app {
  --rrs-primary:   var(--hv-primary);
  --rrs-primary-2: var(--hv-blue-700);
  --rrs-primary-3: var(--hv-primary);
  --rrs-primary-d: var(--hv-blue-700);
  --rrs-success:   var(--hv-green-500);
  --rrs-success-d: var(--hv-green-600);
  --rrs-warning:   var(--hv-orange-500);
  --rrs-danger:    var(--hv-red-500);
  --rrs-gold:      var(--hv-gold-500);
  --rrs-text:      var(--hv-ink);
  --rrs-text-2:    var(--hv-body);
  --rrs-text-3:    var(--hv-muted);
  --rrs-bg:        var(--hv-surface);
  --rrs-bg-soft:   var(--hv-surface-2);
  --rrs-bg-soft-2: var(--hv-surface-2);
  --rrs-border:    var(--hv-line);
  --rrs-border-2:  var(--hv-line);
  --rrs-radius-sm: var(--hv-radius-sm);
  --rrs-radius:    var(--hv-radius);
  --rrs-radius-lg: var(--hv-radius-lg);
  --rrs-shadow-xs: var(--hv-shadow-sm);
  --rrs-shadow:    var(--hv-shadow-sm);
  --rrs-shadow-lg: var(--hv-shadow-lg);
  font-family: var(--hv-font);
}
/* Buttons/inputs don't inherit font-family by default — set it explicitly. */
.hv-theme .rrs-app button,
.hv-theme .rrs-app input { font-family: var(--hv-font); }

/* The referral page lays out its OWN cards (like the dashboard) → drop the
   account content-card chrome so they float cleanly instead of nesting. Mirrors
   the account-layout selectors (+ :has(.rrs-app)) so padval:0 out-specifies the
   generic (0,4,0) and Elementor-widget (0,5,0) content-padding rules above. */
.hv-theme.woocommerce-account .woocommerce > .woocommerce-MyAccount-content:has(.rrs-app),
.elementor-widget-woocommerce-my-account.e-my-account-tabs-vertical .e-my-account-tab .woocommerce .woocommerce-MyAccount-content:has(.rrs-app) {
  background: none; border: 0; box-shadow: none; padding: 0;
}

/* Hero → brand navy→blue gradient (was indigo→violet→pink); keep the soft
   white glow layers for depth. */
.hv-theme .rrs-hero {
  background:
    radial-gradient(at 20% 0%, rgba(255,255,255,.18) 0%, transparent 50%),
    radial-gradient(at 80% 100%, rgba(255,255,255,.10) 0%, transparent 50%),
    linear-gradient(135deg, #0A0A0A 0%, #054CBB 55%, #065BE0 100%);
}
.hv-theme .rrs-app .rrs-hero__title { font-size: var(--hv-fs-h2) !important; }
.hv-theme .rrs-hero__amt { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.34); }
/* Decorative hero glow blobs → brand gold + blue (were amber + cyan) */
.hv-theme .rrs-hero__shape--1 { background: var(--hv-gold-500); }
.hv-theme .rrs-hero__shape--2 { background: var(--hv-blue-500); }

/* Buttons → theme weight; rebrand the primary button's hard-coded indigo glow */
.hv-theme .rrs-btn { font-weight: var(--hv-fw-bold); }
.hv-theme .rrs-btn--primary { box-shadow: 0 1px 2px rgba(6,91,224,.3), 0 4px 12px rgba(6,91,224,.2); }

/* Stat icon chips → brand tints (were indigo/violet gradients) */
.hv-theme .rrs-stat__icon { background: var(--hv-blue-050); color: var(--hv-primary); }
.hv-theme .rrs-stat--success .rrs-stat__icon { background: var(--hv-green-100); color: var(--hv-green-500); }
.hv-theme .rrs-stat--warn .rrs-stat__icon { background: var(--hv-orange-050); color: #6CA8FF; }
.hv-theme .rrs-stat--wallet .rrs-stat__icon { background: var(--hv-blue-100); color: #6CA8FF; }
.hv-theme .rrs-stat::before { background: linear-gradient(135deg, transparent, rgba(6,91,224,.05)); }

/* "How it works" step icon chips → brand tints (step 1 base was hard-coded
   indigo). The modifier rules are re-asserted at (0,3,0) so the base override
   can't flatten the green/gold steps. */
.hv-theme .rrs-step__icon { background: var(--hv-blue-050); }
.hv-theme .rrs-step--success .rrs-step__icon { background: var(--hv-green-100); }
.hv-theme .rrs-step--gold .rrs-step__icon { background: var(--hv-orange-050); }

/* "Both code & link work" info tag → brand blue */
.hv-theme .rrs-tag--info { background: var(--hv-blue-050); color: #6CA8FF; border-color: var(--hv-blue-100); }

/* Big code card → brand navy with a blue glow (was violet/pink glow) */
.hv-theme .rrs-codecard {
  background:
    radial-gradient(at 80% -20%, rgba(6,91,224,.5), transparent 50%),
    radial-gradient(at -10% 110%, rgba(59,130,246,.35), transparent 50%),
    linear-gradient(135deg, #0A0A0A, #141414);
}

/* Referral-link row → brand focus ring (was indigo) */
.hv-theme .rrs-linkrow:focus-within { border-color: var(--hv-primary); box-shadow: var(--hv-ring); background: var(--hv-surface); }

/* Referral status badges → brand status palette */
.hv-theme .rrs-badge--completed { background: var(--hv-green-100); color: var(--hv-green-500); border-color: var(--hv-green-100); }
.hv-theme .rrs-badge--pending { background: var(--hv-orange-050); color: #6CA8FF; border-color: var(--hv-orange-050); }
.hv-theme .rrs-badge--rejected,
.hv-theme .rrs-badge--flagged { background: rgba(239,68,68,.14); color: var(--hv-red-500); border-color: rgba(239,68,68,.35); }

/* Mobile → full-width hero CTAs (the plugin already handles the rest well) */
@media (max-width: 560px) {
  .hv-theme .rrs-hero__actions { flex-direction: column; }
  .hv-theme .rrs-hero__actions .rrs-btn { width: 100%; justify-content: center; }
}

/* =========================================================================
   MY ACCOUNT — ADDRESS · ACCOUNT DETAILS · CREDITS · WALLET · SPEND LIMITS
   ----------------------------------------------------------------------------
   Premium elevation for the remaining account endpoints. Generic rules (action
   buttons, form fields) apply to every section; section-specific rules follow.
   The plugin sections (Spend Limits = .usl-*, Credits = --wps-wpr-*, Wallet =
   .wps-*) are rebranded via their own hooks. No markup/logic change.
   ========================================================================= */

/* ---- Primary action buttons (Save address / Save changes / plugin submits) --
   Give every account submit/action button the theme's premium primary look.
   The auth (logged-out) submit button lives under .hv-auth, not here, so it is
   untouched; plugin buttons with their own skins (.rrs-btn/.usl-btn) are excluded. */
.hv-theme .woocommerce-MyAccount-content button.button:not(.wps-btn),
.hv-theme .woocommerce-MyAccount-content input.button:not(.wps-btn),
.hv-theme .woocommerce-MyAccount-content input[type="submit"]:not(.wps-btn),
.hv-theme .woocommerce-MyAccount-content button[type="submit"]:not(.rrs-btn):not(.usl-btn):not(.wps-btn) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--hv-space-2);
  padding: 0.85em 1.6em;
  background: var(--hv-primary) !important; color: var(--hv-primary-ink) !important;
  border: 0; border-radius: var(--hv-radius-sm);
  font-family: var(--hv-font); font-weight: var(--hv-fw-bold); font-size: var(--hv-fs-body);
  line-height: 1; cursor: pointer; text-decoration: none !important;
  transition: transform .12s ease, box-shadow .15s ease, filter .15s ease;
}
/* bg is !important above (to beat the Elementor kit), so hover darkens via filter */
.hv-theme .woocommerce-MyAccount-content button.button:not(.wps-btn):hover,
.hv-theme .woocommerce-MyAccount-content input.button:not(.wps-btn):hover,
.hv-theme .woocommerce-MyAccount-content input[type="submit"]:not(.wps-btn):hover,
.hv-theme .woocommerce-MyAccount-content button[type="submit"]:not(.rrs-btn):not(.usl-btn):not(.wps-btn):hover {
  filter: brightness(1.08); transform: translateY(-1px); box-shadow: var(--hv-shadow);
}
.hv-theme .woocommerce-MyAccount-content button.button:not(.wps-btn):focus-visible,
.hv-theme .woocommerce-MyAccount-content input[type="submit"]:focus-visible,
.hv-theme .woocommerce-MyAccount-content button[type="submit"]:focus-visible { outline: none; box-shadow: var(--hv-ring); }
/* Keep in-table action buttons compact (re-assert over the block rule above). */
.hv-theme .woocommerce-MyAccount-content table .button { padding: 0.45em 0.95em !important; font-size: var(--hv-fs-sm); }

/* Intro line ("The following addresses will be used…") → muted lead. */
.hv-theme .woocommerce-MyAccount-content > p:first-of-type { color: var(--hv-muted); margin-top: 0; }

/* Slightly roomier form fields across every account form. */
.hv-theme .woocommerce-MyAccount-content .input-text,
.hv-theme .woocommerce-MyAccount-content select,
.hv-theme .woocommerce-MyAccount-content textarea { padding: 0.8em 1em; font-size: var(--hv-fs-body); }
.hv-theme .woocommerce-MyAccount-content .form-row .required { color: var(--hv-primary); border: 0; text-decoration: none; }

/* ===== ADDRESS — premium billing/shipping cards ========================= */
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses { gap: var(--hv-space-5); }
/* .woocommerce-Addresses ancestor added so bg/padding beat the existing
   .col-1/.col-2 rule (0,4,0) that also targets these cards. */
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
  background: var(--hv-surface); box-shadow: var(--hv-shadow-sm);
  padding: var(--hv-space-5);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address:hover {
  transform: translateY(-3px); box-shadow: var(--hv-shadow-lg); border-color: var(--hv-blue-100);
}
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title :is(h2, h3) { display: flex; align-items: center; gap: var(--hv-space-2); }
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title :is(h2, h3)::before {
  content: ""; width: 20px; height: 20px; flex: 0 0 auto;
  background: center / contain no-repeat;
  background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%230A6BFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"%3E%3Cpath d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z"/%3E%3Ccircle cx="12" cy="10" r="3"/%3E%3C/svg%3E');
}
/* "Edit …" link → pill button */
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title .edit {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0.4em 0.95em; border: 1px solid var(--hv-primary); border-radius: var(--hv-radius-pill);
  color: var(--hv-primary) !important; font-weight: var(--hv-fw-bold);
  text-decoration: none !important; transition: background .15s ease, color .15s ease;
}
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address-title .edit:hover { background: var(--hv-primary); color: #fff !important; }
.hv-theme .woocommerce-MyAccount-content .woocommerce-Address address { color: var(--hv-body); }

/* ===== ACCOUNT DETAILS — cleaner form / password section ================= */
.hv-theme .woocommerce-EditAccountForm { max-width: 760px; }
.hv-theme .woocommerce-EditAccountForm fieldset { background: var(--hv-surface-2); }
.hv-theme .woocommerce-EditAccountForm fieldset legend { font-size: var(--hv-fs-h4); }
/* WooCommerce's field hints (<span><em>…</em></span>) → helper text. */
.hv-theme .woocommerce-EditAccountForm .woocommerce-form-row span em {
  display: block; margin-top: 5px; font-size: var(--hv-fs-xs); color: var(--hv-muted); font-style: normal;
}

/* ===== SPEND LIMITS (User-Spend-Limits-for-Giveaways, .usl-*) — recolor ===
   Same off-brand indigo + CSS-variable pattern as the referral plugin; remap
   its --usl-* tokens to brand + rebrand the hard-coded button gradient. */
.hv-theme .usl-dashboard {
  --usl-primary: var(--hv-primary);
  --usl-success: var(--hv-green-600);
  --usl-warning: var(--hv-orange-500);
  --usl-danger:  var(--hv-red-500);
  --usl-card:    var(--hv-surface);
  --usl-border:  var(--hv-line);
  --usl-text:    var(--hv-ink);
  --usl-muted:   var(--hv-muted);
  --usl-radius:  var(--hv-radius);
  --usl-shadow:  var(--hv-shadow-sm);
  font-family: var(--hv-font); max-width: none;
}
.hv-theme .usl-dashboard button,
.hv-theme .usl-dashboard input { font-family: var(--hv-font); }
.hv-theme .usl-btn { background: var(--hv-primary); }
.hv-theme .usl-btn:hover { background: var(--hv-blue-700); opacity: 1; }
.hv-theme .usl-field input[type="number"]:focus { border-color: var(--hv-primary); box-shadow: var(--hv-ring); }

/* ===== CREDITS (points-and-rewards; classes use wps_wpr_ underscores, the
   accent is var(--wps-wpr-primary)) — remap the accent to brand + rebrand the
   "View Point Log" button (it was rendering black/off-brand). !important beats
   the plugin's inline/admin-set colour value. ===== */
.hv-theme .woocommerce-MyAccount-content [class*="wps_wpr"] { --wps-wpr-primary: var(--hv-primary) !important; }
.hv-theme .woocommerce-MyAccount-content .wps_wpr_view_log a { background: var(--hv-primary) !important; color: #fff !important; }

/* ===== WALLET (wallet-system-for-woocommerce, .wps_wcb_* / .wps-*) ========
   The balance card colour comes from the plugin's admin-set --wallet-pc (was a
   purple); remap it to brand and paint the balance card a premium navy→blue. */
.hv-theme .wps_wcb_wallet_display_wrapper { --wallet-pc: var(--hv-primary) !important; }
.hv-theme .wps_wcb_wallet_balance_container {
  background: linear-gradient(135deg, #0A0A0A, #065BE0) !important;
  border-radius: var(--hv-radius-lg) !important; padding: var(--hv-space-5) !important;
}
.hv-theme .wps_wcb_wallet_balance_container .woocommerce-Price-amount {
  font-size: var(--hv-fs-h1) !important; font-weight: var(--hv-fw-black); color: #fff;
}
.hv-theme .wps_wcb_wallet_view_transaction a,
.hv-theme .wps_wcb_wallet_view_transaction a h4 { color: #fff !important; }
.hv-theme .wps-btn,
.hv-theme .wps-wsfw button.button {
  background: var(--hv-primary) !important; color: #fff !important;
  border: 0 !important; border-radius: var(--hv-radius-sm) !important;
  font-family: var(--hv-font); font-weight: var(--hv-fw-bold);
}
.hv-theme .wps-btn:hover { filter: brightness(1.05); }
.hv-theme .wps-wsfw-wallet-field-table th { background: var(--hv-surface-2); color: var(--hv-muted); font-family: var(--hv-font); }
.hv-theme .wps-wsfw-wallet-field-table td { color: var(--hv-body); font-family: var(--hv-font); }

/* ---- Mobile: full-width action buttons + tighter cards ------------------ */
@media (max-width: 640px) {
  .hv-theme .woocommerce-MyAccount-content button.button:not(.wps-btn),
  .hv-theme .woocommerce-MyAccount-content input[type="submit"]:not(.wps-btn),
  .hv-theme .woocommerce-MyAccount-content button[type="submit"]:not(.rrs-btn):not(.usl-btn):not(.wps-btn),
  .hv-theme .usl-btn { width: 100%; }
  .hv-theme .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address { padding: var(--hv-space-4); }
}
