/**
 * Sekcia Môj účet — benab-style (px-shop-theme) dizajn.
 *
 * Dopĺňa archive.css (tokeny `.pc-scope`, tlačidlá `.pc-btn`). Port benab
 * app.css account blokov z Tailwind @apply do plain CSS — formuláre,
 * tabuľky, adresné karty, login karta, notices, select2, stavové pilulky.
 * Načítava sa len na stránkach účtu (inc/enqueue.php).
 */

.px-account {
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	max-width: var(--pc-container);
	padding: 1.5rem 1rem 4rem;
}

@media (min-width: 640px) {
	.px-account { padding-left: 1.5rem; padding-right: 1.5rem; }
}

@media (min-width: 1024px) {
	.px-account { padding-left: 2rem; padding-right: 2rem; }
}

.px-account__title {
	margin: 0 0 1.5rem;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.2;
}

/* WooCommerce clearfix pseudo-elementy (content:" "; display:table) by boli
   v gride neviditeľné položky posúvajúce všetko o bunku — preč s nimi */
.px-account div.woocommerce::before,
.px-account div.woocommerce::after {
	display: none;
}

/* =========================================================================
   LAYOUT: navigácia + obsah
   ========================================================================= */

@media (min-width: 1024px) {
	.woocommerce-account.logged-in .px-account div.woocommerce:has(.woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 17rem minmax(0, 1fr);
		gap: 2.5rem;
		align-items: start;
	}

	.woocommerce-account.logged-in .px-account div.woocommerce:has(.woocommerce-MyAccount-navigation) > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}
}

.px-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
	margin-bottom: 2rem;
}

@media (min-width: 1024px) {
	.px-account .woocommerce-MyAccount-navigation { margin-bottom: 0; }
}

.px-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
	min-width: 0;
}

.px-account .woocommerce-MyAccount-content > h2,
.px-account .woocommerce-MyAccount-content > h3,
.px-account .woocommerce-MyAccount-content form > h2,
.px-account .woocommerce-MyAccount-content form > h3 {
	margin: 0 0 1rem;
	font-size: 1.25rem;
	font-weight: 600;
}

.px-account .woocommerce-MyAccount-content > p {
	margin: 0 0 1rem;
	font-size: 0.875rem;
	line-height: 1.6;
}

.px-account .woocommerce-MyAccount-content a:not(.button) {
	color: rgb(var(--pc-accent-deep));
	text-decoration: none;
}

.px-account .woocommerce-MyAccount-content a:not(.button):hover {
	text-decoration: underline;
}

/* =========================================================================
   NAVIGÁCIA ÚČTU (karta s ikonami)
   ========================================================================= */

.px-account-nav__list {
	margin: 0;
	padding: 0.5rem;
	list-style: none;
	background: rgb(var(--pc-paper));
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.px-account-nav__item--logout {
	margin-top: 0.25rem;
	padding-top: 0.5rem;
	border-top: 1px solid rgb(var(--pc-line));
}

/* Farby odkazov s prefixom .px-account — Elementor kit má globálne
   `.elementor-kit-N a` (0,1,1), ktoré by jednu triedu prebilo */
.px-account .px-account-nav__link {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.625rem 0.75rem;
	border-radius: var(--pc-radius-sm);
	font-size: 0.875rem;
	font-weight: 500;
	color: rgb(var(--pc-ink));
	text-decoration: none;
	transition: background 0.15s, color 0.15s;
}

.px-account-nav__icon {
	width: 1.25rem;
	height: 1.25rem;
	flex-shrink: 0;
	color: rgb(var(--pc-muted));
}

.px-account .px-account-nav__link:hover {
	background: rgb(var(--pc-ink) / 0.05);
	color: rgb(var(--pc-accent-deep));
}

.px-account .px-account-nav__link--active,
.px-account .px-account-nav__link--active:hover {
	background: rgb(var(--pc-ink));
	color: #fff;
}

.px-account .px-account-nav__link--active .px-account-nav__icon {
	color: rgb(255 255 255 / 0.7);
}

.px-account .px-account-nav__link--logout {
	color: #dc2626;
}

.px-account .px-account-nav__link--logout:hover {
	background: #fef2f2;
	color: #dc2626;
}

.px-account .px-account-nav__link--logout .px-account-nav__icon {
	color: #f87171;
}

/* =========================================================================
   FORMULÁRE
   ========================================================================= */

.px-account form .form-row {
	margin: 0 0 1rem;
	padding: 0;
}

.px-account form .form-row:last-of-type {
	margin-bottom: 0;
}

.px-account form .form-row label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.875rem;
	font-weight: 500;
}

