/* ==========================================================================
   NOVAURA — Account, login and registration

   Styles WooCommerce's own account markup and the NOVAURA auth pages.
   Only myaccount/dashboard.php is overridden; everything else here is CSS
   over WooCommerce's own forms, endpoints and navigation.
   ========================================================================== */

/* ==========================================================================
   Authentication pages
   ========================================================================== */
/* The register layout is edge-to-edge; the narrow variant is centred. */
.nva-auth__wrap { padding: var(--nva-s-32) 0 0; }
.nva-auth__wrap--narrow { padding: var(--nva-s-32) var(--nva-s-6) var(--nva-s-24); }
.nva-auth__wrap--narrow {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70vh;
}

.nva-auth__panel { width: 100%; max-width: 25rem; }
.nva-auth__panel--wide {
  max-width: 27.5rem;
  padding: var(--nva-s-16) var(--nva-s-6);
  margin-inline: auto;
}

.nva-auth__mark {
  display: flex;
  justify-content: center;
}
.nva-auth__mark img {
  width: 95px;
  height: 95px;
  object-fit: contain;
}
.nva-auth__mark img:not(.nva-logo--vector) { filter: contrast(1.4) brightness(1.02); }

.nva-auth__heading {
  margin-top: var(--nva-s-8);
  font-family: var(--nva-font-heading);
  font-size: clamp(1.8rem, 2.5vw, 2.2rem);
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  text-align: center;
  color: var(--nva-ink);
}
.nva-auth__heading--left { margin-top: 0; text-align: left; font-size: clamp(2rem, 3vw, 2.6rem); }

.nva-auth__rule {
  display: block;
  width: 40px;
  height: 2px;
  margin-top: var(--nva-s-4);
  border-radius: var(--nva-r-full);
  background-color: var(--nva-red);
}

.nva-auth__sub {
  margin-top: 0.625rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  text-align: center;
  color: var(--nva-ink-45);
}
.nva-auth__sub--left { margin-top: var(--nva-s-5); text-align: left; line-height: 1.7; }

.nva-auth__notices { margin-top: var(--nva-s-6); }

.nva-auth__form { margin-top: var(--nva-s-9); }
.nva-auth__form--wide { margin-top: var(--nva-s-8); }

/* --- Pill fields, as in the reference login ------------------------------ */
.nva-auth__field { position: relative; margin-bottom: var(--nva-s-4); }

.nva-auth__field input {
  width: 100%;
  padding: 0.875rem 1rem 0.875rem 2.75rem;
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-full);
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: 0.875rem;
  color: var(--nva-ink);
  transition: border-color var(--nva-d-fast) var(--nva-ease);
}
.nva-auth__field input::placeholder { color: var(--nva-ink-35); }
.nva-auth__field input:focus { outline: none; border-color: rgba(0,0,0,0.25); }

.nva-auth__icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--nva-ink-30);
  pointer-events: none;
}

.nva-auth__reveal {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--nva-ink-30);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-auth__reveal:hover { color: var(--nva-ink-60); }
.nva-auth__reveal--field { top: auto; bottom: 0.875rem; transform: none; }

.nva-auth__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nva-s-4);
  margin-top: var(--nva-s-3);
}

.nva-auth__remember {
  display: inline-flex;
  align-items: center;
  gap: var(--nva-s-2);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-55);
  cursor: pointer;
}
.nva-auth__remember input { width: 15px; height: 15px; accent-color: var(--nva-ink); }

.nva-auth__forgot {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-55);
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-auth__forgot:hover { color: var(--nva-ink); }

.nva-auth__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--nva-s-2);
  width: 100%;
  margin-top: var(--nva-s-7);
  padding: 0.875rem var(--nva-s-8);
  border: 0;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  cursor: pointer;
  transition: background-color var(--nva-d-base) var(--nva-ease);
}
.nva-auth__submit:hover { background-color: var(--nva-ink-hover); color: var(--nva-on-dark); }

.nva-auth__alt {
  margin-top: var(--nva-s-8);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  text-align: center;
  color: var(--nva-ink-55);
}
.nva-auth__alt a {
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.nva-auth__alt-link { color: var(--nva-red); text-decoration: none; }

.nva-auth__terms {
  margin-top: var(--nva-s-5);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  line-height: 1.6;
  text-align: center;
  color: var(--nva-ink-45);
}

.nva-auth__row-2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--nva-s-4);
}

.nva-auth__form--wide .nva-field { margin-bottom: var(--nva-s-5); }
.nva-auth__form--wide .nva-field { position: relative; }
.nva-auth__check { margin-top: var(--nva-s-6); }
.nva-auth__check input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
}

.nva-auth__closed {
  margin-top: var(--nva-s-8);
  padding: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-left: 2px solid var(--nva-red);
  border-radius: var(--nva-r-md);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  line-height: 1.7;
  color: var(--nva-ink-60);
}
.nva-auth__admin-note { margin-top: var(--nva-s-3); font-size: var(--nva-t-micro); color: var(--nva-ink-50); }


/* --- Guest path -----------------------------------------------------------
   A deliberately quieter second tier beneath the primary sign-in / create
   account action, separated by a rule so it never competes with them.
   -------------------------------------------------------------------------- */
/* The submit style applied to an anchor, for the reset flow's next steps. */
.nva-auth__submit--link {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: var(--nva-s-6);
  text-decoration: none;
}
.nva-auth__submit--link:hover { color: var(--nva-on-dark); }

.nva-auth__guest {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  margin-top: var(--nva-s-6);
  padding-top: var(--nva-s-6);
  border-top: 1px solid var(--nva-line);
  text-align: center;
}

.nva-auth__guest-label {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-45);
}

.nva-auth__guest-link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-60);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-auth__guest-link:hover { color: var(--nva-ink); }
.nva-auth__guest-link .nva-icon { color: var(--nva-ink-40); }
.nva-auth__guest-link:hover .nva-icon { color: var(--nva-ink); }

/* --- Register brand panel ------------------------------------------------ */
.nva-auth__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 100vh;
  min-height: 100svh;
}

.nva-auth__brand { display: none; }

/* Dark panel: copy centred in the upper area, product image beneath fading
   up into black — as the reference does. */
.nva-auth__brand {
  position: relative;
  flex-direction: column;
  overflow: hidden;
  background-color: var(--nva-black);
  color: var(--nva-on-dark);
}

.nva-auth__brand-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  padding: var(--nva-s-16) var(--nva-s-12);
}

