.plt-acc,
.woocommerce-MyAccount-content,
.woocommerce-MyAccount-navigation,
.plt-acc-page {
	--plt-acc-bg: var(--bgcolor-white, #fff);
	--plt-acc-soft: var(--bgcolor-gray-100, #f6f7f9);
	--plt-acc-brd: #e6e6e6;
	/* Outer boxes are outlined a little heavier than inner dividers. */
	--plt-acc-brd-w: 2px;
	--plt-acc-text: var(--pt-text-color, #4a5060);
	--plt-acc-title: var(--pt-title-color, #1f2430);
	--plt-acc-muted: var(--color-gray-500, #8b93a3);
	--plt-acc-primary: var(--pt-primary-color, #d4262c);
	/* Generic rounding for controls that are not boxes (buttons, chips, pager). */
	--plt-acc-radius: var(--pt-brd-radius, 10px);
	/*
	 * .woocommerce-MyAccount-content is itself a painted panel, so every card
	 * rendered inside it counts as an inner box. Only what sits outside that
	 * panel — the nav tiles and the modal — is an outer one.
	 */
	--plt-acc-radius-outer: var(--pt-outer-brd-radius, var(--pt-brd-radius, 10px));
	--plt-acc-radius-inner: var(--pt-inner-brd-radius, var(--pt-brd-radius, 10px));
	--plt-acc-gap: 16px;

	--plt-acc-ok: #1c9c5b;
	--plt-acc-warn: #c08400;
	--plt-acc-bad: #d63a3a;
	--plt-acc-info: #2b76c9;
	--plt-acc-ship: #6f56e0;
	--plt-acc-vip: #b8860b;
}

.plt-acc-page > * + * {
	margin-top: var(--plt-acc-gap);
}

.woocommerce-MyAccount-content .plt-acc-hero h3::before,
.woocommerce-MyAccount-content .plt-acc-card h3::before,
.woocommerce-MyAccount-content .plt-acc-page h3::before,
.woocommerce-MyAccount-content .plt-acc-latest h3::before,
.woocommerce-MyAccount-content .plt-acc-modal h3::before {
	content: none;
}

.plt-acc-muted {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
}

.pt-my-acc-dashboard     { --pt-my-acc-nav-icon: "\e272"; }
.pt-my-acc-orders        { --pt-my-acc-nav-icon: "\e515"; }
.pt-my-acc-edit-account  { --pt-my-acc-nav-icon: "\e623"; }
.pt-my-acc-wishlist      { --pt-my-acc-nav-icon: "\e358"; }
.pt-my-acc-customer-logout { --pt-my-acc-nav-icon: "\e428"; }
.pt-my-acc-downloads     { --pt-my-acc-nav-icon: "\e292"; }
.pt-my-acc-addresses     { --pt-my-acc-nav-icon: "\e412"; }
.pt-my-acc-wallet        { --pt-my-acc-nav-icon: "\e641"; }
.pt-my-acc-coupons       { --pt-my-acc-nav-icon: "\e598"; }
.pt-my-acc-reviews       { --pt-my-acc-nav-icon: "\e210"; }
.pt-my-acc-notifications { --pt-my-acc-nav-icon: "\e157"; }
.pt-my-acc-security      { --pt-my-acc-nav-icon: "\e549"; }

.woocommerce-MyAccount-navigation ul > li > a::before {
	content: var(--pt-my-acc-nav-icon, "\e387");
	flex: 0 0 auto;
	width: 1.35em;
	font-family: "Picon";
	font-weight: 400;
	font-size: 18px;
	line-height: 1;
	text-align: center;
	opacity: .85;
}

.woocommerce-MyAccount-navigation ul > li > a:has(.pt-nav-icon)::before {
	content: none;
}

.woocommerce-MyAccount-navigation ul > li > a {
	display: flex;
	align-items: center;
	gap: 10px;
}

/*
 * The sheet trigger only exists on phones; the sidebar shows the menu itself.
 * Scoped to the title so it outranks the theme's button styling, and matched by
 * the rule that brings it back on small screens.
 */
.woocommerce-MyAccount-title .plt-acc-nav-toggle,
.plt-acc-nav-backdrop {
	display: none;
}

@media (max-width: 767px) {
	/*
	 * Order actions come in threes at uneven widths, which reads as ragged on a
	 * narrow screen. An even grid keeps them tidy and gives each a full-size
	 * tap target. The orders table is not in here: its actions are plain links
	 * on one row, and a grid would pull the dividers apart.
	 */
	.woocommerce-MyAccount-content .plt-acc-order__actions {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.woocommerce-MyAccount-content .plt-acc-order__actions > a,
	.woocommerce-MyAccount-content .plt-acc-order__actions > button {
		width: 100%;
		min-height: 38px;
		margin: 0;
	}

	/* An odd one out spans the row rather than leaving a gap. */
	.woocommerce-MyAccount-content .plt-acc-order__actions > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}

	/* Inline links need room for a fingertip. */
	.woocommerce-MyAccount-content .plt-acc-link,
	.woocommerce-MyAccount-content .plt-acc-order__num {
		min-height: 34px;
		display: inline-flex;
		align-items: center;
	}

	/*
	 * The menu used to be a horizontally scrolling strip, which hides most of
	 * itself: there is nothing telling the reader that more links exist off the
	 * edge. On a phone it becomes a sheet instead, opened from a button beside
	 * the title, so every destination is reachable in one look.
	 */
	.woocommerce-MyAccount-title {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
	}

	.woocommerce-MyAccount-title .plt-acc-nav-toggle {
		display: inline-flex;
		flex-direction: row;
		align-items: center;
		gap: 6px;
		padding: 7px 14px;
		border: var(--plt-acc-brd-w) solid var(--plt-acc-brd);
		border-radius: var(--btn-brd-radius, 10px);
		background: var(--plt-acc-bg);
		color: var(--plt-acc-title);
		font-size: var(--pt-fs-sm);
		font-weight: 600;
		line-height: 1;
		cursor: pointer;
	}

	/* Icon sits on the trailing edge — the left, in this direction. */
	.plt-acc-nav-toggle__icon::before {
		content: "\e450";
		font-family: "Picon";
		font-weight: 400;
		font-size: 1.25em;
		line-height: 1;
		color: var(--plt-acc-primary);
	}

	.plt-acc-nav-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 998;
		background: rgba(0, 0, 0, .45);
		opacity: 0;
		visibility: hidden;
		transition: opacity .25s ease, visibility .25s ease;
	}

	.plt-acc-nav-backdrop.is-open {
		opacity: 1;
		visibility: visible;
	}

	body.plt-acc-nav-lock {
		overflow: hidden;
	}

	.woocommerce-MyAccount-navigation {
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: 999;
		max-height: 82vh;
		margin: 0;
		padding: 8px 25px calc(16px + env(safe-area-inset-bottom, 0px));
		border-radius: var(--plt-acc-radius-outer) var(--plt-acc-radius-outer) 0 0;
		background: var(--plt-acc-bg);
		box-shadow: 0 -10px 30px rgba(0, 0, 0, .18);
		overflow-y: auto;
		/* Parked below the fold until opened, so it slides up rather than appears. */
		transform: translateY(100%);
		visibility: hidden;
		transition: transform .3s cubic-bezier(.22, .61, .36, 1), visibility .3s;
	}

	.woocommerce-MyAccount-navigation.is-open {
		transform: translateY(0);
		visibility: visible;
	}

	/* A grab handle, so the sheet reads as something that came up from below. */
	.woocommerce-MyAccount-navigation::before {
		content: "";
		display: block;
		width: 42px;
		height: 4px;
		margin: 4px auto 12px;
		border-radius: 999px;
		background: var(--plt-acc-brd);
	}

	.woocommerce-MyAccount-navigation ul {
		display: block;
		margin: 0;
		padding: 0;
		list-style: none;
		overflow: visible;
	}

	/*
	 * The theme dashes a border under every nav item; the sheet clears that and
	 * draws its own rule between rows. Both carry !important because the reset
	 * it is undoing does too.
	 */
	.woocommerce-MyAccount-navigation ul > li {
		border: 0 !important;
	}

	.woocommerce-MyAccount-navigation ul > li + li {
		border-top: 1px dashed #f0f0f0 !important;
	}

	/* Doubled class so the sheet's row height wins over the theme's nav rules. */
	.woocommerce-MyAccount-navigation.woocommerce-MyAccount-navigation ul > li > a {
		display: flex;
		align-items: center;
		gap: 12px;
		min-height: 48px;
		padding: 10px 12px;
		border: 0;
		border-radius: var(--plt-acc-radius-inner);
		font-size: var(--pt-fs-md);
		text-align: start;
		white-space: normal;
	}

	.woocommerce-MyAccount-navigation ul > li > a::before {
		width: 1.4em;
		font-size: 20px;
	}

	.woocommerce-MyAccount-navigation .pt-nav-my-acc > li.is-active > a,
	.woocommerce-MyAccount-navigation .pt-nav-my-acc > li.pt-active > a {
		background: var(--plt-acc-soft);
		color: var(--plt-acc-primary);
	}
}

.plt-acc-card {
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	overflow: hidden;
}

.plt-acc-card + .plt-acc-card {
	margin-top: var(--plt-acc-gap);
}

.plt-acc-card__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--brdcolor-gray-300);
	background: var(--plt-acc-soft);
}

/*
 * دو کلاس، چون شیوه‌نامه‌ی پایه h3 داخل پنل را با
 * «.woocommerce-MyAccount-content h3» می‌گیرد و یک کلاسِ تنها به آن می‌بازد.
 */
.woocommerce-MyAccount-content .plt-acc-card__title,
.plt-acc-page .plt-acc-card__title {
	margin: 0;
	font-size: var(--pt-fs-md-lg, 15px);
	line-height: 1.6;
	color: var(--plt-acc-title);
}

.plt-acc-card__actions {
	margin-inline-start: auto;
	display: flex;
	align-items: center;
	gap: 8px;
}

.plt-acc-ico {
	font-size: var(--pt-fs-xl);
	color: var(--plt-acc-primary);
}

.plt-acc-card__body {
	padding: 16px;
}

.plt-acc-card__body > *:last-child {
	margin-bottom: 0;
}

.plt-acc-card__foot {
	padding: 12px 16px;
	border-top: 1px solid var(--plt-acc-brd);
	background: var(--plt-acc-soft);
}

.plt-acc-btn {
	/*
	 * These buttons are mapped in the buttons settings, so they are painted from
	 * the --btn-* variables like every other theme button. The addon's own values
	 * are re-declared locally as the defaults: a preset assigned to one of these
	 * buttons is emitted as "html .plt-acc-btn {...}" and outranks this rule,
	 * while the site-wide --btn-* values on :root do not — which is what keeps
	 * the dashboard looking like itself until a preset is actually assigned.
	 */
	--btn-bgcolor: var(--plt-acc-soft);
	--btn-color: var(--plt-acc-title);
	--btn-brd-color: transparent;

	/*
	 * Size is read from the variables too, and for the same reason carries the
	 * addon's own values as the local default. Until this was here a style
	 * assigned to one of these buttons applied its colours and its radius but
	 * silently dropped its height and padding, because the two were written as
	 * fixed numbers below and --btn-height was not read at all.
	 */
	--btn-padding: 9px 16px;
	--btn-height: auto;
	--btn-icon-size: inherit;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;

	padding: var(--btn-padding);
	min-height: var(--btn-height);
	height: var(--btn-height);

	border: var(--btn-brd-width, 1px) var(--btn-brd-style, solid) var(--btn-brd-color);
	border-radius: var(--btn-brd-radius, 10px);
	background: var(--btn-bgcolor);
	color: var(--btn-color);
	font-size: var(--btn-font-size, var(--pt-fs-sm));
	font-weight: var(--btn-font-weight, 600);
	font-family: var(--btn-font-family, inherit);
	line-height: 1.6;
	text-decoration: none;
	cursor: pointer;
	transition: all .2s ease;
}

/*
 * The glyph is a real element here rather than a ::before, so the icon size a
 * style carries has to be read on it directly; the shared rule that orders it
 * only handles the side it sits on.
 */
.plt-acc-btn > .picon {
	font-size: var(--btn-icon-size);
}

.plt-acc-btn:hover {
	opacity: .88;
	background: var(--btn-bgcolor-hover, var(--btn-bgcolor));
	color: var(--btn-color-hover, var(--btn-color));
	border-color: var(--btn-brd-color-hover, var(--btn-brd-color));
}

.plt-acc-btn:disabled { opacity: .5; cursor: not-allowed; }

.plt-acc-btn--primary {
	--btn-bgcolor: var(--plt-acc-primary);
	--btn-color: #fff;
}

.plt-acc-btn--ghost {
	--btn-bgcolor: transparent;
	--btn-color: var(--plt-acc-title);
	--btn-brd-color: var(--plt-acc-brd);
}

.plt-acc-btn--bad {
	--btn-color: var(--plt-acc-bad);
	--btn-brd-color: currentColor;
}

.plt-acc-btn.is-busy {
	pointer-events: none;
	opacity: .6;
}

.plt-acc-link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--plt-acc-title);
	font-size: var(--pt-fs-sm);
	cursor: pointer;
	text-decoration: none;
}

.plt-acc-link:hover { color: var(--plt-acc-primary); }
.plt-acc-link--bad:hover { color: var(--plt-acc-bad); }

.plt-acc-actions-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0;
}

