/* Pagine dell'accesso con account (codice, aeroporto, migrazione, recupero password) e della migrazione utenze. */

.acc-card {
	box-sizing: border-box;
	max-width: 480px;
	margin: 10px 0 20px;
	padding: 18px 20px;
	border: 1px solid #d9e2ec;
	border-radius: 8px;
	background: #fff;
	color: #243b53;
}

/* #main-copy: vince sugli stili globali del layout (h1 a barra blu, paragrafi rientrati e giustificati). */
#main-copy .acc-card h1 {
	margin: 0 0 6px;
	padding: 0;
	border: 0;
	background: none;
	color: #243b53;
	font-size: 18px;
	text-transform: none;
}

#main-copy .acc-card p {
	margin: 6px 0 12px;
	padding: 0;
	line-height: 1.45;
	text-align: left;
}

.acc-passi {
	margin: 0 0 12px;
	color: #627d98;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.acc-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin-bottom: 12px;
}

.acc-field label {
	font-weight: bold;
	font-size: 12px;
	text-transform: uppercase;
	color: #52606d;
}

.acc-field input[type=text],
.acc-field input[type=email],
.acc-field input[type=date],
.acc-field input[type=password] {
	box-sizing: border-box;
	width: 100%;
	min-height: 34px;
	padding: 7px 9px;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	font-size: 14px;
}

.acc-field input:focus {
	border-color: #2f80ed;
	box-shadow: 0 0 0 3px rgba(47, 128, 237, 0.16);
	outline: none;
}

.acc-field input.acc-codice {
	font-family: monospace;
	font-size: 22px;
	letter-spacing: 6px;
	text-align: center;
}

.acc-check {
	display: flex;
	align-items: center;
	gap: 7px;
	margin-bottom: 12px;
}

.acc-azioni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
}

.acc-btn,
.acc-btn:visited {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 34px;
	padding: 0 14px;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	background: #f0f4f8;
	color: #243b53;
	font-size: 13px;
	font-weight: bold;
	text-decoration: none;
	cursor: pointer;
}

.acc-btn:hover {
	background: #e4ebf3;
}

.acc-btn-primario,
.acc-btn-primario:visited {
	border-color: #2f80ed;
	background: #2f80ed;
	color: #fff;
}

.acc-btn-primario:hover {
	background: #1f6fd8;
}

.acc-btn-pericolo,
.acc-btn-pericolo:visited {
	border-color: #e0b4b4;
	color: #a61b1b;
}

/*
 * Colori dei pulsanti in ogni stato, con #main-copy davanti: devono vincere sugli stili globali, cioe' su
 * button:hover di birdcontrol.css (testo #336699, illeggibile sul blu del primario) e su #main-copy a / a:hover di
 * sinorca-screen.css per i pulsanti che sono link.
 */
#main-copy .acc-btn,
#main-copy .acc-btn:visited,
#main-copy .acc-btn:hover {
	color: #243b53;
	text-decoration: none;
}

#main-copy .acc-btn,
#main-copy .acc-btn:visited {
	border-color: #bcccdc;
	background: #f0f4f8;
}

#main-copy .acc-btn:hover {
	border-color: #9fb3c8;
	background: #e4ebf3;
}

#main-copy .acc-btn-primario,
#main-copy .acc-btn-primario:visited,
#main-copy .acc-btn-primario:hover {
	color: #fff;
}

#main-copy .acc-btn-primario,
#main-copy .acc-btn-primario:visited {
	border-color: #2f80ed;
	background: #2f80ed;
}

#main-copy .acc-btn-primario:hover {
	border-color: #1f6fd8;
	background: #1f6fd8;
}

#main-copy .acc-btn-pericolo,
#main-copy .acc-btn-pericolo:visited,
#main-copy .acc-btn-pericolo:hover {
	color: #a61b1b;
}

#main-copy .acc-btn-pericolo,
#main-copy .acc-btn-pericolo:visited {
	border-color: #e0b4b4;
}

#main-copy .acc-btn-pericolo:hover {
	border-color: #d39b9b;
	background: #fdecec;
}

.acc-link {
	color: #2f80ed;
	font-size: 13px;
}

.acc-errore,
.acc-messaggio {
	margin: 0 0 12px;
	padding: 9px 12px;
	border-radius: 6px;
	font-size: 13px;
	line-height: 1.4;
}

.acc-errore {
	border: 1px solid #f5c2c2;
	background: #fdecec;
	color: #8a1c1c;
}

.acc-messaggio {
	border: 1px solid #bfe3c9;
	background: #edf8f0;
	color: #1d5c2e;
}

.acc-nota {
	color: #627d98;
	font-size: 12px;
}