.nva-auth__brand-rule {
  display: block;
  width: 40px;
  height: 2px;
  margin-top: var(--nva-s-6);
  border-radius: var(--nva-r-full);
  background-color: var(--nva-red);
}

.nva-auth__brand-media { position: relative; height: 38vh; }
.nva-auth__brand-media img { width: 100%; height: 100%; object-fit: cover; }
.nva-auth__brand-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, transparent, var(--nva-black));
}

.nva-auth__brand-eyebrow {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-medium);
  text-transform: uppercase;
  letter-spacing: 0.3em;
  color: rgba(255,255,255,0.5);
}

.nva-auth__brand-heading {
  margin-top: var(--nva-s-6);
  font-family: var(--nva-font-heading);
  font-size: clamp(2.4rem, 3.5vw, 3.4rem);
  font-weight: var(--nva-w-medium);
  line-height: 1.05;
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-on-dark);
}

.nva-auth__brand-body {
  max-width: 24rem;
  margin-top: var(--nva-s-6);
  font-family: var(--nva-font-body);
  font-size: 0.9375rem;
  line-height: 1.8;
  color: rgba(255,255,255,0.55);
}

/* --- Registration trust signals ------------------------------------------ */
.nva-auth__trust {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: var(--nva-s-12);
  padding-top: var(--nva-s-8);
  border-top: 1px solid var(--nva-line);
  list-style: none;
}

.nva-auth__trust-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.nva-auth__trust-icon { width: 24px; height: 24px; stroke-width: 1.4; color: var(--nva-ink); }

.nva-auth__trust-title {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink);
}

.nva-auth__trust-body {
  margin-top: 0.25rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  line-height: 1.5;
  color: var(--nva-ink-50);
}

/* ==========================================================================
   Member portal — full-screen application shell

   A fixed dark rail down the left edge at full viewport height, a sticky top
   bar, and a content column with its own padding. No site navbar, no site
   footer, no editorial container.
   ========================================================================== */
/* The shell owns the full viewport width. Only this wrapper carries the
   layout grid — the body carries .nva-account-page, a scope class with no
   layout of its own. */
.nva-portal {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  background-color: var(--nva-bg);
}

/* Grid and flex children default to min-width:auto, which lets a wide or
   unbreakable child dictate the track width. Every level of the shell is
   pinned to 0 so the content column always takes the remaining space
   instead of shrinking to its contents. */
.nva-portal > *,
.nva-portal__column > *,
.nva-portal__main > * { min-width: 0; }

.nva-portal__column {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  min-height: 100vh;
  min-height: 100svh;
}

.nva-portal__main {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  padding: var(--nva-s-12) var(--nva-s-6);
}

/* WooCommerce's own wrappers must not reintroduce a width constraint.
   This is deliberately generic so every present and future account
   endpoint inherits the full canvas without per-page rules. */
.nva-portal__main .woocommerce,
.nva-portal__main .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  max-width: none;
  min-width: 0;
}

/*
 * Direct children get their constraints cleared but NOT an explicit width.
 *
 * An explicit width: 100% here over-constrains any child that bleeds out of
 * the content padding with negative margins: the used width cannot grow to
 * absorb them, so the browser drops margin-right and the element ends short
 * of the right edge. That is what left the white strip beside the NOVA Home
 * hero. Block-level children fill their container anyway, so clearing the
 * constraints is all that was ever needed.
 */
.nva-portal__main .woocommerce-MyAccount-content > * {
  float: none;
  max-width: none;
  min-width: 0;
}

/* --------------------------------------------------------------------------
   The rail
   -------------------------------------------------------------------------- */
.nva-rail { display: none; }

.nva-rail__logo { display: block; padding-inline: 0.25rem; }
/*
 * No filter.
 *
 * The rail now renders only a genuine dark-background logo, so there is
 * nothing to invert. brightness(0) invert(1) turned every pixel carrying any
 * alpha into opaque white, which painted the light raster's own canvas as a
 * rectangle and its stray specks as white artifacts.
 */
.nva-rail__logo img {
  height: 58px;
  width: auto;
  object-fit: contain;
}

/* --------------------------------------------------------------------------
   Rail wordmark

   Shown only while Settings → NOVAURA → Brand → Logo (dark) is empty.
   -------------------------------------------------------------------------- */
.nva-rail__wordmark {
  display: inline-block;
  font-family: var(--nva-font-body);
  font-size: 1.25rem;
  font-weight: var(--nva-w-medium);
  line-height: 1;
  letter-spacing: 0.14em;
  color: var(--nva-on-dark);
  text-indent: 0.14em;
  background: none;
  border: 0;
  box-shadow: none;
  text-shadow: none;
}

.nva-portal-drawer__head .nva-rail__wordmark { font-size: 1.125rem; }

.nva-rail__nav { display: flex; flex-direction: column; }
.nva-rail__list { margin: 0; padding: 0; list-style: none; }

.nva-rail__link {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--nva-s-3);
  padding: 0.75rem var(--nva-s-4);
  border-radius: 0.625rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.45);
  transition: background-color var(--nva-d-fast) var(--nva-ease),
              color var(--nva-d-fast) var(--nva-ease);
}
.nva-rail__link:hover {
  background-color: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.8);
}
.nva-rail__link .nva-icon { flex-shrink: 0; width: 17px; height: 17px; stroke-width: 1.5; }

/* WooCommerce marks the current endpoint */
.nva-rail__list li.is-active .nva-rail__link {
  background-color: rgba(255,255,255,0.07);
  color: #ffffff;
}
.nva-rail__list li.is-active .nva-rail__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 2px;
  height: 20px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-red);
  transform: translateY(-50%);
}

.nva-rail__card {
  margin-top: auto;
  padding: var(--nva-s-5);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--nva-r-lg);
  background-color: rgba(255,255,255,0.02);
}

.nva-rail__card-head { display: flex; align-items: center; gap: var(--nva-s-3); }

.nva-rail__card-mark {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--nva-r-full);
  background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent);
  font-family: var(--nva-font-heading);
  font-size: 1.125rem;
  font-weight: var(--nva-w-semi);
  color: rgba(255,255,255,0.85);
}

.nva-rail__card-name {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: rgba(255,255,255,0.7);
}

.nva-rail__card-tag {
  margin-top: 2px;
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.35);
}

.nva-rail__card-body {
  margin-top: var(--nva-s-4);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  line-height: 1.6;
  color: rgba(255,255,255,0.3);
}

/* --------------------------------------------------------------------------
   Top bar
   -------------------------------------------------------------------------- */
