/**
 * My Account — the reference account area: sidebar mono navigation with
 * ink active states, bordered panel cards, list-style orders, quiet auth
 * cards. Extends the tokens from the child theme.
 */

.avyn-account { background: var(--avyn-paper); padding-bottom: 4.5rem; }
.avyn-account .avyn-shell { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; }
.avyn-mono { font-family: var(--avyn-mono); font-variant-numeric: tabular-nums; }

/* Base classes normally supplied by other page bundles — self-contained here. */
.avyn-account .avyn-label { display: block; font-family: var(--avyn-mono); font-size: 0.625rem; font-weight: 400; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-slate); margin: 0; }
.avyn-account .avyn-crumbs { overflow-x: auto; scrollbar-width: none; }
.avyn-account .avyn-crumbs::-webkit-scrollbar { display: none; }
.avyn-account .avyn-crumbs ol { display: flex; align-items: center; gap: 0.375rem; list-style: none; margin: 0; padding: 0.75rem 0; white-space: nowrap; font-family: var(--avyn-mono); font-size: 0.6875rem; color: var(--avyn-slate); }
.avyn-account .avyn-crumbs li { display: flex; align-items: center; gap: 0.375rem; }
.avyn-account .avyn-crumbs svg { color: var(--avyn-rule); flex-shrink: 0; }
.avyn-account .avyn-crumbs a { color: var(--avyn-slate); text-decoration: none; }
.avyn-account .avyn-crumbs a:hover { color: var(--avyn-brand); }
.avyn-account .avyn-crumbs [aria-current] { color: var(--avyn-graphite); }
.avyn-acct-panel-head h2 { font-size: 0.625rem; }

/* ── Layout ─────────────────────────────────────────────── */
.avyn-acct-grid { display: grid; gap: 2rem; margin-top: 0.5rem; }
@media (min-width: 1024px) { .avyn-acct-grid { grid-template-columns: 13rem minmax(0, 1fr); } }
/* min-width:0 on every grid child: without it the nav's nowrap items set the
   track's intrinsic minimum and the whole page overflows on phones. */
.avyn-acct-grid > * { min-width: 0; }
.avyn-acct-content { min-width: 0; }

/* ── Sidebar nav ────────────────────────────────────────── */
@media (min-width: 1024px) { .avyn-acct-nav { border-right: 1px solid var(--avyn-rule); padding-right: 1.5rem; } }
.avyn-acct-email { margin: 0 0 0.75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--avyn-mono); font-size: 0.6875rem; color: var(--avyn-slate); }
/* Under 1024px the nav is a wrapped grid of cells — every item visible at
   once, no swiping. Desktop keeps the vertical sidebar list. */
.avyn-acct-nav ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; padding: 0; margin: 0; list-style: none; }
@media (min-width: 480px) { .avyn-acct-nav ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .avyn-acct-nav ul { display: block; } }
.avyn-acct-nav li { min-width: 0; }
@media (max-width: 1023.98px) {
  .avyn-acct-nav a { display: flex; align-items: center; justify-content: center; text-align: center; padding: 0.625rem 0.375rem; border: 1px solid var(--avyn-rule); background: var(--avyn-panel); overflow: hidden; }
  .avyn-acct-nav a.is-active { border-color: var(--avyn-ink); }
  /* An odd item count leaves a gap — let Sign out take the whole last row. */
  .avyn-acct-nav li:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
.avyn-acct-nav a { display: block; white-space: nowrap; padding: 0.5rem 0.75rem; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-graphite); text-decoration: none; transition: background-color 140ms ease, color 140ms ease; }
.avyn-acct-nav a:hover { background: var(--avyn-shell); color: var(--avyn-ink); }
.avyn-acct-nav a.is-active { background: var(--avyn-ink); color: var(--avyn-panel); }
.avyn-acct-nav-signout { margin-top: 0; }
@media (min-width: 1024px) { .avyn-acct-nav-signout { margin-top: 1rem; border-top: 1px solid var(--avyn-rule); padding-top: 0.75rem; } }
.avyn-acct-nav-signout a { color: var(--avyn-slate); }
.avyn-acct-nav-signout a:hover { background: transparent; color: var(--avyn-data); }

