/* ─────────────────────────────────────────────────────────
   MITS Withdrawal - frontend styles

   Branding przez CSS custom properties - admin może nadpisać
   kolory w Settings (WC -> Odstąpienia -> Kolor akcentu).
   Fallbacki gwarantują AA contrast nawet bez konfiguracji.

   WCAG 2.1 AA compliant:
    - Kontrast ≥ 4.5:1 dla tekstu, ≥ 3:1 dla UI components
    - Touch targets ≥ 44×44 px (interactive elements)
    - :focus-visible - wyraźny outline po klawiaturze
    - prefers-reduced-motion respected
   ───────────────────────────────────────────────────────── */

.mits-withdrawal,
.mits-myaccount-withdrawals {
	--mits-primary:        #1d4ed8;
	--mits-primary-hover:  #1e40af;
	--mits-primary-text:   #ffffff;
	--mits-focus-ring:     var(--mits-primary);
	--mits-focus-contrast: #fbbf24;
}

.mits-withdrawal {
	max-width: 720px;
	margin: 2rem auto;
	padding: 1.5rem;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
	color: #1f2937; /* ~12:1 na białym - AAA */
	line-height: 1.6;
}

.mits-withdrawal__title {
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0 0 0.75rem;
	color: #111827; /* ~16:1 na białym */
}

.mits-withdrawal__lede {
	font-size: 0.95rem;
	color: #4b5563; /* ~7:1 na białym - AA + */
	margin: 0 0 1.5rem;
}

.mits-withdrawal__steps {
	margin: 0 0 1.5rem 1.25rem;
}

.mits-withdrawal__steps li {
	margin-bottom: 0.5rem;
}

/* ── Form ──────────────────────────────────────────────── */

.mits-withdrawal__fieldset {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	padding: 1.25rem 1.5rem;
	margin: 0 0 1.25rem;
	background: #fff;
}

.mits-withdrawal__fieldset legend {
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #6b7280;
	padding: 0 0.5rem;
}

.mits-withdrawal__field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin: 0 0 1rem;
}

.mits-withdrawal__field:last-child {
	margin-bottom: 0;
}

.mits-withdrawal__field label {
	font-size: 0.9rem;
	font-weight: 500;
	color: #374151;
}

.mits-withdrawal__field input[type="text"],
.mits-withdrawal__field input[type="email"],
.mits-withdrawal__field textarea,
.mits-withdrawal textarea {
	padding: 0.625rem 0.75rem;
	min-height: 44px; /* WCAG 2.5.5 touch target */
	border: 1px solid #6b7280; /* ~4.6:1 na białym - AA */
	border-radius: 6px;
	font-size: 1rem; /* 16px - zapobiega iOS auto-zoom przy focus */
	font-family: inherit;
	background: #fff;
	color: #111827;
	width: 100%;
	box-sizing: border-box;
}

/* :focus dla starych przeglądarek (mouse + keyboard) */
.mits-withdrawal__field input:focus,
.mits-withdrawal textarea:focus {
	outline: 2px solid var(--mits-focus-ring);
	outline-offset: 2px;
	border-color: var(--mits-primary);
}

/* :focus-visible - tylko dla klawiatury (nowoczesne przeglądarki). */
.mits-withdrawal__field input:focus-visible,
.mits-withdrawal textarea:focus-visible {
	outline: 3px solid var(--mits-focus-ring);
	outline-offset: 2px;
}

/* Mouse focus - subtelne, bez agresywnego outline. */
.mits-withdrawal__field input:focus:not(:focus-visible),
.mits-withdrawal textarea:focus:not(:focus-visible) {
	outline: none;
	border-color: var(--mits-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--mits-primary) 18%, transparent);
}

/* ── Items table ───────────────────────────────────────── */

