/**
 * Frontend CSS - Prenotazioni ANIEF
 *
 * Stili per:
 * - form disponibilità nel frontend;
 * - messaggi di feedback;
 * - note / editor;
 * - campi disabilitati;
 * - calendario frontend;
 * - badge versione (v2.3.0).
 *
 * @version 2.6.0
 */

/* Badge versione frontend (v2.3.0) - discreto */

.anief-frontend-version-badge {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	padding: 0.35rem 0.75rem;
	margin: 0.5rem auto 1rem;
	max-width: fit-content;
	background: #f8f9fa;
	border: 1px solid #e5e7eb;
	border-radius: 4px;
	font-size: 0.7rem;
	opacity: 0.7;
}

.anief-frontend-version-text {
	color: #6b7280;
	font-weight: 400;
	font-style: italic;
}

.anief-frontend-version-number {
	color: #9ca3af;
	padding: 0.1rem 0.4rem;
	border-radius: 3px;
	background: #ffffff;
	font-weight: 500;
	font-size: 0.65rem;
}

/* Responsive per badge versione */
@media (max-width: 600px) {
	.anief-frontend-version-badge {
		font-size: 0.65rem;
		padding: 0.3rem 0.6rem;
		gap: 0.25rem;
	}
}

/* Contenitore principale dello shortcode */

.anief-prenotazioni-frontend {
	border: 0px solid #e5e7eb;
	/* padding: 16px 18px; */
	border-radius: 4px;
	background: #ffffff;
	box-sizing: border-box;
}

.anief-prenotazioni-frontend h2,
.anief-prenotazioni-frontend h3 {
	margin-top: 0;
}

/* Messaggi di feedback */

.anief-prenotazioni-messages {
	margin-bottom: 12px;
}

.anief-prenotazioni-message {
	padding: 8px 10px;
	border-radius: 3px;
	font-size: 13px;
	margin: 0 0 6px;
}

.anief-prenotazioni-message-success {
	background: #ecfdf5;
	border: 1px solid #6ee7b7;
	color: #065f46;
}

.anief-prenotazioni-message-error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
}

/* Layout form */

.anief-prenotazioni-form {
	margin-top: 10px;
}

.anief-prenotazioni-form-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.anief-prenotazioni-form-col {
	flex: 1 1 250px;
	min-width: 0;
}

.anief-prenotazioni-form-group {
	margin-bottom: 10px;
}

.anief-prenotazioni-form-group label {
	display: block;
	font-weight: 500;
	font-size: 13px;
	margin-bottom: 4px;
}

.anief-prenotazioni-form-group input[type="text"],
.anief-prenotazioni-form-group input[type="number"],
.anief-prenotazioni-form-group input[type="email"],
.anief-prenotazioni-form-group select,
.anief-prenotazioni-form-group textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Campo note (editor frontend) */

.anief-prenotazioni-note-wrapper-front {
	width: 100%;
	max-width: 100%;
}

.anief-prenotazioni-note-editor-front {
	width: 100%;
	max-width: 100%;
}

.anief-prenotazioni-note-editor-front .wp-editor-area {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Campi disabilitati (es. quando il tipo non prevede sede/email/telefono) */

.anief-prenotazioni-field-disabled,
.anief-prenotazioni-field-disabled select,
.anief-prenotazioni-field-disabled input[type="checkbox"],
.anief-prenotazioni-field-disabled input[type="text"],
.anief-prenotazioni-field-disabled input[type="email"],
.anief-prenotazioni-field-disabled input[type="number"],
.anief-prenotazioni-field-disabled textarea {
	opacity: 0.5;
	cursor: not-allowed;
}

/* Sezione calendario a fianco/sotto il form */

.anief-prenotazioni-calendar-wrapper {
	margin-top: 20px;
}


/* Responsività minima */

@media (max-width: 782px) {
	.anief-prenotazioni-form-grid {
		flex-direction: column;
	}

	.anief-prenotazioni-calendar-table th,
	.anief-prenotazioni-calendar-table td {
		font-size: 10px;
		padding: 3px 4px;
	}
}
/* Coerenza grafica con Divi per lo shortcode Prenotazioni */
.anief-prenotazioni-divi-wrap {
  font: inherit;
  color: inherit;
}

.anief-prenotazioni-divi-wrap h2,
.anief-prenotazioni-divi-wrap h3 {
  margin: 0 0 12px;
  line-height: 1.2;
}

.anief-prenotazioni-divi-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 10px;
  padding: 18px;
  margin: 0 0 18px;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

.anief-prenotazioni-divi-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 981px) {
  .anief-prenotazioni-divi-grid.cols-2 { grid-template-columns: 1fr 1fr; }
  .anief-prenotazioni-divi-grid.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
  .anief-prenotazioni-divi-span-2 { grid-column: 1 / -1; }
}

.anief-prenotazioni-divi-field label {
  display: block;
  font-weight: 600;
  margin: 0 0 6px;
  opacity: .9;
}

.anief-prenotazioni-divi-field .description,
.anief-prenotazioni-divi-help {
  margin-top: 6px;
  font-size: 0.92em;
  opacity: .75;
}

.anief-prenotazioni-divi-wrap input[type="text"],
.anief-prenotazioni-divi-wrap input[type="number"],
.anief-prenotazioni-divi-wrap input[type="date"],
.anief-prenotazioni-divi-wrap select,
.anief-prenotazioni-divi-wrap textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,.18);
  background: #fff;
  font: inherit;
  line-height: 1.3;
  transition: box-shadow .15s ease, border-color .15s ease;
}

.anief-prenotazioni-divi-wrap input:focus,
.anief-prenotazioni-divi-wrap select:focus,
.anief-prenotazioni-divi-wrap textarea:focus {
  outline: none;
  border-color: rgba(0,0,0,.35);
  box-shadow: 0 0 0 3px rgba(0,0,0,.08);
}

/* Select orari (multi) più “pulito” */
.anief-prenotazioni-divi-wrap select[multiple] {
  min-height: 220px;
}

/* Checkbox row */
.anief-prenotazioni-divi-check {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 6px;
}
.anief-prenotazioni-divi-check input { margin: 0; }

/* Editor WP nel frontend: allinea toolbar e box */
.anief-prenotazioni-divi-wrap .wp-editor-container {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.18);
}
.anief-prenotazioni-divi-wrap .mce-top-part::before {
  box-shadow: none !important;
}

/* Bottone stile Divi (usa et_pb_button se presente) */
.anief-prenotazioni-divi-wrap .et_pb_button,
.anief-prenotazioni-divi-wrap button.et_pb_button,
.anief-prenotazioni-divi-wrap input.et_pb_button {
  border-radius: 999px;
  padding: 12px 18px;
}

/* Se Divi non applica, fallback decente */
.anief-prenotazioni-divi-wrap .anief-prenotazioni-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border-radius: 999px;
  padding: 12px 18px;
  border: 0;
  cursor: pointer;
}

/* Filtri (la tua richiesta: orizzontali) */
.anief-prenotazioni-divi-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
}
.anief-prenotazioni-divi-filters .anief-prenotazioni-divi-field {
  min-width: 220px;
  flex: 1 1 240px;
}
.anief-prenotazioni-divi-filters .anief-prenotazioni-filter-actions {
  flex: 0 0 auto;
}

/* Calendario: spazi e header */
.anief-prenotazioni-divi-wrap .anief-prenotazioni-calendar-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 8px 0 12px;
}
.anief-prenotazioni-divi-wrap .anief-prenotazioni-calendar-title {
  font-weight: 700;
  text-align: center;
  flex: 1 1 auto;
}

/* Tabelle più “Divi-like” */
.anief-prenotazioni-divi-wrap table {
  border-collapse: collapse;
}
.anief-prenotazioni-divi-wrap table th,
.anief-prenotazioni-divi-wrap table td {
  border: 1px solid rgba(0,0,0,.08);
  padding: 10px;
}

/* frontend.css - Modern Booking Form Styles */

.anief-prenotazioni-frontend {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
    color: #333;
    line-height: 1.6;
}

.anief-consulenti-box {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    padding: 32px;
    width: auto;
    margin: 0 auto;
    border: 1px solid #eaeaea;
    box-sizing: border-box;
}

/* Eventi singoli (formazione): larghezza 60% */
.anief-consulenti-box.anief-single-event {
    width: 60%;
    max-width: 60%;
}

.anief-consulenti-box-title {
    font-size: 28px;
    font-weight: 700;
    color: #1a365d;
    margin: 0 0 28px 0;
    padding-bottom: 20px;
    border-bottom: 2px solid #e2e8f0;
    text-align: center;
}

.anief-prenotazioni-message {
    padding: 16px;
    border-radius: 12px;
    margin-bottom: 24px;
    font-weight: 500;
}

.anief-prenotazioni-message-info {
    background: #e6f3ff;
    color: #0066cc;
    border: 1px solid #b3d9ff;
}
/* ------------------------------------------------------------
 * Esito prenotazione/cancellazione: messaggi “hero”
 * (solo nella pagina di esito, così l’utente capisce subito)
 * @version 1.0.0
 * ------------------------------------------------------------ */