.plt-acc-hint {
	display: flex;
	align-items: flex-start;
	gap: 6px;
	margin: 10px 0 0;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
	line-height: 1.9;
}

.plt-acc-hint .picon { margin-top: 4px; flex: 0 0 auto; }

.plt-acc-empty {
	padding: 38px 20px;
	border: var(--plt-acc-brd-w) dashed var(--plt-acc-brd);
	border-radius: var(--plt-acc-radius-inner);
	text-align: center;
	color: var(--plt-acc-muted);
}

.plt-acc-empty__ico {
	display: block;
	margin-bottom: 10px;
	font-size: 38px;
	opacity: .5;
}

.plt-acc-empty p { margin: 0 0 14px; }

.plt-acc-hero {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px;
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-soft);
}

.plt-acc-hero__avatar {
	flex: 0 0 auto;
	font-size: 44px;
	color: var(--plt-acc-primary);
}

.plt-acc-hero__main { flex: 1 1 auto; min-width: 0; }

/* Kept at lg on purpose; outranks the blanket h3 size for the account area. */
.plt-acc-hero .plt-acc-hero__main h3 {
	margin: 0 0 4px;
	font-size: var(--pt-fs-lg);
	color: var(--plt-acc-title);
}

.plt-acc-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	margin: 0;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
}

