/* ═══════════════════════════════════════════════════
   DOO Prenotazioni — CSS
   Zero valori hardcoded. Tutto eredita dal tema.
   Le variabili --doo-* vengono definite solo se
   l'admin ha configurato valori nelle impostazioni.
═══════════════════════════════════════════════════ */

/* ── Variabili di default: tutto dal tema ─────────
   Definite qui come fallback nel caso in cui
   stile_css_vars() non emetta nulla.               */
.doo-wrap {
    --doo-accent:       currentColor;
    --doo-accent-hover: currentColor;
    --doo-accent-text:  #fff;
    --doo-text:         inherit;
    --doo-muted:        inherit;
    --doo-border:       currentColor;
    --doo-input-bg:     transparent;
    --doo-radius:       0px;
    --doo-radius-sm:    0px;
    --doo-font:         inherit;

    font-family: var(--doo-font);
    color:       var(--doo-text);
    box-sizing:  border-box;
    background:  transparent;
    padding:     0;
}
*, *::before, *::after { box-sizing: inherit; }

/* ── Layout ──────────────────────────────────────── */
.doo-layout {
    display: grid;
    grid-template-columns: 3fr 2fr;
    gap: 2em;
    align-items: start;
}

/* ── Calendario ──────────────────────────────────── */
.doo-calendar-widget { background: transparent; padding: 0; }

.doo-cal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1em;
}
.doo-cal-nav-left { display: flex; align-items: center; gap: .4em; }

.doo-nav-btn {
    width: 2em; height: 2em;
    border: 1px solid;
    border-color: inherit;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font-size: 1.1em;
    line-height: 1;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    opacity: .6;
    transition: opacity .15s;
    padding: 0;
}
.doo-nav-btn:hover:not(:disabled) { opacity: 1; }
.doo-nav-btn:disabled { opacity: .2; cursor: default; }

.doo-today-btn {
    border: 1px solid; border-color: inherit;
    border-radius: 2em;
    background: transparent;
    color: inherit;
    font-family: inherit;
    font-size: .8em;
    font-weight: 500;
    padding: .3em .8em;
    cursor: pointer;
    opacity: .6;
    transition: opacity .15s;
}
.doo-today-btn:hover { opacity: 1; }

.doo-month-title { font-size: 1.2em; font-weight: 700; }

/* Griglia */
.doo-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 3px;
}
.doo-cal-loading {
    grid-column: 1 / -1;
    text-align: center;
    padding: 2em;
    opacity: .45;
    font-size: .9em;
}
.doo-cal-head {
    text-align: center;
    font-size: .65em;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    opacity: .45;
    padding: 0 0 .5em;
}

/* Celle */
.doo-wrap .doo-cal-day {
    aspect-ratio: 1;
    display: flex; align-items: flex-start; justify-content: flex-end;
    border-radius: var(--doo-radius-sm) !important;
    border: 1px solid !important;
    border-color: inherit !important;
    background: transparent !important;
    background-color: transparent !important;
    color: inherit !important;
    font-size: .88em;
    font-weight: normal !important;
    box-shadow: none !important;
    opacity: .25;
    cursor: default;
    transition: opacity .12s;
    user-select: none;
    line-height: 1;
    padding: 10px !important;
    margin: 0 !important;
    text-decoration: none !important;
}
.doo-wrap .doo-cal-day.empty {
    border-color: transparent !important;
    background: transparent !important;
    opacity: 0;
}
.doo-wrap .doo-cal-day.non-prenotabile { opacity: .5; }

/* Disponibile */
.doo-wrap .doo-cal-day.prenotabile {
    background: var(--doo-accent) !important;
    background-color: var(--doo-accent) !important;
    color: var(--doo-accent-text) !important;
    border-color: var(--doo-accent) !important;
    font-weight: 600 !important;
    opacity: 1;
    cursor: pointer;
}
.doo-wrap .doo-cal-day.prenotabile:hover,
.doo-wrap .doo-cal-day.prenotabile:focus {
    opacity: .72;
    box-shadow: none !important;
}

/* Esaurito */
/* Esaurito */
.doo-wrap .doo-cal-day.esaurito { opacity: .5; }
/* Oggi */
.doo-wrap .doo-cal-day.oggi {
    box-shadow: inset 0 0 0 2px var(--doo-accent) !important;
    opacity: .8;
    font-weight: 600 !important;
    border: 1px solid var(--doo-accent) !important;
}
.doo-wrap .doo-cal-day.oggi.prenotabile {
    opacity: 1;
    box-shadow: inset 0 0 0 2.5px rgba(255,255,255,.45) !important;
}

