/*
 * FEVA SOUL — My Account nav + dashboard styling (M5).
 * Account-specific only; global tokens/base styles live in main.css.
 * Enqueued conditionally on is_account_page() — see inc/enqueue.php.
 */

.account-content {
	min-width: 0;
}

/*
 * Content shell — same container pattern as every storefront section
 * (max-width + --page-margin side padding). Nav and endpoint content
 * share one container so the tab strip lines up with the content below.
 */
.account-shell {
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--space-8) var(--page-margin) var(--space-16);
}

/* ---------- Account navigation ---------- */

.account-nav {
	margin-bottom: var(--space-8);
}

.account-nav__list {
	display: flex;
	gap: var(--space-2);
	list-style: none;
	margin: 0 0 var(--space-6);
	padding: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-bottom: 1px solid var(--color-line);
}

.account-nav__item {
	flex: 0 0 auto;
}

.account-nav__link {
	display: block;
	padding: var(--space-3) var(--space-4);
	white-space: nowrap;
	text-decoration: none;
	color: var(--color-muted);
	font-size: 0.9rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.account-nav__link:hover {
	color: var(--color-ink);
}

.account-nav__item.is-active .account-nav__link {
	border-bottom: 2px solid var(--color-ink);
	color: var(--color-ink);
	font-weight: 600;
}

/* ---------- Account dashboard ---------- */

.account-dashboard__welcome {
	font-size: 1.1rem;
	margin: 0 0 var(--space-4);
}

.account-dashboard__intro {
	color: var(--color-muted);
	max-width: 640px;
	margin: 0;
}

.account-dashboard a,
.account-content a {
	color: var(--color-ink);
	text-decoration: underline;
}

/* ---------- Order history list ---------- */

.order-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.order-list__item {
	border: 1px solid var(--color-line);
	border-radius: 4px;
	background: var(--color-paper);
	padding: var(--space-4) var(--space-5);
}

.order-list__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-2) var(--space-5);
}

.order-list__number a {
	color: var(--color-ink);
	font-weight: 600;
	text-decoration: none;
}

.order-list__number a:hover {
	text-decoration: underline;
}

.order-list__date {
	color: var(--color-muted);
	font-size: 0.9rem;
}

.order-list__status {
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	padding: var(--space-1) var(--space-3);
	border: 1px solid var(--color-line);
	border-radius: 999px;
	color: var(--color-muted);
}

.order-list__status--completed,
.order-list__status--processing {
	border-color: var(--color-ink);
	color: var(--color-ink);
}

.order-list__total {
	color: var(--color-muted);
	font-size: 0.9rem;
}

.order-list__view {
	margin-left: auto;
}

.order-list__pagination {
	display: flex;
	gap: var(--space-3);
	margin-top: var(--space-6);
}

@media (max-width: 600px) {
	.order-list__row {
		flex-direction: column;
		align-items: flex-start;
	}

	.order-list__view {
		margin-left: 0;
	}
}

/* ---------- Single order detail ---------- */

.order-detail__status {
	margin: 0 0 var(--space-6);
}

.order-detail__status-badge {
	background: none;
	font-weight: 600;
	color: var(--color-ink);
}

.order-detail__table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--space-8);
}

.order-detail__table th,
.order-detail__table td {
	padding: var(--space-3) var(--space-2);
	border-bottom: 1px solid var(--color-line);
	text-align: left;
}

.order-detail__table thead th {
	color: var(--color-muted);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--color-ink);
}

.order-detail__table tfoot th,
.order-detail__table tfoot td {
	border-bottom: none;
}

.order-detail__updates {
	margin-bottom: var(--space-8);
}

.order-detail__notes {
	list-style: none;
	margin: 0;
	padding: 0;
}

.order-detail__note {
	padding: var(--space-3) 0;
	border-bottom: 1px solid var(--color-line);
}

.order-detail__note-meta {
	color: var(--color-muted);
	font-size: 0.85rem;
	margin: 0 0 var(--space-1);
}

.order-detail__note-text {
	margin: 0;
}

.order-detail__addresses {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-8);
	margin-bottom: var(--space-8);
}

.order-detail__address {
	font-style: normal;
	line-height: 1.6;
}

.order-detail__address h3 {
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	margin: 0 0 var(--space-2);
}

.order-detail__returns-note {
	color: var(--color-muted);
	font-size: 0.9rem;
}

/* ---------- Login / registration (form-login.php) ---------- */

