/* Modulo di prenotazione e aree riservate (esercenti, amministrazione). */

.campo {
    display: block; width: 100%; margin-top: 0.35rem;
    padding: 0.7rem 0.9rem; border-radius: 0.75rem;
    border: 1px solid #d1d5db; background: #fff; color: #1f2937; font-size: 0.95rem;
}
.campo:focus { outline: none; border-color: #2d6a4f; box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.2); }
.campo[aria-invalid="true"] { border-color: #b91c1c; }
textarea.campo { resize: vertical; min-height: 6rem; }
.etichetta { display: block; font-size: 0.85rem; font-weight: 600; color: #1b4332; }
.errore-campo { font-size: 0.75rem; color: #b91c1c; margin-top: 0.25rem; }

.tabella { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.tabella th { text-align: left; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: #6b7280; padding: 0.6rem 0.75rem; border-bottom: 1px solid #e5e7eb; white-space: nowrap; }
.tabella td { padding: 0.75rem; border-bottom: 1px solid #f3f4f6; vertical-align: top; }
.tabella tr:hover td { background: #f9fafb; }

/* Calendario */
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: #e5e7eb; border: 1px solid #e5e7eb; border-radius: 1rem; overflow: hidden; }
.cal > div { background: #fff; min-height: 6.5rem; padding: 0.35rem; font-size: 0.72rem; }
.cal .cal-testa { min-height: 0; background: #f9fafb; text-align: center; font-weight: 700; color: #6b7280; padding: 0.5rem 0; }
.cal .cal-fuori { background: #f9fafb; color: #9ca3af; }
.cal .cal-oggi .cal-num { background: #1b4332; color: #fff; }
.cal-num { display: inline-flex; width: 1.5rem; height: 1.5rem; align-items: center; justify-content: center; border-radius: 9999px; font-weight: 700; }
.cal-voce { display: block; margin-top: 0.2rem; padding: 0.15rem 0.35rem; border-radius: 0.4rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-voce.confermata { background: #d8f3dc; color: #1b4332; }
.cal-voce.in_attesa { background: #fef3c7; color: #92400e; }
@media (max-width: 640px) {
    .cal > div { min-height: 4rem; padding: 0.2rem; }
    .cal-voce { font-size: 0; height: 0.4rem; padding: 0; }
}

/* Passi del modulo pubblico */
.pren-servizio { display: block; width: 100%; text-align: left; border: 2px solid #e5e7eb; border-radius: 1rem; padding: 1rem; background: #fff; transition: border-color 0.15s; }
.pren-servizio:hover { border-color: #95d5b2; }
.pren-servizio[aria-pressed="true"] { border-color: #2d6a4f; box-shadow: 0 0 0 3px rgba(45, 106, 79, 0.15); }
.pren-persona { border: 1px solid #e5e7eb; border-radius: 1rem; padding: 1rem; background: #fafafa; }
.pren-riepilogo dt { font-size: 0.75rem; color: #6b7280; }
.pren-riepilogo dd { font-weight: 600; color: #1b4332; margin-bottom: 0.6rem; }

@media (prefers-reduced-motion: reduce) { .pren-servizio { transition: none; } }
