:root {
  --bs-primary: #299fd1;
  --bs-primary-rgb: 41, 159, 209;
  --bs-link-color: #299fd1;
  --bs-link-color-rgb: 41, 159, 209;
  --bs-link-hover-color: #217ea6;
  --bs-link-hover-color-rgb: 33, 126, 166;
  --bs-warning: #299fd1;
  --bs-warning-rgb: 41, 159, 209;
  --bs-orange: #299fd1;
  --bs-orange-rgb: 41, 159, 209;
  --bs-primary-text-emphasis: #13465b;
  --bs-warning-text-emphasis: #13465b;
  --bs-primary-bg-subtle: #d7eefb;
  --bs-primary-border-subtle: #c7e4f7;
  --bs-warning-bg-subtle: #d7eefb;
  --bs-warning-border-subtle: #c7e4f7;
  --bs-focus-ring-color: rgba(41, 159, 209, .25);
  --bs-border-radius: 0.5rem;
  --bs-border-radius-sm: 0.375rem;
  --bs-border-radius-lg: 1rem;
  --bs-btn-border-radius: 0.5rem;
  --bs-font-sans-serif: 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
}

/* Inter im Admin erzwingen — Bootstrap setzt font-family ungewöhnlich oft inline auf einzelnen Komponenten. */
html, body,
.btn, .form-control, .form-select, .form-label, .form-check-label,
.nav, .navbar, .dropdown-menu, .modal, .toast, .tooltip, .popover,
.table, .card, .list-group, .breadcrumb, .pagination, .badge,
input, button, select, textarea, optgroup {
  font-family: var(--bs-font-sans-serif);
}