.plt-acc-hero__meta > span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}

.plt-acc-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 10px;
}

.plt-acc-stat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 16px 10px;
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: border-color .2s ease;
}

a.plt-acc-stat:hover { border-color: var(--plt-acc-primary); }

.plt-acc-stat__ico {
	font-size: 22px;
	color: var(--plt-acc-primary);
	opacity: .9;
}

.plt-acc-stat__num {
	font-size: var(--pt-fs-2xl);
	font-weight: 700;
	color: var(--plt-acc-title);
	line-height: 1.5;
}

.plt-acc-stat__num--sm { font-size: var(--pt-fs-md); }
.plt-acc-stat__num--sm .woocommerce-Price-amount { font-size: inherit; }

.plt-acc-stat__label {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-sm);
}

.plt-acc-latest__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 10px;
}

.plt-acc-latest__head h4 {
	margin: 0;
	font-size: var(--pt-fs-md);
	color: var(--plt-acc-title);
}

.plt-acc-timeline {
	display: flex;
	gap: 0;
	margin: 0;
	padding: 6px 0 0;
	list-style: none;
	counter-reset: none;
}

.plt-acc-timeline__step {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 0 4px;
	text-align: center;
}

.plt-acc-timeline__step::before {
	content: "";
	position: absolute;
	top: 17px;
	inset-inline-start: 50%;
	width: 100%;
	height: 2px;
	background: var(--plt-acc-brd);
}

.plt-acc-timeline__step:last-child::before { display: none; }

.plt-acc-timeline__step.is-done::before { background: var(--plt-acc-ok); }

.plt-acc-timeline__dot {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 2px solid var(--plt-acc-brd);
	border-radius: 50%;
	background: var(--plt-acc-bg);
	color: var(--plt-acc-muted);
	font-size: 22px;
}

.is-done .plt-acc-timeline__dot {
	border-color: #219c5f;
	background: #93ba65;
	color: #fff;
}

/*
 * مرحله‌ی جاری عمداً از رنگِ اکسنتِ پنل جدا شده و آبی است: «در حال انجام»
 * حالتی خنثی است، در حالی که رنگ اکسنت جای فراخوانِ به عمل و تأکید است.
 */
.is-current .plt-acc-timeline__dot {
	border-color: #6878cf;
	color: #3F51B5;
	box-shadow: 0 0 0 4px color-mix(in srgb, #2196F3 15%, transparent);
}

.is-failed .plt-acc-timeline__dot {
	border-color: var(--plt-acc-bad);
	background: var(--plt-acc-bad);
	color: #fff;
}

.plt-acc-timeline__label {
	font-size: var(--pt-fs-xs);
	font-weight: 600;
	color: var(--plt-acc-title);
	line-height: 1.7;
}

.is-todo .plt-acc-timeline__label { color: var(--plt-acc-muted); font-weight: 400; }

.plt-acc-timeline__time {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-2xs);
	line-height: 1.7;
}

@media (max-width: 575px) {
	.plt-acc-timeline {
		flex-direction: column;
		gap: 2px;
	}

	.plt-acc-timeline__step {
		flex-direction: row;
		align-items: center;
		gap: 10px;
		padding: 6px 0;
		text-align: start;
	}

	.plt-acc-timeline__step::before {
		top: 40px;
		inset-inline-start: 17px;
		width: 2px;
		height: calc(100% - 34px);
	}

	.plt-acc-timeline__label { flex: 1 1 auto; }
}

.plt-acc-tracking__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/*
 * در موبایل کد و دو دکمه زیر هم می‌افتند و چون عرضشان فرق دارد، لبه‌چین بودن
 * ستون را ناهموار نشان می‌داد. وسط‌چین شدن هم خودشان را مرتب می‌کند هم با
 * عنوانِ کارت هم‌راستا می‌شوند.
 */
@media (max-width: 575px) {
	.plt-acc-tracking__row {
		justify-content: center;
		text-align: center;
	}

	.plt-acc-tracking__row > * {
		/* بدون این، flex-grow کدِ رهگیری همه‌ی عرض را می‌گیرد و وسط‌چینی دیده نمی‌شود. */
		flex: 0 1 auto;
	}
}

/*
 * این خودش دکمه نیست، ولی در همان ردیفِ فلکس کنارِ «کپی» و «رهگیری در سایت
 * پست» می‌نشیند و آن دو از تنظیمات دکمه‌ها ارتفاع و گردی و اندازه‌ی فونت
 * می‌گیرند. وقتی مقدارهای این یکی ثابت بود، هر تغییری در آن دکمه‌ها این را
 * ناهماهنگ می‌کرد — بلندتر یا گردتر از همسایه‌اش.
 *
 * حالا همان متغیرها را می‌خواند تا هم‌قد و هم‌شکل بماند. حاشیه‌ی dashed و
 * زمینه‌ی ملایم عمداً مانده‌اند: این‌ها چیزی را نشان می‌دهند که کپی می‌شود،
 * نه چیزی که کلیک می‌شود، و همین تفاوت باید دیده شود.
 */
.plt-acc-tracking__code {
	/*
	 * همان الگوی .plt-acc-btn: مقدارهای خودِ افزودنی به‌صورت محلی اعلام
	 * می‌شوند تا مقدارهای سراسریِ روی :root به اینجا نشت نکنند. بدون این،
	 * ارتفاعِ سراسریِ دکمه‌ها روی این تکه می‌نشست و از دکمه‌ی «کپی» که کنارش
	 * است بلندتر می‌شد — دقیقاً همان ناهماهنگی‌ای که قرار بود حل شود.
	 */
	--btn-padding: 9px 14px;
	--btn-height: auto;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 220px;
	min-height: var(--btn-height);
	padding: var(--btn-padding);
	border: 1px dashed var(--plt-acc-brd);
	border-radius: var(--btn-brd-radius, var(--plt-acc-radius-inner));
	background: var(--plt-acc-soft);
	font-family: Consolas, Monaco, monospace;
	font-size: var(--btn-font-size, var(--pt-fs-md));
	letter-spacing: 1px;
	text-align: center;
	word-break: break-all;
}

/*
 * این یک <button> است، پس قاعده‌ی سراسریِ دکمه‌های پوسته هم رویش می‌افتد و
 * ویژگیِ هر دو برابر است — یعنی ترتیبِ بارگذاریِ فایل‌ها تعیین می‌کرد کدام
 * برنده شود. نتیجه این بود که زمینه و اندازه‌ی فونتِ سراسریِ دکمه‌ها (که ردیف
 * «همه دکمه‌ها» روی :root می‌نویسد) روی این تکه می‌نشست: خاکستری و ۱۵ پیکسل.
 *
 * راه‌حل بالا بردن ویژگی نیست، همان الگوی .plt-acc-btn است: متغیرها محلی
 * اعلام می‌شوند، پس هر کدام از دو قاعده که برنده شود مقدارِ درست را می‌کشد و
 * نتیجه به ترتیب بارگذاری وابسته نمی‌ماند.
 */
