/* =========================================================================
   My Account — NZM design language (login/register + dashboard/orders/etc.)
   No source page existed; built to match cart/checkout styling.
   ========================================================================= */

.acc { padding: 64px 0 120px; background: var(--paper); min-height: 70vh; }

/* ---- Head ---------------------------------------------------------------- */
.acc__head { margin-bottom: 48px; max-width: 720px; }
.acc__eyebrow { font-family: "JetBrains Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink-soft); margin-bottom: 24px; }
.acc__title { font-size: var(--t-display-2); font-weight: 800; letter-spacing: -0.03em; line-height: 0.95; text-transform: uppercase; margin-bottom: 16px; }
.acc__sub { font-family: "JetBrains Mono", monospace; font-size: 12px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-muted); }
.acc__sub strong { color: var(--ink); font-weight: 700; }

/* ---- Grid: sidebar + content -------------------------------------------- */
.acc__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }

/* ---- Sidebar navigation -------------------------------------------------- */
/* Selectors are scoped through .acc__nav (which also carries WooCommerce's
   .woocommerce-MyAccount-navigation) so they out-rank both the global
   `a{white-space:nowrap}` and WooCommerce's own `li a` / `li{font-size:2rem}`. */
.acc__nav.woocommerce-MyAccount-navigation { position: sticky; top: 96px; float: none; width: auto; margin: 0; padding: 12px; background: var(--white); border: 1px solid var(--line); border-radius: 5px; font-family: "JetBrains Mono", monospace; }
.acc__nav .acc__nav-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.acc__nav .acc__nav-item { list-style: none; margin: 0; padding: 0; font-size: 12px; }
.acc__nav .acc__nav-link { display: block; padding: 12px 14px; border-radius: 4px; font-family: "JetBrains Mono", monospace; font-size: 12px; font-weight: 500; line-height: 1.35; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); text-decoration: none; white-space: normal; overflow-wrap: break-word; transition: background-color 0.18s ease, color 0.18s ease; }
.acc__nav .acc__nav-link:hover { background: var(--paper-cool); color: var(--ink); }
.acc__nav .acc__nav-item.is-active > .acc__nav-link { background: var(--ink); color: var(--white); font-weight: 600; }
.acc__nav .acc__nav-item.is-active a::before { content: none; } /* drop WooCommerce's "> " marker */

/* ---- Content card -------------------------------------------------------- */
.acc__content { background: var(--white); border: 1px solid var(--line); border-radius: 5px; padding: 32px; min-width: 0; }
.acc__content > h2,
.acc__content h3 { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; margin: 0 0 20px; }
.acc__content p { color: var(--ink-soft); line-height: 1.6; }
.acc__content a { color: var(--accent); }
.acc__content a:hover { color: var(--accent-hover); }

/* ---- Dashboard ----------------------------------------------------------- */
.acc-dash__intro { margin-bottom: 28px; }
.acc-dash__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.acc-dash__card { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--line); border-radius: 5px; background: var(--paper); text-decoration: none; transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.15s ease; }
.acc-dash__card:hover { border-color: var(--ink); background: var(--white); transform: translateY(-2px); }
.acc-dash__card-eyebrow { font-family: "JetBrains Mono", monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink-muted); }
.acc-dash__card-title { font-size: 16px; font-weight: 800; letter-spacing: -0.01em; color: var(--ink); }
.acc-dash__card-sub { font-size: 12px; color: var(--ink-soft); }