.nva-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
  padding-inline: var(--nva-s-5);
  border-bottom: 1px solid var(--nva-line);
  background-color: rgba(249,249,249,0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.nva-topbar__menu {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: calc( var(--nva-s-2) * -1 );
  color: var(--nva-ink);
}

.nva-topbar__logo {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.nva-topbar__logo img { height: 38px; width: auto; object-fit: contain; }
.nva-topbar__logo img:not(.nva-logo--vector) { filter: contrast(1.4) brightness(1.02); }

.nva-topbar__chip {
  display: flex;
  align-items: center;
  gap: var(--nva-s-3);
  margin-left: auto;
  padding: 0.375rem var(--nva-s-3) 0.375rem 0.375rem;
  border-radius: var(--nva-r-full);
  transition: background-color var(--nva-d-fast) var(--nva-ease);
}
.nva-topbar__chip:hover { background-color: var(--nva-ink-05); }

.nva-topbar__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
}

.nva-topbar__identity { display: none; flex-direction: column; line-height: 1.2; }

.nva-topbar__name {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink);
}

.nva-topbar__status {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-medium);
  letter-spacing: 0.02em;
  color: var(--nva-ink-45);
}

.nva-topbar__caret { display: none; color: var(--nva-ink-40); }

/* --------------------------------------------------------------------------
   Drawer — the rail on small screens
   -------------------------------------------------------------------------- */
.nva-portal-drawer { position: fixed; inset: 0; z-index: 60; }
.nva-portal-drawer[hidden] { display: none; }

.nva-portal-drawer__scrim {
  position: absolute;
  inset: 0;
  background-color: rgba(0,0,0,0.5);
  opacity: 0;
  transition: opacity var(--nva-d-base) var(--nva-ease);
}
.nva-portal-drawer.is-open .nva-portal-drawer__scrim { opacity: 1; }

.nva-portal-drawer__panel {
  position: absolute;
  left: 0;
  top: 0;
  display: flex;
  flex-direction: column;
  width: 300px;
  max-width: 82%;
  height: 100%;
  padding: var(--nva-s-8) var(--nva-s-5) var(--nva-s-8) var(--nva-s-8);
  border-right: 1px solid rgba(255,255,255,0.06);
  background-color: var(--nva-near-black);
  transform: translateX(-100%);
  transition: transform var(--nva-d-slow) var(--nva-ease);
  overflow-y: auto;
}
.nva-portal-drawer.is-open .nva-portal-drawer__panel { transform: translateX(0); }

.nva-portal-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--nva-s-8);
}
.nva-portal-drawer__head .nva-rail__logo img { height: 44px; }

.nva-portal-drawer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  color: rgba(255,255,255,0.7);
}

/* WooCommerce's content column fills the shell */
.nva-portal__main .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  min-width: 0;
}
.nva-portal__main .woocommerce { width: 100%; }

/* ==========================================================================
   NOVA Home
   ========================================================================== */

/* Full-bleed across the content column: the negative margins mirror
   .nva-portal__main's padding at each breakpoint, as the reference does.
   width: auto is load-bearing — an explicit width would over-constrain the
   box and collapse the bleed on the right. */
.nva-nova__hero {
  width: auto;
  position: relative;
  display: flex;
  align-items: flex-start;
  overflow: hidden;
  height: 340px;
  margin: calc( var(--nva-s-12) * -1 ) calc( var(--nva-s-6) * -1 ) 0;
  padding: 3.5rem var(--nva-s-6) 0;
  background-color: #F2F2F3;
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
}

.nva-nova__hero-wash {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, transparent 55%, var(--nva-bg) 100%),
    radial-gradient(36% 44% at 82% 100%, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0) 70%),
    linear-gradient(90deg, transparent 0%, transparent 50%, rgba(255,255,255,0.08) 100%),
    radial-gradient(58% 80% at 16% 50%, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.16) 46%, rgba(255,255,255,0) 76%);
}

.nva-nova__hero-copy { position: relative; z-index: 1; max-width: 68%; }

.nva-nova__eyebrow {
  font-family: var(--nva-font-body);
  font-size: 11px;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--nva-ink-45);
}

.nva-nova__greeting {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-heading);
  font-size: clamp(2rem, 6vw, 4rem);
  font-weight: var(--nva-w-semi);
  line-height: 1.02;
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}
.nva-nova__dot { color: var(--nva-red); }

.nva-nova__tagline {
  margin-top: var(--nva-s-2);
  font-family: var(--nva-font-body);
  font-size: 13px;
  font-weight: var(--nva-w-medium);
  letter-spacing: 0.02em;
  color: var(--nva-ink-55);
}

.nva-nova__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--nva-s-2);
  margin-top: var(--nva-s-4);
  width: fit-content;
  padding: 0.375rem var(--nva-s-3);
  border: 1px solid var(--nva-line);
  border-radius: 5px;
  background-color: var(--nva-surface);
  box-shadow: 0 1px 6px -3px rgba(0,0,0,0.08);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink);
}
.nva-nova__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-red);
}

/* --- Member Overview cards ------------------------------------------------ */
.nva-glance {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: var(--nva-s-4);
}

.nva-glance__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  height: 100%;
  padding: var(--nva-s-4);
  border: 1px solid var(--nva-line);
  border-radius: 16px;
  background-color: var(--nva-surface);
  box-shadow: 0 2px 10px -4px rgba(0,0,0,0.06);
  transition: transform var(--nva-d-slow) var(--nva-ease),
              box-shadow var(--nva-d-slow) var(--nva-ease);
}
.nva-glance__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -24px rgba(0,0,0,0.16);
}

.nva-glance__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  box-shadow: 0 4px 12px -4px rgba(0,0,0,0.25);
}
/* The icon treatment stays identical across all four cards — only the
   VALUE reads as unavailable. A greyed-out card would look broken; a black
   circle with an em-dash reads as "not yet", which is the truth. */

.nva-glance__body { min-width: 0; }

.nva-glance__label {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-medium);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-40);
}

.nva-glance__value {
  margin-top: var(--nva-s-2);
  font-family: var(--nva-font-heading);
  font-size: clamp(22px, 5vw, 36px);
  font-weight: var(--nva-w-semi);
  line-height: 1;
  color: var(--nva-ink);
}
.nva-glance__value .woocommerce-Price-amount { font-family: inherit; }

/* Deliberately not a zero — nothing is asserted about an absent balance.
   Sized identically to a real value so the card proportions are unchanged. */
.nva-glance__value--pending { color: var(--nva-ink-20); }

.nva-glance__note {
  margin-top: var(--nva-s-2);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  line-height: 1.5;
  color: var(--nva-ink-50);
}


