﻿@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;800&display=swap');

:root {
    --radius: 3px;
    --font-dark: darkslategrey;
    --bg-color: #f8f9fa;
}

* {
    box-sizing: border-box;
}

html {
    box-sizing: border-box;
    font-size: 120%;
    background: transparent; /* <-- ändern */
}

*, ::before, ::after {
    box-sizing: inherit;
}

body {
    background-attachment: fixed;
    font-family: "Open sans-serif", Arial, sans-serif;
    line-height: 1.3rem;
    color: #263238;
    margin: 0rem;
    padding: 0;
    background-color: var(--bg-color);
}


@keyframes waterMove {
    from {
        background-position: 50% 40%;
    }

    to {
        background-position: 50% 60%;
    }
}

input[type=text], input[type=password], select {
    padding: 0.4rem;
    display: inline-block;
    border: 1.5px solid #ccc;
    border-radius: var(--radius);
    box-sizing: border-box;
}

::file-selector-button {
    background-color: grey;
    color: white;
    border: 1px solid #666666;
    cursor: pointer;
    padding: 0.1rem 1rem 0.1rem 1rem;
    font-size: 1rem;
    border-radius: var(--radius);
}

    ::file-selector-button:hover {
        background-color: #888888;
        color: #eeeeee;
        border: 1px solid #666666;
        cursor: pointer;
        padding: 0.1rem 1rem 0.1rem 1rem;
        font-size: 1rem;
        border-radius: var(--radius);
    }

input[type=submit] {
    color: white;
    border: 1px solid #666666;
    cursor: pointer;
    padding: 0.4rem 1rem 0.4rem 1rem;
    font-size: 1rem;
    border-radius: var(--radius);
}

    input[type=submit]:hover {
        color: #dddddd;
        border: 1px solid #666666;
        cursor: pointer;
        font-size: 1rem;
        padding: 0.4rem 1rem 0.4rem 1rem;
    }

    input[type=submit]:disabled {
        background-color: #ab5d88;
        color: #dddddd;
        border: 1px solid #666666;
        cursor: default;
        font-size: 1rem;
        padding: 0.4rem 1rem 0.4rem 1rem;
    }

input[type=checkbox] {
    height: 1rem;
    width: 1rem;
}

img, .image {
    max-width: 100%;
    width: 100%;
    height: auto;
}
/* =========================
   GLOBALER HINTERGRUND
   ========================= */


@media (max-width: 768px) {
    body {
        background-attachment: scroll;
    }
}


.ButtonDisabled {
    background-color: #ab5d88 !important;
}

.ButtonEnabled {
    background-color: #980053 !important;
}
/* ===== HEADER (RESPONSIVE, 1 Linie) ===== */
/* =========================
   HEADER: Logos außen + Mitte zentriert + Welle "reinpoppt"
   ========================= */

/* Header-Hintergrund */
/* =========================
   HEADER
   ========================= */

/* =========================
   HEADER – fluid responsive (Desktop bis Handy)
   ========================= */
/* =========================
   HEADER – fluid responsive
   + Welle liegt auf dem Balken
   + Handy: nur Überschrift
   ========================= */
/* =========================
   HEADER BASIS
   ========================= */

/* =========================
   HEADER (Desktop/Normal)
   ========================= */

/* =========================
   HEADER: fix links + fix rechts, nie überlappen
   ========================= */

.headerBG {
    width: 100%;
    background: linear-gradient( 180deg, rgba(230,245,250,0.95) 0%, rgba(240,250,255,0.85) 100% );
    padding: 10px 0;
}

/* Wichtig: KEIN max-width, damit wirklich Rand = Rand */
.header-inner {
    width: 100%;
    display: grid;
    grid-template-columns: auto 1fr auto; /* links | frei | rechts */
    align-items: center;
}

/* Links und rechts wirklich am Rand */
.header-left {
    justify-self: start;
}

.header-right {
    justify-self: end;
}

/* FIXE Größen, nie verzerren */
.header-logo {
    height: 120px;
    width: auto;
    display: block;
    object-fit: contain;
}

.header-wave {
    height: 120px;
    width: auto;
    display: block;
    object-fit: contain;
    margin-bottom: -30px;
}

/* =========================
   Breakpoint: sobald es zu eng wird -> nur Logo
   (damit nie kleiner und nie Überlappung)
   ========================= */
@media (max-width: 940px) {

    .header-right {
        display: none;
    }

    .header-inner {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .header-left {
        justify-self: center;
    }

    /* NEU: verhindert Abschneiden */
    .header-logo {
        width: min(92vw, 520px); /* passt sich dem Handy an */
        height: auto; /* keine Verzerrung */
    }
}
/* =========================
   Page Wrapper + Glassbox
   ========================= */

.page-wrap {
    max-width: 1100px;
    margin: 40px auto;
    padding: 0 16px; /* Randabstand am Handy */
}

.glass-box {
    background: linear-gradient( 180deg, rgba(255,255,255,0.28) 0%, rgba(255,255,255,0.18) 100% );
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 20px;
    padding: 36px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.5);
    transition: all 0.3s ease;
}

    .glass-box:hover {
        box-shadow: 0 30px 80px rgba(0,0,0,0.22), inset 0 1px 0 rgba(255,255,255,0.6);
    }