.plt-acc-code-chip {
	/* بدون زمینه: حاشیه‌ی چین‌چین به‌تنهایی کافی است تا معلوم شود این تکه کپی می‌شود. */
	--btn-bgcolor: transparent;
	--btn-bgcolor-hover: transparent;
	--btn-color: var(--plt-acc-title);
	--btn-color-hover: var(--plt-acc-primary);
	--btn-brd-width: 1px;
	--btn-brd-style: dashed;
	--btn-brd-color: var(--plt-acc-brd);
	--btn-brd-color-hover: var(--plt-acc-primary);
	--btn-font-size: var(--pt-fs-sm);
	--btn-font-weight: 400;
	--btn-transform: none;
	--btn-height: auto;
	--btn-padding: 4px 10px;

	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: var(--btn-height);
	padding: var(--btn-padding);
	border: var(--btn-brd-width) var(--btn-brd-style) var(--btn-brd-color);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--btn-bgcolor);
	color: var(--btn-color);
	font-family: Consolas, Monaco, monospace;
	font-size: var(--btn-font-size);
	cursor: pointer;
}

.plt-acc-code-chip:hover {
	--btn-brd-color: var(--plt-acc-primary);
	--btn-color: var(--plt-acc-primary);
}

.plt-acc-code-chip.is-copied {
	--btn-brd-color: var(--plt-acc-ok);
	--btn-color: var(--plt-acc-ok);
	--btn-brd-color-hover: var(--plt-acc-ok);
	--btn-color-hover: var(--plt-acc-ok);
}

.plt-acc-table-wrap { overflow-x: auto; }

.plt-acc-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: var(--pt-fs-sm);
}

.plt-acc-table th,
.plt-acc-table td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--brdcolor-gray-300);
	text-align: start;
	white-space: nowrap;
}

.plt-acc-table thead th {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
	font-weight: 600;
}

.plt-acc-table tbody tr:last-child td { border-bottom: 0; }

.plt-acc-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.plt-acc-list__row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--brdcolor-gray-300);
}

.plt-acc-list__row:last-child { border-bottom: 0; padding-bottom: 0; }
.plt-acc-list__row > .picon { font-size: 20px; color: var(--plt-acc-muted); }

.plt-acc-list__main {
	flex: 1 1 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	min-width: 0;
	font-size: var(--pt-fs-sm);
}

.plt-acc-list__main b { color: var(--plt-acc-title); }

.plt-acc-list__meta {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
	font-family: Consolas, Monaco, monospace;
}

.plt-acc-pager {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin-top: 14px;
}

/*
 * Same contract as .plt-acc-btn: the addon's own look is written as the local
 * default for each variable, and the row mapped in the buttons settings is
 * emitted as "html .plt-acc-pager .page-numbers {...}", which outranks it.
 *
 * Everything here used to be fixed numbers, so a style assigned to the pager did
 * nothing at all — and the radius was declared twice, the plain 8px below the
 * variable silently winning over it.
 */
.plt-acc-pager .page-numbers {
	--btn-bgcolor: transparent;
	--btn-color: inherit;
	--btn-brd-color: var(--plt-acc-brd);
	--btn-brd-width: 1px;
	--btn-brd-radius: 8px;
	--btn-height: 32px;
	--btn-padding: 0 8px;
	--btn-font-size: var(--pt-fs-sm);

	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	min-height: var(--btn-height);
	height: var(--btn-height);
	padding: var(--btn-padding);
	border: var(--btn-brd-width) var(--btn-brd-style, solid) var(--btn-brd-color);
	border-radius: var(--btn-brd-radius);
	background: var(--btn-bgcolor);
	color: var(--btn-color);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight, inherit);
	text-decoration: none;
}

.plt-acc-pager .page-numbers:hover {
	background: var(--btn-bgcolor-hover, var(--btn-bgcolor));
	color: var(--btn-color-hover, var(--btn-color));
	border-color: var(--btn-brd-color-hover, var(--btn-brd-color));
}

.plt-acc-pager .page-numbers.current {
	border-color: var(--plt-acc-primary);
	background: var(--plt-acc-primary);
	color: #fff;
}

.plt-acc-fields {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	margin-bottom: 12px;
}

.plt-acc-fields--2 { grid-template-columns: 1fr 1fr; }

@media (max-width: 575px) {
	.plt-acc-fields--2 { grid-template-columns: 1fr; }
}

.plt-acc-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0;
}

.plt-acc-field--action { justify-content: flex-end; }

.plt-acc-field__label {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
}

.plt-acc-field__label b { color: var(--plt-acc-bad); }

.plt-acc-field input[type="text"],
.plt-acc-field input[type="tel"],
.plt-acc-field select,
.plt-acc-field textarea,
.plt-acc-form input[type="text"],
.plt-acc-form input[type="tel"],
.plt-acc-form select,
.plt-acc-form textarea {
	width: 100%;
	padding: 9px 12px;
	border: var(--pt-form-brd-width, 1px) solid var(--pt-form-brd-color, var(--plt-acc-brd));
	border-radius: var(--pt-form-brd-radius, var(--plt-acc-radius));
	background: var(--pt-form-bg, var(--plt-acc-bg));
	color: var(--plt-acc-text);
	font-size: var(--pt-fs-sm);
	font-family: inherit;
	line-height: 1.8;
}

.plt-acc-field textarea { resize: vertical; min-height: 76px; }

.plt-acc-field input:focus,
.plt-acc-field select:focus,
.plt-acc-field textarea:focus {
	outline: none;
	border-color: var(--pt-form-brd-color-focus, var(--plt-acc-primary));
}

.plt-acc-field select:disabled { opacity: .6; }

.plt-acc-check {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: var(--pt-fs-sm);
	cursor: pointer;
}

.plt-acc-form__msg {
	margin-top: 12px;
	padding: 10px 14px;
	border-radius: var(--plt-acc-radius-inner);
	font-size: var(--pt-fs-sm);
}

.plt-acc-form__msg.is-ok  { background: rgba(28,156,91,.1);  color: var(--plt-acc-ok); }
.plt-acc-form__msg.is-bad { background: rgba(214,58,58,.09); color: var(--plt-acc-bad); }

.plt-acc-fieldset {
	margin: 0 0 22px;
	padding: 16px;
	border: var(--plt-acc-brd-w) solid var(--plt-acc-brd);
	border-radius: var(--plt-acc-radius-inner);
}

/*
 * The password section is a plain fieldset rendered by WooCommerce rather than
 * one of the addon's own, so it is brought in line here instead of being left
 * with the global fieldset outline.
 */
/*
 * WooCommerce's password fieldset writes a plain legend, so its icon is drawn
 * here to match the addon's own sections.
 */
.woocommerce-MyAccount-content fieldset:not(.plt-acc-fieldset) > legend::before {
	content: "\e423";
	margin-inline-end: 6px;
	font-family: "Picon";
	font-weight: 400;
	font-size: 1em;
	line-height: 1;
	vertical-align: middle;
}

