/**
 * futbol-mesa CSS — partial 10/11: 10-account. My-account views.
 * Logged out: two-column /mi-cuenta/ login (login card left, aside right) built on
 * the stock WooCommerce form via CSS grid on .entry-content > .woocommerce — no
 * form-login.php copy (TSK-059). Aside markup: tpl/account-intro.php.
 * Logged in: dashboard panel (nav card + greeting header + recent orders, shortcut
 * cards, WhatsApp help) via CSS grid on the same wrapper (TSK-060). Markup:
 * tpl/account-greeting.php + tpl/account-dashboard.php; the only template copy is
 * woocommerce/myaccount/dashboard.php (strips the default intro paragraphs).
 *
 * Load order is load-bearing (LRN-020/TSK-034): enqueued in the chain in
 * inc/assets.php after 09-content-pages, before 11-404 and storefront-woocommerce.
 * Logged-out rules are scoped body.fm.woocommerce-account:not(.logged-in); logged-in
 * rules body.fm.woocommerce-account.logged-in. Both carry the body.fm anchor to
 * clear the Storefront/WooCommerce component rules. Do NOT reorder partials.
 * @package futbol-mesa
 */

/* ---- Grid: form + hook output are siblings inside .woocommerce (TSK-059). ---- */
body.fm.woocommerce-account:not( .logged-in ) .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: minmax( 0, 460px ) minmax( 0, 1fr );
	column-gap: clamp( 20px, 3vw, 40px );
	row-gap: 0;
	align-items: start;
}

body.fm.woocommerce-account:not( .logged-in ) .entry-content > .woocommerce > .woocommerce-notices-wrapper {
	grid-row: 1;
	grid-column: 1 / -1;
}

body.fm.woocommerce-account:not( .logged-in ) .fm-account__subtitle {
	grid-row: 2;
	grid-column: 1 / -1;
	margin: 0 0 clamp( 18px, 3vw, 28px );
	font-size: 0.95rem;
	color: var( --color-muted );
}

/* ---- Login card: one wrapper (.fm-account__login) around the Woo <h2> + <form>.
   The wrapper is opened/closed across the before/after login hooks (see
   inc/account.php). Wrapping both in a SINGLE grid item stops the taller col2
   aside from inflating a shared grid row and wedging dead space between the
   header and the form on desktop (was a 44px seam); h2 + form now stack in
   normal flow inside the card. ---- */
body.fm.woocommerce-account:not( .logged-in ) .fm-account__login {
	grid-column: 1;
	margin: 0;
	padding: clamp( 22px, 3vw, 30px );
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-card );
	box-shadow: var( --shadow-card );
}

body.fm.woocommerce-account:not( .logged-in ) .fm-account__login > h2 {
	margin: 0 0 18px;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --color-ink );
}