.account-auth {
	max-width: 960px;
	/*
	 * Centre the auth layout in its container (the .account-shell content
	 * area). margin-inline keeps it balanced even if the shell wrapper is
	 * ever absent (stale template copy) — the block then centres inside
	 * .entry-content instead of hugging the viewport's left edge.
	 */
	margin-inline: auto;
}

/* When registration is disabled (woocommerce_enable_myaccount_registration = no),
 * constrain the single login panel so it doesn't stretch to 960px. */
.account-auth--login-only {
	max-width: 480px;
}

.account-auth__panel h2 {
	margin: 0 0 var(--space-6);
}

.account-auth--split {
	display: grid;
	gap: var(--space-8);
	grid-template-columns: 1fr;
	align-items: start;
}

@media (min-width: 768px) {
	.account-auth--split {
		grid-template-columns: 1fr 1fr;
	}

	.account-auth__panel--login {
		border-right: 1px solid var(--color-line);
		padding-right: var(--space-8);
	}

	.account-auth__panel--register {
		padding-left: var(--space-8);
	}
}

.account-auth__remember-forgot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-2);
	margin: var(--space-2) 0 var(--space-5);
	font-size: 0.875rem;
}

.account-auth__remember-forgot label {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

/* ---------- Logged-out auth: field rhythm + pill CTAs ----------
 *
 * Field geometry mirrors the approved checkout inputs (checkout.css):
 * muted stacked labels, #f5f4f1 pill fields, ink focus border. Scoped
 * to .account-auth only — no other WooCommerce form is affected.
 * Selectors outrank WooCommerce core's
 * `.woocommerce form .form-row …` rules; account.css also loads last.
 */

.account-auth form.woocommerce-form .form-row {
	padding: 0;
	margin: 0 0 var(--space-4);
}

.account-auth form.woocommerce-form .form-row label {
	display: block;
	margin-bottom: var(--space-2);
	font-size: 0.8125rem;
	color: var(--color-muted);
	line-height: 1.4;
}

.account-auth form.woocommerce-form .form-row input.input-text,
.account-auth form.woocommerce-form .form-row input[type="text"],
.account-auth form.woocommerce-form .form-row input[type="email"],
.account-auth form.woocommerce-form .form-row input[type="password"] {
	width: 100%;
	padding: 0.85rem 1.25rem;
	background: #f5f4f1;
	border: 1.5px solid #e8e5e0;
	border-radius: 12px;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--color-ink);
	box-shadow: none;
	box-sizing: border-box;
}

.account-auth form.woocommerce-form .form-row input.input-text:focus,
.account-auth form.woocommerce-form .form-row input[type="text"]:focus,
.account-auth form.woocommerce-form .form-row input[type="email"]:focus,
.account-auth form.woocommerce-form .form-row input[type="password"]:focus {
	outline: none;
	border-color: var(--color-ink);
	background: #fff;
	box-shadow: none;
}

/* The two auth CTAs — approved pill geometry (same as #place_order).
 * Black/white hierarchy comes from .btn--primary/.btn--outline unchanged. */