/* ── Headings + panels ──────────────────────────────────── */
.avyn-acct-title { margin: 0; font-size: 1.5rem; font-weight: 650; line-height: 1.2; color: var(--avyn-ink); }
.avyn-acct-sub { margin: 0.375rem 0 0; max-width: 60ch; font-size: 0.75rem; color: var(--avyn-slate); }
.avyn-acct-panel { border: 1px solid var(--avyn-rule); background: var(--avyn-panel); }
.avyn-acct-panel-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; border-bottom: 1px solid var(--avyn-rule); padding: 0.625rem 1rem; }
.avyn-acct-panel-head a { font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 2px; }
.avyn-acct-panel-body { padding: 1rem; }
.avyn-acct-panel-body address { font-style: normal; font-size: 0.75rem; line-height: 1.65; color: var(--avyn-graphite); }
.avyn-acct-muted { margin: 0; font-size: 0.75rem; color: var(--avyn-slate); }
.avyn-acct-two { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
@media (min-width: 768px) { .avyn-acct-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.avyn-acct-empty { padding: 2rem 1rem; text-align: center; }
.avyn-acct-empty p { margin: 0 0 0.75rem; font-size: 0.75rem; color: var(--avyn-slate); }

/* ── Order lists ────────────────────────────────────────── */
.avyn-acct-orderlist, .avyn-acct-orders { list-style: none; margin: 0; padding: 0; }
.avyn-acct-orderlist li, .avyn-acct-orders li { border-bottom: 1px solid var(--avyn-rule); padding: 0.75rem 1rem; }
.avyn-acct-orderlist li:last-child, .avyn-acct-orders li:last-child { border-bottom: 0; }
.avyn-acct-orderrow { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 1rem; }
.avyn-acct-orderrow > a, .avyn-acct-ordernum { font-family: var(--avyn-mono); font-size: 0.875rem; font-weight: 600; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 2px; }
.avyn-acct-orderrow .avyn-mono, .avyn-acct-total { margin-left: auto; font-size: 0.875rem; color: var(--avyn-ink); }
.avyn-acct-ordermeta { margin: 2px 0 0; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--avyn-slate); }
.avyn-acct-status { font-family: var(--avyn-mono); font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.1em; padding: 2px 7px; border: 1px solid var(--avyn-rule); color: var(--avyn-graphite); background: var(--avyn-paper); }
.avyn-acct-status.is-completed { color: var(--avyn-ok); border-color: rgba(32, 106, 74, 0.4); }
.avyn-acct-status.is-processing { color: var(--avyn-brand); border-color: rgba(25, 118, 110, 0.4); }
.avyn-acct-status.is-on-hold, .avyn-acct-status.is-pending { color: var(--avyn-warn); border-color: rgba(168, 116, 20, 0.4); }
.avyn-acct-status.is-cancelled, .avyn-acct-status.is-failed, .avyn-acct-status.is-refunded { color: var(--avyn-data); border-color: rgba(172, 78, 30, 0.4); }
.avyn-acct-date, .avyn-acct-count { font-family: var(--avyn-mono); font-size: 0.6875rem; color: var(--avyn-slate); }
.avyn-acct-orderactions { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin-top: 0.375rem; }
.avyn-acct-orderactions a, .avyn-acct-trackingnum { font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 2px; }
.avyn-acct-orderactions a:hover { color: var(--avyn-brand-deep); }
.avyn-acct-trackingnum { color: var(--avyn-slate); text-decoration: none; }
.avyn-acct-pagination { display: flex; gap: 0.5rem; margin-top: 1rem; }

/* ── Dashboard quick cards ──────────────────────────────── */
.avyn-acct-cards { display: grid; gap: 1px; border: 1px solid var(--avyn-rule); background: var(--avyn-rule); margin-top: 1.25rem; }
@media (min-width: 640px) { .avyn-acct-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.avyn-acct-cards a { display: block; background: var(--avyn-panel); padding: 1rem; text-decoration: none; transition: background-color 140ms ease; }
.avyn-acct-cards a:hover { background: var(--avyn-shell); }
.avyn-acct-card-title { margin: 0; font-size: 0.875rem; font-weight: 650; color: var(--avyn-ink); }
.avyn-acct-cards a:hover .avyn-acct-card-title { color: var(--avyn-brand); }
.avyn-acct-card-body { margin: 0.25rem 0 0; font-size: 0.6875rem; line-height: 1.6; color: var(--avyn-slate); }

/* ── Notifications ──────────────────────────────────────── */
.avyn-acct-notifications { margin-top: 1.25rem; padding: 1.25rem; max-width: 40rem; }
.avyn-acct-toggle { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.75rem 0; border-bottom: 1px solid var(--avyn-rule); cursor: pointer; }
.avyn-acct-toggle input { margin-top: 3px; accent-color: var(--avyn-brand); }
.avyn-acct-toggle.is-locked { cursor: default; opacity: 0.75; }
.avyn-acct-toggle-title { display: block; font-size: 0.8125rem; font-weight: 650; color: var(--avyn-ink); }
.avyn-acct-toggle-body { display: block; margin-top: 2px; font-size: 0.6875rem; line-height: 1.6; color: var(--avyn-slate); }
.avyn-acct-notifications .avyn-btn { margin-top: 1rem; }

/* ── Tracking box on view-order ─────────────────────────── */
.avyn-acct-tracking { border: 1px solid var(--avyn-rule); background: var(--avyn-panel); padding: 1rem; margin: 1.25rem 0; }
.avyn-acct-tracking-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--avyn-graphite); }

