/* Ecosistemi - Area Riservata
   Struttura minimale, pensata per essere rivestita dal tema (Uncode).
   Nessun !important: i selettori restano semplici e sovrascrivibili. */

/* ---------- Accesso ---------- */

.eco-accesso-box {
	max-width: 360px;
	margin: 0 auto;
}

.eco-accesso-form label {
	display: block;
	margin-bottom: 1em;
	font-size: 0.8em;
}

.eco-accesso-form input {
	display: block;
	width: 100%;
	padding: 0.5em;
	box-sizing: border-box;
}

.eco-accesso-errore {
	color: #b00020;
}

/* ---------- Area Clienti ---------- */

.eco-area-intestazione {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5em;
}

.eco-area-griglia {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1em;
}

.eco-card {
	display: flex;
	flex-direction: column;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1.2em;
	text-decoration: none;
	color: inherit;
}

.eco-card-attiva:hover,
.eco-card-da-accedere:hover {
	border-color: #999;
}

.eco-card-da-accedere .eco-card-azione {
	display: block;
	margin-top: auto; /* spinge l'azione in fondo alla card */
	padding-top: 0.8em;
	font-size: 0.85em;
}

.eco-card-in-arrivo {
	opacity: 0.6;
}

/* ---------- Modulo reclami (Contact Form 7) ----------
   Neutralizza la spaziatura verticale automatica di CF7 e
   uniforma la dimensione delle label a quella del form di accesso. */

.wpcf7-form label {
	display: block;
	margin-bottom: 1em;
	font-size: 0.8em;
}

.wpcf7-form input,
.wpcf7-form textarea {
	display: block;
	width: 100%;
}

.wpcf7-form br {
	display: none;
}

/* ---------- Vista documenti ---------- */

.eco-doc-testata {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.5em;
}

.eco-doc-saluto {
	font-weight: 600;
}

