/*
 * Desk — karta recepcji (Task 116, paczka P2.R).
 *
 * LLM intent (Task 116 P2.R [styl kanału recepcji nie wycieka poza panel]): każdy selektor pod
 * .evreg-desk (tokeny z desk.css), zero reguł globalnych; cele dotyku z desk.css (48px).
 * Cross-ref: 121.10 §10, desk.css
 */

.evreg-desk__search-box {
	margin: 0.5rem 0 1rem;
}

.evreg-desk__results {
	margin: 0;
	padding: 0;
	list-style: none;
}

.evreg-desk__result {
	margin: 0 0 0.5rem;
}

.evreg-desk button.evreg-desk__result-open {
	width: 100%;
	text-align: left;
	background: var(--evreg-desk-surface);
	color: var(--evreg-desk-text);
	border-color: var(--evreg-desk-border);
	font-weight: 400;
}

.evreg-desk button.evreg-desk__result-open:hover {
	border-color: var(--evreg-desk-accent);
	background: var(--evreg-desk-bg);
}

.evreg-desk__result-name {
	font-weight: 600;
}

.evreg-desk__result-email {
	overflow-wrap: anywhere;
}

.evreg-desk__result-meta,
.evreg-desk__muted {
	color: var(--evreg-desk-muted);
}

.evreg-desk__result--no-ticket {
	padding: 0.75rem 1rem;
	border: 2px dashed var(--evreg-desk-border);
	border-radius: 6px;
}

/* LLM intent (Task 130 [Faculty rozpoznawalne na liście i w karcie]): plakietka i linia stanu pod .evreg-desk,
 * tylko tokeny z desk.css; pending = kolor błędu (obecność zablokowana), no_fees = kolor ok. Wygląd disabled
 * przycisków już jest w desk.css. Cross-ref: 130.04 K3/§13, 130.05 §3, U3/U5, K v1.20 */
.evreg-desk__faculty-badge {
	display: inline-block;
	margin: 0 0.5rem;
	padding: 0.1rem 0.5rem;
	border-radius: 4px;
	background: var(--evreg-desk-accent);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
}

.evreg-desk__faculty-state {
	display: block;
	font-weight: 600;
}

.evreg-desk__faculty-state[data-state="pending"] {
	color: var(--evreg-desk-error);
}

.evreg-desk__faculty-state[data-state="no_fees"] {
	color: var(--evreg-desk-ok);
}

.evreg-desk__onsite {
	margin: 0.5rem 0;
	padding: 0.5rem 0.75rem;
	border-left: 4px solid var(--evreg-desk-accent);
	background: var(--evreg-desk-surface);
	font-weight: 600;
}

.evreg-desk__onsite[data-state="unavailable"],
.evreg-desk__money[data-state="unavailable"] {
	border-left-color: var(--evreg-desk-error);
	color: var(--evreg-desk-error);
}

.evreg-desk__card {
	margin-top: 1rem;
}

.evreg-desk__section {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--evreg-desk-border);
	border-radius: 6px;
}

.evreg-desk__section h3 {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
	color: var(--evreg-desk-primary);
}

.evreg-desk__fields {
	display: grid;
	grid-template-columns: minmax(8rem, 14rem) 1fr;
	gap: 0.25rem 1rem;
	margin: 0;
}

.evreg-desk__fields dt {
	color: var(--evreg-desk-muted);
}

.evreg-desk__fields dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.evreg-desk__money {
	padding-left: 0.75rem;
	border-left: 4px solid var(--evreg-desk-ok);
}

/* Task 138 (D-214): alert salda przy przycisku identyfikatora — warn/anomaly żółte, error = niewpłacona opłata. */
.evreg-desk__money-alert {
	margin: 0.5rem 0;
	padding: 0.5rem 0.75rem;
	border-left: 4px solid #8a5a00;
	background: #fff8e1;
	color: #8a5a00;
	overflow-wrap: anywhere;
}

.evreg-desk__money-alert[data-kind="anomaly"] {
	font-weight: 600;
}

.evreg-desk__money-alert[data-kind="error"] {
	border-left-color: var(--evreg-desk-error);
	background: #fdecea;
	color: var(--evreg-desk-error);
}

.evreg-desk__slot,
.evreg-desk__note {
	margin: 0 0 0.5rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--evreg-desk-border);
}

@media (max-width: 40rem) {
	.evreg-desk__fields {
		grid-template-columns: 1fr;
	}
}

