/* Restaurant Template Pro 0.8.10 Sprint 1.4 – gemeinsame Panel-Grundlage */

:root {
  --rtp-panel-top: var(--rtp-header-bottom, var(--rtp-header-height, 4.5rem));
  --rtp-panel-mobile-max-height: 50dvh;
  --rtp-panel-desktop-bottom-gap: 16px;
}

/*
 * Eine gemeinsame Geometrie für Filter und Schnellauswahl.
 * Frühere placement-Regeln werden bewusst vollständig übersteuert.
 */
.menu-filter-drawer,
.menu-quick-view,
.menu-filter-drawer[data-panel-placement],
.menu-quick-view[data-panel-placement] {
  position: fixed !important;
  top: var(--rtp-panel-top) !important;
  bottom: auto !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  display: flex;
  flex-direction: column;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(
    var(--rtp-panel-mobile-max-height, 50dvh),
    calc(100dvh - var(--rtp-panel-top) - .5rem)
  ) !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--color-border) !important;
  border-top: 0 !important;
  border-radius: 0 0 var(--radius-md) var(--radius-md) !important;
  background: var(--color-surface) !important;
  box-shadow: 0 .75rem 1.8rem rgb(0 0 0 / 18%), 0 2px 0 rgb(0 0 0 / 8%) !important;
  z-index: 3000 !important;
}

.menu-filter-drawer__header,
.menu-quick-view__header {
  position: relative !important;
  top: auto !important;
  flex: 0 0 auto;
  min-height: 0;
  margin: 0 !important;
  padding: .7rem .75rem !important;
  overflow: hidden;
  border-bottom: 1px solid var(--color-border);
  background: var(--color-surface) !important;
  z-index: 2;
  isolation: isolate;
}

.menu-panel__body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  background: var(--color-surface);
  scrollbar-gutter: stable;
}

.menu-filter-drawer__body { padding: 0 .75rem .75rem; }
.menu-quick-view__list { margin: 0 !important; padding: .4rem .55rem .65rem; }

.menu-filter-drawer[data-panel-position="left"],
.menu-quick-view[data-panel-position="left"] {
  left: 1rem !important;
  right: auto !important;
}

.menu-filter-drawer[data-panel-position="right"],
.menu-quick-view[data-panel-position="right"] {
  right: 1rem !important;
  left: auto !important;
}

/*
 * Nur wenn die reale Fensterbreite mindestens dem konfigurierten Faktor der
 * Panelbreite entspricht und die Panels gegenüberliegen, darf die nahezu
 * vollständige verfügbare Höhe genutzt werden.
 */
@media (min-width: 701px) {
  body[data-dual-panel-eligible="true"] .menu-filter-drawer,
  body[data-dual-panel-eligible="true"] .menu-quick-view {
    max-height: calc(
      100dvh - var(--rtp-panel-top) - var(--rtp-panel-desktop-bottom-gap, 16px)
    ) !important;
  }
}

@media (max-width: 700px) {
  .menu-filter-drawer,
  .menu-quick-view,
  .menu-filter-drawer[data-panel-placement],
  .menu-quick-view[data-panel-placement] {
    left: .5rem !important;
    right: .5rem !important;
    width: auto !important;
    max-width: none !important;
    max-height: min(
      50dvh,
      calc(100dvh - var(--rtp-panel-top) - .5rem)
    ) !important;
  }
}


/* Sprint 1.5: kombiniertes Mobile-Panel und optionale mobile Schnellaktionen */
.menu-combined-quick { border-top: 1px solid var(--color-border); margin-top: .35rem; padding-top: .45rem; }
.menu-combined-quick__heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding:.1rem 0 .35rem; }
.menu-combined-quick__heading h4 { margin:0; font-size:1rem; }
.menu-combined-quick__list { display:grid; gap:.15rem; }
.menu-combined-quick__list .menu-quick-view__item { min-height:2.25rem; padding:.35rem .25rem; }
@media (max-width:700px) {
  body[data-mobile-combined-active="true"] [data-switch-to-quick-view] { display:none !important; }
  body[data-mobile-combined-active="true"] [data-menu-combined-quick] { display:block; }
  body[data-mobile-combined-active="true"] [data-menu-quick-view] { display:none !important; }
  body[data-sticky-actions-mobile-visible="false"] .sticky-actions { display:none !important; }
}


