/* Gemeinsame Checkboxen im Frontend; native Zustände und Handler bleiben erhalten. */
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]),
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]) + .switch-paddle::before {
    box-sizing: border-box;
    width: 22px !important;
    height: 22px !important;
    border: 1.5px solid #8997a3 !important;
    border-radius: 6px !important;
    background-color: #fff !important;
    background-image: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 14px 14px;
    box-shadow: none !important;
    /* Switch-Wrapper können weiße Schrift erben; der weiße Haken braucht eine dunkle Fläche. */
    color: #243746 !important;
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]) {
    -webkit-appearance: none !important;
    appearance: none !important;
    min-width: 22px !important;
    max-width: 22px !important;
    min-height: 22px !important;
    padding: 0 !important;
    margin: 0 10px 0 0;
    vertical-align: middle;
    flex: 0 0 22px;
    opacity: 1 !important;
    cursor: pointer;
}
/* Der sichtbare Haken bleibt kompakt, die vorhandene Label-Klickfläche ist 44px groß. */
body.frontend-callouts .switch:has(> input[type="checkbox"]:not([checky="sitzplatz"])) {
    display: inline-flex;
    position: relative;
    width: 44px;
    height: 44px;
    margin: 0;
    vertical-align: middle;
    flex: 0 0 44px;
}
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]) + .switch-paddle {
    display: block !important;
    position: relative;
    width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
    opacity: 1 !important;
    cursor: pointer;
}
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]) + .switch-paddle::before {
    content: "";
    position: absolute;
    top: 11px;
    left: 11px;
}
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]) + .switch-paddle::after {
    content: none !important;
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):checked,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):checked + .switch-paddle::before {
    border-color: currentColor !important;
    background-color: currentColor !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3.2 3.2L13 4.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):indeterminate,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):indeterminate + .switch-paddle::before {
    border-color: currentColor !important;
    background-color: currentColor !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):disabled,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled + .switch-paddle::before {
    border-color: #bac5ce !important;
    background-color: #f1f4f6 !important;
    cursor: default;
}
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled + .switch-paddle {
    cursor: default;
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):disabled:checked,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled:checked + .switch-paddle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8l3.2 3.2L13 4.5' fill='none' stroke='%23546472' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):disabled:indeterminate,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled:indeterminate + .switch-paddle::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='%23546472' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):focus-visible,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):focus-visible + .switch-paddle::before {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]):enabled:hover,
body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):enabled + .switch-paddle:hover::before {
    border-color: currentColor !important;
}
/* Vorhandene Formularlabels bleiben als ganze Zeile anklickbar, auch bei Textumbrüchen. */
body.frontend-callouts label:has(> input[type="checkbox"]:not([checky="sitzplatz"])),
body.frontend-callouts label:has(> .switch > input[type="checkbox"]:not([checky="sitzplatz"])) {
    display: block;
    position: relative;
    min-height: 44px;
    padding: 10px 0 10px 48px !important;
    line-height: 1.5;
    color: inherit;
}
body.frontend-callouts label > input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]) {
    position: absolute;
    top: 11px;
    left: 11px;
    margin: 0;
}
body.frontend-callouts label > .switch:has(> input[type="checkbox"]:not([checky="sitzplatz"])) {
    position: absolute;
    top: 0;
    left: 0;
}
body.frontend-callouts .AccExtras .ttCell1 > .switch:has(> input[type="checkbox"]:not([checky="sitzplatz"])) {
    display: flex;
    margin-left: auto;
    margin-right: auto;
}
body.frontend-callouts .AccExtras .ttCell1:has(.switch > input[type="checkbox"]:not([checky="sitzplatz"])) + .ttCell2 {
    vertical-align: middle;
    line-height: 1.5;
}
@media (forced-colors: active) {
    body.frontend-callouts input[type="checkbox"]:not(.switch-input):not([checky="sitzplatz"]) {
        -webkit-appearance: auto !important;
        appearance: auto !important;
        background: none !important;
    }
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]) + .switch-paddle::before {
        forced-color-adjust: none;
        border-color: CanvasText !important;
        background: Canvas !important;
    }
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled + .switch-paddle::before {
        border-color: GrayText !important;
    }
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):checked + .switch-paddle::after,
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):indeterminate + .switch-paddle::after {
        content: "" !important;
        position: absolute;
        top: 15px;
        left: 19px;
        width: 6px;
        height: 11px;
        margin: 0;
        border: 0;
        border-right: 2px solid CanvasText;
        border-bottom: 2px solid CanvasText;
        border-radius: 0;
        background: transparent;
        transform: rotate(45deg);
    }
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):disabled + .switch-paddle::after {
        border-color: GrayText;
    }
    body.frontend-callouts .switch > input[type="checkbox"]:not([checky="sitzplatz"]):indeterminate + .switch-paddle::after {
        top: 21px;
        left: 17px;
        width: 10px;
        height: 0;
        border-right: 0;
        transform: none;
    }
}
