.sn-bg-fss {
    /*background-image: url("https://v2.firestation-studio.de/images/nav_bg.jpg")*/
}

/* Vanilla replacement for the removed MDB4 .sideNav() plugin toggle state,
   see index.php ".button-collapse" click handler */
.side-nav.side-nav-js-open {
    -webkit-transform: translateX(0) !important;
    transform: translateX(0) !important;
}

/* mdb.css has an unconditional ".collapsible-body { display: none }" left
   over from MDB4's own accordion widget, with no counterpart for Bootstrap
   5's real ".show"/".collapsing" state classes (site/navigation.php's
   accordion items use data-bs-toggle="collapse" now). BS5's own CSS only
   hides via ".collapse:not(.show)", which stops matching once JS adds
   "show" - but mdb.css's plain rule keeps matching regardless and hides it
   again, so the submenu never actually became visible even though the
   toggle itself (aria-expanded, arrow rotation) worked correctly. */
.collapsible-body.show,
.collapsible-body.collapsing {
    display: block;
}

/* MDB4's sideNav() plugin used to open the sidebar by default on desktop
   (body.fixed-sn) via JS, based on a 1440px breakpoint - same breakpoint
   mdb.css already uses to hide .button-collapse and add main's padding-left.
   That JS is gone together with mdb.js, so without this rule .side-nav stays
   at its default transform:translateX(-100%) (fully hidden) on every screen
   size, and the hamburger button that would open it is itself hidden here. */
@media (min-width: 1440px) {
  .fixed-sn .side-nav {
    -webkit-transform: translateX(0) !important;
    transform: translateX(0) !important;
  }
}

/* mdb.css sets ".side-nav { overflow: hidden; height: 100% }" because MDB4's
   sideNav() plugin used to hand scrolling off to the PerfectScrollbar library
   (bundled inside the removed mdb.js) via the ".custom-scrollbar" class on
   the inner <ul>. That library is gone together with mdb.js, so the inner
   list was left with no scroll mechanism at all - once an accordion item
   expands and the menu grows taller than the viewport, the overflow is just
   clipped by ".side-nav"'s own "overflow: hidden" with no way to reach the
   items below the fold. Give the inner list native scrolling instead of
   reintroducing a JS scrollbar plugin. */
.side-nav .custom-scrollbar {
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.firestation {
    background-color: #f56a6a !important
}

.text-firestation {
  color: #f56a6a !important;
}

.mt-6,
.my-6 {
  margin-top: 4rem !important;
}

.mr-6,
.mx-6 {
  margin-right: 4rem !important;
}

.mb-6,
.my-6 {
  margin-bottom: 4rem !important;
}

.ml-6,
.mx-6 {
  margin-left: 4rem !important;
}

.side-nav .logo-wrapper img {
    height: 130px;
    padding-top: 2%;
    padding-right: 20px;
    padding-bottom: 20%;
    padding-left: 80px
}

.white-skin .side-nav .collapsible li .collapsible-header.active {
    color: #f56a6a;
    background-color: transparent
}

.white-skin .side-nav .collapsible li .collapsible-header.active {
    color: #f56a6a;
    background-color: transparent
}

.white-skin .side-nav .collapsible li a:not(.collapsible-header):hover,
.white-skin .side-nav .collapsible li a:not(.collapsible-header).active,
.white-skin .side-nav .collapsible li a:not(.collapsible-header):active {
    color: #f56a6a !important
}


.btn-outline-firestation {
    color: #f56a6a !important;
    background-color: transparent !important;
    border: 2px solid #f56a6a !important
}

.white-skin .card-header {
    background-color: #f56a6a
}

a {
    color: #f56a6a;
    text-decoration: none;
    cursor: pointer;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out
}

a:hover {
    color: #cd5f5f;
    text-decoration: none;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out
}

a.disabled:hover,
a:disabled:hover {
    color: #f56a6a
}

table.table a {
    margin: 0;
    color: #f56a6a;
}

.firestation-gradient {
    background: linear-gradient(180deg, rgba(245,106,106,1) 0%, rgba(236,179,179,1) 100%) !important
}

.modal-dialog.modal-notify.modal-danger .modal-header {
    background-color: #f56a6a
}

.picker__box .picker__header .picker__date-display {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding-bottom: .3125rem;
    font-weight: 400;
    background-color: #f56a6a
}

.picker__box .picker__table .picker__day--selected,
.picker__box .picker__table .picker__day--selected:hover,
.picker__box .picker__table .picker--focused {
    background-color: #f56a6a;
    color: #000000;
    border-radius: 50%;
    -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
    box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
    -webkit-transform: scale(0.9);
    transform: scale(0.9)
}

.md-tabs {
    position: relative;
    z-index: 1;
    padding: .7rem;
    margin-right: 1rem;
    margin-bottom: -20px;
    margin-left: 1rem;
    background-color: #f56a6a;
    border: 0;
    border-radius: .25rem;
    -webkit-box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15);
    box-shadow: 0 5px 11px 0 rgba(0, 0, 0, 0.18), 0 4px 15px 0 rgba(0, 0, 0, 0.15)
}