/* ------------------------------------------------------------------------------------------------------------------
 * LLM intent (Task 140, 2.19.7 [układ recepcji pod Full HD — decyzje Ownera D01–D18, D-218]): wyłącznie prezentacja,
 * wszystko pod .evreg-desk (desk-reception.css ładuje się tylko na stronie recepcji, sala bez zmian). D02: limit 60rem
 * z desk.css:22 zdejmujemy TYLKO dla recepcji (0,2,0 > 0,1,0). D04/D16: od 1100 px lista | karta obok siebie, poniżej
 * lista ALBO karta (klasa evreg-desk--card-open z JS). D09/D10/D12: nagłówek karty = konto + ramka decyzji w kolorze
 * stanu (przycisk obok werdyktu) + tryb i licznik onsite; korpus w 2 kolumnach od 1300 px, węziej jedna kolumna z saldem
 * na górze (D18: saldo w oknie przy 1280×637). Kolor nigdy sam: tekst werdyktu + przerywana ramka szarego przycisku
 * (R9). D17: „Na pewno?” (desk-core dokłada je NA KOŃCU korzenia) przypięte do dołu okna, inaczej przy długiej karcie
 * lądowałoby pod nią. Cross-ref: D-218, D02, D04, D09–D12, D16–D18, e2e/specs/23-reception-first-screen.spec.ts
 * ------------------------------------------------------------------------------------------------------------------ */

.evreg-desk[data-desk="reception"] {
	position: relative;
	max-width: none;
}

.evreg-desk__bar {
	min-height: 48px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 1rem;
}

.evreg-desk__bar .evreg-desk__status {
	flex: 1 1 20rem;
	margin: 0.25rem 0;
}

.evreg-desk a.evreg-desk__logout {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin-left: auto;
	padding: 0 0.75rem;
	color: var(--evreg-desk-primary);
	font-weight: 600;
}

.evreg-desk__search-box label {
	display: flex;
}

.evreg-desk--card-open .evreg-desk__onsite-slot {
	display: none;
}

.evreg-desk__list.is-busy .evreg-desk__results {
	opacity: 0.55;
	pointer-events: none;
}

@media (min-width: 1100px) {
	.evreg-desk__split {
		display: grid;
		grid-template-columns: minmax(18rem, 22vw) minmax(0, 1fr);
		gap: 1rem;
		align-items: start;
	}

	.evreg-desk__list {
		position: sticky;
		/* Audyt 327 (Sonnet N-4): pasek admina WP (--wp-admin--admin-bar--height z admin-bar.css) nie może zasłonić pola. */
		top: var(--wp-admin--admin-bar--height, 0px);
		max-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
		overflow-y: auto;
	}
}

@media (max-width: 1099.98px) {
	.evreg-desk--card-open .evreg-desk__list {
		display: none;
	}
}

/* Wiersz listy (D07/D08): nazwisko + nr + FACULTY | e-mail | znaczniki. */
.evreg-desk button.evreg-desk__result-open {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.15rem 0.5rem;
	padding: 0.4rem 0.75rem;
}

.evreg-desk__result {
	margin: 0 0 0.35rem;
}

.evreg-desk__result-email,
.evreg-desk__result-meta,
.evreg-desk__result .evreg-desk__faculty-state {
	flex-basis: 100%;
	font-size: 0.875rem;
}

.evreg-desk__result-no {
	color: var(--evreg-desk-muted);
	font-weight: 600;
}

.evreg-desk__result .evreg-desk__faculty-badge {
	margin: 0;
}

.evreg-desk__chip,
.evreg-desk__result-attended,
.evreg-desk__result-fee {
	display: inline-block;
	padding: 0 0.4rem;
	border: 1px solid var(--evreg-desk-border);
	border-radius: 4px;
	background: var(--evreg-desk-surface);
	color: var(--evreg-desk-text);
	font-size: 0.85rem;
	line-height: 1.5;
	white-space: nowrap;
}

.evreg-desk__chip[data-kind="status"][data-value="confirmed"],
.evreg-desk__result-attended {
	border-color: var(--evreg-desk-ok);
	color: var(--evreg-desk-ok);
	font-weight: 600;
}

.evreg-desk__chip[data-kind="status"][data-value="pending_payment"],
.evreg-desk__chip[data-kind="status"][data-value="waitlisted"] {
	border-color: #8a5a00;
	color: #8a5a00;
}

.evreg-desk__chip[data-kind="status"][data-value="cancelled"],
.evreg-desk__chip[data-kind="status"][data-value="expired"],
.evreg-desk__result-fee {
	border-color: var(--evreg-desk-error);
	background: #fdecea;
	color: var(--evreg-desk-error);
	font-weight: 700;
}