.woocommerce-MyAccount-content fieldset:not(.plt-acc-fieldset) {
	margin: 0 0 22px;
	padding: 16px;
	border: var(--plt-acc-brd-w) solid var(--plt-acc-brd);
	border-radius: var(--plt-acc-radius-inner);
}

.plt-acc-fieldset legend {
	display: flex;
	align-items: center;
	gap: 6px;
	width: auto;
	padding: 0 8px;
	border: 0;
	font-size: var(--pt-fs-lg);
	font-weight: 600;
	color: var(--plt-acc-title);
}

.plt-acc-birth {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}

.plt-acc-mobile__current {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	padding: 10px 14px;
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-soft);
	font-size: var(--pt-fs-sm);
}

.plt-acc-page__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: var(--plt-acc-gap);
}

.plt-acc-page__desc {
	flex: 1 1 240px;
	margin: 0;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-sm);
}

.plt-acc-addr-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 12px;
}

.plt-acc-addr {
	display: flex;
	flex-direction: column;
	border: var(--plt-acc-brd-w) solid var(--plt-acc-brd);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	overflow: hidden;
}

.plt-acc-addr.is-default { border-color: #8BC34A; }

/*
 * The order footer ends up with three buttons in three separate paragraphs —
 * two from the addon and one from WooCommerce — which stacked and looked
 * mismatched. Lay the wrappers out inline so the buttons form one row, and
 * give WooCommerce's own button the addon's ghost styling so they match.
 */
.woocommerce-order-details > p.plt-acc-actions-row,
.woocommerce-order-details > p.order-again {
	display: inline-flex;
	align-items: center;
	margin: 0 0 10px;
	margin-inline-end: 10px;
	/* Top, not baseline: the three wrappers hold different content and a
	   baseline match left one button sitting higher than the rest. */
	vertical-align: top;
}

/*
 * این دکمه‌ی ووکامرس است، نه یکی از دکمه‌های خودِ پنل، ولی در تنظیمات دکمه‌ها
 * ردیف خودش را دارد. پس باید مثل بقیه از متغیرهای --btn-* بخواند.
 *
 * قبلاً رنگ و ارتفاع و وزنِ فونتش مستقیم نوشته شده بود و متغیرها را نادیده
 * می‌گرفت؛ نتیجه این بود که مثلاً «حاشیه — هاور» را در تنظیمات هر چه می‌گذاشتی،
 * هاور همچنان رنگِ اکسنت (قرمز) می‌شد. مقدارهای قبلی حالا نقشِ fallback را
 * دارند، پس سایتی که چیزی تنظیم نکرده هیچ تغییری نمی‌بیند.
 */
.woocommerce-order-details > p.order-again .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: var(--btn-height, auto);
	padding: var(--btn-padding, 9px 16px);
	border: var(--btn-brd-width, 1px) solid var(--btn-brd-color, var(--plt-acc-brd));
	border-radius: var(--btn-brd-radius, 10px);
	background: var(--btn-bgcolor, var(--plt-acc-bg));
	color: var(--btn-color, var(--plt-acc-title));
	font-size: var(--btn-font-size, var(--pt-fs-sm));
	font-weight: var(--btn-font-weight, 600);
	line-height: 1.6;
}

.woocommerce-order-details > p.order-again .button:hover {
	border-color: var(--btn-brd-color-hover, var(--plt-acc-primary));
	color: var(--btn-color-hover, var(--plt-acc-primary));
	background: var(--btn-bgcolor-hover, var(--plt-acc-bg));
}

.plt-acc-addr__head {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 14px;
	background: var(--plt-acc-soft);
}

.plt-acc-addr__head h4 {
	margin: 0;
	font-size: var(--pt-fs-md);
	color: var(--plt-acc-title);
}

.plt-acc-addr__head .plt-acc-addr__head > .picon { color: var(--plt-acc-primary); }

.plt-acc-addr__body {
	flex: 1 1 auto;
	padding: 12px 14px;
	font-size: var(--pt-fs-sm);
	line-height: 2;
}

.plt-acc-addr__body p { margin: 0 0 4px; }
.plt-acc-addr__person { display: flex; flex-wrap: wrap; gap: 8px; font-weight: 600; color: var(--plt-acc-title); }
.plt-acc-addr__person .plt-acc-muted { font-weight: 400; }
.plt-acc-addr__text { color: var(--plt-acc-text); }

.plt-acc-addr__foot {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	padding: 10px 14px;
	border-top: 1px solid var(--plt-acc-brd);
}

.plt-acc-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.plt-acc-modal[hidden] { display: none; }

.plt-acc-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 18, 25, .55);
}

.plt-acc-modal__box {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 560px;
	max-height: 92vh;
	border-radius: var(--plt-acc-radius-outer);
	background: var(--plt-acc-bg);
	overflow: hidden;
}

.plt-acc-modal__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--plt-acc-brd);
}

.plt-acc-modal__head h3 { margin: 0; font-size: var(--pt-fs-md); color: var(--plt-acc-title); }

.plt-acc-modal__close {
	margin-inline-start: auto;
	padding: 4px;
	border: 0;
	background: none;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-lg);
	cursor: pointer;
}

.plt-acc-modal__body {
	flex: 1 1 auto;
	padding: 16px;
	overflow-y: auto;
}

.plt-acc-modal__foot {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	padding: 12px 16px;
	border-top: 1px solid var(--plt-acc-brd);
	background: var(--plt-acc-soft);
}

.plt-acc-picker { margin-bottom: 20px; }

.plt-acc-picker__title {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	font-size: var(--pt-fs-md);
	color: var(--plt-acc-title);
}

.plt-acc-picker__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 15px;
}

.plt-acc-picker .plt-acc-picker__item {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
	gap: 4px;
	height: 100%;
	background: #ebebeb;
	min-height: 0;
	padding: 15px;
	border: 2px solid transparent;
	border-radius: var(--plt-acc-radius-inner);
	font: inherit;
	text-align: start;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease;
}

.plt-acc-picker .plt-acc-picker__item.is-default {
	border: 2px solid #ddd;
	background: #fff;
	height: 100%;
}

.plt-acc-picker .plt-acc-picker__item:hover,
.plt-acc-picker .plt-acc-picker__item.is-active {
	border-color: rgb(161 190 237);
	background: #fafcff;
}

.plt-acc-picker__head {
	display: flex;
	align-items: center;
	gap: 6px;
	padding-bottom: 6px;
}

.plt-acc-picker__head > .picon { color: var(--plt-acc-primary); }
.plt-acc-picker__head .plt-acc-picker__name {
	font-size: var(--pt-fs-md);
	font-weight: 600;
	color: var(--plt-acc-title);
}

.plt-acc-picker__text {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-sm);
	line-height: 1.8;
	font-weight: 500;
}

.plt-acc-picker__meta {
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
	line-height: 1.8;
}

.plt-acc-picker__sep { opacity: .5; }

.plt-acc-toggles { margin: 0; padding: 0; list-style: none; }

.plt-acc-toggle { border-bottom: 1px solid var(--brdcolor-gray-300); }
.plt-acc-toggle:last-child { border-bottom: 0; }

.plt-acc-toggle__label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	padding: 13px 0;
	cursor: pointer;
}