.md-form input:not([type]):focus:not([readonly]),
.md-form input[type="text"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="password"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="email"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="url"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="time"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="date"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="datetime"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="datetime-local"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="tel"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="number"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="search"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="phone"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="date"]:not(.browser-default):focus:not([readonly]),
.md-form input[type="search-md"]:focus:not([readonly]),
.md-form textarea.md-textarea:focus:not([readonly]) {
    border-bottom: 1px solid #f56a6a;
    -webkit-box-shadow: 0 1px 0 0 #f56a6a;
    box-shadow: 0 1px 0 0 #f56a6a
}

.md-form input:not([type]):focus:not([readonly])+label,
.md-form input[type="text"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="password"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="email"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="url"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="time"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="date"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="datetime"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="datetime-local"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="tel"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="number"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="search"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="phone"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="date"]:not(.browser-default):focus:not([readonly])+label,
.md-form input[type="search-md"]:focus:not([readonly])+label,
.md-form textarea.md-textarea:focus:not([readonly])+label {
    color: #f56a6a
}

.md-form.md-outline input[type="text"]:focus:not([readonly]),
.md-form.md-outline input[type="password"]:focus:not([readonly]),
.md-form.md-outline input[type="email"]:focus:not([readonly]),
.md-form.md-outline input[type="url"]:focus:not([readonly]),
.md-form.md-outline input[type="time"]:focus:not([readonly]),
.md-form.md-outline input[type="date"]:focus:not([readonly]),
.md-form.md-outline input[type="datetime-local"]:focus:not([readonly]),
.md-form.md-outline input[type="tel"]:focus:not([readonly]),
.md-form.md-outline input[type="number"]:focus:not([readonly]),
.md-form.md-outline input[type="search-md"]:focus:not([readonly]),
.md-form.md-outline input[type="search"]:focus:not([readonly]),
.md-form.md-outline input[type="date"]:focus:not([readonly]),
.md-form.md-outline textarea.md-textarea:focus:not([readonly]) {
    border-color: #f56a6a;
    -webkit-box-shadow: inset 0 0 0 1px #f56a6a;
    box-shadow: inset 0 0 0 1px #f56a6a
}

.md-form.md-outline input[type="text"]:focus:not([readonly])+label,
.md-form.md-outline input[type="password"]:focus:not([readonly])+label,
.md-form.md-outline input[type="email"]:focus:not([readonly])+label,
.md-form.md-outline input[type="url"]:focus:not([readonly])+label,
.md-form.md-outline input[type="time"]:focus:not([readonly])+label,
.md-form.md-outline input[type="date"]:focus:not([readonly])+label,
.md-form.md-outline input[type="datetime-local"]:focus:not([readonly])+label,
.md-form.md-outline input[type="tel"]:focus:not([readonly])+label,
.md-form.md-outline input[type="number"]:focus:not([readonly])+label,
.md-form.md-outline input[type="search-md"]:focus:not([readonly])+label,
.md-form.md-outline input[type="search"]:focus:not([readonly])+label,
.md-form.md-outline input[type="date"]:focus:not([readonly])+label,
.md-form.md-outline textarea.md-textarea:focus:not([readonly])+label {
    color: #f56a6a
}

