/* ==========================================================================
   TechShow X. VIP regisztráció — Prizma
   2. fázis: teljes űrlap-stílus

   🔴 GUARD-CSS — MIÉRT `!important` MINDENHOL?
   A Divi/Extra téma felülírja a natív elemeket (p, h1, h2, button, input,
   label, fieldset, legend, select, textarea, a, dl). Ezért MINDEN szabály:
     - a `.tsm` scope alatt fut, és
     - `!important`-tal.

   Élesben mért driftek, amiket minden ÚJ komponensnél újra ellenőrizni kell:
     - input::placeholder{text-transform:uppercase;letter-spacing:1.2px}
       → a PSZEUDO-ELEMET is fedni kell, nem elég az inputot
     - <a class="tsm-btn"> → a téma ALÁHÚZZA → linknek látszik, nem gombnak
     - a nyilatkozatok linkjeit külön kell színezni
     - a fieldset/legend a témában keretet és nagybetűs feliratot kap
   ========================================================================== */

/* --------------------------------------------------------------------------
   Tokenek + alap
   -------------------------------------------------------------------------- */
.tsm {
	--ts-bg: #F4F5F8;
	--ts-surface: #FFFFFF;
	--ts-ink: #0A0B0E;
	--ts-ink-2: #5C616B;
	--ts-ink-3: #8A8F99;
	--ts-line: #E8EAF0;
	--ts-night: #0A0F1E;
	--ts-night-2: #121A30;
	--ts-accent: #5227FF;
	--ts-accent-hover: #3D14E0;
	--ts-accent-soft: #F1EDFF;
	--ts-fin-neon: #22C8E8;
	--ts-pay-neon: #FF5FAD;
	--ts-bank-neon: #FFC233;
	--ts-danger: #D6273A;
	--ts-danger-soft: #FDEDEF;
	--ts-radius: 12px;
	--ts-radius-s: 8px;
	--ts-radius-pill: 999px;
	--ts-font-display: 'Schibsted Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--ts-font-body: 'Space Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;

	font-family: var(--ts-font-body) !important;
	color: var(--ts-ink) !important;
	text-align: left !important;

	/* Halvány alap az űrlap mögé. A blokkok fehér kártyák, ezért fehér
	   oldalháttéren nem lenne kontrasztjuk. Így a shortcode bármelyik
	   oldalon önmagában is jól néz ki. A hero saját, sötét hátteret kap
	   (lásd .tsm-hero-wrap, ami ez után következik a fájlban). */
	background: var(--ts-bg) !important;
}

.tsm *,
.tsm *::before,
.tsm *::after {
	box-sizing: border-box !important;
}

/* --------------------------------------------------------------------------
   Hero — éjkék, teljes szélességben
   -------------------------------------------------------------------------- */
.tsm-hero-wrap {
	background: linear-gradient(160deg, var(--ts-night) 0%, var(--ts-night-2) 100%) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.tsm-hero {
	max-width: 760px !important;
	margin: 0 auto !important;
	padding: 56px 20px 48px !important;
	position: relative !important;
}

/* Prizma-hármas: vékony színcsík a hero alján */
.tsm-hero-wrap::after {
	content: '' !important;
	display: block !important;
	height: 3px !important;
	background: linear-gradient(90deg,
		var(--ts-fin-neon) 0%, var(--ts-fin-neon) 33.3%,
		var(--ts-pay-neon) 33.3%, var(--ts-pay-neon) 66.6%,
		var(--ts-bank-neon) 66.6%, var(--ts-bank-neon) 100%) !important;
}

.tsm-hero-kicker {
	font-family: var(--ts-font-body) !important;
	font-size: 13px !important;
	line-height: 1.4 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--ts-fin-neon) !important;
	margin: 0 0 14px !important;
	padding: 0 !important;
	font-weight: 500 !important;
}

.tsm-hero-title {
	font-family: var(--ts-font-display) !important;
	font-size: 40px !important;
	line-height: 1.12 !important;
	font-weight: 700 !important;
	color: #FFFFFF !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: -0.01em !important;
}

.tsm-hero-motto {
	font-family: var(--ts-font-body) !important;
	font-size: 18px !important;
	line-height: 1.55 !important;
	color: rgba(255, 255, 255, 0.82) !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	max-width: 56ch !important;
}

.tsm-hero-deadline {
	display: inline-block !important;
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	font-weight: 500 !important;
	color: #FFFFFF !important;
	background: rgba(255, 255, 255, 0.10) !important;
	border: 1px solid rgba(255, 255, 255, 0.18) !important;
	border-radius: var(--ts-radius-pill) !important;
	padding: 7px 16px !important;
	margin: 0 !important;
}

/* --------------------------------------------------------------------------
   Törzs
   -------------------------------------------------------------------------- */
/* 🔴 A FÜGGŐLEGES TÉRKÖZ EGYETLEN HELYEN, ITT VAN.
   Az űrlap a TechShow-oldalon két idegen elem közé kerül: fölötte a logó-
   futószalag, alatta a Theme Builder lábléce. Egyik sem hoz magával térközt,
   ezért ha ez hiányzik, minden összecsúszik.
   Követelmény (Gábor, 2026-08-12): desktopon legalább 35px fent és lent,
   kisebb nézetekben arányosan. */
.tsm-body {
	max-width: 760px !important;
	margin: 0 auto !important;
	padding: 56px 20px 64px !important;
}

.tsm-intro {
	font-family: var(--ts-font-body) !important;
	font-size: 16px !important;
	line-height: 1.62 !important;
	color: var(--ts-ink-2) !important;
	margin: 0 0 32px !important;
	padding: 0 !important;
	max-width: 62ch !important;
}

/* --------------------------------------------------------------------------
   Blokkok
   -------------------------------------------------------------------------- */
.tsm-block {
	background: var(--ts-surface) !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius) !important;
	padding: 28px !important;
	margin: 0 0 20px !important;
}

.tsm-block-head {
	margin: 0 0 22px !important;
	padding: 0 !important;
	border: 0 !important;
}

.tsm-block-code {
	display: inline-block !important;
	font-family: var(--ts-font-display) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: 0.06em !important;
	color: var(--ts-accent) !important;
	background: var(--ts-accent-soft) !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 6px 10px !important;
	margin: 0 0 12px !important;
}

