/* Manzo account sub-module. Cascade order is enforced by inc/assets.php. */

/* WooCommerce core (woocommerce-layout.css) ships, scoped to body class:
 *   .woocommerce-account .woocommerce-MyAccount-navigation { float: left;  width: 30%; }
 *   .woocommerce-account .woocommerce-MyAccount-content    { float: right; width: 68%; }
 * Our pane carries the .woocommerce-MyAccount-content class so plugins that
 * hook into it still work — but the float/width rules collapse the right pane
 * to 68% inside its grid column. Neutralize them with matching specificity
 * (0,2,0). .mz-account__shell drives the real layout. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
  float: none;
  width: auto;
}

/* =========================================================
   My Account — "Area Officina"
   Two-column shell, mono-index left rail, dense data tables,
   reused part-cards for reorder, custom appliance cards.
   Codes are headlines; depth is borders, never shadow.
   ========================================================= */
/* Top --s-4: la breadcrumb-as-header dell'area clienti parte alla stessa altezza
   sotto la nav di carrello/catalogo/scheda (band .mz-shop-head--bc, padding-top
   --s-4). Il padding è sul wrapper, quindi rail e pannello salgono insieme e
   restano allineati in cima. */
.mz-account {
  padding: var(--s-4) 0 var(--s-9);
}
.mz-account--auth { padding: var(--s-9) 0; }

.mz-account__shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: var(--s-7);
  align-items: start;
}
@media (max-width: 900px) {
  .mz-account__shell { grid-template-columns: minmax(0, 1fr); gap: var(--s-5); }
}

/* ---------- Left rail nav ---------- */
.mz-account__nav {
  position: sticky;
  top: calc(var(--header-h, 72px) + var(--s-3));
  display: flex; flex-direction: column;
  gap: var(--s-3);
  padding: var(--s-4);
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-radius: var(--r-3);
}
@media (max-width: 900px) {
  .mz-account__nav {
    position: static;
    padding: var(--s-3);
  }
}

.mz-account__nav-eyebrow {
  font-size: var(--t-xs);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  color: var(--ink-3);
  padding: var(--s-2) var(--s-3) var(--s-1);
}

.mz-account__nav-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column;
  gap: 1px;
}
@media (max-width: 900px) {
  .mz-account__nav { min-width: 0; }
  .mz-account__nav-list {
    flex-direction: row;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--s-1);
    min-width: 0;
    max-width: 100%;
  }
  .mz-account__nav-list::-webkit-scrollbar { height: 2px; }
}
.mz-account__nav-item { margin: 0; }
@media (max-width: 900px) {
  .mz-account__nav-item { flex: 0 0 auto; scroll-snap-align: start; }
}
.mz-account__nav-item a {
  display: flex; align-items: center; gap: var(--s-3);
  height: 40px;
  padding: 0 var(--s-3);
  border: 0;
  border-radius: var(--r-2);
  font: 500 var(--t-sm)/1 var(--ff-ui);
  color: var(--ink-2);
  letter-spacing: -0.005em;
  transition: background var(--d-1) var(--ease), color var(--d-1) var(--ease);
}
.mz-account__nav-item a:hover {
  background: var(--paper-3);
  color: var(--ink-1);
  border-bottom-color: transparent;
}
.mz-account__nav-item.is-active a {
  background: var(--ink-1);
  color: var(--paper);
}
.mz-account__nav-item.is-active a:hover { color: var(--paper); }
.mz-account__nav-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px; height: 18px;
  flex-shrink: 0;
  color: var(--ink-3);
  transition: color var(--d-1) var(--ease);
}
.mz-account__nav-icon svg { width: 100%; height: 100%; display: block; }
.mz-account__nav-item:hover .mz-account__nav-icon { color: var(--ink-1); }
/* Active stato: il background è --ink-1 e il testo è --paper. L'icona segue
   il testo via currentColor cosi flippa correttamente anche in dark mode
   (dove --ink-1 diventa chiaro e --paper diventa scuro). */
