/**
 * Component: customer account
 */

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 14rem minmax(0, 1fr);
	gap: var(--tcs-space-2xl);
	align-items: start;
	padding-block: var(--tcs-space-lg);
}

/* The login form is a single centred column, not a dashboard. */
.woocommerce-account:not(.logged-in) .woocommerce {
	grid-template-columns: minmax(0, 1fr);
	max-width: 26rem;
	margin-inline: auto;
}

/* ---------------------------------------------------------------------- */
/* Navigation                                                              */
/* ---------------------------------------------------------------------- */

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	border-block-start: var(--tcs-border);
}

.woocommerce-MyAccount-navigation li {
	border-block-end: var(--tcs-border-faint);
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: var(--tcs-space-sm) var(--tcs-space-2xs);
	min-height: 44px;
	font-size: var(--tcs-text-sm);
	font-weight: var(--tcs-weight-medium);
	color: var(--tcs-ink-muted);
	text-decoration: none;
}

.woocommerce-MyAccount-navigation a:hover {
	color: var(--tcs-accent);
}

.woocommerce-MyAccount-navigation .is-active a {
	color: var(--tcs-ink);
	box-shadow: inset 2px 0 0 var(--tcs-accent);
	padding-inline-start: var(--tcs-space-sm);
}

/* ---------------------------------------------------------------------- */
/* Content                                                                 */
/* ---------------------------------------------------------------------- */

.woocommerce-MyAccount-content {
	min-width: 0;
}

.woocommerce-MyAccount-content > p,
.woocommerce-MyAccount-content address {
	color: var(--tcs-ink-muted);
	font-style: normal;
	line-height: var(--tcs-leading-relaxed);
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-size: var(--tcs-text-lg);
	margin-block: var(--tcs-space-lg) var(--tcs-space-sm);
}

/* ---------------------------------------------------------------------- */
/* Orders table                                                            */
/* ---------------------------------------------------------------------- */

.woocommerce-orders-table,
.woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--tcs-text-sm);
}

.woocommerce-orders-table th,
.woocommerce-table th {
	font-family: var(--tcs-font-sans);
	font-size: var(--tcs-text-3xs);
	font-weight: var(--tcs-weight-semibold);
	letter-spacing: var(--tcs-tracking-label);
	text-transform: uppercase;
	color: var(--tcs-ink-faint);
	text-align: start;
	padding: var(--tcs-space-xs) var(--tcs-space-sm) var(--tcs-space-xs) 0;
	border-block-end: 1px solid var(--tcs-rule-strong);
}

.woocommerce-orders-table td,
.woocommerce-table td {
	padding: var(--tcs-space-sm) var(--tcs-space-sm) var(--tcs-space-sm) 0;
	border-block-end: var(--tcs-border-faint);
	color: var(--tcs-ink-muted);
	font-variant-numeric: tabular-nums;
}

.woocommerce-orders-table__cell-order-number a {
	font-weight: var(--tcs-weight-medium);
}

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

.woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: var(--tcs-space-lg);
	margin-block-start: var(--tcs-space-md);
}

.woocommerce-Address {
	background: var(--tcs-surface);
	border: var(--tcs-border);
	border-radius: var(--tcs-radius);
	padding: var(--tcs-space-md);
}

.woocommerce-Address-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--tcs-space-sm);
	margin-block-end: var(--tcs-space-sm);
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
	font-family: var(--tcs-font-sans);
	font-size: var(--tcs-text-2xs);
	font-weight: var(--tcs-weight-semibold);
	letter-spacing: var(--tcs-tracking-label);
	text-transform: uppercase;
	color: var(--tcs-ink-faint);
	margin: 0;
}

/* ---------------------------------------------------------------------- */
/* Forms                                                                   */
/* ---------------------------------------------------------------------- */

.woocommerce-form {
	display: flex;
	flex-direction: column;
	gap: var(--tcs-space-sm);
}

.woocommerce-form__label-for-checkbox {
	flex-direction: row;
	align-items: center;
}

.woocommerce-LostPassword {
	font-size: var(--tcs-text-xs);
	margin: 0;
}

/* ---------------------------------------------------------------------- */
/* Notices - shared across cart, checkout and account                      */
/* ---------------------------------------------------------------------- */

.woocommerce-message,
.woocommerce-error,
.woocommerce-info,
.woocommerce-notice {
	list-style: none;
	margin: 0 0 var(--tcs-space-md);
	padding: var(--tcs-space-sm) var(--tcs-space-md);
	border-radius: var(--tcs-radius);
	font-size: var(--tcs-text-sm);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--tcs-space-sm);
}

.woocommerce-message {
	background: var(--tcs-state-instock-bg);
	color: var(--tcs-state-instock);
}