.anief-prenotazioni-esito .anief-prenotazioni-message {
	padding: 16px 16px 16px 54px;
	border-radius: 12px;
	font-size: 16px;
	line-height: 1.45;
	font-weight: 600;
	margin: 14px 0 0;
	position: relative;

	/* look moderno */
	box-shadow: 0 10px 22px rgba(0,0,0,0.08);
	border: 1px solid rgba(0,0,0,0.08);

	/* “risalto” */
	transform: translateY(0);
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.anief-prenotazioni-esito .anief-prenotazioni-message:hover {
	transform: translateY(-1px);
	box-shadow: 0 14px 26px rgba(0,0,0,0.10);
}

/* Icona a sinistra (via pseudo-elemento) */
.anief-prenotazioni-esito .anief-prenotazioni-message::before {
	content: "ℹ";
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;

	font-size: 16px;
	font-weight: 900;

	/* fallback neutro */
	background: rgba(0,0,0,0.06);
	color: rgba(0,0,0,0.65);
}

/* Bordo laterale “semaforo” */
.anief-prenotazioni-esito .anief-prenotazioni-message-success,
.anief-prenotazioni-esito .anief-prenotazioni-message-error,
.anief-prenotazioni-esito .anief-prenotazioni-message-info {
	border-left-width: 6px;
	border-left-style: solid;
}

/* SUCCESS */
.anief-prenotazioni-esito .anief-prenotazioni-message-success {
	background: #ecfdf5; /* già coerente con il tuo stile */
	border-left-color: #10b981;
}

.anief-prenotazioni-esito .anief-prenotazioni-message-success::before {
	content: "✓";
	background: rgba(16,185,129,0.14);
	color: #065f46;
}

/* ERROR */
.anief-prenotazioni-esito .anief-prenotazioni-message-error {
	background: #fef2f2;
	border-left-color: #ef4444;
}

.anief-prenotazioni-esito .anief-prenotazioni-message-error::before {
	content: "!";
	background: rgba(239,68,68,0.14);
	color: #991b1b;
}

/* INFO */
.anief-prenotazioni-esito .anief-prenotazioni-message-info {
	background: #e6f3ff;
	border-left-color: #3b82f6;
}

.anief-prenotazioni-esito .anief-prenotazioni-message-info::before {
	content: "i";
	background: rgba(59,130,246,0.14);
	color: #1d4ed8;
}

/* Spaziatura “pagina esito” più leggibile */
.anief-prenotazioni-esito {
	padding: 6px 0;
}

/* Mobile: testo grande ma non “esploso” */
@media (max-width: 480px) {
	.anief-prenotazioni-esito .anief-prenotazioni-message {
		font-size: 15px;
		padding: 14px 14px 14px 50px;
	}
	.anief-prenotazioni-esito .anief-prenotazioni-message::before {
		left: 14px;
	}
}

/* Accessibilità: rispetta “riduci animazioni” */
@media (prefers-reduced-motion: reduce) {
	.anief-prenotazioni-esito .anief-prenotazioni-message {
		transition: none;
	}
	.anief-prenotazioni-esito .anief-prenotazioni-message:hover {
		transform: none;
	}
}

/* Form Grid Layout */
.anief-consulenti-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

/* Field Groups */
.anief-consulenti-field-group {
    position: relative;
    margin-bottom: 0;
}

.anief-consulenti-field-group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #2d3748;
    font-size: 15px;
}

/* Due colonne per desktop */
.anief-guest-form-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 18px;
}

.anief-guest-form-column {
    /* Ogni colonna occupa il suo spazio */
}

/* Responsive: passa a 1 colonna su tablet/mobile */
@media (max-width: 900px) {
    .anief-guest-form-columns {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

/* Form Controls */
.anief-consulenti-field-group select,
.anief-consulenti-field-group input[type="text"],
.anief-consulenti-field-group input[type="tel"],
.anief-consulenti-field-group input[type="email"],
.anief-consulenti-field-group input[type="date"],
.anief-consulenti-field-group input[type="number"],
.anief-consulenti-field-group input[type="time"],
.anief-consulenti-field-group textarea {
    width: 100%;
    padding: 14px 16px;
    font-size: 16px;
    line-height: 1.5;
    color: #2d3748;
    background: #fff;
    border: 2px solid #e2e8f0;
    border-radius: 10px;
    transition: all 0.3s ease;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

.anief-consulenti-field-group select:focus,
.anief-consulenti-field-group input:focus,
.anief-consulenti-field-group textarea:focus {
    outline: none;
    border-color: #4299e1;
    box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.15);
}

.anief-consulenti-field-group select:hover,
.anief-consulenti-field-group input:hover,
.anief-consulenti-field-group textarea:hover {
    border-color: #a0aec0;
}

/* Select specific styling */
.anief-consulenti-field-group select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%234a5568' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 16px;
    padding-right: 48px;
    cursor: pointer;
}

.anief-consulenti-field-group select option:disabled {
    color: #a0aec0;
    background-color: #f7fafc;
}

/* Textarea specific */
.anief-consulenti-field-group textarea {
    min-height: 120px;
    resize: vertical;
    font-family: inherit;
}

/* Number input - mantieni spinner nativo */
.anief-consulenti-field-group input[type="number"] {
    -webkit-appearance: auto; /* Chrome/Safari */
    appearance: auto; /* Firefox */
    -moz-appearance: textfield; /* Firefox */
}

/* Chrome/Safari number spinner */
.anief-consulenti-field-group input[type="number"]::-webkit-outer-spin-button,
.anief-consulenti-field-group input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: inner-spin-button;
    opacity: 1;
}

/* Date e Time input - mantieni calendar picker nativo */
.anief-consulenti-field-group input[type="date"],
.anief-consulenti-field-group input[type="time"] {
    -webkit-appearance: auto;
    appearance: auto;
}

/* Icona calendario nativa */
.anief-consulenti-field-group input[type="date"]::-webkit-calendar-picker-indicator,
.anief-consulenti-field-group input[type="time"]::-webkit-calendar-picker-indicator {
    opacity: 0.6;
    cursor: pointer;
    padding: 4px;
}

.anief-consulenti-field-group input[type="date"]::-webkit-calendar-picker-indicator:hover,
.anief-consulenti-field-group input[type="time"]::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

/* School Search Results */
.anief-prenotazioni-school-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border: 2px solid #4299e1;
    border-top: none;
    border-radius: 0 0 10px 10px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.anief-prenotazioni-school-results div {
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid #e2e8f0;
    transition: background 0.2s ease;
}

.anief-prenotazioni-school-results div:hover {
    background: #edf2f7;
}

.anief-prenotazioni-school-results div:last-child {
    border-bottom: none;
}

/* Button */
.button.button-primary {
    background: linear-gradient(135deg, #4299e1 0%, #3182ce 100%);
    color: white;
    border: none;
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(66, 153, 225, 0.25);
}

.button.button-primary:hover {
    background: linear-gradient(135deg, #3182ce 0%, #2c5282 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 8px rgba(66, 153, 225, 0.3);
}

.button.button-primary:active {
    transform: translateY(0);
}

/* Status Message */
#anief-guest-status {
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s ease;
}

#anief-guest-status.success {
    background: #c6f6d5;
    color: #22543d;
}

#anief-guest-status.error {
    background: #fed7d7;
    color: #742a2a;
}

#anief-guest-status.loading {
    background: #e6f3ff;
    color: #0066cc;
}

/* Small text */
.anief-consulenti-field-group small {
    display: block;
    margin-top: 6px;
    font-size: 13px;
    color: #718096;
}

/* Responsive Design */
@media (max-width: 1024px) {
    .anief-consulenti-box {
        padding: 24px 20px;
        margin: 0 12px;
        border-radius: 12px;
    }

    /* Eventi singoli: full width su mobile */
    .anief-consulenti-box.anief-single-event {
        width: auto;
        max-width: none;
    }

    .anief-consulenti-box-title {
        font-size: 24px;
        padding-bottom: 16px;
        margin-bottom: 20px;
    }

    .anief-consulenti-form-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px;
    }

    .anief-consulenti-field-group[style*="grid-column"] {
        grid-column: 1 !important;
    }

    .button.button-primary {
        width: 100%;
        padding: 18px 24px;
    }
    
    #anief-guest-status {
        width: 100%;
        text-align: center;
        margin-top: 12px;
    }
}

/* Responsive mobile */
@media (max-width: 600px) {
    .anief-consulenti-form-grid {
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    .anief-consulenti-field-group[style*="grid-column"] {
        grid-column: 1 !important;
    }
}

/* Focus states for accessibility */
.anief-consulenti-field-group select:focus-visible,
.anief-consulenti-field-group input:focus-visible,
.anief-consulenti-field-group textarea:focus-visible {
    outline: 2px solid #4299e1;
    outline-offset: 2px;
}

/* Loading state for selects with disabled options */
.anief-consulenti-field-group select option[disabled] {
    opacity: 0.6;
}

/* Placeholder styling */
.anief-consulenti-field-group input::placeholder {
    color: #a0aec0;
    opacity: 0.8;
}

/* Animation for form */
@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.anief-prenotazioni-frontend-form {
    animation: fadeIn 0.5s ease-out;
}

/* Custom scrollbar for results dropdown */
.anief-prenotazioni-school-results::-webkit-scrollbar {
    width: 8px;
}

.anief-prenotazioni-school-results::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.anief-prenotazioni-school-results::-webkit-scrollbar-thumb {
    background: #cbd5e0;
    border-radius: 4px;
}

.anief-prenotazioni-school-results::-webkit-scrollbar-thumb:hover {
    background: #a0aec0;
}

/* Prenotazioni ANIEF - Guest booking: fix testo option (Divi/tema) */
.anief-prenotazioni-guest-booking select,
.anief-prenotazioni-guest-booking select:focus,
.anief-prenotazioni-guest-booking select:active {
	color: #111 !important;
	background-color: #fff !important;
}

.anief-prenotazioni-guest-booking select option {
	color: #111 !important;
	background-color: #fff !important;
}

/* Placeholder "disabled" un po' più leggibile */
.anief-prenotazioni-guest-booking select:disabled {
	opacity: 0.75;
	color: #444 !important;
	background-color: #f7f7f7 !important;
}

/* In alcuni temi Divi il font-weight o line-height rompe la leggibilità */
.anief-prenotazioni-guest-booking select,
.anief-prenotazioni-guest-booking select option {
	font-weight: 400 !important;
}

/* ------------------------------------------------------------------
 * Guest booking: checkbox + privacy + info box post-prenotazione
 * ------------------------------------------------------------------ */

/* Riga checkbox (usata nello shortcode guest) */
.anief-prenotazioni-checkline {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	line-height: 1.35;
	user-select: none;
}

.anief-prenotazioni-checkline input[type="checkbox"] {
	margin-top: 4px;
	transform: scale(1.05);
}

.anief-prenotazioni-checkline span {
	display: inline-block;
	color: #2d3748;
	font-size: 14px;
}

/* Link privacy più leggibile e coerente */
.anief-prenotazioni-checkline a {
	color: #3182ce;
	text-decoration: underline;
}

.anief-prenotazioni-checkline a:hover,
.anief-prenotazioni-checkline a:focus {
	color: #2c5282;
}

/* Info box blu pastello (post prenotazione) */
.anief-prenotazioni-info-box,
#anief-guest-info-box {
	margin-top: 16px;
	padding: 14px 16px;
	border-radius: 12px;
	border: 1px solid #b3d9ff;
	background: #eaf5ff;
	color: #0b4f8a;
	font-weight: 600;
	box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

/* Mobile: checkbox più comoda */
@media (max-width: 768px) {
	.anief-prenotazioni-checkline {
		gap: 12px;
	}
	.anief-prenotazioni-checkline span {
		font-size: 15px;
	}
}

/* Info box sempre visibile (non transitorio) */
.anief-prenotazioni-static-info {
	display: block !important;
	margin: 0 0 24px 0;
	padding: 14px 18px;
	border-radius: 12px;
	background: #e6f3ff;
	border: 1px solid #b3d9ff;
	color: #004a99;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
}

/* Wrapper full width (Divi-friendly) */
.anief-prenotazioni-guest-booking {
	width: 100%;
	box-sizing: border-box;
}

/* Il form e il box si adattano al container senza espandersi */
.anief-prenotazioni-guest-booking .anief-consulenti-box,
.anief-prenotazioni-guest-booking .anief-prenotazioni-frontend-form {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Grid responsive senza inline */
.anief-prenotazioni-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 18px;
	row-gap: 12px;
}

.anief-prenotazioni-col-span { grid-column: 1 / -1; }

@media (max-width: 768px) {
	.anief-prenotazioni-grid { grid-template-columns: 1fr; }
}

/* Static infobox: sempre visibile */
#anief-guest-infobox.anief-prenotazioni-static-info {
	margin: 12px 0 14px;
	padding: 12px 14px;
	border-radius: 8px;
	background: #e8f4ff;
	border: 1px solid rgba(0,0,0,0.08);
}

