:root {
    --ab-primary: #0d6efd;
    --ab-primary-dark: #0a58ca;
    --ab-success: #198754;
    --ab-danger: #dc3545;
    --ab-warning: #ffc107;
    --ab-info: #0dcaf0;
    --ab-muted: #6c757d;
    --ab-bg: #ffffff;
    --ab-bg-soft: #f8f9fa;
    --ab-border: #dee2e6;
    --ab-text: #212529;
    --ab-text-soft: #495057;
    --ab-radius: 10px;
    --ab-radius-sm: 6px;
    --ab-shadow-sm: 0 1px 3px rgba(0,0,0,.08);
    --ab-shadow-md: 0 4px 16px rgba(0,0,0,.08);
    --ab-targa-bg: #ffc107;
    --ab-targa-text: #000000;
    --ab-targa-border: #866600;
}

.angelucci-booking-wrap,
.angelucci-booking-wrap * {
    box-sizing: border-box;
}

.angelucci-booking-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 1.2rem;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif;
    color: var(--ab-text);
    background: var(--ab-bg);
    border-radius: var(--ab-radius);
    line-height: 1.55;
}

.angelucci-booking-wrap .angelucci-header {
    text-align: center;
    margin-bottom: 1.4rem;
}

.angelucci-booking-wrap .angelucci-title {
    margin: 0 0 .4rem;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ab-primary-dark);
}

.angelucci-booking-wrap .angelucci-subtitle {
    margin: 0;
    color: var(--ab-text-soft);
    font-size: .95rem;
}

.angelucci-booking-wrap .angelucci-filters.row-grid {
    display: none !important;
}

.angelucci-booking-wrap .angelucci-field label {
    display: block;
    margin-bottom: .35rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ab-text-soft);
}

.angelucci-booking-wrap .angelucci-select,
.angelucci-booking-wrap .ab-input,
.angelucci-booking-wrap .ab-select,
.angelucci-booking-wrap .ab-textarea {
    display: block;
    width: 100%;
    padding: .6rem .8rem;
    font-size: .95rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius-sm);
    background: #fff;
    color: var(--ab-text);
    transition: border-color .15s ease, box-shadow .15s ease;
    font-family: inherit;
}

.angelucci-booking-wrap .angelucci-select:focus,
.angelucci-booking-wrap .ab-input:focus,
.angelucci-booking-wrap .ab-select:focus,
.angelucci-booking-wrap .ab-textarea:focus {
    outline: none;
    border-color: var(--ab-primary);
    box-shadow: 0 0 0 3px rgba(13, 110, 253, .15);
}

.angelucci-booking-wrap .ab-input.ab-invalid,
.angelucci-booking-wrap .ab-select.ab-invalid,
.angelucci-booking-wrap .ab-textarea.ab-invalid {
    border-color: var(--ab-danger);
    box-shadow: 0 0 0 3px rgba(220, 53, 69, .15);
}

.angelucci-booking-wrap .angelucci-calendar-wrap {
    position: relative;
    padding: 1rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: #fff;
    box-shadow: var(--ab-shadow-sm);
    margin-bottom: 1.2rem;
}

.angelucci-booking-wrap .angelucci-calendar-loader {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,.9);
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    z-index: 50;
    border-radius: var(--ab-radius);
    gap: .6rem;
    font-weight: 700;
    color: var(--ab-primary-dark);
    font-size: .95rem;
}
.angelucci-booking-wrap .angelucci-calendar-loader.is-visible {
    display: flex;
}

.angelucci-booking-wrap .angelucci-spinner {
    width: 34px;
    height: 34px;
    border: 3px solid #e9ecef;
    border-top-color: var(--ab-primary);
    border-radius: 50%;
    animation: ab-spin 0.8s linear infinite;
}

@keyframes ab-spin { to { transform: rotate(360deg); } }

/* ========== [NUOVO STILE MOCKUP AZZURRO] ==========
   Barra azzurra in alto, mese grande centrato, frecce laterali colorate. */
.angelucci-booking-wrap .angelucci-calendar-wrap {
    border-radius: 4px !important;
    overflow: hidden !important;
    border: 1px solid #e5e7eb !important;
    padding: 0 !important;
    background: #fff !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap::before {
    content: "";
    display: block;
    width: 100%;
    height: 8px;
    background-color: #0d6efd;
}
.angelucci-booking-wrap .angelucci-calendar.fc,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc {
    font-size: .98rem !important;
    padding: 1rem 1rem .5rem 1rem !important;
    background: #fff !important;
}

