@font-face {
  font-family: "Melun Bold";
  src: url("/static/fonts/Melun-Bold.woff2") format("woff2");
  font-weight: bold;
  font-style: normal;
  /* block verhindert FOUT, Text bleibt bis zum Laden unsichtbar */
  font-display: block;
}
@font-face {
  font-family: "DM Sans Medium";
  src: url("/static/fonts/DMSans-Medium.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

        /* Überschriften erhalten die "Melun Bold"-Schrift */
        
        h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            font-family: 'Melun Bold', sans-serif;
        }
        /* Fließtext und übriger Text erhalten die "DM Sans Medium"-Schrift */
        
        body,
        p,
        span,
        a,
        li,
        div {
            font-family: 'DM Sans Medium', sans-serif;
        }
        /* Basis-Styling */
        
        body {
            background: #f6f6f6;
            color: #333;
            margin: 0;
            padding: 0;
        }
        /* Sidebar */
        
        .sidebar-header img {
            display: block;
            margin: 0 auto;
        }
        
        .sidebar-logo-desktop {
            position: relative;
            top: -0px;
            /* Weiter nach oben */
            left: -30px;
            /* Weiter nach links */
        }
        
        .sidebar {
            height: 100vh;
            width: 300px;
            position: fixed;
            top: 0;
            left: 0;
            padding: 1rem;
            border-right: 1px solid #ddd;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            transition: background 0.3s ease;
        }
        
        .sidebar h4 {
            margin-bottom: 1rem;
            font-size: 1.25rem;
            color: #3a7bd5;
        }
        
        .profile-img {
            width: 28px;
            height: 28px;
            object-fit: cover;
            border-radius: 50%;
            border: 1px solid #ccc;
        }
        /* Main Content */
        
       .content{
  margin-left:300px;           /* muss zur .sidebar-Breite passen  */
  transition:margin-left .25s; /* weiches Ein-/Ausfahren           */
  padding: 1rem ; /* Innenabstand für den Inhalt */
  
}
/* schmale Variante, sobald .sidebar-collapsed aktiv ist */
.sidebar.sidebar-collapsed ~ .content{
  margin-left:70px;            /* = Breite der schmalen Sidebar    */
   padding: 0.5rem ; /* Innenabstand für den Inhalt */
}
        /* Responsive: Bei kleinen Geräten wird die Sidebar ausgeblendet */
        
        @media (max-width: 768px) {
            .sidebar {
                display: none;
            }
            .content {
                margin-left: 0;
            }
        }
        /* Kalender-Dropdown als Gitter mit 7 Spalten */
        .alert{
  position:fixed;
  top:1rem;                       /* Abstand vom oberen Rand */
  left:50%;
  transform:translateX(-50%);     /* sauber zentriert */
  width:calc(100% - 2rem);        /* fast volle Fensterbreite … */
  max-width:600px;                /* … aber nie breiter als 600 px */
  border-radius:20px!important;
  z-index:1080;                   /* über allem */
}
        .dropdown-menu.calendar-dropdown {
            grid-template-columns: repeat(7, 1fr);
            gap: 0.25rem;
            padding: 0.5rem;
            min-width: 250px;
        }
        
        .dropdown-menu.calendar-dropdown li {
            list-style: none;
            text-align: center;
        }
        
        .dropdown-menu.calendar-dropdown a {
            padding: 0.5rem;
            display: block;
            border-radius: 10px;
            color: #333;
            text-decoration: none;
        }
        
        .dropdown-menu.calendar-dropdown a:hover {
            background-color: #e6f0ff;
        }
        
        .not-bookable {
            background: repeating-linear-gradient(45deg, #ccc, #ccc 10px, #eee 10px, #eee 20px);
            color: transparent;
            min-height: 2em;
        }
        /* Allgemeine Clean-Card */
        
        .clean-card {
            background-color: #fff;
            border: none;
            border-radius: 20px;
            box-shadow: none;
            color: #000;
            position: relative;
            /* Wichtig für Pseudo-Elemente */
        }
        
        .card {
            margin-bottom: 10px;
            border: none;
            border-radius: 20px;
            transition: transform 0.2s;
        }
        
        .clean-card .card-header {
            background-color: transparent;
            border-bottom: 1px solid #cccccc00;
            border-top-left-radius: 20px;
            border-top-right-radius: 20px;
            padding: 1rem 1.5rem;
        }
        
        .clean-card .card-body {
            background-color: #fff;
            color: #000;
            padding: 1rem;
            border-radius: 20px;
        }
        /* Spezielle Gestaltung für die Buchungstickets */
        /* Spezielle Gestaltung für die Buchungstickets */
        
        .booking-ticket {
            position: relative;
            overflow: hidden;
            border: none;
        }
        /* Überschreibe die Rundungen innerhalb der Buchungstickets:
   Es werden nur die oberen Ecken abgerundet und die unteren auf 0 gesetzt. */
        
        .clean-card .booking-ticket .card-body {
            /* Setze oben die Rundung, und unten keine */
            border-top-left-radius: 20px !important;
            border-top-right-radius: 20px !important;
            border-bottom-left-radius: 0 !important;
            border-bottom-right-radius: 0 !important;
            /* Falls noch weitere Eigenschaften benötigt werden, kannst Du diese hier ergänzen */
            padding: 1rem;
        }
        /* Stub-Bereich am unteren Rand des Tickets */
        
        .ticket-stub {
            background-color: #fff;
            border-top: 1px dashed #ccc;
            padding: 0.5rem;
            text-align: center;
            font-size: 0.9rem;
            position: relative;
            border-radius: 0 0 20px 20px;
        }
        /* Stil für den Link im Stub-Bereich */
        
        .ticket-stub a {
            color: #000;
            text-decoration: none;
            font-weight: bold;
        }
        /* Zusätzlicher runder Akzent in der Mitte der Abreißstelle (Fräsungseffekt) */
        /* Pfeile im Header der Buchungs-Card */
        
        .booking-header-arrows i {
            cursor: pointer;
            font-size: 1.2rem;
            margin-left: 0.5rem;
        }
        
        .badge-low-opacity {
            opacity: 0.6;
        }
        
        .custom-gradient-blue {
            background: linear-gradient(to right, rgb(34, 85, 247), rgb(15, 72, 228));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            /* Für Firefox: */
            background-clip: text;
            color: transparent;
        }
          /* Bestehende Styles bleiben erhalten ... */
        /* Für kleinere Bildschirme: Weniger Abstand an allen Seiten */
        
        @media (max-width: 576px) {
            /* Hauptcontainer anpassen */
            .content {
                padding: 0.5rem;
                /* reduziert sowohl oben, unten als auch an den Seiten */
            }
            /* Falls die Cards eigenen vertikalen Abstand haben */
            .card {
                margin-top: 0.5rem;
                margin-bottom: 0.5rem;
            }
        }  /* Dark Mode Styles, wenn die Klasse 'dark-mode' gesetzt ist */
        
        body.dark-mode {
            background-color: #121212;
            color: #e0e0e0;
        }
        
        body.dark-mode .sidebar {
            background-color: #1e1e1e;
            border-right: 1px solid #333;
        }
        
        body.dark-mode .sidebar .nav-link {
            color: #e0e0e0;
        }
        
        body.dark-mode .sidebar .nav-link:hover {
            background-color: #333;
        }
        
        body.dark-mode .card {
            background-color: #1e1e1e;
            color: #e0e0e0;
        }
        
        body.dark-mode a {
            color: #bb86fc;
        }
        /* Optional: Automatische Dark Mode Aktivierung bei Systemvorgabe */
        
        @media (prefers-color-scheme: dark) {
            body {
                background-color: #121212;
                color: #e0e0e0;
            }
            .sidebar {
                background-color: #1e1e1e;
                border-right: 1px solid #333;
            }
            .nav-link {
                color: #e0e0e0;
            }
            .nav-link:hover {
                background-color: #333;
            }
            .card {
                background-color: #1e1e1e;
                color: #e0e0e0;
            }
            a {
                color: #bb86fc;
            }
        }
        /* Beispiel: Zeige das Element nur, wenn die Bildschirmbreite maximal 576px beträgt */
        
        @media (max-width: 576px) {
            .mobile-only {
                display: block !important;
            }
        }
        
        @media (min-width: 577px) {
            .mobile-only {
                display: none !important;
            }
        }
         
        .mapboxgl-popup-content {
            font-family: 'Melun Bold', sans-serif;
        }
        
        .mapboxgl-ctrl-attrib {
            display: none;
        }
        @media (max-width: 767px) {
  /* Oder 768px, je nach deinem Breakpoint */
  .header-left h1,
  .header-left small {
    display: none !important;
  }
}
/* Grid-Layout:  auto | 1fr | auto  */
/* --- ENDGÜLTIGES Grid-Layout ---------------------------------- */
.nav-mobile{
  display:grid !important;            /* sicherstellen, dass es Grid bleibt   */
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:.5rem;
  padding:.25rem .75rem;              /* etwas Innenabstand links/rechts      */
}

/* Titelzelle darf schrumpfen & umbrechen, damit nichts nach unten rutscht */
.nav-page-title{
  font-family:'Melun Bold',sans-serif;
  font-size:1rem;
  line-height:1.2;
  white-space:normal;
  word-break:break-word;
  min-width:0;                        /* verhindert horizontales Überlaufen   */
}

/* Profil-Container: immer nur auto-Breite – NIE 100 % */
.profile-wrap{
  width:auto !important;              /* überschreibt die alte 100 %-Regel     */
  margin-top:0 !important;            /* kein versehentlicher Abstand mehr    */
  text-align:right;                   /* Icon bleibt rechts                   */
}

/* dunkles Farbschema */
@media (prefers-color-scheme:dark){
  .nav-page-title{color:#fff;}
}

/* Standardabstand für alles > 576 px (Bootstrap-Break­point “sm”) */
.custom-margin {
    margin: 10px !important; /* !important verdrängt das Inline-Style, falls noch vorhanden */
}

/* Auf dem Handy (≤ 576 px) überschreiben wir den Wert */
@media (max-width: 576px) {
    .custom-margin {
        margin: 5px !important;   /* !important verdrängt das Inline-Style, falls noch vorhanden */
    }
}

/* 1) WebKit-Browser (Chrome, Edge, Opera, Safari-DESKTOP, Android) */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none !important;        /* Leiste gar nicht rendern */
}

/* 2) Firefox (Desktop & Android)  */
html, body {
  scrollbar-width: none !important;   /* Balkenbreite = 0 */
}

/* 3) (Alt) EdgeHTML                */
html, body {
  -ms-overflow-style: none !important;
}

/* 4) Optional: Seite selbst nicht scrollen,
      sondern nur eigene Wrapper-Div            */
/*
html, body {              /* Seite einfrieren *
  overflow: hidden !important;
}
.wrapper {                /* Eigentliche Scrollfläche *
  height: 100dvh;
  overflow: auto !important;
  /* nochmal dieselben „hide rules“ für den Container */
}
.wrapper::-webkit-scrollbar { display: none !important; }
.wrapper { scrollbar-width: none !important; }
.modal,
  .modal-content,      /* Bootstrap / Tailwind */
  dialog,              /* Native <dialog> */
  [role="dialog"] {    /* ARIA-Dialoge */
    border-radius: 20px !important;
    /* Optional, damit der Inhalt nicht über den Radius hinausragt */
    overflow: hidden;
  }

  @media (max-width: 575.98px) {      /* Bootstrap-Breakpoint «xs/phone» */
  .card       { margin-top: .3rem !important; }   /* oberer Abstand   */
  .mb-3       { margin-bottom: .3rem !important; }/* unterer Abstand  */
}
.clean-card,
.clean-card .card-body {
  background-color: transparent !important;  /* kein Weiß, keine Farbe */
  border: 0;               /* optional: Rahmen weg */
  box-shadow: none;        /* optional: Schatten weg */
}