/* RFL – Anagrafiche · modulo di accesso */

.rfl-accesso {
	--rfl-acc-fondo: #ffffff;
	--rfl-acc-testo: #1b2430;
	--rfl-acc-muto: #5b6b7c;
	--rfl-acc-linea: #dfe5ea;
	--rfl-acc-accento: #2271b1;
	--rfl-acc-rosso: #b32d2e;
	--rfl-acc-verde: #1a7f52;

	display: flex;
	justify-content: center;
	padding: 24px 16px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--rfl-acc-testo);
}

.rfl-accesso *, .rfl-accesso *::before, .rfl-accesso *::after { box-sizing: border-box; }

.rfl-accesso-box {
	width: 100%;
	max-width: 400px;
	background: var(--rfl-acc-fondo);
	border: 1px solid var(--rfl-acc-linea);
	border-radius: 16px;
	padding: 32px 30px 26px;
	box-shadow: 0 8px 30px rgba(15, 23, 42, .07);
}

.rfl-accesso-titolo {
	margin: 0 0 6px;
	font-size: 23px;
	line-height: 1.2;
	font-weight: 700;
	color: var(--rfl-acc-testo);
}

.rfl-accesso-sub {
	margin: 0 0 22px;
	font-size: 14px;
	color: var(--rfl-acc-muto);
}

/* Avvisi */

.rfl-accesso-avviso {
	border-radius: 9px;
	padding: 11px 14px;
	margin: 0 0 18px;
	font-size: 13.5px;
	font-weight: 500;
	border: 1px solid transparent;
}

.rfl-accesso-errore { background: #fdf2f2; border-color: #f5c6c6; color: var(--rfl-acc-rosso); }
.rfl-accesso-ok { background: #f1faf5; border-color: #b7e4cd; color: var(--rfl-acc-verde); }

/* Campi */

.rfl-accesso-form { margin: 0; }

.rfl-campo { margin: 0 0 16px; position: relative; }

.rfl-campo label {
	display: block;
	margin-bottom: 5px;
	font-size: 13px;
	font-weight: 600;
	color: var(--rfl-acc-testo);
}

.rfl-campo input[type="text"],
.rfl-campo input[type="password"] {
	width: 100%;
	padding: 11px 13px;
	border: 2px solid var(--rfl-acc-linea);
	border-radius: 10px;
	background: #f8fafc;
	font: inherit;
	font-size: 15px;
	color: var(--rfl-acc-testo);
	transition: border-color .15s, background .15s, box-shadow .15s;
}

.rfl-campo input:focus {
	border-color: var(--rfl-acc-accento);
	background: #fff;
	box-shadow: 0 0 0 4px rgba(34, 113, 177, .14);
	outline: 2px solid transparent;
}

.rfl-campo-password input { padding-right: 44px; }

.rfl-mostra-password {
	position: absolute;
	right: 6px;
	bottom: 6px;
	width: 34px;
	height: 34px;
	border: 0;
	background: none;
	cursor: pointer;
	font-size: 15px;
	line-height: 1;
	opacity: .55;
	border-radius: 8px;
}

.rfl-mostra-password:hover { opacity: 1; background: #eef2f6; }
.rfl-mostra-password:focus-visible { outline: 2px solid var(--rfl-acc-accento); outline-offset: 1px; }

.rfl-accesso-riga {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0 0 20px;
	font-size: 13.5px;
}

.rfl-ricorda { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; color: var(--rfl-acc-muto); }
.rfl-ricorda input { margin: 0; }

.rfl-accesso-link { color: var(--rfl-acc-accento); text-decoration: none; }
.rfl-accesso-link:hover { text-decoration: underline; }

.rfl-accesso-invia {
	display: block;
	width: 100%;
	padding: 13px 18px;
	border: 0;
	border-radius: 10px;
	background: var(--rfl-acc-accento);
	color: #fff !important;
	font: inherit;
	font-size: 15.5px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: filter .15s;
}

.rfl-accesso-invia:hover { filter: brightness(1.08); }
.rfl-accesso-invia:focus-visible { outline: 3px solid var(--rfl-acc-accento); outline-offset: 2px; }

.rfl-accesso-pie {
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--rfl-acc-linea);
	text-align: center;
	font-size: 13.5px;
	color: var(--rfl-acc-muto);
}

.rfl-accesso-pie a { color: var(--rfl-acc-accento); }

/* Utente già collegato */

.rfl-accesso-utente { text-align: center; }
.rfl-accesso-avatar { margin-bottom: 12px; }
.rfl-accesso-avatar img { border-radius: 50%; width: 64px; height: 64px; }
.rfl-accesso-utente .rfl-accesso-sub { margin-bottom: 20px; }

@media (prefers-reduced-motion: reduce) {
	.rfl-accesso * { transition: none !important; }
}