/* ── Woo internals within the account content ───────────── */
/* The notices wrapper renders on every endpoint, usually empty — only give
   it space when it actually holds a notice, or headings shift between pages. */
.avyn-acct-content .woocommerce-notices-wrapper { display: block; margin: 0; }
.avyn-acct-content .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 1rem; }
.avyn-acct-content form .form-row label { display: block; margin-bottom: 4px; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--avyn-slate); }
.avyn-acct-content form .form-row label .required { color: var(--avyn-brand); text-decoration: none; }
.avyn-acct-content form .form-row input.input-text, .avyn-acct-content form .form-row select, .avyn-acct-content form .form-row textarea {
  width: 100%; min-height: 44px; padding: 0.625rem 0.75rem; border: 1px solid var(--avyn-rule); border-radius: 0;
  background: var(--avyn-panel); font-size: 0.9375rem; color: var(--avyn-ink); box-shadow: none;
}
.avyn-acct-content form .form-row input.input-text:focus, .avyn-acct-content form .form-row select:focus {
  border-color: var(--avyn-brand); outline: none; box-shadow: 0 0 0 3px rgba(25, 118, 110, 0.14);
}
body .avyn-acct-content .button, body .avyn-acct-content button[type="submit"] {
  background: var(--avyn-ink); color: var(--avyn-panel); border: 1px solid var(--avyn-ink); border-radius: 0;
  min-height: 44px; padding: 0.6rem 1.25rem; font-size: 0.875rem; font-weight: 600; box-shadow: none;
}
body .avyn-acct-content .button:hover, body .avyn-acct-content button[type="submit"]:hover { background: var(--avyn-brand-deep); border-color: var(--avyn-brand-deep); color: var(--avyn-panel); }
.avyn-acct-addresses { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
@media (min-width: 768px) { .avyn-acct-addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }

/* Edit-address / Profile forms: Woo floats .form-row-first/-last at 47% —
   neutralize and lay the rows out on a grid instead. */
.avyn-acct-content .form-row { float: none !important; width: auto !important; margin: 0 0 1rem; padding: 0; }
.avyn-acct-content .woocommerce-address-fields__field-wrapper,
.avyn-acct-content form.woocommerce-EditAccountForm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.avyn-acct-content .woocommerce-address-fields__field-wrapper > *,
.avyn-acct-content form.woocommerce-EditAccountForm > * { grid-column: 1 / -1; min-width: 0; }
@media (min-width: 640px) {
  .avyn-acct-content .woocommerce-address-fields__field-wrapper > .form-row-first,
  .avyn-acct-content form.woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
  .avyn-acct-content .woocommerce-address-fields__field-wrapper > .form-row-last,
  .avyn-acct-content form.woocommerce-EditAccountForm > .form-row-last { grid-column: 2; }
}
.avyn-acct-content .woocommerce-address-fields, .avyn-acct-content form.woocommerce-EditAccountForm { max-width: 40rem; }
.avyn-acct-content > h2, .avyn-acct-content form > h3 { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 650; line-height: 1.2; color: var(--avyn-ink); }
.avyn-acct-content .select2-container .select2-selection--single { height: 44px; border: 1px solid var(--avyn-rule); border-radius: 0; background: var(--avyn-panel); }
.avyn-acct-content .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 0.75rem; font-size: 0.9375rem; color: var(--avyn-ink); }
.avyn-acct-content .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.avyn-acct-content table.shop_table { border: 1px solid var(--avyn-rule); border-collapse: collapse; background: var(--avyn-panel); width: 100%; margin: 1rem 0; }
.avyn-acct-content table.shop_table th { font-family: var(--avyn-mono); font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-slate); font-weight: 400; text-align: left; border-bottom: 1px solid var(--avyn-rule); padding: 0.625rem 0.875rem; }
.avyn-acct-content table.shop_table td { border: 0; border-top: 1px solid var(--avyn-rule); padding: 0.75rem 0.875rem; font-size: 0.8125rem; color: var(--avyn-graphite); }
.avyn-acct-content fieldset { border: 0; margin: 1.5rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--avyn-rule); }
.avyn-acct-content fieldset legend { font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-slate); padding-right: 0.75rem; }