/* --- Two-column rows ------------------------------------------------------ */
.nva-nova__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--nva-s-5);
  margin-top: var(--nva-s-6);
  align-items: stretch;
}
.nva-nova__row > * { min-width: 0; }

.nva-nova__card-title {
  font-family: var(--nva-font-heading);
  font-size: 20px;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

/* --- Your NOVA Journey ---------------------------------------------------- */
.nva-journey {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--nva-s-7);
  border: 1px solid var(--nva-line);
  border-radius: 20px;
  background-color: var(--nva-surface);
  box-shadow: 0 2px 10px -4px rgba(0,0,0,0.06);
}

.nva-journey__body {
  display: flex;
  flex: 1;
  align-items: center;
  gap: var(--nva-s-8);
  margin-top: var(--nva-s-6);
}

.nva-journey__copy { flex: 1; min-width: 0; }
.nva-journey .nva-glance__value { font-size: 34px; margin-top: var(--nva-s-2); }

.nva-journey__note {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  line-height: 1.65;
  color: var(--nva-ink-50);
}

.nva-journey__link { margin-top: var(--nva-s-5); }

.nva-journey__ring {
  position: relative;
  flex-shrink: 0;
  width: 128px;
  height: 128px;
}
.nva-journey__ring svg { width: 100%; height: 100%; }

.nva-journey__mark {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--nva-font-heading);
  font-size: 1.875rem;
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink-20);
  transition: color var(--nva-d-base) var(--nva-ease);
}
/* Reads as live once the customer actually has points. */
.nva-journey__mark.is-live { color: var(--nva-ink); }

.nva-journey__ring circle { transition: stroke-dashoffset var(--nva-d-slow) var(--nva-ease); }

/* --- Member Spotlight ----------------------------------------------------- */
.nva-spotlight {
  position: relative;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  height: 100%;
  padding: var(--nva-s-7);
  border-radius: 14px;
  background-color: var(--nva-near-black);
  color: var(--nva-on-dark);
}

.nva-spotlight__wash {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(70% 60% at 24% -12%, rgba(255,255,255,0.07) 0%, rgba(255,255,255,0) 58%),
    radial-gradient(60% 50% at 108% 112%, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, transparent 70%, rgba(255,255,255,0.025) 100%);
}

.nva-spotlight__edge {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent);
}

.nva-spotlight__copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.nva-spotlight__eyebrow {
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: rgba(255,255,255,0.45);
}

.nva-spotlight__headline {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-heading);
  font-size: 2.75rem;
  font-weight: var(--nva-w-semi);
  line-height: 0.95;
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-on-dark);
}
.nva-spotlight__headline--pending {
  font-size: 1.75rem;
  color: rgba(255,255,255,0.75);
}

.nva-spotlight__sub {
  margin-top: 0.375rem;
  font-family: var(--nva-font-heading);
  font-size: 1.25rem;
  font-weight: var(--nva-w-medium);
  color: rgba(255,255,255,0.75);
}
.nva-spotlight__sub--pending {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  line-height: 1.7;
  color: rgba(255,255,255,0.5);
}

.nva-spotlight__code-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: var(--nva-s-6);
}

.nva-spotlight__code-label {
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-medium);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.4);
}

.nva-spotlight__code {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem var(--nva-s-4);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: var(--nva-r-full);
  background-color: rgba(255,255,255,0.03);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
  letter-spacing: 0.1em;
  color: var(--nva-on-dark);
}

.nva-spotlight__expires {
  margin-top: var(--nva-s-4);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  letter-spacing: 0.04em;
  color: rgba(255,255,255,0.4);
}
.nva-spotlight__expires span { color: rgba(255,255,255,0.65); }

.nva-spotlight__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--nva-s-2);
  align-self: flex-start;
  margin-top: auto;
  padding: 0.625rem var(--nva-s-5);
  border-radius: var(--nva-r-full);
  background-color: #ffffff;
  color: #000000;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  transition: background-color var(--nva-d-base) var(--nva-ease);
}
.nva-spotlight__cta:hover { background-color: rgba(255,255,255,0.9); color: #000000; }
.nva-spotlight.is-pending .nva-spotlight__cta { margin-top: var(--nva-s-8); }

.nva-spotlight__media {
  position: relative;
  z-index: 1;
  display: flex;
  flex: 1;
  align-items: flex-end;
  justify-content: flex-end;
}
.nva-spotlight__media img {
  position: relative;
  height: 200px;
  width: auto;
  object-fit: contain;
}
.nva-spotlight__spot {
  position: absolute;
  left: 50%;
  top: 42%;
  width: 240px;
  height: 240px;
  transform: translate(-50%, -50%);
  border-radius: var(--nva-r-full);
  background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0) 68%);
}

/* --- Recent Activity ------------------------------------------------------ */
.nva-activity { margin-top: var(--nva-s-2); list-style: none; }
.nva-activity li + li { border-top: 1px solid var(--nva-line); }

.nva-activity__row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-block: 0.75rem;
}

.nva-activity__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink-05);
  color: var(--nva-ink);
}

.nva-activity__label {
  flex: 1;
  min-width: 0;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-activity__time {
  flex-shrink: 0;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-45);
}

/* --- Recommended For You -------------------------------------------------- */
.nva-recommend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--nva-s-4);
  margin-top: var(--nva-s-5);
}

.nva-recommend__item {
  display: flex;
  flex-direction: column;
  padding: var(--nva-s-4);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-md);
  background-color: var(--nva-bg);
  transition: transform var(--nva-d-slow) var(--nva-ease),
              box-shadow var(--nva-d-slow) var(--nva-ease);
}
.nva-recommend__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -20px rgba(0,0,0,0.14);
}

.nva-recommend__media {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 130px;
}
.nva-recommend__media img { height: 100%; width: auto; object-fit: contain; }

.nva-recommend__name {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  line-height: 1.3;
  color: var(--nva-ink);
}

.nva-recommend__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nva-s-2);
  margin-top: var(--nva-s-2);
}

.nva-recommend__price {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink);
}
.nva-recommend__price del { opacity: 0.4; font-weight: var(--nva-w-regular); }
.nva-recommend__price ins { text-decoration: none; }

.nva-recommend__plus {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  transition: transform var(--nva-d-base) var(--nva-ease);
}
.nva-recommend__item:hover .nva-recommend__plus { transform: scale(1.05); }

/* --- Panels -------------------------------------------------------------- */
.nva-nova__panels {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--nva-s-5);
  margin-top: var(--nva-s-6);
}