.mz-account__nav-item.is-active .mz-account__nav-icon { color: inherit; }
.mz-account__nav-label { flex: 1; min-width: 0; }
.mz-account__nav-count {
  font-size: 10px; line-height: 1;
  background: var(--ink-1);
  color: var(--paper);
  padding: 4px 6px;
  border-radius: 999px;
  letter-spacing: 0;
  flex-shrink: 0;
}
.mz-account__nav-item.is-active .mz-account__nav-count {
  background: var(--paper); color: var(--brand);
}
.mz-account__nav-count--ok { background: var(--success); color: #fff; }
.mz-account__nav-item.is-active .mz-account__nav-count--ok {
  background: var(--paper); color: var(--success);
}
.mz-account__nav-item--logout a { color: var(--ink-3); }
.mz-account__nav-item--logout a::before {
  content: ""; flex: 1; max-width: 0;
}

/* ---------- Right pane ---------- */
.mz-account__pane {
  min-width: 0;
  display: flex; flex-direction: column;
}
/* L'header non è una sezione pari: sta più vicino al suo contenuto (--s-6) di
   quanto due sezioni distino tra loro (--s-8). Senza questa distinzione un
   divisore "nudo" — ordini/download vuoti, dove la sottolinea è soppressa —
   galleggia su un vuoto da 48px sopra il riquadro vuoto. La distanza
   header→contenuto resta costante che ci sia o meno la lede. */
.mz-account__pane > * + * { margin-top: var(--s-8); }
.mz-account__head + * { margin-top: var(--s-6); }
/* L'header non prende mai margine sopra: WooCommerce stampa un
   .woocommerce-notices-wrapper (spesso vuoto) prima di lui, e il combinatore
   `* + *` lo conterebbe come secondo figlio, spingendo l'header verso il basso
   anche quando il wrapper è invisibile. */
.mz-account__pane > .mz-account__head { margin-top: 0; }

/* L'header di sezione è ora reso da manzo_render_breadcrumb_head() come
   <header class="mz-bc-head mz-account__head">: il pattern breadcrumb-as-header
   (regola hairline, crumb-titolo grassetto, lede) vive in components/breadcrumb.css
   su .mz-bc-head. Qui restano solo le regole specifiche del pannello account:
   il ritmo verticale (margini sotto) e la variante auth centrata. */
.mz-account__head {
  display: flex; flex-direction: column;
  gap: var(--s-4);
}
/* Auth (login / recupero): header centrato senza regola, mantiene la struttura
   "indice + grande H1" e il ritmo --s-2 originale (niente .mz-bc-head__bar, qui
   il titolo è un H1 visibile, non il crumb). */
.mz-account__head--center {
  align-items: center;
  text-align: center;
  gap: var(--s-2);
  padding-bottom: var(--s-6);
}
.mz-account__head--center .mz-breadcrumb { margin: 0; }
.mz-account__head--center .mz-breadcrumb [aria-current="page"] {
  color: var(--ink-1);
  font-weight: 600;
}
.mz-account__index {
  font-size: var(--t-xs);
  letter-spacing: var(--tr-micro);
  text-transform: uppercase;
  color: var(--ink-3);
}
.mz-account__h1 {
  font-size: clamp(28px, 3.4vw, 38px);
}
.mz-account__sub {
  margin: 0;
  font-size: var(--t-md);
  color: var(--ink-2);
  max-width: 60ch;
}

.mz-account__block {
  display: flex; flex-direction: column;
  gap: var(--s-5);
}
.mz-account__block-head {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "idx link" "title link";
  align-items: end;
  gap: var(--s-2) var(--s-5);
  padding-bottom: var(--s-3);
  border-bottom: 1px solid var(--border);
}
.mz-account__block-head .mz-account__index { grid-area: idx; }
.mz-account__block-head h2,
.mz-account__block-head .mz-h3 { grid-area: title; }
.mz-account__block-head .mz-section-head__link { grid-area: link; align-self: end; }

.mz-account__empty {
  display: flex; flex-direction: column;
  align-items: flex-start;
  gap: var(--s-4);
  padding: var(--s-6);
  background: var(--paper-2);
  border: 1px dashed var(--border-strong);
  border-radius: var(--r-3);
  color: var(--ink-2);
}
.mz-account__empty p { margin: 0; max-width: 48ch; }

.mz-account__notice {
  padding: var(--s-4) var(--s-5);
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-radius: var(--r-2);
  color: var(--ink-2);
  font-size: var(--t-sm);
}
.mz-account__notice--soft { border-style: dashed; }


/* ---------- Status pills ---------- */
.mz-status {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px var(--s-2);
  font: 600 var(--t-xs)/1 var(--ff-mono);
  letter-spacing: var(--tr-label);
  text-transform: uppercase;
  border: 1px solid currentColor;
  border-radius: var(--r-1);
  white-space: nowrap;
}
.mz-status::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
}
.mz-status--live { color: var(--accent-ink); }
.mz-status--ok   { color: var(--success); }
.mz-status--off  { color: var(--ink-3); }


/* WooCommerce notices inside the account pane — restyled to system */
.mz-account__pane .woocommerce-message,
.mz-account__pane .woocommerce-info,
.mz-account__pane .woocommerce-error {
  list-style: none;
  margin: 0 0 var(--s-5);
  padding: var(--s-4) var(--s-5);
  background: var(--paper-2);
  border: 1px solid var(--border);
  border-top: 2px solid var(--ink-1);
  border-radius: var(--r-2);
  font-size: var(--t-sm);
  color: var(--ink-1);
}
.mz-account__pane .woocommerce-error { border-top-color: var(--brand); }
.mz-account__pane .woocommerce-message { border-top-color: var(--success); }
.mz-account__pane .woocommerce-error li,
.mz-account__pane .woocommerce-message li,
.mz-account__pane .woocommerce-info li { margin: 0; padding: 0; }