/* Buttonfarbe */
.btn-pool {
    background: linear-gradient(180deg, #4FC3F7 0%, #1E88C9 100%);
    border: none;
    color: white;
}

    .btn-pool:hover {
        filter: brightness(0.95);
    }

/*Weiter-Button im Assistenten*/
/* Wizard Buttons - Desktop */
.wizard-primary {
    min-width: 208px;
    width: auto; /* Button nimmt nur so viel Platz wie nötig */
}

.wizard-secondary {
    min-width: 208px;
    width: auto;
}

.wizard-actions {
    align-items: stretch;
}
/*Menü*/
.navigation {
    display: block;
    /*background-color: var(--bg-orange);*/
    margin: 0 auto;
    width: 1000px;
}

.show {
    background-color: var(--bg-orange);
    display: block;
}

nav ul {
    margin: 0px;
    padding: 0px;
    display: flex;
    list-style: none;
    flex-wrap: nowrap;
}


    nav ul li {
        white-space: nowrap;
        position: relative;
        padding-right: 1rem;
        font-size: 1rem;
    }

        .aktuell, nav ul li:hover {
            /*background-color: #bd9405;*/
            cursor: pointer;
        }




nav a {
    color: dimgray;
    text-decoration: none;
    display: block;
    padding: 0.7rem 0.6rem;
    width: 100%;
    font-size: 1rem;
}

    nav a.aktuell {
        font-weight: bold;
        font-style: italic;
    }

    nav a:hover {
        color: dimgray;
        text-decoration: underline;
    }
/*Menü*/




#Menübalken {
    min-width: 1000px;
    display: flex; /* Flexbox aktivieren */
    align-items: center; /* Vertikal zentrieren */
    width: 100%;
    background-color: #1E88C9;
    height: 2.5rem;
    /* margin-bottom: 1rem; */
    margin-top: -0.3rem;
}

.content {
    margin: 0 auto;
    width: 1000px;
    font-size: 90%;
    padding-top: 5px;
    color: white;
    position: relative;
    padding-top: 5px;
}

#Menübalken .content {
    padding-left: 12px;
    padding-right: 12px;
}

.Willkommen {
    float: left;
    font-size: 100%;
    margin-left: 0;
}

.Gemeinde {
    float: right;
    margin-right: 0px;
    font-size: 100%;
}

.KalenderTickets {
    font-weight: bold;
    margin-left: -5px;
    margin-bottom: 1rem;
    white-space: nowrap;
    font-size: 120%;
    float: left;
}

.KalenderEinTicket {
    font-weight: bold;
    margin-bottom: 1rem;
    white-space: nowrap;
    font-size: 120%;
    float: left;
}

.KalenderAnsicht {
    float: right;
    font-size: 70%;
    margin-right: 12px;
    margin-top: 0.2rem;
}

/*Legende*/

.KalenderLegende {
    display: inline-flex;
    font-size: 75%;
    color: black;
    padding: 5px;
    border: 1px groove lightgray;
    justify-content: space-between;
    flex-wrap: nowrap;
    margin-right: 0.95rem;
    height: 40px;
}


.water-bg {
    background-image: url('/Images/pool-bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    animation: waterMove 300s infinite alternate;
    padding: 1em;
}

#Main {
    padding: 0px;
    margin: 0 auto;
    width: 1000px;
    background-color: transparent;
    min-height: 200px;
    clear: both;
}



#OuterContainer {
    float: left;
    background-color: #eff395;
    width: 700px;
}

#InnerContainer {
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 30px;
    padding-top: 20px;
}

.divHome {
    float: left;
    font-size: 70%;
    position: absolute;
    top: -17px;
    left: 0px;
    height: 12px;
}

#divAbmelden {
    float: right;
    font-size: 70%;
    position: absolute;
    top: -17px;
    right: 10px;
}



.footer-clean {
    width: 100%;
    margin: 0;
    padding: 10px 0; /* nur etwas Luft für die Links */
    background: none; /* KEIN Hintergrund */
    border-top: 1px solid rgba(0,0,0,0.08);
}

.footer-line {
    display: flex;
    justify-content: center; /* zentriert */
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin: 0;
    padding: 0;
}

.footer-link {
    color: #111;
    text-decoration: underline;
    font-size: 14px;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
}

    .footer-link:hover {
        color: #0b5ed7;
    }

.footer-sep {
    color: #555;
}

.footer-sponsors {
    margin-bottom: 22px;
}

.footer-sponsors-inner {
    display: flex;
    justify-content: center;
    align-items: center; /* oder flex-start */
    gap: 36px;
    flex-wrap: wrap;
}

.footer-sponsor-item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer-sponsor-logo {
    display: block;
    height: auto;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.footer-sponsor-logo-wide {
    max-height: 62px;
}

.footer-sponsor-logo-leader {
    max-height: 72px;
}




.Impressum {
    text-decoration: underline;
    color: black;
    margin-right: 8px;
    margin-left: 8px;
}

    .Impressum:hover {
        text-decoration: underline;
        color: #555555;
        margin-right: 8px;
        margin-left: 8px;
    }

.Anmeldung {
    text-decoration: underline;
    color: black;
    margin-right: 8px;
    margin-left: 8px;
    font-size: 130%;
}

    .Anmeldung:hover {
        text-decoration: underline;
        color: #555555;
        margin-right: 8px;
        margin-left: 8px;
        font-size: 130%;
    }


.modalBackground {
    background-color: rgb(25,25,25);
    opacity: 0.7;
    z-index: 70 !important;
}

.panelPopup {
    color: #800000;
    border: 7px solid #3a9c00;
    background-color: #d3d3d3;
    width: 800px;
    padding: 0.5rem;
    text-align: center;
    display: normal;
    z-index: 100 !important;
}

.panelPopupError {
    color: #800000;
    border: 7px solid #980053;
    background-color: #d3d3d3;
    width: 680px;
    padding: 0.5rem;
    text-align: center;
    display: normal;
    z-index: 100 !important;
}

.panelPopupCancel {
    float: right;
    margin-top: 0px;
}

.panelPopupCancelLink {
    text-decoration: none;
    Color: #555555;
    Font-Size: 180%;
    Font-family: arial;
    vertical-align: super;
}

.panelPopupStatus {
    font-size: 90%;
    font-weight: bold;
    color: black;
}

.panelPopupButton {
    margin: 0 auto;
}

.panelPopupImage {
    color: #800000;
    border: 5px solid #265a97;
    background-color: #d3d3d3;
    padding: 5px;
    width: 800px;
    height: 500px;
    position: relative;
}



.BildZentrieren {
    margin: 0 auto;
    display: block;
}


.Überschrift {
    font-size: 110%;
    font-weight: bold;
    margin-bottom: 20px;
}

.fs-7 {
    font-size: 80%;
}

.Link {
    text-decoration: underline;
    color: #265a97;
    margin-right: 10px;
    font-size: 90%;
    font-weight: normal;
}

    .Link:hover {
        text-decoration: underline;
        color: #48012a;
        margin-right: 10px;
        font-size: 90%;
        font-weight: normal;
    }

/***Sektion Login-Beginn*************




    */
/* Wrapper */
.page-wrap {
    width: 100%;
    max-width: 1100px;
    margin: 40px auto;
    padding: 0 16px;
    box-sizing: border-box;
}

/* Glassbox */
.glass-box {
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.18));
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255,255,255,.4);
    border-radius: 10px;
    padding: 32px;
    box-shadow: 0 20px 60px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.5);
}

