/* =========================================================================
   VENES – Moje konto (logowanie, rejestracja, przegląd, zamówienia, adresy, dane konta).
   Ładowany tylko na stronie konta. Telefon najpierw; komputer od 1024 px.
   ========================================================================= */

.page-account {
	--acc-field-border: #8b8791;   /* obramowanie pól: kontrast 3,4 : 1 z białym (WCAG 1.4.11) */
	padding-top: 24px; padding-bottom: 64px;
}
.page-account .page-text__title { font-size: 28px; font-weight: 600; line-height: 36px; color: var(--c-text); }
.page-account .page-text__content { margin-top: 20px; }

/* Powrót do przeglądu konta (telefon) / do logowania */
.acc-back {
	display: inline-flex; align-items: center; gap: 4px;
	min-height: 44px; margin: -10px 0 2px -6px; padding-right: 8px;
	font-size: 16px; font-weight: 500; line-height: 22px;
	color: var(--c-purple); text-decoration: none;
}
.acc-back svg { width: 20px; height: 20px; stroke-width: 2; }
.acc-back:hover { text-decoration: underline; }

/* --- Karty i elementy wspólne -------------------------------------------------------- */
.acc-card {
	padding: 20px 16px;
	border: 1px solid var(--c-line); border-radius: var(--r-md);
	background: var(--c-white);
}
.acc-card__title { font-size: 22px; font-weight: 600; line-height: 28px; color: var(--c-text); }
.acc-card__lead { margin-top: 6px; font-size: 16px; line-height: 24px; color: var(--c-text-2); }
.acc-section-title { font-size: 20px; font-weight: 600; line-height: 26px; color: var(--c-text); }
.acc-intro { max-width: 640px; font-size: 16px; line-height: 24px; color: var(--c-text-2); }
.acc-note { font-size: 15px; line-height: 22px; color: var(--c-text-3); }
.acc-link { color: var(--c-purple); font-size: 16px; line-height: 22px; text-decoration: underline; text-underline-offset: 3px; }
.acc-link:hover { text-decoration-thickness: 2px; }
.acc-link--muted { display: inline-flex; align-items: center; min-height: 44px; color: var(--c-text-2); }