.md-form .prefix.active {
    color: #f56a6a
}

.md-form.md-outline .prefix:focus {
    color: #f56a6a
}

.md-form .input-prefix.active {
    color: #f56a6a
}

.select-wrapper:not(.md-outline) .select-dropdown:focus {
    border-bottom: 1px solid #f56a6a;
    -webkit-box-shadow: 0 1px 0 0 #f56a6a;
    box-shadow: 0 1px 0 0 #f56a6a
}

.select-wrapper.active span.caret,
.select-wrapper.active label.mdb-main-label {
    color: #f56a6a
}

.select-wrapper.active+label {
    color: #f56a6a
}

.select-wrapper input.active {
    border-bottom: 1px solid #f56a6a;
    -webkit-box-shadow: 0 1px 0 0 #f56a6a;
    box-shadow: 0 1px 0 0 #f56a6a
}

.select-wrapper .search-wrap .md-form input:focus {
    -webkit-box-shadow: none !important;
    box-shadow: none !important;
    -webkit-box-shadow: 0 1px 0 0 #f56a6a !important;
    box-shadow: 0 1px 0 0 #f56a6a !important
}

.select-wrapper+label.active-check {
    color: #f56a6a
}

.select-wrapper.md-form>ul li label {
    top: 0;
    font-size: .9rem;
    color: #f56a6a;
    -webkit-transform: none;
    transform: none
}

.select-wrapper.md-form.md-outline span.caret.active {
    color: #f56a6a !important
}

.select-wrapper.md-form.md-outline input.select-dropdown:focus {
    border-color: #f56a6a;
    -webkit-box-shadow: inset 0 0 0 1px #f56a6a;
    box-shadow: inset 0 0 0 1px #f56a6a
}

.select-wrapper.md-form.md-outline+label.active {
    color: #f56a6a
}

.select-wrapper .select-add-option {
    position: absolute;
    top: 1.5rem;
    right: 1rem;
    display: none;
    color: #f56a6a;
    cursor: pointer
}

.dropdown-content li>a,
.dropdown-content li>span {
    display: block;
    padding: .5rem;
    font-size: .9rem;
    color: #f56a6a
}

.form-check-input[type="radio"]:checked+label:after,
.form-check-input[type="radio"].with-gap:checked+label:before,
.form-check-input[type="radio"].with-gap:checked+label:after,
label.btn input[type="radio"]:checked+label:after,
label.btn input[type="radio"].with-gap:checked+label:before,
label.btn input[type="radio"].with-gap:checked+label:after {
    border: 2px solid #f56a6a
}

.form-check-input[type="radio"]:checked+label:after,
.form-check-input[type="radio"].with-gap:checked+label:after,
label.btn input[type="radio"]:checked+label:after,
label.btn input[type="radio"].with-gap:checked+label:after {
    background-color: #f56a6a
}

.form-check-input[type="radio"]:focus+label:before,
label.btn input[type="radio"]:focus+label:before {
    border-color: #f56a6a;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25)
}

.form-check-input[type="checkbox"]:focus:checked+label::before,
label.btn input[type="checkbox"]:focus:checked+label::before {
    border-color: #f56a6a;
    -webkit-box-shadow: 3px 2px 0 0 rgba(0, 123, 255, 0.25);
    box-shadow: 3px 2px 0 0 rgba(0, 123, 255, 0.25);
    border-top: 2px solid transparent;
    border-left: 2px solid transparent
}

.form-check-input[type="radio"]:checked+label:after,
.form-check-input[type="radio"].with-gap:checked+label:before,
.form-check-input[type="radio"].with-gap:checked+label:after,
label.btn input[type="radio"]:checked+label:after,
label.btn input[type="radio"].with-gap:checked+label:before,
label.btn input[type="radio"].with-gap:checked+label:after {
    border: 2px solid #f56a6a
}