.px-account form .form-row #billing_address_2,
.px-account form .form-row #shipping_address_2 {
	margin-top: 0.5rem;
}

.px-account form .form-row input.input-text,
.px-account form .form-row select,
.px-account form .form-row textarea {
	width: 100%;
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
	color: rgb(var(--pc-ink));
	background: rgb(var(--pc-paper));
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius-control);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.px-account form .form-row textarea {
	border-radius: var(--pc-radius-field);
}

.px-account form .form-row input.input-text:focus,
.px-account form .form-row select:focus,
.px-account form .form-row textarea:focus {
	outline: 0;
	border-color: rgb(var(--pc-accent-deep));
	box-shadow: 0 0 0 2px rgb(var(--pc-accent-deep) / 0.35);
}

.px-account input[type='checkbox'],
.px-account input[type='radio'] {
	width: 1rem;
	height: 1rem;
	accent-color: rgb(var(--pc-accent));
}

.px-account fieldset {
	margin: 2rem 0 0;
	padding: 1.25rem;
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
}

.px-account fieldset legend {
	padding: 0 0.5rem;
	font-weight: 600;
}

.px-account .show-password-input {
	display: none;
}

/* =========================================================================
   TLAČIDLÁ (WooCommerce .button → zelená pilulka)
   ========================================================================= */

.px-account .button,
.px-account a.button,
.px-account button.button,
.px-account input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.6rem 1.5rem;
	border: 0;
	border-radius: var(--pc-radius-control);
	background: rgb(var(--pc-accent));
	color: #fff;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s;
}

.px-account .button:hover {
	background: rgb(var(--pc-accent-deep));
	color: #fff;
}

.px-account .button:disabled,
.px-account .button[disabled] {
	opacity: 0.5;
	pointer-events: none;
}

/* =========================================================================
   TABUĽKY (objednávky, žiadosti, detail objednávky)
   ========================================================================= */

.px-account table.shop_table {
	width: 100%;
	font-size: 0.875rem;
	background: rgb(var(--pc-paper));
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

.px-account table.shop_table th {
	padding: 0.75rem 1rem;
	background: rgb(var(--pc-soft));
	border: 0;
	text-align: left;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: rgb(var(--pc-muted));
}

.px-account table.shop_table td {
	padding: 0.75rem 1rem;
	border: 0;
	border-top: 1px solid rgb(var(--pc-line));
	vertical-align: middle;
}

.px-account table.shop_table tbody tr:hover > td {
	background: rgb(var(--pc-ink) / 0.02);
}

.px-account table.shop_table .button {
	padding: 0.375rem 0.75rem;
	font-size: 0.75rem;
}

/* Akčné bunky (Objednávky aj Žiadosti): mäkké tlačidlá s medzerou */
.px-account .account-orders-table td.woocommerce-orders-table__cell-order-actions,
.px-account .account-orders-table td.woocommerce-orders-table__cell-request-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.5rem;
}

.px-account .account-orders-table td.woocommerce-orders-table__cell-order-actions a.button {
	margin: 0;
	background: rgb(var(--pc-accent) / 0.12);
	color: rgb(var(--pc-ink));
}

.px-account .account-orders-table td.woocommerce-orders-table__cell-order-actions a.button:hover {
	background: rgb(var(--pc-accent) / 0.2);
	color: rgb(var(--pc-ink));
}

/* =========================================================================
   STAVOVÉ PILULKY (objednávky + žiadosti)
   ========================================================================= */

.pc-status {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.25rem 0.625rem;
	border-radius: var(--pc-radius-pill);
	font-size: 0.75rem;
	font-weight: 600;
	white-space: nowrap;
}

.pc-status__dot {
	width: 0.375rem;
	height: 0.375rem;
	border-radius: var(--pc-radius-pill);
	background: currentColor;
}

