/*
 * Teknet Eventi — modale di iscrizione.
 * Campi e pulsanti usano le classi UIkit: con YOOtheme prendono lo stile del tema.
 * Personalizzazione rapida: .tkev-dialog { --tkev-accent: #1d4ed8; --tkev-radius: 16px; }
 */

.tkev-dialog {
	--tkev-accent: #1e40af;
	--tkev-radius: 14px;
	--tkev-text: #111827;
	--tkev-muted: #6b7280;
	--tkev-danger: #b91c1c;
	--tkev-bg: #fff;
	--tkev-width: 720px;
	--tkev-field-h: 42px; /* Altezza di campi e menu: compatta per stare nello schermo. */

	width: min(var(--tkev-width), calc(100vw - 32px));
	max-height: calc(100vh - 24px);
	max-height: calc(100dvh - 24px);
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: var(--tkev-radius);
	background: var(--tkev-bg);
	color: var(--tkev-text);
	box-shadow: 0 24px 60px rgba(15, 23, 42, 0.25);
	overflow: auto;
}

.tkev-dialog::backdrop {
	background: rgba(15, 23, 42, 0.6);
	backdrop-filter: blur(2px);
}

.tkev-dialog[open] {
	animation: tkev-in 0.2s ease-out;
}

@keyframes tkev-in {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
}

html.tkev-lock {
	overflow: hidden;
}

.tkev-dialog__inner {
	position: relative;
	padding: 32px 36px 28px;
}

.tkev-dialog__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--tkev-muted);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
}

.tkev-dialog__close:hover {
	background: rgba(0, 0, 0, 0.06);
	color: var(--tkev-text);
}

.tkev-dialog__eyebrow {
	margin: 0 0 2px;
	color: var(--tkev-accent);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.tkev-dialog__title {
	margin: 0 40px 6px 0;
	font-size: 1.4rem;
	line-height: 1.2;
}

.tkev-dialog__meta {
	margin: 0 0 24px;
	color: var(--tkev-muted);
	font-size: 0.85rem;
	line-height: 1.4;
}

.tkev-dialog__waitlist,
.tkev-dialog__closed {
	margin: 0 0 20px;
	padding: 12px 16px;
	border-radius: 8px;
	background: #fef3c7;
	color: #78350f;
	font-size: 0.95rem;
}

.tkev-dialog__closed {
	background: #f3f4f6;
	color: var(--tkev-text);
}

/* Form */

.tkev-form__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 16px;
}

/* Campi e menu della stessa altezza (lo stile visivo dei menu viene copiato dai campi via JS). */
.tkev-dialog .uk-input,
.tkev-dialog .uk-select:not([multiple]) {
	height: var(--tkev-field-h);
	font-size: 0.95rem;
}

.tkev-field--wide {
	grid-column: 1 / -1;
}

.tkev-dialog .uk-form-label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.875rem;
	font-weight: 500;
}