body.fm.woocommerce-account:not( .logged-in ) .fm-account__login .woocommerce-form-login {
	margin: 0;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .form-row {
	position: relative;
	margin: 0 0 16px;
	padding: 0;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login label {
	display: block;
	margin-bottom: 6px;
	font-family: var( --font-heading );
	font-weight: 700;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	color: var( --color-body );
}

/* Both fields are required; drop the visual asterisk (SR "Obligatorio" stays). */
body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login label .required {
	display: none;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .input-text {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-button );
	background: #fff;
	font-size: 0.95rem;
	color: var( --color-ink );
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login #password {
	padding-right: 44px;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .input-text:focus {
	outline: none;
	border-color: var( --color-terracotta );
}

/* Native WooCommerce show/hide-password toggle — restyled, not removed. */
body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .show-password-input {
	position: absolute;
	right: 14px;
	bottom: 13px;
	color: var( --color-muted );
	cursor: pointer;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .show-password-input:hover,
body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .show-password-input.display-password {
	color: var( --color-terracotta );
}

/* Remember-me + submit share one row. */
body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0;
	font-size: 0.9rem;
	color: var( --color-body );
	cursor: pointer;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login__rememberme input {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var( --color-terracotta );
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .form-row:has( .woocommerce-form-login__submit ) {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 18px;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login__submit {
	margin: 0;
	padding: 13px 32px;
	background: var( --color-terracotta );
	border: 0;
	border-radius: var( --radius-button );
	color: #fff;
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: 0.92rem;
	letter-spacing: 0.02em;
	transition: background var( --transition-base );
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login__submit:hover,
body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login__submit:focus {
	background: var( --color-terracotta-hover );
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .lost_password {
	margin: 16px 0 0;
	font-size: 0.85rem;
}

body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .lost_password a {
	color: var( --color-terracotta );
	text-decoration: underline;
}

/* ---- Aside: dark "first time" panel + benefits card. ---- */
body.fm.woocommerce-account:not( .logged-in ) .fm-account__aside {
	grid-column: 2;
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin: 0;
}

body.fm .fm-account__panel {
	padding: clamp( 22px, 3vw, 30px );
	background: var( --color-night );
	border-radius: var( --radius-panel );
	color: var( --color-bar-text );
}

body.fm .fm-account__eyebrow {
	margin: 0 0 10px;
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: var( --eyebrow-card-size );
	letter-spacing: var( --eyebrow-card-tracking );
	text-transform: uppercase;
	color: var( --color-footer-muted );
}

body.fm .fm-account__panel-title {
	margin: 0 0 12px;
	font-size: clamp( 1.3rem, 2vw, 1.6rem );
	line-height: 1.25;
	color: #fff;
}

body.fm .fm-account__panel-text {
	margin: 0 0 18px;
	font-size: 0.92rem;
	line-height: 1.6;
	color: var( --color-footer-text );
}

/* Scope carries the account body classes so the light text color clears the
   content-area link color (var(--color-terracotta)) that otherwise renders the
   CTA label terracotta-on-terracotta and invisible; matches the submit button. */
body.fm.woocommerce-account:not( .logged-in ) .fm-account__cta {
	display: inline-block;
	padding: 13px 28px;
	background: var( --color-terracotta );
	border-radius: var( --radius-pill );
	color: #fff;
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: 0.92rem;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background var( --transition-base );
}

body.fm.woocommerce-account:not( .logged-in ) .fm-account__cta:hover,
body.fm.woocommerce-account:not( .logged-in ) .fm-account__cta:focus {
	background: var( --color-terracotta-hover );
	color: #fff;
}

body.fm .fm-account__benefits {
	padding: clamp( 20px, 3vw, 26px );
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-card );
}

body.fm .fm-account__benefits-title {
	margin: 0 0 14px;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --color-ink );
}

body.fm .fm-account__benefits-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.fm .fm-account__benefit {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var( --color-body );
}

body.fm .fm-account__check {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: var( --radius-sm );
	background: var( --tint-green );
	color: var( --color-pitch-green );
}

body.fm .fm-account__check svg {
	display: block;
	width: 14px;
	height: 14px;
}

/* ---- Single column at <=900px: unstack columns, keep the login card unified. ---- */
@media ( max-width: 900px ) {
	body.fm.woocommerce-account:not( .logged-in ) .entry-content > .woocommerce {
		grid-template-columns: 1fr;
	}

	body.fm.woocommerce-account:not( .logged-in ) .fm-account__login,
	body.fm.woocommerce-account:not( .logged-in ) .fm-account__aside {
		grid-column: 1;
	}

	body.fm.woocommerce-account:not( .logged-in ) .fm-account__login {
		margin-bottom: 24px;
	}
}

@media ( max-width: 560px ) {
	body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login .form-row:has( .woocommerce-form-login__submit ) {
		flex-direction: column;
		align-items: stretch;
	}

	body.fm.woocommerce-account:not( .logged-in ) .woocommerce-form-login__submit {
		text-align: center;
	}
}

/* ===================================================================== *
 * Logged-in dashboard panel (TSK-060) — design/dc/Mi-cuenta-panel.dc.html
 * Grid: greeting (row 1, full width) · nav card (col 1) · content (col 2).
 * The greeting, .woocommerce-MyAccount-navigation and
 * .woocommerce-MyAccount-content are the three direct children of .woocommerce.
 * ===================================================================== */
body.fm.woocommerce-account.logged-in .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: 260px minmax( 0, 1fr );
	column-gap: clamp( 20px, 3vw, 40px );
	row-gap: clamp( 18px, 2.5vw, 26px );
	align-items: start;
}

body.fm.woocommerce-account.logged-in .entry-content > .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

/* Storefront floats the nav/content and sizes them 35%/65%; the grid context
   ignores the floats but the % widths would still shrink the tracks — reset both
   (body.fm anchor + full account body classes beats Storefront's L3 rules). */
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-content {
	float: none;
	width: auto;
	margin: 0;
}

/* ---- Greeting header ---- */
body.fm.woocommerce-account.logged-in .fm-account__greeting {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}

body.fm .fm-account__greeting-title {
	margin: 0;
	font-family: var( --font-heading );
	font-weight: 900;
	font-size: clamp( 1.6rem, 3vw, 2.2rem );
	letter-spacing: -0.02em;
	color: var( --color-ink );
}

body.fm .fm-account__greeting-sub {
	margin: 8px 0 0;
	font-size: 0.95rem;
	color: var( --color-muted );
}

body.fm.woocommerce-account.logged-in .fm-account__logout {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-pill );
	font-family: var( --font-heading );
	font-weight: 700;
	font-size: 0.85rem;
	color: var( --color-muted );
	transition: color var( --transition-base ), border-color var( --transition-base );
}

body.fm.woocommerce-account.logged-in .fm-account__logout:hover,
body.fm.woocommerce-account.logged-in .fm-account__logout:focus {
	color: var( --color-terracotta );
	border-color: var( --color-terracotta );
}

/* ---- Nav card ---- */
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation {
	grid-column: 1;
	padding: 14px;
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-card );
}

body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li {
	margin: 0;
	border: 0;
}

body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a {
	position: relative;
	display: flex;
	align-items: center;
	padding: 11px 14px 11px 25px;
	border-radius: var( --radius-button );
	font-family: var( --font-heading );
	font-weight: 700;
	font-size: 0.9rem;
	color: var( --color-body );
	transition: color var( --transition-base ), background var( --transition-base );
}

body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:hover,
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:focus {
	color: var( --color-terracotta );
	background: var( --color-cream );
}

/* 4px terracotta side marker on the active endpoint. */
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a {
	color: var( --color-terracotta );
	background: var( --tint-terracotta-soft );
}

body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a::before {
	content: "";
	position: absolute;
	left: 11px;
	top: 50%;
	transform: translateY( -50% );
	width: 4px;
	height: 16px;
	border-radius: var( --radius-pill );
	background: var( --color-terracotta );
}

/* ---- Dashboard column ---- */
body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-content {
	grid-column: 2;
}

body.fm .fm-account__dashboard {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

body.fm .fm-account__section-title {
	margin: 0;
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: 0.82rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --color-ink );
}

body.fm .fm-account__link {
	font-size: 0.85rem;
	color: var( --color-terracotta );
	text-decoration: underline;
}

/* Recent orders card. */
body.fm .fm-account__orders {
	padding: clamp( 20px, 3vw, 26px );
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-card );
	box-shadow: var( --shadow-card );
}

body.fm .fm-account__orders-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
}

body.fm .fm-account__table-wrap {
	overflow-x: auto;
}

body.fm .fm-account__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}