.plt-acc-toggle__label input { position: absolute; opacity: 0; pointer-events: none; }

/*
 * Same switch as the shop filters bar, so the two places that offer a toggle
 * look alike. The knob is placed from the inline start and moved by the exact
 * travel, which keeps it inside the track in both writing directions — the old
 * rule mixed an inline-end origin with a fixed translate and drifted in LTR.
 */
.plt-acc-toggle__switch {
	position: relative;
	flex: 0 0 auto;
	width: 38px;
	height: 21px;
	margin-top: 3px;
	border-radius: 999px;
	background: var(--bgcolor-gray-200, #ececec);
	transition: background .2s ease;
}

.plt-acc-toggle__switch::after {
	content: "";
	position: absolute;
	top: 3px;
	inset-inline-start: 3px;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	background: var(--bgcolor-white, #fff);
	transition: transform .2s ease;
}

.plt-acc-toggle__label input:checked + .plt-acc-toggle__switch { background: var(--plt-acc-primary); }
.plt-acc-toggle__label input:checked + .plt-acc-toggle__switch::after { transform: translateX(-17px); }
:where([dir="ltr"]) .plt-acc-toggle__label input:checked + .plt-acc-toggle__switch::after { transform: translateX(17px); }
.plt-acc-toggle__label input:focus-visible + .plt-acc-toggle__switch { box-shadow: 0 0 0 3px rgba(0, 0, 0, .12); }

.plt-acc-toggle__text { display: flex; flex-direction: column; gap: 2px; font-size: var(--pt-fs-sm); }
.plt-acc-toggle__text b { display: flex; align-items: center; gap: 6px; color: var(--plt-acc-title); }

.plt-acc-coupons {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 12px;
}

.plt-acc-coupon {
	display: flex;
	gap: 0;
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	overflow: hidden;
}

.plt-acc-coupon__amount {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	flex: 0 0 96px;
	padding: 14px 8px;
	background: var(--plt-acc-soft);
	border-inline-end: 2px dashed var(--brdcolor-gray-300);
	text-align: center;
}

.plt-acc-coupon__amount b { font-size: var(--pt-fs-lg); color: var(--plt-acc-primary); line-height: 1.4; }
.plt-acc-coupon__amount b .woocommerce-Price-amount { font-size: inherit; }
.plt-acc-coupon__amount span { color: var(--plt-acc-muted); font-size: var(--pt-fs-2xs); }

.plt-acc-coupon__main {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 12px 14px;
	min-width: 0;
}

.plt-acc-coupon__main p { margin: 0; }

.plt-acc-coupon__terms {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-2xs);
}

.plt-acc-coupon__terms > span { display: inline-flex; align-items: center; gap: 4px; }

.plt-acc-prods {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 10px;
	margin-top: 12px;
}

.plt-acc-prod {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 10px;
	border: var(--plt-acc-brd-w) solid var(--plt-acc-brd);
	border-radius: var(--plt-acc-radius-inner);
	color: inherit;
	text-align: center;
	text-decoration: none;
	transition: border-color .2s ease;
}

.plt-acc-prod:hover { border-color: var(--plt-acc-primary); }
.plt-acc-prod img { width: 100%; height: auto; border-radius: 6px; }

.plt-acc-prod__name {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: var(--pt-fs-xs);
	line-height: 1.7;
	color: var(--plt-acc-title);
}

.plt-acc-prod__cta { color: var(--plt-acc-primary); font-size: var(--pt-fs-2xs); font-weight: 600; }

.plt-acc-reviews { margin: 0; padding: 0; list-style: none; }

.plt-acc-review {
	padding: 14px 0;
	border-bottom: 1px solid var(--brdcolor-gray-300);
}

.plt-acc-review:first-child { padding-top: 0; }
.plt-acc-review:last-child { padding-bottom: 0; border-bottom: 0; }

.plt-acc-review__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
	font-size: var(--pt-fs-sm);
}

.plt-acc-review__head a { color: var(--plt-acc-title); font-weight: 600; text-decoration: none; }
.plt-acc-review__head a:hover { color: var(--plt-acc-primary); }
.plt-acc-review__text { margin: 0 0 4px; font-size: var(--pt-fs-sm); line-height: 2; }

