/**
 * Modul 47 – Messe-Registrierung (seit 2.79.0).
 */
.gfcwm-fair { max-width: 560px; margin: 0 auto; font-size: 16px; }
.gfcwm-fair-title { margin: 0 0 6px; }
.gfcwm-fair-intro { margin: 0 0 16px; color: #3c434a; }
.gfcwm-fair-form { margin: 0; }
.gfcwm-fair-row { margin: 0 0 12px; }
.gfcwm-fair-row label { display: block; margin: 0 0 4px; font-weight: 600; font-size: 14px; }
.gfcwm-fair-row input[type=text], .gfcwm-fair-row input[type=email], .gfcwm-fair-row input[type=tel], .gfcwm-fair-row select, .gfcwm-fair-row textarea { box-sizing: border-box; width: 100%; min-height: 34px; padding: 6px 10px; border: 1px solid #c3c4c7; border-radius: 4px; font: inherit; font-size: 16px; background: #fff; }
.gfcwm-fair-row.is-check label { display: flex; align-items: flex-start; gap: 8px; font-weight: 400; line-height: 1.45; }
.gfcwm-fair-row.is-check input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; }
.gfcwm-fair-row .req, .gfcwm-fair-note .req { color: #d71920; }
.gfcwm-fair-btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: 0 16px; border: 0; border-radius: 4px; background: var(--gfcwm-primary, #d71920); color: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.gfcwm-fair-btn:hover { filter: brightness(.92); }
.gfcwm-fair-note { margin: 0; color: #646970; font-size: 13px; }
.gfcwm-fair-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.gfcwm-fair-ok, .gfcwm-fair-err, .gfcwm-fair-flash { margin: 0 0 14px; padding: 12px 14px; border-radius: 6px; border: 1px solid #dcdcde; border-left: 4px solid #1a7f37; background: #fff; }
.gfcwm-fair-err, .gfcwm-fair-flash.is-error { border-left-color: #b32d2e; background: #fcf0f1; }
/* Liste der Messe-Kontakte */
.gfcwm-fair-list { width: 100%; }
.gfcwm-fair-sum { margin: 0 0 10px; color: #50575e; font-size: 13px; }
.gfcwm-fair-qrbox { margin: 0 0 14px; padding: 10px 14px; border: 1px solid #dcdcde; border-radius: 6px; background: #fff; }
.gfcwm-fair-qrbox summary { cursor: pointer; font-weight: 600; }
.gfcwm-fair-qr-img svg { display: block; width: 180px; height: 180px; margin: 8px 0; }
.gfcwm-fair-qr-url { margin: 0 0 6px; color: #646970; font-size: 12px; word-break: break-all; }
.gfcwm-fair-qr-dl button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 4px; background: #f0f0f0; font: inherit; font-size: 13px; cursor: pointer; }
.gfcwm-fair-wrap { width: 100%; overflow-x: auto; }
.gfcwm-fair-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.gfcwm-fair-table th { padding: 10px 12px; background: #f5f5f5; border-bottom: 2px solid #ddd; text-align: left; white-space: nowrap; }
.gfcwm-fair-table td { padding: 8px 12px; border-bottom: 1px solid #eee; vertical-align: top; }
.gfcwm-fair-src { display: inline-block; padding: 0 6px; border-radius: 8px; background: #e8f0fb; color: #1e4fa8; font-size: 11px; }
.gfcwm-fair-status { display: inline-block; padding: 2px 8px; border-radius: 10px; background: #f0f0f1; font-size: 12px; white-space: nowrap; }
.gfcwm-fair-status.is-neu { background: #fff6d5; color: #7a5a00; }
.gfcwm-fair-status.is-eingeladen { background: #e8f0fb; color: #1e4fa8; }
.gfcwm-fair-status.is-registriert, .gfcwm-fair-status.is-vermittler { background: #e6f4ea; color: #1a7f37; }
.gfcwm-fair-bad { color: #b32d2e; }
.gfcwm-fair-acts { white-space: nowrap; }
.gfcwm-fair-actform { display: inline-block; margin: 0 4px 4px 0; }
.gfcwm-fair-act { min-height: 34px; padding: 0 10px; border: 1px solid #dcdcde; border-radius: 4px; background: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.gfcwm-fair-act:hover { background: #f0f0f1; }
.gfcwm-fair-act.is-danger { border-color: #d71920; color: #d71920; }
@media (max-width: 760px) {
	.gfcwm-fair-table thead { display: none; }
	.gfcwm-fair-table, .gfcwm-fair-table tbody, .gfcwm-fair-table tr, .gfcwm-fair-table td { display: block; width: 100%; box-sizing: border-box; }
	.gfcwm-fair-table tr { padding: 8px 0; border-bottom: 1px solid #ddd; }
	.gfcwm-fair-table td { padding: 3px 4px; border: 0; }
	.gfcwm-fair-table td[data-label]::before { content: attr(data-label) ": "; color: #646970; font-size: 12px; }
	.gfcwm-fair-acts { white-space: normal; }
}
.gfcwm-fair-qrbox summary { font-size: 15px; }
/* Seit 2.79.1: Visitenkarten-Scan */
.gfcwm-fair-scan .gfcwm-scan-cam { cursor: pointer; }
.gfcwm-fair-scan .gfcwm-scan-cam.is-disabled { opacity: .45; cursor: not-allowed; pointer-events: none; }
.gfcwm-scan-busy { margin: 8px 0; padding: 10px 12px; border-radius: 6px; background: #e8f0fb; color: #1e4fa8; }
.gfcwm-fair-scan .gfcwm-fair-act { width: 100%; }
.gfcwm-fair-row label.gfcwm-fair-btn { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; min-height: 48px; margin: 0; color: #fff; font-size: 16px; font-weight: 600; }