/* Runtime status box (AJAX) */
#anief-guest-status.anief-prenotazioni-guest-status {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid rgba(0,0,0,0.10);
	background: #f8fafc;
	font-weight: 600;
}

#anief-guest-status.is-error {
	background: #fef2f2;
	border-color: rgba(185, 28, 28, 0.35);
}

#anief-guest-status.is-success {
	background: #ecfdf5;
	border-color: rgba(5, 150, 105, 0.35);
}

.anief-prenotazioni-actions {
	margin-top: 14px;
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.anief-prenotazioni-help { opacity: .8; display:block; margin-top:6px; }


/* ============================================================
 * CALENDARIO FRONTEND – stile identico al backend
 * (derivato da admin.css, con piccoli fix per Divi)
 * ============================================================ */

/* wrapper del calendario */
.anief-prenotazioni-frontend-calendar{
	margin-top: 20px;
}

/* ============================================================
 * FRONTEND CALENDAR – modalità privacy: mostra nomi SI/NO
 * ============================================================ */

/* di default: niente nomi (compatibile con layout “compatto”) */
.anief-prenotazioni-frontend-calendar.no-names .anief-prenotazioni-calendar-event-main{
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* quando i nomi sono attivi: permettiamo multi-riga e gestione spazio */
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-event{
	align-items: flex-start;
}

.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-event-main{
	white-space: normal;
	overflow: visible;
}

/* celle: quando i nomi sono attivi, evitano “esplosioni” verticali */
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day{
	min-height: 80px;
}

.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day-events{
	max-height: 160px;       /* evita celle infinite */
	overflow: auto;
	padding-right: 2px;      /* spazio per scrollbar */
}

/* scrollbar discreta (solo webkit) */
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day-events::-webkit-scrollbar{
	width: 8px;
}
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day-events::-webkit-scrollbar-track{
	background: rgba(0,0,0,.04);
	border-radius: 8px;
}
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day-events::-webkit-scrollbar-thumb{
	background: rgba(0,0,0,.18);
	border-radius: 8px;
}


/* NAV mese */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-nav{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-current-month{
	font-size: 16px;
	font-weight: 600;
}

/* TABELLA */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table{
	width: 100%;
	border-collapse: collapse;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	table-layout: fixed;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table th,
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table td{
	border: 1px solid #e5e7eb;
	padding: 4px 6px;
	vertical-align: top;
	font-size: 11px;
}

/* Nascondi domenica quando opzione attiva */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table.hide-sunday th:last-child,
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table.hide-sunday td:last-child {
	display: none;
}

/* Header tabella mese - stile uguale a settimana */
.anief-prenotazioni-calendar-month-header {
	background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
	padding: 12px 8px;
	text-align: center;
	border-bottom: 1px solid #e5e7eb;
	font-weight: 600;
	font-size: 11px;
	color: #374151;
}

/* Giorno corrente - bordo blu in entrambe le viste */
.anief-prenotazioni-calendar-day.today {
	border: 2px solid #3b82f6 !important;
	background: rgba(59, 130, 246, 0.05);
}

.anief-prenotazioni-calendar-day.today .anief-prenotazioni-calendar-day-number {
	background: #3b82f6;
	color: #ffffff;
	border-radius: 50%;
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 600;
}

.anief-prenotazioni-calendar-week-day.today {
	border: 2px solid #3b82f6 !important;
	background: rgba(59, 130, 246, 0.05);
}

/* Legenda Colori */
.anief-prenotazioni-calendar-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	margin: 12px 0;
	padding: 12px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
}

.anief-legend-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: #4b5563;
}

.anief-legend-color {
	width: 16px;
	height: 16px;
	border-radius: 3px;
	border: 1px solid #d1d5db;
	flex-shrink: 0;
}

.anief-legend-my-consultant {
	background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
	border-left: 3px solid #10b981;
}

.anief-legend-other-consultant {
	background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
	border-left: 3px solid #9ca3af;
}

.anief-legend-available {
	background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
	border-left: 3px solid #10b981;
}

.anief-legend-partial {
	background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
	border-left: 3px solid #f59e0b;
}

.anief-legend-full {
	background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
	border-left: 3px solid #ef4444;
}

/* header giorni */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-table th{
	background: #f3f4f6;
	text-align: center;
	font-weight: 600;
	color: #374151;
}

/* righe alternate */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-week:nth-child(even){
	background: #f9fafb;
}

/* CELLE GIORNO */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day{
	height: 80px;
	box-sizing: border-box;
	position: relative;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-header{
	display: flex;
	justify-content: flex-end;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-number{
	font-size: 11px;
	font-weight: 600;
	color: #374151;
}

/* Se usi classi outside/today/weekend anche in frontend, le supportiamo */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-outside .anief-prenotazioni-calendar-day-number{
	color: #9ca3af;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-today{
	background: #eff6ff;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-weekend{
	background: #fdf2f8;
}

/* EVENTI wrapper */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-events{
	margin-top: 2px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

/* EVENTO balloon base */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event{
	display: flex;
	align-items: center;

	/* backend ha space-between: in frontend crea “buchi”.
	   Qui lo rendiamo compatto. */
	justify-content: flex-start;

	gap: 6px;
	padding: 1px 3px;
	border-radius: 3px;
	background: #ecfdf5;
	color: #065f46;
	font-size: 10px;

	width: 100%;
	box-sizing: border-box;
}

/* booked base (retro-compat) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-booked{
	background: #fee2e2;
	color: #991b1b;
}

/* Pallino rosso vicino all'orario */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-booking-dot{
	display: inline-block;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #dc2626;
	margin-right: 5px;
	position: relative;
	top: -1px;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
}

/* Parziale (ambra) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-booked.anief-prenotazioni-calendar-event-partial{
	background: #fef3c7;
	color: #92400e;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-booked.anief-prenotazioni-calendar-event-partial
.anief-prenotazioni-calendar-booking-dot{
	background: #f59e0b;
}

/* Pieno (rosso forte) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-booked.anief-prenotazioni-calendar-event-full{
	background: #fecaca;
	color: #7f1d1d;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-booked.anief-prenotazioni-calendar-event-full
.anief-prenotazioni-calendar-booking-dot{
	background: #b91c1c;
}

/* Nomi tra [ ... ] */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-names{
	display: inline;
	margin-left: 4px;
	font-weight: 600;
	opacity: 0.95;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 220px;
	vertical-align: bottom;
}

@media (max-width: 1200px){
	.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-names{
		max-width: 140px;
	}
}


/* Orario: stabile */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-time{
	white-space: nowrap;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 0;
	min-width: 44px;
}

/* Main: niente padding/margini “divi style” e ellipsis */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-main{
	flex: 1;
	min-width: 0;
	overflow: hidden;

	padding: 0;
	margin: 0;

	white-space: nowrap;
	text-overflow: ellipsis;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type{
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

/* Stato (se lo usi in frontend) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-status{
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

/* Palette tipo appuntamento 1..5 */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type-1{ border-left: 3px solid #2563eb; }
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type-2{ border-left: 3px solid #16a34a; }
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type-3{ border-left: 3px solid #f59e0b; }
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type-4{ border-left: 3px solid #7c3aed; }
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type-5{ border-left: 3px solid #db2777; }

/* Celle senza eventi */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-empty{
	margin-top: 8px;
	font-size: 10px;
	color: #9ca3af;
	text-align: center;
}

/* Fix Divi: spesso mette line-height / padding strani su th/td e strong */
.anief-prenotazioni-frontend-calendar table,
.anief-prenotazioni-frontend-calendar th,
.anief-prenotazioni-frontend-calendar td{
	line-height: 1.2;
}

.anief-prenotazioni-frontend-calendar strong{
	line-height: 1.2;
}

/* ============================================================
 * FRONTEND CALENDAR – Nomi prenotanti: 1 per riga (wrap)
 * ============================================================ */

/* L’evento deve poter “stare” in alto e non comprimere verticalmente */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event{
	align-items: flex-start;          /* prima era center */
	justify-content: flex-start;      /* evita spazio strano */
}

/* Area testo: consentiamo multilinea */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-main{
	overflow: visible;                /* non tagliare */
	white-space: normal;              /* abilita a capo */
}

/* Il tipo resta su una riga (opzionale) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-type{
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Contenitore nomi: niente nowrap/ellipsis, deve andare a capo */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-names{
	display: block;
	margin-left: 0;                   /* togliamo stile “inline” */
	margin-top: 2px;
	font-weight: 600;
	opacity: 0.95;

	white-space: normal;              /* <-- fondamentale */
	overflow: visible;                /* <-- fondamentale */
	text-overflow: clip;              /* <-- fondamentale */
	max-width: none;                  /* <-- fondamentale */
}

/* Ogni nome su una riga */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event-name{
	display: block;
	line-height: 1.2;
}

/* ============================================================
 * FRONTEND – Form inserimento disponibilità: input date/number
 * coerenti con select e campi “moderni”
 * ============================================================ */

.anief-prenotazioni-frontend input[type=”date”],
.anief-prenotazioni-frontend input[type=”time”],
.anief-prenotazioni-frontend input[type=”number”],
.anief-prenotazioni-frontend input[type=”text”],
.anief-prenotazioni-frontend input[type=”email”],
.anief-prenotazioni-frontend select{
	width: 100%;
	box-sizing: border-box;

	/* stile coerente */
	border: 1px solid #dbe4ee;
	border-radius: 8px;
	background: #ffffff;
	color: inherit;

	/* allineamento verticale */
	height: 44px;
	padding: 10px 12px;

	/* evita differenze tra browser */
	font-size: 14px;
}

/* input date: alcuni browser ignorano line-height, aiutiamo l’allineamento */
.anief-prenotazioni-frontend input[type=”date”]{
	padding-right: 44px; /* spazio per icona calendario */
}

/* input time: spazio per icona orologio */
.anief-prenotazioni-frontend input[type=”time”]{
	padding-right: 44px; /* spazio per icona orologio */
}

/* icona calendario più “centrata” (Chrome/Safari) */
.anief-prenotazioni-frontend input[type=”date”]::-webkit-calendar-picker-indicator{
	cursor: pointer;
	opacity: .75;
	margin: 0;
	padding: 6px;
}

/* icona orologio (Chrome/Safari) */
.anief-prenotazioni-frontend input[type=”time”]::-webkit-calendar-picker-indicator{
	cursor: pointer;
	opacity: .75;
	margin: 0;
	padding: 6px;
}

/* number: uniforma spinner (Chrome) */
.anief-prenotazioni-frontend input[type="number"]::-webkit-outer-spin-button,
.anief-prenotazioni-frontend input[type="number"]::-webkit-inner-spin-button{
	height: auto;
	opacity: .85;
}

/* number: Firefox */
.anief-prenotazioni-frontend input[type="number"]{
	-moz-appearance: textfield;
}
.anief-prenotazioni-frontend input[type="number"]::-webkit-outer-spin-button,
.anief-prenotazioni-frontend input[type="number"]::-webkit-inner-spin-button{
	-webkit-appearance: inner-spin-button;
}

/* focus coerente (come UI moderna) */
.anief-prenotazioni-frontend input[type="date"]:focus,
.anief-prenotazioni-frontend input[type="time"]:focus,
.anief-prenotazioni-frontend input[type="number"]:focus,
.anief-prenotazioni-frontend select:focus{
	outline: none;
	border-color: #93c5fd;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
}

/* select multiplo (Orari di inizio) non deve “schiacciare” altezza 44 */
.anief-prenotazioni-frontend select[multiple]{
	height: auto;
	min-height: 180px; /* regola a piacere */
	line-height: 1.4;
	padding: 10px 12px;
}

/* ============================================================
 * Guest booking - filtri sopra infobox + balloon pastel
 * ============================================================ */

.anief-prenotazioni-alert{
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	padding: 10px 12px;
	margin: 10px 0 12px;
	font-size: 13px;
	line-height: 1.45;
}

.anief-prenotazioni-alert--warning{
	background: #fef9c3;   /* giallo pastello */
	border-color: #fde68a;
	color: #854d0e;
}

.anief-prenotazioni-alert--danger{
	background: #fee2e2;   /* rosso pastello */
	border-color: #fecaca;
	color: #991b1b;
}

/* Filtri slot */
.anief-prenotazioni-slot-filters{
	margin: 8px 0 12px;
}

/* Icona informativa nel balloon filtri */
.anief-prenotazioni-alert .anief-filter-info-icon{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	margin-right: 10px;
	vertical-align: middle;
}

.anief-prenotazioni-alert .anief-filter-info-icon svg{
	width: 20px;
	height: 20px;
	stroke: #92400e;
}

.anief-prenotazioni-alert > span{
	display: inline;
	vertical-align: middle;
}

.anief-prenotazioni-slot-filters-grid{
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px 14px;
	align-items: end;
}

@media (max-width: 1200px){
	.anief-prenotazioni-slot-filters-grid{
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px){
	.anief-prenotazioni-slot-filters-grid{
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px){
	.anief-prenotazioni-slot-filters-grid{
		grid-template-columns: 1fr;
	}
}

/* Coerenza controlli (Divi/WP) */
.anief-prenotazioni-slot-filters .anief-consulenti-field-group select{
	width: 100%;
}

.anief-prenotazioni-mie-consulenze tr.anief-row-free td { background: #ecfdf5; }
.anief-prenotazioni-mie-consulenze tr.anief-row-partial td { background: #fef3c7; }
.anief-prenotazioni-mie-consulenze tr.anief-row-full td { background: #fee2e2; }

/* Bordo rosso per consulenze attive (in corso) */
.anief-prenotazioni-mie-consulenze tr.anief-row-active {
	border: 3px solid #dc2626 !important;
	box-shadow: 0 0 10px rgba(220, 38, 38, 0.3);
}
.anief-prenotazioni-mie-consulenze tr.anief-row-active td {
	border-top: none;
	border-bottom: none;
}
.anief-prenotazioni-mie-consulenze tr.anief-row-active td:first-child {
	border-left: none;
}
.anief-prenotazioni-mie-consulenze tr.anief-row-active td:last-child {
	border-right: none;
}

.anief-prenotazioni-day-nav{
	margin: 10px 0 16px;
	display: flex;
	justify-content: center;
}

.anief-prenotazioni-day-nav-inner{
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.anief-prenotazioni-day-current{
	font-weight: 700;
	padding: 4px 8px;
}

.anief-prenotazioni-booking-list{
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.anief-prenotazioni-booking-item{
	padding: 6px 8px;
	background: #f8fafc;
	border: 1px solid rgba(15, 23, 42, 0.08);
	border-radius: 8px;
}

/* Header della prenotazione: nome utente + pulsante disdetta */
.anief-prenotazioni-booking-header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	margin-bottom: 4px;
}

.anief-prenotazioni-booking-header strong{
	font-size: 13px;
	color: #0f172a;
}

/* Pulsante disdetta all'interno della card prenotazione */
.anief-booking-cancel-btn.button.button-small.button-secondary{
	padding: 4px 8px;
	font-size: 12px;
	line-height: 1.2;
	min-height: auto;
	border-radius: 6px;
	background: #fee2e2;
	border-color: #fecaca;
	color: #991b1b;
	transition: all 0.2s ease;
}

.anief-booking-cancel-btn.button.button-small.button-secondary:hover{
	background: #fecaca;
	border-color: #fca5a5;
	color: #7f1d1d;
}

.anief-booking-cancel-btn.button.button-small.button-secondary:disabled,
.anief-booking-cancel-btn.button.button-small.button-secondary.is-busy{
	opacity: 0.6;
	cursor: not-allowed;
}

.anief-prenotazioni-booking-meta{
	font-size: 12px;
	color: #475569;
	line-height: 1.3;
}

/* ============================================================
 * MIE CONSULENZE – fix bottoni nella tabella (Divi-friendly)
 * ============================================================ */

/* Previeni che la tabella esca dal container */
.anief-prenotazioni-mie-consulenze {
	overflow-x: auto;
	overflow-y: visible;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table {
	width: 100%;
	max-width: 100%;
	table-layout: fixed;
	word-wrap: break-word;
	overflow-wrap: break-word;
	display: table !important; /* Forza display table anche se tema cerca di cambiarlo */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th,
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td {
	border: 1px solid #e5e7eb;
	padding: 8px 6px;
	vertical-align: top;
	font-size: 11px;
	overflow: hidden;
	word-break: break-word;
	hyphens: auto;
	text-overflow: ellipsis;
	display: table-cell !important; /* Forza display table-cell */
	float: none !important; /* Rimuovi eventuali float dal tema */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table tr {
	display: table-row !important; /* Forza display table-row */
}

/* Larghezze colonne fisse per evitare espansione */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(1),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(1) {
	width: 12%; /* Data */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(2),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(2) {
	width: 8%; /* Ora */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(3),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(3) {
	width: 15%; /* Tipo */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(4),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(4) {
	width: 8%; /* Posti */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(5),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(5) {
	width: 15%; /* Prenotazioni */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(6),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(6) {
	width: 15%; /* Prenotante */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(7),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(7) {
	width: 12%; /* Videoconferenza */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table th:nth-child(8),
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(8) {
	width: 15%; /* Azioni */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:last-child {
	/* colonna azioni: evita che Divi allarghi/centri male */
	white-space: nowrap;
	vertical-align: middle;
}

/* Wrapper azioni dentro cella: spacing coerente */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-actions {
	margin-top: 0;              /* in tabella non serve top-margin */
	display: inline-flex;       /* evita “a capo” strani */
	gap: 10px;
	align-items: center;
	flex-wrap: nowrap;
}

/* Normalizza i bottoni WP dentro il box (specie in tabelle con Divi) */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table .button,
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table button.button,
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table a.button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;

	/* dimensioni coerenti */
	min-height: 38px;
	padding: 8px 14px;

	/* tipografia coerente */
	font-size: 14px;
	line-height: 1.2;

	/* evita override Divi tipo uppercase/letter-spacing */
	text-transform: none;
	letter-spacing: normal;

	/* evita che Divi faccia “full width” in td */
	width: auto !important;
	max-width: 100%;

	/* evita effetti tema */
	box-shadow: none;
}

/* Specifico: Elimina deve essere identico agli altri secondari */
.anief-prenotazioni-mie-consulenze .anief-slot-delete.button.button-secondary {
	border-radius: 10px; /* coerente con i tuoi input */
}

/* Stato non eliminabile: leggibile, non “spaccato” */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-muted {
	display: inline-block;
	padding: 6px 10px;
	border-radius: 10px;
	font-size: 13px;
	line-height: 1.2;
	opacity: 0.85;
	background: rgba(0,0,0,0.04);
	border: 1px solid rgba(0,0,0,0.08);
}

/* Mobile: in tabella lascia andare a capo i bottoni se serve */
@media (max-width: 782px) {
	.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:last-child {
		white-space: normal;
	}
	.anief-prenotazioni-mie-consulenze .anief-prenotazioni-actions {
		flex-wrap: wrap;
	}
}

/* Colonna Prenotazioni (5° colonna): vincola larghezza massima */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(5) {
	position: relative;
	max-width: 0; /* Forza il table-layout:fixed a rispettare la larghezza */
	overflow: hidden; /* Previeni che il contenuto esca dalla cella */
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-table td:nth-child(5) > * {
	max-width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

/* ============================================================
 * BOOKING LIST - Previeni rottura riga tabella
 * ============================================================ */

/* Container della lista prenotazioni nella colonna 5 */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-list {
	max-width: 100%;
	width: 100%;
	overflow: hidden;
}

/* Singolo item prenotazione - non forzare full width */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-item {
	display: block;
	width: 100%;
	max-width: 100%;
	margin-bottom: 8px;
	padding: 6px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 4px;
	font-size: 10px;
	overflow: hidden;
	box-sizing: border-box;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-item:last-child {
	margin-bottom: 0;
}

/* Header con nome e azioni */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 6px;
	margin-bottom: 4px;
	flex-wrap: wrap;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-header strong {
	font-size: 11px;
	word-break: break-word;
	flex: 1;
	min-width: 0;
}

/* Container azioni dentro header */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-actions {
	display: inline-flex;
	gap: 4px;
	align-items: center;
	flex-shrink: 0;
}

/* Bottone disdici ridotto */
.anief-prenotazioni-mie-consulenze .anief-booking-cancel-btn {
	padding: 4px 8px !important;
	font-size: 10px !important;
	min-height: 26px !important;
	white-space: nowrap;
}

/* Meta info (email, tel, CF, scuola) */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-meta {
	font-size: 9px;
	line-height: 1.3;
	word-break: break-word;
	overflow-wrap: break-word;
	margin-bottom: 2px;
	color: #6b7280;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-booking-meta:last-child {
	margin-bottom: 0;
}

/* ============================================================
 * MODALE DI MODIFICA SLOT (Mie Consulenze)
 * ============================================================ */

/* Overlay modale */
.anief-modal-overlay {
	position: fixed;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 999999;
	background: rgba(0, 0, 0, 0.45);
	display: none;
	align-items: center;
	justify-content: center;
	padding: 18px;
}

/* Box modale */
.anief-modal {
	background: #fff;
	border-radius: 10px;
	max-width: 650px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
	display: flex;
	flex-direction: column;
}

/* Header modale */
.anief-modal-header {
	padding: 18px 18px 10px;
	border-bottom: 1px solid #e5e7eb;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.anief-modal-title {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	color: #111827;
}

.anief-guest-modal-close {
	background: none;
	border: none;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	width: 30px;
	height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
	color: #6b7280;
	transition: background 0.2s;
}

.anief-modal-close:hover {
	background: #f3f4f6;
}

/* Body modale */
.anief-guest-modal-body {
	padding: 18px;
}

/* Footer modale */
.anief-guest-modal-footer {
	padding: 10px 18px 18px;
	border-top: 1px solid #e5e7eb;
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

.anief-modal-footer {
	padding: 16px 20px;
	border-top: 1px solid #e5e7eb;
	display: flex;
	gap: 10px;
	justify-content: flex-end;
}

.anief-modal-footer .button {
	margin: 0;
}

/* Edit modal: uniforma stile bottoni coerente col resto del plugin */
#anief-edit-modal .anief-modal-footer .button {
	padding: 12px 20px !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	box-shadow: none !important;
}

#anief-edit-modal .anief-modal-footer .button.button-secondary {
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
}

#anief-edit-modal .anief-modal-footer .button.button-secondary:hover {
	border-color: #a0aec0 !important;
	background: #f8fafc !important;
}

#anief-edit-modal .anief-modal-footer .button.button-primary {
	border: none !important;
}

/* Campi form nel modale */
.anief-form-grid label {
	font-size: 13px;
	font-weight: 500;
	margin-bottom: 5px;
	display: block;
}

.anief-form-grid input[type="date"],
.anief-form-grid input[type="time"],
.anief-form-grid input[type="number"],
.anief-form-grid select,
.anief-form-grid textarea {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	font-size: 14px;
	transition: border-color 0.2s;
}

.anief-form-grid input:focus,
.anief-form-grid select:focus,
.anief-form-grid textarea:focus {
	outline: none;
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* Stato body quando modale è aperto */
body.anief-modal-open {
	overflow: hidden;
}

/* Mie consulenze: normalizza i secondari (evita bordo nero tema) */
.anief-prenotazioni-mie-consulenze .button.button-secondary {
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.anief-prenotazioni-mie-consulenze .button.button-secondary:hover {
	border-color: #a0aec0 !important;
}

/* ============================================================
 * MODAL OVERLAY (Mie Consulenze) – stile moderno coerente plugin
 * ============================================================ */

body.anief-modal-open {
	overflow: hidden;
}

.anief-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(3px);
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	box-sizing: border-box;
}

/* Guest booking: overlay loading on region/province change */
.anief-guest-loading-overlay {
	position: fixed;
	inset: 0;
	z-index: 999998;
	display: none;
	align-items: center;
	justify-content: center;
}

.anief-guest-loading-overlay.is-active {
	display: flex;
}

.anief-guest-loading-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.35);
}

.anief-guest-loading-spinner {
	position: relative;
	display: inline-flex;
	gap: 6px;
	padding: 14px 18px;
	background: #fff;
	border-radius: 999px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
	z-index: 1;
}

.anief-guest-loading-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #1d2327;
	animation: anief-guest-dot 0.9s infinite ease-in-out;
}

.anief-guest-loading-dot:nth-child(2) {
	animation-delay: 0.15s;
}

.anief-guest-loading-dot:nth-child(3) {
	animation-delay: 0.3s;
}

@keyframes anief-guest-dot {
	0%, 80%, 100% { transform: scale(0.7); opacity: 0.4; }
	40% { transform: scale(1); opacity: 1; }
}

.anief-modal {
	width: min(520px, 100%);
	background: #fff;
	border-radius: 16px;
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 20px 60px rgba(0,0,0,0.18);
	overflow: hidden;
	transform: translateY(0);
}

.anief-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 18px;
	border-bottom: 1px solid rgba(0,0,0,.06);
}

.anief-modal-title {
	font-weight: 800;
	color: #1a365d;
	font-size: 16px;
}

.anief-guest-modal-close {
	background: transparent;
	border: 0;
	cursor: pointer;
	font-size: 24px;
	line-height: 1;
	padding: 6px 8px;
	border-radius: 10px;
	color: rgba(0,0,0,.55);
}

.anief-modal-close:hover {
	background: rgba(0,0,0,.06);
	color: rgba(0,0,0,.75);
}

.anief-guest-modal-body {
	padding: 16px 18px 6px;
}

.anief-modal-text {
	margin: 0;
	font-size: 15px;
	color: #2d3748;
	line-height: 1.5;
}

.anief-guest-modal-footer {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	padding: 14px 18px 18px;
}

/* loader state bottone elimina */
.anief-slot-delete.is-busy {
	opacity: 0.75;
	cursor: progress;
}

/* Coerenza secondari nella tabella mie consulenze */
.anief-prenotazioni-mie-consulenze .button.button-secondary {
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

.anief-prenotazioni-mie-consulenze .button.button-secondary:hover {
	border-color: #a0aec0 !important;
}

/* Mobile: footer bottoni full width */
@media (max-width: 480px) {
	.anief-guest-modal-footer {
		flex-direction: column;
	}
	.anief-modal-footer .button {
		width: 100%;
	}
}
/* Modal: uniforma stile bottoni (soprattutto "Annulla") */
#anief-confirm-overlay .anief-modal .button{
	padding: 14px 22px !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	box-shadow: none !important;
}

/* Secondario "Annulla" coerente col plugin */
#anief-confirm-overlay .anief-modal .button.button-secondary{
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
}

#anief-confirm-overlay .anief-modal .button.button-secondary:hover{
	border-color: #a0aec0 !important;
	background: #f8fafc !important;
}

/* Primario: se qualche tema lo “rompe”, lo riblocchiamo nel modal */
#anief-confirm-overlay .anief-modal .button.button-primary{
	border: none !important;
}
/* ============================================================
 * MODAL CONFERMA – stile coerente Prenotazioni ANIEF
 * ============================================================ */

#anief-confirm-overlay{
	position: fixed;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	backdrop-filter: blur(3px);
}

#anief-confirm-overlay .anief-modal{
	background: #ffffff;
	border-radius: 16px;
	width: 100%;
	max-width: 520px;
	box-shadow: 0 25px 60px rgba(0,0,0,.25);
	animation: aniefModalIn .18s ease-out;
}

@keyframes aniefModalIn{
	from{ transform: translateY(10px); opacity: 0; }
	to{ transform: translateY(0); opacity: 1; }
}

#anief-confirm-overlay .anief-modal-header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 18px 22px;
	border-bottom: 1px solid #e5e7eb;
	font-size: 18px;
	font-weight: 700;
	color: #1e293b;
}

#anief-confirm-overlay .anief-modal-close{
	background: none;
	border: none;
	font-size: 22px;
	cursor: pointer;
	color: #64748b;
}

#anief-confirm-overlay .anief-modal-body{
	padding: 22px;
	font-size: 15px;
	color: #334155;
	line-height: 1.5;
}

#anief-confirm-overlay .anief-modal-actions{
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	padding: 18px 22px 22px;
}

/* Bottoni uniformi */
#anief-confirm-overlay .anief-modal .button{
	padding: 14px 22px;
	border-radius: 10px;
	font-weight: 700;
}

/* Annulla (secondario elegante) */
#anief-confirm-overlay .button-secondary{
	background: #fff;
	border: 2px solid #e2e8f0;
	color: #334155;
}

#anief-confirm-overlay .button-secondary:hover{
	background: #f8fafc;
	border-color: #94a3b8;
}

/* Elimina – ROSSO SOLO QUI */
#anief-confirm-overlay .button-primary{
	background: linear-gradient(135deg, #ef4444, #dc2626);
	color: #fff;
	border: none;
	box-shadow: 0 6px 14px rgba(239,68,68,.35);
}

#anief-confirm-overlay .button-primary:hover{
	background: linear-gradient(135deg, #dc2626, #b91c1c);
}

/* ============================================================
 * FIX: Calendario frontend - celle giorno ad altezza fissa + scroll
 * ============================================================ */

/* Altezza fissa per tutte le celle (anche con nomi attivi) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day{
	height: 110px;          /* regola qui l’altezza desiderata */
	min-height: 110px;
	max-height: 110px;
	overflow: hidden;       /* impedisce che il contenuto “sfondi” */
}

/* Header numero giorno: non deve rubare troppo spazio */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-header{
	height: 18px;
}

/* L’area eventi prende lo spazio restante e scrolla */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-events{
	height: calc(110px - 22px); /* 110 - header (~18) - margini */
	overflow-y: auto;
	overflow-x: hidden;
	padding-right: 2px;         /* spazio scrollbar */
}

/* Se has-names era stato messo a height:auto, lo annulliamo */
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day{
	height: 110px !important;
	min-height: 110px !important;
	max-height: 110px !important;
}

/* E garantiamo scroll sempre (anche con nomi attivi) */
.anief-prenotazioni-frontend-calendar.has-names .anief-prenotazioni-calendar-day-events{
	max-height: none !important;
	overflow-y: auto !important;
}

/* Scrollbar discreta */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-events::-webkit-scrollbar{
	width: 8px;
}
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-events::-webkit-scrollbar-track{
	background: rgba(0,0,0,.04);
	border-radius: 8px;
}
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-day-events::-webkit-scrollbar-thumb{
	background: rgba(0,0,0,.18);
	border-radius: 8px;
}

/* ============================================================
 * MIE CONSULENZE – Bottoni coerenti (Esporta CSV / Reset / Filtra)
 * ============================================================ */

.anief-prenotazioni-mie-consulenze .anief-btn-pill,
.anief-prenotazioni-mie-consulenze a.button.anief-btn-pill,
.anief-prenotazioni-mie-consulenze button.button.anief-btn-pill{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px;

	min-height: 44px;              /* come gli input */
	margin-top: 10px;
	padding: 12px 18px !important;

	border-radius: 10px !important; /* pill */
	font-weight: 700 !important;
	font-size: 14px !important;
	line-height: 1.1 !important;

	text-decoration: none !important;
	box-shadow: none !important;
}

/* Secondary: stesso look ovunque (header + reset) */
.anief-prenotazioni-mie-consulenze .button.button-secondary.anief-btn-pill{
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
}

.anief-prenotazioni-mie-consulenze .button.button-secondary.anief-btn-pill:hover{
	background: #f8fafc !important;
	border-color: #a0aec0 !important;
}

/* Header: spaziatura migliore titolo + export */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-calendar-nav{
	gap: 12px;
}

.anief-prenotazioni-mie-consulenze .anief-btn-export{
	margin-left: 6px;
}

/* Wrapper campi form guest booking - nascosto quando non ci sono slot (v2.3.1) */
.anief-guest-form-fields-wrapper {
	/* Animazione fade per show/hide */
	transition: opacity 0.3s ease, margin-top 0.3s ease;
	/* Assicura che occupi tutto lo spazio disponibile come il campo slot */
	width: 100%;
	box-sizing: border-box;
}

.anief-guest-form-fields-wrapper[style*="display: none"] {
	opacity: 0;
	margin-top: 0;
}

/* ============================================================
 * MIE CONSULENZE - Miglioramento selettore date (v2.5.6)
 * ============================================================ */

/* Campi data del form filtri con icona calendario personalizzata */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters input[type="date"]{
	position: relative;
	padding-left: 40px; /* Spazio per icona */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 12px center;
	border-color: #c7d2fe;
	background-color: #fefefe;
	transition: all 0.2s ease;
}

/* Hover: bordo più scuro e sfondo leggermente blu */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters input[type="date"]:hover{
	border-color: #a5b4fc;
	background-color: #fafafa;
}

/* Focus: evidenza viola/indaco */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters input[type="date"]:focus{
	border-color: #6366f1;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
	background-color: #ffffff;
	z-index: 1;
}

/* Icona calendario nativa più discreta */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters input[type="date"]::-webkit-calendar-picker-indicator{
	opacity: 0.5;
	cursor: pointer;
	padding: 6px;
	transition: opacity 0.2s ease;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters input[type="date"]::-webkit-calendar-picker-indicator:hover{
	opacity: 0.9;
}

/* Labels dei campi data con icona */
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters label[for="ap_from"],
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters label[for="ap_to"]{
	position: relative;
	padding-left: 22px;
	font-weight: 600;
	color: #374151;
}

.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters label[for="ap_from"]::before,
.anief-prenotazioni-mie-consulenze .anief-prenotazioni-slot-filters label[for="ap_to"]::before{
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 16px;
	height: 16px;
	background-image: 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='%236366f1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	opacity: 0.8;
}

/* ============================================================
 * REGISTRAZIONE APPUNTAMENTO - Form di registrazione (v2.5.9)
 * ============================================================ */

/* SEZIONI FORM - Organizzazione logica SENZA box */
.anief-prenotazioni-form-section {
	margin-bottom: 20px;
	/* Nessun padding, sfondo, bordo o border-radius */
}

/* Titolo sezione */
.anief-prenotazioni-section-title {
	font-size: 13px;
	font-weight: 700;
	color: #6366f1;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 12px;
	padding-bottom: 6px;
	border-bottom: 2px solid #e5e7eb;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Testo "opzionale" accanto al titolo */
.anief-prenotazioni-section-optional {
	font-size: 12px;
	font-weight: 500;
	color: #9ca3af;
	text-transform: none;
	letter-spacing: normal;
}

/* Layout a due colonne */
.anief-prenotazioni-row-two-cols {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
}

.anief-prenotazioni-col-left,
.anief-prenotazioni-col-right {
	flex: 1;
	min-width: 280px;
}

/* Due campi sulla stessa riga (es. Giorno + Ora) */
.anief-prenotazioni-field-group-row {
	display: flex;
	gap: 16px;
}

.anief-prenotazioni-field-group-half {
	flex: 1;
	min-width: 0;
}

.anief-prenotazioni-field-group-half .anief-prenotazioni-field-group {
	margin-bottom: 0;
}

/* Responsive: su mobile passa a una colonna */
@media (max-width: 768px) {
	.anief-prenotazioni-row-two-cols {
		flex-direction: column;
		gap: 0;
	}

	.anief-prenotazioni-col-left,
	.anief-prenotazioni-col-right {
		min-width: 100%;
	}

	.anief-prenotazioni-field-group-row {
		flex-direction: column;
		gap: 0;
	}

	.anief-prenotazioni-field-group-half {
		min-width: 100%;
	}

	/* Sezioni più compatte su mobile */
	.anief-prenotazioni-form-section {
		margin-bottom: 16px;
	}

	.anief-prenotazioni-section-title {
		font-size: 12px;
		margin-bottom: 10px;
	}
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group {
	margin-bottom: 16px;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #374151;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group label .required {
	color: #ef4444;
	margin-left: 2px;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="text"],
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="date"],
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="time"],
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 2px solid #e5e7eb;
	border-radius: 10px;
	background: #ffffff;
	font-size: 15px;
	transition: all 0.2s ease;
	height: 44px;
	line-height: 20px;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="text"]:focus,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="date"]:focus,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="time"]:focus,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group select:focus,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group textarea:focus {
	outline: none;
	border-color: #6366f1;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="text"].error,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="date"].error,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group input[type="time"].error,
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group select.error {
	border-color: #ef4444;
	background-color: #fef2f2;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 2px solid #e5e7eb;
	border-radius: 10px;
	background: #ffffff;
	font-size: 15px;
	min-height: 100px;
	resize: vertical;
	font-family: inherit;
	line-height: 1.5;
	transition: all 0.2s ease;
}

.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-field-group .description {
	margin-top: 6px;
	font-size: 13px;
	color: #6b7280;
	font-style: italic;
}

/* Checkbox custom style */
.anief-prenotazioni-checkbox-group {
	padding: 4px 0;
}

.anief-prenotazioni-checkbox-label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	cursor: pointer;
	padding: 10px 16px;
	border: 2px solid #e5e7eb;
	border-radius: 10px;
	background: #ffffff;
	transition: all 0.2s ease;
	/* Non più full-width */
	width: auto;
	max-width: 100%;
}

.anief-prenotazioni-checkbox-label:hover {
	border-color: #a5b4fc;
	background: #fafafa;
}

.anief-prenotazioni-checkbox-label input[type="checkbox"] {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin: 0;
	cursor: pointer;
	border: 2px solid #d1d5db;
	border-radius: 4px;
	appearance: none;
	position: relative;
	background: #ffffff;
	transition: all 0.2s ease;
}

.anief-prenotazioni-checkbox-label input[type="checkbox"]:checked {
	background: #6366f1;
	border-color: #6366f1;
}

.anief-prenotazioni-checkbox-label input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid white;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.anief-prenotazioni-checkbox-label input[type="checkbox"]:focus {
	outline: none;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.anief-prenotazioni-checkbox-label .checkbox-text {
	flex: 1;
	font-size: 15px;
	color: #374151;
	line-height: 1.4;
}

/* Asterisco rosso vicino al testo checkbox */
.anief-prenotazioni-checkbox-label .checkbox-text + .required {
	color: #ef4444;
	margin-left: 2px;
	font-weight: 700;
}

.anief-prenotazioni-checkbox-label .required {
	color: #ef4444;
	margin-left: 2px;
	font-weight: 700;
}

/* Stato errore per checkbox */
.anief-prenotazioni-checkbox-group.error .anief-prenotazioni-checkbox-label {
	border-color: #ef4444;
	background: #fef2f2;
}

/* Pulsante submit con stile moderno */
.anief-prenotazioni-registrazione-appuntamento .anief-prenotazioni-actions button[type="submit"] {
	width: 100%;
	padding: 14px 24px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.5px;
}

/* Messaggi */
.anief-prenotazioni-registrazione-appuntamento #anief-registrazione-message {
	margin-top: 20px;
}

/* ============================================================
 * MIE PRENOTAZIONI - Button Reset Style (v2.6.2)
 * ============================================================ */

.anief-prenotazioni-mie-prenotazioni .button.button-secondary {
	padding: 10px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	background: #ffffff;
	color: #374151;
	transition: all 0.2s ease;
}

.anief-prenotazioni-mie-prenotazioni .button.button-secondary:hover {
	border-color: #9ca3af;
	background: #f9fafb;
	color: #111827;
}

.anief-prenotazioni-mie-prenotazioni .button.button-secondary:active {
	background: #f3f4f6;
	transform: translateY(1px);
}

/* ============================================================
 * MIE PRENOTAZIONI – Bottoni coerenti con Mie Consulenze (v2.6.4)
 * ============================================================ */

.anief-prenotazioni-mie-prenotazioni .anief-btn-pill,
.anief-prenotazioni-mie-prenotazioni a.button.anief-btn-pill,
.anief-prenotazioni-mie-prenotazioni button.button.anief-btn-pill {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px;

	min-height: 44px;              /* come gli input */
	margin-top: 10px;
	padding: 12px 18px !important;

	border-radius: 10px !important; /* pill */
	font-weight: 700 !important;
	font-size: 14px !important;
	line-height: 1.1 !important;

	text-decoration: none !important;
	box-shadow: none !important;
}

/* Secondary: stesso look ovunque (reset + export) */
.anief-prenotazioni-mie-prenotazioni .button.button-secondary.anief-btn-pill {
	background: #fff !important;
	border: 2px solid #e2e8f0 !important;
	color: #2d3748 !important;
}

.anief-prenotazioni-mie-prenotazioni .button.button-secondary.anief-btn-pill:hover {
	background: #f8fafc !important;
	border-color: #a0aec0 !important;
}

/* Primary: stesso stile di mie consulenze */
.anief-prenotazioni-mie-prenotazioni .button.button-primary.anief-btn-pill {
	background: #6366f1 !important;
	border: 2px solid #6366f1 !important;
	color: #ffffff !important;
}

.anief-prenotazioni-mie-prenotazioni .button.button-primary.anief-btn-pill:hover {
	background: #4f46e5 !important;
	border-color: #4f46e5 !important;
}

/* Danger: rosso per azioni destructive (cancellazione, disdetta) */
.anief-prenotazioni-mie-prenotazioni .button.anief-btn-danger.anief-btn-pill,
.anief-prenotazioni-mie-consulenze .button.anief-btn-danger.anief-btn-pill {
	background: #ef4444 !important;
	border: 2px solid #ef4444 !important;
	color: #ffffff !important;
	cursor: pointer !important;
}

.anief-prenotazioni-mie-prenotazioni .button.anief-btn-danger.anief-btn-pill:hover,
.anief-prenotazioni-mie-consulenze .button.anief-btn-danger.anief-btn-pill:hover {
	background: #dc2626 !important;
	border-color: #dc2626 !important;
	cursor: pointer !important;
}

/* Actions container: layout bottoni */
.anief-prenotazioni-mie-prenotazioni .anief-prenotazioni-actions {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

/* ============================================================
 * MIE PRENOTAZIONI - Material Design Action Buttons (v2.15.0)
 * ============================================================ */

/* Rotation animation for loading icons */
@keyframes aniefRotate {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.dashicons.rotating {
	animation: aniefRotate 1s linear infinite;
	display: inline-block;
}

/* Unified action button class with Material Design styling */
.anief-action-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	min-width: 40px !important;
	min-height: 36px !important;
	padding: 8px 12px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
	border-radius: 4px !important;
	border: 1px solid transparent !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
	cursor: pointer !important;
	text-decoration: none !important;
	margin-right: 6px !important;
}

.anief-action-btn:hover {
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
	transform: translateY(-1px) !important;
}

.anief-action-btn:active {
	transform: translateY(0) !important;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05) !important;
}

.anief-action-btn:focus {
	outline: 2px solid rgba(59, 130, 246, 0.5) !important;
	outline-offset: 1px !important;
}

/* Dashicons inside action buttons */
.anief-action-btn .dashicons {
	font-size: 16px !important;
	line-height: 1 !important;
	width: 16px !important;
	height: 16px !important;
}

/* Primary action button style */
.anief-action-btn.button-primary {
	background: #3b82f6 !important;
	border-color: #3b82f6 !important;
	color: #ffffff !important;
}

.anief-action-btn.button-primary:hover {
	background: #2563eb !important;
	border-color: #2563eb !important;
}

/* Secondary action button style */
.anief-action-btn.button-secondary {
	background: #ffffff !important;
	border-color: #d1d5db !important;
	color: #374151 !important;
}

.anief-action-btn.button-secondary:hover {
	background: #f9fafb !important;
	border-color: #9ca3af !important;
	color: #111827 !important;
}

/* Cancel button specific style */
.anief-action-btn.anief-booking-cancel-btn {
	background: #fef2f2 !important;
	border-color: #fca5a5 !important;
	color: #991b1b !important;
}

.anief-action-btn.anief-booking-cancel-btn:hover {
	background: #fee2e2 !important;
	border-color: #f87171 !important;
	color: #7f1d1d !important;
}

/* Annotation button specific style */
.anief-action-btn.anief-annotation-btn {
	background: #dbeafe !important;
	border-color: #93c5fd !important;
	color: #1e40af !important;
}

.anief-action-btn.anief-annotation-btn:hover {
	background: #bfdbfe !important;
	border-color: #60a5fa !important;
	color: #1e3a8a !important;
}

/* Email button specific style */
.anief-action-btn[onclick*="aniefOpenEmailModal"],
.anief-action-btn[title*="Invia email"] {
	background: #f0fdf4 !important;
	border-color: #86efac !important;
	color: #166534 !important;
}

.anief-action-btn[onclick*="aniefOpenEmailModal"]:hover,
.anief-action-btn[title*="Invia email"]:hover {
	background: #dcfce7 !important;
	border-color: #4ade80 !important;
	color: #14532d !important;
}

/* Storico soci button specific style */
.anief-action-btn.anief-storico-soci-trigger {
	background: #fef3c7 !important;
	border-color: #fcd34d !important;
	color: #92400e !important;
}

.anief-action-btn.anief-storico-soci-trigger:hover {
	background: #fde68a !important;
	border-color: #fbbf24 !important;
	color: #78350f !important;
}

/* ============================================================
 * ANNOTAZIONI POST-CONSULENZA
 * ============================================================ */

/* Container annotazioni */
.anief-prenotazioni-annotations-container {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid #e5e7eb;
}

.anief-prenotazioni-annotations-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}

.anief-prenotazioni-annotation-item {
	padding: 10px 12px;
	background: #fef3c7;
	border-left: 3px solid #f59e0b;
	border-radius: 6px;
	font-size: 12px;
}

.anief-prenotazioni-annotation-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 6px;
	font-weight: 600;
	color: #92400e;
}

.anief-prenotazioni-annotation-meta {
	font-size: 11px;
	color: #78350f;
	margin-bottom: 4px;
}

.anief-prenotazioni-annotation-text {
	line-height: 1.4;
	color: #92400e;
}

/* Modale annotazioni */
#anief-annotation-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: none;
}

#anief-annotation-modal.anief-modal-open {
	display: block;
}

.anief-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.55);
	display: flex;
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(3px);
	padding: 20px;
}

.anief-modal-content {
	position: relative;
	background: #ffffff;
	border-radius: 16px;
	width: 100%;
	max-width: 600px;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 25px 60px rgba(0,0,0,.25);
	animation: aniefModalFadeIn 0.2s ease-out;
}

@keyframes aniefModalFadeIn {
	from {
		opacity: 0;
		transform: translateY(-20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.anief-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid #e5e7eb;
}

.anief-guest-modal-header h2 {
	margin: 0;
	font-size: 20px;
	color: #0f172a;
}

.anief-guest-modal-close {
	background: none;
	border: none;
	font-size: 28px;
	line-height: 1;
	color: #64748b;
	cursor: pointer;
	padding: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	transition: all 0.2s;
}

.anief-modal-close:hover {
	background: #f1f5f9;
	color: #0f172a;
}

.anief-guest-modal-body {
	padding: 20px;
}

.anief-form-field {
	margin-bottom: 20px;
}

.anief-form-field label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	color: #0f172a;
	font-size: 14px;
}

.anief-form-field .required {
	color: #dc2626;
}

.anief-form-field textarea,
.anief-form-field input[type="text"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 14px;
	line-height: 1.5;
	font-family: inherit;
	transition: border-color 0.2s;
}

.anief-form-field textarea:focus,
.anief-form-field input[type="text"]:focus {
	outline: none;
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.anief-form-field .description {
	margin-top: 8px;
	font-size: 13px;
	color: #64748b;
	line-height: 1.4;
}

.anief-modal-actions {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 24px;
}

@media (max-width: 600px) {
	.anief-modal-content {
		max-height: 95vh;
	}

	.anief-modal-header {
		padding: 16px 20px;
	}

	.anief-guest-modal-body {
		padding: 20px;
	}

	.anief-modal-actions {
		flex-direction: column;
	}

	.anief-modal-actions .button {
		width: 100%;
	}
}

/* ============================================================
 * ANNOTAZIONI - Pulsante elimina
 * ============================================================ */

.anief-annotation-delete-btn:hover {
	color: #b91c1c !important;
	background: #fef2f2 !important;
	border-radius: 4px;
}

.anief-annotation-delete-btn:active {
	transform: scale(0.95);
}

/* ============================================================
 * TOAST NOTIFICHE - Animazioni
 * ============================================================ */

@keyframes aniefToastSlideIn {
	from {
		transform: translateX(100%);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes aniefToastSlideOut {
	from {
		transform: translateX(0);
		opacity: 1;
	}
	to {
		transform: translateX(100%);
		opacity: 0;
	}
}

/* ============================================================
 * TOGGLE VISTA MESE/SETTIMANA
 * ============================================================ */

.anief-prenotazioni-view-toggle {
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}

.anief-view-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 12px;
	border: 1px solid #d1d5db;
	background: #ffffff;
	border-radius: 4px;
	font-size: 13px;
	cursor: pointer;
	transition: all 0.2s ease;
}

.anief-view-toggle-btn:hover {
	background: #f9fafb;
	border-color: #9ca3af;
}

.anief-view-toggle-btn.active {
	background: #3b82f6;
	color: #ffffff;
	border-color: #3b82f6;
}

.anief-view-toggle-btn .dashicons {
	font-size: 16px;
	line-height: 1;
}

/* Responsive toggle */
@media (max-width: 768px) {
	.anief-prenotazioni-view-toggle {
		flex-direction: column;
		gap: 6px;
	}

	.anief-view-toggle-btn {
		justify-content: center;
		width: 100%;
	}
}

/* ============================================================
 * COLORI DIFFERENZIATI FRONTEND (consulente attivo vs altri)
 * ============================================================ */

/* Base slot altri consulenti (grigio) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.other-consultant {
	background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
	color: #4b5563;
	border-left: 3px solid #9ca3af;
	opacity: 0.85;
}

/* Slot consulente attivo - stati (verde/giallo/rosso) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.my-consultant {
	background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
	color: #065f46;
	border-left: 3px solid #10b981;
	font-weight: 500;
}

/* Consulente attivo - prenotato parziale (giallo) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.my-consultant.anief-prenotazioni-calendar-event-partial {
	background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
	color: #92400e;
	border-left: 3px solid #f59e0b;
}

/* Consulente attivo - prenotato pieno (rosso) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.my-consultant.anief-prenotazioni-calendar-event-full {
	background: linear-gradient(135deg, #fee2e2 0%, #fecaca 100%);
	color: #991b1b;
	border-left: 3px solid #ef4444;
}

/* Altri consulenti - stati (sfumature di grigio) */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.other-consultant.anief-prenotazioni-calendar-event-booked {
	background: linear-gradient(135deg, #e5e7eb 0%, #d1d5db 100%);
	color: #374151;
	border-left: 3px solid #6b7280;
}

/* Hover effects per interattività */
.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event {
	transition: all 0.2s ease;
	cursor: pointer;
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.my-consultant:hover {
	box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}

.anief-prenotazioni-frontend-calendar .anief-prenotazioni-calendar-event.other-consultant:hover {
	box-shadow: 0 2px 8px rgba(107, 114, 128, 0.3);
}

/* ============================================================
 * LAYOUT SEMPLIFICATO SLOT FRONTEND
 * ============================================================ */

.anief-prenotazioni-calendar-event-simplified {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	width: 100%;
	font-size: 10px;
	line-height: 1.2;
	position: relative;
}

.anief-prenotazioni-calendar-event-type {
	font-weight: 600;
	flex-shrink: 1;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.anief-prenotazioni-calendar-event-consultant-short {
	font-weight: 400;
	opacity: 0.9;
	flex-shrink: 0;
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.anief-prenotazioni-calendar-event-status-dot {
	position: absolute;
	top: 2px;
	right: 2px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}

/* Responsive: su mobile riduci ulteriormente */
@media (max-width: 600px) {
	.anief-prenotazioni-calendar-event-simplified {
		font-size: 9px;
		gap: 2px;
	}

	.anief-prenotazioni-calendar-event-consultant-short {
		max-width: 60px;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

/* ============================================================
 * VISTA SETTIMANA: Layout a Colonne
 * ============================================================ */

.anief-prenotazioni-calendar-week-view {
	display: flex;
	gap: 12px;
	margin-top: 16px;
	/* Altezza minima uguale alla tabella mese (circa 6 righe da 60-80px) */
	min-height: 480px;
}

.anief-prenotazioni-calendar-week-day {
	flex: 1;
	min-width: 0;
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	/* Assicura che tutte le colonne abbiano la stessa altezza */
	height: 100%;
	min-height: 480px;
}

.anief-prenotazioni-calendar-week-day.today {
	border-color: #3b82f6;
	border-width: 2px;
}

.anief-prenotazioni-calendar-week-day-header {
	background: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);
	padding: 12px 8px;
	text-align: center;
	border-bottom: 1px solid #e5e7eb;
	flex-shrink: 0;
}

.anief-prenotazioni-calendar-week-day-name {
	display: block;
	font-size: 11px;
	font-weight: 600;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-bottom: 4px;
}

.anief-prenotazioni-calendar-week-day-number {
	display: block;
	font-size: 20px;
	font-weight: 700;
	color: #1f2937;
}

.anief-prenotazioni-calendar-week-day.today .anief-prenotazioni-calendar-week-day-number {
	color: #3b82f6;
}

.anief-prenotazioni-calendar-week-day-events {
	flex: 1;
	overflow-y: auto;
	padding: 8px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event {
	position: relative;
	padding: 8px 10px;
	border-radius: 4px;
	font-size: 11px;
	line-height: 1.4;
	cursor: pointer;
	transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event:hover {
	transform: translateY(-1px);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event-time {
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 4px;
	color: inherit;
	opacity: 0.8;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event-simplified {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event-type {
	font-weight: 600;
	flex-shrink: 1;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-event-consultant-short {
	font-weight: 400;
	opacity: 0.9;
	flex-shrink: 0;
	font-size: 10px;
	/* Permette il wrap del testo */
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.anief-prenotazioni-calendar-week-day-events .anief-prenotazioni-calendar-day-empty {
	text-align: center;
	padding: 20px 8px;
	color: #9ca3af;
	font-size: 11px;
	font-style: italic;
}

/* Responsive: settimana su mobile */
@media (max-width: 768px) {
	.anief-prenotazioni-calendar-week-view {
		flex-direction: column;
		gap: 8px;
		min-height: auto;
	}

	.anief-prenotazioni-calendar-week-day {
		height: auto;
		min-height: 200px;
	}

	.anief-prenotazioni-calendar-week-day-events {
		max-height: 300px;
	}
}

/* NOTA: La domenica nella vista settimana viene gestita dal PHP (continue), non dal CSS */

/* ============================================================
 * MODALE DETTAGLI SLOT (frontend)
 * ============================================================ */

.anief-calendar-modal {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 9999999 !important;
	display: none;
}

.anief-calendar-modal.is-open {
	display: flex !important;
	align-items: center;
	justify-content: center;
}

.anief-calendar-modal-backdrop {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(0, 0, 0, 0.5);
	padding: 20px;
	z-index: 1;
}

.anief-calendar-modal-dialog {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 500px;
	max-height: 90vh;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.anief-calendar-modal-dialog {
	position: relative;
	width: 100%;
	max-width: 500px;
	max-height: 90vh;
	background: #ffffff;
	border-radius: 8px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.anief-calendar-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	border-bottom: 1px solid #e5e7eb;
	background: #f9fafb;
}

.anief-calendar-modal-title {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: #111827;
}

.anief-calendar-modal-close {
	background: #f3f4f6;
	border: 1px solid #d1d5db;
	border-radius: 4px;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	padding: 4px 8px;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #4b5563;
	transition: all 0.2s ease;
}

.anief-calendar-modal-close:hover {
	background: #e5e7eb;
	border-color: #9ca3af;
	color: #111827;
}

.anief-calendar-modal-body {
	flex: 1;
	overflow-y: auto;
	padding: 18px;
}

.anief-calendar-modal-footer {
	padding: 12px 18px;
	border-top: 1px solid #e5e7eb;
	background: #f9fafb;
	text-align: right;
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}

.anief-calendar-modal-close-btn {
	background: #3b82f6;
	border: 1px solid #2563eb;
	color: #ffffff;
	padding: 8px 16px;
	border-radius: 4px;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.anief-calendar-modal-close-btn:hover {
	background: #2563eb;
	border-color: #1d4ed8;
	color: #ffffff;
}

.anief-calendar-modal-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
	color: #6b7280;
}

.anief-calendar-spinner {
	width: 32px;
	height: 32px;
	border: 3px solid #e5e7eb;
	border-top-color: #3b82f6;
	border-radius: 50%;
	animation: anief-spin 0.8s linear infinite;
	margin-bottom: 12px;
}

@keyframes anief-spin {
	to { transform: rotate(360deg); }
}

.anief-calendar-slot-details {
	font-size: 14px;
}

.anief-calendar-slot-info {
	background: #f8fafc;
	padding: 12px;
	border-radius: 6px;
	margin-bottom: 16px;
	border-left: 3px solid #3b82f6;
}

.anief-calendar-slot-bookings {
	margin-top: 16px;
}

.anief-calendar-slot-bookings h4 {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 600;
	color: #111827;
}

.anief-calendar-booking-item {
	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 6px;
	padding: 12px;
	margin-bottom: 8px;
	font-size: 13px;
}

/* Responsive modale */
@media (max-width: 600px) {
	.anief-calendar-modal-dialog {
		width: 95%;
		margin: 2.5vh auto;
		max-height: 95vh;
	}

	.anief-calendar-modal-header,
	.anief-calendar-modal-body,
	.anief-calendar-modal-footer {
		padding: 12px 14px;
	}
}

/* ============================================================
   MODAL CONFERMA/ERRORE PRENOTAZIONE GUEST
============================================================ */
.anief-guest-modal {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	z-index: 2147483647; /* Massimo valore z-index sicuro */
}

/* Overlay generato via CSS con pseudo-elemento */
.anief-guest-modal::before {
	content: '';
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	z-index: 0;
}

.anief-guest-modal-content {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #ffffff;
	border-radius: 12px;
	max-width: 600px;
	width: 90%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	animation: aniefGuestModalSlideIn 0.3s ease-out;
	z-index: 1;
}

@keyframes aniefGuestModalSlideIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.anief-guest-modal-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 20px 24px;
	border-bottom: 1px solid #e5e7eb;
	background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
	border-radius: 12px 12px 0 0;
}

.anief-guest-modal-header h2 {
	margin: 0;
	font-size: 1.5rem;
	color: #1e293b;
	font-weight: 700;
}

.anief-guest-modal-close {
	background: none;
	border: none;
	font-size: 2rem;
	line-height: 1;
	color: #64748b;
	cursor: pointer;
	padding: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 6px;
	transition: all 0.2s ease;
}

.anief-guest-modal-close:hover {
	background: #fee2e2;
	color: #dc2626;
}

.anief-guest-modal-body {
	padding: 20px;
}

.anief-guest-modal-footer {
	padding: 16px 24px;
	border-top: 1px solid #e5e7eb;
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	background: #f8fafc;
	border-radius: 0 0 12px 12px;
}

.anief-guest-modal-confirm .anief-guest-modal-header h2 {
	color: #059669;
}

.anief-guest-modal-error .anief-guest-modal-header h2 {
	color: #dc2626;
}

.anief-booking-details {
	background: #f0fdf4;
	border: 2px solid #22c55e;
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 20px;
}

.anief-booking-details h3 {
	margin: 0 0 12px 0;
	color: #166534;
	font-size: 1.1rem;
	font-weight: 600;
}

.anief-booking-details p {
	margin: 6px 0;
	color: #14532d;
}

.anief-email-warning {
	background: #fffbeb;
	border: 2px solid #f59e0b;
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 16px;
}

.anief-email-warning p {
	margin: 8px 0;
	color: #92400e;
}

.anief-email-warning strong {
	color: #78350f;
}

.anief-cancel-link {
	background: #f0f9ff;
	border: 2px solid #0ea5e9;
	border-radius: 8px;
	padding: 16px;
	margin-bottom: 16px;
}

.anief-cancel-link p {
	margin: 8px 0;
	color: #0c4a6e;
}

.anief-cancel-link a {
	color: #0369a1;
	text-decoration: none;
	font-weight: 600;
}

.anief-cancel-link a:hover {
	text-decoration: underline;
}

.anief-email-error {
	background: #fef2f2;
	border: 2px solid #ef4444;
	border-radius: 8px;
	padding: 12px;
	margin-top: 16px;
}

.anief-email-error p {
	margin: 0;
	color: #991b1b;
}

.anief-existing-booking {
	background: #f0fdf4;
	border: 2px solid #22c55e;
	border-radius: 8px;
	padding: 16px;
	margin: 16px 0;
}

.anief-existing-booking h3 {
	margin: 0 0 12px 0;
	color: #166534;
	font-size: 1.1rem;
	font-weight: 600;
}

.anief-existing-booking p {
	margin: 6px 0;
	color: #14532d;
}

.anief-guest-modal-close-btn {
	background: #3b82f6;
	color: white;
	border: none;
	padding: 10px 24px;
	border-radius: 6px;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.2s ease;
}

.anief-guest-modal-close-btn:hover {
	background: #2563eb;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

/* Responsive per modal */
@media (max-width: 768px) {
	.anief-guest-modal-content {
		width: 95%;
		max-height: 95vh;
	}

	.anief-guest-modal-header {
		padding: 16px 20px;
	}

	.anief-guest-modal-header h2 {
		font-size: 1.25rem;
	}

	.anief-guest-modal-body {
		padding: 20px;
	}

	.anief-guest-modal-footer {
		padding: 12px 20px;
		flex-direction: column;
	}

	.anief-guest-modal-close-btn {
		width: 100%;
	}
}

/* Fine frontend.css */

/* ============================================================
 * RESPONSIVE: Modale su mobile
 * ============================================================ */

@media (max-width: 600px) {
	.anief-calendar-modal-backdrop {
		padding: 10px;
	}

	.anief-calendar-modal-dialog {
		max-width: 100%;
		max-height: 95vh;
	}

	.anief-calendar-modal-header {
		padding: 12px 14px;
	}

	.anief-calendar-modal-title {
		font-size: 14px;
	}

	.anief-calendar-modal-body {
		padding: 14px;
	}

	.anief-calendar-modal-footer {
		padding: 10px 14px;
	}
}