.account-auth .woocommerce-form-login__submit,
.account-auth .woocommerce-form-register__submit {
	border-radius: 999px;
	height: 48px;
	padding: 0 var(--space-8);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.account-auth .woocommerce-form-login__submit:focus-visible,
.account-auth .woocommerce-form-register__submit:focus-visible {
	outline: 2px solid var(--color-ink);
	outline-offset: 3px;
}

/* Registration explanatory / privacy text: breathing room + readable
 * line-height, without stretching the card. */
.account-auth__panel--register > p:not(.form-row) {
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.7;
	margin: 0 0 var(--space-5);
}

/* ---------- Lost / reset password ----------
 *
 * WC renders both screens (lost-password request + email-link reset)
 * as bare fragments via WC_Shortcode_My_Account::lost_password() —
 * they bypass my-account.php, so .account-shell/.account-auth never
 * wrap them and the form would otherwise stretch across the viewport.
 * Constrain and centre the form itself; fields, intro text and CTA
 * reuse the approved My Account geometry. body.woocommerce-account is
 * only present on account pages, so nothing outside this flow matches.
 */

body.woocommerce-account .entry-content .woocommerce-ResetPassword {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(480px + (2 * var(--page-margin)));
	padding-inline: var(--page-margin);
	margin: var(--space-10) auto var(--space-16);
}

/* Notices on the bare-fragment screens (sent-mail confirmation,
 * invalid-key/invalid-username errors, reset-form errors). Verified
 * DOM: WC prints them as <ul> inside .woocommerce-notices-wrapper,
 * which sits inside the .woocommerce shortcode wrapper — NOT as direct
 * children of .entry-content. The normal account page renders notices
 * inside .account-content, so these selectors cannot collide. */
body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-message,
body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-info,
body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-error {
	list-style: none;
	max-width: calc(480px + (2 * var(--page-margin)));
	margin: var(--space-8) auto var(--space-5);
	padding: var(--space-4) calc(var(--page-margin) + var(--space-1));
	box-sizing: border-box;
	background: var(--color-cream);
	border: 1px solid var(--color-line);
	border-left: 3px solid var(--color-ink);
	border-radius: 4px;
	color: var(--color-ink);
	font-size: 0.9rem;
	line-height: 1.6;
}

body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-error {
	border-left-color: #e2401c;
}

body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-message::before,
body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-info::before,
body.woocommerce-account .entry-content .woocommerce-notices-wrapper > .woocommerce-error::before {
	display: none;
}

/* Success-state confirmation paragraph: lost-password-confirmation.php
 * renders a bare <p> as a direct child of the .woocommerce wrapper —
 * outside the form, so the form-scoped paragraph rule cannot reach it.
 * Same centered width as the form; generous bottom margin is the page's
 * footer whitespace because the form is not rendered in this state. */
body.woocommerce-account .entry-content .woocommerce > p:not(.form-row) {
	max-width: calc(480px + (2 * var(--page-margin)));
	margin: var(--space-4) auto var(--space-16);
	padding-inline: var(--page-margin);
	box-sizing: border-box;
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.7;
}

body.woocommerce-account .woocommerce-ResetPassword > p:not(.form-row) {
	color: var(--color-muted);
	font-size: 0.9rem;
	line-height: 1.7;
	margin: 0 0 var(--space-5);
}

body.woocommerce-account .woocommerce-ResetPassword .form-row {
	padding: 0;
	margin: 0 0 var(--space-4);
}

body.woocommerce-account .woocommerce-ResetPassword .form-row label {
	display: block;
	margin-bottom: var(--space-2);
	font-size: 0.8125rem;
	color: var(--color-muted);
	line-height: 1.4;
}

body.woocommerce-account .woocommerce-ResetPassword input.input-text {
	width: 100%;
	padding: 0.85rem 1.25rem;
	background: #f5f4f1;
	border: 1.5px solid #e8e5e0;
	border-radius: 12px;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--color-ink);
	box-shadow: none;
	box-sizing: border-box;
}

body.woocommerce-account .woocommerce-ResetPassword input.input-text:focus {
	outline: none;
	border-color: var(--color-ink);
	background: #fff;
	box-shadow: none;
}

body.woocommerce-account .woocommerce-ResetPassword .woocommerce-Button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 48px;
	padding: 0 var(--space-8);
	border: 1px solid var(--color-ink);
	border-radius: 999px;
	background: var(--color-ink);
	color: var(--color-paper);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1.2;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

body.woocommerce-account .woocommerce-ResetPassword .woocommerce-Button:hover {
	background: #000;
	color: var(--color-paper);
}

body.woocommerce-account .woocommerce-ResetPassword .woocommerce-Button:focus-visible {
	outline: 2px solid var(--color-ink);
	outline-offset: 3px;
}

/* ---------- Edit account / edit address (form-edit-account.php, form-edit-address.php) ---------- */

.account-form__row-group {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.account-form__row-group {
		grid-template-columns: 1fr 1fr;
	}
}

.account-form__password-fieldset {
	margin: var(--space-6) 0;
	padding: var(--space-4);
	border: 1px solid var(--color-line);
}

.account-form__address-fields {
	display: grid;
	gap: var(--space-4);
	grid-template-columns: 1fr;
}

@media (min-width: 600px) {
	.account-form__address-fields {
		grid-template-columns: 1fr 1fr;
	}
}

/* ---------- Logged-in content: typography & rhythm ---------- */

.account-content h2 {
	font-size: 1.25rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	margin: 0 0 var(--space-5);
}

.account-content h3 {
	font-size: 1rem;
	margin: 0 0 var(--space-3);
}

.account-content p {
	font-size: 0.9rem;
	line-height: 1.6;
	margin: 0 0 var(--space-4);
}