/* ========== TOOLBAR STILE MOCKUP ==========
   ‹ a SX ESTREMO  |  SETTEMBRE 2026 CENTRATO GRANDE MAIUSCOLO  |  › a DX ESTREMO
   ⚠️ SAFETY SELETTORI: usiamo .angelucci-calendar-wrap (wrapper OUTER) invece di .angelucci-calendar.fc
   perché .angelucci-calendar e .fc sono SULLO STESSO div (se usi lo SPAZIO → 0 match, bug classico!).
   Raddoppiamo ogni regola con body prefix come fatto per i colori delle celle. */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar {
    all: unset !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 0 1.4rem 0 !important;
    padding: 0 .4rem !important;
    box-sizing: border-box !important;
    position: relative !important;
}
/* Chunk LEFT (prev) e RIGHT (next): larghezza fissa minima, estremi */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:first-child,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:last-child,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:first-child,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:last-child {
    all: unset !important;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    min-width: 60px !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:last-child,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:last-child {
    justify-content: flex-end !important;
}
/* Chunk CENTER (title): OCCUPA TUTTO lo spazio tra SX e DX → title PERFETTAMENTE CENTRATO */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:nth-of-type(2),
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar > .fc-toolbar-chunk:nth-of-type(2) {
    all: unset !important;
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    text-align: center !important;
}
/* Titolo MESE ANNO — STILE H2/H3: 3rem, TUTTO MAIUSCOLO, medium bold */
.angelucci-booking-wrap .angelucci-calendar-wrap h2.fc-toolbar-title,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-toolbar-title,
body .angelucci-booking-wrap .angelucci-calendar-wrap h2.fc-toolbar-title,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-toolbar-title {
    display: block !important;
    font-size: 3rem !important;
    line-height: 1.1 !important;
    font-weight: 500 !important;
    color: #0f172a !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}
/* Nascondi pulsante OGGI / PRECYEAR / NEXTYEAR (già non nella toolbar, safety doppio livello) */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-today-button,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prevYear-button,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-nextYear-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-today-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prevYear-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-nextYear-button {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    font-size: 0 !important;
}
/* Nascondi pulsanti Mese/Settimana/Giorno (vista solo mese) */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-dayGridMonth-button,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-timeGridWeek-button,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-timeGridDay-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-dayGridMonth-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-timeGridWeek-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-timeGridDay-button {
    display: none !important;
}
/* Frecce PREV / NEXT → stile mockup: solo freccia AZZURRA, niente bordo, niente testo */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button {
    all: unset !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 56px !important;
    height: 56px !important;
    color: #0d6efd !important;
    font-size: 0 !important;
    border-radius: 8px !important;
    transition: background-color .15s ease, color .15s ease !important;
    line-height: 1 !important;
    position: relative !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
    user-select: none !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button::before,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button::before {
    content: "\2039" !important;
    color: #0d6efd !important;
    font-size: 3.8rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    display: block !important;
    margin-top: -10px !important;
    margin-right: 2px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    text-shadow: none !important;
    background: transparent !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button::before,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button::before {
    content: "\203A" !important;
    color: #0d6efd !important;
    font-size: 3.8rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    display: block !important;
    margin-top: -10px !important;
    margin-left: 2px !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    text-shadow: none !important;
    background: transparent !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button:hover,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button:hover,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button:hover,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button:hover {
    background-color: #eff6ff !important;
    color: #0b5ed7 !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button:hover::before,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button:hover::before,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button:hover::before,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button:hover::before {
    color: #0b5ed7 !important;
}
/* Nascondi icone FC originali + testi "Prec"/"Succ" (safety QUADRUPLO livello!) */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-icon,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-icon,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-text,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-text,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-main,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-main,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-label,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-label,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-icon,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-icon,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-text,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-text,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-main,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-main,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-prev-button .fc-button-label,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-next-button .fc-button-label {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    font-size: 0 !important;
    line-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    position: absolute !important;
    opacity: 0 !important;
    clip: rect(0 0 0 0) !important;
}
/* ========== HEADER SETTIMANA COLORATI ==========
   LUN/MAR/MER/GIO/VEN/SAB/DOM → AZZURRO uppercase bold */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-col-header,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-col-header {
    background: #ffffff !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-col-header-cell-cushion,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-col-header-cell-cushion {
    display: block !important;
    text-align: center !important;
    padding: 1rem 0 .7rem !important;
    color: #0d6efd !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}
/* ========== CELLE: PIENE, SPAZIOSE, QUADRATE ========== */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day {
    min-height: 110px !important;
    border: 1px solid #e5e7eb !important;
    background-color: #ffffff !important;
    cursor: pointer !important;
    transition: filter .12s ease !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day:hover:not(.fc-day-disabled):not(.ab-day-selected),
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day:hover:not(.fc-day-disabled):not(.ab-day-selected) {
    filter: brightness(.97) !important;
}
/* Numeri giorno → grandi, centrali, alti nel mezzo */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day-top,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day-top {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding-top: 28px !important;
    position: relative !important;
    min-height: 110px !important;
    width: 100% !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day-number,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day-number {
    color: #475569 !important;
    font-weight: 400 !important;
    font-size: 1.9rem !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1.1 !important;
    text-decoration: none !important;
    position: relative !important;
    float: none !important;
}
/* Giorni fuori mese (mese prec/succ) → opacità 0.38 stile mockup */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-other,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-other .fc-daygrid-day-number,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-other,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-other .fc-daygrid-day-number {
    opacity: .38 !important;
    cursor: default !important;
    background-color: #fafafa !important;
}
/* Giorno "OGGI" → cerchio azzurro tratteggiato attorno al numero (non sovrascrive colori disponibilità) */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-today,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-today {
    background: #ffffff !important;
}
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-today .fc-daygrid-day-number::before,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-today .fc-daygrid-day-number::before {
    content: "" !important;
    position: absolute !important;
    top: -4px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 2px solid #0d6efd !important;
    opacity: .35 !important;
    z-index: 0 !important;
    pointer-events: none !important;
    display: block !important;
}
/* ========== GIORNO SELEZIONATO (stile '30 rosso' mockup) ==========
   Sfondo AZZURRO pieno (tutti i 5 layer FC) + numero BIANCO bold + PALLINO 10px sotto.
   Selettori già corretti (body prefix + .fc.angelucci-calendar SENZA SPAZIO) mantenuti per compatibilità popup.
   Aggiungiamo safety tramite .angelucci-calendar-wrap per stessa priorità */
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .modal td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
body .remodal td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-events,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-frame,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-top,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-bg,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-events {
    background-color: #0d6efd !important;
    background-image: none !important;
    border-color: #0b5ed7 !important;
}
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number {
    color: #ffffff !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    text-shadow: 0 1px 1px rgba(0,0,0,.15) !important;
}
/* PALLINO sotto il numero del giorno selezionato (esattamente come mockup 30 rosso) */
body td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number::after,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number::after,
.angelucci-booking-wrap .angelucci-calendar-wrap td.fc-daygrid-day.fc-daygrid-day.ab-day-selected .fc-daygrid-day-number::after {
    content: "" !important;
    display: block !important;
    width: 10px !important;
    height: 10px !important;
    border-radius: 50% !important;
    background-color: #ffffff !important;
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    bottom: -34px !important;
    box-shadow: 0 1px 2px rgba(0,0,0,.2) !important;
}
/* Giorni passati base, eventi slot interni, ecc. (safety wrap prefix) */
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-past,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-day-past {
    background: #fff !important;
}
.angelucci-booking-wrap .angelucci-calendar .ab-event,
.angelucci-booking-wrap .angelucci-calendar-wrap .ab-event {
    border: none !important;
    border-left: 3px solid var(--ab-primary) !important;
    padding: 2px 6px !important;
    font-size: .78rem !important;
}
.angelucci-booking-wrap .angelucci-calendar .ab-event-pending,
.angelucci-booking-wrap .angelucci-calendar-wrap .ab-event-pending  { background: #ffeaa7 !important; color: #5a4300 !important; border-left-color: #f39c12 !important; }
.angelucci-booking-wrap .angelucci-calendar .ab-event-confirmed,
.angelucci-booking-wrap .angelucci-calendar-wrap .ab-event-confirmed{ background: #a8e6cf !important; color: #1b5e20 !important; border-left-color: var(--ab-success) !important; }
.angelucci-booking-wrap .angelucci-calendar .ab-event-cancelled,
.angelucci-booking-wrap .angelucci-calendar-wrap .ab-event-cancelled{ background: #ffcdd2 !important; color: #8b0000 !important; border-left-color: var(--ab-danger) !important; }
.angelucci-booking-wrap .angelucci-calendar .ab-event-check,
.angelucci-booking-wrap .angelucci-calendar-wrap .ab-event-check{ background: #b3e5fc !important; color: #01579b !important; border-left-color: var(--ab-info) !important; }

.angelucci-booking-wrap .angelucci-slots-wrap {
    padding: 1rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: #fff;
    box-shadow: var(--ab-shadow-md);
    margin-bottom: 1.2rem;
}
.angelucci-booking-wrap .angelucci-slots-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .6rem;
    margin-bottom: 1rem;
}
.angelucci-booking-wrap .angelucci-slots-header h3 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
}
.angelucci-booking-wrap .angelucci-selected-date {
    color: var(--ab-primary-dark);
}
.angelucci-booking-wrap .angelucci-btn-link {
    background: none;
    border: none;
    padding: .4rem .6rem;
    color: var(--ab-primary);
    cursor: pointer;
    font-weight: 600;
    border-radius: var(--ab-radius-sm);
}
.angelucci-booking-wrap .angelucci-btn-link:hover {
    background: rgba(13,110,253,.08);
    text-decoration: underline;
}
.angelucci-booking-wrap .angelucci-slots-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .6rem;
}
.angelucci-booking-wrap .angelucci-slot-btn {
    padding: .75rem .5rem;
    font-size: 1rem;
    font-weight: 700;
    border: 2px solid var(--ab-border);
    background: #fff;
    color: var(--ab-primary-dark);
    border-radius: var(--ab-radius-sm);
    cursor: pointer;
    transition: transform .1s ease, background .15s ease, color .15s ease, border-color .15s ease;
}
.angelucci-booking-wrap .angelucci-slot-btn:hover {
    transform: translateY(-1px);
    background: var(--ab-primary);
    color: #fff;
    border-color: var(--ab-primary);
    box-shadow: var(--ab-shadow-sm);
}
.angelucci-booking-wrap .angelucci-slot-btn:active { transform: translateY(0); }

.angelucci-booking-wrap .angelucci-no-slots p {
    padding: 1rem;
    text-align: center;
    background: var(--ab-bg-soft);
    color: var(--ab-muted);
    border: 1px dashed var(--ab-border);
    border-radius: var(--ab-radius-sm);
    font-weight: 600;
}

.angelucci-booking-wrap .angelucci-form-wrap {
    padding: 1.2rem;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    background: #fff;
    box-shadow: var(--ab-shadow-md);
    margin-bottom: 1.2rem;
}
.angelucci-booking-wrap .angelucci-booking-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.angelucci-booking-wrap .angelucci-appointment-summary {
    padding: 1rem;
    background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(13,110,253,.02));
    border: 1px solid rgba(13,110,253,.2);
    border-radius: var(--ab-radius);
}
.angelucci-booking-wrap .angelucci-appointment-summary h4 {
    margin: 0 0 .6rem;
    font-size: 1rem;
    color: var(--ab-primary-dark);
    text-transform: uppercase;
    letter-spacing: .3px;
}
.angelucci-booking-wrap .angelucci-appointment-summary ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .3rem .8rem;
}
.angelucci-booking-wrap .angelucci-appointment-summary li .lbl {
    color: var(--ab-text-soft);
    margin-right: .3rem;
    font-size: .88rem;
}
.angelucci-booking-wrap .angelucci-form-row {
    display: grid;
    gap: .8rem;
}
.angelucci-booking-wrap .ab-row-2 { grid-template-columns: repeat(2, 1fr); }
.angelucci-booking-wrap .ab-row-4-3 { grid-template-columns: 4fr 3fr; }

.angelucci-booking-wrap .angelucci-field-group label {
    display: block;
    margin-bottom: .35rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--ab-text-soft);
}
.angelucci-booking-wrap .angelucci-field-group .ab-input,
.angelucci-booking-wrap .angelucci-field-group .ab-select,
.angelucci-booking-wrap .angelucci-field-group .ab-textarea {
    min-height: 40px;
}
.angelucci-booking-wrap .ab-textarea { min-height: 80px; resize: vertical; }

.angelucci-booking-wrap .ab-targa {
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-weight: 700;
    background: var(--ab-targa-bg);
    color: var(--ab-targa-text);
    border: 2px solid var(--ab-targa-border);
    font-family: 'Courier New', ui-monospace, monospace;
    border-radius: 4px;
}
.angelucci-booking-wrap .ab-targa::placeholder {
    color: rgba(0,0,0,.4);
    letter-spacing: normal;
    font-weight: 500;
}

.angelucci-booking-wrap .angelucci-fieldset {
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius);
    padding: 1rem;
    margin: 0;
    background: #fbfdff;
}
.angelucci-booking-wrap .angelucci-fieldset legend {
    padding: 0 .5rem;
    font-weight: 700;
    color: var(--ab-primary-dark);
    font-size: .95rem;
    width: auto;
}

.angelucci-booking-wrap .angelucci-privacy-box {
    padding: .8rem 1rem;
    background: var(--ab-bg-soft);
    border-left: 3px solid var(--ab-primary);
    border-radius: var(--ab-radius-sm);
}
.angelucci-booking-wrap .ab-check {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    cursor: pointer;
    font-size: .9rem;
    color: var(--ab-text-soft);
    margin: 0;
}
.angelucci-booking-wrap .ab-check input {
    margin-top: .2rem;
    accent-color: var(--ab-primary);
}

.angelucci-booking-wrap .angelucci-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .8rem;
    flex-wrap: wrap;
}

.angelucci-booking-wrap .ab-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding: .8rem 1.4rem;
    font-size: .95rem;
    font-weight: 700;
    border: 2px solid transparent;
    border-radius: var(--ab-radius-sm);
    cursor: pointer;
    transition: all .15s ease;
    line-height: 1.2;
    min-height: 44px;
    font-family: inherit;
}
.angelucci-booking-wrap .ab-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}
.angelucci-booking-wrap .ab-btn-primary {
    background: var(--ab-primary);
    color: #fff;
    border-color: var(--ab-primary);
    text-transform: uppercase;
    letter-spacing: .4px;
}
.angelucci-booking-wrap .ab-btn-primary:hover:not(:disabled) {
    background: var(--ab-primary-dark);
    border-color: var(--ab-primary-dark);
    box-shadow: 0 4px 12px rgba(13,110,253,.3);
    transform: translateY(-1px);
}
.angelucci-booking-wrap .ab-btn-ghost {
    background: transparent;
    color: var(--ab-text-soft);
    border-color: var(--ab-border);
}
.angelucci-booking-wrap .ab-btn-ghost:hover:not(:disabled) {
    background: var(--ab-bg-soft);
    color: var(--ab-text);
}

.angelucci-booking-wrap .angelucci-msg {
    padding: .9rem 1rem;
    border-radius: var(--ab-radius-sm);
    font-weight: 600;
    font-size: .92rem;
}
.angelucci-booking-wrap .angelucci-msg:empty { display: none !important; padding: 0 !important; border: 0 !important; }
.angelucci-booking-wrap .angelucci-msg-info    { background: #e7f5ff; color: #044a7a; border: 1px solid #9fd2f5; }
.angelucci-booking-wrap .angelucci-msg-success { background: #d4f5df; color: #0b5a24; border: 1px solid #8fd9a7; }
.angelucci-booking-wrap .angelucci-msg-warning { background: #fff5d6; color: #7a5b00; border: 1px solid #ffd96a; }
.angelucci-booking-wrap .angelucci-msg-error   { background: #fde2e4; color: #8b0016; border: 1px solid #f3a4a9; }

.angelucci-booking-wrap #angelucci-success {
    padding: 1.4rem;
    border-radius: var(--ab-radius);
    background: #d4f5df;
    border: 1px solid #8fd9a7;
    color: #0b5a24;
    text-align: center;
    font-weight: 700;
    font-size: 1rem;
}

@media (max-width: 720px) {
    .angelucci-booking-wrap .angelucci-filters.row-grid { grid-template-columns: 1fr 1fr; }
    .angelucci-booking-wrap .angelucci-slots-grid { grid-template-columns: repeat(2, 1fr); }
    .angelucci-booking-wrap .ab-row-2 { grid-template-columns: 1fr; }
    .angelucci-booking-wrap .ab-row-4-3 { grid-template-columns: 1fr; }
    .angelucci-booking-wrap .angelucci-appointment-summary ul { grid-template-columns: 1fr; }
    .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar,
    body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-header-toolbar { flex-direction: column; gap: .5rem; }
}

@media (max-width: 480px) {
    .angelucci-booking-wrap { padding: .8rem; }
    .angelucci-booking-wrap .angelucci-filters.row-grid { grid-template-columns: 1fr; }
    .angelucci-booking-wrap .angelucci-slots-grid { grid-template-columns: 1fr 1fr; }
    .angelucci-booking-wrap .angelucci-title { font-size: 1.25rem; }
    .angelucci-booking-wrap .angelucci-actions { flex-direction: column-reverse; align-items: stretch; }
    .angelucci-booking-wrap .ab-btn { width: 100%; }
}

.angelucci-standalone-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background: linear-gradient(135deg, #f5f7fa, #e9eef5);
    font-family: inherit;
}
.angelucci-card {
    width: 100%;
    max-width: 520px;
    background: #fff;
    padding: 2rem 1.5rem;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,.1);
    text-align: center;
}
.angelucci-card.ab-success { border-top: 6px solid var(--ab-success); }
.angelucci-card.ab-danger  { border-top: 6px solid var(--ab-danger); }
.angelucci-card h2 {
    margin: 0 0 .6rem;
    font-size: 1.4rem;
}
.angelucci-card.ab-success h2 { color: var(--ab-success); }
.angelucci-card.ab-danger  h2 { color: var(--ab-danger); }
.angelucci-card p { margin: .4rem 0; color: var(--ab-text-soft); font-size: .95rem; }
.angelucci-card .ab-actions { margin-top: 1.2rem; display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; }

/* ========== [PUNTO C] COLORI CELLE GIORNO FULLCALENDAR ==========
   ✅ INFORMAZIONE PURAMENTE CROMATICA (NESSUN TESTO / NESSUN BADGE)
   ⚠️ v1: Stesso nodo .fc.angelucci-calendar (no spazio tra classi)
   ⚠️ v2: body td.fc-daygrid-day.fc-day-ab-* GLOBALE
   ⚠️ v3: RADDOPPIO CLASSE .fc-daygrid-day.fc-daygrid-day → specificità +1 peso classe
   ⚠️ v3: SELETTORI POPUP UNIVERSALI (Elementor, Bootstrap, Magnific, jQuery UI,
       SweetAlert2, IziModal, Remodal, Flat Modal, Vex, dialog ARIA standard ecc.)
*/

/* ---------- GRIGIO (0 slot - pieno / feriale chiuso) ---------- */
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray > .fc-daygrid-day-frame > .fc-daygrid-day-events,
/* UNIVERSALI: Tutti i popup e dialog conosciuti */
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .modal-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .ui-front td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .zoom-anim-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .flat-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .remodal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .remodal-wrapper td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .vex td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
/* namespace ufficiale plugin */
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-events {
    background-color: #f1f3f5 !important;
    background-image: none !important;
    border-color: #dee2e6 !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray {
    cursor: not-allowed !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-gray .fc-daygrid-day-number {
    color: #6c757d !important;
    text-decoration: line-through !important;
    font-weight: 600 !important;
    opacity: .95 !important;
}

/* ---------- ARANCIO (1 - 4 slot liberi - BASSA disponibilità) ---------- */
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .modal-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .ui-front td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .zoom-anim-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .flat-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .remodal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .remodal-wrapper td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
body .vex td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-events {
    background-color: #fed7aa !important;
    background-image: none !important;
    border-color: #fdba74 !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-orange .fc-daygrid-day-number {
    color: #7c2d12 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* ---------- GIALLO (5 - 6 slot liberi - MEDIA disponibilità) ---------- */
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .modal-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .ui-front td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .zoom-anim-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .flat-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .remodal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .remodal-wrapper td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
body .vex td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-events {
    background-color: #fde68a !important;
    background-image: none !important;
    border-color: #fcd34d !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-yellow .fc-daygrid-day-number {
    color: #78350f !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* ---------- VERDE (≥ 7 slot liberi - ALTA disponibilità) ---------- */
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .modal-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .ui-front td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .zoom-anim-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .flat-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .remodal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .remodal-wrapper td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
body .vex td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-events {
    background-color: #bbf7d0 !important;
    background-image: none !important;
    border-color: #86efac !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-ab-green .fc-daygrid-day-number {
    color: #14532d !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* ---------- DOMENICA (giorno non lavorativo - GRIGIO SCURO FISSO) ----------
   ✅ ORDINE CSS DOPO arancio/giallo/verde → vince SEMPRE su tutte le altre classi. */
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun > .fc-daygrid-day-frame,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .modal-content td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .ui-front td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .zoom-anim-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .elementor-popup-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .flat-modal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .iziModal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .remodal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .remodal-wrapper td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .swal2-container td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .vex td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-top,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-bg,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-events {
    background-color: #ced4da !important;
    background-image: none !important;
    border-color: #b5bdc4 !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-sun,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun {
    cursor: not-allowed !important;
}
body td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
body [role=dialog] td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
body .modal td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
body .ui-dialog td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
body .mfp-content td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
body .dialog-widget td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number,
.angelucci-booking-wrap .fc.angelucci-calendar td.fc-daygrid-day.fc-daygrid-day.fc-day-sun .fc-daygrid-day-number {
    color: #343a40 !important;
    text-decoration: line-through !important;
    font-weight: 700 !important;
    opacity: 1 !important;
}

/* ---------- BLOCCO BADGE: NASCONDIAMO TUTTO (non più usato, info solo CROMATICA) ---------- */
body .fc-daygrid-day .ab-day-badge,
body [role=dialog] .fc-daygrid-day .ab-day-badge,
body .modal .fc-daygrid-day .ab-day-badge,
body .ui-dialog .fc-daygrid-day .ab-day-badge,
body .mfp-content .fc-daygrid-day .ab-day-badge,
.angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day .ab-day-badge,
.angelucci-booking-wrap .fc.angelucci-calendar .fc-daygrid-day .ab-day-badge,
body .angelucci-booking-wrap .angelucci-calendar-wrap .fc-daygrid-day .ab-day-badge { display: none !important; }

/* ---------- LAYER FC6 INTERNI: FORZA TRANSPARENT sui DIV così il td colorato traspare ---------- */
body .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
body .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame > .fc-daygrid-day-bg,
body .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame > .fc-daygrid-day-top,
body .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame > .fc-daygrid-day-events,
body [role=dialog] .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
body .modal .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
body .ui-dialog .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
body .mfp-content .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
body .dialog-widget .fc td.fc-daygrid-day.fc-daygrid-day > .fc-daygrid-day-frame,
.angelucci-booking-wrap .fc.angelucci-calendar .fc-daygrid-day-frame {
    background: transparent !important;
    background-color: transparent !important;
    position: relative !important;
}

/* ========== [PUNTO C] LEGENDA COLORI SOTTO IL CALENDARIO ========== */
.angelucci-booking-wrap .ab-legend {
    margin-top: .9rem;
    padding: .7rem 1rem;
    background: #fff;
    border: 1px solid var(--ab-border);
    border-radius: var(--ab-radius-sm);
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .7rem 1rem;
    align-items: center;
    justify-content: center;
    font-size: .82rem;
    color: var(--ab-text-soft);
}
.angelucci-booking-wrap .ab-legend .ab-lg-title {
    font-weight: 700;
    color: var(--ab-text);
    margin-right: .3rem;
}
.angelucci-booking-wrap .ab-legend .ab-lg-item {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    line-height: 1;
}
.angelucci-booking-wrap .ab-legend .ab-lg-swatch {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 4px;
    border: 1px solid rgba(0,0,0,.15);
}
.angelucci-booking-wrap .ab-legend .ab-lg-swatch.ab-gray   { background-color: #f1f3f5; background-image: none; border-color: #dee2e6; }
.angelucci-booking-wrap .ab-legend .ab-lg-swatch.ab-sunday { background-color: #ced4da; background-image: none; border-color: #adb5bd; }
.angelucci-booking-wrap .ab-legend .ab-lg-swatch.ab-orange { background-color: #fff7ed; border-color: #fed7aa; }
.angelucci-booking-wrap .ab-legend .ab-lg-swatch.ab-yellow { background-color: #fefce8; border-color: #fef08a; }
.angelucci-booking-wrap .ab-legend .ab-lg-swatch.ab-green  { background-color: #f0fdf4; border-color: #bbf7d0; }