.eco-doc-messaggio {
	padding: 0.6em 1em;
	border: 1px solid var(--border, #ddd);
	border-radius: 8px;
	margin-bottom: 1.5em;
}

.eco-sottosezione {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1.2em;
	margin-bottom: 1.5em;
}

/* Titolo commessa: meno aria sopra */
.eco-sottosezione h3 {
	margin-top: 0.2em;
}

/* Ragione sociale del cliente, sotto il titolo commessa */
.eco-sottosezione-cliente {
	font-size: 0.95em;
	color: #444;
	margin: 0.3em 0 0;
}

.eco-sottosezione-meta {
	font-size: 0.85em;
	color: #666;
	margin: 0.2em 0 1.2em; /* respiro sotto l'intestazione */
}

/* Etichetta dei dati richiamati (es. "Luogo di campionamento:") */
.eco-etichetta {
	font-weight: 600;
	color: #555;
}

.eco-doc-lista {
	list-style: none;
	padding: 0;
	margin: 0 0 1.2em;
}

.eco-doc-lista li {
	padding: 0.4em 0;
	border-bottom: 1px solid #eee;
}

.eco-doc-vuoto {
	font-size: 0.9em;
	color: #888;
}

.eco-upload-form label {
	display: block;
	margin-bottom: 0.8em;
	font-size: 0.8em;
}

.eco-upload-form input[type="text"] {
	display: block;
	width: 100%;
	padding: 0.4em;
	box-sizing: border-box;
}

/* Omologa i due pulsanti Sfoglia / Carica: stesso aspetto.
   Il primo è il controllo file nativo (::-webkit-file-upload-button),
   il secondo è il submit. Stile neutro, sovrascrivibile dal tema. */
.eco-upload-form input[type="file"] {
	display: block;
	margin-bottom: 1em;
	font-size: 0.85em;
}

.eco-upload-form input[type="file"]::-webkit-file-upload-button,
.eco-upload-form input[type="file"]::file-selector-button,
.eco-upload-form button[type="submit"] {
	font: inherit;
	font-size: 0.9em;
	padding: 0.5em 1.2em;
	border: 1px solid #999;
	border-radius: 6px;
	background: #f3f3f3;
	color: #222;
	cursor: pointer;
	letter-spacing: normal;
}

.eco-upload-form input[type="file"]::-webkit-file-upload-button:hover,
.eco-upload-form input[type="file"]::file-selector-button:hover,
.eco-upload-form button[type="submit"]:hover {
	border-color: #555;
	background: #e9e9e9;
}

.eco-upload-form button[type="submit"] {
	margin-top: 0.3em;
}

/* Link di ritorno all'Area Clienti (in cima alle viste riservate) */
.eco-ritorno {
	margin-bottom: 1em;
	font-size: 0.9em;
}

/* Badge contatore documenti non letti sulla card */
.eco-card-badge {
	display: inline-block;
	min-width: 1.4em;
	padding: 0 0.4em;
	margin-left: 0.4em;
	font-size: 0.6em;
	line-height: 1.6em;
	text-align: center;
	color: #fff;
	background: #b00020;
	border-radius: 1em;
	vertical-align: middle;
}

/* Documenti non ancora letti: il nome resta in colore normale,
   il richiamo visivo è affidato al solo badge "nuovo". */
.eco-doc-badge-nuovo {
	display: inline-block;
	margin-left: 0.5em;
	padding: 0 0.5em;
	font-size: 0.6em;
	line-height: 1.6em;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	background: #b00020;
	border-radius: 1em;
	vertical-align: middle;
}

/* ---------- Albero collassabile commesse ---------- */
.eco-commessa {
	border: 1px solid #ddd;
	border-radius: 8px;
	margin-bottom: 1em;
	overflow: hidden;
}

.eco-commessa-intestazione {
	cursor: pointer;
	padding: 0.9em 1.2em;
	background: #f7f7f5;
	font-weight: 600;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 0.6em;
}

/* nasconde il marker di default e ne mette uno coerente */
.eco-commessa-intestazione::-webkit-details-marker { display: none; }
.eco-commessa-intestazione::before {
	content: "\25B8"; /* triangolino a destra */
	transition: transform 0.15s;
	font-size: 0.8em;
	color: #888;
}
.eco-commessa[open] .eco-commessa-intestazione::before {
	transform: rotate(90deg);
}

.eco-commessa-cliente {
	font-weight: 400;
	font-size: 0.9em;
	color: #666;
}

.eco-commessa-corpo {
	padding: 1em 1.2em;
}

/* etichetta tipo documento accanto al nome */
.eco-doc-tipo {
	display: inline-block;
	margin-left: 0.5em;
	padding: 0 0.5em;
	font-size: 0.7em;
	color: #555;
	background: #eee;
	border-radius: 1em;
	vertical-align: middle;
}

/* form upload unico: un po' di distacco dall'albero */
.eco-upload-unico {
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1.2em;
	margin-bottom: 1.5em;
	background: #fafafa;
}

/* Titoli di sezione nelle viste documentali (Commesse / Carica documenti) */
.eco-sezione-titolo {
	margin: 1.5em 0 0.8em;
	padding-bottom: 0.3em;
	border-bottom: 2px solid #e0e0e0;
	font-size: 1.15em;
}
.eco-sezione-titolo:first-child {
	margin-top: 0;
}

/* ---------- Area Responsabile (front-end) ---------- */
.eco-resp-conteggi {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	margin-bottom: 1.5em;
}
.eco-resp-box {
	flex: 1 1 120px;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 1em;
	display: flex;
	flex-direction: column;
	gap: 0.2em;
}
.eco-resp-num {
	font-size: 1.8em;
	font-weight: 600;
	line-height: 1;
}
.eco-resp-tabella {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1em;
}
.eco-resp-tabella th,
.eco-resp-tabella td {
	text-align: left;
	padding: 0.5em 0.7em;
	border-bottom: 1px solid #eee;
}
.eco-resp-tabella th {
	font-size: 0.85em;
	color: #555;
	border-bottom: 2px solid #ddd;
}
.eco-resp-form {
	max-width: 480px;
	margin-bottom: 1em;
}
.eco-resp-form label {
	display: block;
	margin-bottom: 0.8em;
	font-size: 0.85em;
}
.eco-resp-form input[type="text"],
.eco-resp-form select {
	display: block;
	width: 100%;
	padding: 0.45em;
	box-sizing: border-box;
	margin-top: 0.2em;
}

/* Link di primo accesso (magic link) mostrato al Responsabile */
.eco-invito-link {
	border: 1px solid #b8860b;
	background: #fff8e1;
	border-radius: 8px;
	padding: 1em;
	margin-bottom: 1em;
}
.eco-invito-campo {
	width: 100%;
	padding: 0.5em;
	box-sizing: border-box;
	font-family: monospace;
	font-size: 0.85em;
	margin-top: 0.4em;
}

/* Form imposta password (pagina magic link) */
.eco-imposta-pw-form {
	max-width: 360px;
}
.eco-imposta-pw-form label {
	display: block;
	margin-bottom: 0.8em;
	font-size: 0.85em;
}
.eco-imposta-pw-form input[type="password"] {
	display: block;
	width: 100%;
	padding: 0.45em;
	box-sizing: border-box;
	margin-top: 0.2em;
}

/* Link "Area gestione" per il Responsabile nell'Area Clienti */
.eco-area-azioni {
	display: inline-flex;
	gap: 1em;
	align-items: center;
}
.eco-area-gestione {
	font-weight: 600;
}

/* Pulsante elimina documento (inline nella lista) */
.eco-elimina-form {
	display: inline;
	margin: 0 0 0 0.5em;
}
.eco-elimina-btn {
	background: none;
	border: none;
	color: #b00020;
	font-size: 1.1em;
	line-height: 1;
	cursor: pointer;
	padding: 0 0.3em;
}
.eco-elimina-btn:hover {
	color: #7a0016;
}
.eco-doc-lista li {
	display: flex;
	align-items: center;
	gap: 0.3em;
}

/* Campo password con occhio mostra/nascondi */
.eco-pw-wrap {
	display: flex;
	align-items: center;
	gap: 0.3em;
}
.eco-pw-wrap input {
	flex: 1;
}
.eco-pw-toggle {
	background: none;
	border: none;
	cursor: pointer;
	line-height: 1;
	padding: 0.2em;
	color: #555;
	display: inline-flex;
	align-items: center;
}
.eco-pw-toggle:hover {
	color: #000;
}
.eco-ico {
	display: block;
}
/* Default (password nascosta): mostro l'occhio, nascondo il barrato. */
.eco-pw-toggle .eco-ico-occhio-barrato {
	display: none;
}
/* Password visibile: inverto le icone. */
.eco-pw-toggle.eco-pw-visibile .eco-ico-occhio {
	display: none;
}
.eco-pw-toggle.eco-pw-visibile .eco-ico-occhio-barrato {
	display: block;
}