.acc-field select.acc-select {
	box-sizing: border-box;
	width: 100%;
	min-height: 34px;
	padding: 6px 8px;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	background: #fff;
	font-size: 14px;
}

.acc-field select.acc-select:focus {
	border-color: #2f80ed;
	box-shadow: 0 0 0 3px rgba(47, 128, 237, 0.16);
	outline: none;
}

.acc-login {
	max-width: 400px;
}

.acc-login .acc-field input.errorsBorder {
	border-color: #e0b4b4;
}

.acc-login-azioni {
	justify-content: space-between;
	margin-top: 4px;
}

.acc-lingua {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #627d98;
	font-size: 12px;
}

.acc-lingua select {
	padding: 3px 4px;
	border: 1px solid #d9e2ec;
	border-radius: 5px;
	background: #fff;
	color: #52606d;
	font-size: 12px;
}

#main-copy .acc-card .acc-login-nota {
	margin: 14px 0 0;
	padding-top: 10px;
	border-top: 1px solid #e4e7eb;
}

/* Editor degli aeroporti collegati a un account (js/abilitazioni-editor.js) */

.ab-editor {
	position: relative;
}

table.ab-righe {
	width: 100%;
	margin-bottom: 8px;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

table.ab-righe td {
	padding: 5px 8px;
	border-bottom: 1px solid #edf1f5;
	vertical-align: middle;
	font-size: 13px;
}

table.ab-righe tr:last-child td {
	border-bottom: 0;
}

table.ab-righe td.ab-nome {
	width: 45%;
	font-weight: bold;
	color: #243b53;
}

select.ab-profilo {
	width: 100%;
	min-height: 28px;
	padding: 2px 4px;
	border: 1px solid #bcccdc;
	border-radius: 5px;
	background: #fff;
}

#main-copy label.ab-tablet,
label.ab-tablet {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 12px;
	font-weight: normal;
	text-transform: none;
	color: #52606d;
	white-space: nowrap;
}

button.ab-togli {
	width: 26px;
	height: 26px;
	border: 1px solid transparent;
	border-radius: 13px;
	background: none;
	color: #829ab1;
	font-size: 14px;
	cursor: pointer;
}

button.ab-togli:hover {
	border-color: #f5c2c2;
	background: #fdecec;
	color: #a61b1b;
}

.ab-strumenti {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin-bottom: 6px;
	padding: 6px 8px;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
	background: #f8fafc;
	font-size: 12px;
	color: #52606d;
}

.ab-contatore {
	margin-right: 6px;
	font-weight: bold;
	color: #243b53;
}

select.ab-profilo-tutti {
	min-height: 26px;
	padding: 1px 4px;
	border: 1px solid #bcccdc;
	border-radius: 5px;
	background: #fff;
	font-size: 12px;
}

button.ab-comando {
	min-height: 26px;
	padding: 0 8px;
	border: 1px solid #bcccdc;
	border-radius: 5px;
	background: #fff;
	color: #243b53;
	font-size: 12px;
	cursor: pointer;
}

button.ab-comando:hover {
	background: #eef5ff;
}

button.ab-comando-pericolo {
	margin-left: auto;
	border-color: #e0b4b4;
	color: #a61b1b;
}

button.ab-comando-pericolo:hover {
	background: #fdecec;
}

.ab-vuoto {
	margin-bottom: 8px;
	padding: 10px;
	border: 1px dashed #bcccdc;
	border-radius: 6px;
	color: #627d98;
	font-size: 13px;
	text-align: center;
}

.ab-cerca {
	position: relative;
}

.ab-editor .ab-cerca input[type=text] {
	box-sizing: border-box;
	width: 100%;
	min-height: 34px;
	padding: 7px 9px 7px 30px;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23829ab1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") no-repeat 9px center;
	font-size: 14px;
}

.ab-editor .ab-cerca input[type=text]:focus {
	border-color: #2f80ed;
	box-shadow: 0 0 0 3px rgba(47, 128, 237, 0.16);
	outline: none;
}

ul.ab-suggerimenti {
	position: absolute;
	z-index: 20;
	left: 0;
	right: 0;
	max-height: 260px;
	margin: 4px 0 0;
	padding: 4px 0;
	overflow-y: auto;
	list-style: none;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(36, 59, 83, 0.15);
}

ul.ab-suggerimenti li {
	padding: 6px 12px;
	font-size: 13px;
	color: #243b53;
	cursor: pointer;
}

ul.ab-suggerimenti li.ab-attiva {
	background: #eef5ff;
}

ul.ab-suggerimenti li.ab-tutti {
	border-bottom: 1px solid #edf1f5;
	color: #2f80ed;
	font-weight: bold;
}

ul.ab-suggerimenti li.ab-nessuno {
	color: #829ab1;
	cursor: default;
}

/* Pagina "Migrazione utenze" (Supervisore) */

.mig-sezione {
	margin: 0 0 22px;
}

.mig-sezione h2 {
	margin: 0 0 8px;
	color: #243b53;
	font-size: 15px;
}

.mig-riepilogo {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 16px;
}

.mig-numero {
	min-width: 130px;
	padding: 8px 12px;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
	background: #fff;
}

.mig-numero b {
	display: block;
	color: #243b53;
	font-size: 20px;
}

.mig-numero span {
	color: #627d98;
	font-size: 12px;
}

.mig-filtri,
.mig-nuova {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 10px;
	margin: 0 0 10px;
}

.mig-filtri .acc-field,
.mig-nuova .acc-field {
	margin: 0;
}

.mig-filtri select,
.mig-filtri input,
.mig-nuova select,
.mig-nuova input {
	min-height: 30px;
	padding: 4px 6px;
	border: 1px solid #bcccdc;
	border-radius: 5px;
}

table.mig-tabella {
	border-collapse: collapse;
	font-size: 12px;
}

table.mig-tabella th,
table.mig-tabella td {
	padding: 5px 8px;
	border-bottom: 1px solid #e4e7eb;
	text-align: left;
	vertical-align: top;
}

table.mig-tabella th {
	background: #f0f4f8;
	color: #52606d;
}

.mig-stato {
	display: inline-block;
	padding: 1px 7px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: bold;
	white-space: nowrap;
}

.mig-stato-MIGRATA { background: #e3f6e8; color: #1d5c2e; }
.mig-stato-OBBLIGATORIA { background: #fdecec; color: #8a1c1c; }
.mig-stato-RINVIABILE { background: #fff4de; color: #7a4b00; }
.mig-stato-NON_RICHIESTA { background: #f0f4f8; color: #52606d; }

.mig-inline {
	display: inline;
}

.mig-btn-piccolo {
	padding: 1px 6px;
	border: 1px solid #bcccdc;
	border-radius: 4px;
	background: #f8fafc;
	font-size: 11px;
	cursor: pointer;
}

/* Sezione Account della pagina Migrazione utenze: righe che si aprono sulle utenze collegate */

button.mig-espandi {
	width: 22px;
	height: 22px;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 4px;
	background: none;
	color: #52606d;
	font-size: 13px;
	line-height: 1;
	cursor: pointer;
	transition: transform 0.15s;
}

button.mig-espandi:hover {
	border-color: #bcccdc;
	background: #f0f4f8;
}

button.mig-espandi[aria-expanded="true"] {
	transform: rotate(90deg);
}

tr.mig-account-utenze > td {
	padding-top: 0;
	background: #f8fafc;
}

tr.mig-account-utenze table.mig-tabella {
	margin: 4px 0 8px;
	background: #fff;
}

/* Procedura guidata: elenco apribile delle altre utenze della persona */
details.acc-elenco-utenze {
	margin-top: 4px;
}

details.acc-elenco-utenze summary {
	color: #2f80ed;
	font-size: 12px;
	cursor: pointer;
}

details.acc-elenco-utenze[open] {
	max-height: 260px;
	overflow-y: auto;
	padding: 4px 8px;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
}

/* Pagina Migrazione utenze: intestazioni ordinabili */
table.mig-tabella th.mig-ordinabile {
	cursor: pointer;
	user-select: none;
	white-space: nowrap;
}

table.mig-tabella th.mig-ordinabile:hover {
	color: #2f80ed;
}

table.mig-tabella th.mig-ordinabile::after {
	content: " \2195";
	color: #bcccdc;
}

table.mig-tabella th.mig-ordinabile[data-verso="su"]::after {
	content: " \25B2";
	color: #2f80ed;
}

table.mig-tabella th.mig-ordinabile[data-verso="giu"]::after {
	content: " \25BC";
	color: #2f80ed;
}

/* Scheda account: righe e dati modificati e non ancora salvati */
table.mig-tabella tr.da-salvare td {
	background-color: #fff8e1;
}

table.mig-tabella tr.da-salvare td:first-child {
	box-shadow: inset 3px 0 0 #f0b429;
}

form.da-salvare {
	border-left: 3px solid #f0b429;
	padding-left: 10px;
}

button.da-salvare {
	background-color: #f0b429 !important;
	border-color: #de911d !important;
	color: #102a43 !important;
	font-weight: 600;
}

button.da-salvare::after {
	content: " *";
}

/* Avviso di migrazione all'account (al login e nell'anteprima delle campagne) */
.acc-card.acc-avviso {
	max-width: 620px;
}

#main-copy .acc-card h2.acc-avviso-titolo {
	margin: 16px 0 6px;
	padding: 0;
	border: 0;
	background: none;
	color: #243b53;
	font-size: 14px;
	font-weight: 600;
	text-transform: none;
}

.acc-avviso-box {
	margin: 12px 0;
	padding: 10px 12px;
	border-left: 4px solid #2f80ed;
	border-radius: 4px;
	background: #ebf4ff;
	line-height: 1.45;
}

#main-copy ol.acc-avviso-passi,
#main-copy ul.acc-avviso-dopo {
	margin: 0 0 8px;
	padding-left: 22px;
	line-height: 1.5;
	text-align: left;
}

#main-copy ol.acc-avviso-passi li,
#main-copy ul.acc-avviso-dopo li {
	margin: 3px 0;
}

.acc-avviso-nota {
	margin: 14px 0 4px;
	padding: 10px 12px;
	border: 1px solid #d9e2ec;
	border-radius: 6px;
	background: #f8fafc;
	line-height: 1.45;
	white-space: pre-line;
}

.mig-anteprima-etichetta {
	display: inline-block;
	margin-bottom: 8px;
	padding: 2px 8px;
	border-radius: 10px;
	background: #fff3c4;
	color: #8d2b0b;
	font-size: 12px;
}

/* Pagina della campagna di migrazione */
.mig-stato-prova { background: #fff3c4; color: #8d2b0b; }
.mig-stato-attiva { background: #e3f6e8; color: #1d5c2e; }
.mig-stato-disattivata { background: #e4e7eb; color: #52606d; }

.mig-attenzione {
	color: #ba2525;
}

textarea.mig-testo {
	box-sizing: border-box;
	width: 100%;
	max-width: 900px;
	padding: 7px 9px;
	border: 1px solid #bcccdc;
	border-radius: 6px;
	font: inherit;
	font-size: 14px;
}

.mig-barra {
	max-width: 900px;
	height: 8px;
	margin: 4px 0 8px;
	border-radius: 4px;
	background: #e4e7eb;
	overflow: hidden;
}

.mig-barra div {
	height: 100%;
	background: #3ebd93;
}

details.mig-gruppo {
	margin: 6px 0;
}

details.mig-gruppo summary {
	cursor: pointer;
	font-weight: 600;
	padding: 4px 0;
}

/* Campagna: scelta dei login di prova (js/campagna-login-prova.js) */
.lp-editor {
	max-width: 700px;
}

.lp-scelti {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 6px;
}

.lp-scelto {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 4px 3px 10px;
	border: 1px solid #bcccdc;
	border-radius: 14px;
	background: #f0f4f8;
	font-size: 13px;
}

.lp-scelto.lp-fuori {
	border-color: #e12d39;
	background: #ffe3e3;
}

.lp-dettaglio {
	color: #627d98;
	font-size: 12px;
}

.lp-togli {
	border: 0;
	background: transparent;
	color: #627d98;
	cursor: pointer;
	font-size: 12px;
	padding: 0 4px;
}

.lp-togli:hover {
	color: #e12d39;
}

.lp-cerca {
	position: relative;
}

.lp-cerca input {
	width: 100%;
	box-sizing: border-box;
}

ul.lp-suggerimenti {
	position: absolute;
	z-index: 20;
	left: 0;
	right: 0;
	max-height: 280px;
	overflow-y: auto;
	margin: 2px 0 0;
	padding: 0;
	list-style: none;
	border: 1px solid #bcccdc;
	border-radius: 4px;
	background: #fff;
	box-shadow: 0 4px 12px rgba(16, 42, 67, 0.15);
}

ul.lp-suggerimenti li {
	padding: 5px 10px;
	cursor: pointer;
	font-size: 13px;
}

ul.lp-suggerimenti li.lp-attivo {
	background: #e6f0ff;
}

ul.lp-suggerimenti li.lp-nessuno {
	color: #627d98;
	cursor: default;
}

/* Campagna in prova: "Durante la prova" / "Una volta avviata" sopra i riepiloghi */
.mig-titoletto {
	margin: 8px 0 4px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #627d98;
}

/* Scheda account: "Salva modifiche" di tutte le righe ed esito del salvataggio della singola riga (htmx) */
.ab-salva-tutte {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
}

.ab-esito {
	margin-left: 6px;
	font-size: 12px;
}

.ab-esito-ok {
	color: #2f8132;
	animation: ab-esito-svanisce 4s forwards;
}

.ab-esito-errore {
	color: #a61b1b;
}

@keyframes ab-esito-svanisce {
	0%, 70% { opacity: 1; }
	100% { opacity: 0; }
}