/* Login schmal */
.glass-box--narrow {
    max-width: 520px;
    margin: 0 auto;
}

/* Inputs im Glas-Look */
.glass-box .form-control {
    background: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.55);
    border-radius: 5px;
}

    .glass-box .form-control:focus {
        background: rgba(255,255,255,0.70);
        border-color: rgba(30,136,201,0.55);
        box-shadow: 0 0 0 4px rgba(30,136,201,0.20);
    }

/* Mobile */
@media (max-width: 600px) {
    .page-wrap {
        margin: 18px auto;
        padding: 0 12px;
    }

    .glass-box {
        padding: 18px;
        border-radius: 16px;
    }
}

.ErrorBox {
    font-size: 80%;
    font-weight: bold;
    color: #980053;
    background-color: #d3d3d3;
    padding-left: 0px;
    padding-right: 0px;
    padding-bottom: 15px;
    padding-top: 15px;
    border-style: solid;
    border-color: #980053;
    border-width: 2px;
    text-align: left;
    vertical-align: middle;
    margin-bottom: 1rem;
    line-height: 1.5;
    width: 100%;
}

.MessageContainer {
    padding-left: 10px;
    padding-right: 10px;
}

.MessageBox {
    font-size: 80%;
    font-weight: bold;
    color: black;
    background-color: #d3d3d3;
    padding-left: 0px;
    padding-right: 0px;
    padding-bottom: 15px;
    padding-top: 15px;
    border-style: solid;
    border-color: green;
    border-width: 3px;
    text-align: left;
    vertical-align: middle;
    line-height: 1.5;
    width: 100%;
    margin-bottom: 1rem;
}

/***Sektion Login-Ende**************/



/***Sektion Registrierung-Ende**************/

/***Sektion Impressum-Beginn**************/

.ImpressumPopUp {
    display: normal;
    text-align: left;
    width: 700px;
    color: black;
    border: 7px solid #1E88C9;
    background-color: #d7d8f3;
    padding: 1rem;
}

#divImpressumInhalt {
    float: left;
    width: 400px;
    font-size: 90%;
    margin-right: 1.5rem;
}

#divWebdesign {
    font-size: 70%;
    border-top: 1px solid darkgray;
    margin-top: 10px;
    margin-bottom: 0px;
    padding-top: 10px;
}


/***Sektion Impressum-Ende**************/

.Monate_Pfeile_Legende {
    display: flex;
    clear: both;
    align-items: flex-end;
}


#divMonate {
    float: left;
    clear: both;
}

.TabelleMonate {
    width: auto;
}


.TableCell {
    padding: 0px;
}