/* Selezionato */
.doo-wrap .doo-cal-day.selezionato {
    background: color-mix(in srgb, var(--doo-accent) 25%, transparent) !important;
    background-color: color-mix(in srgb, var(--doo-accent) 25%, transparent) !important;
    border-color: var(--doo-accent) !important;
    border-width: 2px !important;
    color: inherit !important;
    font-weight: 700 !important;
    opacity: 1 !important;
    box-shadow: none !important;
    filter: none !important;
}

/* Legenda */
.doo-cal-legend {
    display: flex; align-items: center; gap: 1em;
    margin-top: 1em; font-size: .75em; opacity: .55;
}
.doo-legend-swatch {
    display: inline-block;
    width: .85em; height: .85em; border-radius: 2px;
    background: var(--doo-accent);
    margin-right: .3em; vertical-align: middle;
}
.doo-legend-box {
    display: inline-block;
    width: .85em; height: .85em; border-radius: 2px;
    border: 2px solid var(--doo-accent);
    margin-right: .3em; vertical-align: middle;
}
.doo-cal-footnote { font-size: .75em; opacity: .5; margin: .8em 0 0; line-height: 1.5; }

/* ── Pannello dettaglio ───────────────────────────── */
.doo-panel { background: transparent; border: none; box-shadow: none; }

.doo-panel-empty {
    padding: 3em 0;
    display: flex; align-items: center; justify-content: center;
    min-height: 10em;
}
.doo-panel-empty-text { text-align: center; opacity: .45; line-height: 1.6; }

.doo-panel-detail { padding: 0; }

.doo-panel-header {
    display: flex; align-items: flex-start; gap: .7em;
    margin-bottom: 1.2em;
    padding-bottom: 1em;
    border-bottom: 1px solid; border-color: inherit; opacity: .85;
}
.doo-panel-icon {
    width: 2em; height: 2em;
    border-radius: var(--doo-radius-sm);
    background: color-mix(in srgb, var(--doo-accent) 12%, transparent);
    display: flex; align-items: center; justify-content: center;
    color: var(--doo-accent);
    flex-shrink: 0;
}
.doo-panel-evento  { font-weight: 600; font-size: .95em; line-height: 1.3; }
.doo-panel-data-label { font-size: .8em; opacity: .55; margin-top: .15em; }
.doo-close-btn {
    margin-left: auto; background: none; border: none;
    font-size: 1.2em; opacity: .35; cursor: pointer;
    line-height: 1; padding: 0; color: inherit; flex-shrink: 0;
}
.doo-close-btn:hover { opacity: .8; }

.doo-section-label {
    font-size: .65em; font-weight: 700; letter-spacing: .1em;
    text-transform: uppercase; opacity: .45; margin-bottom: .6em;
}
.doo-section-form-label { margin-top: 1.4em; }

/* Slot */
.doo-slots { display: flex; flex-direction: column; gap: .4em; margin-bottom:20px; }
.doo-wrap .doo-slot-btn {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; padding: .75em 1em;
    border: 1px solid currentColor !important;
    border-radius: var(--doo-radius-sm) !important;
    background: transparent !important;
    background-color: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: normal !important;
    line-height: inherit !important;
    box-shadow: none !important;
    cursor: pointer;
    text-align: left;
    opacity: .75;
    transition: opacity .15s;
    margin: 0 !important;
}
.doo-wrap .doo-slot-btn:hover:not(:disabled) {
    opacity: 1;
    background: transparent !important;
    background-color: transparent !important;
    border:1px solid var(--doo-accent) !important;
    box-shadow: inset 0 0 0 100px color-mix(in srgb, var(--doo-accent) 8%, transparent) !important;
}
.doo-wrap .doo-slot-btn.selected {
    border: 1px solid var(--doo-accent) !important;
    background: transparent !important;
    background-color: transparent !important;
    color: inherit !important;
    opacity: 1;
    box-shadow: inset 0 0 0 100px color-mix(in srgb, var(--doo-accent) 8%, transparent) !important;
}
.doo-wrap .doo-slot-btn:disabled {
    opacity: .25 !important;
    cursor: not-allowed;
    background: transparent !important;
}

.doo-slot-time { display: flex; align-items: center; gap: .5em; font-size: .9em; font-weight: 500; }
.doo-slot-time svg { opacity: .4; flex-shrink: 0; }

.doo-slot-badge {
    font-size: .72em; opacity: .55;
    border: 1px solid; border-color: inherit;
    border-radius: 2em; padding: .15em .6em; white-space: nowrap;
}
.doo-slot-btn.selected .doo-slot-badge {
    background: var(--doo-accent);
    color: var(--doo-accent-text);
    border-color: var(--doo-accent);
    opacity: 1;
}
.doo-slot-badge.esaurito { opacity: .25; }

/* Form */
.doo-form { display: flex; flex-direction: column; gap: .75em; }
.doo-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75em; }