/* ── Auth (login / register) ────────────────────────────────────────
   Two quiet cards on the paper ground: brand top accent on Sign in, ink
   accent on Create account, a hairline between the card intro and its
   form, soft lift shadows — and real bottom margin so the register card
   (which grows with the researcher fields) never touches the footer. */
.avyn-auth { display: grid; gap: 1.75rem; max-width: 62rem; margin: 2.25rem auto 5rem; }
@media (min-width: 900px) { .avyn-auth { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; } }
.avyn-auth-card { border: 1px solid var(--avyn-rule); border-top: 3px solid var(--avyn-brand); background: var(--avyn-panel); padding: 2rem 1.9rem 2.1rem; box-shadow: 0 14px 34px -24px rgba(18, 22, 24, 0.35); }
.avyn-auth-register { border-top-color: var(--avyn-ink); }
.avyn-auth-title { margin: 0.5rem 0 0; font-size: 1.625rem; font-weight: 650; letter-spacing: -0.01em; color: var(--avyn-ink); }
.avyn-auth-sub { margin: 0.5rem 0 0; max-width: 46ch; font-size: 0.75rem; line-height: 1.65; color: var(--avyn-slate); }
.avyn-auth-form { margin-top: 1.4rem; border-top: 1px solid var(--avyn-rule); padding-top: 1.4rem; }
.avyn-auth-field { margin: 0 0 1rem; }
.avyn-auth-field label { display: block; margin-bottom: 4px; }
.avyn-auth-field input { width: 100%; min-height: 44px; padding: 0.625rem 0.75rem; border: 1px solid var(--avyn-rule); border-radius: 0; background: var(--avyn-paper); font-size: 0.9375rem; color: var(--avyn-ink); box-shadow: none; transition: border-color 140ms ease, box-shadow 140ms ease; }
.avyn-auth-field input:focus { border-color: var(--avyn-brand); outline: none; box-shadow: 0 0 0 3px rgba(25, 118, 110, 0.14); }

