/* ==========================================================================
   Donat Booking Widget
   Farben kommen als inline CSS-Variablen vom PHP – aus den Mail-Einstellungen.
   Hohe Spezifität mit #donat-booking-app damit Elementor nichts überschreibt.
   ========================================================================== */

#donat-booking-app {
	/* Fallback-Farben – werden per inline style überschrieben */
	--dnb-accent:    #CCFF00;
	--dnb-accent-fg: #54595F;
	--dnb-border:    #54595F;
	--dnb-radius:    8px;
	--dnb-primary:   #2c5f7c;
	--dnb-bg:        #ffffff;
	--dnb-bg-alt:    #f7f8fa;
	--dnb-text:      #1a1a1a;
	--dnb-muted:     #6b7280;
	--dnb-font:      -apple-system, BlinkMacSystemFont, 'Inter', 'Segoe UI', sans-serif;

	font-family: var(--dnb-font);
	color:       var(--dnb-text);
	max-width:   680px;
	margin:      0 auto;
}

/* ---------- Steps ---------- */
#donat-booking-app .dnb-step {
	background:    var(--dnb-bg);
	border-radius: var(--dnb-radius);
	padding:       24px 16px;
}

#donat-booking-app .dnb-step-title {
	font-size:   1.2rem;
	font-weight: 700;
	color:       var(--dnb-primary);
	margin:      0 0 20px;
}

/* ---------- Loading ---------- */
#donat-booking-app .dnb-loading {
	display:     flex;
	align-items: center;
	gap:         10px;
	color:       var(--dnb-muted);
	font-size:   0.95rem;
	padding:     20px 0;
}

#donat-booking-app .dnb-spinner {
	display:       inline-block;
	width:         20px;
	height:        20px;
	border:        3px solid #e0e6ed;
	border-top:    3px solid var(--dnb-primary);
	border-radius: 50%;
	animation:     dnb-spin 0.8s linear infinite;
	flex-shrink:   0;
}

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

/* ---------- Fehler ---------- */
#donat-booking-app .dnb-error {
	background:    #fff0f0;
	border:        1px solid #fca5a5;
	border-radius: 6px;
	color:         #b91c1c;
	font-size:     0.9rem;
	margin-bottom: 16px;
	padding:       12px 16px;
}

/* ---------- Wochennavigation ---------- */
#donat-booking-app .dnb-week-nav {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	gap:             12px;
	margin-bottom:   20px;
	padding-bottom:  16px;
	border-bottom:   2px solid #e0e6ed;
}

#donat-booking-app .dnb-week-label {
	flex:        1;
	font-size:   0.95rem;
	font-weight: 700;
	color:       var(--dnb-primary);
	text-align:  center;
}

/* Nav-Pfeile – hohe Spezifität gegen Elementor */
#donat-booking-app .dnb-nav-btn,
#donat-booking-app .dnb-nav-btn:visited {
	background:    var(--dnb-accent) !important;
	border:        2px solid var(--dnb-border) !important;
	border-radius: 6px !important;
	color:         var(--dnb-accent-fg) !important;
	cursor:        pointer;
	font-family:   var(--dnb-font);
	font-size:     1.1rem;
	font-weight:   700;
	height:        40px !important;
	line-height:   1;
	min-width:     40px;
	padding:       0 12px !important;
	transition:    opacity 0.15s;
	box-shadow:    none !important;
	text-decoration: none !important;
}

#donat-booking-app .dnb-nav-btn:hover {
	opacity: 0.85 !important;
}

#donat-booking-app .dnb-nav-btn:disabled,
#donat-booking-app .dnb-nav-btn[disabled] {
	background:   #e0e6ed !important;
	border-color: #c0c8d0 !important;
	color:        #9ca3af !important;
	cursor:       not-allowed;
	opacity:      1 !important;
}

/* ---------- Tage ---------- */
#donat-booking-app .dnb-day-block {
	margin-bottom: 20px;
}

#donat-booking-app .dnb-day-label {
	font-size:      0.78rem;
	font-weight:    700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color:          var(--dnb-muted);
	margin-bottom:  8px;
}

/* ---------- Slot-Grid ---------- */
#donat-booking-app .dnb-slots-grid {
	display:               grid;
	grid-template-columns: repeat(auto-fill, minmax(86px, 1fr));
	gap:                   8px;
}

/* Slot-Buttons – !important gegen Elementor */
#donat-booking-app .dnb-slot-btn,
#donat-booking-app .dnb-slot-btn:visited {
	background:    var(--dnb-bg-alt, #f7f8fa) !important;
	border:        2px solid #d1d5db !important;
	border-radius: 8px !important;
	color:         var(--dnb-primary) !important;
	cursor:        pointer;
	display:       block;
	font-family:   var(--dnb-font);
	font-size:     0.9rem !important;
	font-weight:   600;
	height:        auto !important;
	line-height:   1.2 !important;
	min-height:    44px;
	padding:       10px 4px !important;
	text-align:    center;
	transition:    border-color 0.15s, background 0.15s, color 0.15s;
	width:         100%;
	box-shadow:    none !important;
}