.doo-field { display: flex; flex-direction: column; gap: .3em; }
.doo-field label { font-size: .75em; font-weight: 600; letter-spacing: .01em; }
.doo-field .req { color: var(--doo-accent); }

.doo-field input[type="text"],
.doo-field input[type="email"],
.doo-field input[type="tel"],
.doo-field input[type="number"],
.doo-field textarea {
    border: 1px solid; border-color: inherit;
    border-radius: var(--doo-radius-sm);
    padding: .55em .7em;
    font-family: inherit; font-size: inherit;
    color: inherit;
    background: var(--doo-input-bg);
    width: 100%;
    transition: border-color .15s, box-shadow .15s;
    outline: none; resize: vertical;
}
.doo-field input:focus,
.doo-field textarea:focus {
    border-color: var(--doo-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--doo-accent) 12%, transparent);
}
.doo-field textarea { min-height: 5em; }

/* Privacy */
.doo-privacy-field  { margin-top: .1em; }
.doo-privacy-label  {
    display: flex; align-items: flex-start; gap: .55em;
    cursor: pointer; font-size: .78em; opacity: .65; line-height: 1.5;
}
.doo-privacy-label input[type="checkbox"] {
    margin-top: .15em; accent-color: var(--doo-accent);
    width: .95em; height: .95em; flex-shrink: 0;
}

/* Submit */
.doo-wrap .doo-submit-btn {
    display: block;
    width: 100%; padding: .75em;
    background: var(--doo-accent) !important;
    background-color: var(--doo-accent) !important;
    color: var(--doo-accent-text) !important;
    border: none !important;
    border-radius: var(--doo-radius-sm) !important;
    font-family: inherit !important;
    font-size: 1em !important;
    font-weight: 600 !important;
    box-shadow: none !important;
    cursor: pointer;
    transition: opacity .15s;
    margin-top: .25em;
    opacity: 1;
}
.doo-wrap .doo-submit-btn:hover {
    opacity: .82;
    background: var(--doo-accent) !important;
    color: var(--doo-accent-text) !important;
}
.doo-wrap .doo-submit-btn:disabled { opacity: .4; cursor: wait; }

/* Nav e close buttons 
.doo-wrap .doo-nav-btn,
.doo-wrap .doo-today-btn,
.doo-wrap .doo-close-btn {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
}*/
.doo-wrap .doo-nav-btn:hover,
.doo-wrap .doo-today-btn:hover {
    background: var(--doo-accent) !important;
    color: var(--doo-accent-text) !important;
    background-color: var(--doo-accent) !important;
}
.doo-wrap .doo-nav-btn:focus,
.doo-wrap .doo-today-btn:focus {
    background: var(--doo-accent) !important;
    color: var(--doo-accent-text) !important;
    background-color: var(--doo-accent) !important;
}

/* Errors */
.doo-form-errors {
    border-left: 3px solid; border-color: #c0392b;
    padding: .5em .75em; font-size: .82em; color: #c0392b;
}
.doo-form-errors ul { margin: .25em 0 0; padding-left: 1em; }

/* Success */
.doo-panel-ok { padding: 2.5em 0; text-align: center; }
.doo-ok-icon {
    width: 3em; height: 3em; border-radius: 50%;
    background: color-mix(in srgb, var(--doo-accent) 10%, transparent);
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1em; color: var(--doo-accent);
}
.doo-ok-title { font-size: 1.2em; font-weight: 700; margin: 0 0 .5em; }
.doo-ok-text  { font-size: .88em; opacity: .55; line-height: 1.6; margin: 0; }

/* Utility */
.doo-hidden { display: none !important; }

/* ── Altri partecipanti ──────────────────────────── */
#doo-altri-wrap   { margin-top: .1em; }
.doo-altri-label  { font-size: .75em; font-weight: 600; display: block; margin-bottom: .4em; }
#doo-altri-container { display: flex; flex-direction: column; gap: .4em; }
.doo-altro-input {
    border: 1px solid; border-color: inherit;
    border-radius: var(--doo-radius-sm);
    padding: .55em .7em;
    font-family: inherit; font-size: inherit; color: inherit;
    background: var(--doo-input-bg);
    width: 100%; outline: none; box-sizing: border-box;
    transition: border-color .15s, box-shadow .15s;
}
.doo-altro-input:focus {
    border-color: var(--doo-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--doo-accent) 12%, transparent);
}
.doo-altro-input::placeholder { opacity: .35; }

/* ── Responsive ───────────────────────────────────── */
@media (max-width: 820px) {
    .doo-layout { grid-template-columns: 1fr; gap: 1.5em; }
}
@media (max-width: 480px) {
    .doo-form-row { grid-template-columns: 1fr; }
}

/* ── Cloudflare Turnstile ────────────────────────── */
.doo-turnstile {
    margin: .5em 0;
}