body {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11"; /* Inter: schöneres l, kleines a, geschlossenes 4, einstöckiges g */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* Headings nicht zu schwer — Bootstrap default ist 500, mit Inter wirkt 600 ausgewogener */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--bs-font-sans-serif);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.btn,
.btn-primary,
.btn-secondary,
.btn-default,
.btn-success,
.btn-warning,
.btn-danger,
.btn-orange,
.btn-outline-orange,
.btn-outline-primary {
  border-radius: 0.5rem !important;
}

.btn-primary,
.btn-orange {
  --bs-btn-color: #ffffff !important;
  --bs-btn-bg: #299fd1 !important;
  --bs-btn-border-color: #299fd1 !important;
  --bs-btn-hover-color: #ffffff !important;
  --bs-btn-hover-bg: #217ea6 !important;
  --bs-btn-hover-border-color: #217ea6 !important;
  --bs-btn-active-color: #ffffff !important;
  --bs-btn-active-bg: #1f6d93 !important;
  --bs-btn-active-border-color: #1f6d93 !important;
  --bs-btn-focus-shadow-rgb: 33, 126, 166 !important;
}

.btn-secondary,
.btn-outline-primary,
.btn-outline-orange {
  --bs-btn-color: #299fd1 !important;
  --bs-btn-bg: transparent !important;
  --bs-btn-border-color: #299fd1 !important;
  --bs-btn-hover-color: #ffffff !important;
  --bs-btn-hover-bg: #299fd1 !important;
  --bs-btn-hover-border-color: #299fd1 !important;
  --bs-btn-active-color: #ffffff !important;
  --bs-btn-active-bg: #217ea6 !important;
  --bs-btn-active-border-color: #217ea6 !important;
  --bs-btn-focus-shadow-rgb: 33, 126, 166 !important;
}

button,
.form-control,
.form-select,
.input-group-text,
.card,
.dropdown-menu,
.modal-content,
.toast,
.alert {
  border-radius: 0.5rem !important;
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
.btn-close:focus,
.nav-link:focus-visible,
.page-link:focus {
  border-color: #299fd1 !important;
  box-shadow: 0 0 0 0.25rem rgba(41, 159, 209, .25) !important;
}

.form-check-input:checked,
.form-check-input[type=checkbox]:indeterminate {
  background-color: #299fd1 !important;
  border-color: #299fd1 !important;
}

.form-range::-webkit-slider-thumb,
.form-range::-moz-range-thumb {
  background-color: #299fd1 !important;
}

.form-range::-webkit-slider-thumb:active,
.form-range::-moz-range-thumb:active {
  background-color: #217ea6 !important;
}

.choices__inner.is-focused,
.is-open .choices__inner,
.is-open .choices__list--dropdown,
.is-open .choices__list[aria-expanded] {
  border-color: #217ea6 !important;
}

.choices__list--dropdown .choices__item--selectable.is-highlighted,
.choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
  background-color: #299fd1 !important;
  color: #fff !important;
}

.nav-pills {
  --bs-nav-pills-link-active-bg: #299fd1 !important;
}

.dropdown-menu {
  --bs-dropdown-link-active-color: #299fd1 !important;
  --bs-dropdown-link-active-bg: transparent !important;
}

.dropdown-menu-dark {
  --bs-dropdown-link-active-color: #299fd1 !important;
}

.list-group {
  --bs-list-group-active-bg: #299fd1 !important;
  --bs-list-group-active-border-color: #299fd1 !important;
}

.pagination {
  --bs-pagination-active-bg: #299fd1 !important;
  --bs-pagination-active-border-color: #299fd1 !important;
  --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(41, 159, 209, .25) !important;
}

.alert-warning {
  --bs-alert-color: #13465b !important;
  --bs-alert-bg: #d7eefb !important;
  --bs-alert-border-color: #c7e4f7 !important;
  --bs-alert-link-color: #13465b !important;
}

.progress-bar,
.bar-loading-indicator .bar {
  background-color: #299fd1 !important;
}

.card-hover:hover {
  border-color: #299fd1 !important;
}

.btn-edit {
  color: #299fd1 !important;
}

.daterangepicker .ranges li.active,
.daterangepicker td.active,
.daterangepicker td.active:hover {
  background-color: #299fd1 !important;
}

.form-nav.nav-tabs .nav-link.active,
.navbar-top .navbar-nav .nav .navbar>li.show>a .fa {
  color: #299fd1 !important;
}

.form-nav.nav-tabs .nav .navbar>li>a.active,
.form-nav.nav-tabs .nav-link.active,
.nav .form-nav.nav-tabs .navbar>li>a.active {
  color: #299fd1 !important;
}

.btn-orange,
.toolbar-action .btn-orange,
.btn-outline-orange,
.toolbar-action .btn-outline-orange {
  color: #299fd1 !important;
  border-color: #299fd1 !important;
}

.swal2-popup .swal2-styled.btn-orange,
.swal2-popup .swal2-styled.swal2-confirm.btn-orange,
.swal2-popup .swal2-styled.swal2-cancel.btn-orange {
  background-color: #299fd1 !important;
  border-color: #299fd1 !important;
  color: #fff !important;
}

.bar-loading-indicator .bar,
.bar-loading-indicator .bar-loaded {
  background-color: #299fd1 !important;
}

/*
 * Input-Group inner-edge radius reset.
 * The blanket `border-radius: 0.5rem !important` above forces every
 * .form-control and .input-group-text to be fully rounded, which
 * overrides Bootstrap's standard reset for input-group children.
 * Result: the search icon prepend and the input next to it both
 * render as separate pills that visually overlap.
 * Restore Bootstrap's behaviour: only the outer edges of the group
 * keep the rounded corners; inner edges go square.
 */
.input-group > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu),
.input-group > .dropdown-toggle:nth-last-child(n+3) {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.input-group > :not(:first-child):not(.dropdown-menu) {
  border-top-left-radius: 0 !important;
  border-bottom-left-radius: 0 !important;
}

/*
 * eatbase: alle Orange-Reste rausziehen.
 * app.css (Vendor) hartcodiert `.btn-primary` und `.form-check-input` direkt
 * mit orangefarbenen Hex-Werten — diese Regeln gewinnen gegenüber
 * `--bs-primary` aus :root. Wir überschreiben hier 1:1 mit der
 * eatbase-Blau-Palette. Wenn das Admin-Vendor-Paket neu published wird,
 * geht diese Datei verloren — dann diese Block erneut anhängen.
 */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #299fd1;
  --bs-btn-border-color: #299fd1;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #3aaedd;
  --bs-btn-hover-border-color: #3aaedd;
  --bs-btn-focus-shadow-rgb: 41, 159, 209;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #217ea6;
  --bs-btn-active-border-color: #1c6e92;
  --bs-btn-active-shadow: none;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #299fd1;
  --bs-btn-disabled-border-color: #299fd1;
  background-color: #299fd1;
}

.btn-outline-primary {
  --bs-btn-color: #299fd1;
  --bs-btn-border-color: #299fd1;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #299fd1;
  --bs-btn-hover-border-color: #299fd1;
  --bs-btn-focus-shadow-rgb: 41, 159, 209;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #217ea6;
  --bs-btn-active-border-color: #217ea6;
  --bs-btn-active-shadow: none;
  --bs-btn-disabled-color: #299fd1;
  --bs-btn-disabled-border-color: #299fd1;
}

