/* ── raummich Kalender ──────────────────────────────────────── */
.rm-calendar {
  background: var(--white);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.2rem;
  max-width: 420px;
  user-select: none;
}

.rm-cal-nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem;
}
.rm-cal-title { font-weight: 700; font-size: 1.05rem; color: var(--primary); }
.rm-nav-btn {
  background: var(--light); border: none; border-radius: 50%;
  width: 32px; height: 32px; font-size: 1.3rem; cursor: pointer;
  color: var(--primary); display: flex; align-items: center; justify-content: center;
  transition: background var(--trans);
}
.rm-nav-btn:hover { background: var(--mid); }

.rm-cal-grid {
  display: grid; grid-template-columns: repeat(7, 1fr);
  gap: 3px;
}
.rm-cal-head {
  text-align: center; font-size: .78rem; font-weight: 700;
  color: var(--gray); padding: .2rem 0;
}
.rm-cal-day {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  border-radius: 8px; font-size: .88rem; font-weight: 500;
  transition: background var(--trans), color var(--trans);
  position: relative;
}
.rm-empty { background: transparent !important; }

/* States */
.rm-avail   { background: #d4edda; color: #155724; }
.rm-avail:hover { background: #a8d5b5; }
.rm-booked  { background: #f8d7da; color: #721c24; }
.rm-unavail { background: var(--light); color: #b0a090; }
.rm-past    { background: transparent; color: #ccc; }

/* Selection */
.rm-selected  { background: var(--accent) !important; color: var(--dark) !important; }
.rm-sel-start { background: var(--primary) !important; color: var(--white) !important; border-radius: 8px 0 0 8px; }
.rm-sel-end   { background: var(--primary) !important; color: var(--white) !important; border-radius: 0 8px 8px 0; }
.rm-sel-start.rm-sel-end { border-radius: 8px !important; }
.rm-hover     { background: #e8d5bccc !important; color: var(--dark) !important; }

/* Legend */
.rm-cal-legend {
  display: flex; gap: 1rem; flex-wrap: wrap;
  margin-top: .8rem; font-size: .8rem; color: var(--gray);
}
.rm-dot {
  display: inline-block; width: 10px; height: 10px;
  border-radius: 50%; margin-right: 3px; vertical-align: middle;
}
.rm-dot-avail   { background: #27ae60; }
.rm-dot-booked  { background: #c0392b; }
.rm-dot-unavail { background: #ddd; }
.rm-dot-sel     { background: var(--primary); }

/* Wrapper for two-column layout on booking page */
.cal-booking-layout {
  display: flex; gap: 2rem; flex-wrap: wrap; align-items: flex-start;
  margin: 1.5rem 0;
}
.cal-booking-layout .rm-calendar { flex: 0 0 auto; }
.cal-booking-form { flex: 1; min-width: 240px; }
.cal-booking-form h3 { color: var(--primary); margin-bottom: 1rem; }
.selected-range-box {
  background: var(--light); border-radius: var(--radius);
  padding: 1rem 1.2rem; margin-bottom: 1rem;
  border-left: 4px solid var(--primary);
}
.selected-range-box p { margin: 0; font-size: .95rem; }
.selected-range-box strong { color: var(--primary); }
.rm-reserviert { background: #fff3cd; color: #856404; }