.mits-withdrawal__items {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.mits-withdrawal__items th,
.mits-withdrawal__items td {
	padding: 0.7rem 0.5rem;
	text-align: left;
	border-bottom: 1px solid #f3f4f6;
}

.mits-withdrawal__items th {
	font-weight: 600;
	color: #374151; /* ~10:1 - wystarczające dla small uppercase */
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.mits-withdrawal__item-qty-max {
	color: #4b5563; /* ~7:1 */
	font-variant-numeric: tabular-nums;
}

.mits-withdrawal__item-qty input {
	width: 80px;
	min-height: 44px; /* WCAG 2.5.5 touch target */
	padding: 0.5rem;
	border: 1px solid #6b7280; /* ~4.6:1 */
	border-radius: 6px;
	text-align: center;
	font-size: 1rem;
	font-variant-numeric: tabular-nums;
	background: #fff;
}

.mits-withdrawal__item-qty input:focus-visible {
	outline: 3px solid var(--mits-focus-ring);
	outline-offset: 2px;
}

.mits-withdrawal__hint {
	font-size: 0.875rem;
	color: #4b5563; /* ~7:1 - AA + dla małego tekstu */
	margin: 0.5rem 0 0;
}

/* ── Submit ────────────────────────────────────────────── */

.mits-withdrawal__actions {
	margin: 1.5rem 0 0;
}

.mits-withdrawal__submit {
	background: var(--mits-primary);
	color: var(--mits-primary-text);
	border: 1px solid var(--mits-primary-hover);
	border-radius: 6px;
	padding: 0.75rem 1.5rem;
	min-height: 44px; /* WCAG 2.5.5 touch target */
	min-width: 44px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 120ms ease;
}

.mits-withdrawal__submit:hover {
	background: var(--mits-primary-hover);
}

.mits-withdrawal__submit:focus-visible {
	outline: 3px solid var(--mits-focus-contrast);
	outline-offset: 2px;
}

.mits-withdrawal__submit:focus:not(:focus-visible) {
	outline: none;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--mits-primary) 45%, transparent);
}

@media (prefers-reduced-motion: reduce) {
	.mits-withdrawal__submit {
		transition: none;
	}
}

/* ── Notices ───────────────────────────────────────────── */

.mits-withdrawal__notice {
	background: #fef3c7;
	border-left: 3px solid #f59e0b;
	padding: 0.75rem 1rem;
	border-radius: 4px;
	color: #78350f;
	margin: 0;
}

.mits-withdrawal__notice--warning {
	background: #fef3c7;
	border-left: 3px solid #f59e0b;
	color: #78350f;
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
	border-radius: 6px;
}

.mits-withdrawal__notice--error {
	background: #fee2e2;
	border-left: 3px solid #dc2626;
	color: #7f1d1d; /* ~9:1 z fee2e2 - AAA */
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
	border-radius: 6px;
}

.mits-withdrawal__notice--error p {
	margin: 0 0 0.5rem;
	line-height: 1.6;
}

.mits-withdrawal__notice--error p:last-child {
	margin-bottom: 0;
}

.mits-withdrawal__error-list {
	margin: 0.5rem 0 0 1.25rem;
	padding: 0;
}

.mits-withdrawal__error-list li {
	margin-bottom: 0.25rem;
}

/* Inline błędy pod polami formularza. */
.mits-withdrawal__field--error label,
.mits-withdrawal__item-row--error .mits-withdrawal__item-name {
	color: #7f1d1d;
}

.mits-withdrawal__field--error input,
.mits-withdrawal__field--error textarea,
.mits-withdrawal__item-row--error .mits-withdrawal__item-qty input {
	border-color: #dc2626;
	background: #fef2f2;
}

.mits-withdrawal__field--error input:focus,
.mits-withdrawal__field--error textarea:focus,
.mits-withdrawal__item-row--error .mits-withdrawal__item-qty input:focus {
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.2);
}

.mits-withdrawal__field-error {
	display: block;
	margin-top: 4px;
	font-size: 0.85rem;
	color: #7f1d1d; /* AAA contrast na białym */
	font-weight: 500;
}