.form-check-input[type="radio"]:checked+label:after,
.form-check-input[type="radio"].with-gap:checked+label:after,
label.btn input[type="radio"]:checked+label:after,
label.btn input[type="radio"].with-gap:checked+label:after {
    background-color: #f56a6a
}

.form-check-input[type="radio"]:focus+label:before,
label.btn input[type="radio"]:focus+label:before {
    border-color: #f56a6a;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25)
}

.white-skin input[type="checkbox"]:checked+label:before {
    border-right: 2px solid #f56a6a;
    border-bottom: 2px solid #f56a6a
}

.switch label input[type="checkbox"]:checked+.lever {
    background-color: #f2b9b9
}

.switch label input[type="checkbox"]:checked+.lever:after {
    left: 1.5rem;
    background-color: #f56a6a
}

.collapse-content a.collapsed:after {
    content: "mehr anzeigen"
}

.collapse-content a:not(.collapsed):after {
    content: "weniger anzeigen"
}

.custom-range::-webkit-slider-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: -0.25rem;
  background-color: #f56a6a;
  border: 0;
  border-radius: 1rem;
  -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
}

.custom-range::-moz-range-thumb {
  width: 1rem;
  height: 1rem;
  background-color: #f56a6a;
  border: 0;
  border-radius: 1rem;
  -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  -moz-appearance: none;
  appearance: none;
}

.custom-range::-ms-thumb {
  width: 1rem;
  height: 1rem;
  margin-top: 0;
  margin-right: 0.2rem;
  margin-left: 0.2rem;
  background-color: #f56a6a;
  border: 0;
  border-radius: 1rem;
  -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
  appearance: none;
}

.custom-range::-ms-thumb:active {
  background-color: #f4a7a7;
}

/*@media only screen and (min-width: 992px) {
  .table-responsive {
    overflow-x: hidden;
  }
}*/

/*Ticket mit der überlappenden Navi*/
.navbar {
  	z-index: 1040;
}

.side-nav {
  margin-top: 45px !important;
}


#loadingMessage_qr {
  text-align: center;
  padding: 40px;
  background-color: #eee;
}

#canvas_qr {
  width: 100%;
}

#output_qr {
  margin-top: 20px;
  background: #eee;
  padding: 10px;
  padding-bottom: 0;
}

#output_qr div {
  padding-bottom: 10px;
  word-wrap: break-word;
}

#noQRFound {
  text-align: center;
}

.was-validated .form-control:valid, .form-control.is-valid {
  border-color: #28a745;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(2.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.was-validated .form-control:invalid, .form-control.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(2.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.card-body-iframe {
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  min-height: 1px;
  padding: 0.5rem;
}

#signatureparent {
  color:black;
  background-color:darkgrey;
  max-width:600px;
  padding:20px;
}

#signature {
  border: 2px dotted black;
  background-color:lightgrey;
}

.tabs-firestation {
    background-color: #c6c4c4 !important
}

.classic-tabs .nav li a.active {
    color: #000;
    border-bottom: 3px solid
}

.classic-tabs .nav li a {
    display: block;
    padding: 20px 24px;
    font-size: 13px;
    color: rgba(0, 0, 0, 0.7);
    text-align: center;
    text-transform: uppercase;
    border-radius: 0
}

/* Minimal Styling fuer die jQuery-UI-Autocomplete-Vorschlagsliste der Kopfzeilen-Suche
   (index.php #form-autocomplete) - Ersatz fuer das nicht mehr vorhandene MDB4
   mdbAutocomplete()-Plugin. Kein volles jQuery-UI-Theme geladen, da das App-Design
   (Bootstrap 5 / MDB) sonst mit dessen generischen Widget-Klassen kollidieren würde. */
.ui-autocomplete {
    z-index: 1100;
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    list-style: none;
    padding: .25rem 0;
    margin: 0;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, .15);
    border-radius: .25rem;
    -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
    box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
}

.ui-autocomplete .ui-menu-item-wrapper {
    display: block;
    padding: .4rem 1rem;
    color: #212529;
    cursor: pointer;
}

