/* Gestione Eventi — frontend prenotazione */

.ge-prenotazione { max-width: 680px; margin: 1.5em 0; font-size: 16px; line-height: 1.5; }
.ge-prenotazione * { box-sizing: border-box; }

.ge-evento-titolo { margin: 0 0 .3em; }
.ge-evento-descrizione { margin-bottom: 1.2em; }

.ge-box { padding: 14px 16px; border-radius: 6px; margin: 0 0 1.2em; }
.ge-box-info { background: #eef4fb; border: 1px solid #cde1f5; }
.ge-box-warning { background: #fff6e5; border: 1px solid #f3d99b; }
.ge-box-error { background: #fdecec; border: 1px solid #f2b8b8; }
.ge-box-success { background: #e9f6ec; border: 1px solid #b6dfc0; }
.ge-box-success h2 { margin-top: 0; }

.ge-fieldset { border: 1px solid #e0e0e0; border-radius: 6px; padding: 12px 16px 4px; margin: 0 0 1em; }
.ge-fieldset legend { font-weight: 700; padding: 0 6px; }

.ge-form label { display: block; font-weight: 600; margin-bottom: 3px; }
.ge-form input[type="text"],
.ge-form input[type="email"],
.ge-form input[type="tel"] {
	width: 100%; padding: 9px 10px; border: 1px solid #b7b7b7; border-radius: 5px; font-size: 16px;
}
.ge-form input:focus { border-color: #2c6cb0; outline: 2px solid rgba(44,108,176,.25); }
.ge-req { color: #c0392b; }
.ge-hint, .ge-form .ge-hint { display: block; font-weight: 400; font-size: 13px; color: #666; margin-top: 3px; }

.ge-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
@media (max-width: 520px) { .ge-grid-2 { grid-template-columns: 1fr; } }

.ge-slot-giorno { margin: .8em 0 .3em; text-transform: capitalize; }
.ge-slot-list { display: flex; flex-direction: column; gap: 6px; }
.ge-slot-opzione {
	display: flex; align-items: center; gap: 10px; font-weight: 400;
	border: 1px solid #d0d0d0; border-radius: 6px; padding: 9px 12px; cursor: pointer;
}
.ge-slot-opzione:hover { border-color: #2c6cb0; }
.ge-slot-opzione input { margin: 0; }
.ge-slot-ora { font-weight: 700; }
.ge-slot-etichetta { color: #555; }
.ge-slot-posti { margin-left: auto; font-size: 13px; color: #2a7d3f; }
.ge-slot-pieno { opacity: .55; cursor: not-allowed; }
.ge-slot-pieno .ge-slot-posti { color: #b23b3b; }

.ge-privacy { margin: 1em 0; }
.ge-privacy label { font-weight: 400; display: flex; gap: 8px; align-items: flex-start; }
.ge-privacy input { margin-top: 4px; }

.ge-btn {
	background: #2c6cb0; color: #fff; border: 0; border-radius: 6px;
	padding: 12px 28px; font-size: 16px; font-weight: 700; cursor: pointer;
}
.ge-btn:hover { background: #21568c; }

.ge-hp { position: absolute !important; left: -9999px !important; height: 0; overflow: hidden; }

.ge-qr-conferma { text-align: center; margin: 1.2em 0; }
.ge-qr-conferma img { border: 8px solid #fff; box-shadow: 0 0 0 1px #ddd; max-width: 100%; height: auto; }
.ge-qr-nota { font-size: 13px; color: #555; margin-top: .5em; }

.ge-riepilogo { width: 100%; border-collapse: collapse; margin-top: 1em; }
.ge-riepilogo th, .ge-riepilogo td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #e6e6e6; vertical-align: top; }
.ge-riepilogo th { width: 40%; font-weight: 600; color: #444; }

/* Area docenti */
.ge-docente { margin: 1.5em 0; font-size: 15px; }
.ge-doc-head h2 { margin: 0 0 2px; }
.ge-doc-sub { color: #555; margin: 0 0 1em; }
.ge-doc-filtri { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 8px; }
.ge-doc-filtri select, .ge-doc-filtri input { padding: 6px 8px; border: 1px solid #b7b7b7; border-radius: 5px; }
.ge-btn-small { padding: 7px 16px; font-size: 14px; }
.ge-doc-azioni { margin: 0 0 1.2em; font-size: 14px; }
.ge-doc-evento { margin: 1.4em 0 .2em; border-bottom: 2px solid #2c6cb0; padding-bottom: 3px; }
.ge-doc-fascia { margin: 1em 0 .3em; font-size: 15px; color: #333; }
.ge-doc-tab { width: 100%; border-collapse: collapse; margin-bottom: 1em; }
.ge-doc-tab th, .ge-doc-tab td { border: 1px solid #ddd; padding: 6px 9px; text-align: left; vertical-align: top; font-size: 14px; }
.ge-doc-tab th { background: #f2f5f8; }
.ge-doc-p { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; }
.ge-doc-p-attesa { background: #e5effa; color: #14568b; }
.ge-doc-p-presente { background: #d7efdb; color: #14562a; }
.ge-doc-p-assente { background: #f7dede; color: #8a1f1f; }