.warteliste-row td {
    color: #6c757d !important;
    background-color: #f8f9fa !important; /* sehr helles Grau */
    background: repeating-linear-gradient( 45deg, #f8f9fa, #f8f9fa 10px, #ffffff 10px, #ffffff 20px);
}

.table td.mail-col {
    white-space: normal; /* erlaubt Zeilenumbruch */
    overflow-wrap: break-word; /* bricht bei Bedarf an sinnvollen Stellen */
    word-wrap: break-word; /* Fallback für ältere Browser */
    max-width: 250px; /* etwas breiter als Mail */
}


.table td.adresse-col {
    white-space: normal;
    overflow-wrap: break-word;
    word-wrap: break-word;
    max-width: 200px; /* etwas breiter als Mail */
}


.MonatAktiv {
    font-size: 120%;
    font-weight: bold;
    height: 40px;
    width: 140px;
    padding-top: 4px;
    background-color: #444444;
    display: flex;
    justify-content: center; /* horizontal */
    align-items: center; /* vertikal */
    border-top: 1px solid gray;
    border-left: 1px solid gray;
    border-right: 1px solid gray;
}

.MonatInAktiv {
    font-size: 120%;
    font-weight: bold;
    height: 40px;
    width: 140px;
    padding-top: 4px;
    background-color: #979595;
    display: flex;
    justify-content: center; /* horizontal */
    align-items: center; /* vertikal */
    border-top: 1px solid gray;
    border-left: 1px solid gray;
    border-right: 1px solid gray;
}


.LinkMonat {
    text-decoration: none;
    color: white;
}

.LinkMonatAktiv {
    text-decoration: underline;
    color: white;
}

.LinkMonat:hover {
    text-decoration: underline;
    color: white;
}

.Feiertag {
    width: 140px;
    background-color: #d3d3d3;
}

.reserviert {
    width: 140px;
    background-color: #4A90C9;
}

.frei {
    width: 140px;
    background-color: #3a9c00;
}

.selberReserviert {
    width: 140px;
    background-color: #E7F2FA;
}

.Warteliste {
    width: 140px;
    background-color: #8fd7f5;
}


.radioTickets {
    margin-right: 30px;
}


/***Sektion Home**************/

.Home_Header {
    font-weight: bold;
    font-size: 120%;
    margin-bottom: 15px;
    float: left;
}

.Home_Button {
    font-weight: bold;
    font-size: 100%;
    margin-bottom: 15px;
    float: right;
}

.Home_Text {
    font-size: 90%;
    margin-bottom: 5px;
    float: left;
    clear: both;
}

.Home_Link {
    font-size: 90%;
    margin-bottom: 5px;
    float: left;
    margin-left: 0px;
    margin-top: -1px;
}

.Home_TextKlein {
    font-size: 60%;
    margin-top: 35px;
    clear: both;
}

.AccordionHeader {
    font-size: 0.9rem;
    font-weight: 600;
    color: #212529;
    background-color: #f8f9fa;
    padding: 0.75rem 1rem;
    border: 1px solid #198754; /* Bootstrap grün */
    border-radius: 0.375rem; /* runde Ecken */
    text-align: left;
    line-height: 1.5;
    width: 100%;
    margin: 0.5rem 0;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

    .AccordionHeader:hover {
        background-color: #e9ecef; /* etwas dunkler bei hover */
    }

.AccordionHeaderSelected {
    font-size: 0.9rem;
    font-weight: 600;
    color: #fff;
    background-color: #980053; /* dein kräftiges Rot/Lila */
    padding: 0.75rem 1rem;
    border: 1px solid #198754;
    border-radius: 0.375rem;
    text-align: left;
    line-height: 1.5;
    width: 100%;
    margin: 0.5rem 0;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

    .AccordionHeaderSelected:hover {
        background-color: #7a0042; /* etwas dunkler beim Hover */
    }


/***Sektion Home-Ende**************/

.pointer {
    cursor: pointer;
    font-family: Arial, Verdana;
}

.EingabeBezeichnung {
    font-size: 70%;
}

.EingabeTextBox {
    margin-bottom: 8px;
}

.EingabeTextFormat {
    font-size: 100%;
    width: 250px;
}


/* Tooltip container */
.tooltipKalender {
    position: relative;
    display: inline-block;
    width: 100%;
    /* If you want dots under the hoverable text */
}

    /* Tooltip text */
    .tooltipKalender .tooltiptext {
        visibility: hidden;
        width: 8rem;
        background-color: #555;
        color: #fff;
        text-align: center;
        font-size: 70%;
        padding: 5px 0;
        border-radius: 6px;
        /* Position the tooltip text */
        position: absolute;
        z-index: 1;
        bottom: 120%;
        left: 50%;
        margin-left: -4rem;
        /* Fade in tooltip */
        opacity: 0;
        transition: opacity 0.3s;
    }

        /* Tooltip arrow */
        .tooltipKalender .tooltiptext::after {
            content: "";
            position: absolute;
            top: 100%;
            left: 50%;
            margin-left: -5px;
            border-width: 5px;
            border-style: solid;
            border-color: #555 transparent transparent transparent;
        }

    /* Show the tooltip text when you mouse over the tooltip container */
    .tooltipKalender:hover .tooltiptext {
        visibility: visible;
        opacity: 1;
    }

.form-control.required {
    background-color: #ffffff; /* sanftes Gelb für Pflichtfelder */
}

.form-label.required::after {
    content: " *";
    color: #dc3545; /* Bootstrap Danger Rot */
}

.form-label {
    margin-bottom: 0.25rem; /* statt 0.5rem */
}

/*CMS*/

#OuterContainerCMS {
    width: 980px;
}

.CMS_Bezeichnung {
    font-size: 70%;
    line-height: 1.0;
}

.CMS_TextBoxDiv {
    margin-bottom: 0.5rem;
}

.CMS_Required {
    color: #980053;
}

.CMS_TextBoxOptional {
    padding-left: 5px;
    width: 95%;
    min-width: 95%;
    max-width: 95%;
    max-height: 4rem;
    font-size: 100%;
}

.CMS_TextBoxRequired {
    border-left: 3px solid #d70a45 !important;
    padding-left: 5px;
    width: 95%;
    font-size: 100%;
}

.CMS_DropRequired {
    border-left: 3px solid #d70a45;
    padding-left: 5px;
    width: 310px;
}



/* Ajax CalendarExtender */
.ajax__calendar_container {
    font-size: 1.2rem; /* Größere Schrift für Header und Tage */
    padding: 0.5rem;
    border-radius: 0.375rem;
    border: 1px solid #ced4da;
    box-shadow: 0 0.25rem 0.5rem rgba(0,0,0,0.15);
    background-color: #fff;
    width: 360px !important; /* Gesamte Kalenderbreite */
    height: 360px !important; /* Gesamte Kalenderhöhe */
}

.ajax__calendar_body {
    font-size: 1.2rem; /* Größere Schrift für Header und Tage */
    padding: 0.5rem;
    background-color: #fff;
    width: 330px !important; /* Gesamte Kalenderbreite */
    height: 285px !important; /* Gesamte Kalenderhöhe */
}

/* Header (Monat0+ Navigation) */
.ajax__calendar_header {
    background-color: #1E88C9;
    color: white;
    text-align: center;
    font-weight: 500;
    padding: 0.5rem 0;
    font-size: 1.2rem;
    height: 2.2rem !important;
}

/* Tage der Woche */
.ajax__calendar_dayname {
    font-weight: 600;
    color: #495057;
    width: 2.2rem !important; /* Breite jeder Spalte */
    height: 2.2rem !important; /* Höhe der Kopfzeile */
    text-align: center;
    font-size: 1rem !important;
}

/* Tage */
.ajax__calendar_day,
.ajax__calendar_othermonth {
    width: 2.2rem !important; /* Breite der Tageszellen */
    height: 2.2rem !important; /* Höhe der Tageszellen */
    line-height: 2.2rem; /* Vertikale Zentrierung */
    text-align: center;
    font-size: 1.1rem; /* Schriftgröße der Zahlen */
    padding: 0;
}

    /* Hover Effekt */
    .ajax__calendar_day:hover {
        background-color: #8b8d8f;
        cursor: pointer;
        border-radius: 0.25rem;
    }

/* Aktuelles Datum hervorheben */
.ajax__calendar_selected {
    background-color: #007bff;
    color: white;
    border-radius: 0.25rem;
}

/* ===== Calendar Cards (minimal invasiv) ===== */
/* =========================================================
   MODERN KALENDER CSS (Gesamtdatei)
   - Glassmorphism + Cards
   - Runde Kästchen + Status-Pills
   - Smooth Hover + Mobile Layout
   ========================================================= */
/* ======================================
   MONATSBLOCK MIT BLAUEM KOPF – FINAL
   ====================================== */

#Monate_Pfeile_Legende {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 0 12px;
    box-sizing: border-box;
    margin-bottom: 14px;
}

    #Monate_Pfeile_Legende .monate-inner {
        width: 100%;
        max-width: 1000px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "kopf kopf"
            "monate legende";
        gap: 0;
        background: #f4f7f9;
        border: 1px solid rgba(0, 0, 0, 0.06);
        border-radius: var(--radius);
        overflow: hidden;
        box-sizing: border-box;
    }

