:root{
  --bg: #f6f7fb;
  --bg-alt: #ffffff;
  --card: rgba(255,255,255,1);
  --border: rgba(20, 24, 28, .08);
  --text: rgba(20, 24, 28, .92);
  --muted: rgba(20, 24, 28, .62);
  --shadow: 0 14px 40px rgba(16,24,40,.10);
}

*{ font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

body{ background: var(--bg); color: var(--text); }

.nav-blur{
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.78);
  border-bottom: 1px solid var(--border);
}
.navbar-dark .navbar-nav .nav-link,
.navbar-dark .navbar-brand{ color: rgba(20,24,28,.86) !important; }
.navbar-dark .navbar-nav .nav-link:hover{ color: rgba(20,24,28,1) !important; }
.navbar-dark .navbar-toggler{ border-color: var(--border); }
.navbar-dark .navbar-toggler-icon{
  filter: invert(1);
  opacity: .8;
}

.brand-dot{
  width: 12px; height: 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #7c3aed, #06b6d4);
  display: inline-block;
}

.hero{
  background:
    radial-gradient(1100px 550px at 15% 15%, rgba(124,58,237,.14), transparent 60%),
    radial-gradient(900px 500px at 85% 20%, rgba(6,182,212,.12), transparent 55%),
    linear-gradient(180deg, #ffffff, #f6f7fb);
  color: var(--text);
}

.text-gradient{
  background: linear-gradient(135deg, #7c3aed, #06b6d4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--shadow);
}

.section{ padding: 70px 0; }
.section-alt{ background: var(--bg-alt); color: var(--text); }

.card-soft{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow);
}

.pill{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(124,58,237,.06);
  color: rgba(20,24,28,.82);
  font-size: 12px;
  white-space: nowrap;
}
.pill-primary{
  border-color: rgba(6,182,212,.25);
  background: rgba(6,182,212,.10);
}

.icon-bubble{
  width: 44px; height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center; justify-content: center;
  background: rgba(124,58,237,.08);
  border: 1px solid var(--border);
  color: rgba(20,24,28,.9);
}

.avatar{
  width: 46px; height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center; justify-content: center;
  font-weight: 700;
  background: linear-gradient(135deg, rgba(124,58,237,.18), rgba(6,182,212,.16));
  border: 1px solid var(--border);
}

.gallery-tile{
  background: var(--card);
  border: 1px solid var(--border);
}

/* Modal light */
.modal-soft{
  background: rgba(255,255,255,.96);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 22px;
}

/* Slots */
.slots-wrap{
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
@media (max-width: 420px){
  .slots-wrap{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}

.slot-btn{
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 14px;
  padding: 10px;
  color: rgba(20,24,28,.92);
  text-align: center;
  transition: .15s ease-in-out;
}
.slot-btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 25px rgba(16,24,40,.10);
}
.slot-btn[disabled]{
  opacity: .45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}


/* Footer */
footer{
  background: #fff;
  border-top: 1px solid var(--border);
  color: var(--muted);
}



/* =====================================================
   FULLCALENDAR — MINIMAL CLEAN STYLE
   ===================================================== */

#calendar .fc {
  font-size: 14px;
}

/* Container */
#calendar .fc-scrollgrid {
  border: 1px solid #e8eaed !important;
  border-radius: 16px;
  overflow: hidden;
}

/* Remove heavy borders */
#calendar .fc-scrollgrid td,
#calendar .fc-scrollgrid th {
  border-color: #f1f3f4 !important;
}

/* Header days (Mo, Di...) */
#calendar .fc-col-header-cell {
  background: #fafafa;
}
#calendar .fc-col-header-cell-cushion {
  padding: 10px 0;
  font-weight: 600;
  font-size: 13px;
  color: #6b7280;
  text-decoration: none !important;
}

/* Time labels left */
#calendar .fc-timegrid-axis-cushion,
#calendar .fc-timegrid-slot-label-cushion {
  font-size: 12px;
  color: #9ca3af;
  font-weight: 500;
}

/* Reduce grid visibility */
#calendar .fc-timegrid-slot {
  border-top: 1px solid #f3f4f6 !important;
}
#calendar .fc-timegrid-slot-minor {
  border-top: none !important;
}

/* Today subtle */
#calendar .fc-day-today {
  background: #f9fafb !important;
}

/* Toolbar */
#calendar .fc-toolbar {
  margin-bottom: 12px !important;
}
#calendar .fc-toolbar-title {
  font-size: 16px;
  font-weight: 700;
  color: #111827;
}

/* Buttons ultra clean */
#calendar .fc-button {
  border-radius: 8px !important;
  padding: 6px 12px !important;
  border: 1px solid #e5e7eb !important;
  background: #ffffff !important;
  color: #374151 !important;
  box-shadow: none !important;
}
#calendar .fc-button:hover {
  background: #f9fafb !important;
}
#calendar .fc-button-primary:not(:disabled).fc-button-active {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

/* Free events */
#calendar .fc-event {
  border-radius: 8px !important;
  border: none !important;
  background: #111827 !important;
  color: #ffffff !important;
  padding: 4px 8px !important;
  font-weight: 500;
}

/* Booked background */
#calendar .fc-bg-event {
  background: #640d13 !important;
  opacity: .5 !important;
}

/* Remove underlines */
#calendar .fc a {
  text-decoration: none !important;
}

/* Gebucht als Chip (wie Frei) */
#calendar .fc .fc-event.is-booked,
#calendar .fc .fc-event.is-booked .fc-event-main {
  background: #16a34a !important;
  border: 0 !important;
  color: #fff !important;
}

/* gleiche Form wie Frei */
#calendar .fc-event.is-booked {
  background: #16a34a !important;
  border: none !important;
  color: #ffffff !important;
}

#calendar .fc-event.is-booked .fc-event-main-frame {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Zeit ausblenden, wenn du nur "Gebucht" willst */
#calendar .fc .fc-event.is-booked .fc-event-time {
  display: none !important;
}