/* Karta: nagłówek (konto, ramka decyzji, tryb + licznik) i korpus. */
/* Audyt 327 W02: „Wróć do listy” stoi w pasku panelu (obok „Wyloguj”), nie nad kartą — karta zaczyna się od konta i
 * decyzji, bez pustego pasa pod przyciskiem. DOM bez zmian (przycisk nadal w .evreg-desk__card). */
.evreg-desk__card {
	margin-top: 0;
}

.evreg-desk--card-open a.evreg-desk__logout {
	margin-right: 11rem;
}

.evreg-desk button.evreg-desk__back {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: var(--evreg-desk-bg);
	color: var(--evreg-desk-primary);
}

.evreg-desk__card .evreg-desk__section {
	margin-bottom: 0.5rem;
	padding: 0.5rem 0.75rem;
}

.evreg-desk__card .evreg-desk__section > h3 {
	margin-bottom: 0.25rem;
}

.evreg-desk__card-head section[data-section="account"] > h3,
.evreg-desk__card-head section[data-section="ticket"] > h3,
.evreg-desk__card-head section[data-section="onsite"] > h3 {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.evreg-desk__card-head section[data-section="account"] {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 1rem;
}

.evreg-desk__who {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.5rem;
}

.evreg-desk__who .evreg-desk__faculty-badge {
	margin: 0;
	font-size: 1rem;
}

.evreg-desk__who-name {
	color: var(--evreg-desk-primary);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.25;
}

.evreg-desk__card-head .evreg-desk__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.35rem;
}

.evreg-desk__card-head .evreg-desk__fields dt::after {
	content: ":";
}

.evreg-desk__card-head .evreg-desk__fields dd {
	margin-right: 1rem;
}

.evreg-desk__decision-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 1rem;
}

/* Od 1300 px (audyt 327 W02): tryb + licznik obok konta, a ramka decyzji na całą szerokość —
 * werdykt z kwotami mieści się w 2–3 liniach zamiast 5, warsztaty i „Dodaj uwagę” wchodzą na pierwszy ekran (D09). */
@media (min-width: 1300px) {
	.evreg-desk__card-head {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(14rem, 22rem);
		column-gap: 1rem;
		align-items: start;
	}

	.evreg-desk__decision-row {
		display: contents;
	}

	.evreg-desk__card-head section[data-section="account"] {
		grid-column: 1;
		grid-row: 1;
	}

	.evreg-desk__card-head section[data-section="onsite"] {
		grid-column: 2;
		grid-row: 1;
	}

	.evreg-desk__card-head section[data-section="ticket"] {
		grid-column: 1 / span 2;
		grid-row: 2;
	}
}

.evreg-desk__section.evreg-desk__decision {
	border-width: 3px 3px 3px 10px;
	border-color: var(--evreg-desk-muted);
}

.evreg-desk__decision[data-tone="error"] {
	border-color: var(--evreg-desk-error);
	background: #fdecea;
}

.evreg-desk__decision[data-tone="warn"] {
	border-color: #8a5a00;
	background: #fff8e1;
}

.evreg-desk__decision[data-tone="ok"],
.evreg-desk__decision[data-tone="done"] {
	border-color: var(--evreg-desk-ok);
	background: #edf7f0;
}

.evreg-desk__decision-main {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.5rem 1rem;
	margin-bottom: 0.5rem;
}

.evreg-desk button.evreg-desk__badge-btn {
	flex: 0 0 auto;
	min-width: 13rem;
	min-height: 64px;
	font-size: 1.15rem;
}

.evreg-desk button.evreg-desk__badge-btn:disabled {
	border-style: dashed;
	border-color: var(--evreg-desk-muted);
	background: #e9e4ee;
	color: var(--evreg-desk-muted);
	opacity: 1;
}

.evreg-desk__decision > .evreg-desk__fields {
	display: inline-flex;
	margin-right: 1rem;
	vertical-align: middle;
}

.evreg-desk__decision > .evreg-desk__fold {
	display: inline-block;
	vertical-align: middle;
}

.evreg-desk__decision-main .evreg-desk__undo-reason {
	flex: 1 1 14rem;
	width: auto;
}

.evreg-desk__verdict {
	flex: 1 1 16rem;
	min-width: 0;
}

.evreg-desk__verdict .evreg-desk__money-alert,
.evreg-desk__verdict .evreg-desk__muted,
.evreg-desk__verdict-note {
	margin: 0 0 0.35rem;
}