.pc-status--received { background: #eff6ff; color: #1d4ed8; }
.pc-status--progress { background: #fffbeb; color: #b45309; }
.pc-status--resolved { background: #ecfdf5; color: #047857; }
.pc-status--rejected { background: #fef2f2; color: #b91c1c; }
.pc-status--neutral  { background: rgb(var(--pc-ink) / 0.06); color: rgb(var(--pc-muted)); }

/* =========================================================================
   ADRESY
   ========================================================================= */

.px-account .woocommerce-Addresses,
.px-account .col2-set.addresses {
	display: grid;
	gap: var(--pc-grid-gap, 15px);
}

/* Woo clearfix (::before/::after s display: table) by sa v gride stal grid
   položkou — obsadil by prvú bunku a karty by sa rozhodili diagonálne */
.px-account .woocommerce-Addresses::before,
.px-account .woocommerce-Addresses::after,
.px-account .col2-set.addresses::before,
.px-account .col2-set.addresses::after {
	content: none;
}

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

.px-account .addresses .col-1,
.px-account .addresses .col-2 {
	float: none;
	width: 100%;
	max-width: none;
}

.px-account .woocommerce-Address {
	padding: 1.25rem;
	background: rgb(var(--pc-paper));
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
}

.px-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.px-account .woocommerce-Address-title h2,
.px-account .woocommerce-Address-title h3 {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 600;
}

.px-account .woocommerce-Address-title .edit {
	font-size: 0.875rem;
	color: rgb(var(--pc-accent-deep));
}

.px-account .woocommerce-Address address {
	font-style: normal;
	font-size: 0.875rem;
	line-height: 1.6;
	color: rgb(var(--pc-muted));
}

/* =========================================================================
   PRIHLÁSENIE / REGISTRÁCIA (centrovaná karta)
   ========================================================================= */

.woocommerce-account:not(.logged-in) .px-account div.woocommerce {
	max-width: 28rem;
	margin-left: auto;
	margin-right: auto;
}

/* So zapnutou registráciou kreslí Woo dva formuláre (#customer_login) — úzky
   stĺpec by ich lepil pod seba, tak sa stránka roztiahne a karty stoja vedľa
   seba. Bez registrácie ostáva úzka centrovaná karta prihlásenia. */
.woocommerce-account:not(.logged-in) .px-account div.woocommerce:has(#customer_login) {
	max-width: 60rem;
}

.px-account #customer_login {
	display: grid;
	gap: 2rem;
}

/* Woo clearfix (::before/::after s display: table) by sa v gride stal grid
   položkou — obsadil by prvú bunku a karty by sa rozhodili diagonálne */
.px-account #customer_login::before,
.px-account #customer_login::after {
	content: none;
}

@media (min-width: 768px) {
	.px-account #customer_login {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
}

/* Woo core floatuje col-1/col-2 na 47 % — v gride to nemá čo robiť */
.px-account #customer_login .col-1,
.px-account #customer_login .col-2 {
	float: none;
	width: 100%;
	max-width: none;
}

.woocommerce-account:not(.logged-in) .px-account .px-account__title,
.woocommerce-account:not(.logged-in) .px-account h2 {
	text-align: center;
}

.px-account form.woocommerce-form-login,
.px-account form.woocommerce-form-register {
	margin-top: 1rem;
	padding: 1.5rem;
	background: rgb(var(--pc-paper));
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
}

@media (min-width: 640px) {
	.px-account form.woocommerce-form-login,
	.px-account form.woocommerce-form-register {
		padding: 2rem;
	}
}

.px-account .woocommerce-form-login__rememberme {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
	font-size: 0.875rem;
}

.px-account .woocommerce-LostPassword {
	margin: 1rem 0 0;
	font-size: 0.875rem;
}

.px-account .woocommerce-LostPassword a {
	color: rgb(var(--pc-accent-deep));
}

.px-account form.woocommerce-form-login .button,
.px-account form.woocommerce-form-register .button,
.px-account .woocommerce-ResetPassword .button {
	width: 100%;
	margin-top: 0.5rem;
}

.px-account .woocommerce-privacy-policy-text {
	font-size: 0.8125rem;
	color: rgb(var(--pc-muted));
	margin: 0.75rem 0;
}

/* =========================================================================
   NOTICES (úspech / info / chyba)
   ========================================================================= */

.px-account .woocommerce-message,
.px-account .woocommerce-info,
.px-account ul.woocommerce-error {
	position: relative;
	margin: 0 0 1.5rem;
	padding: 0.75rem 1rem 0.75rem 2.75rem;
	border: 1px solid;
	border-radius: var(--pc-radius-sm);
	font-size: 0.875rem;
	line-height: 1.6;
	list-style: none;
	background: rgb(var(--pc-paper));
}

.px-account .woocommerce-message::before,
.px-account .woocommerce-info::before,
.px-account ul.woocommerce-error::before {
	position: absolute;
	left: 0.75rem;
	top: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: var(--pc-radius-pill);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	font-family: inherit;
}

.px-account .woocommerce-message {
	background: #ecfdf5;
	border-color: #a7f3d0;
	color: #022c22;
}

.px-account .woocommerce-message::before {
	content: '\2713';
	background: #059669;
}

.px-account .woocommerce-info {
	background: rgb(var(--pc-accent) / 0.05);
	border-color: rgb(var(--pc-accent) / 0.2);
	color: rgb(var(--pc-ink));
}

.px-account .woocommerce-info::before {
	content: 'i';
	background: rgb(var(--pc-accent));
	font-style: italic;
}

.px-account ul.woocommerce-error {
	background: #fef2f2;
	border-color: #fecaca;
	color: #450a0a;
}

.px-account ul.woocommerce-error::before {
	content: '!';
	background: #dc2626;
}

.px-account ul.woocommerce-error li {
	padding: 0.125rem 0;
}

/* Tlačidlo v notice („Zobraziť košík" a pod.) — tiché, obrysové */
.px-account .woocommerce-message .button,
.px-account .woocommerce-info .button {
	float: right;
	margin-left: 0.75rem;
	padding: 0.25rem 0.75rem;
	font-size: 0.75rem;
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
}

/* =========================================================================
   SELECT2 (krajina / okres)
   ========================================================================= */

.px-account .select2-container--default .select2-selection--single {
	height: auto;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius-control);
	background: rgb(var(--pc-paper));
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.px-account .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 1.25rem 0 0;
	line-height: 1.5;
	font-size: 0.875rem;
	color: rgb(var(--pc-ink));
}

