/**
 * TenderVino Core - stili front-end.
 *
 * Progettati per convivere con Enfold senza sovrascriverne i selettori: tutto è
 * confinato nei prefissi .tv-* e usa variabili CSS ridefinibili dal child theme.
 */

.tv-auth,
.tv-dashboard {
	--tv-color-accent: #D31522;
	--tv-color-accent-dark: #B8121E;
	--tv-color-text: #2B2B2B;
	--tv-color-muted: #7B7C80;
	--tv-color-border: #E5E0DA;
	--tv-color-surface: #ffffff;
	--tv-color-surface-alt: #F7F4F0;
	--tv-color-error: #D31522;
	--tv-color-success: #1d6f42;
	--tv-color-warning: #8a5b00;
	--tv-radius: 4px;

	box-sizing: border-box;
	max-width: 760px;
	margin: 0 auto;
	color: var(--tv-color-text);
	font-size: 16px;
	line-height: 1.6;
}

.tv-dashboard {
	max-width: 960px;
}

.tv-auth *,
.tv-auth *::before,
.tv-auth *::after,
.tv-dashboard *,
.tv-dashboard *::before,
.tv-dashboard *::after {
	box-sizing: inherit;
}

.tv-auth__title {
	margin: 0 0 20px;
	font-size: 26px;
	line-height: 1.25;
}

/* -------------------------------------------------------------------------
 * Form
 * ---------------------------------------------------------------------- */

.tv-form {
	margin: 0;
}

.tv-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}

@media screen and (min-width: 620px) {

	.tv-form__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tv-form__field--full {
		grid-column: 1 / -1;
	}
}

.tv-form__field {
	min-width: 0;
	margin-bottom: 18px;
}

.tv-form__grid .tv-form__field {
	margin-bottom: 0;
}

.tv-form__label,
.tv-form__legend {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}

.tv-form__legend {
	padding: 0;
}

.tv-form__required {
	color: var(--tv-color-error);
}

.tv-form__input {
	display: block;
	width: 100%;
	padding: 11px 13px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	color: var(--tv-color-text);
	font-size: 16px;
	line-height: 1.4;
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tv-form__input:focus {
	border-color: var(--tv-color-accent);
	box-shadow: 0 0 0 3px rgba(122, 31, 43, .12);
	outline: none;
}

.tv-form__field.has-error .tv-form__input {
	border-color: var(--tv-color-error);
}

.tv-form__hint {
	margin: 6px 0 0;
	color: var(--tv-color-muted);
	font-size: 13px;
	line-height: 1.5;
}

.tv-form__error {
	margin: 6px 0 0;
	color: var(--tv-color-error);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
}

.tv-form__group {
	margin: 0 0 22px;
	padding: 0;
	border: 0;
}

.tv-form__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 20px;
}

.tv-form__link {
	color: var(--tv-color-accent);
	font-size: 14px;
	text-decoration: underline;
}

.tv-form__actions {
	margin-top: 24px;
}

.tv-form__note {
	margin: 10px 0 0;
	color: var(--tv-color-muted);
	font-size: 13px;
}

.tv-form__alt {
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--tv-color-border);
	font-size: 15px;
}

.tv-form__alt a {
	color: var(--tv-color-accent);
	font-weight: 600;
}

/* Campo esca: nascosto senza usare display:none, che alcuni bot riconoscono. */

.tv-honeypot {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* -------------------------------------------------------------------------
 * Selettore del tipo di account
 * ---------------------------------------------------------------------- */

.tv-choice-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}

@media screen and (min-width: 620px) {

	.tv-choice-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.tv-choice {
	position: relative;
	display: block;
	padding: 16px 18px 16px 46px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	cursor: pointer;
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tv-choice:hover {
	border-color: var(--tv-color-accent);
}

.tv-choice input {
	position: absolute;
	top: 19px;
	left: 18px;
	margin: 0;
}

.tv-choice:has(input:checked) {
	border-color: var(--tv-color-accent);
	box-shadow: 0 0 0 3px rgba(122, 31, 43, .12);
}

.tv-choice:focus-within {
	border-color: var(--tv-color-accent);
	box-shadow: 0 0 0 3px rgba(122, 31, 43, .12);
}

.tv-choice__label {
	display: block;
	font-size: 16px;
	font-weight: 600;
}

.tv-choice__desc {
	display: block;
	margin-top: 3px;
	color: var(--tv-color-muted);
	font-size: 14px;
	line-height: 1.45;
}

/* -------------------------------------------------------------------------
 * Consensi e pulsanti
 * ---------------------------------------------------------------------- */

.tv-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 14px;
	line-height: 1.5;
	cursor: pointer;
}

.tv-consent input {
	flex: 0 0 auto;
	margin-top: 4px;
}

.tv-consent--inline {
	margin: 0;
}

.tv-consent a {
	color: var(--tv-color-accent);
	text-decoration: underline;
}

.tv-button {
	display: inline-block;
	padding: 12px 26px;
	border: 1px solid transparent;
	border-radius: var(--tv-radius);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s ease-in-out, color .15s ease-in-out;
}

.tv-button--primary {
	background: var(--tv-color-accent);
	color: #fff;
}

.tv-button--primary:hover,
.tv-button--primary:focus {
	background: var(--tv-color-accent-dark);
	color: #fff;
}

.tv-button--secondary {
	background: var(--tv-color-surface);
	border-color: var(--tv-color-accent);
	color: var(--tv-color-accent);
}

.tv-button--secondary:hover,
.tv-button--secondary:focus {
	background: var(--tv-color-accent);
	color: #fff;
}

.tv-button--ghost {
	padding: 8px 16px;
	background: transparent;
	border-color: var(--tv-color-border);
	color: var(--tv-color-muted);
	font-size: 14px;
}

.tv-button--ghost:hover,
.tv-button--ghost:focus {
	border-color: var(--tv-color-accent);
	color: var(--tv-color-accent);
}

/* -------------------------------------------------------------------------
 * Avvisi e pannelli
 * ---------------------------------------------------------------------- */

.tv-alert {
	margin: 0 0 22px;
	padding: 14px 18px;
	border-left: 4px solid var(--tv-color-muted);
	border-radius: 0 var(--tv-radius) var(--tv-radius) 0;
	background: var(--tv-color-surface-alt);
	font-size: 15px;
}

.tv-alert p {
	margin: 0 0 6px;
}

.tv-alert p:last-child,
.tv-alert ul:last-child {
	margin-bottom: 0;
}

.tv-alert ul {
	margin: 0;
	padding-left: 20px;
}

.tv-alert__title {
	font-weight: 700;
}

.tv-alert--error {
	border-left-color: var(--tv-color-error);
	background: #fdf3f2;
	color: #7a1a15;
}

.tv-alert--info {
	border-left-color: #2563eb;
	background: #eff5ff;
	color: #1e3a8a;
}

.tv-alert--warning {
	border-left-color: #d69e00;
	background: #fdf8e8;
	color: var(--tv-color-warning);
}

.tv-panel {
	padding: 28px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	text-align: center;
}

/* Riquadro che prende il posto del Price Radar per chi non può usarlo. */
.tdv-pr-accesso {
	margin: 0 auto;
}

.tdv-pr-accesso .tv-panel p {
	margin: 0 0 14px;
}

.tdv-pr-accesso .tdv-pr-accesso__azioni {
	margin: 20px 0 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.tv-panel__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--tv-color-success);
	color: #fff;
	font-size: 24px;
	line-height: 1;
}

.tv-panel__title {
	margin: 0 0 12px;
	font-size: 22px;
}

.tv-panel p {
	margin: 0 0 10px;
}

.tv-panel__actions {
	margin-top: 20px;
}

.tv-panel--success {
	border-top: 4px solid var(--tv-color-success);
}

.tv-panel--info {
	border-top: 4px solid #2563eb;
}

.tv-panel--warning {
	border-top: 4px solid #d69e00;
}

/* -------------------------------------------------------------------------
 * Area riservata
 * ---------------------------------------------------------------------- */

.tv-dashboard__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 28px;
	padding-bottom: 20px;
	border-bottom: 2px solid var(--tv-color-border);
}