/* ======================================
   BLAUER KOPF
   ====================================== */

.kalender-kopf {
    grid-area: kopf;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding: 18px 22px;
    background: #3d89c6;
}

.kalender-titel {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.1;
    font-weight: 700;
    color: #ffffff;
}

.kalender-brunnen-panel,
.kalender-eintrag-panel {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.kalender-brunnen-select {
    min-height: 44px;
    max-width: 420px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 6px;
    border: 1px solid #3377ae;
    box-shadow: none;
}

.kalender-ansicht-link,
.kalender-ansicht-link:link,
.kalender-ansicht-link:visited {
    color: #ffffff !important;
    text-decoration: underline;
    font-size: 0.95rem;
    font-weight: 500;
    white-space: nowrap;
}

    .kalender-ansicht-link:hover {
        color: #eaf3ff !important;
    }

/* ======================================
   TOOLBAR-ZEILE UNTEN
   ====================================== */

#divMonate.monate-bereich {
    grid-area: monate;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 22px;
    min-height: 78px;
    box-sizing: border-box;
    flex-wrap: nowrap;
}

#divMonate .TabelleMonate {
    width: auto;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    flex: 0 0 auto;
}

#divMonate .TableCell {
    padding: 0 8px 0 0;
}

#divMonate [id$="pnlContainer"],
#divMonate .MonatInhalt,
#divMonate [id$="pnlMonat"] {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    width: 132px;
    min-width: 132px;
}

/* ======================================
   MONATSBUTTONS
   ====================================== */

#divMonate .LinkMonat,
#divMonate .LinkMonat:link,
#divMonate .LinkMonat:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 128px;
    height: 46px;
    padding: 0 18px;
    border-radius: 6px;
    border: 1px solid #cfd6dc;
    background: #f2f4f6;
    color: #2b3640 !important;
    text-decoration: none !important;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

    #divMonate .LinkMonat span,
    #divMonate .LinkMonat label {
        color: inherit !important;
        font: inherit;
        margin: 0;
        text-decoration: none !important;
    }

    #divMonate .LinkMonat:hover {
        background: #ffffff;
        border-color: #bfc7cf;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
        transform: translateY(-1px);
    }

/* Aktiver Monat */
#divMonate .MonatAktiv {
    background: #3d89c6 !important;
    border: 1px solid #3377ae !important;
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 2px 8px rgba(61, 137, 198, 0.22);
}

    #divMonate .MonatAktiv .LinkMonat,
    #divMonate .MonatAktiv .LinkMonat:link,
    #divMonate .MonatAktiv .LinkMonat:visited,
    #divMonate .MonatAktiv a {
        background: transparent !important;
        border: 0 !important;
        color: #ffffff !important;
        font-weight: 600 !important;
        font-size: 0.95rem !important;
        box-shadow: none !important;
    }

    #divMonate .MonatAktiv * {
        color: #ffffff !important;
        text-decoration: none !important;
    }

#divMonate .LinkMonat:focus,
#divMonate .LinkMonat:focus-visible {
    outline: 3px solid rgba(61, 137, 198, 0.25);
    outline-offset: 2px;
}

/* ======================================
   PFEILE
   ====================================== */

.monats-pfeile {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: 2px;
    flex: 0 0 auto;
}

.monat-pfeil,
.monat-pfeil:link,
.monat-pfeil:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 6px;
    border: 1px solid #cfd6dc;
    background: #ffffff;
    color: #2d3942 !important;
    text-decoration: none !important;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1;
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

    .monat-pfeil:hover {
        background: #f8fafb;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
        transform: translateY(-1px);
    }

/* ======================================
   LEGENDE – RECHTSBÜNDIG
   ====================================== */

#legende.KalenderLegende {
    grid-area: legende;
    display: grid;
    grid-template-columns: repeat(3, max-content);
    align-items: center;
    justify-content: end;
    column-gap: 18px;
    row-gap: 8px;
    padding: 18px 22px;
    min-height: 78px;
    box-sizing: border-box;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.legenden-eintrag {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    height: 46px;
    box-sizing: border-box;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1;
    color: #25313a;
    white-space: nowrap;
}