.mits-withdrawal--error .mits-withdrawal__title {
	color: #7f1d1d;
}

.mits-withdrawal__submit--link {
	display: inline-block;
	text-decoration: none;
	text-align: center;
}

.mits-withdrawal__notice--success {
	background: #d1fae5;
	border-left: 3px solid #10b981;
	color: #065f46;
	padding: 1rem 1.25rem;
	margin: 0 0 1.5rem;
	border-radius: 6px;
}

.mits-withdrawal__notice--success p {
	margin: 0 0 0.5rem;
	line-height: 1.6;
}

.mits-withdrawal__notice--success p:last-child {
	margin-bottom: 0;
}

/* Honeypot - całkowicie ukryty wizualnie ale dostępny dla narzędzi automatycznych. */
.mits-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.mits-withdrawal__notice--warning p {
	margin: 0 0 0.5rem;
	line-height: 1.6;
}

.mits-withdrawal__notice--warning p:last-child {
	margin-bottom: 0;
}

/* ── Art. 38 - wykluczenia ─────────────────────────────── */

/* Wykluczone wiersze - nie używamy opacity (psuje kontrast tekstu).
   Zamiast tego subtelne tło + zachowany pełny kontrast. */
.mits-withdrawal__item-row--excluded {
	background: #f9fafb;
}

.mits-withdrawal__item-row--excluded .mits-withdrawal__item-name {
	color: #374151; /* ~10:1 */
}

.mits-withdrawal__exclusion-badge {
	display: inline-block;
	margin-top: 4px;
	padding: 3px 10px;
	background: #fef3c7;
	color: #78350f; /* ~9:1 z fef3c7 - AAA */
	font-size: 0.75rem;
	font-weight: 600;
	border-radius: 10px;
	letter-spacing: 0.02em;
}

.mits-withdrawal__item-qty input[disabled] {
	background: #e5e7eb;
	color: #4b5563; /* ~7:1 z e5e7eb - AA + (mimo że SC 1.4.3 wyłącza disabled UI) */
	cursor: not-allowed;
	border-color: #9ca3af;
}

.mits-withdrawal__subtitle {
	font-size: 1.125rem;
	font-weight: 600;
	margin: 1.5rem 0 0.75rem;
	color: #111827;
}

.mits-withdrawal__excluded-list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	overflow: hidden;
}

.mits-withdrawal__excluded-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.75rem 1rem;
	border-bottom: 1px solid #f3f4f6;
}

.mits-withdrawal__excluded-list li:last-child {
	border-bottom: 0;
}

.mits-withdrawal__excluded-name {
	font-weight: 500;
	color: #1f2937;
}

.mits-withdrawal__excluded-reason {
	font-size: 0.8rem;
	color: #92400e;
	background: #fef3c7;
	padding: 2px 10px;
	border-radius: 10px;
	font-weight: 600;
	flex-shrink: 0;
}

/* ── Thank-you ─────────────────────────────────────────── */

.mits-withdrawal--thankyou {
	text-align: center;
	padding: 3rem 1.5rem;
}

.mits-withdrawal--thankyou .mits-withdrawal__title {
	font-size: 1.75rem;
	margin-bottom: 1rem;
}

/* ── My Account button override (mały tweak) ───────────── */

.woocommerce-MyAccount-orders .button.mits-withdrawal {
	background: #f3f4f6;
	color: #1f2937;
	border-color: #d1d5db;
}

/* ── My Account - zakładka „Zwroty" ─────────────────────── */

.mits-myaccount-withdrawals__empty,
.mits-myaccount-withdrawals__intro {
	margin: 0 0 1rem;
	color: #4b5563;
}

.mits-myaccount-withdrawals__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mits-myaccount-withdrawals__item {
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	margin-bottom: 12px;
	background: #fff;
}

.mits-myaccount-withdrawals__details {
	width: 100%;
}