body.fm .fm-account__table th {
	padding: 0 12px 10px;
	border-bottom: 1px solid var( --color-hairline );
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var( --color-muted );
	text-align: left;
}

body.fm .fm-account__table td {
	padding: 14px 12px;
	border-bottom: 1px solid var( --color-hairline-faint );
	vertical-align: middle;
}

body.fm .fm-account__table tr:last-child td {
	border-bottom: none;
}

body.fm .fm-account__cell-id {
	font-family: var( --font-heading );
	font-weight: 800;
}

body.fm .fm-account__cell-id a:hover {
	color: var( --color-terracotta );
}

body.fm .fm-account__cell-date {
	color: var( --color-muted );
}

body.fm .fm-account__cell-total {
	font-family: var( --font-heading );
	font-weight: 700;
}

body.fm .fm-account__col-action {
	text-align: right;
}

body.fm .fm-account__pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 12px;
	border-radius: var( --radius-pill );
	font-family: var( --font-heading );
	font-weight: 700;
	font-size: 0.78rem;
	white-space: nowrap;
}

body.fm .fm-account__pill-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

body.fm .fm-account__ghost {
	display: inline-block;
	padding: 7px 16px;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-pill );
	font-family: var( --font-heading );
	font-weight: 700;
	font-size: 0.8rem;
	color: var( --color-muted );
	transition: color var( --transition-base ), border-color var( --transition-base );
}

body.fm .fm-account__ghost:hover,
body.fm .fm-account__ghost:focus {
	color: var( --color-terracotta );
	border-color: var( --color-terracotta );
}

body.fm .fm-account__empty {
	margin: 0;
	font-size: 0.9rem;
	color: var( --color-body );
}

/* Shortcut cards. */
body.fm .fm-account__shortcuts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

body.fm .fm-account__card {
	padding: clamp( 20px, 3vw, 26px );
	background: #fff;
	border: 1px solid var( --color-hairline );
	border-radius: var( --radius-card );
}

body.fm .fm-account__card .fm-account__section-title {
	margin-bottom: 12px;
}

body.fm .fm-account__card-text {
	margin: 0 0 16px;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var( --color-body );
}

/* Help strip — dark band, accent-green WhatsApp button (WhatsApp-only role). */
body.fm .fm-account__help {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 20px clamp( 20px, 3vw, 26px );
	background: var( --color-night );
	border-radius: var( --radius-panel );
}

body.fm .fm-account__help-text {
	margin: 0;
	font-size: 0.92rem;
	color: var( --color-footer-text );
}

body.fm .fm-account__help-text strong {
	font-family: var( --font-heading );
	color: #fff;
}

body.fm .fm-account__wa {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 11px 22px;
	background: var( --color-accent-green );
	border-radius: var( --radius-pill );
	font-family: var( --font-heading );
	font-weight: 800;
	font-size: 0.9rem;
	color: var( --color-night );
	transition: background var( --transition-base );
}

body.fm .fm-account__wa:hover,
body.fm .fm-account__wa:focus {
	background: var( --color-accent-green-hover );
	color: var( --color-night );
}

/* ---- Single column at <=900px: unstack, nav becomes a horizontal wrap. ---- */
@media ( max-width: 900px ) {
	body.fm.woocommerce-account.logged-in .entry-content > .woocommerce {
		grid-template-columns: 1fr;
	}

	body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
	body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-content {
		grid-column: 1;
	}

	body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 8px;
	}

	body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a {
		padding: 9px 14px;
	}

	body.fm.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a {
		padding-left: 25px;
	}

	body.fm .fm-account__col-optional {
		display: none;
	}
}

@media ( max-width: 560px ) {
	body.fm .fm-account__shortcuts {
		grid-template-columns: 1fr;
	}
}