/* Account-page notices (the gate's sign-in prompt, login errors, the
   registration validation list) — designed cards instead of raw Woo output:
   a left accent per kind, panel background, readable mono-adjacent sizing. */
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-error {
  list-style: none; margin: 1.25rem auto 0; padding: 0.875rem 1.1rem;
  border: 1px solid var(--avyn-rule); background: var(--avyn-panel);
  font-size: 0.8125rem; line-height: 1.6; color: var(--avyn-graphite);
  box-shadow: 0 10px 24px -20px rgba(18, 22, 24, 0.3);
}
body.woocommerce-account .woocommerce-info { border-left: 3px solid var(--avyn-brand); }
body.woocommerce-account .woocommerce-message { border-left: 3px solid var(--avyn-ok, #206a4a); }
body.woocommerce-account .woocommerce-error { border-left: 3px solid var(--avyn-data, #ac4e1e); }
body.woocommerce-account .woocommerce-error li { margin: 0 0 0.35rem; }
body.woocommerce-account .woocommerce-error li:last-child { margin-bottom: 0; }
body.woocommerce-account .woocommerce-error li strong { color: var(--avyn-ink); }
body.woocommerce-account .woocommerce-info a,
body.woocommerce-account .woocommerce-message a,
body.woocommerce-account .woocommerce-error a { color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 3px; }
.avyn-auth-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.avyn-auth-remember { display: flex; align-items: center; gap: 0.5rem; font-size: 0.75rem; color: var(--avyn-graphite); }
.avyn-auth-remember input { accent-color: var(--avyn-brand); }
.avyn-auth-lost { font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 2px; }
body .avyn-auth-submit { width: 100%; }

/* ── Hook-injected fields on the auth (register) card ───────────────
   Fields added via woocommerce_register_form (research profile, etc.)
   arrive as standard .form-row markup — dress them like the card's own
   fields, selects and selectWoo boxes included. */
.avyn-auth-card .form-row { float: none; width: 100%; margin: 0 0 1rem; padding: 0; }
.avyn-auth-card .form-row label { display: block; margin-bottom: 4px; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--avyn-slate); }
.avyn-auth-card .form-row .woocommerce-input-wrapper { display: block; width: 100%; }
.avyn-auth-card .form-row input.input-text,
.avyn-auth-card .form-row select {
  width: 100%; min-height: 44px; padding: 0.625rem 0.75rem; border: 1px solid var(--avyn-rule);
  border-radius: 0; background: var(--avyn-paper); font-size: 0.9375rem; color: var(--avyn-ink); box-shadow: none;
}
.avyn-auth-card .form-row select { appearance: auto; -webkit-appearance: auto; height: auto; line-height: 1.4; }
.avyn-auth-card .form-row input.input-text:focus,
.avyn-auth-card .form-row select:focus { border-color: var(--avyn-brand); outline: none; box-shadow: 0 0 0 3px rgba(25, 118, 110, 0.14); }
.avyn-auth-card .form-row .required { color: #9e2e22; text-decoration: none; }
/* selectWoo / select2 enhancement of those selects */
.avyn-auth-card .select2-container { width: 100% !important; }
.avyn-auth-card .select2-container .select2-selection--single { height: 44px; border: 1px solid var(--avyn-rule); border-radius: 0; background: var(--avyn-paper); }
.avyn-auth-card .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 0.75rem; font-size: 0.9375rem; color: var(--avyn-ink); }
.avyn-auth-card .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }

/* ── Notices stay at container width on account pages ───────────────
   The account page may run on a full-width layout; WooCommerce notices
   (errors, messages, info) still box to the standard container. */
body.woocommerce-account .woocommerce-notices-wrapper,
body.woocommerce-account > * > .woocommerce-error,
body.woocommerce-account .entry-content > .woocommerce > .woocommerce-error,
body.woocommerce-account .entry-content > .woocommerce > .woocommerce-message,
body.woocommerce-account .entry-content > .woocommerce > .woocommerce-info {
  max-width: var(--avyn-container-width, 74rem);
  margin-left: auto; margin-right: auto;
  box-sizing: border-box;
}
body.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error,
body.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message,
body.woocommerce-account .woocommerce-notices-wrapper .woocommerce-info { max-width: none; }