/* Section spacing between endpoint blocks (addresses columns, notices, tables). */
.account-content > * + * {
	margin-top: var(--space-6);
}

/* ---------- Endpoint notices ( WooCommerce message/info/error ) ---------- */

.account-content .woocommerce-message,
.account-content .woocommerce-info,
.account-content .woocommerce-error {
	list-style: none;
	background: var(--color-cream);
	border: 1px solid var(--color-line);
	border-left: 3px solid var(--color-ink);
	border-radius: 4px;
	padding: var(--space-4) var(--space-5);
	margin: 0 0 var(--space-5);
	color: var(--color-ink);
}

.account-content .woocommerce-error {
	border-left-color: #e2401c;
}

.account-content .woocommerce-message::before,
.account-content .woocommerce-info::before,
.account-content .woocommerce-error::before {
	display: none;
}

/* ---------- Endpoint tables (orders / payment methods / downloads) ---------- */

.account-content .woocommerce-orders-table,
.account-content .woocommerce-MyAccount-paymentMethods,
.account-content .woocommerce-MyAccount-downloads {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 var(--space-6);
}

.account-content .woocommerce-orders-table th,
.account-content .woocommerce-MyAccount-paymentMethods th,
.account-content .woocommerce-MyAccount-downloads th,
.account-content .woocommerce-orders-table td,
.account-content .woocommerce-MyAccount-paymentMethods td,
.account-content .woocommerce-MyAccount-downloads td {
	padding: var(--space-3) var(--space-2);
	border-bottom: 1px solid var(--color-line);
	text-align: left;
	vertical-align: top;
}

.account-content .woocommerce-orders-table thead th,
.account-content .woocommerce-MyAccount-paymentMethods thead th,
.account-content .woocommerce-MyAccount-downloads thead th {
	color: var(--color-muted);
	font-size: 0.8rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	border-bottom: 1px solid var(--color-ink);
}

.account-content .woocommerce-orders-table__row--status-completed td,
.account-content .woocommerce-orders-table__row--status-processing td {
	color: var(--color-ink);
}

/* Narrow screens: let wide endpoint tables scroll instead of overflowing. */
@media (max-width: 600px) {
	.account-content .woocommerce-orders-table,
	.account-content .woocommerce-MyAccount-paymentMethods,
	.account-content .woocommerce-MyAccount-downloads {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* ---------- Addresses endpoint ---------- */

/*
 * Addresses endpoint — WC markup differs across versions: legacy templates
 * wrap the two address cards in .col2-set > .col-1/.col-2 floats, newer
 * ones use .woocommerce-Addresses with bare children. Grid both wrappers
 * and neutralise the floats on any direct child so the layout holds on
 * either markup.
 */
.account-content .col2-set,
.account-content .woocommerce-Addresses {
	float: none;
	display: grid;
	gap: var(--space-5);
	grid-template-columns: 1fr;
	margin: 0 0 var(--space-6);
}

.account-content .col2-set > *,
.account-content .woocommerce-Addresses > * {
	float: none;
	width: auto;
	margin: 0;
}

@media (min-width: 768px) {
	.account-content .col2-set,
	.account-content .woocommerce-Addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.account-content .col2-set > div,
.account-content .woocommerce-Address {
	background: var(--color-paper);
	border: 1px solid var(--color-line);
	border-radius: 4px;
	padding: var(--space-5);
	float: none;
	width: auto;
}

.account-content .woocommerce-Address-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--space-3);
	margin: 0 0 var(--space-3);
}

.account-content .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 0.9rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.account-content .woocommerce-Address address {
	font-style: normal;
	line-height: 1.6;
}

.account-content .woocommerce-Address-title .edit {
	font-size: 0.8rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* ---------- Payment methods / downloads empty + primary action ---------- */

.account-content .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-3) var(--space-5);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	border: 1px solid var(--color-ink);
	background: var(--color-ink);
	color: var(--color-paper);
	border-radius: 0;
	line-height: 1.2;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.account-content .button:hover {
	background: #000;
	color: var(--color-paper);
}

.account-content .button:focus-visible {
	outline: 2px solid var(--color-ink);
	outline-offset: 3px;
}

/* Secondary/outline variant WooCommerce marks with .button or .wc-forward links. */
.account-content a.edit,
.account-content .wc-forward:not(.checkout-button) {
	background: none;
	border: none;
	color: var(--color-ink);
	text-decoration: underline;
	padding: 0;
}