.woocommerce-error {
	background: var(--tcs-error-bg);
	color: var(--tcs-error);
	flex-direction: column;
	align-items: flex-start;
}

.woocommerce-info {
	background: var(--tcs-state-preorder-bg);
	color: var(--tcs-state-preorder);
}

.woocommerce-message .button,
.woocommerce-info .button {
	margin-inline-start: auto;
}

/* ---------------------------------------------------------------------- */
/* Mobile                                                                  */
/* ---------------------------------------------------------------------- */

@media (max-width: 900px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--tcs-space-lg);
	}

	/* Account nav becomes a scrollable row rather than a tall stack. */
	.woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		border-block: var(--tcs-border);
		gap: var(--tcs-space-md);
	}

	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }

	.woocommerce-MyAccount-navigation li {
		border-block-end: 0;
		white-space: nowrap;
	}

	.woocommerce-MyAccount-navigation .is-active a {
		box-shadow: inset 0 -2px 0 var(--tcs-accent);
		padding-inline-start: var(--tcs-space-2xs);
	}

	/* Order tables scroll inside their own container, never the page. */
	.woocommerce-orders-table,
	.woocommerce-table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}
}

/* ---------------------------------------------------------------------------
   Orders list
   Cards rather than a table: an order carries a status, an arrival estimate and
   an action, which a wide table row reads poorly on a phone.
   --------------------------------------------------------------------------- */

.tcs-orders {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--tcs-space-sm);
}

.tcs-order {
	border: var(--tcs-border);
	border-radius: var(--tcs-radius);
	background: var(--tcs-surface-raised);
	padding: var(--tcs-space-md);
	display: grid;
	gap: var(--tcs-space-sm);
}

.tcs-order__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tcs-space-sm);
	flex-wrap: wrap;
}

.tcs-order__number {
	margin: 0;
	font-weight: var(--tcs-weight-semibold);
	font-size: 1.05rem;
}

.tcs-order__number a {
	text-decoration: none;
	color: inherit;
}

.tcs-order__number a:hover {
	color: var(--tcs-accent);
}

.tcs-order__status {
	display: inline-block;
	padding: 0.2em 0.7em;
	border-radius: var(--tcs-radius-pill);
	font-size: 0.75rem;
	font-weight: var(--tcs-weight-semibold);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
	border: 1px solid currentColor;
}

.tcs-order__status--wait { color: #8a6a1f; background: #fbf3dd; }
.tcs-order__status--go   { color: #1d5a8a; background: #eef5fb; }
.tcs-order__status--done { color: #1d6b3f; background: #e6f4ea; }
.tcs-order__status--off  { color: var(--tcs-ink-muted); background: transparent; }
.tcs-order__status--bad  { color: #a4251b; background: #fdecea; }

/* Facts sit on one row on a desktop and wrap to two columns on a phone. */
.tcs-order__facts {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--tcs-space-md);
}

.tcs-order__facts > div {
	display: grid;
	gap: 0.1rem;
}

.tcs-order__facts dt {
	margin: 0;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--tcs-ink-muted);
}

.tcs-order__facts dd {
	margin: 0;
	font-weight: var(--tcs-weight-medium);
}

/* The arrival estimate is the reason most customers open this page. */
.tcs-order__eta {
	margin: 0;
	padding: var(--tcs-space-xs) var(--tcs-space-sm);
	border-inline-start: 3px solid var(--tcs-accent);
	background: var(--tcs-accent-tint);
	border-radius: var(--tcs-radius-sm);
	font-size: 0.92rem;
	line-height: 1.45;
}

.tcs-order__actions {
	display: flex;
	gap: var(--tcs-space-xs);
}

.tcs-orders__pagination {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--tcs-space-sm);
	margin-block-start: var(--tcs-space-md);
	flex-wrap: wrap;
}

.tcs-orders__page {
	color: var(--tcs-ink-muted);
	font-size: 0.9rem;
}

.tcs-orders__empty {
	border: var(--tcs-border);
	border-radius: var(--tcs-radius);
	padding: var(--tcs-space-lg);
	text-align: center;
	max-width: 46ch;
}

.tcs-orders__empty h2 {
	margin-block: 0 var(--tcs-space-xs);
}

.tcs-orders__empty p {
	color: var(--tcs-ink-muted);
	margin-block: 0 var(--tcs-space-sm);
}

.tcs-orders__empty p:last-child {
	margin-block-end: 0;
}

@media (max-width: 480px) {
	.tcs-order__facts {
		display: grid;
		grid-template-columns: repeat(3, auto);
		gap: var(--tcs-space-sm);
	}

	.tcs-order__actions .tcs-button {
		width: 100%;
		justify-content: center;
	}
}
