.vmp-app {
	font-family: Lato, sans-serif;
	color: #193229;
	max-width: 720px;
}
.vmp-box {
	background: #f7f7f7;
	border-radius: 22px;
	padding: 32px;
}
.vmp-box--admin-warning {
	background: #fff3cd;
	border: 1px solid #e0c260;
}

.vmp-steps {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-bottom: 28px;
}
.vmp-steps__item {
	font-family: Arial, sans-serif;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #a3a3a3;
}
.vmp-steps__item.is-active { color: #186641; }
.vmp-steps__item.is-done { color: #103f2b; }

.vmp-panel h3 {
	font-family: Georgia, serif;
	font-weight: 700;
	font-size: 24px;
	margin: 0 0 20px;
	color: #103f2b;
}

.vmp-back {
	background: none;
	border: none;
	color: #186641;
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
	padding: 0 0 16px;
	display: block;
}

.vmp-loading { color: #63736c; font-size: 14px; }

.vmp-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}
.vmp-card {
	text-align: left;
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 16px;
	padding: 18px 20px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-family: Lato, sans-serif;
	transition: border-color 0.15s ease, transform 0.15s ease;
}
.vmp-card:hover { border-color: #186641; transform: translateY(-2px); }
.vmp-card strong { font-family: Georgia, serif; font-size: 17px; color: #193229; }
.vmp-card__desc { font-size: 13px; color: #63736c; line-height: 1.5; }
.vmp-card__meta { font-size: 12px; color: #186641; font-weight: 700; }

.vmp-card--persona { flex-direction: row; align-items: center; gap: 12px; }
.vmp-card--persona img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.vmp-card__avatar-vuoto { width: 52px; height: 52px; border-radius: 50%; background: #dceee4; flex-shrink: 0; display: block; }

.vmp-calendar-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}
.vmp-calendar-head button {
	background: #f0f0f0;
	border: none;
	border-radius: 50%;
	width: 32px;
	height: 32px;
	font-size: 16px;
	cursor: pointer;
}
.vmp-calendar-head strong { font-family: Georgia, serif; font-size: 16px; }

.vmp-giorni {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}
.vmp-giorno {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	padding: 10px 14px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 56px;
}
.vmp-giorno__num { font-family: Georgia, serif; font-weight: 700; font-size: 18px; }
.vmp-giorno__mese { font-size: 10px; text-transform: uppercase; color: #63736c; }
.vmp-giorno.is-selected { background: #186641; border-color: #186641; }
.vmp-giorno.is-selected .vmp-giorno__num,
.vmp-giorno.is-selected .vmp-giorno__mese { color: #fff; }

.vmp-orari {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}
.vmp-orario {
	background: #fff;
	border: 1px solid #e2e2e2;
	border-radius: 999px;
	padding: 8px 18px;
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
}
.vmp-orario.is-selected { background: #103f2b; color: #fff; border-color: #103f2b; }

.vmp-trasporto { margin: 16px 0; font-size: 14px; }
.vmp-trasporto label { display: flex; align-items: center; gap: 8px; }

.vmp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #186641;
	color: #fff;
	border: 1px solid #186641;
	border-radius: 999px;
	padding: 14px 28px;
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.3px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.vmp-btn:hover { background: #dbebe0; color: #103f2b; border-color: #dbebe0; }
.vmp-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.vmp-panel [id^="vmp-form-dati"] p { margin: 0 0 14px; }
.vmp-panel input[type="text"],
.vmp-panel input[type="tel"],
.vmp-panel input[type="email"],
.vmp-panel textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d5d5d5;
	border-radius: 8px;
	font-family: Lato, sans-serif;
	font-size: 14px;
	box-sizing: border-box;
}
.vmp-panel label { font-size: 13px; font-weight: 700; color: #103f2b; display: block; }

.vmp-riepilogo {
	background: #f7f7f7;
	border-radius: 16px;
	padding: 18px 20px;
	margin-bottom: 20px;
	font-size: 14px;
}
.vmp-riepilogo p { margin: 4px 0; }
.vmp-riepilogo__prezzo { font-weight: 700; color: #103f2b; margin-top: 10px !important; }
.vmp-riepilogo__hold { color: #63736c; font-size: 12px; }

.vmp-errore { color: #b32d2e; font-size: 13px; }