/* Sprint 1.6: headerlose Schnellnavigation im kombinierten Mobilpanel */
@media (max-width:700px) {
  body[data-mobile-combined-active="true"] .menu-combined-quick {
    flex: 0 0 auto;
    margin-top: .45rem;
    padding-top: .45rem;
    background: var(--color-surface);
  }
  body[data-mobile-combined-active="true"] .menu-combined-quick__heading {
    display: none !important;
  }
  body[data-mobile-combined-active="true"] .menu-combined-quick__list {
    min-height: calc(4 * 2.25rem + 3 * .15rem);
  }
}

/* Sprint 1.7: echtes zweigeteiltes Kombipanel auf schmalen Displays. */
@media (max-width:700px) {
  body[data-mobile-combined-active="true"] .menu-filter-drawer {
    height: min(
      var(--rtp-mobile-combined-height, 50dvh),
      calc(100dvh - var(--rtp-panel-top) - .5rem)
    ) !important;
    max-height: min(
      var(--rtp-mobile-combined-height, 50dvh),
      calc(100dvh - var(--rtp-panel-top) - .5rem)
    ) !important;
  }

  body[data-mobile-combined-active="true"] .menu-filter-drawer__body {
    display: grid;
    grid-template-rows:
      minmax(0, var(--rtp-mobile-combined-filter-share, 1fr))
      minmax(calc(4 * 2.25rem + 3 * .15rem + .8rem), var(--rtp-mobile-combined-quick-share, 1fr));
    flex: 1 1 auto;
    min-height: 0;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body[data-mobile-combined-active="true"] .menu-combined-filter-region {
    min-height: 0;
    padding: 0 .75rem .6rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }

  body[data-mobile-combined-active="true"] .menu-combined-quick {
    display: block !important;
    min-height: 0;
    margin: 0;
    padding: .35rem .55rem .55rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    border-top: var(--rtp-mobile-combined-divider-width, 2px) solid var(--color-border);
    background: color-mix(in srgb, var(--color-surface) 94%, var(--color-text) 6%);
    box-shadow: inset 0 .3rem .65rem rgb(0 0 0 / 5%);
  }

  body[data-mobile-combined-active="true"] .menu-combined-quick__list {
    display: grid;
    gap: .15rem;
    min-height: 0;
  }

  body[data-mobile-combined-active="true"] .menu-combined-quick__list .menu-quick-view__item {
    min-height: 2.25rem;
    padding: .35rem .25rem;
  }

  body[data-mobile-combined-active="true"] [data-switch-to-quick-view] {
    display: none !important;
  }
}

/* Sprint 1.8: optionales kombiniertes Panel auf breiten Displays. */
@media (min-width: 701px) {
  body[data-desktop-panel-mode="combined"] .menu-filter-drawer {
    width: var(--rtp-desktop-combined-width, 290px) !important;
    max-width: calc(50vw - 1rem) !important;
    max-height: calc(
      100dvh - var(--rtp-panel-top) - var(--rtp-panel-desktop-bottom-gap, 16px)
    ) !important;
  }

  body[data-desktop-panel-mode="combined"][data-desktop-combined-position="left"] .menu-filter-drawer {
    left: 0 !important;
    right: auto !important;
  }

  body[data-desktop-panel-mode="combined"][data-desktop-combined-position="right"] .menu-filter-drawer {
    right: 0 !important;
    left: auto !important;
  }

  body[data-desktop-panel-mode="combined"] .menu-filter-drawer__body {
    display: grid;
    grid-template-rows:
      minmax(0, var(--rtp-desktop-combined-filter-share, 1fr))
      minmax(calc(4 * 2.25rem + 3 * .15rem + .8rem), var(--rtp-desktop-combined-quick-share, 1fr));
    flex: 1 1 auto;
    min-height: 0;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body[data-desktop-panel-mode="combined"] .menu-combined-filter-region {
    min-height: 0;
    padding: 0 .75rem .6rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }

  body[data-desktop-panel-mode="combined"] .menu-combined-quick {
    display: block !important;
    min-height: 0;
    margin: 0;
    padding: .35rem .55rem .55rem;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    border-top: var(--rtp-desktop-combined-divider-width, 2px) solid var(--color-border);
    background: color-mix(in srgb, var(--color-surface) 94%, var(--color-text) 6%);
    box-shadow: inset 0 .3rem .65rem rgb(0 0 0 / 5%);
  }

  body[data-desktop-panel-mode="combined"] .menu-combined-quick__list {
    display: grid;
    gap: .15rem;
    min-height: 0;
  }

  body[data-desktop-panel-mode="combined"] [data-switch-to-quick-view],
  body[data-desktop-panel-mode="combined"] [data-menu-quick-view] {
    display: none !important;
  }


}


/* Sprint 2.1: robuste Headerbreite und bessere Nutzung des kombinierten Mobilpanels. */
.menu-filter-drawer__header,
.menu-quick-view__header { overflow: visible !important; }
.menu-filter-drawer__header > div,
.menu-quick-view__header > div { flex: 0 0 auto; min-width: max-content; }
@media (max-width:700px) {
  body[data-mobile-combined-active="true"] .menu-filter-drawer__body {
    grid-template-rows:
      minmax(0, var(--rtp-mobile-combined-filter-share, 1fr))
      minmax(calc(var(--mobile-combined-quick-rows, 4) * 2.25rem + .8rem), var(--rtp-mobile-combined-quick-share, 1fr));
  }
  body[data-mobile-combined-active="true"] .menu-combined-quick__list {
    align-content: start;
  }
}

/* Sprint 2.2 – ein Kombipanel für alle Displaygrößen */
body[data-unified-combined-panel="true"] .menu-filter-drawer {
  left: .5rem !important;
  right: auto !important;
  width: var(--rtp-combined-panel-width-mobile, calc(100vw - 1rem)) !important;
  max-width: calc(100vw - 1rem) !important;
  height: min(var(--rtp-combined-panel-height, 70dvh), calc(100dvh - var(--rtp-panel-top) - .5rem)) !important;
  max-height: min(var(--rtp-combined-panel-height, 70dvh), calc(100dvh - var(--rtp-panel-top) - .5rem)) !important;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer__header {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer__header h3 { margin:0; }
.menu-filter-drawer__summary { margin:.15rem 0 0; font-size:.85rem; color:var(--color-text-muted, var(--color-text)); }
.menu-panel-actions { display:flex; align-items:center; gap:.25rem; flex:0 0 auto; }
.icon-button { display:inline-grid; place-items:center; width:2.25rem; height:2.25rem; padding:0; border:1px solid var(--color-border); border-radius:999px; background:var(--color-surface); color:var(--color-text); cursor:pointer; }
.icon-button svg { width:1.15rem; height:1.15rem; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.icon-button:hover,.icon-button:focus-visible { background:var(--color-muted); }
body[data-unified-combined-panel="true"] .menu-filter-drawer__body {
  display:block !important; flex:1 1 auto; min-height:0; padding:0 !important; overflow-x:hidden !important; overflow-y:auto !important; scrollbar-gutter:stable;
}
body[data-unified-combined-panel="true"] .menu-combined-filter-region { padding:0 .75rem .75rem; overflow:visible !important; }
body[data-unified-combined-panel="true"] .menu-combined-quick { display:block !important; margin:0; padding:.7rem .55rem .8rem; overflow:visible !important; border-top:2px solid var(--color-border); background:color-mix(in srgb, var(--color-surface) 95%, var(--color-text) 5%); }
body[data-unified-combined-panel="true"] .menu-combined-quick[hidden] { display:none !important; }
.menu-combined-quick__title { margin:0 0 .55rem; }
body[data-unified-combined-panel="true"] .menu-combined-quick__list { display:grid; grid-template-columns:repeat(var(--rtp-quick-columns-mobile,1), minmax(0,1fr)); gap:.25rem; min-height:0; }
body[data-unified-combined-panel="true"] [data-menu-quick-view],
body[data-unified-combined-panel="true"] [data-switch-to-quick-view],
body[data-unified-combined-panel="true"] [data-switch-to-filters] { display:none !important; }
.menu-price-filter__slider { display:grid; gap:.45rem; }
.menu-price-filter__heading { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; }
.menu-price-filter input[type="range"] { width:100%; }
@media (min-width:701px) {
  body[data-unified-combined-panel="true"] .menu-filter-drawer { left:1rem !important; width:var(--rtp-combined-panel-width-tablet, min(34rem, calc(100vw - 2rem))) !important; max-width:calc(100vw - 2rem) !important; }
  body[data-unified-combined-panel="true"] .menu-combined-quick__list { grid-template-columns:repeat(var(--rtp-quick-columns-tablet,2), minmax(0,1fr)); }
}
@media (min-width:1100px) {
  body[data-unified-combined-panel="true"] .menu-filter-drawer { width:var(--rtp-combined-panel-width-desktop, min(38rem, calc(100vw - 2rem))) !important; }
  body[data-unified-combined-panel="true"] .menu-combined-quick__list { grid-template-columns:repeat(var(--rtp-quick-columns-desktop,2), minmax(0,1fr)); }
}

.icon-button--small { inline-size: 2rem; block-size: 2rem; padding: .35rem; flex: 0 0 auto; }
.icon-button--small svg { inline-size: 1rem; block-size: 1rem; }


/* Sprint 2.4 – Focus Mode, kompakter Panelkopf und Filtertransparenz */
.menu-filter-drawer { transition:transform 220ms ease; will-change:transform; }
.menu-filter-drawer__header { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:.5rem; }
.menu-filter-drawer__heading { min-width:0; }
.menu-filter-drawer__heading h3 { margin:0; font-size:1rem; }
.menu-filter-drawer__summary { margin:.12rem 0 0; font-size:.72rem; line-height:1.25; color:var(--color-text-muted, currentColor); white-space:normal; }
.menu-panel-actions { display:flex; flex:0 0 auto; gap:.25rem; align-items:center; }
.menu-active-filters { display:flex; flex:0 0 auto; gap:.3rem; padding:.35rem .65rem; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; border-bottom:1px solid var(--color-border); background:var(--color-surface); }
.menu-active-filters::-webkit-scrollbar { display:none; }
.menu-active-filter { display:inline-flex; flex:0 0 auto; align-items:center; gap:.3rem; min-height:1.8rem; padding:.22rem .55rem; border:1px solid var(--color-border); border-radius:999px; background:var(--color-muted); color:var(--color-text); font:inherit; font-size:.78rem; cursor:pointer; white-space:nowrap; }
.menu-focus-handle { position:absolute; left:50%; bottom:0; transform:translate(-50%,100%); display:none; align-items:center; gap:.35rem; min-height:2.35rem; padding:.35rem .8rem; border:1px solid var(--color-border); border-top:0; border-radius:0 0 999px 999px; background:var(--color-surface); color:var(--color-text); box-shadow:0 .45rem 1rem rgb(0 0 0 / 18%); font:inherit; font-size:.78rem; cursor:pointer; }
.menu-filter-drawer--collapsed {
  transform:none;
  height:0 !important;
  max-height:0 !important;
  min-height:0 !important;
  overflow:visible !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
.menu-filter-drawer--collapsed > .menu-filter-drawer__header,
.menu-filter-drawer--collapsed > .menu-active-filters-shell,
.menu-filter-drawer--collapsed > .menu-panel-empty-status,
.menu-filter-drawer--collapsed > .menu-filter-drawer__body {
  display:none !important;
}
.menu-filter-drawer--collapsed .menu-focus-handle { display:flex; }
.menu-combined-empty { display:grid; gap:.55rem; padding:1rem .65rem; text-align:center; }
.menu-combined-empty span { font-size:.86rem; }
.menu-combined-empty .button { justify-self:center; }
.menu-panel-empty-status {
  flex:0 0 auto;
  display:grid;
  gap:.15rem;
  margin:0 .65rem .45rem;
  padding:.55rem .65rem;
  border:1px solid var(--color-border);
  border-radius:.45rem;
  background:var(--color-muted);
  text-align:center;
  font-size:.82rem;
  line-height:1.25;
}
.menu-panel-empty-status[hidden] { display:none !important; }
.menu-panel-empty-status span { font-size:.78rem; }
.menu-filter-search-status {
  display:block;
  margin:.45rem 0 0;
  padding:.45rem .55rem;
  border:1px solid var(--color-border);
  border-radius:.4rem;
  background:var(--color-muted);
  font-size:.8rem;
  line-height:1.3;
}
.menu-filter-search-status[hidden] { display:none !important; }
@media (prefers-reduced-motion:reduce) { .menu-filter-drawer { transition:none; } }


/* Sprint 2.5 – robuste Kopfzeile, erreichbare Chips und ausgewählte Trefferzeile */
body[data-unified-combined-panel="true"] .menu-filter-drawer__header {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:start !important;
  gap:.35rem .5rem !important;
  min-width:0;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer__heading { min-width:0; }
body[data-unified-combined-panel="true"] .menu-filter-drawer__summary {
  display:block;
  max-width:100%;
  font-size:.68rem;
  line-height:1.15;
  white-space:normal;
}
body[data-unified-combined-panel="true"] .menu-panel-actions {
  position:relative;
  z-index:2;
  flex:0 0 auto;
  white-space:nowrap;
}
.menu-active-filters {
  width:100%;
  max-width:100%;
  min-width:0;
  padding-right:1rem;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, currentColor 35%, transparent) transparent;
  overscroll-behavior-inline:contain;
}
.menu-active-filters::-webkit-scrollbar { display:block; height:.3rem; }
.menu-active-filters::-webkit-scrollbar-thumb { background:color-mix(in srgb, currentColor 35%, transparent); border-radius:999px; }
.menu-active-filter--exclude {
  border-style:dashed;
  background:color-mix(in srgb, var(--color-surface) 82%, var(--color-text) 18%);
}
.menu-price-filter__heading { gap:.35rem !important; }
.menu-price-filter__heading output { margin:0; padding:0; white-space:nowrap; }
.menu-quick-view__item--selected,
.menu-quick-view__item--selected:hover,
.menu-quick-view__item--selected:focus-visible {
  background:var(--color-muted);
  box-shadow:inset .22rem 0 0 var(--color-primary, var(--color-accent, currentColor));
}
@media (max-width:700px) {
  body[data-unified-combined-panel="true"] .menu-filter-drawer__header { padding-right:.35rem; }
  body[data-unified-combined-panel="true"] .menu-filter-drawer__heading h3 { font-size:.94rem; }
  body[data-unified-combined-panel="true"] .menu-panel-actions .icon-button { width:2rem; height:2rem; }
}

/* Sprint 2.6 – klare Rückkehrziele, Chip-Hinweise und neutraler Löschzustand */
.icon-button:disabled,
.icon-button[aria-disabled="true"] {
  opacity:.38;
  cursor:default;
  pointer-events:none;
}
.menu-active-filters-shell {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:stretch;
  border-bottom:1px solid var(--color-border);
  background:var(--color-surface);
}
.menu-active-filters-shell[hidden] { display:none !important; }
.menu-active-filters-shell .menu-active-filters {
  border-bottom:0;
  padding-inline:.45rem;
}
.menu-active-filters__hint {
  position:relative;
  z-index:2;
  width:1.65rem;
  padding:0;
  border:0;
  background:linear-gradient(90deg,var(--color-surface) 70%,transparent);
  color:var(--color-text);
  font-size:1.35rem;
  cursor:pointer;
}
.menu-active-filters__hint--right { background:linear-gradient(270deg,var(--color-surface) 70%,transparent); }
.menu-active-filters__hint[hidden] { display:none !important; }
.menu-focus-handles {
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:auto;
  transform:none;
  display:none;
  align-items:stretch;
  gap:0;
  width:100%;
  min-height:2.65rem;
  border:1px solid var(--color-border);
  border-top:0;
  background:var(--color-surface);
  box-shadow:0 .45rem 1rem rgb(0 0 0 / 18%);
  white-space:nowrap;
}
.menu-filter-drawer--collapsed .menu-focus-handles { display:flex; }
.menu-focus-summary {
  display:flex;
  flex:1 1 auto;
  align-items:center;
  gap:.4rem;
  min-width:0;
  padding:.4rem .55rem;
  overflow-x:auto;
}
.menu-focus-summary .menu-summary-badge {
  flex:0 0 auto;
}
.menu-focus-reset,
.menu-focus-close {
  flex:0 0 2.75rem;
  border-radius:0;
}
.menu-focus-reset {
  border:0;
  border-left:1px solid var(--color-border);
  background:var(--color-surface);
}
.menu-focus-close {
  display:grid;
  place-items:center;
  padding:.45rem;
  border:0;
  border-left:1px solid var(--color-border);
  background:var(--color-surface);
  color:var(--color-text);
  cursor:pointer;
}
.menu-focus-close svg { width:1.15rem; height:1.15rem; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; }
.menu-focus-reset:hover,
.menu-focus-reset:focus-visible,
.menu-focus-close:hover,
.menu-focus-close:focus-visible { background:var(--color-muted); }
.menu-filter-fab { display:none !important; }


/* Sprint 2.7 – Bereichsnavigation, sofortige Chip-Hinweise und stabiler Focus-Kontext */
.menu-panel-sections {
  display:grid;
  grid-template-columns:1fr 1fr;
  flex:0 0 auto;
  gap:.25rem;
  padding:.35rem .5rem;
  border-bottom:1px solid var(--color-border);
  background:var(--color-surface);
  z-index:2;
}
.menu-panel-section-link {
  min-width:0;
  padding:.42rem .55rem;
  border:1px solid transparent;
  border-radius:999px;
  background:transparent;
  color:var(--color-text);
  font:inherit;
  font-size:.8rem;
  font-weight:600;
  cursor:pointer;
}
.menu-panel-section-link:hover,.menu-panel-section-link:focus-visible { background:var(--color-muted); }
.menu-panel-section-link.is-active {
  border-color:var(--color-border);
  background:var(--color-muted);
  box-shadow:inset 0 -2px 0 var(--color-primary,var(--color-accent,currentColor));
}
.menu-filter-drawer--collapsed .menu-panel-sections { display:none; }
.menu-active-filters__hint:not([hidden]) { display:block !important; }

/* Sprint 2.8 – vereinfachte Erstbenutzerführung */
.menu-filter-drawer__summary {
  display:flex !important;
  flex-wrap:wrap;
  gap:.3rem;
  margin-top:.3rem !important;
}
.menu-summary-badge {
  display:inline-flex;
  align-items:center;
  min-height:1.7rem;
  padding:.18rem .52rem;
  border:1px solid var(--color-border);
  border-radius:999px;
  background:var(--color-muted);
  color:var(--color-text);
  font:inherit;
  font-size:.72rem;
  font-weight:650;
  line-height:1.1;
  cursor:pointer;
  white-space:nowrap;
}
.menu-summary-badge:hover,.menu-summary-badge:focus-visible { box-shadow:inset 0 -2px 0 var(--color-primary,var(--color-accent,currentColor)); }
.menu-panel-sections { display:none !important; }
.menu-active-filters-shell {
  display:block;
  padding:.35rem .5rem;
}
.menu-active-filters-shell .menu-active-filters {
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:.3rem;
  width:100%;
  max-height:none;
  padding:0;
  overflow:visible;
  border:0;
}
.menu-active-filters-shell .menu-active-filter[hidden] { display:none !important; }
.menu-active-filters__more {
  margin-top:.35rem;
  padding:.25rem .55rem;
  border:1px solid var(--color-border);
  border-radius:999px;
  background:transparent;
  color:var(--color-text);
  font:inherit;
  font-size:.74rem;
  font-weight:650;
  cursor:pointer;
}
.menu-active-filters__more[hidden] { display:none !important; }
.menu-active-filters__hint { display:none !important; }
@media(max-width:700px){
  .menu-summary-badge { font-size:.68rem; padding-inline:.45rem; }
}

/* Sprint 2.9 – deterministisches Focus-Kontextfenster und hilfreiche Tooltips */
.menu-item--focus-context-hidden,
.menu-category--focus-context-hidden { display:none !important; }
body[data-menu-focus-context="true"] .menu-category:not(.menu-category--focus-context-hidden) > h3 {
  margin-top:.35rem;
}
.menu-summary-badge[title] { position:relative; }
@media (hover:hover) and (pointer:fine) {
  .menu-summary-badge:hover { transform:translateY(-1px); }
}

/*
 * Sprint 2.9 – eingeklappt bedeutet wirklich: nur Anfasserzeile.
 * Die spezifischeren Regeln des vereinheitlichten Kombipanels dürfen den
 * Panelkörper in diesem Zustand nicht erneut einblenden.
 */
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed {
  height:0 !important;
  max-height:0 !important;
  min-height:0 !important;
  overflow:visible !important;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed > .menu-filter-drawer__header,
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed > .menu-active-filters-shell,
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed > .menu-filter-drawer__body,
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed .menu-combined-filter-region,
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed .menu-combined-quick {
  display:none !important;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed > .menu-focus-handles {
  display:flex !important;
}

/*
 * Sprint 2.9 – identische Statuszeile im geöffneten und eingeklappten Panel.
 * Beide Zustände verwenden dieselbe Struktur und dieselben Maße. Lediglich die
 * Positionierung der eingeklappten Zeile unterscheidet sich.
 */
.menu-panel-statusline {
  display:flex !important;
  align-items:stretch !important;
  gap:0 !important;
  width:100%;
  min-width:0;
  min-height:2.65rem;
  margin:0;
  padding:0 !important;
  border:0;
  border-bottom:1px solid var(--color-border);
  background:var(--color-surface);
  color:var(--color-text);
  box-shadow:none;
}
.menu-panel-statusline__summary {
  display:flex;
  flex:1 1 auto;
  align-items:center;
  gap:.4rem;
  min-width:0;
  padding:.4rem .55rem;
  overflow-x:auto;
  scrollbar-width:thin;
}
.menu-panel-statusline__summary .menu-summary-badge {
  flex:0 0 auto;
}
.menu-panel-statusline__action.icon-button {
  flex:0 0 2.75rem;
  width:2.75rem;
  height:auto;
  min-height:2.65rem;
  margin:0;
  padding:.45rem;
  border:0;
  border-left:1px solid var(--color-border);
  border-radius:0;
  background:var(--color-surface);
  color:var(--color-text);
}
.menu-panel-statusline__action.icon-button:hover,
.menu-panel-statusline__action.icon-button:focus-visible {
  background:var(--color-muted);
}
.menu-filter-drawer__header.menu-panel-statusline {
  position:relative;
  inset:auto;
  z-index:3;
  flex:0 0 auto;
  isolation:isolate;
}
.menu-focus-handles.menu-panel-statusline {
  position:absolute;
  top:0;
  right:0;
  bottom:auto;
  left:0;
  transform:none;
  display:none !important;
  border:1px solid var(--color-border);
  border-top:0;
  box-shadow:0 .45rem 1rem rgb(0 0 0 / 18%);
  white-space:nowrap;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer.menu-filter-drawer--collapsed > .menu-focus-handles.menu-panel-statusline {
  display:flex !important;
}

/*
 * Sprint 2.9 – Reihenfolge der identischen Statuszeilen absichern.
 * Ältere Regeln setzen den geöffneten Panelkopf als zweispaltiges Grid. Diese
 * Abschlussregel muss deshalb mindestens ebenso spezifisch sein: Beide
 * Statuszeilen bleiben einzeilig und zeigen von links nach rechts
 * Filter, Gerichte, Mülltonne und Schließen.
 */
body[data-unified-combined-panel="true"] .menu-filter-drawer__header.menu-panel-statusline,
body[data-unified-combined-panel="true"] .menu-focus-handles.menu-panel-statusline {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:0 !important;
}
body[data-unified-combined-panel="true"] .menu-panel-statusline > .menu-panel-statusline__summary {
  order:1;
  flex:1 1 auto !important;
  min-width:0 !important;
  justify-content:flex-start !important;
  flex-wrap:nowrap !important;
}
body[data-unified-combined-panel="true"] .menu-panel-statusline > [data-reset-menu-all] {
  order:2;
}
body[data-unified-combined-panel="true"] .menu-panel-statusline > [data-close-menu-filters],
body[data-unified-combined-panel="true"] .menu-panel-statusline > [data-close-collapsed-menu-panel] {
  order:3;
}

/* A8.5: eigenständige, kontrastreiche Oberfläche des Kombipanels. */
body[data-unified-combined-panel="true"] .menu-filter-drawer{
  --rtp-panel-contrast-bg:color-mix(in srgb,var(--color-surface) 82%,var(--color-primary) 18%);
  background:var(--rtp-panel-contrast-bg)!important;
  border:2px solid var(--color-primary)!important;
  box-shadow:0 1rem 2.5rem rgb(0 0 0 / 38%)!important;
}
body[data-unified-combined-panel="true"] .menu-filter-drawer__header,
body[data-unified-combined-panel="true"] .menu-filter-drawer__body,
body[data-unified-combined-panel="true"] .menu-panel__body{background:var(--rtp-panel-contrast-bg)!important}