.nva-nova__panel {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-radius: 14px;
  background-color: var(--nva-surface);
  box-shadow: 0 2px 10px -4px rgba(0,0,0,0.06);
}

/* Recommended uses the larger radius in the reference. */
.nva-nova__row .nva-nova__panel:last-child { border-radius: 20px; }
.nva-nova__row .nva-nova__panel:only-child { border-radius: 14px; }

.nva-nova__panel-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--nva-s-4);
  padding-bottom: var(--nva-s-4);
  border-bottom: 1px solid var(--nva-line);
}

.nva-nova__panel-title {
  font-family: var(--nva-font-heading);
  font-size: 1.25rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-nova__panel-link,
.nva-nova__panel-foot {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-55);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-nova__panel-link:hover,
.nva-nova__panel-foot:hover { color: var(--nva-ink); }
.nva-nova__panel-foot { margin-top: var(--nva-s-5); }

.nva-nova__orders { margin-top: var(--nva-s-2); list-style: none; }
.nva-nova__order-main { min-width: 0; }

.nva-nova__order {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nva-s-4);
  padding-block: var(--nva-s-4);
  border-bottom: 1px solid var(--nva-line);
}
.nva-nova__order:last-child { border-bottom: 0; }

.nva-nova__order-number {
  display: block;
  font-family: var(--nva-font-heading);
  font-size: 0.9375rem;
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-nova__order-date {
  display: block;
  margin-top: 2px;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-50);
}

.nva-nova__order-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.25rem;
}

.nva-nova__order-status {
  padding: 2px var(--nva-s-2);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-full);
  font-family: var(--nva-font-body);
  font-size: 0.5625rem;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--nva-ink-60);
}
.nva-nova__order-status--completed { border-color: var(--nva-delivered-line); color: var(--nva-delivered-fg); }
.nva-nova__order-status--processing { border-color: var(--nva-transit-line); color: var(--nva-transit-fg); }
.nva-nova__order-status--cancelled,
.nva-nova__order-status--failed { border-color: rgba(185,28,28,0.3); color: var(--nva-red); }

.nva-nova__order-total {
  font-family: var(--nva-font-heading);
  font-size: 0.9375rem;
  color: var(--nva-ink);
}

.nva-nova__empty { padding-block: var(--nva-s-8); text-align: center; }
.nva-nova__empty p {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink-55);
}
.nva-nova__empty .nva-btn { margin-top: var(--nva-s-5); }

.nva-nova__details { margin-top: var(--nva-s-4); }
.nva-nova__details > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--nva-s-4);
  padding-block: var(--nva-s-3);
  border-bottom: 1px solid var(--nva-line);
}
.nva-nova__details > div:last-child { border-bottom: 0; }
.nva-nova__details dt {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink-50);
}
.nva-nova__details dd {
  margin: 0;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  text-align: right;
  color: var(--nva-ink);
}

/* ==========================================================================
   Account screens — shared
   ========================================================================== */
.nva-acct { min-width: 0; }
.nva-acct__header { margin-bottom: var(--nva-s-8); }

.nva-acct__title {
  font-family: var(--nva-font-heading);
  font-size: clamp(1.9rem, 3.2vw, 2.6rem);
  font-weight: var(--nva-w-semi);
  line-height: 1.05;
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-acct__lead {
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: 0.9375rem;
  color: var(--nva-ink-50);
}

.nva-acct__section-title {
  margin: var(--nva-s-10) 0 var(--nva-s-4);
  font-family: var(--nva-font-heading);
  font-size: 1.25rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

/* --- Status badge --------------------------------------------------------- */
.nva-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.625rem;
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink-05);
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-70);
  white-space: nowrap;
}
.nva-badge__dot {
  width: 6px;
  height: 6px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink-40);
}

.nva-badge--completed {
  border-color: var(--nva-delivered-line);
  background-color: var(--nva-delivered-bg);
  color: var(--nva-delivered-fg);
}
.nva-badge--completed .nva-badge__dot { background-color: var(--nva-delivered-fg); }

.nva-badge--processing,
.nva-badge--on-hold {
  border-color: var(--nva-transit-line);
  background-color: var(--nva-transit-bg);
  color: var(--nva-transit-fg);
}
.nva-badge--processing .nva-badge__dot,
.nva-badge--on-hold .nva-badge__dot { background-color: var(--nva-transit-fg); }

.nva-badge--cancelled,
.nva-badge--failed {
  border-color: rgba(185,28,28,0.2);
  background-color: rgba(185,28,28,0.06);
  color: var(--nva-red);
}
.nva-badge--cancelled .nva-badge__dot,
.nva-badge--failed .nva-badge__dot { background-color: var(--nva-red); }

/* --- Empty state ---------------------------------------------------------- */
.nva-acct__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: var(--nva-s-6);
  padding: var(--nva-s-16) var(--nva-s-8);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-lg);
  background-color: var(--nva-surface);
  text-align: center;
}

.nva-acct__empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-full);
  color: var(--nva-ink-40);
}

.nva-acct__empty-title {
  margin-top: var(--nva-s-5);
  font-family: var(--nva-font-heading);
  font-size: 1.5rem;
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-acct__empty-body {
  max-width: 24rem;
  margin-top: var(--nva-s-2);
  font-family: var(--nva-font-body);
  font-size: 0.875rem;
  line-height: 1.7;
  color: var(--nva-ink-50);
}

.nva-acct__empty-action {
  display: inline-flex;
  align-items: center;
  margin-top: var(--nva-s-6);
  padding: 0.75rem var(--nva-s-7);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  transition: background-color var(--nva-d-base) var(--nva-ease);
}
.nva-acct__empty-action:hover { background-color: var(--nva-ink-hover); color: var(--nva-on-dark); }

/* ==========================================================================
   Orders
   ========================================================================== */
.nva-orders__toolbar { margin-top: var(--nva-s-8); }

.nva-orders__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.75rem;
  border-bottom: 1px solid var(--nva-line);
}

.nva-orders__tab {
  position: relative;
  padding-bottom: 0.75rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  letter-spacing: 0.02em;
  color: var(--nva-ink-45);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-orders__tab:hover { color: var(--nva-ink-70); }
.nva-orders__tab.is-active { color: var(--nva-ink); }
.nva-orders__tab.is-active::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 100%;
  height: 1.5px;
  background-color: var(--nva-ink);
}

.nva-orders__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: var(--nva-s-5);
}