.tv-dashboard__eyebrow {
	margin: 0 0 2px;
	color: var(--tv-color-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tv-dashboard__title {
	margin: 0;
	font-size: 28px;
	line-height: 1.2;
}

.tv-dashboard__section {
	margin-bottom: 32px;
}

.tv-dashboard__section-title {
	margin: 0 0 14px;
	font-size: 19px;
}

.tv-datalist {
	margin: 0;
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	overflow: hidden;
}

.tv-datalist__row {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	padding: 12px 18px;
	border-bottom: 1px solid var(--tv-color-border);
	background: var(--tv-color-surface);
}

.tv-datalist__row:last-child {
	border-bottom: 0;
}

.tv-datalist__row:nth-child(odd) {
	background: var(--tv-color-surface-alt);
}

.tv-datalist dt {
	flex: 0 0 220px;
	margin: 0;
	color: var(--tv-color-muted);
	font-size: 14px;
	font-weight: 600;
}

.tv-datalist dd {
	flex: 1 1 240px;
	margin: 0;
	font-size: 15px;
	word-break: break-word;
}

/* -------------------------------------------------------------------------
 * Archivio Tender
 * ---------------------------------------------------------------------- */

.tv-archivio {
	--tv-color-accent: #D31522;
	--tv-color-accent-dark: #B8121E;
	--tv-color-text: #2B2B2B;
	--tv-color-muted: #7B7C80;
	--tv-color-border: #E5E0DA;
	--tv-color-surface: #ffffff;
	--tv-color-surface-alt: #F7F4F0;
	--tv-color-error: #D31522;
	--tv-color-success: #1d6f42;
	--tv-color-warning: #8a5b00;
	--tv-radius: 4px;

	box-sizing: border-box;
	color: var(--tv-color-text);
	font-size: 16px;
	line-height: 1.6;
}

.tv-archivio *,
.tv-archivio *::before,
.tv-archivio *::after {
	box-sizing: inherit;
}

.tv-archivio__title {
	margin: 0 0 10px;
	font-size: 28px;
	line-height: 1.2;
}

.tv-archivio__intro {
	margin: 0 0 24px;
	max-width: none;
	color: var(--tv-color-muted);
}

.tv-filtri {
	margin-bottom: 32px;
	padding: 22px 24px;
	background: var(--tv-color-surface-alt);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
}

.tv-filtri__intro {
	margin: 0 0 18px;
	font-size: 15px;
	font-weight: 600;
}

.tv-filtri__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}

@media screen and (min-width: 700px) {

	.tv-filtri__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.tv-filtri__gruppo {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.tv-filtri__legend {
	margin-bottom: 10px;
	padding: 0;
	color: var(--tv-color-muted);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.tv-filtri__opzioni {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-height: 220px;
	overflow-y: auto;
}

.tv-filtro {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 13px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: 999px;
	font-size: 14px;
	line-height: 1.3;
	cursor: pointer;
	transition: border-color .15s ease-in-out, background-color .15s ease-in-out;
}

.tv-filtro:hover {
	border-color: var(--tv-color-accent);
}

.tv-filtro:has(input:checked) {
	background: var(--tv-color-accent);
	border-color: var(--tv-color-accent);
	color: #fff;
}

.tv-filtro:focus-within {
	outline: 2px solid var(--tv-color-accent);
	outline-offset: 2px;
}

.tv-filtri__azioni {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--tv-color-border);
}

.tv-filtri__conteggio {
	margin: 0;
	color: var(--tv-color-muted);
	font-size: 14px;
	font-weight: 600;
}

.tv-archivio__risultati.is-loading {
	opacity: .5;
	transition: opacity .15s ease-in-out;
}

.tv-tender-grid,
.tv-archivio__risultati.tv-tender-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}

.tv-archivio__altro {
	margin-top: 26px;
	text-align: center;
}

.tv-stato-vuoto {
	padding: 40px 24px;
	background: var(--tv-color-surface-alt, #f7f7f8);
	border: 1px dashed var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
	color: var(--tv-color-muted, #6b7280);
	text-align: center;
}

.tv-stato-vuoto__titolo {
	margin: 0 0 8px;
	color: var(--tv-color-text, #22272b);
	font-size: 18px;
	font-weight: 700;
}

.tv-stato-vuoto p:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
 * Scheda Tender
 * ---------------------------------------------------------------------- */

.tv-tender-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--tv-color-surface, #fff);
	border: 1px solid var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tv-tender-card:hover {
	border-color: var(--tv-color-accent, #B8121E);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.tv-tender-card--urgente {
	border-left: 4px solid #d69e00;
}

.tv-tender-card__media img {
	display: block;
	width: 100%;
	height: 170px;
	object-fit: cover;
}

.tv-tender-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 18px 20px 20px;
}

.tv-tender-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}

.tv-chip {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: #f0f0f1;
	color: #3c4043;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
}

.tv-chip--nazione {
	background: #B8121E;
	color: #fff;
}

.tv-chip--codice {
	background: transparent;
	border: 1px solid #d8d8dc;
	color: #6b7280;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tv-chip--success {
	background: #e5f4ea;
	color: #1d6f42;
}

.tv-chip--warning {
	background: #fdf3dc;
	color: #8a5b00;
}

.tv-chip--danger {
	background: #fbe9e7;
	color: #D31522;
}

.tv-tender-card__title {
	margin: 0 0 6px;
	font-size: 19px;
	line-height: 1.3;
}

.tv-tender-card__title a {
	color: inherit;
	text-decoration: none;
}

.tv-tender-card__title a:hover {
	color: var(--tv-color-accent, #B8121E);
}

.tv-tender-card__codice {
	margin: 0 0 8px;
	color: #6b7280;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 13px;
}

.tv-tender-card__regioni {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.5;
}

.tv-tender-card__label {
	display: block;
	color: #6b7280;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.tv-tender-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid #ececed;
}

.tv-tender-card__scadenza {
	margin: 0;
	font-size: 14px;
}

.tv-tender-card__giorni {
	display: block;
	color: #6b7280;
	font-size: 13px;
}

.tv-tender-card__giorni.is-urgente {
	color: #8a5b00;
	font-weight: 700;
}

.tv-button--small {
	padding: 8px 16px;
	font-size: 14px;
}

/* -------------------------------------------------------------------------
 * Scheda singola del Tender
 * ---------------------------------------------------------------------- */

.tv-single-tender {
	--tv-color-accent: #D31522;
	/* Senza questo il pulsante rosso, al passaggio del mouse, restava senza
	   fondo: testo bianco su bianco (feedback del 29/09/2026). */
	--tv-color-accent-dark: #B8121E;
	--tv-color-muted: #7B7C80;
	--tv-color-border: #E5E0DA;
	--tv-color-surface-alt: #F7F4F0;
	--tv-radius: 4px;
}

.tv-single-tender__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 12px;
}

.tv-single-tender__title {
	margin: 0 0 12px;
	line-height: 1.2;
}

.tv-single-tender__scadenza {
	margin: 0 0 22px;
	padding: 10px 16px;
	background: var(--tv-color-surface-alt);
	border-left: 4px solid var(--tv-color-accent);
	border-radius: 0 var(--tv-radius) var(--tv-radius) 0;
	font-size: 15px;
}

.tv-single-tender__scadenza.is-scaduto {
	border-left-color: #D31522;
	color: #D31522;
}

.tv-single-tender__giorni {
	color: var(--tv-color-muted);
}

.tv-single-tender__media {
	margin-bottom: 24px;
}

.tv-single-tender__media img {
	max-width: 100%;
	height: auto;
	border-radius: var(--tv-radius);
}

.tv-single-tender__contenuto {
	margin-bottom: 28px;
}

.tv-single-tender__cta {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--tv-color-border);
}

.tv-single-tender__back {
	margin-top: 18px;
}

/* -------------------------------------------------------------------------
 * Elenchi di documenti
 * ---------------------------------------------------------------------- */

.tv-documenti {
	margin: 28px 0;
	padding: 20px 22px;
	background: var(--tv-color-surface-alt, #f7f7f8);
	border: 1px solid var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
}

.tv-documenti__title {
	margin: 0 0 6px;
	font-size: 18px;
}

.tv-documenti__intro {
	margin: 0 0 14px;
	color: var(--tv-color-muted, #6b7280);
	font-size: 14px;
}

.tv-documenti__lista {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tv-documenti__voce {
	margin-bottom: 8px;
}

.tv-documenti__voce a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 11px 15px;
	background: #fff;
	border: 1px solid var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
	color: inherit;
	text-decoration: none;
	transition: border-color .15s ease-in-out;
}

.tv-documenti__voce a:hover {
	border-color: var(--tv-color-accent, #B8121E);
	color: var(--tv-color-accent, #B8121E);
}

.tv-documenti__nome {
	font-weight: 600;
}

.tv-documenti__peso {
	flex: 0 0 auto;
	color: var(--tv-color-muted, #6b7280);
	font-size: 13px;
}

.tv-link-doc {
	display: block;
	font-size: 14px;
}

/* -------------------------------------------------------------------------
 * Tabelle dell'area riservata
 * ---------------------------------------------------------------------- */

.tv-dashboard__section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.tv-dashboard__section-head .tv-dashboard__section-title {
	margin: 0;
}

.tv-tabella-wrap {
	overflow-x: auto;
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
}

.tv-tabella {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: 15px;
}

.tv-tabella th,
.tv-tabella td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--tv-color-border);
	text-align: left;
	vertical-align: top;
}

.tv-tabella thead th {
	background: var(--tv-color-surface-alt);
	color: var(--tv-color-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}

.tv-tabella tbody tr:last-child td {
	border-bottom: 0;
}

.tv-tabella__muted {
	color: var(--tv-color-muted);
	font-size: 13px;
}

/* Su schermi stretti la tabella diventa un elenco di schede. */
@media screen and (max-width: 700px) {

	.tv-tabella thead {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.tv-tabella tr {
		display: block;
		border-bottom: 1px solid var(--tv-color-border);
	}

	.tv-tabella tr:last-child {
		border-bottom: 0;
	}

	.tv-tabella td {
		display: flex;
		justify-content: space-between;
		gap: 16px;
		border-bottom: 0;
		padding: 8px 16px;
	}

	.tv-tabella td::before {
		content: attr(data-label);
		flex: 0 0 42%;
		color: var(--tv-color-muted);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .04em;
		text-transform: uppercase;
	}
}

/* -------------------------------------------------------------------------
 * Form di profilo nell'area riservata
 * ---------------------------------------------------------------------- */

.tv-profilo__fissi {
	margin-bottom: 26px;
}

.tv-profilo__fissi-intro {
	margin: 0 0 12px;
	color: var(--tv-color-muted);
	font-size: 14px;
}

.tv-profilo__gruppo {
	margin: 0 0 28px;
	padding: 0 0 22px;
	border: 0;
	border-bottom: 1px solid var(--tv-color-border);
}

.tv-profilo__gruppo:last-of-type {
	border-bottom: 0;
}

.tv-profilo__legend {
	margin-bottom: 16px;
	padding: 0;
	color: var(--tv-color-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

/* Il renderer dei campi è condiviso con il backend: qui se ne ridefinisce la resa. */

.tv-dashboard .tv-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px 24px;
}

@media screen and (min-width: 700px) {

	.tv-dashboard .tv-grid--2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.tv-dashboard .tv-field {
	min-width: 0;
}

.tv-dashboard .tv-field--full {
	grid-column: 1 / -1;
}

.tv-dashboard .tv-field__label {
	display: block;
	margin-bottom: 6px;
	font-size: 14px;
	font-weight: 600;
}

.tv-dashboard .tv-field__desc {
	margin: 6px 0 0;
	color: var(--tv-color-muted);
	font-size: 13px;
	line-height: 1.5;
}

.tv-dashboard .tv-field__empty {
	margin: 0;
	padding: 10px 12px;
	background: var(--tv-color-surface-alt);
	border: 1px dashed var(--tv-color-border);
	border-radius: var(--tv-radius);
	color: var(--tv-color-muted);
	font-size: 13px;
}

.tv-dashboard .tv-input,
.tv-dashboard .tv-textarea,
.tv-dashboard .tv-select {
	display: block;
	width: 100%;
	padding: 11px 13px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	color: var(--tv-color-text);
	font-size: 16px;
	line-height: 1.4;
}

.tv-dashboard .tv-input:focus,
.tv-dashboard .tv-textarea:focus,
.tv-dashboard .tv-select:focus {
	border-color: var(--tv-color-accent);
	box-shadow: 0 0 0 3px rgba(122, 31, 43, .12);
	outline: none;
}

.tv-dashboard .tv-checklist {
	margin: 0;
	padding: 0;
	border: 0;
}

.tv-dashboard .tv-checklist__filter {
	width: 100%;
	margin-bottom: 8px;
	padding: 9px 12px;
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	font-size: 15px;
}

.tv-dashboard .tv-checklist__items {
	max-height: 210px;
	padding: 10px 12px;
	overflow-y: auto;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
}

.tv-dashboard .tv-checklist__item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	padding: 4px 0;
	font-size: 15px;
	line-height: 1.5;
	cursor: pointer;
}

.tv-dashboard .tv-checklist__item.is-hidden {
	display: none;
}

.tv-dashboard .tv-switch {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
}

.tv-dashboard .tv-switch input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.tv-dashboard .tv-switch__track {
	position: relative;
	display: inline-block;
	width: 44px;
	height: 24px;
	background: #c3c4c7;
	border-radius: 12px;
	transition: background-color .15s ease-in-out;
}

.tv-dashboard .tv-switch__track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	background: #fff;
	border-radius: 50%;
	transition: transform .15s ease-in-out;
}

.tv-dashboard .tv-switch input:checked + .tv-switch__track {
	background: var(--tv-color-accent);
}

.tv-dashboard .tv-switch input:checked + .tv-switch__track::after {
	transform: translateX(20px);
}

.tv-dashboard .tv-switch input:focus-visible + .tv-switch__track {
	outline: 2px solid var(--tv-color-accent);
	outline-offset: 2px;
}

.tv-securefile__current {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	padding: 10px 13px;
	background: var(--tv-color-surface-alt, #f7f7f8);
	border: 1px solid var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
	font-size: 14px;
	word-break: break-all;
}

.tv-securefile__size {
	margin-left: auto;
	flex: 0 0 auto;
	color: var(--tv-color-muted, #6b7280);
	font-size: 13px;
}

.tv-securefile__remove {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-size: 14px;
	cursor: pointer;
}

.tv-securefile__hint {
	margin: 8px 0 0;
	color: var(--tv-color-muted, #6b7280);
	font-size: 13px;
	line-height: 1.5;
}

.tv-form__file {
	display: block;
	width: 100%;
	padding: 10px;
	background: var(--tv-color-surface, #fff);
	border: 1px dashed var(--tv-color-border, #d8d8dc);
	border-radius: var(--tv-radius, 6px);
	font-size: 15px;
}

.tv-form__optional {
	color: var(--tv-color-muted, #6b7280);
	font-weight: 400;
}

.tv-alert--success {
	border-left-color: #1d6f42;
	background: #eaf6ee;
	color: #14532d;
}

.tv-candidatura__section-title {
	margin: 28px 0 14px;
	font-size: 19px;
}

.tv-candidatura__riepilogo .tv-candidatura__section-title {
	margin-top: 0;
}

/* Tipo di account già scelto: il selettore sparisce, resta la conferma visiva. */

.tv-tipo-scelto {
	margin: 0 0 26px;
	padding: 16px 20px;
	background: var(--tv-color-surface-alt);
	border-left: 4px solid var(--tv-color-accent);
	border-radius: 0 var(--tv-radius) var(--tv-radius) 0;
}

.tv-tipo-scelto__testo {
	margin: 0;
	font-size: 15px;
}

.tv-tipo-scelto__etichetta {
	color: var(--tv-color-muted);
}

.tv-tipo-scelto__valore {
	color: var(--tv-color-accent);
	font-size: 17px;
}

.tv-tipo-scelto__desc {
	margin: 4px 0 0;
	color: var(--tv-color-muted);
	font-size: 14px;
	line-height: 1.5;
}

.tv-tipo-scelto__cambia {
	margin: 10px 0 0;
	font-size: 14px;
}

.tv-tipo-scelto__cambia a {
	color: var(--tv-color-accent);
	text-decoration: underline;
}

/* Requisiti del bando */

.tv-capitolato {
	margin: 0 0 28px;
}

.tv-capitolato__title {
	margin: 0 0 12px;
	font-size: 20px;
}

.tv-tender-card__capitolato {
	margin: 0 0 12px;
	font-size: 13px;
	line-height: 1.5;
}

.tv-tender-card__spec {
	display: block;
	color: #55595c;
}

.tv-tender-card__spec strong {
	color: #3c4043;
}

/* =========================================================================
 * Correzioni di impaginazione e nuovo archivio
 * ====================================================================== */

/* Il tema non mostra la barra del titolo su queste pagine, quindi il contenuto
 * partirebbe incollato all'header fisso. Serve una respirazione esplicita. */

.tv-archivio,
.tv-auth,
.tv-dashboard {
	padding-top: 40px;
	padding-bottom: 50px;
}

@media only screen and (max-width: 767px) {

	.tv-archivio,
	.tv-auth,
	.tv-dashboard {
		padding-top: 24px;
		padding-bottom: 34px;
	}
}

/* --- Intestazione dell'archivio -------------------------------------- */

.tv-archivio__header {
	max-width: none;
	margin: 0 0 34px;
}

.tv-archivio__title {
	margin: 0 0 10px;
	font-size: 34px;
	line-height: 1.15;
}

.tv-archivio__intro {
	margin: 0;
	color: var(--tv-color-muted);
	font-size: 17px;
	line-height: 1.55;
}

/* --- Filtri ----------------------------------------------------------- */

.tv-filtri__legend {
	display: block;
	width: 100%;
	margin-bottom: 12px;
	padding: 0 0 8px;
	border-bottom: 1px solid var(--tv-color-border);
	color: var(--tv-color-text);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.tv-filtri__disponibili {
	display: block;
	margin-top: 3px;
	color: var(--tv-color-muted);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}

.tv-filtri__opzioni {
	max-height: 260px;
	padding-right: 4px;
}

/* La pillola ospita nome e contatore: il conteggio dice dove guardare. */

.tv-filtro {
	gap: 8px;
	padding: 6px 8px 6px 12px;
}

.tv-filtro__nome {
	line-height: 1.3;
}

.tv-filtro__conta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 22px;
	padding: 0 7px;
	background: #ecebe9;
	border-radius: 11px;
	color: #55595c;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	line-height: 1;
}

.tv-filtro:has(input:checked) .tv-filtro__conta {
	background: rgba(255, 255, 255, .22);
	color: #fff;
}

/* Voce senza Tender aperti: resta leggibile ma non selezionabile. */

.tv-filtro.is-vuoto {
	background: transparent;
	border-style: dashed;
	color: #9aa0a6;
	cursor: not-allowed;
	opacity: .75;
}

.tv-filtro.is-vuoto:hover {
	border-color: var(--tv-color-border);
}

.tv-filtro.is-vuoto .tv-filtro__conta {
	background: transparent;
	border: 1px solid #dcdad7;
	color: #9aa0a6;
}

.tv-filtro input[disabled] {
	cursor: not-allowed;
}

.tv-filtri__conteggio {
	min-height: 1.4em;
	color: var(--tv-color-text);
	font-size: 15px;
	font-weight: 700;
}

/* --- Paginazione ------------------------------------------------------ */

.tv-archivio__paginazione:empty {
	display: none;
}

.tv-paginazione {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: 34px;
	padding-top: 26px;
	border-top: 1px solid var(--tv-color-border);
}

.tv-paginazione__numero,
.tv-paginazione__freccia {
	min-width: 42px;
	height: 42px;
	padding: 0 12px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	color: var(--tv-color-text);
	font-size: 15px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: border-color .15s ease-in-out, background-color .15s ease-in-out, color .15s ease-in-out;
}

.tv-paginazione__numero:hover:not(.is-corrente),
.tv-paginazione__freccia:hover:not([disabled]) {
	border-color: var(--tv-color-accent);
	color: var(--tv-color-accent);
}

.tv-paginazione__numero:focus-visible,
.tv-paginazione__freccia:focus-visible {
	outline: 2px solid var(--tv-color-accent);
	outline-offset: 2px;
}

.tv-paginazione__numero.is-corrente {
	background: var(--tv-color-accent);
	border-color: var(--tv-color-accent);
	color: #fff;
	cursor: default;
}

.tv-paginazione__freccia {
	font-size: 20px;
}

.tv-paginazione__freccia[disabled] {
	color: #c9c9c9;
	cursor: not-allowed;
	opacity: .6;
}

.tv-paginazione__salto {
	padding: 0 2px;
	color: var(--tv-color-muted);
}

@media only screen and (max-width: 479px) {

	.tv-paginazione__numero,
	.tv-paginazione__freccia {
		min-width: 38px;
		height: 38px;
		padding: 0 9px;
		font-size: 14px;
	}
}


/* La home conserva l'header trasparente sopra la sezione iniziale: serve spazio
 * perche il logo non finisca sopra il titolo. */

#top #tv-hero.avia-section .container {
	padding-top: 60px;
}

@media only screen and (max-width: 767px) {

	#top #tv-hero.avia-section .container {
		padding-top: 30px;
	}
}


/* =========================================================================
 * Invito a completare i dati obbligatori
 * ====================================================================== */

/* È la prima cosa che l'azienda vede entrando: deve staccare dal resto della
 * pagina senza sembrare un errore, perché non ha sbagliato nulla. */

.tv-completa {
	margin: 0 0 30px;
	padding: 22px 24px;
	background: #fdf6e3;
	border: 1px solid #e6d5a8;
	border-left: 5px solid var(--tv-color-warning, #8a5b00);
	border-radius: var(--tv-radius, 6px);
}

.tv-completa__titolo {
	margin: 0 0 8px;
	color: #6b4a00;
	font-size: 19px;
	line-height: 1.25;
}

.tv-completa__testo {
	margin: 0 0 12px;
	font-size: 15px;
}

.tv-completa__elenco {
	margin: 0 0 18px;
	padding-left: 20px;
	font-weight: 600;
}

.tv-completa__elenco li {
	margin-bottom: 4px;
}

.tv-completa__azioni {
	margin: 0;
}

@media only screen and (max-width: 599px) {

	.tv-completa {
		padding: 18px 16px;
	}

	.tv-completa__titolo {
		font-size: 17px;
	}

	.tv-completa__azioni .tv-button {
		display: block;
		width: 100%;
		text-align: center;
	}
}


/* =========================================================================
 * Candidatura registrata dall'amministrazione
 * ====================================================================== */

/* Il riquadro segnala che si sta agendo per conto di qualcun altro: e la sola
 * differenza rispetto al form che compila il Produttore, e va vista subito. */

.tv-candidatura__perconto {
	margin: 0 0 26px;
	padding: 18px 20px;
	background: #fdf6e3;
	border: 1px solid #e6d5a8;
	border-left: 4px solid var(--tv-color-warning, #8a5b00);
	border-radius: var(--tv-radius, 6px);
}

.tv-candidatura__perconto-nota {
	margin: 0 0 14px;
	color: #6b4a00;
	font-size: 14px;
	font-weight: 700;
}

.tv-candidatura__perconto .tv-form__field {
	margin-bottom: 0;
}

.tv-candidatura__perconto select.tv-form__input {
	width: 100%;
	max-width: 100%;
}


/* =========================================================================
 * Archivio a due colonne: filtri a sinistra, Tender a destra
 * ====================================================================== */

.tv-archivio__layout {
	display: grid;
	grid-template-columns: 300px minmax(0, 1fr);
	align-items: start;
	gap: 34px;
}

/* --- Colonna dei filtri ----------------------------------------------- */

.tv-archivio__colonna-filtri {
	position: sticky;
	top: 100px;
	min-width: 0;
}

/* Il pannello scorre per conto proprio: con molti mercati la colonna
 * diventerebbe piu lunga dell'elenco e la sticky non avrebbe piu effetto. */

.tv-archivio__colonna-filtri .tv-filtri {
	max-height: calc(100vh - 140px);
	margin-bottom: 0;
	padding: 18px 18px 20px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.tv-filtri__testata {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 16px;
}

/* Il tema assegna a legend e ai paragrafi del contenuto una scala tipografica
 * da titolo: nella colonna dei filtri servono etichette, non titoli. */

#top .tv-archivio .tv-filtri__intro,
.tv-archivio .tv-filtri__intro {
	margin: 0;
	color: var(--tv-color-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.3;
	text-transform: uppercase;
}

#top .tv-archivio .tv-filtri__legend,
.tv-archivio .tv-filtri__legend {
	float: none;
	width: 100%;
	margin-bottom: 12px;
	padding: 0 0 8px;
	border-bottom: 1px solid var(--tv-color-border);
	color: var(--tv-color-text);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.3;
	text-transform: uppercase;
}

#top .tv-archivio .tv-filtri__disponibili,
.tv-archivio .tv-filtri__disponibili {
	display: block;
	margin-top: 4px;
	color: var(--tv-color-muted);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.35;
	text-transform: none;
}

#top .tv-archivio .tv-archivio__ordine,
.tv-archivio .tv-archivio__ordine {
	font-size: 12px;
	line-height: 1.3;
}

.tv-filtri__azzera {
	padding: 0;
	background: none;
	border: 0;
	color: var(--tv-color-accent);
	font-size: 13px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}

.tv-filtri__azzera[hidden] {
	display: none;
}

.tv-archivio__colonna-filtri .tv-filtri__gruppo + .tv-filtri__gruppo {
	margin-top: 24px;
}

/* Nella colonna le voci non sono piu pillole affiancate ma un elenco: i nomi
 * restano allineati e i conteggi formano una colonna leggibile. */

.tv-archivio__colonna-filtri .tv-filtri__opzioni {
	display: block;
	max-height: none;
	padding-right: 0;
	overflow: visible;
}

.tv-archivio__colonna-filtri .tv-filtro {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	margin: 0;
	padding: 7px 10px;
	background: transparent;
	border: 0;
	border-radius: 4px;
	font-size: 14px;
}

.tv-archivio__colonna-filtri .tv-filtro + .tv-filtro {
	border-top: 1px solid rgba(0, 0, 0, .05);
}

.tv-archivio__colonna-filtri .tv-filtro:hover {
	background: rgba(122, 31, 43, .06);
}

.tv-archivio__colonna-filtri .tv-filtro:has(input:checked) {
	background: var(--tv-color-accent);
	color: #fff;
}

.tv-archivio__colonna-filtri .tv-filtro__nome {
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.25;
}

/* Il nome del monopolio sta sotto la voce: dice con chi si tratterebbe senza
 * dover aprire la scheda di un Tender. */

.tv-filtro__ente {
	display: block;
	color: var(--tv-color-muted);
	font-size: 11.5px;
	font-weight: 500;
	letter-spacing: .01em;
}

.tv-archivio__colonna-filtri .tv-filtro:has(input:checked) .tv-filtro__ente {
	color: rgba(255, 255, 255, .8);
}

/* Le province rientrano sotto la nazione che le raggruppa. */

.tv-archivio__colonna-filtri .tv-filtro--livello-1 {
	padding-left: 26px;
}

.tv-archivio__colonna-filtri .tv-filtro--livello-2 {
	padding-left: 42px;
}

.tv-archivio__colonna-filtri .tv-filtro--livello-0:has(+ .tv-filtro--livello-1) .tv-filtro__nome {
	font-weight: 700;
}

.tv-archivio__colonna-filtri .tv-filtro.is-vuoto {
	border-style: none;
}

.tv-filtri__conferma {
	display: none;
	width: 100%;
	margin-top: 18px;
}

/* --- Colonna dei risultati -------------------------------------------- */

.tv-archivio__colonna-risultati {
	min-width: 0;
}

.tv-archivio__barra {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 16px;
	margin-bottom: 18px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--tv-color-text);
}

.tv-archivio__barra .tv-filtri__conteggio {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: .01em;
	text-transform: uppercase;
}

.tv-archivio__ordine {
	margin: 0;
	color: var(--tv-color-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tv-elenco-tender {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.tv-elenco-tender.is-loading {
	opacity: .5;
	transition: opacity .15s ease-in-out;
}

/* --- Riga di un Tender ------------------------------------------------- */

.tv-tender-riga {
	position: relative;
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 20px;
	padding: 16px 18px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-left: 4px solid var(--tv-color-border);
	border-radius: var(--tv-radius);
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tv-tender-riga:hover {
	border-color: var(--tv-color-accent);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .07);
}

/* Il bordo di sinistra e il solo segnale di urgenza sempre visibile mentre si
 * scorre l'elenco, anche quando la colonna della scadenza va a capo. */

.tv-tender-riga--urgente {
	border-left-color: var(--tv-color-error);
}

.tv-tender-riga--attenzione {
	border-left-color: var(--tv-color-warning);
}

.tv-tender-riga--calma {
	border-left-color: var(--tv-color-success);
}

.tv-tender-riga__corpo {
	flex: 1 1 auto;
	min-width: 0;
}

.tv-tender-riga__occhiello {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
	margin: 0 0 4px;
	line-height: 1;
}

.tv-tender-riga__occhiello:empty {
	display: none;
}

/* I codici dei Monopoli sono stringhe lunghe e senza spazi: senza questa regola
 * allargherebbero la riga oltre lo schermo su telefono. */

.tv-tender-riga__codice {
	min-width: 0;
	color: var(--tv-color-accent);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.35;
	overflow-wrap: anywhere;
	text-transform: uppercase;
	word-break: break-word;
}

.tv-tender-riga__tipologia {
	padding: 3px 8px;
	background: var(--tv-color-surface-alt);
	border-radius: 3px;
	color: var(--tv-color-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.tv-tender-riga__titolo {
	margin: 0 0 5px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	overflow-wrap: break-word;
}

.tv-tender-riga__titolo a {
	color: var(--tv-color-text);
	text-decoration: none;
}

.tv-tender-riga__titolo a:hover {
	color: var(--tv-color-accent);
}

/* Il titolo copre tutta la riga: con il dito il bersaglio diventa l'intero
 * riquadro invece del solo testo del titolo. */

.tv-tender-riga__titolo a::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.tv-tender-riga__titolo a:focus-visible::after {
	outline: 2px solid var(--tv-color-accent);
	outline-offset: 2px;
}

/* Il pulsante resta sopra la zona cliccabile, cosi conserva il proprio stato
 * al passaggio del mouse. */

.tv-tender-riga__scadenza .tv-button {
	position: relative;
	z-index: 1;
}

.tv-tender-riga__mercato {
	margin: 0;
	color: var(--tv-color-text);
	font-size: 14px;
	font-weight: 600;
}

.tv-tender-riga__nazione {
	color: var(--tv-color-muted);
	font-weight: 500;
}

.tv-tender-riga__regioni {
	margin: 4px 0 0;
	color: var(--tv-color-muted);
	font-size: 13px;
	line-height: 1.45;
}

.tv-tender-riga__etichetta {
	font-weight: 600;
}

.tv-tender-riga__altre {
	white-space: nowrap;
	font-weight: 600;
}

/* Nessun elemento dell'elenco deve poter allargare la pagina: su telefono un
 * solo blocco troppo largo farebbe scorrere lateralmente tutto il sito. */

.tv-archivio,
.tv-archivio__layout,
.tv-archivio__colonna-risultati,
.tv-elenco-tender,
.tv-tender-riga,
.tv-tender-riga__corpo {
	max-width: 100%;
	min-width: 0;
}

/* --- Colonna della scadenza -------------------------------------------- */

.tv-tender-riga__scadenza {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	gap: 4px;
	min-width: 140px;
	padding-left: 18px;
	border-left: 1px solid var(--tv-color-border);
	text-align: right;
}

.tv-tender-riga__giorni {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
}

.tv-tender-riga__giorni strong {
	font-size: 16px;
	font-variant-numeric: tabular-nums;
}

/* Tre livelli, stessa famiglia: il rosso del marchio per chi scade a giorni,
   un ambra per chi ha qualche settimana, il grigio per chi ha tempo. Niente
   verde: una scadenza lontana non e una buona notizia, e solo meno urgente. */
.tv-tender-riga--urgente .tv-tender-riga__giorni {
	background: rgba(188, 24, 35, .10);
	color: var(--tv-color-accent);
}

.tv-tender-riga--attenzione .tv-tender-riga__giorni {
	background: rgba(138, 106, 24, .12);
	color: #9A580C;
}

.tv-tender-riga--calma .tv-tender-riga__giorni {
	background: var(--tv-color-surface-alt);
	color: var(--tv-color-muted);
}

.tv-tender-riga__data {
	color: var(--tv-color-muted);
	font-size: 12px;
	white-space: nowrap;
}

.tv-tender-riga__scadenza .tv-button {
	margin-top: 6px;
}

/* --- Pulsante dei filtri, solo su schermo stretto ---------------------- */

.tv-filtri__toggle {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-bottom: 16px;
	padding: 13px 16px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-text);
	border-radius: var(--tv-radius);
	color: var(--tv-color-text);
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.tv-filtri__toggle-attivi {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	background: var(--tv-color-accent);
	border-radius: 11px;
	color: #fff;
	font-size: 12px;
	line-height: 1;
}

.tv-filtri__toggle-attivi[hidden] {
	display: none;
}

/* =========================================================================
 * Adattamento agli schermi stretti
 * ====================================================================== */

@media only screen and (max-width: 1023px) {

	.tv-archivio__layout {
		grid-template-columns: 250px minmax(0, 1fr);
		gap: 24px;
	}

	.tv-tender-riga__scadenza {
		min-width: 118px;
		padding-left: 14px;
	}
}

@media only screen and (max-width: 899px) {

	/* Sotto questa soglia due colonne lascerebbero a entrambe uno spazio
	 * inutilizzabile: i filtri diventano un pannello richiudibile in testa. */

	.tv-archivio__layout {
		display: block;
	}

	.tv-filtri__toggle {
		display: flex;
	}

	.tv-archivio__colonna-filtri {
		position: static;
		display: none;
		margin-bottom: 22px;
	}

	.tv-archivio__colonna-filtri.is-aperto {
		display: block;
	}

	.tv-archivio__colonna-filtri .tv-filtri {
		max-height: none;
		overflow: visible;
	}

	.tv-filtri__conferma {
		display: block;
	}

	/* Con il dito le voci vanno distanziate: 44px e la misura minima
	 * raccomandata per un bersaglio tattile. */

	.tv-archivio__colonna-filtri .tv-filtro {
		min-height: 44px;
		padding-top: 9px;
		padding-bottom: 9px;
	}
}

@media only screen and (max-width: 599px) {

	.tv-archivio__title {
		font-size: 26px;
	}

	.tv-archivio__intro {
		font-size: 15px;
	}

	.tv-archivio__barra .tv-filtri__conteggio {
		font-size: 16px;
	}

	/* La riga passa a due blocchi impilati: la scadenza torna orizzontale sotto
	 * al titolo invece di comprimere la colonna del testo. */

	.tv-tender-riga {
		flex-direction: column;
		gap: 12px;
		padding: 14px 15px;
	}

	.tv-tender-riga__scadenza {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: flex-start;
		min-width: 0;
		padding: 12px 0 0;
		border-top: 1px solid var(--tv-color-border);
		border-left: 0;
		text-align: left;
	}

	/* Su telefono il pulsante andrebbe a capo in modo irregolare da riga a riga:
	 * l'intero riquadro e gia tappabile, quindi resta solo la scadenza. */

	.tv-tender-riga__scadenza .tv-button {
		display: none;
	}

	.tv-tender-riga__titolo {
		font-size: 16px;
	}
}


/* =========================================================================
 * Checklist gerarchica nel profilo
 * ====================================================================== */

.tv-dashboard .tv-checklist__item--livello-1 {
	padding-left: 22px;
}

.tv-dashboard .tv-checklist__item--livello-2 {
	padding-left: 44px;
}

.tv-dashboard .tv-checklist__item.is-gruppo {
	margin-top: 8px;
	font-weight: 600;
}

.tv-checklist__gruppo {
	color: var(--tv-color-muted, #6b7280);
	font-size: 12px;
	font-weight: 400;
}


/* =========================================================================
 * Gruppi di filtri richiudibili
 * ====================================================================== */

/* Con tre gruppi aperti la colonna diventa lunga: <summary> li rende
 * richiudibili senza JavaScript, e il triangolo nativo dice che si aprono. */

.tv-archivio__colonna-filtri .tv-filtri__legend {
	display: block;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.tv-archivio__colonna-filtri .tv-filtri__legend::-webkit-details-marker {
	display: none;
}

.tv-archivio__colonna-filtri .tv-filtri__legend::before {
	content: "\25B8";
	display: inline-block;
	width: 1em;
	margin-right: 2px;
	color: var(--tv-color-muted);
	font-size: 11px;
	transition: transform .15s ease-in-out;
}

.tv-archivio__colonna-filtri details[open] > .tv-filtri__legend::before {
	transform: rotate(90deg);
}

.tv-archivio__colonna-filtri .tv-filtri__legend:hover {
	color: var(--tv-color-accent);
}

.tv-archivio__colonna-filtri .tv-filtri__legend:focus-visible {
	outline: 2px solid var(--tv-color-accent);
	outline-offset: 2px;
}

.tv-archivio__colonna-filtri .tv-filtri__disponibili {
	padding-left: calc(1em + 2px);
}

/* -------------------------------------------------------------------------
 * Pulsanti: colore del testo in tutti gli stati del link.
 *
 * I temi colorano i link con regole del tipo `#top .main_color a:hover`. Un
 * selettore che parte da un id batte qualunque numero di classi, quindi non
 * c'è modo di vincere restando su classi: su un pulsante pieno il risultato
 * era testo bordeaux su fondo bordeaux, cioè un pulsante invisibile ma
 * cliccabile.
 *
 * Qui si usa !important, che di norma eviteremmo. È il caso in cui serve: il
 * plugin deve funzionare sotto qualsiasi tema, e la leggibilità del testo su
 * un pulsante non è negoziabile. Sfondo e testo vengono dichiarati insieme
 * per ogni stato, così non possono mai finire dello stesso colore.
 * ---------------------------------------------------------------------- */
a.tv-button,
a.tv-button:link,
a.tv-button:visited,
a.tv-button:hover,
a.tv-button:focus,
a.tv-button:active {
	text-decoration: none !important;
}

a.tv-button--primary,
a.tv-button--primary:link,
a.tv-button--primary:visited {
	background-color: var(--tv-color-accent) !important;
	color: #ffffff !important;
}

a.tv-button--primary:hover,
a.tv-button--primary:focus,
a.tv-button--primary:active {
	background-color: var(--tv-color-accent-dark) !important;
	color: #ffffff !important;
}

a.tv-button--secondary,
a.tv-button--secondary:link,
a.tv-button--secondary:visited {
	background-color: var(--tv-color-surface) !important;
	border-color: var(--tv-color-accent) !important;
	color: var(--tv-color-accent) !important;
}

a.tv-button--secondary:hover,
a.tv-button--secondary:focus,
a.tv-button--secondary:active {
	background-color: var(--tv-color-accent) !important;
	border-color: var(--tv-color-accent) !important;
	color: #ffffff !important;
}

a.tv-button--ghost,
a.tv-button--ghost:link,
a.tv-button--ghost:visited {
	background-color: transparent !important;
	border-color: var(--tv-color-border) !important;
	color: var(--tv-color-muted) !important;
}

a.tv-button--ghost:hover,
a.tv-button--ghost:focus,
a.tv-button--ghost:active {
	background-color: transparent !important;
	border-color: var(--tv-color-accent) !important;
	color: var(--tv-color-accent) !important;
}

/* Il contorno di messa a fuoco deve restare visibile su entrambi i fondi:
   chi naviga da tastiera deve vedere dove si trova. */
a.tv-button:focus-visible {
	outline: 3px solid rgba(188, 24, 35, 0.35) !important;
	outline-offset: 2px;
}

.tv-panel__nota {
	margin-top: 10px;
	color: var(--tv-color-muted);
	font-size: 14px;
}

/* Campi che dipendono dal valore di un altro campo. */
.tv-field--condizionale {
	display: none;
}

.tv-field--condizionale.is-visibile {
	display: block;
}

/* -------------------------------------------------------------------------
 * Indicatori dell'area riservata e richiamo ai servizi.
 * ---------------------------------------------------------------------- */
.tv-indicatori {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
	margin: 0 0 24px;
}

.tv-indicatore {
	padding: 18px 20px;
	background: var(--tv-color-surface);
	border: 1px solid var(--tv-color-border);
	border-top: 4px solid var(--tv-color-accent);
	border-radius: 4px;
}

.tv-indicatore__numero {
	display: block;
	font-size: 38px;
	font-weight: 700;
	line-height: 1;
}

.tv-indicatore__etichetta {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--tv-color-muted);
}

/* Richiamo ai servizi in fondo all'archivio: titolo, sottotitolo e pulsante
   centrati, uno per riga (feedback del 29/09/2026). */
.tv-richiamo {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: center;
	text-align: center;
	margin-top: 32px;
	padding: 32px 24px;
	background: var(--tv-color-surface);
	border-top: 3px solid var(--tv-color-accent);
}

.tv-richiamo__testo {
	width: 100%;
}

.tv-richiamo__titolo {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
}

.tv-richiamo__sottotitolo {
	margin: 6px 0 0;
	color: var(--tv-color-muted);
}

.tv-richiamo__azione {
	margin: 4px 0 0;
}

.tv-stato-vuoto__azioni,
.tv-stato-vuoto__azione,
.tv-dashboard__azioni {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}

@media (max-width: 780px) {
	.tv-indicatori {
		grid-template-columns: 1fr;
	}

	.tv-indicatore__numero {
		font-size: 30px;
	}
}

/* Modulo di contatto: in evidenza, dentro un riquadro con il bordo rosso
   (feedback del 29/09/2026). I colori vanno dichiarati qui: nelle pagine
   editoriali non c'è un contenitore del plugin che li definisca, e senza il
   pulsante "Invia" risultava bianco su bianco. */
.tv-contatto {
	--tv-color-accent: #D31522;
	--tv-color-accent-dark: #B8121E;
	--tv-color-text: #2B2B2B;
	--tv-color-muted: #545454;
	--tv-color-border: #E5E0DA;
	--tv-color-surface: #F7F4F0;
	--tv-radius: 4px;
	max-width: 640px;
	padding: 28px 32px;
	background: #fff;
	border: 2px solid var(--tv-color-accent);
	border-radius: var(--tv-radius);
}

/* Enfold colora di grigio i bordi di ogni riquadro dentro le sezioni: qui
   serve una regola più forte perché resti rosso. */
#top .tv-contatto {
	border: 2px solid #D31522 !important;
}

.tv-contatto .tv-contatto__nota {
	display: block;
	margin: 8px 0 14px;
	text-align: left;
	color: var(--tv-color-muted);
	font-size: 15px;
}

.tv-contatto .tv-form__actions {
	margin: 0;
	text-align: left;
}

.tv-contatto .tv-button--primary {
	background: var(--tv-color-accent);
	border-color: var(--tv-color-accent);
	color: #fff;
}

.tv-contatto .tv-button--primary:hover,
.tv-contatto .tv-button--primary:focus {
	background: var(--tv-color-accent-dark);
	border-color: var(--tv-color-accent-dark);
	color: #fff;
}

@media (max-width: 767px) {
	.tv-contatto {
		padding: 20px 18px;
	}
}

.tv-contatto__titolo {
	margin: 0 0 6px;
}

.tv-contatto__servizio {
	margin: 0 0 16px;
	padding: 10px 14px;
	background: var(--tv-color-surface);
	border-left: 4px solid var(--tv-color-accent);
	font-size: 15px;
}

/* L'esca deve sparire agli occhi ma restare compilabile da un robot: niente
   display:none, che alcuni riconoscono e saltano. */
.tv-form__esca {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* =========================================================================
 * Pagine editoriali generate dal plugin
 *
 * Classi che compaiono dentro i blocchi di testo dell'Advanced Layout
 * Builder: Enfold non le conosce, quindi la forma la diamo qui. Restano
 * confinate nel prefisso .tv- e non toccano nulla del tema.
 * ====================================================================== */

/* Il paragrafo di apertura, subito sotto il titolo di sezione. */
#top .avia_textblock p.tv-lead {
	font-size: 1.15em;
	line-height: 1.6;
	max-width: none;
}

/* Il corpo del testo non deve correre per tutta la larghezza dello schermo:
   oltre le settanta battute per riga l'occhio perde il capo della riga
   successiva. Le tabelle sono escluse, perché a loro la larghezza serve. */
#top .avia_textblock > p,
#top .avia_textblock > ul.tv-elenco,
#top .avia_textblock > ol.tv-elenco,
#top .avia_textblock > blockquote.tv-citazione {
	max-width: none;
}

#top .avia_textblock .tv-elenco {
	margin: 0 0 1em 1.2em;
	padding: 0;
}

#top .avia_textblock .tv-elenco li {
	margin-bottom: 0.6em;
	line-height: 1.55;
}

#top .avia_textblock ol.tv-elenco li::marker {
	font-weight: 700;
}

/* La citazione sul principio di parità di trattamento. */
#top .avia_textblock blockquote.tv-citazione {
	margin: 0;
	padding: 0.2em 0 0.2em 1.2em;
	border-left: 3px solid currentColor;
	font-size: 1.08em;
	line-height: 1.6;
	font-style: italic;
	opacity: 0.92;
}

/* I quattro numeri chiave in testa a ogni scheda mercato. */
#top .avia_textblock p.tv-numero {
	margin: 0;
	line-height: 1.25;
}

#top .avia_textblock p.tv-numero strong {
	display: block;
	font-size: 1.9em;
	font-weight: 700;
}

#top .avia_textblock p.tv-numero span {
	display: block;
	font-size: 0.85em;
	opacity: 0.8;
}

/* Le tabelle scorrono dentro il proprio riquadro: allargare la pagina per
   una tabella significa far scorrere di lato tutto il resto. Il disegno e
   quello del prototipo: intestazioni monospaziate, una riga rossa sotto. */
#top .tv-tabella {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 20px 0 24px;
	border: 1px solid var(--tv-color-border);
	background: var(--tv-color-surface);
}

#top .tv-tabella table {
	width: 100%;
	min-width: 660px;
	border-collapse: collapse;
	margin: 0;
	font-size: 15px;
}

#top .tv-tabella thead th {
	font-family: 'Oswald', 'Arial Narrow', sans-serif;
	font-size: 10.5px;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--tv-color-muted);
	font-weight: 500;
	text-align: left;
	padding: 12px 14px;
	border-bottom: 2px solid var(--tv-color-accent);
	background: var(--tv-color-surface-alt);
	white-space: nowrap;
}

#top .tv-tabella td,
#top .tv-tabella tbody th {
	padding: 14px;
	border-bottom: 1px solid var(--tv-color-border);
	vertical-align: top;
	line-height: 1.45;
	text-align: left;
	font-size: 15px;
}

#top .tv-tabella tbody tr:last-child td,
#top .tv-tabella tbody tr:last-child th {
	border-bottom: none;
}

#top .tv-tabella tbody tr:hover {
	background: var(--tv-color-surface-alt);
}

#top .tv-tabella tbody th {
	font-weight: 700;
	white-space: nowrap;
}

/* -------------------------------------------------------------------------
 * Scheda del Tender (forma completa e ridotta), 1.40.0
 * ---------------------------------------------------------------------- */

.tv-scheda-tender .tv-datalist__row.is-vuota dd {
	color: var(--tv-color-muted);
}

.tv-scheda-tender dd p {
	margin: 0 0 .6em;
}

.tv-scheda-tender dd p:last-child {
	margin-bottom: 0;
}

.tv-candidatura__scheda {
	margin-top: 16px;
}

.tv-candidatura__scheda > summary {
	margin-bottom: 10px;
	cursor: pointer;
	font-weight: 600;
}

.tv-tender-riga__tipo {
	padding: 3px 8px;
	border: 1px solid var(--tv-color-border);
	border-radius: 3px;
	color: var(--tv-color-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.tv-tender-riga__spec {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin: 6px 0 0;
	color: var(--tv-color-muted);
	font-size: 13px;
	line-height: 1.45;
}

.tv-tender-riga__requisito {
	padding: 1px 8px;
	border-radius: 10px;
	background: #e6f2ea;
	color: #1d6f42;
	font-size: 12px;
	font-weight: 600;
}

/* Modulo della pagina Contatti: fondo grigio chiaro, senza bordo rosso
   (segnalazioni del 01/10/2026). */
#top .tv-contatto.tv-contatto--grigio {
	background: var(--tv-color-surface);
	border: none !important;
}

#top .tv-contatto--grigio input[type="text"],
#top .tv-contatto--grigio input[type="email"],
#top .tv-contatto--grigio input[type="tel"],
#top .tv-contatto--grigio select,
#top .tv-contatto--grigio textarea {
	background: #ffffff;
}

/* -------------------------------------------------------------------------
 * Area riservata: "Le tue email" (1.48.0)
 * ---------------------------------------------------------------------- */

.tv-email-pref__intro {
	margin-bottom: 18px;
}

.tv-email-pref__elenco {
	margin: 0;
	padding: 0;
	border: 0;
}

.tv-email-pref__elenco[disabled] {
	opacity: .7;
}

.tv-email-pref__voce {
	padding: 14px 0;
	border-bottom: 1px solid var(--tv-color-border, #e5e1db);
}

.tv-email-pref__voce:last-child {
	border-bottom: 0;
}

.tv-email-pref__scelta {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-weight: 400;
	cursor: pointer;
}

.tv-email-pref__scelta input {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 3px 0 0;
	accent-color: var(--tv-color-accent, #D31522);
}

.tv-email-pref__scelta .tv-form__hint {
	display: block;
	margin-top: 2px;
}

.tv-email-pref__nota {
	margin: 8px 0 0 30px;
	padding: 8px 12px;
	background: var(--tv-color-surface-alt, #f7f4f0);
	border-left: 3px solid var(--tv-color-muted, #7B7C80);
	font-size: 14px;
}


/* -------------------------------------------------------------------------
 * 1.49.0 — feedback del 09/10/2026
 * ---------------------------------------------------------------------- */

/* Pulsanti centrati negli stati vuoti e in fondo all'area Importatore. */
.tv-stato-vuoto__azioni--centro,
.tv-dashboard__azioni--centro {
	justify-content: center;
}

.tv-dashboard__azioni--centro {
	margin-top: 32px;
}

/* Profilo: Biologico e Sostenibile affiancati, ognuno con i suoi campi. */
.tv-profilo__colonna {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-width: 0;
	padding: 16px 18px;
	background: var(--tv-color-surface-alt, #F7F4F0);
	border: 1px solid var(--tv-color-border, #E5E0DA);
	border-radius: var(--tv-radius, 4px);
}

.tv-profilo__colonna .tv-field {
	grid-column: auto;
}

/* Tabella delle candidature: tutta la riga porta alla candidatura. */
.tv-tabella--cliccabile .tv-riga-link {
	cursor: pointer;
	transition: background-color .15s ease-in-out;
}

.tv-tabella--cliccabile .tv-riga-link:hover td,
.tv-tabella--cliccabile .tv-riga-link:focus-within td {
	background: var(--tv-color-surface-alt, #F7F4F0);
}

.tv-riga-link__principale {
	color: var(--tv-color-text, #2B2B2B);
	font-weight: 600;
	text-decoration: none;
}

.tv-riga-link:hover .tv-riga-link__principale,
.tv-riga-link__principale:focus {
	color: var(--tv-color-accent, #D31522);
	text-decoration: underline;
}

.tv-riga-link.is-bozza td:first-child {
	box-shadow: inset 3px 0 0 #d69e00;
}

.tv-alert__elenco {
	margin: 6px 0 0;
	padding-left: 20px;
}

/* Candidatura inviata, in sola lettura. */
.tv-candidatura-dettaglio__indietro {
	margin: 0 0 14px;
	font-size: 14px;
}

.tv-candidatura-dettaglio__indietro a {
	color: var(--tv-color-muted, #7B7C80);
	text-decoration: none;
}

.tv-candidatura-dettaglio__indietro a:hover,
.tv-candidatura-dettaglio__indietro a:focus {
	color: var(--tv-color-accent, #D31522);
	text-decoration: underline;
}

.tv-candidatura-dettaglio__titoletto {
	margin: 26px 0 10px;
	color: var(--tv-color-accent, #D31522);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.tv-candidatura-dettaglio .tv-alert {
	margin-top: 26px;
}

/* Modulo di candidatura: nome del file, file già caricati, nota finale. */
.tv-documenti__nota {
	margin: 12px 0 0;
	padding: 10px 14px;
	background: var(--tv-color-surface, #fff);
	border-left: 3px solid var(--tv-color-accent, #D31522);
	font-size: 14px;
}

.tv-form__caricato {
	margin: 6px 0 0;
	font-size: 14px;
}

.tv-form__caricato a {
	color: var(--tv-color-accent, #D31522);
	font-weight: 600;
	overflow-wrap: anywhere;
}

.tv-candidatura__nota-invio {
	margin-top: 12px;
}

/* "Le tue email": la newsletter è un consenso a parte. */
.tv-email-pref__voce--newsletter {
	margin-top: 12px;
	padding: 14px 16px;
	background: var(--tv-color-surface-alt, #F7F4F0);
	border: 0;
	border-radius: var(--tv-radius, 4px);
}

/* Area dell'Importatore. */
.tv-importatore__intro {
	margin: 0 0 14px;
	color: var(--tv-color-muted, #7B7C80);
	font-size: 15px;
}

.tv-importatore__tabella td {
	font-size: 14px;
}

.tv-importatore__tabella tr.is-evidenza td {
	background: #fff8e6;
}

.tv-importatore__tabella tr.is-evidenza td:first-child {
	box-shadow: inset 4px 0 0 var(--tv-color-accent, #D31522);
}

/* Codice del Tender sotto il titolo (documento del 23/10/2026). */
.tv-importatore__codice {
	display: block;
	margin-top: 2px;
	color: var(--tv-color-muted, #7B7C80);
	font-size: 12px;
	letter-spacing: .02em;
}

/* Menù di stato e pulsante UPDATE, affiancati. */
.tv-importatore__stato-form {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
}

.tv-importatore__comandi {
	display: flex;
	flex: 0 0 100%;
	gap: 8px;
	align-items: stretch;
}

.tv-importatore__comandi .tv-importatore__menu {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
	padding: 8px 10px;
	font-size: 14px;
}

/* Enfold dà ai menù a tendina un margine sotto: il pulsante accanto si
   allungherebbe fino a lì. */
#top .tv-importatore__comandi .tv-importatore__menu {
	margin: 0;
	color: var(--tv-color-text, #2B2B2B);
}

/* Enfold colora le righe pari con il grigio dei testi secondari: sembravano
   righe disattivate. */
#top .tv-importatore__tabella tbody tr:nth-child(even) {
	color: var(--tv-color-text, #2B2B2B);
}

.tv-importatore__tender {
	display: block;
}

.tv-importatore__comandi .tv-button {
	flex: 0 0 auto;
	padding: 8px 14px;
	font-size: 12px;
	letter-spacing: .04em;
}

.tv-importatore__stato {
	margin: 8px 0 0;
	color: var(--tv-color-muted, #7B7C80);
	font-size: 13px;
}

@media screen and (min-width: 701px) {

	.tv-importatore__tabella td[data-label="Status"] {
		min-width: 280px;
	}

	.tv-importatore__tabella td[data-label="Tender"] {
		min-width: 180px;
	}
}

@media screen and (max-width: 700px) {

	/* Sui telefoni il menù di stato va a capo sotto l'etichetta. */
	.tv-importatore__tabella td[data-label="Status"] {
		display: block;
	}

	.tv-importatore__tabella td[data-label="Status"]::before {
		display: block;
		margin-bottom: 8px;
	}
}

/* Dal link dell'email la riga non deve finire sotto l'intestazione fissa. */
.tv-importatore__tabella tr[id] {
	scroll-margin-top: 140px;
}

/* -------------------------------------------------------------------------
 * 1.51.0 — condizioni d'uso, primo accesso, impegno dell'Importatore
 * ---------------------------------------------------------------------- */

.tv-registrazione__condizioni .tv-consent + .tv-consent,
.tv-primo-accesso .tv-consent + .tv-consent {
	margin-top: 10px;
}

.tv-primo-accesso__intro {
	margin: 0 0 22px;
	font-size: 17px;
}

.tv-importatore__impegno,
.tv-importatore__nota {
	flex: 0 0 100%;
}

.tv-importatore__impegno {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0 0 6px;
	font-size: 13px;
	line-height: 1.45;
}

.tv-importatore__impegno input {
	flex: 0 0 auto;
	margin-top: 3px;
}

.tv-importatore__nota {
	margin: 0 0 8px;
	color: var(--tv-color-muted, #7B7C80);
	font-size: 12px;
}

.tv-dashboard__condizioni {
	margin: 28px 0 0;
	color: var(--tv-color-muted, #7B7C80);
	font-size: 14px;
	text-align: center;
}

/* -------------------------------------------------------------------------
 * 1.52.0 — condizioni generali a ogni candidatura (documento del 23/10/2026)
 * ---------------------------------------------------------------------- */

.tv-condizioni-cand {
	margin: 8px 0 24px;
	padding: 24px 28px;
	background: var(--tv-color-surface-alt, #F7F4F0);
	border: 1px solid var(--tv-color-border, #E5E0DA);
	border-radius: var(--tv-radius, 4px);
}

.tv-condizioni-cand__titolo {
	margin: 0 0 14px;
	font-size: 22px;
}

.tv-condizioni-cand__etichetta {
	margin: 0 0 6px;
	font-weight: 600;
}

/* Riquadro a scorrimento: si legge tutto senza allungare la pagina. */
.tv-condizioni-cand__testo {
	max-height: 230px;
	margin: 0 0 18px;
	padding: 14px 18px;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--tv-color-border, #E5E0DA);
	border-radius: var(--tv-radius, 4px);
	color: var(--tv-color-muted, #545454);
	font-size: 14px;
	line-height: 1.55;
}

.tv-condizioni-cand__testo:focus {
	outline: 2px solid var(--tv-color-accent, #D31522);
	outline-offset: 2px;
}

.tv-condizioni-cand__testo p {
	margin: 0 0 10px;
}

.tv-condizioni-cand__testo p:last-child {
	margin-bottom: 0;
}

.tv-condizioni-cand__testo a {
	color: var(--tv-color-accent, #D31522);
}

.tv-condizioni-cand .tv-consent + .tv-consent {
	margin-top: 12px;
}

.tv-condizioni-cand .tv-form__hint {
	margin-top: 12px;
}

@media (max-width: 767px) {
	.tv-condizioni-cand {
		padding: 18px 16px;
	}
}

/* Testo delle condizioni accettate, nella candidatura inviata. */
.tv-condizioni-testo {
	margin-top: 6px;
	font-size: 14px;
}

.tv-condizioni-testo summary {
	color: var(--tv-color-accent, #D31522);
	cursor: pointer;
}

.tv-condizioni-testo p {
	margin: 8px 0 0;
}

@media screen and (max-width: 700px) {

	/* Sui telefoni i valori stanno a destra dell'etichetta, anche il Tender. */
	.tv-importatore__tender {
		text-align: right;
	}
}