.mits-myaccount-withdrawals__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 14px 18px;
	cursor: pointer;
	min-height: 44px;
	font-size: 0.95rem;
	list-style: none; /* Safari */
}

.mits-myaccount-withdrawals__summary::-webkit-details-marker {
	display: none; /* Safari */
}

.mits-myaccount-withdrawals__summary::before {
	content: "▸";
	display: inline-block;
	color: #6b7280;
	font-size: 14px;
	width: 14px;
	transition: transform 120ms ease;
}

.mits-myaccount-withdrawals__details[open] > .mits-myaccount-withdrawals__summary::before {
	transform: rotate(90deg);
}

.mits-myaccount-withdrawals__summary:focus-visible {
	outline: 3px solid var(--mits-focus-ring);
	outline-offset: -3px;
	border-radius: 8px;
}

.mits-myaccount-withdrawals__order {
	font-weight: 600;
	color: #111827;
	margin-right: auto;
}

.mits-myaccount-withdrawals__date {
	font-size: 0.85rem;
	color: #4b5563;
	font-variant-numeric: tabular-nums;
}

.mits-myaccount-withdrawals__status {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 12px;
	font-size: 0.75rem;
	font-weight: 600;
	background: color-mix(in srgb, var(--mits-status-color, #6b7280) 12%, white);
	color: var(--mits-status-color, #1f2937);
	border: 1px solid color-mix(in srgb, var(--mits-status-color, #6b7280) 30%, transparent);
}

.mits-myaccount-withdrawals__body {
	padding: 0 18px 18px;
	border-top: 1px solid #f3f4f6;
	margin-top: -1px;
}

.mits-myaccount-withdrawals__subhead {
	margin: 16px 0 8px;
	font-size: 0.85rem;
	font-weight: 600;
	color: #374151;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.mits-myaccount-withdrawals__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mits-myaccount-withdrawals__items li {
	display: flex;
	justify-content: space-between;
	padding: 6px 0;
	border-bottom: 1px solid #f3f4f6;
	font-size: 0.95rem;
}

.mits-myaccount-withdrawals__items li:last-child {
	border-bottom: 0;
}

.mits-myaccount-withdrawals__qty {
	color: #4b5563;
	font-variant-numeric: tabular-nums;
}

.mits-myaccount-withdrawals__reason {
	margin: 0 0 12px;
	padding: 10px 14px;
	background: #f9fafb;
	border-radius: 6px;
	white-space: pre-line;
	font-size: 0.95rem;
}

.mits-myaccount-withdrawals__meta {
	margin: 12px 0 0;
	font-size: 0.85rem;
	color: #4b5563;
}

/* ── A11y helper ───────────────────────────────────────── */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Globalny safety net dla focus-visible - w razie gdyby motyw nadpisał inputy. */
.mits-withdrawal a:focus-visible,
.mits-withdrawal button:focus-visible,
.mits-withdrawal [tabindex]:focus-visible {
	outline: 3px solid var(--mits-focus-ring);
	outline-offset: 2px;
	border-radius: 4px;
}

/* Wymagane pola - dyskretny indykator obok labela. */
.mits-withdrawal__field label span[aria-hidden="true"] {
	color: #b91c1c; /* ~6:1 - czytelne, ale nie agresywne */
	font-weight: 700;
	margin-left: 2px;
}

/* Reduced motion - szanujemy preferencję usera. */
@media (prefers-reduced-motion: reduce) {
	.mits-withdrawal *,
	.mits-withdrawal *::before,
	.mits-withdrawal *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* Forced-colors mode (Windows High Contrast) - używamy system colors. */
@media (forced-colors: active) {
	.mits-withdrawal__submit {
		border: 2px solid ButtonText;
	}
	.mits-withdrawal__field input,
	.mits-withdrawal textarea {
		border: 1px solid FieldText;
	}
	.mits-withdrawal__exclusion-badge {
		border: 1px solid CanvasText;
	}
}
