/**
 * 3ks-event-registration — agenda picker + my-agenda (Phase 1c-B).
 * Desktop: CSS grid rows=time × cols=rooms (cells place themselves via
 * --col/--row custom properties set by agenda.js). Mobile ≤768px: the same DOM
 * collapses to a chronological list (§6). States carry text+icon, never colour
 * alone (WCAG — branding #741099/#290038 has weak hue contrast).
 */

.evreg-agenda { max-width: 1100px; }

/* — Tabs — */
.evreg-ag__tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.evreg-ag__tab {
	padding: 8px 16px;
	border: 2px solid var(--evreg-border, #d9cfe2);
	border-radius: 999px;
	background: #fff;
	font-weight: 700;
	cursor: pointer;
}
.evreg-ag__tab.is-active {
	background: var(--evreg-accent, #741099);
	border-color: var(--evreg-accent, #741099);
	color: #fff;
}
.evreg-ag__tznote { margin: 0 0 10px; }

/* — Task 087 F4 (D): stacked days layout — every day renders under its own heading
   (Settings agenda_days_layout = 'stacked'); grid per day reuses .evreg-ag__grid unchanged.
   Typografia jak .evreg-ag__roomhead/.evreg-ma__title (--evreg-dark). Mobile ≤768px: każdy
   .evreg-ag__grid kolapsuje niezależnie — istniejąca reguła @media niżej działa per-sekcja
   (grid = ta sama klasa, nagłówek dnia zostaje). */
.evreg-ag__dayhead {
	margin: 18px 0 8px;
	font-size: 16px;
	font-weight: 700;
	color: var(--evreg-dark, #290038);
}

/* — Grid (desktop) — */
.evreg-ag__grid {
	display: grid;
	grid-template-columns: 0 repeat(var(--evreg-cols, 7), minmax(120px, 1fr));
	gap: 8px;
	align-items: stretch;
}
.evreg-ag__roomhead {
	grid-column: var(--col);
	grid-row: var(--row);
	font-weight: 700;
	color: var(--evreg-dark, #290038);
	text-align: center;
	padding: 4px 0;
}
.evreg-ag__cell {
	grid-column: var(--col);
	grid-row: var(--row);
	display: flex;
	flex-direction: column;
	gap: 2px;
	text-align: left;
	border: 2px solid var(--evreg-border, #d9cfe2);
	border-radius: 8px;
	background: #fff;
	padding: 8px 10px;
	cursor: pointer;
	font-size: 13px;
	line-height: 1.35;
	position: relative;
}
.evreg-ag__cell:focus-visible { outline: 3px solid var(--evreg-accent, #741099); outline-offset: 2px; }
.evreg-ag__time { font-weight: 700; color: var(--evreg-dark, #290038); }
.evreg-ag__title { font-weight: 600; }
.evreg-ag__room { color: #666; font-size: 12px; }
.evreg-ag__state { font-size: 12px; font-weight: 600; }
.evreg-ag__check {
	position: absolute;
	top: 6px; right: 8px;
	color: var(--evreg-accent, #741099);
	font-weight: 900;
}

/* States: colour + border + TEXT (icon/text carries the meaning). */
.evreg-ag__cell.is-selected,
.evreg-ag__cell.is-selected-waitlist {
	border-color: var(--evreg-accent, #741099);
	background: var(--evreg-bg, #faf7fc);
	box-shadow: inset 0 0 0 1px var(--evreg-accent, #741099);
}
.evreg-ag__cell.is-selected-waitlist { border-style: dashed; }
.evreg-ag__cell.is-conflict,
.evreg-ag__cell.is-full,
.evreg-ag__cell.is-locked {
	opacity: 0.6;
	background: #f3f0f5;
	cursor: not-allowed;
}
.evreg-ag__cell.is-conflict .evreg-ag__state { color: #8a5a00; }
.evreg-ag__cell.is-full .evreg-ag__state,
.evreg-ag__cell.is-locked .evreg-ag__state { color: var(--evreg-error, #b3261e); }
.evreg-ag__cell.is-waitlist .evreg-ag__state { color: #145a8a; }
.evreg-ag__cell.is-topic-taken { border-style: dotted; }
.evreg-ag__cell.is-topic-taken .evreg-ag__state { color: #145a8a; }

/* Task 093 A1″: tryb read-only (brak aktywnego biletu / anonim) — pełny kontrast, zero selekcji.
   Kafelek NIE dostaje natywnego [disabled] (UA-greying); aria-disabled niesie semantykę.
   Umieszczone PO regułach .is-locked/.is-full/.is-conflict — ta sama specyficzność (0,2,0),
   późniejsza reguła wygrywa → w read-only cursor:default TAKŻE na kaflach locked/full
   (zamiast not-allowed). Cross-ref: _tasks/093.01 §2.1. */
.evreg-ag__cell[aria-disabled="true"] { cursor: default; }

/* — Sessions tab — */
.evreg-ag__sessions { list-style: none; margin: 0; padding: 0; }
.evreg-ag__sessions li { padding: 8px 4px; border-bottom: 1px solid var(--evreg-border, #d9cfe2); }

/* — Sticky bar — */
.evreg-ag__bar {
	position: sticky;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: 14px;
	padding: 10px 14px;
	background: var(--evreg-dark, #290038);
	color: #fff;
	border-radius: 10px 10px 0 0;
	z-index: 20;
}
.evreg-ag__count { font-weight: 700; }
.evreg-ag__notice { flex: 1; font-size: 13px; }
.evreg-ag__notice[data-kind="error"] { color: #ffb4ab; }
.evreg-ag__notice[data-kind="warn"] { color: #ffd8a8; }
.evreg-ag__notice[data-kind="ok"] { color: #b3e6c3; }
.evreg-ag__bar .evreg-btn--primary { background: var(--evreg-accent, #741099); border-color: #fff; }

/* — My-agenda — */
.evreg-ma { border: 1px solid var(--evreg-border, #d9cfe2); border-radius: 10px; padding: 16px 18px; margin: 0 0 18px; }
.evreg-ma__title { margin: 0 0 8px; color: var(--evreg-dark, #290038); }
.evreg-ma__banner { background: var(--evreg-bg, #faf7fc); border-radius: 8px; padding: 8px 12px; margin: 0 0 12px; }
/* Task 090.04 B7: baner „Mojej agendy" (termin/kaucje) do 16px — treść informacyjna nie mniejsza od otoczenia. */
.evreg-ma__banner { font-size: 16px; }
.evreg-ma__due strong { color: var(--evreg-accent, #741099); }
.evreg-ma__ok { color: var(--evreg-ok, #1b6e3c); font-weight: 700; margin: 0; }
.evreg-ma__overpaid { color: #8a5a00; font-weight: 600; }
.evreg-ma__day { margin: 12px 0 4px; color: var(--evreg-dark, #290038); }
.evreg-ma__list { list-style: none; margin: 0; padding: 0; }
.evreg-ma__item {
	display: grid;
	grid-template-columns: 2fr 1.2fr 1fr auto;
	gap: 10px;
	align-items: center;
	padding: 8px 4px;
	border-bottom: 1px solid var(--evreg-border, #d9cfe2);
}
.evreg-ma__meta, .evreg-ma__deposit { color: #555; font-size: 13px; }
.evreg-link {
	background: none;
	border: none;
	color: var(--evreg-accent, #741099);
	text-decoration: underline;
	cursor: pointer;
	font-size: 13px;
	padding: 2px 4px;
}
.evreg-link:focus-visible { outline: 3px solid var(--evreg-accent, #741099); outline-offset: 1px; }
.evreg-link--danger { color: var(--evreg-error, #b3261e); }
.evreg-ma-cancel.is-armed { font-weight: 700; }

/* — Hub „My registration" (Task 069.03): status card + docs/help subheads + terminal — */
.evreg-ma__hubtitle { margin: 0 0 14px; color: var(--evreg-dark, #290038); }
.evreg-ma__status { margin: 0 0 12px; }
.evreg-ma__subhead { margin: 14px 0 4px; font-size: 14px; color: var(--evreg-dark, #290038); }
.evreg-ma__help { margin: 4px 0 0; }
.evreg-ma--terminal { opacity: 0.92; }

/* — Task 069.16: blok „Zasady zapisów" (HelpBox, gate show_helps — przy OFF markup nie istnieje, G-186) — */
.evreg-help {
	margin: 0 0 12px;
	border: 1px solid var(--evreg-border, #d9cfe2);
	border-radius: 8px;
	padding: 8px 12px;
	background: var(--evreg-bg, #faf7fc);
}
.evreg-help > summary { cursor: pointer; font-weight: 700; color: var(--evreg-dark, #290038); padding: 4px 0; }
.evreg-help[open] > summary { margin-bottom: 6px; }
/* #444 = ta sama barwa treści co .evreg-cancel__consequences (register.css, kontrasty U1 — nie zmieniać). */
.evreg-help__list { margin: 0 0 4px; padding-left: 20px; font-size: 14px; color: #444; }
.evreg-help__list li { margin: 3px 0; }

/* — Task 082 1a (S1): two-step save — picker hint + review page — */
/* Hint pod przyciskiem #1: bar dostaje wrap (additive — bez hinta trzy dotychczasowe
   elementy mieszczą się w jednym wierszu, nic się nie zawija), hint łamie się do
   pełnej szerokości POD przyciskiem. Anty-porzucenie bariera (b). */
.evreg-ag__bar { flex-wrap: wrap; }
.evreg-ag__review-hint { flex-basis: 100%; font-size: 14px; color: #fff; margin: 0; text-align: right; }

/* Strona potwierdzenia [3ks_agenda_review] — kontener .evreg-agenda-review jest też
   kotwicą beforeunload guarda (agenda-review.js); tylko NOWE klasy (kontrakt E2E). */
.evreg-agenda-review { max-width: 900px; }
.evreg-agenda-review__title { margin: 0 0 14px; color: var(--evreg-dark, #290038); }
.evreg-agenda-review__warn {
	border: 2px solid var(--evreg-error, #b3261e);
	border-radius: 10px;
	background: #fdeceb;
	padding: 12px 16px;
	margin: 0 0 14px;
}
.evreg-agenda-review__warn-title { margin: 0 0 4px; font-weight: 700; color: #7a1a14; }
.evreg-agenda-review__warn-body { margin: 0; font-size: 14px; color: #7a1a14; }
.evreg-agenda-review__tznote { margin: 0 0 10px; }
.evreg-agenda-review__h3 { margin: 18px 0 6px; font-size: 16px; color: var(--evreg-dark, #290038); }
.evreg-agenda-review__section--added .evreg-agenda-review__h3 { color: var(--evreg-ok, #1b6e3c); }
.evreg-agenda-review__section--removed .evreg-agenda-review__h3 { color: var(--evreg-error, #b3261e); }
/* Task 091.01 §1: nagłówek KONTENERA preview („Twoja agenda warsztatów po zmianach" / stan po potwierdzeniu)
   dostaje separator. Child `>` trafia WYŁĄCZNIE nagłówek preview (AgendaReview::agenda_list — h3 to
   bezpośrednie dziecko .evreg-agenda-review__preview), NIE nagłówki sekcji diffu (te są w __section).
   font-weight:700 JAWNIE — nie polegać na domyślnym bold h3/Enfold. Kreska = pochodna --evreg-dark. */
.evreg-agenda-review__preview > .evreg-agenda-review__h3 {
	font-weight: 700;
	color: var(--evreg-accent, #741099);
	border-top: 3px solid rgba(41, 0, 56, 0.25);
	padding-top: 14px;
	margin-top: 36px;
}
.evreg-agenda-review__note { display: block; color: #145a8a; font-size: 13px; }
.evreg-agenda-review__note--warn { color: #8a5a00; font-weight: 600; }
.evreg-agenda-review__result { border-radius: 8px; padding: 10px 14px; margin: 0 0 14px; font-weight: 600; }
.evreg-agenda-review__result--ok { background: #eaf6ee; color: var(--evreg-ok, #1b6e3c); }
.evreg-agenda-review__result--partial { background: #fff7e6; color: #8a5a00; }
.evreg-agenda-review__confirm-form { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 20px 0 0; }

/* — Mobile ≤768px (§6: accordion → chronological list) — */
@media (max-width: 768px) {
	.evreg-ag__grid { display: block; }
	.evreg-ag__roomhead { display: none; }
	.evreg-ag__cell { width: 100%; margin: 0 0 8px; }
	.evreg-ma__item { grid-template-columns: 1fr; gap: 2px; }
}