.nva-orders__search {
  position: relative;
  flex: 1.4 1 230px;
  min-width: 230px;
  margin: 0;
}
.nva-orders__search input {
  width: 100%;
  padding: 0.625rem 0.875rem 0.625rem 2.5rem;
  border: 1px solid var(--nva-line);
  border-radius: 0.625rem;
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink);
}
.nva-orders__search input:focus { outline: none; border-color: rgba(0,0,0,0.5); }
.nva-orders__search input::placeholder { color: var(--nva-ink-40); }

.nva-orders__search-icon {
  position: absolute;
  left: 0.875rem;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  color: var(--nva-ink-40);
  pointer-events: none;
}

.nva-orders__select { position: relative; margin: 0; }
.nva-orders__select select {
  appearance: none;
  -webkit-appearance: none;
  padding: 0.625rem 2.25rem 0.625rem 0.875rem;
  border: 1px solid var(--nva-line);
  border-radius: 0.625rem;
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink-70);
  cursor: pointer;
}
.nva-orders__select select:focus { outline: none; border-color: rgba(0,0,0,0.5); }

.nva-orders__caret {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--nva-ink-40);
  pointer-events: none;
}

.nva-orders__filters {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem var(--nva-s-4);
  border: 1px solid var(--nva-line);
  border-radius: 0.625rem;
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink-70);
  cursor: pointer;
  transition: border-color var(--nva-d-fast) var(--nva-ease),
              color var(--nva-d-fast) var(--nva-ease);
}
.nva-orders__filters:hover { border-color: var(--nva-ink-40); color: var(--nva-ink); }

/* --- Table ---------------------------------------------------------------- */
.nva-orders__table {
  margin-top: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-lg);
  background-color: var(--nva-surface);
  overflow: hidden;
}

.nva-orders__head { display: none; }

.nva-orders__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem;
  padding: var(--nva-s-5);
  border-bottom: 1px solid var(--nva-line);
}
.nva-orders__row:last-of-type { border-bottom: 0; }

.nva-orders__cell { min-width: 0; }

.nva-orders__cell--order {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  min-width: 0;
}

.nva-orders__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 54px;
  height: 54px;
  padding: 0.25rem;
  border: 1px solid var(--nva-line);
  border-radius: 0.5rem;
  background-color: #ffffff;
  color: var(--nva-ink-30);
  overflow: hidden;
}
.nva-orders__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.nva-orders__identity { min-width: 0; }

.nva-orders__number {
  display: block;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink);
}

.nva-orders__product {
  display: block;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink-70);
}

.nva-orders__more {
  display: block;
  margin-top: 2px;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  color: var(--nva-ink-40);
}

.nva-orders__date {
  display: block;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink-70);
}
.nva-orders__time {
  display: block;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  color: var(--nva-ink-40);
}

.nva-orders__cell--total {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-orders__cell--items {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-55);
}

.nva-orders__details {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-70);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-orders__details:hover { color: var(--nva-ink); }
.nva-orders__details .nva-icon { transition: transform var(--nva-d-fast) var(--nva-ease); }
.nva-orders__details:hover .nva-icon { transform: translateX(3px); }

/* Stacked labels on small screens */
.nva-orders__cell[data-label]::before {
  content: attr(data-label);
  display: block;
  margin-bottom: 2px;
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink-40);
}

.nva-orders__foot {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: var(--nva-s-4) var(--nva-s-6);
  border-top: 1px solid var(--nva-line);
}

.nva-orders__count {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-45);
}

.nva-orders__pages { display: flex; align-items: center; gap: 0.375rem; }

.nva-orders__page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding-inline: 0.5rem;
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-sm);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink-55);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-orders__page:hover { color: var(--nva-ink); }
.nva-orders__page.is-active {
  border-color: var(--nva-ink);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
}

/* ==========================================================================
   Track Orders
   ========================================================================== */
.nva-track__bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: var(--nva-s-8);
}

.nva-track__featured {
  margin-top: var(--nva-s-8);
  padding: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-xl);
  background-color: var(--nva-surface);
  box-shadow: 0 10px 30px -24px rgba(0,0,0,0.16);
}

.nva-track__featured-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--nva-s-4);
}

.nva-track__eyebrow {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-eyebrow);
  color: var(--nva-red);
}

.nva-track__number {
  margin-top: var(--nva-s-2);
  font-family: var(--nva-font-heading);
  font-size: 1.375rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-track__meta {
  margin-top: 0.25rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink-50);
}

/* Shown only when a shipping integration supplies real events */
.nva-track__timeline { margin-top: var(--nva-s-6); list-style: none; }
.nva-track__event {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding-left: var(--nva-s-5);
  padding-block: 0.5rem;
}
.nva-track__event-dot {
  position: absolute;
  left: 0;
  top: 0.9em;
  width: 7px;
  height: 7px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-red);
}
.nva-track__event-label {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}
.nva-track__event-date {
  margin-left: auto;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  color: var(--nva-ink-45);
}
.nva-track__number-line {
  margin-top: var(--nva-s-4);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink-60);
}

/* Honest state until carrier data exists */
.nva-track__pending {
  display: flex;
  align-items: flex-start;
  gap: var(--nva-s-4);
  margin-top: var(--nva-s-6);
  padding: var(--nva-s-5);
  border-radius: var(--nva-r-md);
  background-color: var(--nva-ink-05);
  color: var(--nva-ink-40);
}

.nva-track__pending-title {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-semi);
  color: var(--nva-ink);
}

.nva-track__pending-body {
  margin-top: 0.25rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  line-height: 1.65;
  color: var(--nva-ink-55);
}

.nva-track__featured-foot {
  margin-top: var(--nva-s-6);
  padding-top: var(--nva-s-4);
  border-top: 1px solid var(--nva-line);
}

.nva-track__recent { margin-top: var(--nva-s-10); }
.nva-orders__row--compact { padding-block: var(--nva-s-4); }

/* ==========================================================================
   Account overview
   ========================================================================== */
.nva-profile {
  margin-top: var(--nva-s-10);
  padding: var(--nva-s-7);
  border: 1px solid var(--nva-line);
  border-radius: 1.5rem;
  background-color: var(--nva-surface);
  box-shadow: 0 2px 10px -4px rgba(0,0,0,0.06);
}

.nva-profile__member {
  display: flex;
  align-items: center;
  gap: var(--nva-s-5);
}

.nva-profile__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
  font-family: var(--nva-font-heading);
  font-size: 1.5rem;
  font-weight: var(--nva-w-semi);
}

.nva-profile__identity { min-width: 0; }

