/* Shared, isolated Sunshine menu behavior and accessible dialogs. */
.sunshine-weekend-hidden { display: none !important; }
.sunshine-five-days.menu-line, .sunshine-five-days.menu-line-node-single,
.sunshine-five-days .menu-date-row, .sunshine-five-days .menu-status-row, .sunshine-five-days .menu-away-row:not(.hide) {
  display: flex !important; flex-wrap: nowrap; gap: 6px;
}
.sunshine-five-days > .order-menu-node:not(.sunshine-weekend-hidden),
.sunshine-five-days > .order-menu-node-disabled:not(.sunshine-weekend-hidden),
.sunshine-five-days .menu-date-row > .date-node:not(.sunshine-weekend-hidden),
.sunshine-five-days .menu-status-row > .status-node:not(.sunshine-weekend-hidden),
.sunshine-five-days .menu-away-row > .away-controls:not(.sunshine-weekend-hidden) {
  flex: 1 1 0 !important; width: 0 !important; min-width: 0; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box;
}
.sunshine-meal-card { position: relative; border-radius: 8px; }
.order-group-container .sunshine-meal-card[data-sunshine-category="beef"] { background: #fde7e7 !important; border: 1px solid #f5baba !important; }
.order-group-container .sunshine-meal-card[data-sunshine-category="pork"] { background: #ffe0e0 !important; border: 1px solid #f2aaaa !important; }
.order-group-container .sunshine-meal-card[data-sunshine-category="poultry"] { background: #fff3e0 !important; border: 1px solid #e2c7a0 !important; }
.order-group-container .sunshine-meal-card[data-sunshine-category="fish"] { background: #e6f4ff !important; border: 1px solid #8fc7ff !important; }
.order-group-container .sunshine-meal-card[data-sunshine-category="plant"] { background: #e8fbe8 !important; border: 1px solid #6db76d !important; }
.order-group-container .sunshine-meal-card[data-sunshine-category="cold"] { background: #eef3f6 !important; border: 1px solid #b8c2cc !important; }
.order-group-container .sunshine-meal-card.sunshine-kv-ordered { background: #d9ecff !important; border-color: #88bdf2 !important; }
.sunshine-bio, .sunshine-bio-legend { color: #007b00; font-weight: 600; }
.sunshine-text-beef { color: #b30000; font-weight: 600; }
.sunshine-text-pork { color: #c2185b; font-weight: 600; }
.sunshine-text-poultry { color: #7b4200; font-weight: 600; }
.sunshine-text-fish { color: #004b7a; font-weight: 600; }
.sunshine-text-plant { color: #228b22; font-weight: 600; }
.sunshine-allergen-codes, .ibs5-kcal-inline { font-size: .8em; color: #777; font-weight: 400; }
.sunshine-meal-card .menu-icon { margin-right: 6px; font-size: 1.12em; }
.order-group-container .sunshine-meal-card .order-menu-node-name span,
.order-group-container .sunshine-meal-card .order-menu-node-name-disabled span { display: inline !important; width: auto !important; float: none !important; }
.menu-mobile.sunshine-meal-card .menu-header-mobile .mealline { display: none !important; }
.sunshine-meal-card .sunshine-original-info { display: none !important; }
.sunshine-meal-card .ibs5-info-btn {
  position: absolute; bottom: 6px; left: 6px; width: 24px; height: 24px; padding: 0;
  border: 1px solid #ccc; border-radius: 50%; background: #fffaf0; color: #666;
  display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2;
}
.menu-mobile.sunshine-meal-card .ibs5-info-btn { left: auto; right: 8px; top: 8px; bottom: auto; }
.sunshine-meal-card .ibs5-info-btn:hover { background: #fff2bf; color: #a4073f; }
.sunshine-meal-card.sunshine-order-locked .menuplan-checkbox,
.sunshine-meal-card.sunshine-order-locked .menuplan-input,
.sunshine-meal-card.sunshine-order-locked .menu-komponentenbest-open-dialog,
.sunshine-meal-card.sunshine-order-locked .menu-controls-mobile .add,
.sunshine-meal-card.sunshine-order-locked .menu-controls-mobile .subtract { opacity: .55; cursor: not-allowed; }
.sunshine-meal-card.sunshine-order-locked .ibs5-info-btn { pointer-events: auto !important; opacity: 1; }
.sunshine-meal-card.sunshine-kv .menuplan-checkbox,
.sunshine-meal-card.sunshine-kv .menuplan-input,
.sunshine-meal-card.sunshine-kv .menu-komponentenbest-open-dialog,
.sunshine-meal-card.sunshine-kv .menu-controls-mobile .quantity-more { display: none !important; }
.sunshine-kv-notice { display: block; width: calc(100% - 16px); margin: 6px 8px 34px; padding: 4px; font-size: .75rem; border: 0; border-radius: 4px; color: #6a4e21; background: #fff7df; cursor: pointer; }
.menu-mobile .sunshine-kv-notice { width: 100%; margin: 8px 0 0; }
.sunshine-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 18px 0 24px; font-size: .85rem; }
.sunshine-legend-item { border: 1px solid #ddd; border-radius: 5px; padding: 4px 7px; color: #333; background: #fff; cursor: pointer; }
.sunshine-legend-beef { background: #fde7e7; border-color: #f5baba; }
.sunshine-legend-pork { background: #ffe0e0; border-color: #f2aaaa; }
.sunshine-legend-poultry { background: #fff3e0; border-color: #e2c7a0; }
.sunshine-legend-fish { background: #e6f4ff; border-color: #8fc7ff; }
.sunshine-legend-plant { background: #e8fbe8; border-color: #6db76d; }
.sunshine-legend-cold { background: #fff7df; border-color: #b7791f; }
.menu-items-mobile .sunshine-legend-pork { background: #fff0e6; border-color: #a94f35; }
.sunshine-allergens-button { padding: 5px 10px; border: 1px solid #e8c86a; border-radius: 5px; background: #fff8e6; color: #a4073f; cursor: pointer; }
.ibs5-allergen-row { display: flex; flex-wrap: wrap; gap: 3px; padding: 3px 6px; margin-bottom: 32px; }
.ibs5-allergen-row .allergen-icon { background: rgba(255,255,255,.7); color: #555; border: 1px solid #ddd; border-radius: 4px; padding: 1px 4px; font-size: .68rem; line-height: 1.4; cursor: pointer; }
.menu-mobile .ibs5-allergen-row { margin-bottom: 8px; padding-left: 0; }
#menu-tooltip { position: fixed; z-index: 99998; pointer-events: none; max-width: min(420px, calc(100vw - 24px)); padding: 9px 12px; border: 1px solid #e8c86a; border-radius: 6px; background: #fffdf7; color: #333; box-shadow: 0 3px 12px #0002; font: 14px/1.4 Arial, sans-serif; white-space: normal; }
.sunshine-dialog { border: 1px solid #e8c86a; padding: 0; border-radius: 8px; width: 520px; max-width: calc(100vw - 24px); max-height: calc(100dvh - 36px); color: #333; background: #fff; box-shadow: 0 8px 30px #0003; font-family: Arial, sans-serif; }
.sunshine-dialog::backdrop { background: #0006; }
.sunshine-dialog-head { padding: 12px 16px; background: #fff8e6; border-bottom: 1px solid #e8c86a; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sunshine-dialog-head h2 { margin: 0; font-size: 1rem; font-weight: 600; }
.sunshine-dialog-body { padding: 18px; max-height: 65dvh; overflow-y: auto; font-size: .95rem; line-height: 1.45; }
.sunshine-dialog-body h3 { font-size: .95rem; margin-top: 16px; }
.sunshine-dialog-footer { padding: 10px 16px; background: #fff8e6; border-top: 1px solid #e8c86a; text-align: right; }
.sunshine-dialog-close { padding: 5px 14px; border: 1px solid #a4073f; border-radius: 5px; background: #a4073f; color: #fff; cursor: pointer; }
.sunshine-dialog-head .sunshine-dialog-close { background: transparent; color: #a4073f; border: 0; padding: 0 6px; font-size: 1.4rem; }
.sunshine-allergen-search { width: 100%; padding: 8px 10px; margin-bottom: 12px; border: 1px solid #e8c86a; border-radius: 5px; }
.sunshine-allergen-item { padding: 6px 0; border-bottom: 1px solid #eee; }
.sunshine-download-info { margin-top: 18px; color: #666; font-size: .85rem; }
.sunshine-download-info a { color: #a4073f; text-decoration: underline; }
.sunshine-meal-card button:focus-visible, .sunshine-legend button:focus-visible, .sunshine-dialog button:focus-visible { outline: 2px solid #a4073f; outline-offset: 2px; }

/* IBS5 2026-10-08: adapt flow to the updated vendor markup. */
.module-wrapper .order-group-container .menu-line > .sunshine-meal-card.sunshine-kv {
  display: flex !important; flex-direction: column; align-items: stretch;
  height: auto !important; min-height: 112px; padding-bottom: 38px !important;
}
.module-wrapper .menu > .header-placeholder,
.module-wrapper .menu > .header-placeholder-extended {
  display: none !important; height: 0 !important; margin: 0 !important; padding: 0 !important;
}
.order-group-container .sunshine-meal-card.sunshine-kv .nodeTextArea {
  position: static !important; inset: auto !important; width: auto !important; flex-shrink: 0;
}
.order-group-container .sunshine-meal-card.sunshine-kv .order-menu-node-name,
.order-group-container .sunshine-meal-card.sunshine-kv .order-menu-node-name-disabled {
  max-height: none !important; overflow: visible !important;
}
.order-group-container .sunshine-meal-card.sunshine-kv .sunshine-kv-notice {
  position: static !important; display: block; width: 100%; height: auto !important; min-height: 0; margin: 8px 0 0;
  padding: 6px 8px; box-sizing: border-box; line-height: 1.35; white-space: normal;
  float: none !important; flex-shrink: 0;
}
.order-group-container .order-menu-node:not(.sunshine-meal-card),
.order-group-container .order-menu-node-disabled:not(.sunshine-meal-card) {
  background: #fffdf7 !important; border: 1px solid #e7e0d3 !important;
}

/* Hide the duplicate inner mobile information link; keep the outer button. */
html body .layout .menu-items-mobile > ul > li > .menu-mobile.ibs5-mobile-card-ready .details.sunshine-original-info,
body#sunshine .layout .menu-items-mobile > ul > li > .menu-mobile.ibs5-mobile-card-ready .details.sunshine-original-info,
body#Sunshine .layout .menu-items-mobile > ul > li > .menu-mobile.ibs5-mobile-card-ready .details.sunshine-original-info {
  display: none !important;
}
/* Desktop BIO uses the same preference as the mobile display. */
.module-wrapper .menu .sunshine-desktop-bio-toggle {
  display: inline-flex; align-items: center; gap: 10px; position: relative;
  margin: 0 0 16px; padding: 10px 14px; border: 1px solid #e7e0d3;
  border-radius: 8px; background: #fffdf7; color: #252a31; font-size: 13px; cursor: pointer;
}
.sunshine-desktop-bio-toggle input { position: absolute; opacity: 0; width: 44px; height: 24px; margin: 0; }
.sunshine-desktop-bio-toggle .sunshine-switch { pointer-events: none; position: relative; width: 44px; height: 24px; border-radius: 20px; background: #e4e7ec; box-shadow: inset 0 0 0 1px #d0d5dd; }
.sunshine-desktop-bio-toggle .sunshine-switch::after { content: ''; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px #0002; }
.sunshine-desktop-bio-toggle input:checked + .sunshine-switch { background: #a4073f; box-shadow: none; }
.sunshine-desktop-bio-toggle input:checked + .sunshine-switch::after { left: 23px; }
.sunshine-desktop-bio-toggle input:focus-visible + .sunshine-switch { outline: 2px solid #a4073f; outline-offset: 3px; }
html body.sunshine-desktop-hide-bio .order-group-container .sunshine-bio-marker,
body#sunshine.sunshine-desktop-hide-bio .order-group-container .sunshine-meal-card .sunshine-bio-marker,
body#Sunshine.sunshine-desktop-hide-bio .order-group-container .sunshine-meal-card .sunshine-bio-marker { display: none !important; }

/* Mobile navigation: shared Sunshine SVGs, independent of desktop link IDs. */
html body #navigation .side-menu > li:is(#cart,#dayplan,#bulkorder,#artikelbestellungmobile,#accountManagement,#accountMovements,#orderHistory,#invoices) { background-image: none !important; }
html body #navigation .side-menu > li:is(#cart,#dayplan,#bulkorder,#artikelbestellungmobile,#accountManagement,#accountMovements,#orderHistory,#invoices) > a { display: flex !important; align-items: center; gap: 12px; background-image: none !important; }
html body #navigation .side-menu > li:is(#cart,#dayplan,#bulkorder,#artikelbestellungmobile,#accountManagement,#accountMovements,#orderHistory,#invoices) > a::before { content: "" !important; display: inline-block !important; position: static !important; width: 22px !important; height: 22px !important; flex: 0 0 22px !important; margin: 0 !important; background: currentColor !important; }
html body #navigation .side-menu > #cart > a::before { -webkit-mask: url("../img/sunshine-ui/nav-cart.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-cart.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #dayplan > a::before { -webkit-mask: url("../img/sunshine-ui/nav-mealplan.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-mealplan.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #bulkorder > a::before { -webkit-mask: url("../img/sunshine-ui/group.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/group.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #artikelbestellungmobile > a::before { -webkit-mask: url("../img/sunshine-ui/nav-cart.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-cart.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #accountManagement > a::before { -webkit-mask: url("../img/sunshine-ui/nav-account.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-account.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #accountMovements > a::before { -webkit-mask: url("../img/sunshine-ui/nav-movements.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-movements.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #orderHistory > a::before { -webkit-mask: url("../img/sunshine-ui/nav-history.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-history.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > #invoices > a::before { -webkit-mask: url("../img/sunshine-ui/nav-invoice.svg") center / contain no-repeat !important; mask: url("../img/sunshine-ui/nav-invoice.svg") center / contain no-repeat !important; }
html body #navigation .side-menu > li.logout > button::before { content: ""; display: inline-block; width: 22px; height: 22px; margin-right: 12px; vertical-align: middle; background: currentColor; -webkit-mask: url("../img/sunshine-ui/nav-logout.svg") center / contain no-repeat; mask: url("../img/sunshine-ui/nav-logout.svg") center / contain no-repeat; }

/* Logo is a plain navigation action, with no hover decoration. */
html body#sunshine .main-navigation li.sunshine-logo-item,
html body#Sunshine .main-navigation li.sunshine-logo-item,
html body #navigation .side-menu li.sunshine-logo-item,
html body#sunshine #navigation .side-menu li.sunshine-logo-item,
html body#Sunshine #navigation .side-menu li.sunshine-logo-item,
html body#sunshine #navigation .side-menu li.sunshine-logo-item:is(:hover, :focus-within),
html body#Sunshine #navigation .side-menu li.sunshine-logo-item:is(:hover, :focus-within) {
  background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important;
}
html body .sunshine-logo-item .sunshine-logo-link,
html body .sunshine-logo-item .sunshine-logo-link:hover,
html body .sunshine-logo-item .sunshine-logo-link:active {
  display: block; width: 100%; padding: 0 !important; margin: 0; border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; cursor: pointer;
  filter: none !important; transform: none !important; opacity: 1 !important;
}
html body .sunshine-logo-item .logo,
html body .sunshine-logo-item .logo:hover { filter: none !important; transform: none !important; opacity: 1 !important; box-shadow: none !important; background: transparent !important; }
html body .sunshine-logo-link:focus-visible { outline: 2px solid #a4073f; outline-offset: 4px; }
/* Active mobile navigation: supports the vendor body without a theme ID (2026-10-14). */
html body #navigation .side-menu > li.nav-active,
html body#sunshine #navigation .side-menu > li.nav-active,
html body#Sunshine #navigation .side-menu > li.nav-active {
  background: transparent !important; border: 0 !important; box-shadow: none !important;
}
html body #navigation .side-menu > li.nav-active > a,
html body #navigation .side-menu > li > a.main-menu-link-active,
html body#sunshine #navigation .side-menu > li.nav-active > a,
html body#Sunshine #navigation .side-menu > li.nav-active > a,
html body#sunshine #navigation .side-menu > li > a.main-menu-link-active,
html body#Sunshine #navigation .side-menu > li > a.main-menu-link-active {
  background: #a4073f !important; color: #fff !important;
  box-sizing: border-box; width: 100% !important; min-height: 44px; padding: 8px 12px !important;
  border: 1px solid #a4073f !important; border-radius: 8px !important;
  box-shadow: 0 4px 12px rgba(164, 7, 63, .16) !important;
}
html body .sunshine-survey-entry > a { cursor: pointer; }
html body #navigation .side-menu > .sunshine-survey-entry > a {
  display: flex !important; align-items: center; gap: 12px; background-image: none !important;
}
html body .navigation-umfrage.sunshine-survey-entry > a::before {
  content: "" !important; display: inline-block !important; position: static !important;
  width: 22px !important; height: 22px !important; flex: 0 0 22px !important;
  background: currentColor !important;
  -webkit-mask: url("../img/sunshine-ui/nav-survey.svg") center / contain no-repeat !important;
  mask: url("../img/sunshine-ui/nav-survey.svg") center / contain no-repeat !important;
}

/* Compact mobile menu, with the existing vendor show/hide transforms intact. */
html body #navigation .side-menu {
  box-sizing: border-box; width: min(340px, calc(100vw - 48px)) !important;
  height: 100dvh !important; max-height: 100dvh !important; overflow-y: auto !important;
  padding: 14px 14px 18px !important; border-radius: 0 12px 12px 0 !important;
  border: 1px solid #e8c86a !important; border-left: 0 !important;
  box-shadow: 8px 0 28px rgba(45, 35, 12, .15); font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
}
html body #navigation .side-menu > li { min-height: 0 !important; margin: 0 0 4px !important; padding: 0 !important; }
html body #navigation .side-menu .logo { display: block; width: 178px !important; height: auto !important; max-height: 90px; margin: 4px auto 12px !important; }
html body #navigation .side-menu > .name { margin: 10px 10px 16px !important; }
html body #navigation .side-menu .navigation-lsk { margin-bottom: 4px; font-size: 12px !important; line-height: 1.35; color: #59616c; }
html body #navigation .side-menu .navigation-name { font-size: 18px !important; line-height: 1.3; font-weight: 600; color: #252a31; }
html body #navigation .side-menu .navigation-mail { margin-top: 4px; font-size: 12px !important; overflow-wrap: anywhere; }
html body #navigation .side-menu > li > a {
  box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 12px !important;
  font-size: 16px !important; line-height: 1.3 !important; font-weight: 500 !important;
  border-radius: 8px !important; text-decoration: none !important;
}
html body #navigation .side-menu > li > a:focus-visible { outline: 2px solid #a4073f; outline-offset: 2px; }
html body #navigation .side-menu > .line-break,
html body #navigation .side-menu > .breakpoint { height: auto !important; margin: 8px 0 !important; }
html body #navigation .side-menu hr { margin: 8px 0 !important; border: 0; border-top: 1px solid #e3decf; }
html body #navigation .side-menu > .custom-link > a { min-height: 40px; font-size: 14px !important; color: #555c65 !important; }
html body #navigation .side-menu > li.logout { margin-top: 12px !important; }
html body #navigation .side-menu > li.logout > button.logout {
  display: flex !important; align-items: center; justify-content: center; box-sizing: border-box;
  width: 100% !important; min-height: 44px; padding: 10px 12px !important;
  border: 1px solid #dcd6c7 !important; border-radius: 8px !important;
  background: #fffdf7 !important; color: #555c65 !important; font-size: 15px !important;
}
html body #navigation .side-menu > li.logout > button.logout:hover { border-color: #a4073f !important; color: #a4073f !important; }