/* ---- Auth (login / register) -------------------------------------------- */
.acc-auth { display: grid; gap: 24px; }
.acc-auth--split { grid-template-columns: 1fr 1fr; }
.acc-auth--single { max-width: 460px; }
.acc-auth__card { background: var(--white); border: 1px solid var(--line); border-radius: 5px; padding: 32px; }
.acc-auth__head { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.acc-auth__num { font-family: "JetBrains Mono", monospace; font-size: 12px; font-weight: 600; color: var(--ink-muted); letter-spacing: 0.08em; }
.acc-auth__title { font-size: 20px; font-weight: 800; letter-spacing: -0.01em; margin: 0; }

/* ---- Forms (login/register + edit-account/address) ---------------------- */
.acc__content .woocommerce-EditAccountForm,
.acc__content .woocommerce-address-fields,
.acc-form { display: flex; flex-direction: column; gap: 18px; }
.acc-field,
.acc__content .form-row { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.acc-field label,
.acc__content .form-row label,
.acc__content label { font-family: "JetBrains Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-soft); }
.acc-field .required,
.acc__content .required { color: var(--accent); border: 0; text-decoration: none; }

.acc-input,
.acc__content input.input-text,
.acc__content input[type="text"],
.acc__content input[type="email"],
.acc__content input[type="tel"],
.acc__content input[type="password"],
.acc__content select,
.acc__content textarea {
	width: 100%; border: 1px solid var(--line); border-radius: 5px; padding: 12px 14px;
	font-family: "JetBrains Mono", monospace; font-size: 13px; background: var(--white); color: var(--ink);
	box-shadow: none; transition: border-color 0.18s ease;
}
.acc-input:focus,
.acc__content input.input-text:focus,
.acc__content input:focus,
.acc__content select:focus,
.acc__content textarea:focus { outline: none; border-color: var(--ink-soft); }
.acc-input::placeholder,
.acc__content input::placeholder { color: var(--ink-muted); }

/* Two-up address fields keep WooCommerce's first/last columns. */
.acc__content .form-row-first { width: 48%; float: left; }
.acc__content .form-row-last { width: 48%; float: right; }
.acc__content .form-row-wide { clear: both; }
.acc__content .woocommerce-address-fields__field-wrapper::after { content: ""; display: block; clear: both; }

.acc-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 4px; }
.acc-form__submit { min-width: 0; }
.acc__content button.button,
.acc__content input.button {
	background: var(--accent); color: var(--white); border: 1px solid var(--accent); border-radius: 5px;
	padding: 14px 28px; font-family: "JetBrains Mono", monospace; font-size: 12px; font-weight: 500;
	text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease; float: none;
}
.acc__content button.button:hover,
.acc__content input.button:hover { background: var(--white); color: var(--accent); }

.acc-remember { flex-direction: row !important; align-items: center; gap: 8px; font-family: "JetBrains Mono", monospace; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-soft); cursor: pointer; }
.acc-remember input { width: auto; }
.acc-lost { margin: 0; font-size: 12px; }
.acc-lost a { font-family: "JetBrains Mono", monospace; text-transform: uppercase; letter-spacing: 0.08em; }
.acc-note { font-size: 13px; color: var(--ink-muted); }

/* ---- Tables (orders / downloads) ---------------------------------------- */
.acc__content table.woocommerce-orders-table,
.acc__content table.woocommerce-MyAccount-downloads,
.acc__content table.shop_table {
	width: 100%; border-collapse: collapse; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; margin: 0;
}
.acc__content table.shop_table th {
	background: var(--paper-cool); font-family: "JetBrains Mono", monospace; font-size: 10px; text-transform: uppercase;
	letter-spacing: 0.12em; color: var(--ink-soft); text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--line);
}
.acc__content table.shop_table td { padding: 16px; border-bottom: 1px solid var(--line-soft); font-size: 14px; color: var(--ink-soft); vertical-align: middle; }
.acc__content table.shop_table tr:last-child td { border-bottom: 0; }
.acc__content table.shop_table .woocommerce-button { padding: 8px 16px; font-size: 11px; }

/* ---- Addresses grid ------------------------------------------------------ */
/* WooCommerce floats .col-1/.col-2 (billing/shipping) side by side at width:48%.
   Force a real two-column grid and neutralise the floats/widths with !important
   so the boxes sit on one row regardless of WooCommerce's tie-specificity rules. */
.woocommerce-account .acc__content .woocommerce-Addresses,
.acc__content .woocommerce-Addresses { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 8px; align-items: stretch; }
.acc__content .woocommerce-Addresses > .woocommerce-Address,
.acc__content .woocommerce-Addresses > .col-1,
.acc__content .woocommerce-Addresses > .col-2 { width: 100% !important; float: none !important; margin: 0 !important; }
/* ROOT CAUSE: woocommerce-layout.css adds `.woocommerce .col2-set::before/::after
   { content:" "; display:table }` (a float clearfix). Inside a grid container those
   pseudo-elements become phantom grid items — ::before takes row 1 / col 1, pushing
   Billing to row 1 / col 2 (top-right) and Shipping to row 2 / col 1 (bottom-left).
   Neutralise the pseudo-elements and pin the two real boxes explicitly. */