.legenden-farbe {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex: 0 0 14px;
}

.legenden-text {
    margin: 0;
}

/* exakt gleiche Farben wie Kalender */
.legenden-farbe-frei {
    background: #5BAE3C;
}

.legenden-farbe-ausgebucht {
    background: #D64545;
}

.legenden-farbe-reserviert {
    background: #4A90C9;
}

.legenden-farbe-nichtmoeglich {
    background: #aaaaaa;
}

.legenden-farbe-warteliste {
    background: #8fd7f5;
}

/* ======================================
   RESPONSIVE
   ====================================== */

@media (max-width: 1000px) {
    #Monate_Pfeile_Legende .monate-inner {
        grid-template-columns: 1fr;
        grid-template-areas:
            "kopf"
            "monate"
            "legende";
    }

    #divMonate.monate-bereich,
    #legende.KalenderLegende {
        min-height: auto;
    }

    #legende.KalenderLegende {
        grid-template-columns: repeat(3, 150px);
        justify-content: start;
        justify-items: start;
        padding-top: 0;
    }

    .legenden-eintrag {
        width: 150px;
    }
}

@media (max-width: 768px) {
    #Monate_Pfeile_Legende {
        padding: 0 4px;
    }

    .kalender-kopf {
        padding: 12px;
        gap: 8px;
    }

    .kalender-titel {
        font-size: 1.1rem;
    }

    .kalender-brunnen-select {
        max-width: 100%;
        min-height: 38px;
        font-size: 0.9rem;
    }

    .kalender-ansicht-link,
    .kalender-ansicht-link:link,
    .kalender-ansicht-link:visited {
        font-size: 0.84rem;
    }

    #divMonate.monate-bereich {
        padding: 10px 12px;
        gap: 4px;
        min-height: 56px;
        flex-wrap: nowrap;
        overflow: hidden;
    }

    #divMonate .TabelleMonate {
        width: auto;
        margin: 0;
        flex: 0 1 auto;
    }

    #divMonate .TableCell {
        padding: 0 4px 0 0;
    }

    #divMonate [id$="pnlContainer"],
    #divMonate .MonatInhalt,
    #divMonate [id$="pnlMonat"] {
        width: 78px;
        min-width: 78px;
    }

    #divMonate .LinkMonat,
    #divMonate .LinkMonat:link,
    #divMonate .LinkMonat:visited {
        min-width: 74px;
        width: 74px;
        height: 36px;
        padding: 0 6px;
        font-size: 0.84rem;
        border-radius: 5px;
    }

    #divMonate .MonatAktiv {
        padding: 1px;
        border-radius: 5px;
    }

        #divMonate .MonatAktiv .LinkMonat,
        #divMonate .MonatAktiv .LinkMonat:link,
        #divMonate .MonatAktiv .LinkMonat:visited,
        #divMonate .MonatAktiv a {
            font-size: 0.78rem !important;
        }

    .monats-pfeile {
        gap: 4px;
        margin-left: 0;
        flex: 0 0 auto;
    }

    .monat-pfeil,
    .monat-pfeil:link,
    .monat-pfeil:visited {
        width: 26px;
        height: 26px;
        font-size: 0.8rem;
        border-radius: 5px;
        flex: 0 0 26px;
    }

    #legende.KalenderLegende {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: flex-start;
        gap: 12px;
        padding: 0 12px 10px 12px;
        min-height: 34px;
        overflow: hidden;
    }

    .legenden-eintrag {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        gap: 4px;
        width: auto;
        min-width: 0;
        height: auto;
        font-size: 0.78rem;
        font-weight: 500;
        line-height: 1;
        white-space: nowrap;
        flex: 0 1 auto;
    }

    .legenden-farbe {
        width: 11px;
        height: 11px;
        border-radius: 50%;
        flex: 0 0 11px;
    }

    .legenden-text {
        margin: 0;
        white-space: nowrap;
    }
}

/* =========================================================
   KALENDER GRID (7 Spalten) – vollflächige Farb-Kacheln
   WICHTIG: dein Kalender DataList hat CssClass="TabelleMonate"
   -> wir überschreiben für das Kalender-Grid separat
/* =========================================================
   NUR KALENDER-FEINSCHLIFF (Monatsleiste bleibt wie sie ist)
   Ziele:
   - alles sauber zentriert (Inhalt + Grid)
   - mobile schnell/sauber (einfach switch)
   - alle unteren Kästchen (Tageskacheln) leicht abgerundet
   - farbe bleibt vollflächig pro Kachel
   ========================================================= */



/* ======================================
   POOLKALENDER – BREITENFIX + KACHELLOOK
   ====================================== */

/* =========================
   1) ÄUSSERER BEREICH
   ========================= */