.evreg-desk__verdict .evreg-desk__money-alert,
.evreg-desk__verdict-note {
	font-weight: 600;
}

.evreg-desk__verdict-note[data-kind="ok"],
.evreg-desk__verdict-note[data-kind="done"] {
	color: var(--evreg-desk-ok);
}

.evreg-desk__verdict-note[data-kind="blocked"],
.evreg-desk__verdict-note[data-kind="error"] {
	color: var(--evreg-desk-error);
}

.evreg-desk__verdict-note[data-kind="unknown"] {
	color: #8a5a00;
}

/* Tryb + licznik (uwaga Ownera 2): jedna linia obok/pod ramką decyzji; nagłówek sekcji ukryty — licznik ma własną etykietę. */
.evreg-desk__section.evreg-desk__mode {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: flex-start;
	gap: 0.5rem;
}

.evreg-desk__mode .evreg-desk__chip {
	font-size: 1rem;
}

.evreg-desk__mode .evreg-desk__onsite {
	flex: 1 1 14rem;
	margin: 0;
	font-size: 1rem;
}

.evreg-desk__fold > summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	color: var(--evreg-desk-primary);
	font-weight: 600;
	cursor: pointer;
}

.evreg-desk__fold > summary::before {
	content: "▸";
}

.evreg-desk__fold[open] > summary::before {
	content: "▾";
}

.evreg-desk__fold > summary h3 {
	display: inline;
	margin: 0;
}

.evreg-desk__fold-word {
	color: var(--evreg-desk-muted);
	font-weight: 400;
}

/* Saldo w jednej linii „Do zapłaty | Razem | Wpłacono” (D18: saldo w oknie także przy 1280×637). */
.evreg-desk__card .evreg-desk__money .evreg-desk__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.5rem;
}

.evreg-desk__card .evreg-desk__money .evreg-desk__fields dd {
	margin-right: 1.25rem;
	font-weight: 600;
	white-space: nowrap;
}

/* Audyt 327 (Sol W02 / Sonnet N-4, D09): warsztaty i uwagi obsługi mieszczą się na pierwszym ekranie przy 1536×764
 * (także z paskiem admina WP) — wiersz warsztatu = opis | przycisk obok, pole „Dodaj uwagę” w jednej linii z przyciskiem. */
.evreg-desk__card .evreg-desk__slot {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 0.75rem;
	align-items: center;
	margin: 0;
	padding: 0.35rem 0;
}

.evreg-desk__card .evreg-desk__slot > :not(button) {
	grid-column: 1;
}

.evreg-desk__card .evreg-desk__slot > button {
	grid-column: 2;
	grid-row: 1 / span 3;
	max-width: 12rem;
	padding: 0.25rem 0.75rem;
	font-size: 0.9rem;
	line-height: 1.25;
}

.evreg-desk__card .evreg-desk__slot > .evreg-desk__muted {
	font-size: 0.875rem;
}

.evreg-desk__card .evreg-desk__note {
	margin: 0;
	padding: 0.25rem 0;
}

.evreg-desk__card .evreg-desk__note-text,
.evreg-desk__card .evreg-desk__note > .evreg-desk__muted {
	display: inline;
	margin-right: 0.5rem;
}

.evreg-desk__card .evreg-desk__note > .evreg-desk__muted {
	font-size: 0.85rem;
}

.evreg-desk__card .evreg-desk__note-input {
	width: calc(100% - 10rem);
	height: 48px;
	margin-top: 0.35rem;
	vertical-align: top;
	resize: vertical;
}

.evreg-desk__card .evreg-desk__note-add {
	margin: 0.35rem 0 0 0.5rem;
	vertical-align: top;
}

.evreg-desk__card[aria-busy="true"] {
	opacity: 0.6;
}

.evreg-desk__card-body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 1rem;
}

.evreg-desk__card-body > .evreg-desk__col {
	display: contents;
}

.evreg-desk__card-body section[data-section="money"] {
	order: -3;
}

.evreg-desk__card-body section[data-section="workshops"] {
	order: -2;
}

.evreg-desk__card-body section[data-section="staff_notes"] {
	order: -1;
}

@media (min-width: 1300px) {
	.evreg-desk__card-body {
		grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	}

	.evreg-desk__card-body > .evreg-desk__col {
		display: block;
	}
}

.evreg-desk[data-desk="reception"] > .evreg-desk__confirm {
	position: fixed;
	z-index: 100000;
	bottom: 1rem;
	left: 50%;
	width: min(36rem, calc(100vw - 2rem));
	margin: 0;
	transform: translateX(-50%);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
}