.acc__content .woocommerce-Addresses::before,
.acc__content .woocommerce-Addresses::after { content: none !important; display: none !important; }
.acc__content .woocommerce-Addresses > .col-1 { grid-column: 1 !important; grid-row: 1 !important; }
.acc__content .woocommerce-Addresses > .col-2 { grid-column: 2 !important; grid-row: 1 !important; }
.acc__content .woocommerce-Address { border: 1px solid var(--line); border-radius: 5px; padding: 24px; background: var(--paper); }
.acc__content .woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.acc__content .woocommerce-Address-title h3 { margin: 0; font-size: 16px; }
.acc__content .woocommerce-Address address { font-style: normal; font-size: 14px; color: var(--ink-soft); line-height: 1.6; }
.acc__content .edit { font-family: "JetBrains Mono", monospace; font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; }

/* ---- WooCommerce notices ------------------------------------------------- */
.woocommerce-message, .woocommerce-error, .woocommerce-info {
	list-style: none; border-radius: 5px; padding: 14px 18px; margin: 0 0 24px; font-size: 14px; border: 1px solid var(--line);
	background: var(--white); color: var(--ink-soft); line-height: 1.5;
}
/* WooCommerce reserves padding-left:3.5em for an absolutely-positioned icon-font
   ::before glyph (and adds ::before/::after clearfix boxes). Our notices use a
   coloured left border instead, so drop the pseudo-elements — otherwise the icon
   overlaps the text (Orders/Downloads empty states). */
.woocommerce-message::before, .woocommerce-message::after,
.woocommerce-error::before, .woocommerce-error::after,
.woocommerce-info::before, .woocommerce-info::after { content: none !important; display: none !important; }
.woocommerce-message { border-left: 3px solid var(--accent); }
.woocommerce-error { border-left: 3px solid #b3261e; }
.woocommerce-info { border-left: 3px solid var(--ink); }
.woocommerce-error li { list-style: none; margin: 0; }

/* ---- Pagination ---------------------------------------------------------- */
.acc__content .woocommerce-pagination { margin-top: 24px; }
.acc__content .woocommerce-pagination ul { display: flex; gap: 6px; list-style: none; margin: 0; padding: 0; }
.acc__content .woocommerce-pagination a,
.acc__content .woocommerce-pagination span { display: inline-flex; padding: 8px 12px; border: 1px solid var(--line); border-radius: 4px; font-family: "JetBrains Mono", monospace; font-size: 12px; color: var(--ink-soft); text-decoration: none; }
.acc__content .woocommerce-pagination .current { background: var(--ink); color: var(--white); border-color: var(--ink); }

/* ---- Responsive ---------------------------------------------------------- */
@media (max-width: 1024px) {
	.acc__grid { grid-template-columns: 1fr; }
	.acc__nav.woocommerce-MyAccount-navigation { position: static; }
	.acc__nav .acc__nav-list { flex-direction: row; flex-wrap: wrap; }
	.acc-dash__cards { grid-template-columns: 1fr; }
	.acc-auth--split { grid-template-columns: 1fr; }
	.woocommerce-account .acc__content .woocommerce-Addresses,
	.acc__content .woocommerce-Addresses { grid-template-columns: 1fr; }
	/* Single column: stack the two boxes (Billing row 1, Shipping row 2). */
	.acc__content .woocommerce-Addresses > .col-1 { grid-column: 1 !important; grid-row: 1 !important; }
	.acc__content .woocommerce-Addresses > .col-2 { grid-column: 1 !important; grid-row: 2 !important; }
}
@media (max-width: 640px) {
	.acc { padding: 32px 0 80px; }
	.acc__head { margin-bottom: 32px; }
	.acc__content { padding: 24px; }
	.acc-auth__card { padding: 24px; }
	.acc__content .form-row-first,
	.acc__content .form-row-last { width: 100%; float: none; }
}