.nva-profile__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.nva-profile__name {
  font-family: var(--nva-font-heading);
  font-size: 1.375rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-profile__status {
  padding: 0.25rem 0.75rem;
  border-radius: var(--nva-r-full);
  background-color: rgba(197,160,89,0.13);
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--nva-gold);
}

.nva-profile__contact {
  margin-top: 0.375rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink-55);
}

.nva-profile__row {
  display: flex;
  flex-direction: column;
  gap: var(--nva-s-5);
  margin-top: var(--nva-s-6);
  padding-top: var(--nva-s-6);
  border-top: 1px solid var(--nva-line);
}
.nva-profile__row--link { text-align: left; }
.nva-profile__row--link:hover .nva-profile__chevron { transform: translateX(3px); }

.nva-profile__label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-medium);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-45);
}

.nva-profile__details {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--nva-s-5);
  flex: 1;
}

.nva-profile__detail-label {
  font-family: var(--nva-font-body);
  font-size: 0.625rem;
  font-weight: var(--nva-w-medium);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink-40);
}

.nva-profile__detail-value {
  margin-top: 0.25rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-profile__action {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  align-self: flex-start;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-55);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-profile__action:hover { color: var(--nva-ink); }

.nva-profile__address {
  flex: 1;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-style: normal;
  line-height: 1.7;
  color: var(--nva-ink-70);
}
.nva-profile__address address { font-style: normal; }

.nva-profile__muted { color: var(--nva-ink-40); font-family: var(--nva-font-body); font-size: var(--nva-t-small); }

.nva-profile__add {
  margin-left: 0.75rem;
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink-55);
}

.nva-profile__payment { flex: 1; color: var(--nva-ink-50); }

.nva-profile__chevron {
  flex-shrink: 0;
  color: var(--nva-ink-30);
  transition: transform var(--nva-d-fast) var(--nva-ease);
}

.nva-profile__actions {
  display: flex;
  flex-direction: column;
  gap: var(--nva-s-5);
  margin-top: var(--nva-s-6);
  padding: var(--nva-s-4) var(--nva-s-6);
  border-radius: 1rem;
  background-color: rgba(0,0,0,0.02);
}

.nva-profile__action-list { flex: 1; }

.nva-profile__action-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 0.75rem;
  border-bottom: 1px solid var(--nva-line);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}
.nva-profile__action-row:last-child { border-bottom: 0; }
.nva-profile__action-row:hover .nva-profile__chevron { transform: translateX(3px); }

/* ==========================================================================
   Partners panel
   ========================================================================== */
.nva-partner-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: var(--nva-s-8);
  padding: var(--nva-s-16) var(--nva-s-8);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-xl);
  background-color: var(--nva-surface);
  text-align: center;
}

.nva-partner-panel__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(201,168,90,0.4);
  border-radius: var(--nva-r-full);
  color: var(--nva-gold-partner);
}

.nva-partner-panel__title {
  margin-top: var(--nva-s-5);
  font-family: var(--nva-font-heading);
  font-size: 1.5rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-partner-panel__body {
  max-width: 30rem;
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--nva-ink-55);
}

.nva-partner-panel__note {
  max-width: 30rem;
  margin-top: var(--nva-s-3);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  line-height: 1.65;
  color: var(--nva-ink-45);
}

.nva-partner-panel__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--nva-s-5);
}

.nva-partner-panel__link {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: var(--nva-s-6);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  color: var(--nva-ink-55);
  transition: color var(--nva-d-fast) var(--nva-ease);
}
.nva-partner-panel__link:hover { color: var(--nva-ink); }

/* ==========================================================================
   WooCommerce account tables and forms — restyled, not overridden
   ========================================================================== */
.nva-portal__main .woocommerce-MyAccount-content > h2,
.nva-portal__main .woocommerce-MyAccount-content legend {
  font-family: var(--nva-font-heading);
  font-size: 1.25rem;
  font-weight: var(--nva-w-medium);
  letter-spacing: var(--nva-ls-tight);
  color: var(--nva-ink);
}

.nva-portal__main .woocommerce-orders-table,
.nva-portal__main .woocommerce-table--order-details,
.nva-portal .shop_table {
  width: 100%;
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-lg);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background-color: var(--nva-surface);
}

.nva-portal .shop_table th {
  padding: var(--nva-s-4);
  border-bottom: 1px solid var(--nva-line);
  background-color: rgba(0,0,0,0.02);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  text-align: left;
  color: var(--nva-ink-55);
}

.nva-portal .shop_table td {
  padding: var(--nva-s-4);
  border-bottom: 1px solid var(--nva-line);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  color: var(--nva-ink);
}
.nva-portal .shop_table tr:last-child td { border-bottom: 0; }

.nva-portal__main .woocommerce-orders-table__cell-order-number a {
  font-family: var(--nva-font-heading);
  font-weight: var(--nva-w-medium);
  color: var(--nva-ink);
}

.nva-portal__main .woocommerce-button,
.nva-portal__main .woocommerce-Button,
.nva-portal__main .woocommerce-MyAccount-content .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.625rem var(--nva-s-5);
  border: 1px solid var(--nva-ink);
  border-radius: var(--nva-r-full);
  background-color: transparent;
  color: var(--nva-ink);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-nano);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-button);
  transition: background-color var(--nva-d-base) var(--nva-ease),
              color var(--nva-d-base) var(--nva-ease);
}
.nva-portal__main .woocommerce-button:hover,
.nva-portal__main .woocommerce-MyAccount-content .button:hover {
  background-color: var(--nva-ink);
  color: var(--nva-on-dark);
}

/* Edit-account and address forms */
.nva-portal__main .woocommerce-MyAccount-content form .form-row {
  display: flex;
  flex-direction: column;
  margin: 0 0 var(--nva-s-5);
  padding: 0;
}

.nva-portal__main .woocommerce-MyAccount-content form label {
  margin-bottom: var(--nva-s-2);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink-60);
}

.nva-portal__main .woocommerce-MyAccount-content form input.input-text,
.nva-portal__main .woocommerce-MyAccount-content form select,
.nva-portal__main .woocommerce-MyAccount-content form textarea,
.nva-portal .select2-container .select2-selection--single {
  width: 100%;
  height: 48px;
  padding: 0 var(--nva-s-4);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-md);
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-body);
  color: var(--nva-ink);
}
.nva-portal__main .woocommerce-MyAccount-content form input.input-text:focus,
.nva-portal__main .woocommerce-MyAccount-content form select:focus {
  outline: none;
  border-color: rgba(0,0,0,0.4);
}

