/* Dynamischer Kalender */
.cal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
.cal-title { font-size: 1.1rem; font-weight: 700; color: #0f172a; }
.cal-nav { background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 8px; width: 36px; height: 36px; font-size: 1.3rem; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s; }
.cal-nav:hover { background: #0f172a; color: white; }

.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 8px; }
.cal-weekday { text-align: center; font-size: 0.75rem; font-weight: 600; color: #64748b; text-transform: uppercase; padding: 4px 0; }

.cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-day { text-align: center; padding: 10px 4px; border-radius: 8px; font-size: 0.9rem; border: none; background: transparent; cursor: default; transition: all 0.15s; }
.cal-day.empty { visibility: hidden; }
.cal-day.past { color: #cbd5e1; }
.cal-day.disabled { color: #e2e8f0; }
.cal-day.today { font-weight: 700; color: #0ea5e9; border: 2px solid #0ea5e9; }

button.cal-day { cursor: pointer; background: #f8fafc; border: 1px solid #e2e8f0; }
button.cal-day:hover { background: #e0f2fe; border-color: #0ea5e9; }
button.cal-day.selected { background: #0f172a; color: white; border-color: #0f172a; font-weight: 700; }

/* Time Slots */
.time-slots { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.time-btn { padding: 10px 18px; border: 2px solid #e2e8f0; border-radius: 8px; background: white; cursor: pointer; font-size: 0.95rem; font-weight: 600; transition: all 0.15s; }
.time-btn:hover:not(:disabled) { border-color: #0ea5e9; background: #e0f2fe; }
.time-btn.active { background: #0f172a; color: white; border-color: #0f172a; }
.time-btn.disabled, .time-btn:disabled { background: #f1f5f9; color: #cbd5e1; cursor: not-allowed; text-decoration: line-through; }