/* Vendor verwendet btn-warning / btn-orange teils direkt (z. B. Dropdowns) */
.btn-warning,
.btn-orange {
  --bs-btn-color: #fff;
  --bs-btn-bg: #299fd1;
  --bs-btn-border-color: #299fd1;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #3aaedd;
  --bs-btn-hover-border-color: #3aaedd;
  --bs-btn-focus-shadow-rgb: 41, 159, 209;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #217ea6;
  --bs-btn-active-border-color: #1c6e92;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #299fd1;
  --bs-btn-disabled-border-color: #299fd1;
}
.btn-outline-warning,
.btn-outline-orange {
  --bs-btn-color: #299fd1;
  --bs-btn-border-color: #299fd1;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #299fd1;
  --bs-btn-hover-border-color: #299fd1;
  --bs-btn-focus-shadow-rgb: 41, 159, 209;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #217ea6;
  --bs-btn-active-border-color: #217ea6;
}

/* Checkboxen + Switches: Vendor setzt Hintergrund + Border + SVG-Handle hart auf Orange. */
.form-check-input:checked {
  background-color: #299fd1;
  border-color: #299fd1;
}
.form-check-input:focus {
  border-color: #58cdff;
  box-shadow: 0 0 0 .25rem rgba(41, 159, 209, .25);
}
.form-check-input:focus:not(:checked) {
  --bs-form-switch-bg: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%2358cdff'/%3E%3C/svg%3E");
}

/* Page-Link Pagination + nav-pills active — beide nutzen primary direkt */
.page-item.active .page-link,
.page-link.active {
  background-color: #299fd1;
  border-color: #299fd1;
}
.page-link {
  color: #299fd1;
}
.page-link:hover {
  color: #217ea6;
}

/* Allgemeines Click-Highlight (z. B. tab-active im Filter) */
*:focus-visible {
  outline-color: #299fd1;
}

/*
 * eatbase: orange-Reste aus weiteren Bootstrap-Komponenten ziehen.
 * Akkordeon (Standort-Untermenüs), Inputs/Selects (Focus-Ring),
 * Nav-Tabs/Pills und List-Group-Items hartcodieren orange Tokens.
 */
.accordion {
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(41, 159, 209, .25);
  --bs-accordion-btn-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23217ea6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23299fd1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
}
.accordion-button:after {
  --bs-accordion-btn-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23299fd1'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
  --bs-accordion-btn-active-icon: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23299fd1'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
}

.form-control:focus,
.form-select:focus {
  border-color: #58cdff;
  box-shadow: none, 0 0 0 .25rem rgba(41, 159, 209, .25);
}

.nav-pills {
  --bs-nav-pills-link-active-color: #fff;
  --bs-nav-pills-link-active-bg: #299fd1;
}

.list-group {
  --bs-list-group-active-color: #fff;
  --bs-list-group-active-bg: #299fd1;
  --bs-list-group-active-border-color: #299fd1;
}

.nav-tabs .nav .navbar > li > a.active,
.form-nav.nav-tabs .nav-link.active,
.nav .form-nav.nav-tabs .navbar > li > a.active {
  color: #299fd1;
}

/* === Öffnungszeiten: Karten klar als "bearbeitbar" kennzeichnen === */
/* Nur im Öffnungszeiten-Bereich (#sec-hours), damit andere Karten unberührt bleiben. */
#sec-hours .card-hover {
  cursor: pointer;
  position: relative;
  transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease;
}

/* Titel bekommt Platz, damit das Stift-Symbol nicht über dem Text liegt */
#sec-hours .card-hover .card-title {
  padding-right: 3rem;
}

/* Dauerhaft sichtbares Stift-Symbol oben rechts als Bearbeiten-Hinweis */
#sec-hours .card-hover::after {
  content: "";
  position: absolute;
  top: 12px;
  right: 12px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #eaf6fc;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23299fd1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 15px 15px;
  opacity: .85;
  transition: opacity .15s ease, background-color .15s ease, background-image .15s ease;
  pointer-events: none;
}

/* Deutlicheres Hover-Feedback: anheben, Schatten, blauer Rand */
#sec-hours .card-hover:hover,
#sec-hours .card-hover:focus {
  border-color: #299fd1 !important;
  box-shadow: 0 .35rem 1rem rgba(41, 159, 209, .20) !important;
  transform: translateY(-2px);
}

/* Beim Hovern füllt sich das Symbol blau, Stift wird weiß */
#sec-hours .card-hover:hover::after,
#sec-hours .card-hover:focus::after {
  opacity: 1;
  background-color: #299fd1;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E");
}