.ui-autocomplete .ui-menu-item-wrapper.ui-state-active {
    background-color: #f56a6a;
    color: #fff;
    border: none;
}

/* Vanilla-JS Prüfschritte (Ersatz fuer MDB mdbStepper, siehe site/check/*.php) */
.check-stepper .check-step {
    display: none;
}

.check-stepper .check-step.active {
    display: block;
}

/* .form-select an das MDB-Formular-Design angleichen: Bootstrap 5s Standard-
   ".form-select" bringt eine eigene Box mit (umlaufender Rahmen, Hintergrund,
   abweichende Innenabstaende/Hoehe) - das weicht von den unterstrichenen
   ".md-form"-Eingabefeldern ab, mit denen es in denselben Formularen/Reihen
   steht (kein Aequivalent mehr seit MDB4's eigenes Select-Widget mit mdb.js
   entfernt wurde). Angleichung nur an Hoehe/Optik, Funktion unveraendert. */
.form-select {
    /* box-sizing bewusst NICHT auf content-box umgestellt (anders als bei
       .md-form input): .form-select bringt "width: 100%" aus Bootstraps
       Basis-Regel mit - in Kombination mit content-box hätte der Browser
       die Innenabstände (3rem wegen des reservierten Pfeil-Platzes)
       zusätzlich zur vollen Breite addiert, das Select wurde dadurch
       breiter als die Spalte und ragte in Nachbarfelder hinein. Mit dem
       Standard border-box (Bootstrap-weiter Reset) bleiben Innenabstände
       innerhalb der Breite. */
    padding: .375rem 2.25rem .375rem .75rem;
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #ced4da;
    border-radius: 0;
    box-shadow: none;
}

.form-select:focus {
    border-bottom-color: #f56a6a;
    box-shadow: none;
}

/* Tom Select (assets/js/select-search-init.js) uebernimmt die "form-select"-
   Klasse vom Original-<select> auf seinen eigenen Wrapper (.ts-wrapper) -
   dessen mitgeliefertes Bootstrap-5-Theme bringt aber eine eigene, umrandete
   Kasten-Optik (volle Border auf .ts-control) statt des Unterstrich-Looks
   oben. Hier auf denselben Unterstrich-Stil wie alle anderen .form-select/
   .md-form-Felder angeglichen, sonst faellt jedes durchsuchbare Select
   optisch aus der Reihe. */
.ts-wrapper.form-select .ts-control {
    padding: .375rem 2.25rem .375rem .75rem;
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #ced4da;
    border-radius: 0;
    box-shadow: none;
}

.ts-wrapper.form-select.focus .ts-control {
    border-bottom-color: #f56a6a;
    box-shadow: none;
}

/* Kein explizites "height" (frühere Version hier hatte einen Rechenfehler,
   fehlender 1px-Rand): border-box + dieselbe Innenabstand/Border/Zeilenhoehe
   wie ".md-form input" ergibt automatisch dieselbe Hoehe wie die Inputs -
   ein eigener height-Wert macht das nur wieder kaputt, sobald er nicht auf
   den Nachkommastellen-genau denselben Wert trifft. */

/* Bootstrap 5 kennt ".close" nicht mehr (nur noch ".btn-close" mit anderem
   Markup) - alle Modals in der App nutzen aber weiterhin die alte Bootstrap-
   4-Syntax ("class=close" + "<span>&times;</span>"), das × rendert seitdem
   komplett unstyled. Hier 1:1 die ehemalige BS4-".close"-Regel zurückgeholt
   (aus bootstrap.css.bs4_backup), damit ist projektweit nichts mehr in den
   ~98 betroffenen Dateien anzufassen. */
.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #fff;
    opacity: .5;
}

.close:hover {
    color: #000;
    text-decoration: none;
}

.close:not(:disabled):not(.disabled):hover,
.close:not(:disabled):not(.disabled):focus {
    opacity: .75;
}

button.close {
    padding: 0;
    background-color: transparent;
    border: 0;
}

a.close.disabled {
    pointer-events: none;
}