#divKalender {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 0 12px;
    box-sizing: border-box;
}

    #divKalender .kalender-inner {
        width: 100%;
        max-width: 1000px;
        box-sizing: border-box;
        overflow: hidden;
    }

    /* =========================
   2) DATALIST-TABELLE
   ========================= */
    #divKalender .TabelleMonate {
        width: 100%;
        max-width: 100%;
        table-layout: fixed;
        border-collapse: collapse;
        margin: 0;
    }

    #divKalender .TableCell {
        padding: 0px;
        vertical-align: top;
        box-sizing: border-box;
    }

    /* ganz wichtig gegen WebForms-Breiten-Ausreißer */
    #divKalender .TabelleMonate,
    #divKalender .TabelleMonate tbody,
    #divKalender .TabelleMonate tr,
    #divKalender .TabelleMonate td {
        box-sizing: border-box;
    }

    /* =========================
   3) PANELS / INNERE WRAPPER
   ========================= */
    #divKalender [id$="pnlContainer"],
    #divKalender [id$="pnlBorder"] {
        width: 100%;
        box-sizing: border-box;
    }

    /* =========================
   4) TAGESKACHELN
   ========================= */
    #divKalender .tooltipKalender {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        width: 100%;
        min-height: 118px;
        padding: 12px 10px 10px 10px;
        border-radius: 1px;
        box-sizing: border-box;
        text-align: center;
        text-decoration: none !important;
        line-height: 1.2;
        overflow: hidden;
        border: 1px solid rgba(255, 255, 255, 0.35);
        transition: transform 0.12s ease, box-shadow 0.12s ease, filter 0.12s ease;
    }

        /* alle direkten Divs sauber untereinander */
        #divKalender .tooltipKalender > div {
            width: 100%;
            box-sizing: border-box;
        }

            /* obere Zeile: Tagzahl */
            #divKalender .tooltipKalender > div:first-of-type {
                display: flex !important;
                align-items: flex-start;
                justify-content: center;
                min-height: 48px;
                margin-bottom: 6px;
            }

            /* letzte Zeile: Wochentag */
            #divKalender .tooltipKalender > div:last-of-type {
                margin-top: auto;
                padding-top: 6px;
            }

    /* =========================
   5) TYPOGRAFIE
   ========================= */
    #divKalender [id$="lblTag"] {
        display: inline-block;
        font-size: 2.2rem;
        font-weight: 700;
        line-height: 1;
        margin: 0;
    }

    #divKalender [id$="lblWochentag"] {
        display: block;
        font-size: 0.92rem;
        font-weight: 500;
        line-height: 1.1;
        opacity: 0.9;
        margin: 0;
    }

    #divKalender .tooltipKalender label,
    #divKalender .tooltipKalender span,
    #divKalender .tooltipKalender div {
        word-break: break-word;
    }

    /* =========================
   6) STATUS-PILL
   ========================= */
    #divKalender .statusPill {
        display: none !important;
    }

    /* =========================
   7) ZUSATZINFOS
   ========================= */
    #divKalender [id$="datalistTickets"] {
        margin: 2px 0 0 0;
    }

    #divKalender img[id$="imgTickets"] {
        height: 13px;
        width: auto;
        margin: 0 1px;
    }

    #divKalender img[id$="imgMail"] {
        width: 14px !important;
        height: auto;
        margin-left: 4px;
        margin-top: 2px;
        vertical-align: top;
    }

    #divKalender [id$="datalistNamen"] {
        margin-top: 3px;
    }

        #divKalender [id$="datalistNamen"] div {
            font-size: 0.7rem;
            line-height: 1.1;
            margin-top: 2px;
            opacity: 0.88;
            text-align: center;
        }

    #divKalender [id$="lblNachName"] {
        font-size: 0.7rem;
        line-height: 1.1;
        opacity: 0.88;
    }

    /* =========================
   8) STATUSFARBEN
   ========================= */
    #divKalender .frei {
        background: #b2ef8c;
        color: #1f3f17;
        border-color: #c8ddba;
    }

    #divKalender .reserviert {
        background: #fc6763;
        color: #D64545;
        border-color: #ddb2c8;
    }

    #divKalender .selberReserviert {
        background: #4A90C9;
        color: #4A90C9;
        border-color: #b3d3e7;
    }

    #divKalender .Feiertag {
        background: #e5e5e5;
        color: #4f4f4f;
        border-color: #d4d4d4;
    }

    #divKalender .warteliste {
        background: #e8f7fd;
        color: #15566f;
        border-color: #bfe7f5;
    }

        /* =========================
   9) HOVER / FOKUS
   ========================= */
        #divKalender .frei:hover,
        #divKalender .reserviert:hover,
        #divKalender .selberReserviert:hover,
        #divKalender .warteliste:hover {
            transform: translateY(-1px);
            box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
        }

    #divKalender .tooltipKalender:focus,
    #divKalender .tooltipKalender:focus-visible {
        outline: 3px solid rgba(47, 128, 237, 0.45);
        outline-offset: 1px;
    }

    /* =========================
   10) AUSGEWÄHLTER TAG
   ========================= */
    #divKalender .is-selected {
        outline: 3px solid #2f80ed;
        outline-offset: -3px;
        box-shadow: 0 0 0 4px rgba(47, 128, 237, 0.15);
    }

    /* =========================
   11) TOOLTIP / DISABLED
   ========================= */
    #divKalender .tooltiptext {
        font-size: 0.75rem;
        line-height: 1.2;
    }

    #divKalender .is-empty {
        visibility: hidden;
    }

    #divKalender .is-disabled {
        opacity: 0.75;
        cursor: default;
        pointer-events: none;
    }

/* =========================
   12) MOBILE
   ========================= */
@media (max-width: 768px) {
    #divKalender {
        padding: 0 6px;
    }

        #divKalender .TableCell {
            padding: 0px;
        }

        #divKalender .tooltipKalender {
            min-height: 82px;
            padding: 8px 4px 8px 4px;
            border-radius: 0px;
        }

            #divKalender .tooltipKalender > div:first-of-type {
                min-height: 34px;
                margin-bottom: 4px;
            }

        #divKalender [id$="lblTag"] {
            font-size: 1.55rem;
        }

        #divKalender [id$="lblWochentag"] {
            font-size: 0.82rem;
        }

        #divKalender [id$="datalistNamen"] div,
        #divKalender [id$="lblNachName"] {
            font-size: 0.62rem;
        }

        #divKalender img[id$="imgTickets"] {
            height: 11px;
        }

        #divKalender img[id$="imgMail"] {
            width: 12px !important;
        }
}
/* ========================================
   Wizard Stepper (Registrierung)
   ======================================== */