.nva-portal__main .woocommerce-MyAccount-content fieldset {
  margin-top: var(--nva-s-8);
  padding: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-lg);
}

.nva-portal__main .woocommerce-Address {
  padding: var(--nva-s-6);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-lg);
  background-color: var(--nva-surface);
}
.nva-portal__main .woocommerce-Address-title { margin-bottom: var(--nva-s-4); }
.nva-portal__main .woocommerce-Address address {
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  line-height: 1.7;
  font-style: normal;
  color: var(--nva-ink-60);
}

.nva-portal__main .woocommerce-info,
.nva-portal__main .woocommerce-message,
.nva-portal__main .woocommerce-error {
  padding: var(--nva-s-4) var(--nva-s-5);
  border: 1px solid var(--nva-line);
  border-left: 2px solid var(--nva-blue);
  border-radius: var(--nva-r-sm);
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-small);
  list-style: none;
}
.nva-portal__main .woocommerce-error { border-left-color: var(--nva-red); }
.nva-portal__main .woocommerce-message { border-left-color: var(--nva-delivered-line); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (min-width: 640px) {
  .nva-auth__row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nva-topbar__identity { display: flex; }
  .nva-topbar__caret { display: block; }
}

@media (min-width: 768px) {
  .nva-portal__main { padding: var(--nva-s-16) var(--nva-s-12); }

  /* Orders becomes the six-column table from the reference. */
  .nva-orders__head,
  .nva-orders__row {
    display: grid;
    grid-template-columns: 2.2fr 1.1fr 1fr auto auto auto;
    align-items: center;
    gap: var(--nva-s-6);
    padding-inline: var(--nva-s-6);
  }
  .nva-orders__head {
    padding-block: 0.75rem;
    border-bottom: 1px solid var(--nva-line);
  }
  .nva-orders__head span {
    font-family: var(--nva-font-body);
    font-size: 0.625rem;
    font-weight: var(--nva-w-semi);
    text-transform: uppercase;
    letter-spacing: var(--nva-ls-label);
    color: var(--nva-ink-40);
  }
  .nva-orders__row { padding-block: var(--nva-s-4); }
  .nva-orders__cell[data-label]::before { display: none; }

  .nva-orders__row--compact {
    grid-template-columns: minmax(0, 1fr) auto auto;
  }

  .nva-orders__foot {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }

  .nva-profile { padding: var(--nva-s-10); }
  .nva-profile__row { flex-direction: row; align-items: center; }
  .nva-profile__label { width: 11rem; }
  .nva-profile__details { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nva-s-6); }
  .nva-profile__actions { flex-direction: row; align-items: center; }
  .nva-nova__hero {
    height: 400px;
    margin: calc( var(--nva-s-16) * -1 ) calc( var(--nva-s-12) * -1 ) 0;
    padding: 4.5rem var(--nva-s-12) 0;
  }
  .nva-nova__hero-copy { max-width: 58%; }
  .nva-topbar { padding-inline: var(--nva-s-8); }
}

@media (min-width: 1024px) {
  .nva-auth__grid { grid-template-columns: 42% 58%; align-items: stretch; }
  .nva-auth__brand { display: flex; }
  .nva-auth__brand-copy { padding-inline: var(--nva-s-16); }
  .nva-auth__panel--wide { max-width: 27.5rem; }

  /* 280px rail + all remaining viewport width for the content canvas.
     minmax(0, 1fr) rather than 1fr: a plain 1fr has an automatic minimum
     that a wide table or long unbreakable string could push past. */
  .nva-portal { grid-template-columns: 280px minmax(0, 1fr); }

  .nva-rail {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    width: 280px;
    min-width: 280px;
    height: 100vh;
    height: 100svh;
    padding: var(--nva-s-8) var(--nva-s-5) var(--nva-s-8) var(--nva-s-8);
    border-right: 1px solid rgba(255,255,255,0.06);
    background-color: var(--nva-near-black);
    overflow-y: auto;
  }
  .nva-rail__logo { margin-bottom: var(--nva-s-8); }

  /* The rail replaces the drawer entirely at this width. */
  .nva-topbar__menu,
  .nva-topbar__logo { display: none; }
  .nva-topbar { height: 68px; justify-content: flex-end; }

  .nva-portal__main { padding: var(--nva-s-20) var(--nva-s-16); }

  .nva-nova__hero {
    height: 510px;
    align-items: center;
    margin: calc( var(--nva-s-20) * -1 ) calc( var(--nva-s-16) * -1 ) 0;
    padding: 0 var(--nva-s-16) 0 6.5rem;
    background-position: center;
  }
  .nva-nova__hero-copy { max-width: 36rem; }
  .nva-nova__eyebrow { font-size: 12px; letter-spacing: var(--nva-ls-eyebrow); }
  .nva-nova__greeting { margin-top: var(--nva-s-5); }
  .nva-nova__tagline { margin-top: var(--nva-s-4); font-size: 14px; }
  .nva-nova__badge { margin-top: var(--nva-s-6); }
  .nva-spotlight { padding: var(--nva-s-7); }

  .nva-nova__panels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nva-nova__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--nva-s-5); }
  .nva-glance { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--nva-s-8); }
  .nva-glance__card {
    flex-direction: row;
    gap: var(--nva-s-5);
    padding: var(--nva-s-6);
    border-radius: 20px;
  }
  .nva-glance__icon { width: 44px; height: 44px; }
  .nva-nova__section-title { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .nva-auth__submit,
  .nva-portal__main .woocommerce-MyAccount-navigation li a { transition: none; }
}

/* --------------------------------------------------------------------------
   Shipment status — Track Orders

   The carrier's own status, distinct from the WooCommerce order badge.
   -------------------------------------------------------------------------- */
.nva-track__shipment-status {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 var(--nva-s-4);
  padding: var(--nva-s-2) var(--nva-s-4);
  border: 1px solid var(--nva-line);
  border-radius: var(--nva-r-full);
  background-color: var(--nva-surface);
  font-family: var(--nva-font-body);
  font-size: var(--nva-t-micro);
  font-weight: var(--nva-w-semi);
  text-transform: uppercase;
  letter-spacing: var(--nva-ls-label);
  color: var(--nva-ink);
}

.nva-track__shipment-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--nva-r-full);
  background-color: var(--nva-ink-45);
}

.nva-track__shipment-status.is-delivered { border-color: var(--nva-ink); }
.nva-track__shipment-status.is-delivered .nva-track__shipment-dot { background-color: var(--nva-ink); }

@media (min-width: 768px) {
  .nva-track__shipment-status { font-size: var(--nva-t-small); }
}