.px-account .select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.75rem;
	height: auto;
	transform: translateY(-50%);
}

.px-account .select2-container--default.select2-container--focus .select2-selection--single,
.px-account .select2-container--default.select2-container--open .select2-selection--single {
	border-color: rgb(var(--pc-accent-deep));
	box-shadow: 0 0 0 2px rgb(var(--pc-accent-deep) / 0.35);
	outline: 0;
	border-radius: var(--pc-radius-control);
}

/* Dropdown panel sa renderuje na konci <body> — bez .px-account prefixu */
.woocommerce-account .select2-container--default .select2-dropdown {
	border: 1px solid rgb(var(--pc-line));
	border-radius: var(--pc-radius);
	background: #fff;
	overflow: hidden;
	box-shadow: 0 12px 30px -12px rgb(4 40 23 / 0.3);
	margin-top: 0.35rem;
}

.woocommerce-account .select2-container--default .select2-search--dropdown {
	padding: 0.5rem;
}

.woocommerce-account .select2-container--default .select2-search--dropdown .select2-search__field {
	border: 1px solid rgb(var(--pc-line, 231 243 237));
	border-radius: var(--pc-radius-pill);
	padding: 0.4rem 0.75rem;
	font-size: 0.875rem;
}

.woocommerce-account .select2-container--default .select2-results__option {
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
}

.woocommerce-account .select2-container--default .select2-results__option--highlighted[aria-selected],
.woocommerce-account .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: rgb(0 191 99);
	color: #fff;
}

/* =========================================================================
   ŽIADOSTI (px-wc-requests) — detail
   ========================================================================= */

.px-account .pxer-view-btn {
	margin: 0;
	padding: 0.375rem 0.75rem;
	font-size: 0.75rem;
}

.px-account .pxer-detail__back {
	font-size: 0.875rem;
	margin-bottom: 0.5rem;
}

.px-account .pxer-overview {
	margin-top: 1rem;
}

.px-account .pxer-detail__heading {
	margin-top: 2.5rem;
}

.px-account .pxer-detail__cards {
	margin-top: 1.5rem;
}

.px-account .pxer-detail__muted {
	color: rgb(var(--pc-muted));
}