.wizard-stepper2 {
    text-align: center;
}

.wizard-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: -4px;
}

/* einzelner Step */
.wstep {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 110px;
}

/* Kreis */
.wicon {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #d6dbe0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    color: white;
    position: relative;
}

/* Nummer */
.wnum {
    font-size: 15px;
}

/* Checksymbol */
.wcheck {
    display: none;
    font-size: 16px;
}

/* Label unter dem Kreis */
.wlabel {
    margin-top: 6px;
    font-size: 14px;
    font-weight: 600;
    color: #6c757d;
}

/* Verbindungslinie */
.wline {
    height: 4px;
    width: 180px;
    margin-top: -8px;
    border-radius: 10px;
    background: #d6dbe0;
}


/* ========================================
   STATUS: TODO
   ======================================== */

.wstep.todo .wicon {
    background: #d6dbe0;
}

.wstep.todo .wlabel {
    color: #6c757d;
}


/* ========================================
   STATUS: ACTIVE (aktueller Schritt)
   ======================================== */

.wstep.active .wicon {
    background: #2f7fb5;
}

.wstep.active .wlabel {
    color: #2f7fb5;
}

.wstep.active .wnum {
    display: block;
}

.wstep.active .wcheck {
    display: none;
}


/* ========================================
   STATUS: DONE
   ======================================== */

.wstep.done .wicon {
    background: #5cb85c;
}

.wstep.done .wnum {
    display: none;
}

.wstep.done .wcheck {
    display: block;
}

.wstep.done .wlabel {
    color: #5cb85c;
}


/* ========================================
   Linienstatus
   ======================================== */

.wline.done {
    background: #5cb85c;
}

.wline.todo {
    background: #d6dbe0;
}

/* ========================================
   Reservierung Neu und bearbeiten
   ======================================== */


:root {
    --pool-blue: #0ea5e9;
    --pool-blue-dark: #0369a1;
    --pool-cyan: #67e8f9;
    --text-dark: #0f172a;
    --soft-shadow: 0 20px 45px rgba(2, 132, 199, 0.12);
}




.hero-header {
    background: linear-gradient(135deg, rgba(14,165,233,0.95), rgba(6,182,212,0.85));
    color: white;
    padding: 2rem;
    position: relative;
}



.content-area {
    padding: 1.5rem;
}

.step-card {
    background: rgba(255,255,255,0.72);
    border: 1px solid rgba(255,255,255,0.45);
    border-radius: 5px;
    padding: 1.25rem;
    box-shadow: 0 12px 25px rgba(15, 23, 42, 0.05);
    height: 100%;
}

.step-badge {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--pool-blue), var(--pool-cyan));
    color: white;
    font-weight: 700;
    margin-right: 0.75rem;
    flex-shrink: 0;
}

.section-title {
    display: flex;
    align-items: center;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--text-dark);
    margin-bottom: 1rem;
}

.info-box {
    background: rgba(255,255,255,0.65);
    border: 1px solid rgba(14,165,233,0.12);
    border-radius: 5px;
    padding: 1rem 1.1rem;
}

.info-label {
    font-size: 0.85rem;
    color: #475569;
    display: block;
    margin-bottom: 0.2rem;
}

.info-value {
    font-weight: 700;
    color: #0f172a;
    font-size: 1rem;
}

.water-display {
    text-align: center;
    margin-bottom: 1rem;
}

.water-value {
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1;
    font-weight: 800;
    color: var(--pool-blue-dark);
}

.water-unit {
    font-size: 1rem;
    color: #475569;
    font-weight: 600;
}

.liters-value {
    font-size: 1rem;
    color: #334155;
    margin-top: 0.5rem;
}

.slider-wrap {
    position: relative;
    padding: 1.25rem 0 0.5rem 0;
}

.pool-slider {
    width: 100%;
    appearance: none;
    height: 14px;
    border-radius: 999px;
    outline: none;
    background: linear-gradient(90deg, var(--pool-blue) 0%, var(--pool-cyan) 50%, #dbeafe 50%, #dbeafe 100%);
    transition: all 0.2s ease;
}

    .pool-slider::-webkit-slider-thumb {
        appearance: none;
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background: white;
        border: 4px solid var(--pool-blue);
        box-shadow: 0 8px 20px rgba(2,132,199,0.28);
        cursor: pointer;
    }

    .pool-slider::-moz-range-thumb {
        width: 30px;
        height: 30px;
        border-radius: 50%;
        background: white;
        border: 4px solid var(--pool-blue);
        box-shadow: 0 8px 20px rgba(2,132,199,0.28);
        cursor: pointer;
    }

.slider-scale {
    display: flex;
    justify-content: space-between;
    margin-top: 0.55rem;
    color: #64748b;
    font-size: 0.85rem;
}



.submit-panel {
    background: rgba(255,255,255,0.75);
    border-top: 1px solid rgba(255,255,255,0.6);
    padding: 1.5rem;
}


.btn-outline-pool {
    border: 2px solid rgba(14,165,233,0.35);
    color: var(--pool-blue-dark);
    background: rgba(255,255,255,0.7);
    font-weight: 700;
    border-radius: 3pxx;
    padding: 0.85rem 1rem;
}

    .btn-outline-pool:hover {
        background-color: rgba(14,165,233,0.1);
    }

.calculator-result {
    background: linear-gradient(135deg, rgba(14,165,233,0.1), rgba(103,232,249,0.2));
    border: 1px solid rgba(14,165,233,0.2);
    border-radius: 5px;
    padding: 1rem;
    font-weight: 700;
    color: #0f172a;
}

.form-control,
.form-select {
    border-radius: 3px;
    min-height: 48px;
}

.user-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}