/* Fallback se UIkit non è caricato. */
.tkev-dialog input.uk-input,
.tkev-dialog select.uk-select {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

/* Etichette nascoste: il testo è nel segnaposto, i lettori di schermo leggono l'etichetta. */
.tkev-dialog .tkev-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Menu a tendina senza scelta: colore del segnaposto, come i campi di testo. */
.tkev-dialog select.tkev-select.is-empty {
	color: var(--tkev-placeholder, #999);
}

.tkev-dialog select.tkev-select option {
	color: var(--tkev-text, #222);
}

/* Menu con caselle (temi di interesse): aspetto del menu a tendina, elenco sovrapposto. */
/* min-width: 0 sulle celle della griglia: una voce lunga scelta non allarga la colonna (testo con "…"). */
.tkev-form__grid > * {
	min-width: 0;
}

.tkev-multi {
	position: relative;
	min-width: 0;
}

.tkev-multi__list .tkev-check span {
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
}

.tkev-dialog .tkev-multi__toggle {
	display: block;
	box-sizing: border-box;
	width: 100%;
	overflow: hidden;
	text-align: left;
	text-overflow: ellipsis;
	white-space: nowrap;
	cursor: pointer;
}

.tkev-dialog .tkev-multi__toggle.is-empty {
	color: var(--tkev-placeholder, #999);
}

.tkev-multi__list {
	position: absolute;
	z-index: 5;
	top: calc(100% + 4px);
	left: 0;
	right: 0;
	display: grid;
	gap: 10px;
	max-height: 260px;
	overflow-y: auto;
	padding: 12px 14px;
	border: 1px solid #d5dbe3;
	border-radius: 8px;
	background: var(--tkev-bg, #fff);
	box-shadow: 0 10px 30px rgba(17, 24, 39, 0.15);
	font-size: 14px;
	line-height: 1.4;
}

.tkev-multi__list[hidden] {
	display: none;
}

.tkev-multi__list .tkev-check {
	cursor: pointer;
}

/* Campi che compaiono (nome azienda, "Altro"). */
.tkev-reveal {
	margin-top: 8px;
}

.tkev-reveal[hidden] {
	display: none;
}

.tkev-form__subtitle {
	margin: 10px 0 0;
	font-size: 0.9rem;
	font-weight: 600;
}

.tkev-field__error {
	margin: 4px 0 0;
	color: var(--tkev-danger);
	font-size: 0.8rem;
}

.tkev-field__error:empty {
	display: none;
}

.tkev-consents {
	display: grid;
	gap: 10px;
	margin: 24px 0 4px;
	font-size: 14px;
	line-height: 1.45;
}

/* Caselle uniformi (il tema può dare stili diversi alle caselle obbligatorie). */
.tkev-dialog .tkev-check input.uk-checkbox {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	border: 1px solid #b7c0cc;
	border-radius: 3px;
	background-color: #fff;
	box-shadow: none;
	opacity: 1;
}

.tkev-dialog .tkev-check input.uk-checkbox:checked {
	border-color: var(--tkev-accent);
	background-color: var(--tkev-accent);
}

.tkev-dialog .tkev-check input.uk-checkbox:focus-visible {
	outline: 2px solid var(--tkev-accent);
	outline-offset: 2px;
}

.tkev-dialog .tkev-field.is-invalid .tkev-check input.uk-checkbox {
	border-color: var(--tkev-danger);
}

/* Domanda Sì/No: testo sopra, scelte affiancate. */
.tkev-question {
	min-width: 0;
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	font-size: 14px;
	line-height: 1.45;
}

.tkev-question__text {
	margin-bottom: 8px;
	padding: 0;
	font-weight: 500;
}

.tkev-question__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
}

.tkev-dialog .tkev-check input.uk-radio {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	border: 1px solid #b7c0cc;
	border-radius: 50%;
	background-color: #fff;
	box-shadow: none;
	opacity: 1;
}

.tkev-dialog .tkev-check input.uk-radio:checked {
	border-color: var(--tkev-accent);
	background-color: var(--tkev-accent);
}

.tkev-dialog .tkev-check input.uk-radio:focus-visible {
	outline: 2px solid var(--tkev-accent);
	outline-offset: 2px;
}

.tkev-dialog .tkev-field.is-invalid .tkev-check input.uk-radio {
	border-color: var(--tkev-danger);
}

.tkev-field.is-invalid .tkev-question__text {
	color: var(--tkev-danger);
}

.tkev-check {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	cursor: pointer;
}

.tkev-check input {
	flex: none;
	margin-top: 2px;
}

.tkev-check a {
	text-decoration: underline;
}

.tkev-field.is-invalid .tkev-check span {
	color: var(--tkev-danger);
}

.tkev-form__message {
	margin: 8px 0 0;
	font-size: 0.9rem;
}

.tkev-form__message:empty {
	display: none;
}

.tkev-form__message.is-error {
	color: var(--tkev-danger);
}

.tkev-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	align-items: center;
	margin-top: 24px;
}

.tkev-form__required {
	margin: 0;
	color: var(--tkev-muted);
	font-size: 0.8rem;
}

.tkev-submit[disabled] {
	opacity: 0.7;
	cursor: progress;
}

/* Honeypot fuori schermo (non display:none, che alcuni bot riconoscono). */
.tkev-hp {
	position: absolute !important;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Conferma */

.tkev-success {
	padding: 16px 0 4px;
	text-align: center;
}

.tkev-success__icon {
	position: relative;
	width: 64px;
	height: 64px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background: #dcfce7;
}

.tkev-success__icon::after {
	content: "";
	position: absolute;
	top: 18px;
	left: 24px;
	width: 14px;
	height: 24px;
	border: solid #15803d;
	border-width: 0 4px 4px 0;
	transform: rotate(45deg);
}

.tkev-success.is-waitlist .tkev-success__icon {
	background: #fef3c7;
}

.tkev-success.is-waitlist .tkev-success__icon::after {
	border-color: #b45309;
}

.tkev-success__text {
	max-width: 440px;
	margin: 0 auto 24px;
	font-size: 1.05rem;
	outline: none;
}

@media (max-width: 600px) {
	.tkev-dialog__inner {
		padding: 24px 18px 20px;
	}

	.tkev-form__grid {
		grid-template-columns: 1fr;
	}

	.tkev-dialog__title {
		font-size: 1.35rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tkev-dialog[open] {
		animation: none;
	}
}

/* Il nome dell'azienda sta nella griglia accanto a "Ti iscrivi come". */
.tkev-form__grid > .tkev-reveal {
	margin-top: 0;
}