/* Plakietka statusu zamówienia */
.acc-status {
	display: inline-flex; align-items: center; flex: none;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 14px; font-weight: 600; line-height: 18px;
	white-space: nowrap;
}
.acc-status--wait     { background: var(--c-badge-soft); color: #7a4100; }
.acc-status--progress { background: var(--c-lavender-soft); color: #6a3aa8; }
.acc-status--done     { background: #e3f4d9; color: #2d6612; }
.acc-status--stop     { background: #fbe4e1; color: #9e2a1d; }
.acc-status--neutral  { background: #eeedf0; color: var(--c-text-2); }

/* Miniatury produktów zamówienia */
.acc-thumbs { display: flex; gap: 8px; }
.acc-thumbs__img,
.acc-thumbs__more { width: 48px; height: 48px; border-radius: var(--r-md); background: var(--c-panel); }
.acc-thumbs__img { object-fit: cover; }
.acc-thumbs__more { display: grid; place-items: center; font-size: 15px; font-weight: 600; color: var(--c-text-2); }

/* Brak zamówień */
.acc-empty { display: grid; justify-items: center; gap: 14px; padding-block: 32px; text-align: center; }
.acc-empty__icon { width: 40px; height: 40px; color: var(--c-purple); stroke-width: 1.4; }
.acc-empty__text { font-size: 17px; line-height: 24px; color: var(--c-text); }

/* --- Formularze ------------------------------------------------------------------------ */
.page-account form { font-size: 16px; }
.page-account .form-row { display: grid; gap: 6px; margin: 0; }
.page-account form label { font-size: 15px; font-weight: 500; line-height: 20px; color: var(--c-text); }
.page-account .required { color: var(--c-purple); text-decoration: none; border: 0; }
.page-account .optional { font-weight: 400; color: var(--c-text-3); }
.page-account .woocommerce-input-wrapper { display: block; }
.page-account .input-text,
.page-account form input[type="text"],
.page-account form input[type="email"],
.page-account form input[type="tel"],
.page-account form input[type="password"],
.page-account form select,
.page-account form textarea {
	width: 100%; min-height: 52px; margin: 0; padding: 12px 14px;
	border: 1px solid var(--acc-field-border); border-radius: var(--r-md);
	background: var(--c-white);
	font-size: 16px; line-height: 24px; color: var(--c-text);
	transition: border-color .15s ease, box-shadow .15s ease;
}
.page-account form textarea { min-height: 104px; }
.page-account form input:focus,
.page-account form select:focus,
.page-account form textarea:focus { outline: none; border-color: var(--c-purple); box-shadow: 0 0 0 1px var(--c-purple); }
.page-account .woocommerce-invalid input,
.page-account form input[aria-invalid="true"] { border-color: var(--c-sale); }
.page-account form input[type="checkbox"],
.page-account form input[type="radio"] { width: 20px; height: 20px; margin: 0; accent-color: var(--c-purple); }
.page-account form em,
.page-account .description,
.acc-hint { display: block; font-size: 14px; font-style: normal; line-height: 20px; color: var(--c-text-3); }
.page-account .clear { display: none; }
/* Sprzedaż tylko do jednego kraju – pole kraju zbędne (kraj ustawia sklep). */
.dfc-single-country .page-account #billing_country_field,
.dfc-single-country .page-account #shipping_country_field { display: none !important; } /* WooCommerce wstawia style="display:block" */

.acc-form { display: grid; gap: 16px; margin-top: 20px; }
.acc-form__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; }
.acc-check { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px !important; font-weight: 400 !important; cursor: pointer; }
.acc-form__submit { width: 100%; min-height: 54px; margin-top: 4px; }
.acc-form .woocommerce-privacy-policy-text p { font-size: 14px; line-height: 20px; color: var(--c-text-3); }
.page-account form a { color: var(--c-purple); }

/* Podgląd hasła */
.acc-pass { position: relative; display: block; }
.page-account .acc-pass input { padding-right: 52px; }
.acc-pass__toggle {
	position: absolute; top: 50%; right: 4px;
	display: grid; place-items: center;
	width: 44px; height: 44px; padding: 0;
	border: 0; border-radius: var(--r-md);
	background: none;
	color: var(--c-text-3);
	transform: translateY(-50%);
}
.acc-pass__toggle:hover { color: var(--c-purple); }
.acc-pass__toggle svg { width: 22px; height: 22px; }

/* Formularze adresu i danych konta */
.woocommerce-address-fields__field-wrapper,
.woocommerce-EditAccountForm,
.woocommerce-ResetPassword { display: grid; gap: 16px; max-width: 640px; }
.page-account .woocommerce-address-fields > p,
.woocommerce-EditAccountForm > p:last-of-type { margin-top: 24px; }
.page-account form > h2,
.page-account form > h3 { margin-bottom: 16px; font-size: 20px; line-height: 26px; }
.page-account fieldset { display: grid; gap: 16px; min-width: 0; margin: 8px 0 0; padding: 0; border: 0; }
.page-account legend { margin-bottom: 16px; padding: 0; font-size: 20px; font-weight: 600; line-height: 26px; color: var(--c-text); }
.page-account form .button:not(.acc-pass__toggle) { width: 100%; min-height: 54px; }
.woocommerce-ResetPassword > p:first-child { font-size: 16px; line-height: 24px; color: var(--c-text-2); }

/* --- Komunikaty WooCommerce ------------------------------------------------------------ */
.page-account .woocommerce-notices-wrapper:empty { display: none; }
.page-account .woocommerce-error,
.page-account .woocommerce-message,
.page-account .woocommerce-info {
	position: relative;
	display: block;
	margin: 0 0 16px; padding: 14px 16px 14px 46px;
	border: 1px solid; border-radius: var(--r-md);
	font-size: 16px; line-height: 22px;
	list-style: none;
}
.page-account .woocommerce-error::before,
.page-account .woocommerce-message::before,
.page-account .woocommerce-info::before {
	content: "";
	position: absolute; top: 15px; left: 16px;
	width: 20px; height: 20px;
	background: currentColor;
	-webkit-mask: var(--acc-icon) center / contain no-repeat;
	mask: var(--acc-icon) center / contain no-repeat;
}
.page-account .woocommerce-error   { border-color: #f1c4be; background: #fdf0ee; color: #8f2318; --acc-icon: var(--acc-icon-alert); }
.page-account .woocommerce-message { border-color: #c6e5b4; background: #f1f9ec; color: #2d6612; --acc-icon: var(--acc-icon-check); }
.page-account .woocommerce-info    { border-color: var(--c-lavender-soft); background: var(--c-panel); color: var(--c-text); --acc-icon: var(--acc-icon-info); }
.page-account .woocommerce-error li + li { margin-top: 4px; }
.page-account .woocommerce-error a,
.page-account .woocommerce-message a:not(.button),
.page-account .woocommerce-info a:not(.button) { color: inherit; font-weight: 600; }
.page-account .woocommerce-message .button,
.page-account .woocommerce-info .button { display: flex; width: fit-content; min-height: 40px; margin-top: 10px; padding: 0 16px; font-size: 15px; }
.page-account [role="alert"]:focus { outline: 2px solid var(--c-purple); outline-offset: 2px; }
:root {
	--acc-icon-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E");
	--acc-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m16 9.5-5 5-3-3'/%3E%3C/svg%3E");
	--acc-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
}

/* --- Logowanie i rejestracja ----------------------------------------------------------- */
.acc-auth { display: grid; gap: 16px; max-width: 480px; }
.acc-auth__card--register { border-color: var(--c-lavender-soft); background: var(--c-panel); }
.acc-perks { display: grid; gap: 10px; margin-top: 14px; font-size: 16px; line-height: 22px; color: var(--c-text); }
.acc-perks li { display: flex; align-items: flex-start; gap: 12px; }
.acc-perks__icon { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--c-purple); }

/* --- Po zalogowaniu: menu i treść ------------------------------------------------------ */
.acc { display: grid; gap: 24px; }
.acc__content { display: grid; gap: 16px; align-content: start; min-width: 0; }

.acc-nav__list {
	border: 1px solid var(--c-line); border-radius: var(--r-md);
	background: var(--c-white);
	overflow: hidden;
}
.acc-nav__item + .acc-nav__item { border-top: 1px solid var(--c-line); }
.acc-nav__link {
	display: flex; align-items: center; gap: 14px;
	min-height: 64px; padding: 12px 12px 12px 14px;
	color: var(--c-text); text-decoration: none;
	transition: background-color .15s ease;
}
.acc-nav__link:hover { background: #fbf7ff; }
.acc-nav__icon {
	display: grid; place-items: center; flex: none;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: var(--c-lavender-soft);
	color: var(--c-purple);
}
.acc-nav__icon svg { width: 20px; height: 20px; }
.acc-nav__text { display: grid; flex: 1 1 auto; min-width: 0; }
.acc-nav__label { font-size: 17px; font-weight: 600; line-height: 22px; }
.acc-nav__desc { font-size: 14px; line-height: 20px; color: var(--c-text-3); }
.acc-nav__chevron { flex: none; width: 20px; height: 20px; color: var(--c-text-3); }
.acc-nav__item--customer-logout .acc-nav__icon { background: #f1f0f3; color: var(--c-text-2); }
.acc-nav__item--customer-logout .acc-nav__label { font-weight: 500; color: var(--c-text-2); }

/* Telefon: menu tylko na stronie przeglądu (pod powitaniem i ostatnim zamówieniem),
   na podstronach jest link „Moje konto” nad tytułem. „Przegląd konta” w liście jest zbędny. */
@media (max-width: 1023px) {
	.acc:not(.acc--dashboard) .acc-nav { display: none; }
	.acc--dashboard .acc-nav { order: 2; }
	.acc-nav__item--dashboard { display: none; }
	.acc-nav__item--dashboard + .acc-nav__item { border-top: 0; }
}

/* Przegląd konta */
.acc-hello__title { font-size: 24px; font-weight: 600; line-height: 30px; color: var(--c-text); }
.acc-hello__text { margin-top: 4px; font-size: 16px; line-height: 24px; color: var(--c-text-2); }

.acc-last__head,
.acc-order__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.acc-last__title { font-size: 18px; font-weight: 600; line-height: 24px; color: var(--c-text); }
.acc-last__meta,
.acc-order__meta { margin-top: 4px; font-size: 15px; line-height: 22px; color: var(--c-text-3); }
.acc-last__body,
.acc-order__body { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 14px; }
.acc-last__total,
.acc-order__total { margin-left: auto; font-size: 20px; font-weight: 700; line-height: 26px; color: var(--c-text); white-space: nowrap; }
.acc-last__btn { width: 100%; min-height: 48px; margin-top: 16px; font-size: 16px; }

/* Lista zamówień */
.acc-orders { display: grid; gap: 12px; }
.acc-order__no { font-size: 18px; font-weight: 600; line-height: 24px; }
.acc-order__no a { color: var(--c-text); text-decoration: none; }
.acc-order__no a:hover { color: var(--c-purple); text-decoration: underline; }
.acc-order__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 16px; }
.acc-order__btn { flex: 1 1 140px; min-height: 48px; padding-inline: 16px; font-size: 16px; }
.acc-order__withdraw { display: inline-flex; align-items: center; min-height: 44px; }
.acc-order__note { margin-top: 12px; padding: 8px 12px; border-radius: var(--r-md); background: var(--c-panel); font-size: 15px; line-height: 20px; color: var(--c-text); }
.acc-pages { display: flex; justify-content: space-between; gap: 12px; margin-top: 4px; }
.acc-pages .button { min-height: 48px; font-size: 16px; }

/* Adresy */
.acc-addresses { display: grid; gap: 12px; }
.acc-address { display: flex; flex-direction: column; }
.acc-address__head { display: flex; align-items: center; gap: 12px; }
.acc-address__icon { display: grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--c-lavender-soft); color: var(--c-purple); }
.acc-address__icon svg { width: 20px; height: 20px; }
.acc-address__title { font-size: 18px; font-weight: 600; line-height: 24px; color: var(--c-text); }
.acc-address__text { flex: 1 1 auto; margin-top: 14px; font-size: 16px; font-style: normal; line-height: 24px; color: var(--c-text-2); }
.acc-address__btn { align-self: flex-start; min-height: 44px; margin-top: 16px; padding-inline: 20px; font-size: 16px; }

/* Szczegóły zamówienia */
.acc-ostatus { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.acc-ostatus__meta { font-size: 16px; line-height: 22px; color: var(--c-text-2); }
.acc-notes__list { display: grid; gap: 14px; margin-top: 14px; }
.acc-notes__item { padding-left: 14px; border-left: 2px solid var(--c-lavender); }
.acc-notes__date { font-size: 14px; line-height: 20px; color: var(--c-text-3); }
.acc-notes__text { margin-top: 2px; font-size: 16px; line-height: 24px; color: var(--c-text); }
.acc-notes__text > * + * { margin-top: .5em; }

.page-account .woocommerce-order-details,
.page-account .woocommerce-customer-details { padding: 20px 16px; border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-white); }
.page-account .woocommerce-order-details__title,
.page-account .woocommerce-column__title { margin-bottom: 8px; font-size: 20px; line-height: 26px; color: var(--c-text); }
.page-account .order_details { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 22px; }
.page-account .order_details th,
.page-account .order_details td { padding: 12px 0; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; font-weight: 400; }
.page-account .order_details thead th { padding-top: 4px; font-size: 14px; font-weight: 500; color: var(--c-text-3); }
.page-account .order_details td:last-child,
.page-account .order_details th:last-child:not(:first-child) { padding-left: 12px; text-align: right; white-space: nowrap; }
.page-account .order_details .product-name a { color: var(--c-text); font-weight: 600; text-decoration: none; }
.page-account .order_details .product-quantity { font-weight: 600; color: var(--c-text-2); }
.page-account .wc-item-meta { margin-top: 4px; font-size: 14px; line-height: 20px; color: var(--c-text-3); }
.page-account .wc-item-meta li { display: flex; gap: 4px; }
.page-account .wc-item-meta p { margin: 0; }
.page-account .wc-item-meta-label { font-weight: 400; }
.page-account .order_details tfoot th { color: var(--c-text-2); }
.page-account .order_details tfoot tr:last-child th,
.page-account .order_details tfoot tr:last-child td { border-bottom: 0; }
.page-account .order_details tr:has(.acc-grand) > * { font-size: 18px; font-weight: 700; color: var(--c-text); }
.page-account .order_details .includes_tax { display: block; font-size: 13px; font-weight: 400; color: var(--c-text-3); }
.page-account .order_details .order-actions-button { min-height: 44px; margin: 0 0 0 8px; padding-inline: 16px; font-size: 15px; }
.page-account .woocommerce-customer-details address { font-size: 16px; font-style: normal; line-height: 24px; color: var(--c-text-2); }
.page-account .woocommerce-customer-details address p { margin-top: 4px; }
.page-account .woocommerce-columns--addresses { display: grid; gap: 20px; }
.page-account .order-again { margin-top: 0; }
.page-account .order-again .button { width: 100%; min-height: 48px; font-size: 16px; }

/* --- Tablet ------------------------------------------------------------------------- */
@media (min-width: 768px) {
	.acc-card,
	.page-account .woocommerce-order-details,
	.page-account .woocommerce-customer-details { padding: 24px; }
	.acc-addresses,
	.page-account .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-address-fields__field-wrapper,
	.woocommerce-EditAccountForm { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
	.woocommerce-address-fields__field-wrapper > *,
	.woocommerce-EditAccountForm > * { grid-column: 1 / -1; }
	.woocommerce-address-fields__field-wrapper > .form-row-first,
	.woocommerce-address-fields__field-wrapper > .form-row-last,
	.woocommerce-EditAccountForm > .form-row-first,
	.woocommerce-EditAccountForm > .form-row-last { grid-column: auto; }
	.page-account form .button:not(.acc-pass__toggle) { width: auto; min-width: 220px; }
	.acc-last__btn,
	.page-account .order-again .button { width: auto; }

	.acc-order {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "head actions" "meta actions" "body actions";
		column-gap: 32px;
	}
	.acc-order__head { grid-area: head; }
	.acc-order__meta { grid-area: meta; }
	.acc-order__body { grid-area: body; }
	.acc-order__note { grid-column: 1; }
	.acc-order__actions { grid-area: actions; flex-direction: column; align-items: stretch; align-self: center; min-width: 200px; margin: 0; }
	.acc-order__btn { flex: none; }
	.acc-order__actions .acc-link { justify-content: center; }
}

/* --- Komputer ------------------------------------------------------------------------ */
@media (min-width: 1024px) {
	.page-account { padding-top: 56px; padding-bottom: 100px; }
	.page-account .page-text__title { font-size: 40px; line-height: 49px; }
	.page-account .page-text__content { margin-top: 32px; }
	.logged-in .acc-back:not(.acc-back--always) { display: none; }

	.acc-auth--two { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 24px; max-width: 1000px; }
	.acc-auth__card { padding: 32px; }

	.acc { grid-template-columns: 280px minmax(0, 1fr); gap: 48px; align-items: start; }
	.acc-nav { position: sticky; top: 24px; }
	.acc-nav__list { padding: 8px; border-radius: var(--r-md); }
	.acc-nav__item + .acc-nav__item { border-top: 0; }
	.acc-nav__item--customer-logout { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--c-line) !important; }
	.acc-nav__link { min-height: 52px; padding: 6px 10px; border-radius: var(--r-md); gap: 12px; }
	.acc-nav__icon { width: 36px; height: 36px; }
	.acc-nav__label { font-size: 16px; font-weight: 500; }
	.acc-nav__desc,
	.acc-nav__chevron { display: none; }
	.acc-nav__link[aria-current="page"] { background: var(--c-lavender-soft); }
	.acc-nav__link[aria-current="page"] .acc-nav__label { font-weight: 600; }
	.acc-nav__link[aria-current="page"] .acc-nav__icon { background: var(--c-white); }

	.acc__content { gap: 20px; max-width: 880px; }
	.acc-hello__title { font-size: 28px; line-height: 36px; }
}