#donat-booking-app .dnb-slot-btn:hover,
#donat-booking-app .dnb-slot-btn.selected {
	background:   var(--dnb-accent) !important;
	border-color: var(--dnb-border) !important;
	color:        var(--dnb-accent-fg) !important;
}

/* ---------- Zurück ---------- */
#donat-booking-app .dnb-back-btn {
	background:    transparent !important;
	border:        none !important;
	box-shadow:    none !important;
	color:         var(--dnb-muted) !important;
	cursor:        pointer;
	display:       block;
	font-family:   var(--dnb-font);
	font-size:     0.9rem !important;
	font-weight:   400 !important;
	height:        auto !important;
	margin-bottom: 16px;
	padding:       0 !important;
	text-decoration: none !important;
}

#donat-booking-app .dnb-back-btn:hover {
	color: var(--dnb-primary) !important;
}

/* ---------- Ausgewählter Slot ---------- */
#donat-booking-app .dnb-selected-info {
	background:    #f0f7fa;
	border-left:   4px solid var(--dnb-primary);
	border-radius: 0 6px 6px 0;
	color:         var(--dnb-primary);
	font-size:     0.95rem;
	font-weight:   600;
	margin-bottom: 24px;
	padding:       12px 16px;
}

/* ---------- Formular ---------- */
#donat-booking-app .dnb-field {
	margin-bottom: 16px;
}

#donat-booking-app .dnb-field label {
	display:       block;
	font-size:     0.85rem;
	font-weight:   600;
	margin-bottom: 6px;
	color:         var(--dnb-text);
}

#donat-booking-app .dnb-field input,
#donat-booking-app .dnb-field textarea {
	background:  #f7f8fa !important;
	border:      2px solid #d1d5db !important;
	border-radius: 8px !important;
	box-sizing:  border-box;
	color:       var(--dnb-text) !important;
	font-family: var(--dnb-font) !important;
	font-size:   16px !important;
	height:      auto !important;
	min-height:  44px;
	padding:     10px 14px !important;
	transition:  border-color 0.15s;
	width:       100% !important;
	box-shadow:  none !important;
}

#donat-booking-app .dnb-field input:focus,
#donat-booking-app .dnb-field textarea:focus {
	border-color: var(--dnb-primary) !important;
	outline:      none !important;
}

#donat-booking-app .dnb-field textarea {
	min-height: 80px;
	resize:     vertical;
}

/* ---------- Submit-Button – komplett gegen Elementor abgesichert ---------- */
#donat-booking-app .dnb-submit-btn,
#donat-booking-app .dnb-submit-btn:visited,
#donat-booking-app button.dnb-submit-btn {
	background:      var(--dnb-accent) !important;
	border:          2px solid var(--dnb-border) !important;
	border-radius:   var(--dnb-radius) !important;
	box-shadow:      none !important;
	box-sizing:      border-box;
	color:           var(--dnb-accent-fg) !important;
	cursor:          pointer;
	display:         block !important;
	font-family:     var(--dnb-font) !important;
	font-size:       1rem !important;
	font-weight:     700 !important;
	height:          auto !important;
	line-height:     1.2 !important;
	margin-top:      8px;
	min-height:      48px;
	padding:         13px 28px !important;
	text-align:      center !important;
	text-decoration: none !important;
	text-transform:  none !important;
	transition:      opacity 0.15s;
	width:           100%;
}

#donat-booking-app .dnb-submit-btn:hover:not(:disabled) {
	opacity: 0.85 !important;
}

#donat-booking-app .dnb-submit-btn:disabled,
#donat-booking-app .dnb-submit-btn[disabled] {
	cursor:  not-allowed;
	opacity: 0.55 !important;
}

/* ---------- Datenschutz ---------- */
#donat-booking-app .dnb-privacy-note {
	color:      var(--dnb-muted);
	font-size:  0.78rem;
	margin:     10px 0 0;
	text-align: center;
}

/* ---------- Erfolg ---------- */
#donat-booking-app .dnb-success {
	padding:    20px 0;
	text-align: center;
}

#donat-booking-app .dnb-success-icon {
	font-size:     3rem;
	margin-bottom: 12px;
}

#donat-booking-app .dnb-success h3 {
	color:         var(--dnb-primary);
	font-size:     1.4rem;
	margin:        0 0 12px;
}

#donat-booking-app .dnb-success p {
	color:     var(--dnb-muted);
	font-size: 0.95rem;
	margin:    0;
}

/* ---------- Desktop ---------- */
@media (min-width: 768px) {
	#donat-booking-app .dnb-step {
		padding: 32px;
	}

	#donat-booking-app .dnb-slots-grid {
		grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
	}

	#donat-booking-app .dnb-submit-btn {
		width: auto;
	}
}