.tsm-block-title {
	font-family: var(--ts-font-display) !important;
	font-size: 22px !important;
	line-height: 1.3 !important;
	font-weight: 600 !important;
	color: var(--ts-ink) !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.tsm-block-sub {
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	color: var(--ts-ink-3) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --------------------------------------------------------------------------
   Mezőrács
   -------------------------------------------------------------------------- */
.tsm-fields {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 20px !important;
}

.tsm-field {
	grid-column: 1 / -1 !important;
	min-width: 0 !important;
}

.tsm-field--half {
	grid-column: span 1 !important;
}

/* --------------------------------------------------------------------------
   Címkék és beviteli mezők
   -------------------------------------------------------------------------- */
.tsm-label {
	display: block !important;
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	font-weight: 600 !important;
	color: var(--ts-ink) !important;
	margin: 0 0 7px !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	float: none !important;
}

.tsm-req {
	color: var(--ts-accent) !important;
	font-weight: 700 !important;
}

.tsm-optnote {
	font-weight: 400 !important;
	color: var(--ts-ink-3) !important;
	font-size: 13px !important;
}

.tsm-input {
	display: block !important;
	width: 100% !important;
	font-family: var(--ts-font-body) !important;
	font-size: 16px !important;   /* 16px alatt az iOS ráközelít a mezőre */
	line-height: 1.45 !important;
	font-weight: 400 !important;
	color: var(--ts-ink) !important;
	background: var(--ts-surface) !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 11px 14px !important;
	margin: 0 !important;
	box-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: border-color .15s ease, box-shadow .15s ease !important;
}

/* A téma nagybetűsíti és ritkítja a helykitöltő szöveget — a pszeudo-elemet
   külön kell fedni, az inputra tett szabály erre NEM hat. */
.tsm-input::placeholder {
	color: var(--ts-ink-3) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	opacity: 1 !important;
	font-size: 16px !important;
}

.tsm-input:focus {
	outline: none !important;
	border-color: var(--ts-accent) !important;
	box-shadow: 0 0 0 3px var(--ts-accent-soft) !important;
}

.tsm-input--locked {
	background: var(--ts-bg) !important;
	color: var(--ts-ink-2) !important;
	cursor: not-allowed !important;
}

.tsm-input--locked:focus {
	border-color: var(--ts-line) !important;
	box-shadow: none !important;
}

select.tsm-input {
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%235C616B' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	padding-right: 38px !important;
}

textarea.tsm-input {
	resize: vertical !important;
	min-height: 96px !important;
}

.tsm-hint {
	font-family: var(--ts-font-body) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	color: var(--ts-ink-3) !important;
	margin: 7px 0 0 !important;
	padding: 0 !important;
}

/* --------------------------------------------------------------------------
   Rádiógombok
   A téma a fieldsetre keretet, a legendre nagybetűs feliratot tesz.
   -------------------------------------------------------------------------- */
.tsm-radiogroup {
	border: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0 !important;
}

.tsm-radiogroup .tsm-label {
	display: block !important;
	width: 100% !important;
	float: none !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
	background: none !important;
	border: 0 !important;
}

.tsm-radio {
	display: flex !important;
	align-items: flex-start !important;
	gap: 11px !important;
	font-family: var(--ts-font-body) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	font-weight: 400 !important;
	color: var(--ts-ink) !important;
	background: var(--ts-surface) !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 13px 15px !important;
	margin: 0 0 9px !important;
	cursor: pointer !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: border-color .15s ease, background .15s ease !important;
}

.tsm-radio:last-child {
	margin-bottom: 0 !important;
}

.tsm-radio:hover {
	border-color: #C9CEDC !important;
}

.tsm-radio input[type="radio"] {
	flex: 0 0 auto !important;
	width: 19px !important;
	height: 19px !important;
	margin: 1px 0 0 !important;
	padding: 0 !important;
	accent-color: var(--ts-accent) !important;
	cursor: pointer !important;
}

.tsm-radio:has(input:checked) {
	border-color: var(--ts-accent) !important;
	background: var(--ts-accent-soft) !important;
}

.tsm-radio-text {
	display: block !important;
	padding: 0 !important;
}

/* --------------------------------------------------------------------------
   Hozzájárulások
   -------------------------------------------------------------------------- */
.tsm-consent {
	display: flex !important;
	align-items: flex-start !important;
	gap: 11px !important;
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	font-weight: 400 !important;
	color: var(--ts-ink-2) !important;
	margin: 0 !important;
	padding: 0 !important;
	cursor: pointer !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	float: none !important;
}

.tsm-consent input[type="checkbox"] {
	flex: 0 0 auto !important;
	width: 19px !important;
	height: 19px !important;
	margin: 1px 0 0 !important;
	padding: 0 !important;
	accent-color: var(--ts-accent) !important;
	cursor: pointer !important;
}

.tsm-consent-text {
	display: block !important;
	padding: 0 !important;
}

.tsm-consent-link {
	margin: 7px 0 0 30px !important;
	padding: 0 !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
}

/* A téma az aloldalakon saját linkszínt használ — a nyilatkozatoknál külön kell.
   🔴 A :not(.tsm-btn) NEM elhagyható. Ez a szabály a FOLYÓSZÖVEGBEN lévő
   linkeknek szól, de `.tsm-box-body a` (0,2,0) erősebb, mint `.tsm-btn` (0,1,0),
   ezért aláhúzta a dobozban lévő LINK-ALAPÚ gombokat is — a „Mégis kitöltöm"
   linknek látszott, nem gombnak. Élesben mérve a lemondó megerősítő oldalon,
   2026-08-12. Ez pontosan a CLAUDE.md 6. szabályában leírt drift, csak nem a
   téma okozta, hanem a saját CSS-ünk. */
/* 🔴 A `.tsm-consent-text a` NEM HAGYHATÓ EL.
   A nyilatkozat linkje 2026-08-13 óta a MONDATBA van ágyazva (korábban külön
   sorban állt, `.tsm-consent-link` alatt). A régi szabály így nem illeszkedett
   rá: élesben mérve az "adatkezelési tájékoztatót" link se aláhúzást, se
   akcentus-színt nem kapott - csak egy árnyalattal sötétebb szürke lett, ami
   nem olvasható linknek. Egy jogszabály szerint kötelező dokumentum
   hivatkozásánál ez nem elég. */
.tsm-consent-text a:not(.tsm-btn),
.tsm-consent-link a:not(.tsm-btn),
.tsm-box-body a:not(.tsm-btn),
.tsm-decline a:not(.tsm-btn) {
	color: var(--ts-accent) !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

.tsm-consent-text a:not(.tsm-btn):hover,
.tsm-consent-link a:not(.tsm-btn):hover,
.tsm-box-body a:not(.tsm-btn):hover,
.tsm-decline a:not(.tsm-btn):hover {
	color: var(--ts-accent-hover) !important;
}

/* A két hozzájárulás közé nagyobb levegő, mint a rács alap gapje */
.tsm-field--consent + .tsm-field--consent {
	margin-top: 4px !important;
}

/* --------------------------------------------------------------------------
   Hibaüzenetek
   -------------------------------------------------------------------------- */
.tsm-error {
	font-family: var(--ts-font-body) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	font-weight: 500 !important;
	color: var(--ts-danger) !important;
	margin: 7px 0 0 !important;
	padding: 0 !important;
}

.tsm-error[hidden] {
	display: none !important;
}

.tsm-field--invalid .tsm-input {
	border-color: var(--ts-danger) !important;
}

.tsm-field--invalid .tsm-input:focus {
	box-shadow: 0 0 0 3px var(--ts-danger-soft) !important;
}

.tsm-formerror {
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.55 !important;
	font-weight: 500 !important;
	color: var(--ts-danger) !important;
	background: var(--ts-danger-soft) !important;
	border: 1px solid #F5C2C8 !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 13px 16px !important;
	margin: 0 0 20px !important;
}

.tsm-formerror[hidden] {
	display: none !important;
}

/* Semleges visszajelzés ugyanabban a sávban (nem hiba) */
.tsm-formerror--info {
	color: var(--ts-ink) !important;
	background: var(--ts-accent-soft) !important;
	border-color: #D9CEFF !important;
}

/* --------------------------------------------------------------------------
   Gombok
   A téma az <a class="tsm-btn"> elemet ALÁHÚZZA — ezért text-decoration:none.
   -------------------------------------------------------------------------- */
.tsm-actions {
	margin: 28px 0 0 !important;
	padding: 0 !important;
}

.tsm-actions--row {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	align-items: center !important;
}

.tsm-btn {
	display: inline-block !important;
	font-family: var(--ts-font-body) !important;
	font-size: 16px !important;
	line-height: 1.2 !important;
	font-weight: 600 !important;
	color: #FFFFFF !important;
	background: var(--ts-accent) !important;
	border: 1px solid var(--ts-accent) !important;
	border-radius: var(--ts-radius-pill) !important;
	padding: 15px 30px !important;
	margin: 0 !important;
	cursor: pointer !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: 0 2px 10px rgba(82, 39, 255, 0.22) !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: background .15s ease, border-color .15s ease !important;
}

.tsm-btn:hover {
	background: var(--ts-accent-hover) !important;
	border-color: var(--ts-accent-hover) !important;
	color: #FFFFFF !important;
	text-decoration: none !important;
}

.tsm-btn:disabled,
.tsm-btn[aria-disabled="true"] {
	background: #B9BECC !important;
	border-color: #B9BECC !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
}

.tsm-btn--ghost {
	color: var(--ts-accent) !important;
	background: transparent !important;
	border-color: var(--ts-accent) !important;
	box-shadow: none !important;
}

.tsm-btn--ghost:hover {
	color: #FFFFFF !important;
	background: var(--ts-accent) !important;
}

.tsm-btn--quiet {
	color: var(--ts-ink) !important;
	background: transparent !important;
	border-color: var(--ts-line) !important;
	box-shadow: none !important;
}

.tsm-btn--quiet:hover {
	color: var(--ts-ink) !important;
	background: var(--ts-bg) !important;
	border-color: #C9CEDC !important;
}

.tsm-note {
	font-family: var(--ts-font-body) !important;
	font-size: 13px !important;
	line-height: 1.55 !important;
	color: var(--ts-ink-3) !important;
	margin: 14px 0 0 !important;
	padding: 0 !important;
	max-width: 56ch !important;
}

/* Beküldött adatlapon a lemondó linkre érkezőnek szóló magyarázat. Nem hiba,
   de ELTÉR a várakozásától (lemondani jött), ezért el kell különülnie a
   normál jegyzetektől - különben beleolvad a köszönő szövegbe.
   Minden szabály !important és .tsm scope alatt: az Extra téma a `p`-t is
   felülírja (a projekt 6. szabálya). */
/* 🔴 A SZELEKTOR EREJE SZÁMÍT, NEM CSAK AZ !important (2026-08-16, élesben mérve).
   Első változatban `.tsm-note--kiemelt` állt itt. A saját `.tsm-box-body p`
   szabályunk (feljebb) EGGYEL erősebb (osztály + elem), ezért a padding, a
   font-size és a margin onnan jött - a böngészőben mérve `padding: 0px`. A
   háttér és a keret látszott, a térköz nem: a doboz szövege a keretre tapadt.
   A 6. szabály tehát nem elég úgy, hogy „mindenhova !important" - a
   specifikusságnak is el kell érnie a felülírandó szabályét. */
.tsm-box-body p.tsm-note--kiemelt {
	font-size: 15px !important;
	color: var(--ts-ink) !important;
	background: #F4F2FF !important;
	border-left: 3px solid var(--ts-accent) !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 12px 14px !important;
	margin: 0 0 18px !important;
	max-width: none !important;
}

/* 🔴 A GOMB ÉS AZ ALATTA LÉVŐ SZÖVEG ÖSSZEOLVADT.
   A 14px-es alaptérköz egy inline-block gomb alatt vizuálisan még kevesebbnek
   látszik, mert a gomb saját sormagassága is beleszámít. Élesben mérve
   (2026-08-13): a „Módosítom az adataimat" gomb és a „A határidőig bármikor
   visszatérhetsz erre a linkre." egy blokknak tűnt. */
.tsm-actions + .tsm-note {
	margin-top: 26px !important;
}

@media (max-width: 640px) {
	.tsm-actions + .tsm-note {
		margin-top: 20px !important;
	}
}

/* --------------------------------------------------------------------------
   "Nem tudok részt venni"
   -------------------------------------------------------------------------- */
.tsm-decline {
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
	color: var(--ts-ink-3) !important;
	text-align: center !important;
	margin: 32px 0 0 !important;
	padding: 22px 0 0 !important;
	border-top: 1px solid var(--ts-line) !important;
}

/* --------------------------------------------------------------------------
   Üzenetdoboz + összegzés
   -------------------------------------------------------------------------- */
.tsm-box {
	background: var(--ts-surface) !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius) !important;
	padding: 32px !important;
	max-width: 760px !important;
	margin: 0 auto !important;
}

.tsm-box-title {
	font-family: var(--ts-font-display) !important;
	font-size: 24px !important;
	line-height: 1.25 !important;
	font-weight: 600 !important;
	color: var(--ts-ink) !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.tsm-box-body p {
	font-family: var(--ts-font-body) !important;
	font-size: 16px !important;
	line-height: 1.62 !important;
	color: var(--ts-ink-2) !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

.tsm-box-body p:last-child {
	margin-bottom: 0 !important;
}

.tsm-box-body strong {
	color: var(--ts-ink) !important;
	font-weight: 600 !important;
}

.tsm-muted {
	color: var(--ts-ink-3) !important;
	font-size: 14px !important;
}

.tsm-summary {
	display: grid !important;
	/* 🔴 A CÍMKE-OSZLOP NEM NŐHET KORLÁTLANUL (2026-08-14, Gábor jelezte).
	   Eddig `minmax(140px, auto)` volt: az `auto` a LEGHOSSZABB címkéhez
	   igazodik („I am uploading a new profile photo"), és a maradékot kapta az
	   ÉRTÉK - ezért tört négy sorba a „CEO for Central, South, and East
	   Europe". Gábor döntése: FELE-FELE. Mindkét oszlop ugyanannyit kap, a
	   címke és az érték is ugyanúgy tördelődik - nincs, ami a másik rovására
	   nőjön. */
	grid-template-columns: 1fr 1fr !important;
	gap: 10px 20px !important;
	margin: 22px 0 0 !important;
	padding: 20px 0 0 !important;
	border-top: 1px solid var(--ts-line) !important;
}

.tsm-summary dt {
	font-family: var(--ts-font-body) !important;
	font-size: 13px !important;
	line-height: 1.5 !important;
	font-weight: 600 !important;
	color: var(--ts-ink-3) !important;
	margin: 0 !important;
	padding: 0 !important;
}

.tsm-summary dd {
	font-family: var(--ts-font-body) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
	color: var(--ts-ink) !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* --------------------------------------------------------------------------
   A BEKÜLDÖTT VENDÉGLISTA — részletes táblázat az összegzés alatt (3. fázis)
   --------------------------------------------------------------------------

   🔴 MIÉRT VAN SAJÁT, GÖRGETHETŐ KERETE.
   Négy oszlop (vezetéknév, keresztnév, e-mail, belépő) keskeny telefonon nem
   fér ki. Görgethető keret nélkül a LAP görgetne vízszintesen — a projekt
   elrendezés-ellenőrzője pontosan ezt méri hibaként (`scrollWidth >
   clientWidth` a törzsön). Így a túlfolyás a táblázaton belül marad.

   A szelektorok elem-nevet IS tartalmaznak (`table.tsm-summary-tabla`), mert az
   Extra téma a natív `table`, `th`, `td` elemekre ad saját szabályt, és
   2026-08-16-ban megfizettük, hogy az `!important` önmagában kevés: a
   SPECIFIKUSSÁGNAK is el kell érnie a felülírandóét. */

/* 🔴 A ROVATCÍM NEM NAGYBETŰS ÉS NEM SZÜRKE (Gábor, 2026-08-17:
   „optikailag ezek összefolynak"). Az első változatban a „Vendégek" cím
   BETŰRE úgy nézett ki, mint alatta a „VEZETÉKNÉV" fejléc-cella - kicsi,
   nagybetűs, ritkított, halvány -, és a kettő egyetlen kétsoros feliratnak
   látszott. A cím innentől a szöveg-hierarchia része (sötét, normál betűs,
   elválasztó vonallal), a táblázat fejléce pedig megtartja a szürke sávot. */
.tsm-summary-cim {
	font-family: var(--ts-font-display) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--ts-ink) !important;
	margin: 28px 0 12px !important;
	padding: 18px 0 0 !important;
	border-top: 1px solid var(--ts-line) !important;
}

.tsm-summary-tabla-keret {
	overflow-x: auto !important;
	-webkit-overflow-scrolling: touch !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius-s, 8px) !important;
	background: var(--ts-surface, #fff) !important;
}

.tsm table.tsm-summary-tabla {
	width: 100% !important;
	border-collapse: collapse !important;
	margin: 0 !important;
	font-family: var(--ts-font-body) !important;
}

.tsm table.tsm-summary-tabla th,
.tsm table.tsm-summary-tabla td {
	text-align: left !important;
	padding: 10px 14px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--ts-line) !important;
	vertical-align: top !important;
	white-space: normal !important;
	word-break: break-word !important;
}

.tsm table.tsm-summary-tabla th {
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: var(--ts-ink-3) !important;
	background: var(--ts-bg, #F4F5F8) !important;
}

.tsm table.tsm-summary-tabla td {
	font-size: 15px !important;
	line-height: 1.45 !important;
	color: var(--ts-ink) !important;
}

.tsm table.tsm-summary-tabla tr:last-child td {
	border-bottom: 0 !important;
}

/* A sorszám-oszlop keskeny és halvány: tájékozódási pont, nem adat. */
.tsm table.tsm-summary-tabla th.tsm-summary-sorszam,
.tsm table.tsm-summary-tabla td.tsm-summary-sorszam {
	width: 1% !important;
	white-space: nowrap !important;
	padding-right: 4px !important;
	color: var(--ts-ink-3) !important;
	font-variant-numeric: tabular-nums !important;
}

/* Csak képernyőolvasónak: a sorszám-oszlop fejléce. Nem `display:none`, mert
   azt a képernyőolvasó sem olvassa fel. */
.tsm .tsm-vak {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   Mobil
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
	.tsm-hero {
		padding: 40px 16px 34px !important;
	}
	.tsm-hero-title {
		font-size: 30px !important;
	}
	.tsm-hero-motto {
		font-size: 16px !important;
	}
	/* Mobilon arányosan kisebb, de a 35px-es alsó határ fölött marad. */
	.tsm-body {
		padding: 40px 16px 48px !important;
	}
	.tsm-block,
	.tsm-box {
		padding: 22px 18px !important;
	}
	.tsm-fields {
		grid-template-columns: 1fr !important;
	}
	.tsm-field--half {
		grid-column: 1 / -1 !important;
	}
	.tsm-btn {
		display: block !important;
		width: 100% !important;
	}
	.tsm-actions--row .tsm-btn {
		width: 100% !important;
	}
	.tsm-summary {
		grid-template-columns: 1fr !important;
		gap: 3px 0 !important;
	}
	.tsm-summary dd {
		margin: 0 0 12px !important;
	}
}

/* --------------------------------------------------------------------------
   Piszkozat - visszatérő sáv és mentés-jelző
   -------------------------------------------------------------------------- */

/* A visszatérőnek szóló sáv. Nem hiba és nem siker - tájékoztatás, ezért
   a lila akcentus halvány változata, nem zöld/piros. */
.tsm-resume {
	font-family: var(--ts-font-body) !important;
	font-size: 15px !important;
	line-height: 1.6 !important;
	color: var(--ts-ink) !important;
	background: var(--ts-accent-soft) !important;
	border: 1px solid #DCD2FF !important;
	border-radius: var(--ts-radius-s) !important;
	padding: 13px 16px !important;
	margin: 0 0 22px !important;
}

.tsm-resume strong {
	font-weight: 700 !important;
	color: var(--ts-ink) !important;
}

.tsm-save {
	font-family: var(--ts-font-body) !important;
	font-size: 13.5px !important;
	line-height: 1.55 !important;
	color: var(--ts-ink-3) !important;
	margin: 10px 0 0 !important;
	padding: 0 !important;
}

.tsm-save--kozben {
	color: var(--ts-ink-2) !important;
}

.tsm-save--kesz {
	color: var(--ts-accent) !important;
}

/* A sikertelen piszkozat-mentés NEM piros: a beküldés ettől még működik, és a
   helyi másolat is megvan. A piros itt fölöslegesen megijesztené a kitöltőt. */
.tsm-save--gond {
	color: var(--ts-ink-2) !important;
	font-weight: 500 !important;
}

/* --------------------------------------------------------------------------
   Fotó-feltöltés

   A testvérprojekt élesben bevált stílusából, a `.tsm` névtérre igazítva.
   A hibás állapotot itt a mező-keret `.tsm-field--invalid` osztálya jelöli
   (ugyanaz, mint a többi mezőnél) - nem kell külön `is-error`.
   -------------------------------------------------------------------------- */

.tsm-photo {
	margin: 0 !important;
}

/* 🔴 KRITIKUS: a guard-réteg `display:flex !important`-je FELÜLÍRNÁ a [hidden]
   attribútumot (a böngésző alap display:none-ja gyengébb szabály). Enélkül az
   üres állapotban is látszana az előnézet és a gombsor. */
.tsm-photo [hidden] {
	display: none !important;
}

.tsm-photo-drop {
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 14px !important;
	min-height: 132px !important;
	padding: 22px !important;
	text-align: center !important;
	cursor: pointer !important;
	background: var(--ts-surface) !important;
	border: 2px dashed var(--ts-line) !important;
	border-radius: var(--ts-radius) !important;
	transition: border-color .15s ease, background .15s ease !important;
}

.tsm-photo-drop:hover,
.tsm-photo-drop:focus-visible {
	border-color: var(--ts-accent) !important;
	background: #FBFAFF !important;
	outline: none !important;
}

.tsm-photo-drop.is-over {
	border-color: var(--ts-accent) !important;
	background: #F4F1FF !important;
}

.tsm-photo-drop.is-busy {
	cursor: progress !important;
}

.tsm-field--invalid .tsm-photo-drop {
	border-color: var(--ts-danger) !important;
	box-shadow: 0 0 0 3px var(--ts-danger-soft) !important;
}

.tsm-photo-empty {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 5px !important;
}

.tsm-photo-empty strong {
	font-family: var(--ts-font-body) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: var(--ts-ink) !important;
}

.tsm-photo-sub {
	font-size: 13.5px !important;
	line-height: 1.5 !important;
	color: var(--ts-ink-3) !important;
}

.tsm-photo-prev {
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
}

/* A kártyán négyzetesre vágva jelenik meg - az előnézet is így mutassa. */
.tsm-photo-prev img {
	display: block !important;
	width: 120px !important;
	height: 120px !important;
	object-fit: cover !important;
	border-radius: var(--ts-radius-s) !important;
	border: 1px solid var(--ts-line) !important;
}

.tsm-photo-meta {
	font-size: 13.5px !important;
	color: var(--ts-ink-3) !important;
	text-align: left !important;
}

.tsm-photo-bar {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	height: 4px !important;
	background: var(--ts-line) !important;
	border-radius: 0 0 var(--ts-radius) var(--ts-radius) !important;
	overflow: hidden !important;
}

.tsm-photo-bar > span {
	display: block !important;
	height: 100% !important;
	width: 0 !important;
	background: var(--ts-accent) !important;
	transition: width .18s ease !important;
}

.tsm-photo-actions {
	display: flex !important;
	gap: 10px !important;
	margin-top: 10px !important;
}

/* A téma a natív <button>-t átszínezi és nagybetűsíti - mindent lefedünk. */
.tsm-photo-actions button {
	font-family: var(--ts-font-body) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--ts-ink-2) !important;
	background: var(--ts-surface) !important;
	border: 1px solid var(--ts-line) !important;
	border-radius: var(--ts-radius-pill) !important;
	padding: 8px 14px !important;
	cursor: pointer !important;
}

.tsm-photo-actions button:hover {
	border-color: var(--ts-accent) !important;
	color: var(--ts-accent) !important;
}

.tsm-photo-remove:hover {
	border-color: var(--ts-danger) !important;
	color: var(--ts-danger) !important;
}

@media (max-width: 640px) {
	.tsm-photo-drop {
		min-height: 0 !important;
		padding: 18px !important;
	}
	.tsm-photo-prev {
		flex-direction: column !important;
		gap: 10px !important;
	}
	.tsm-photo-meta {
		text-align: center !important;
	}
	/* Ujjbeggyel is elérhető méret */
	.tsm-photo-actions button {
		flex: 1 1 0 !important;
		min-height: 44px !important;
	}
}

/* Csökkentett mozgás igénye esetén ne animáljunk */
@media (prefers-reduced-motion: reduce) {
	.tsm * {
		transition: none !important;
	}
}

/* ==========================================================================
   ISMÉTLŐDŐ MEZŐCSOPORT — TÁBLÁZATOS ALAK
   (2026-08-17, Gábor visszajelzése után ÁTDOLGOZVA)

   🔴 MI VOLT A BAJ AZ ELSŐ VÁLTOZATTAL
   A sorszám egy 40 px-es rács-oszlopba került, a felirata („1. vendég") viszont
   60 px széles és `nowrap` volt: KIFOLYT az első mező alá. A méréseim ezt nem
   fogták meg, mert DOBOZ-MÉRETEKET néztem (`getBoundingClientRect`), nem
   szövegtúlfolyást (`scrollWidth > clientWidth`). Ráadásul minden sor kiírta
   mind a négy mezőnevet - negyven vendégnél az önmagában is zsúfolt.

   AZ ÚJ ALAK: egy FEJLÉC-sor a rovatnevekkel, alatta tömör, számozott sorok.
   A fejléc és a sorok UGYANAZT a rács-változót használják - két külön
   definíció biztosan elcsúszna egymástól.

   🔴 MINDEN SZABÁLY `!important`, `.tsm` scope alatt (a Divi/Extra téma
   felülírja a natív elemeket), ÉS a specifikusság is számít: ahol a saját
   `.tsm-fields p` szabályunk erősebb lenne, ott osztály + elem alakot írunk.
   ========================================================================== */

.tsm .tsm-repeat {
	/* A közös rács: sorszám · vezetéknév · keresztnév · e-mail · belépő · törlés.
	   Az `fr` és a `minmax(0,…)` együtt kell: az `auto` a leghosszabb TARTALOMHOZ
	   igazodna (élesben ezen csúszott el egyszer az összegzés-tábla), a
	   `minmax(0,…)` pedig megakadályozza, hogy egy hosszú e-mail-cím szétfeszítse. */
	--tsm-sor-racs: 2.75rem minmax(0, 1.05fr) minmax(0, 1.05fr) minmax(0, 1.9fr) minmax(0, 1.55fr) 2.25rem;
	display: block !important;
	margin: 0 0 var(--ts-space-4, 24px) 0 !important;
}

/* --- a fejléc-sor --- */
.tsm .tsm-repeat-fejlec {
	display: grid !important;
	grid-template-columns: var(--tsm-sor-racs) !important;
	align-items: end !important;
	gap: 10px !important;
	padding: 0 12px 6px 12px !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
}
.tsm span.tsm-repeat-fejlec-cella {
	display: block !important;
	min-width: 0 !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	line-height: 1.3 !important;
}

/* --- egy sor --- */
.tsm .tsm-repeat-sorok { display: block !important; margin: 0 !important; padding: 0 !important; }

.tsm .tsm-repeat-sor {
	display: grid !important;
	grid-template-columns: var(--tsm-sor-racs) !important;
	align-items: start !important;
	gap: 10px !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
	background: transparent !important;
}
.tsm .tsm-repeat-sor:hover { background: var(--ts-bg, #F4F5F8) !important; }

/* 🔴 A SORSZÁM SAJÁT OSZLOPA. `min-width:0` + `overflow-wrap`: ha a szöveg
   valaha hosszabb lenne az oszlopnál, TÖRJÖN, ne folyjon a szomszédra. Ez az a
   védelem, ami az első változatból hiányzott. */
.tsm span.tsm-repeat-szam {
	display: block !important;
	min-width: 0 !important;
	padding-top: 11px !important;
	overflow-wrap: anywhere !important;
	white-space: normal !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	font-variant-numeric: tabular-nums !important;
	text-align: right !important;
}

.tsm .tsm-repeat-mezo { display: block !important; min-width: 0 !important; }

.tsm .tsm-repeat-mezo input.tsm-input,
.tsm .tsm-repeat-mezo select.tsm-input {
	width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 9px 10px !important;
	font-size: 15px !important;
	line-height: 1.35 !important;
}

.tsm .tsm-repeat-mezo p.tsm-error {
	margin: 4px 0 0 0 !important;
	font-size: 12px !important;
	line-height: 1.4 !important;
}

/* A sor-címkék asztali nézetben REJTETTEK (a fejléc mondja meg a rovatot), de
   a képernyőolvasó számára megmaradnak. Mobilon újra láthatóvá válnak. */
.tsm label.tsm-label--sor {
	position: absolute !important;
	width: 1px !important; height: 1px !important;
	margin: -1px !important; padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* --- törlés --- */
.tsm button.tsm-repeat-torol {
	align-self: start !important;
	width: 2.25rem !important;
	height: 2.25rem !important;
	margin-top: 1px !important;
	padding: 0 !important;
	border: 1px solid transparent !important;
	border-radius: var(--ts-radius-s, 8px) !important;
	background: transparent !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	cursor: pointer !important;
	text-decoration: none !important;   /* a téma aláhúzná */
}
.tsm button.tsm-repeat-torol:hover {
	border-color: #B0004E !important;
	color: #B0004E !important;
	background: #fff !important;
}

/* --- „+ új vendég" és az üres állapot --- */
.tsm button.tsm-repeat-add {
	display: inline-block !important;
	margin: 12px 0 0 0 !important;
	text-decoration: none !important;
}
.tsm button.tsm-repeat-add[disabled] { opacity: .5 !important; cursor: not-allowed !important; }

.tsm p.tsm-repeat-ures {
	margin: 0 !important;
	padding: 20px 16px !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 14px !important;
	text-align: center !important;
}

/* ==========================================================================
   MOBIL: a táblázat kártyákká esik szét

   780 px alatt hat oszlop nem fér ki olvashatóan. A fejléc elrejtőzik, és a
   sor-címkék - amiket asztali nézetben csak a képernyőolvasó lát - újra
   megjelennek. Így mobilon sincs olyan mező, aminek ne lenne neve.
   ========================================================================== */
@media (max-width: 780px) {
	.tsm .tsm-repeat-fejlec { display: none !important; }

	.tsm .tsm-repeat-sor {
		grid-template-columns: 1fr 2.25rem !important;
		gap: 8px !important;
		margin: 0 0 10px 0 !important;
		padding: 12px !important;
		border: 1px solid var(--ts-line, #E8EAF0) !important;
		border-radius: var(--ts-radius-s, 8px) !important;
	}
	.tsm span.tsm-repeat-szam {
		grid-column: 1 !important;
		padding-top: 0 !important;
		text-align: left !important;
	}
	.tsm button.tsm-repeat-torol { grid-column: 2 !important; grid-row: 1 !important; }
	.tsm .tsm-repeat-mezo { grid-column: 1 / -1 !important; }

	.tsm label.tsm-label--sor {
		position: static !important;
		width: auto !important; height: auto !important;
		margin: 0 0 4px 0 !important;
		overflow: visible !important;
		clip: auto !important;
		display: block !important;
		color: var(--ts-ink-2, #5C616B) !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		text-transform: none !important;
	}
}

/* 🔴 AZ ISMÉTLŐDŐ BLOKK A TELJES SZÉLESSÉGET KAPJA.
   A `.tsm-fields` kétoszlopos rács; enélkül a vendéglista az egyik oszlopba
   szorulna (371 px a 762-ből). */
.tsm .tsm-field--repeat { grid-column: 1 / -1 !important; }

/* ==========================================================================
   AZ ISMÉTLŐDŐ BLOKK TÁBLÁZATÁNAK FINOMÍTÁSA (2026-08-17)
   „A design tovább is gyenge." - a táblázat kapott keretet, világosabb
   rovat-fejlécet és nagyobb belső teret.
   ========================================================================== */

.tsm .tsm-repeat-fejlec {
	border-radius: var(--ts-radius-s, 8px) var(--ts-radius-s, 8px) 0 0 !important;
	padding: 10px 14px !important;
	background: var(--ts-bg, #F4F5F8) !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
}
.tsm span.tsm-repeat-fejlec-cella {
	color: var(--ts-ink-2, #5C616B) !important;
	font-size: 11px !important;
	letter-spacing: .06em !important;
}

.tsm .tsm-repeat-sorok {
	border-left: 1px solid var(--ts-line, #E8EAF0) !important;
	border-right: 1px solid var(--ts-line, #E8EAF0) !important;
}
.tsm .tsm-repeat-sor { padding: 12px 14px !important; }
.tsm .tsm-repeat-sor:last-child { border-bottom: 0 !important; }

.tsm .tsm-repeat-fejlec + .tsm-repeat-sorok {
	border-top: 0 !important;
}
.tsm .tsm-repeat-sorok,
.tsm p.tsm-repeat-ures {
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
	border-radius: 0 0 var(--ts-radius-s, 8px) var(--ts-radius-s, 8px) !important;
	background: var(--ts-surface, #FFFFFF) !important;
}
.tsm p.tsm-repeat-ures {
	border-left: 1px solid var(--ts-line, #E8EAF0) !important;
	border-right: 1px solid var(--ts-line, #E8EAF0) !important;
}

@media (max-width: 780px) {
	.tsm .tsm-repeat-sorok {
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
	}
}

/* --- A gombsor: beküldés + „ment, de nem küld" (2026-08-17) ---------------
   A két gomb VIZUÁLISAN is elkülönül: a beküldés tömör lila (visszafordíthatatlan
   lépés), a mentés körvonalas (bármikor ismételhető). Ha egyformák lennének, a
   kapcsolattartó véletlenül beküldhetné a fél listát. */
.tsm .tsm-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 12px !important;
}

.tsm button.tsm-btn--masodlagos {
	background: transparent !important;
	color: var(--ts-accent, #5227FF) !important;
	border: 1.5px solid var(--ts-accent, #5227FF) !important;
	text-decoration: none !important;   /* a téma aláhúzná */
}
.tsm button.tsm-btn--masodlagos:hover {
	background: rgba(82, 39, 255, .08) !important;
}
.tsm button.tsm-btn--masodlagos[disabled] {
	opacity: .55 !important;
	cursor: progress !important;
}

/* A mentés-jelző a gombok UTÁN, saját sorban: így nem szorítja össze őket. */
.tsm p.tsm-save {
	flex-basis: 100% !important;
	margin: 4px 0 0 0 !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
}

/* ==========================================================================
   KÁRTYÁK — egy jegy-nap, egy döntés (2026-08-22, az 1. fázis)

   🔴 MIÉRT KÁRTYA ÉS NEM TÁBLÁZAT
   A forrás-plugin táblázatos `repeat`-je sok, egyforma, RÖVID sorra való.
   Itt minden soron egy döntés születik, aminek feltételes almezői vannak -
   táblázatban ez telefonon olvashatatlan lenne, és a rejtett mezők
   megjelenése szétrántaná a rácsot.

   ⚠️ 6. SZABÁLY: minden szabály `.tsm` scope alatt, `!important`-tal. A
   Divi/Extra téma felülírja a natív elemeket (`p`, `label`, `fieldset`,
   `input`), és az `!important` ÖNMAGÁBAN KEVÉS - a specifikusság is számít.
   Ezért áll a legtöbb szabályon osztály + elem (`.tsm p.tsm-kartya-jelenleg`),
   nem csak osztály: a saját `.tsm-kartya-mezok p` szabályunk különben
   erősebb lenne, mint a mezőre szánt beállítás.
   ========================================================================== */

.tsm .tsm-kartyak {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	margin: 0 !important;
	padding: 0 !important;
}

.tsm p.tsm-kartyak-ures {
	margin: 0 !important;
	padding: 16px !important;
	border: 1px dashed var(--ts-line, #E8EAF0) !important;
	border-radius: var(--ts-radius-s, 8px) !important;
	color: var(--ts-ink-2, #5C616B) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
}

.tsm .tsm-kartya {
	margin: 0 !important;
	padding: 18px 18px 16px !important;
	border: 1px solid var(--ts-line, #E8EAF0) !important;
	border-radius: var(--ts-radius, 12px) !important;
	background: var(--ts-surface, #FFFFFF) !important;
}

/* 🔴 A NÉVTELEN JEGY LÁTHATÓAN MÁS ÁLLAPOT („C" eset).
   Nem hiba és nem figyelmeztetés - egy TEENDŐ: ehhez a kifizetett jegyhez még
   nem tartozik név. A halvány sárga sáv ezt mondja, riasztás nélkül. */
.tsm .tsm-kartya[data-ures-jegy] {
	border-color: #E8D9A8 !important;
	background: #FFFDF5 !important;
}

.tsm .tsm-kartya-fej {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: baseline !important;
	gap: 4px 10px !important;
	margin: 0 0 6px 0 !important;
}

.tsm span.tsm-kartya-szam {
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
}

.tsm span.tsm-kartya-nap {
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
}

.tsm p.tsm-kartya-jelenleg {
	margin: 0 0 14px 0 !important;
	padding: 0 !important;
	color: var(--ts-ink-2, #5C616B) !important;
	font-size: 15px !important;
	line-height: 1.5 !important;
}
.tsm span.tsm-kartya-jelenleg-cimke {
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 13px !important;
	text-transform: uppercase !important;
	letter-spacing: .04em !important;
}
.tsm span.tsm-kartya-jelenleg-ertek {
	color: var(--ts-ink, #0A0B0E) !important;
	font-weight: 600 !important;
}
/* A „még nincs név" NEM hibaüzenet: dőlt, halvány, nem piros. */
.tsm span.tsm-kartya-jelenleg-ures {
	color: var(--ts-ink-2, #5C616B) !important;
	font-style: italic !important;
}

.tsm .tsm-kartya-mezok {
	display: flex !important;
	flex-direction: column !important;
	gap: 12px !important;
}

/* A döntés rádiócsoportja: a téma keretet és nagybetűs feliratot tenne a
   fieldset/legend párosra - mindkettőt le kell venni. */
.tsm fieldset.tsm-radiogroup--kartya {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
}
.tsm fieldset.tsm-radiogroup--kartya legend.tsm-label {
	display: block !important;
	float: none !important;
	width: auto !important;
	margin: 0 0 8px 0 !important;
	padding: 0 !important;
	border: 0 !important;
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

/* 🔴 A FELTÉTELES MEZŐK BEHÚZVA. Ezek a döntés KÖVETKEZMÉNYEI, nem önálló
   kérdések - a behúzás és a bal oldali vonal ezt a viszonyt mutatja meg. */
.tsm .tsm-kartya-mezo[data-fuggo] {
	margin-left: 2px !important;
	padding-left: 14px !important;
	border-left: 2px solid var(--ts-accent, #5227FF) !important;
}

/* A böngésző natív `hidden` attribútuma önmagában kevés: a téma
   `display: block`-ot tehet az elemre, ami felülírja. */
.tsm .tsm-kartya-mezo[hidden] { display: none !important; }

.tsm .tsm-kartya-mezo label.tsm-label {
	display: block !important;
	margin: 0 0 4px 0 !important;
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.tsm .tsm-kartya-mezo p.tsm-hint {
	margin: 4px 0 0 0 !important;
	color: var(--ts-ink-3, #8A8F99) !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
}

@media (max-width: 600px) {
	.tsm .tsm-kartya { padding: 14px 14px 12px !important; }
	.tsm span.tsm-kartya-nap { font-size: 16px !important; }
}

/* ==========================================================================
   ÖNKISZOLGÁLÓ LINK-KÉRÉS (3/b fázis)

   A MEGHÍVÓ NÉLKÜLI képernyőn él. Ott eddig egy udvarias elutasítás állt;
   most a résztvevő itt tud saját linket kérni.
   ========================================================================== */

.tsm .tsm-linkkeres {
	margin: 20px 0 0 0 !important;
	padding: 22px 20px !important;
	border: 1px solid var(--ts-line, #E8EAF0) !important;
	border-radius: var(--ts-radius, 12px) !important;
	background: var(--ts-surface, #FFFFFF) !important;
}

.tsm h2.tsm-linkkeres-cim {
	margin: 0 0 6px 0 !important;
	padding: 0 !important;
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}

.tsm p.tsm-linkkeres-sub {
	margin: 0 0 16px 0 !important;
	color: var(--ts-ink-2, #5C616B) !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
}

.tsm .tsm-linkkeres-form {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: flex-end !important;
	gap: 10px !important;
	margin: 0 !important;
}
.tsm .tsm-linkkeres-form label.tsm-label {
	flex-basis: 100% !important;
	margin: 0 0 4px 0 !important;
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.tsm .tsm-linkkeres-form input.tsm-input {
	flex: 1 1 240px !important;
	margin: 0 !important;
}
.tsm button.tsm-linkkeres-gomb {
	flex: 0 0 auto !important;
	margin: 0 !important;
}

/* 🔴 A VISSZAJELZÉS SEMLEGES: nem zöld és nem piros.
   A szerver ugyanazt mondja a létező és a nem létező címre - ha a böngésző
   sikeresnek vagy sikertelennek SZÍNEZNÉ, azzal visszacsempésznénk a
   cím-ellenőrzőt, amit a szerver oldalán épp megszüntettünk. */
.tsm p.tsm-linkkeres-uzenet {
	flex-basis: 100% !important;
	margin: 12px 0 0 0 !important;
	padding: 12px 14px !important;
	border-radius: var(--ts-radius-s, 8px) !important;
	background: #F4F5F8 !important;
	color: var(--ts-ink, #0A0B0E) !important;
	font-size: 15px !important;
	line-height: 1.55 !important;
}

/* ==========================================================================
   AZ ÖSSZEGZŐ KÁRTYÁK (2026-08-23, v0.9.0)
   ==========================================================================

   🔴 MIÉRT VÁLTOTTA LE A TÁBLÁZATOT

   A `tsm-summary-tabla` a forrás-pluginból jött, ahol NÉGY oszlopa volt. Itt
   KILENC lett, és élesben mérve olvashatatlan: a fejlécek függőlegesen törtek
   („MEL YIK NAP"), a dátum „202 6.10 .14."-re esett szét, és a kilencből négy
   oszlop üresen állt. Gábor a saját beküldésén nézte meg, Chrome-ból mentett
   PDF-en.

   A táblázat szabályai SZÁNDÉKOSAN maradnak a fájlban: a `tsm-summary-tabla`
   osztályt más `repeat` mező még használhatja, és a levél HTML-je is táblázat.

   ⚠️ 6. SZABÁLY: minden szabály `.tsm` scope alatt, `!important`-tal, és a
   szelektor ereje érje el a felülírandóét. A Divi/Extra téma a natív
   elemeket (`article`, `dl`, `dt`, `dd`, `div`) felülírja - a `dl`/`dd`
   alapértelmezett `margin`-ja külön is kilőné a rácsot.
   ========================================================================== */

.tsm .tsm-kartyak {
	display: flex !important;
	flex-direction: column !important;
	gap: 14px !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
}

.tsm article.tsm-kt {
	background: var(--ts-surface, #FFFFFF) !important;
	border: 1px solid var(--ts-line, #E8EAF0) !important;
	border-radius: var(--ts-radius, 12px) !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

.tsm .tsm-kt-fej {
	display: flex !important;
	align-items: baseline !important;
	flex-wrap: wrap !important;
	gap: 4px 10px !important;
	padding: 12px 16px !important;
	margin: 0 !important;
	background: #FAFBFD !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
}

.tsm .tsm-kt-szam {
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: var(--ts-ink-3, #8A8F99) !important;
}

/* A NAP azonosítja a jegyet, nem a sorszám - ezért ez a hangsúlyos. */
.tsm .tsm-kt-nap {
	font-family: var(--ts-font-display, 'Schibsted Grotesk'), sans-serif !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	color: var(--ts-ink, #0A0B0E) !important;
}

/* A `dl` alapértelmezett margóját a téma is, a böngésző is adja. */
.tsm dl.tsm-kt-torzs {
	margin: 0 !important;
	padding: 4px 16px 12px !important;
}

.tsm .tsm-kt-sor {
	display: grid !important;
	grid-template-columns: minmax(140px, 34%) 1fr !important;
	gap: 8px 16px !important;
	padding: 9px 0 !important;
	margin: 0 !important;
	border-bottom: 1px solid var(--ts-line, #E8EAF0) !important;
}

.tsm .tsm-kt-sor:last-child { border-bottom: 0 !important; }

.tsm dl.tsm-kt-torzs dt.tsm-kt-cimke {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--ts-ink-2, #5C616B) !important;
}

/* 🔴 A `dd` böngésző-alapértelmezése `margin-inline-start: 40px` - enélkül az
   érték-oszlop behúzva állna a rácson belül. */
.tsm dl.tsm-kt-torzs dd.tsm-kt-ertek {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 15px !important;
	color: var(--ts-ink, #0A0B0E) !important;
	overflow-wrap: anywhere !important;
}

/* A DÖNTÉS az egyetlen, amit a kitöltő ellenőrizni akar. */
.tsm dl.tsm-kt-torzs .tsm-kt-sor--dontes dd.tsm-kt-ertek {
	font-weight: 700 !important;
	color: var(--ts-accent, #5227FF) !important;
}

.tsm .tsm-kt-alcim {
	margin: 14px 0 2px !important;
	padding: 0 !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	color: var(--ts-ink-3, #8A8F99) !important;
}

/* Telefonon a címke az érték FÖLÉ kerül: 140px címke-oszlop mellett a
   hosszú e-mail-cím különben ugyanúgy törne, mint a régi táblázatban. */
@media (max-width: 560px) {
	.tsm .tsm-kt-sor {
		grid-template-columns: 1fr !important;
		gap: 2px !important;
		padding: 8px 0 !important;
	}
	.tsm dl.tsm-kt-torzs dt.tsm-kt-cimke {
		font-size: 12px !important;
		color: var(--ts-ink-3, #8A8F99) !important;
	}
}