.plt-acc-rating { display: inline-flex; gap: 1px; color: #f0a500; font-size: var(--pt-fs-xs); }

.woocommerce-orders-table__cell-tracking { white-space: nowrap; }

.woocommerce-orders-table

.plt-acc-toast {
	position: fixed;
	inset-inline-start: 50%;
	bottom: 24px;
	z-index: 10000;
	max-width: min(420px, calc(100vw - 32px));
	padding: 12px 18px;
	border-radius: var(--plt-acc-radius-inner);
	background: #1f2430;
	color: #fff;
	font-size: var(--pt-fs-sm);
	line-height: 1.8;
	text-align: center;
	transform: translate(50%, 12px);
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
	pointer-events: none;
}

.plt-acc-toast.is-visible { opacity: 1; transform: translate(50%, 0); }
.plt-acc-toast.is-bad { background: #b32d2d; }
.plt-acc-toast.is-ok { background: #17794a; }

.woocommerce-MyAccount-content > p:has(mark.order-number) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0 0 var(--plt-acc-gap);
	padding: 14px 16px;
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-sm);
	line-height: 1.9;
}

.woocommerce-MyAccount-content :is(.woocommerce-order-details, .woocommerce-customer-details) {
	margin: 0 0 var(--plt-acc-gap);
	border: 2px solid var(--brdcolor-gray-300);
	border-radius: var(--plt-acc-radius-inner);
	background: var(--plt-acc-bg);
	overflow: hidden;
}

.woocommerce-MyAccount-content :is(.woocommerce-order-details, .woocommerce-customer-details) > h2 {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 14px 16px;
	border-bottom: 1px solid var(--plt-acc-brd);
	background: var(--plt-acc-soft);
	color: var(--plt-acc-title);
	font-size: var(--pt-fs-md-lg, 15px);
	line-height: 1.6;
}

.woocommerce-MyAccount-content :is(.woocommerce-order-details, .woocommerce-customer-details) > h2::before {
	flex: 0 0 auto;
	font-family: "Picon";
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
	color: var(--plt-acc-primary);
}

.woocommerce-MyAccount-content .woocommerce-order-details > h2::before { content: "\e515"; }
.woocommerce-MyAccount-content .woocommerce-customer-details > h2::before { content: "\e412"; }

.woocommerce-MyAccount-content .woocommerce-table--order-details {
	margin: 0;
	width: 100%;
	border: 0;
	border-collapse: collapse;
	font-size: var(--pt-fs-sm);
}

.woocommerce-MyAccount-content .woocommerce-table--order-details :is(th, td) {
	padding: 14px 16px;
	border: 0;
	vertical-align: top;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details thead th {
	border-bottom: 1px solid var(--plt-acc-brd);
	color: var(--plt-acc-muted);
	font-weight: 600;
	font-size: var(--pt-fs-xs);
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tbody td {
	border-bottom: 1px dashed var(--plt-acc-brd);
}

.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name > a {
	color: var(--plt-acc-title);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name > a:hover {
	color: var(--plt-acc-primary);
}

.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name .wc-item-meta,
.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name dl {
	margin: 6px 0 0;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
	line-height: 1.9;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name .wc-item-meta li {
	margin: 0;
	list-style: none;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details .product-quantity {
	color: var(--plt-acc-muted);
	font-weight: 600;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details :is(.product-total, td:last-child, th:last-child) {
	text-align: end;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot th {
	color: var(--plt-acc-muted);
	font-weight: 500;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot td {
	color: var(--plt-acc-title);
	font-weight: 600;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot tr :is(th, td) {
	padding-block: 9px;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot tr:first-child :is(th, td) {
	padding-top: 16px;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot tr:last-child :is(th, td) {
	border-top: 1px solid var(--plt-acc-brd);
	padding-top: 14px;
	color: var(--plt-acc-title);
	font-size: var(--pt-fs-md);
	font-weight: 700;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot tr:last-child td {
	padding-top: 14px;
}

.woocommerce-MyAccount-content .plt-acc-actions-row {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 8px;
	margin: 0;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot .plt-acc-actions-row + .plt-acc-actions-row {
	margin-top: 8px;
}

.woocommerce-MyAccount-content .woocommerce-customer-details address {
	margin: 0;
	padding: 16px;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--plt-acc-text);
	font-size: var(--pt-fs-sm);
	font-style: normal;
	line-height: 2.1;
}

.woocommerce-MyAccount-content .woocommerce-customer-details address p {
	display: flex;
	align-items: center;
	gap: 7px;
	margin: 8px 0 0;
	color: var(--plt-acc-muted);
	font-size: var(--pt-fs-xs);
}

.woocommerce-MyAccount-content .woocommerce-customer-details address p::before {
	font-family: "Picon";
	font-size: 15px;
	line-height: 1;
	color: var(--plt-acc-primary);
}

.woocommerce-MyAccount-content .woocommerce-customer-details--phone::before { content: "\e486"; }
.woocommerce-MyAccount-content .woocommerce-customer-details--email::before { content: "\e431"; }

.woocommerce-MyAccount-content .woocommerce-customer-details address a {
	color: inherit;
	text-decoration: none;
	direction: ltr;
}

@media (max-width: 575px) {
	.woocommerce-MyAccount-content .woocommerce-table--order-details thead {
		display: none;
	}

	.woocommerce-MyAccount-content .woocommerce-table--order-details :is(tbody tr, tfoot tr) {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 4px 10px;
	}

	.woocommerce-MyAccount-content .woocommerce-table--order-details tbody td {
		padding-block: 10px;
		border: 0;
	}

	.woocommerce-MyAccount-content .woocommerce-table--order-details tbody tr {
		border-bottom: 1px dashed var(--plt-acc-brd);
	}

	/*
	 * woo-mod-order-details pins every cell of this table to width:50% and
	 * max-width:50%, which is right for two real columns and wrong the moment the
	 * rows become flex: the cap held the product name to half the width so it wrapped
	 * early, and forced each footer label and its figure onto separate lines, leaving
	 * the whole leading half of the card empty. Carrying the section class lifts this
	 * above that rule regardless of which file loads last.
	 */
	.woocommerce-MyAccount-content :is(.woocommerce-order-details, .woocommerce-order-downloads) .woocommerce-table--order-details :is(th, td) {
		width: auto;
		max-width: none;
	}

	.woocommerce-MyAccount-content .woocommerce-table--order-details td.product-name {
		flex: 1 1 100%;
	}

	.woocommerce-MyAccount-content .woocommerce-table--order-details tfoot tr :is(th, td) {
		padding-block: 6px;
	}
}

/*
 * These rows are inline-flex, so two of them sit side by side on one line rather
 * than stacking. Vertical padding therefore has to be identical on every row: the
 * second one used to take an extra padding-top and the last an extra
 * padding-bottom, which pushed the reorder button 8px below the invoice button
 * next to it. Horizontal separation already comes from the row's own margin.
 */
.woocommerce-MyAccount-content .woocommerce-order-details > .plt-acc-actions-row {
	justify-content: flex-start;
	/*
	 * Inset on the leading edge only. When both rows carried 16px on both sides the
	 * two facing paddings met in the middle and, with the row's own 10px margin,
	 * opened a 45px gulf between two buttons that belong together. The outer inset
	 * is what lines the group up with the table above, so it stays; the inner one
	 * is only there to be closed.
	 */
	padding-inline: 16px 0;
	padding-bottom: 16px;
	vertical-align: top;
}

/*
 * Anything following the first wrapper starts flush against it — but only while
 * they share a line. Once they stack there is no inner gap to close, and dropping
 * one side's padding would just pull that button off centre.
 */
@media (min-width: 576px) {
	.woocommerce-MyAccount-content .woocommerce-order-details > .plt-acc-actions-row ~ .plt-acc-actions-row,
	.woocommerce-MyAccount-content .woocommerce-order-details > .plt-acc-actions-row ~ p.order-again {
		padding-inline-start: 0;
	}
}

/*
 * On a phone the two wrappers no longer fit side by side, so each takes the full
 * width and centres its button. This has to sit after the rule above rather than
 * inside the earlier media block: a media query adds no specificity, and at equal
 * weight the later rule is the one that wins.
 */
@media (max-width: 575px) {
	.woocommerce-MyAccount-content .woocommerce-order-details > .plt-acc-actions-row,
	.woocommerce-MyAccount-content .woocommerce-order-details > p.order-again {
		display: flex;
		justify-content: center;
		width: 100%;
		margin-inline-end: 0;
		padding-inline: 16px;
	}
}

/*
 * "بروز رسانی‌های سفارش" is the one heading WooCommerce prints without a class of
 * its own — order details, billing and shipping all carry one — so this reaches it
 * and nothing else.
 */
.woocommerce-MyAccount-content h2:not([class]) {
	font-size: var(--pt-fs-md-lg, 15px);
}

.woocommerce-MyAccount-content .woocommerce-order-details > .responsive-table {
	margin-bottom: 16px;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tr :is(td, th):first-child {
	padding-inline-start: 16px;
}

.woocommerce-MyAccount-content .woocommerce-table--order-details tr :is(td, th):last-child {
	padding-inline-end: 16px;
}

@media (max-width: 576px) {
	/* Doubled class: base-rtl carries an !important padding of its own at the
	   same specificity and loads later. */
	.woocommerce-MyAccount-content.woocommerce-MyAccount-content {
		margin-inline: 0px;
		padding: 20px !important;
	}

	/*
	 * Stat tiles turn into rows: the icon takes one side and the figure with
	 * its label reads down the other, which fits far more comfortably than a
	 * stacked, centred card on a narrow screen.
	 */
	/*
	 * Reads as one line: icon, then what it counts, with the figure pushed to
	 * the far edge. The markup order is icon, figure, label, so the two text
	 * parts are swapped with `order` rather than by moving the markup.
	 */
	.plt-acc-stat {
		flex-direction: row;
		align-items: center;
		gap: 10px;
		padding: 14px;
		text-align: start;
	}

	.plt-acc-stat__ico   { order: 1; }
	.plt-acc-stat__label { order: 2; }

	/*
	 * A sum of money is far longer than a count of orders and had to share a
	 * half-width tile with its label, so it wrapped or clipped. Any tile whose
	 * figure is a price takes the whole row instead.
	 */
	.plt-acc-stats > .plt-acc-stat:has(.plt-acc-stat__num--sm) {
		grid-column: 1 / -1;
	}

	/* And the last tile, so it never sits half-width beside an empty half. */
	.plt-acc-stats > .plt-acc-stat:last-child {
		grid-column: 1 / -1;
	}

	.plt-acc-stat__num {
		order: 3;
		margin-inline-start: auto;
	}

	.plt-acc-stat__num,
	.plt-acc-stat__label {
		text-align: start;
	}

	/*
	 * The greeting gets a line of its own so it stops wrapping a word at a
	 * time, with the edit link and the address stacked beneath it. The avatar
	 * is decoration and only costs width here.
	 */
	.plt-acc-hero {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
	}

	.plt-acc-hero__avatar {
		display: none;
	}

	.plt-acc-hero__main,
	.plt-acc-hero__meta {
		width: 100%;
	}

	.plt-acc-hero__actions,
	.plt-acc-hero .plt-acc-btn,
	.plt-acc-hero .plt-acc-link {
		margin-inline-start: 0;
		align-self: flex-start;
	}

	/*
	 * auto-fill with a 280px minimum is wider than the content column on a
	 * phone, so the cards overflowed their grid by a few pixels and sat off
	 * centre. One column, and the track can shrink.
	 */
	.plt-acc-addr-grid,
	.plt-acc-coupons {
		grid-template-columns: minmax(0, 1fr);
	}

	/* A note reads as a paragraph, not as one word per line. */
	.plt-acc-hint {
		display: block;
		line-height: 1.8;
	}

	.plt-acc-hint .picon {
		margin-top: 0;
		margin-inline-end: 4px;
		vertical-align: middle;
	}
}


/* Column headings of the orders table: سفارش، تاریخ، وضعیت، کد رهگیری، مجموع، عملیات‌ها */
.woocommerce-MyAccount-content .woocommerce-orders-table th {
	font-size: var(--pt-fs-md, 14px);
}

/*
 * تاریخ و مبلغِ هر ردیف. هر دو داخل خانه‌ی جدول‌اند و اندازه‌شان را از آن ارث
 * می‌بردند؛ اینجا صریح می‌شود تا با بقیه‌ی محتوای ردیف هم‌اندازه بماند.
 *
 * نشانِ واحد پول هم شامل می‌شود، وگرنه آیکونِ تومان به اندازه‌ی ارثیِ خودش
 * می‌ماند و کنارِ عددِ کوچک‌تر بزرگ به نظر می‌رسد.
 */
.woocommerce-MyAccount-content .woocommerce-orders-table td time,
.woocommerce-MyAccount-content .woocommerce-orders-table td .woocommerce-Price-amount {
	font-size: var(--pt-fs-sm, 13px);
}

/*
 * Below 1024px the table stacks: the head is hidden and each cell prints its own
 * column name from data-title instead. That pseudo element is the heading at those
 * widths, so it carries the same size, and one order is set well apart from the
 * next — the dashed rules between the cells of one order and the line between two
 * orders were the same weight, which is what ran them together.
 */
@media (max-width: 1024px) {
	.woocommerce-MyAccount-content .woocommerce-orders-table td::before {
		font-size: 14px;
	}

	.woocommerce-MyAccount-content .woocommerce-orders-table tr.order {
		margin-bottom: 26px;
		padding-bottom: 18px;
		border-bottom: 2px solid var(--plt-acc-brd);
	}

	.woocommerce-MyAccount-content .woocommerce-orders-table tr.order:last-child {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: 0;
	}
}

/*
 * ---------------------------------------------------------------------------
 * Order action links
 *
 * WooCommerce renders these as <a class="woocommerce-button button ...>, so every
 * generic button rule in the theme paints them. They read better as a row of plain
 * links divided by a rule — پرداخت | مشاهده | لغو | فاکتور.
 *
 * Everything is scoped to the actions cell rather than to a.woocommerce-button at
 * large. The pagination links carry that same class, and matching it broadly meant
 * "قبلی/بعدی" lost their button look too.
 * ---------------------------------------------------------------------------
 */

/*
 * On a wide screen this stays a real <td>: giving it any display other than
 * table-cell drops it out of the row box — the actions ride up above the other
 * cells and the row's dividing line breaks across that column. The links are
 * inline-flex, so they already sit in a row inside an ordinary cell.
 */
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions {
	vertical-align: middle;
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button,
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button:hover {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-width: 0;
	min-height: 0;
	height: auto;
	margin: 0;
	padding: 2px 10px;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: var(--plt-acc-muted, inherit);
	font-size: var(--pt-fs-sm);
	font-weight: 500;
	line-height: 1.6;
	text-transform: none;
	text-decoration: none;
	transition: color .2s ease;
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button:hover {
	color: var(--plt-acc-primary);
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button.cancel:hover {
	color: var(--plt-acc-bad);
}

/*
 * A Picon after the label, one per action. ::after rather than ::before so the
 * glyph follows the text in both directions, and set per action class because
 * WooCommerce names each link by what it does. ::before is silenced: the glyph
 * these carried as buttons came from a rule that no longer exists, and a second
 * one here would double up.
 */
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button::before {
	content: none;
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button::after {
	content: var(--plt-acc-action-icon, none);
	margin-inline-start: 6px;
	font-family: "Picon";
	font-size: 1.15em;
	font-weight: 500;
	line-height: 1;
	vertical-align: middle;
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.pay {
	--plt-acc-action-icon: "\e481";
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.view {
	--plt-acc-action-icon: "\e315";
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.cancel {
	--plt-acc-action-icon: "\e263";
}

.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.reorder {
	--plt-acc-action-icon: "\e520";
}

/* A rule between neighbours, so the first link never carries a leading one. */
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button + a.woocommerce-button {
	border-inline-start: 1px solid var(--plt-acc-brd);
}

/*
 * Below 1024px the table stacks into cards, and the actions read best as one
 * outlined box holding the whole group with the same dividers inside it, rather
 * than as loose links under the figures.
 *
 * nowrap plus a shrinkable basis is what keeps four actions on a single line: the
 * padding gives way before the line does, and the labels never break because each
 * link keeps its text on one line.
 */
@media (max-width: 1024px) {
	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions {
		display: flex;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0;
		width: 100%;
		margin-top: 8px;
		padding: 8px 0 !important;
		background: #fff;
		border: 1px solid var(--plt-acc-brd);
		border-radius: 10px;
		justify-content: space-evenly;
	}

	/* The cell prints its column name on this layout; the actions need no label. */
	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions::before {
		display: none;
	}

	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button {
		flex: 0 1 auto;
		min-width: 0;
		justify-content: center;
		padding: 3px 8px;
		white-space: nowrap;
		color: var(--plt-acc-title);
	}

	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button::after {
		margin-inline-start: 4px;
		font-size: 1em;
	}
}

@media (min-width: 1025px) {
	.woocommerce-MyAccount-content .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions a.woocommerce-button:not(:last-child) {
		margin-inline-end: 0;
	}

	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.woocommerce-button::after {
		font-size: 18px;
	}
}
