/* mt.css - Mittagstisch-Projektschicht auf dem Strauchs-Designsystem (sd-). Icons: eigene Linien-Symbole (data:-Masken). */
:root {
  --mt-ico-bell: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%2016v-5a6%206%200%200112%200v5l1.5%202h-15z'/%3E%3Cpath%20d='M10%2021h4'/%3E%3C/svg%3E");
  --mt-ico-refresh: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%2011a8%208%200%2010-2.3%206.1'/%3E%3Cpath%20d='M20%205v6h-6'/%3E%3C/svg%3E");
  --mt-ico-trash: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%207h16M9%207V4h6v3M6%207l1%2013h10l1-13M10%2011v6M14%2011v6'/%3E%3C/svg%3E");
  --mt-ico-edit: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%2020l1.2-4.2L16.5%204.5l3%203L8.2%2018.8z'/%3E%3C/svg%3E");
  --mt-ico-eye: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012z'/%3E%3Cpath%20d='M12%209.5a2.5%202.5%200%20100%205%202.5%202.5%200%20000-5z'/%3E%3C/svg%3E");
  --mt-ico-download: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%204v11M7%2011l5%205%205-5M5%2020h14'/%3E%3C/svg%3E");
  --mt-ico-mail: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%206h18v12H3z'/%3E%3Cpath%20d='M3%207l9%207%209-7'/%3E%3C/svg%3E");
  --mt-ico-phone: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M7%203h3l1.5%204.5L9.5%209a11%2011%200%20005.5%205.5l1.5-2L21%2014v3a2%202%200%2001-2%202A16%2016%200%20013%205a2%202%200%20012-2z'/%3E%3C/svg%3E");
  --mt-ico-cart: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%208h14l-1%2012H6z'/%3E%3Cpath%20d='M9%208V6a3%203%200%20016%200v2'/%3E%3C/svg%3E");
  --mt-ico-volume: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%209v6h4l5%204V5L8%209z'/%3E%3Cpath%20d='M16.5%209a4%204%200%20010%206'/%3E%3Cpath%20d='M19%206.5a8%208%200%20010%2011'/%3E%3C/svg%3E");
  --mt-ico-fork: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M7%203v8M5%203v5a2%202%200%20004%200V3M7%2011v10M17%203c-2.5%202-2.5%206-2.5%208H17v10'/%3E%3C/svg%3E");
  --mt-ico-more: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h.01M12%2012h.01M19%2012h.01'/%3E%3C/svg%3E");
  --mt-ico-chart: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%2020V11M10%2020V4M16%2020v-7M22%2020H2'/%3E%3C/svg%3E");
  --mt-ico-link: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M10%2014a4%204%200%20005.7%200l3-3a4%204%200%2000-5.7-5.7l-1%201'/%3E%3Cpath%20d='M14%2010a4%204%200%2000-5.7%200l-3%203a4%204%200%20005.7%205.7l1-1'/%3E%3C/svg%3E");
  --mt-ico-users: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M9%2011a3.5%203.5%200%20100-7%203.5%203.5%200%20000%207z'/%3E%3Cpath%20d='M2.5%2020a6.5%206.5%200%200113%200'/%3E%3Cpath%20d='M17%204.5a3.5%203.5%200%20010%206.5M21.5%2020a6.5%206.5%200%2000-4-6'/%3E%3C/svg%3E");
  --mt-ico-logout: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M14%204h5v16h-5M10%208l-4%204%204%204M6%2012h10'/%3E%3C/svg%3E");
  --mt-ico-back: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M19%2012H5M11%206l-6%206%206%206'/%3E%3C/svg%3E");
  --mt-ico-next: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14M13%206l6%206-6%206'/%3E%3C/svg%3E");
  --mt-ico-minus: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14'/%3E%3C/svg%3E");
  --mt-ico-wifi-off: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%203l18%2018'/%3E%3Cpath%20d='M5%209.5a11%2011%200%20015-2.6M19%209.5a11%2011%200%2000-3-1.9M8.5%2013a6%206%200%20014-1.8M15.5%2013a6%206%200%2000-1-.8'/%3E%3Cpath%20d='M12%2018h.01'/%3E%3C/svg%3E");
  --mt-ico-tag: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%2012V4h8l10%2010-8%208z'/%3E%3Cpath%20d='M7.5%208.5h.01'/%3E%3C/svg%3E");
  --mt-ico-save: url("data:image/svg+xml,%3Csvg%20xmlns='http%3A//www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2.6'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%204h12l3%203v13H5z'/%3E%3Cpath%20d='M8%204v5h8V4'/%3E%3Cpath%20d='M8%2020v-6h8v6'/%3E%3C/svg%3E");
}
.sd-icon--bell { --sd-ico: var(--mt-ico-bell); }
.sd-icon--refresh { --sd-ico: var(--mt-ico-refresh); }
.sd-icon--trash { --sd-ico: var(--mt-ico-trash); }
.sd-icon--edit { --sd-ico: var(--mt-ico-edit); }
.sd-icon--eye { --sd-ico: var(--mt-ico-eye); }
.sd-icon--download { --sd-ico: var(--mt-ico-download); }
.sd-icon--mail { --sd-ico: var(--mt-ico-mail); }
.sd-icon--phone { --sd-ico: var(--mt-ico-phone); }
.sd-icon--cart { --sd-ico: var(--mt-ico-cart); }
.sd-icon--volume { --sd-ico: var(--mt-ico-volume); }
.sd-icon--fork { --sd-ico: var(--mt-ico-fork); }
.sd-icon--more { --sd-ico: var(--mt-ico-more); }
.sd-icon--chart { --sd-ico: var(--mt-ico-chart); }
.sd-icon--link { --sd-ico: var(--mt-ico-link); }
.sd-icon--users { --sd-ico: var(--mt-ico-users); }
.sd-icon--logout { --sd-ico: var(--mt-ico-logout); }
.sd-icon--back { --sd-ico: var(--mt-ico-back); }
.sd-icon--next { --sd-ico: var(--mt-ico-next); }
.sd-icon--minus { --sd-ico: var(--mt-ico-minus); }
.sd-icon--wifi-off { --sd-ico: var(--mt-ico-wifi-off); }
.sd-icon--tag { --sd-ico: var(--mt-ico-tag); }
.sd-icon--save { --sd-ico: var(--mt-ico-save); }

/* =====================================================================
   Mittagstisch-Schicht auf dem Strauch's Designsystem (sd-).
   Nur Projekt-Spezifisches. Farben/Abstaende/Schrift kommen aus tokens.css;
   keine hartkodierten Hex-Werte, kein Inline-CSS in den Templates (CSP).
   Das Markengruen (--sd-signature) ist nur Signatur/Flaeche, nie Text.
   ===================================================================== */

/* ---------- Seitenrahmen ---------- */
body.mt-gast { background-color: var(--sd-bg); }   /* nicht "background:" - sonst verschwindet das Papierraster von sd 1.1 */
.mt-brand-mark { block-size: 2.5rem; inline-size: auto; }
.mt-main-narrow { max-inline-size: 46rem; margin-inline: auto; }
.mt-main-wide { max-inline-size: 60rem; margin-inline: auto; }
.mt-footer { margin-block-start: var(--sd-space-6); }
.mt-footer p { margin-block-end: var(--sd-space-1); max-inline-size: none; }
.mt-back { display: inline-flex; align-items: center; gap: var(--sd-space-2); min-block-size: var(--sd-target); margin-block-end: var(--sd-space-3); }
.mt-lead { font-size: var(--sd-fs-lead); max-inline-size: var(--sd-measure); }
.mt-icon-lead { margin-inline-end: .35em; }
.mt-nowrap { white-space: nowrap; }
.mt-center { text-align: center; }
.mt-mt-5 { margin-block-start: var(--sd-space-5); }
.mt-mb-5 { margin-block-end: var(--sd-space-5); }
.mt-mb-3 { margin-block-end: var(--sd-space-3); }
.mt-muted { color: var(--sd-ink-muted); }
.mt-small { font-size: var(--sd-fs-meta); }
.mt-inline-form { display: inline; margin: 0; }
.mt-break { overflow-wrap: anywhere; }

/* ---------- Sticky Aktionsleiste (Gast): eine Hauptaktion, im Daumenbereich ---------- */
.mt-cta-bar {
  position: sticky; inset-block-end: 0; z-index: var(--sd-z-sticky);
  margin-block-start: var(--sd-space-5);
  padding: var(--sd-space-3) var(--sd-space-4) calc(var(--sd-space-3) + env(safe-area-inset-bottom));
  background: var(--sd-surface); border: 1px solid var(--sd-line); border-block-start: 4px solid var(--sd-signature);
  border-radius: var(--sd-radius-lg) var(--sd-radius-lg) 0 0; box-shadow: 0 -4px 16px hsl(var(--sd-shadow-color) / .10);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sd-space-3);
}
.mt-cta-bar .mt-cta-bar__info { margin: 0; font-size: var(--sd-fs-meta); color: var(--sd-ink-muted); max-inline-size: none; }
.mt-cta-bar .mt-cta-bar__info strong { color: var(--sd-ink); font-size: var(--sd-fs-lead); }
.mt-cta-bar .sd-btn { flex: 1 1 14rem; }

/* ---------- Wochenkarte (Gast) ---------- */
.mt-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sd-space-3); margin-block-end: var(--sd-space-4); }
.mt-head h1 { margin: 0; display: flex; align-items: center; gap: var(--sd-space-3); }
.mt-head h1 img { block-size: 2.75rem; inline-size: auto; }
.mt-weeknav { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sd-space-3); }
.mt-weeknav .mt-weeklabel { font-weight: 700; min-inline-size: 7rem; text-align: center; }
.mt-weeknav [aria-current="page"] { background: var(--sd-accent); color: var(--sd-on-accent) !important; border-color: var(--sd-accent); }
.mt-note { margin-block-end: var(--sd-space-4); }
.mt-note details { margin-block-start: var(--sd-space-2); }
.mt-note summary { cursor: pointer; font-weight: 700; min-block-size: var(--sd-target); display: flex; align-items: center; }
.mt-note p { margin-block-end: var(--sd-space-2); }
.mt-menu__head { text-align: center; padding-block-end: var(--sd-space-2); }
.mt-menu__head h2 { margin-block-end: var(--sd-space-1); }
.mt-menu__head .mt-sub { color: var(--sd-ink-muted); margin: 0 auto var(--sd-space-3); }
.mt-menu__links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--sd-space-3); }
.mt-days { display: grid; gap: var(--sd-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.mt-day { background: var(--sd-bg); border: 1px solid var(--sd-line); border-radius: var(--sd-radius); padding: var(--sd-space-4); }
.mt-day h3 { margin: 0 0 var(--sd-space-3); padding-block-end: var(--sd-space-2); border-block-end: 4px solid var(--sd-signature); }
.mt-dish { padding-block: var(--sd-space-3); border-block-end: 1px solid var(--sd-line); }
.mt-dish:last-child { border-block-end: 0; padding-block-end: 0; }
.mt-dish:first-of-type { padding-block-start: 0; }
.mt-dish__row { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--sd-space-2); flex-wrap: wrap; }
.mt-dish__name { font-weight: 700; font-size: var(--sd-fs-lead); }
.mt-dish__desc { margin: var(--sd-space-1) 0 0; color: var(--sd-ink-muted); max-inline-size: none; }
.mt-price { font-weight: 700; color: var(--sd-accent); font-size: var(--sd-fs-lead); font-variant-numeric: tabular-nums; margin-block-start: var(--sd-space-1); }
.mt-closed { display: inline-block; padding: var(--sd-space-2) var(--sd-space-3); border: 2px dashed var(--sd-border-strong); border-radius: var(--sd-radius-sm); font-weight: 700; color: var(--sd-ink-muted); }
.veg-badge { display: inline-flex; align-items: center; gap: .3em; color: var(--sd-success); font-size: var(--sd-fs-meta); font-weight: 700; white-space: nowrap; flex: none; }
.veg-icon { inline-size: 1.1rem; block-size: 1.1rem; display: inline-block; }
.mt-day-card { content-visibility: auto; contain-intrinsic-size: auto 30rem; }

/* ---------- Bestellformular ---------- */
.mt-form .sd-card { margin-block-end: var(--sd-space-4); }
.mt-form h2 { font-size: var(--sd-fs-h3); }
.mt-grid-2 { display: grid; gap: var(--sd-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.mt-fehler { margin-block-end: var(--sd-space-4); }
.mt-fehler ul { margin: var(--sd-space-2) 0 0; padding-inline-start: 1.25rem; }
.mt-fehler li { margin-block-end: var(--sd-space-1); }
.mt-fehler a { color: var(--sd-ink); font-weight: 700; display: inline-block; padding-block: .2em; }
.mt-fehler:focus { outline: 3px solid var(--sd-focus); outline-offset: 3px; }
.mt-dish-row { display: grid; grid-template-columns: 1fr auto; gap: var(--sd-space-2) var(--sd-space-4); align-items: center; padding-block: var(--sd-space-3); border-block-end: 1px solid var(--sd-line); }
.mt-dish-row:last-child { border-block-end: 0; }
.mt-dish-row .mt-dish__name { font-size: var(--sd-fs-base); }
.mt-dish-row.is-sold-out .mt-dish__name { color: var(--sd-ink-muted); text-decoration: line-through; text-decoration-thickness: 2px; }
.mt-dish-row .mt-wide { grid-column: 1 / -1; }
.mt-stock { display: flex; align-items: center; gap: var(--sd-space-2); color: var(--sd-warning); font-weight: 700; font-size: var(--sd-fs-meta); margin-block-start: var(--sd-space-1); }
.mt-stock::before { content: ""; inline-size: 1.1em; block-size: 1.1em; background: currentColor; -webkit-mask: var(--sd-ico-clock) center / contain no-repeat; mask: var(--sd-ico-clock) center / contain no-repeat; }
.mt-soldout { margin-block-start: var(--sd-space-2); }
.mt-soldout p { margin: var(--sd-space-2) 0 0; max-inline-size: none; }
.mt-stepper { display: inline-flex; align-items: center; gap: var(--sd-space-2); }
.mt-stepper .sd-btn { min-inline-size: 3rem; min-block-size: 3rem; padding-inline: 0; }
.mt-step::before { content: ""; inline-size: 1.25rem; block-size: 1.25rem; background: currentColor; -webkit-mask: var(--mt-ico-minus) center / contain no-repeat; mask: var(--mt-ico-minus) center / contain no-repeat; }
.mt-step[data-d="1"]::before { -webkit-mask-image: var(--sd-ico-plus); mask-image: var(--sd-ico-plus); }
.mt-stepper input[type=number] {
  inline-size: 4.25rem; min-block-size: 3rem; text-align: center; padding: var(--sd-space-2);
  font: 700 1.125rem/1.2 var(--sd-font); color: var(--sd-ink); background: var(--sd-surface);
  border: var(--sd-border-w) solid var(--sd-border-strong); border-radius: var(--sd-radius); -moz-appearance: textfield; appearance: textfield;
}
.mt-stepper input[type=number]::-webkit-outer-spin-button, .mt-stepper input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.mt-stepper input[type=number]:focus-visible { outline: 3px solid var(--sd-focus); outline-offset: 2px; }
.mt-stepper input[type=number]:disabled { background: var(--sd-sunken); color: var(--sd-ink-muted); border-style: dashed; }
.mt-stepper input[aria-invalid="true"] { border-color: var(--sd-danger); border-inline-start-width: 8px; }
.mt-bem summary { cursor: pointer; display: inline-flex; align-items: center; min-block-size: var(--sd-target); color: var(--sd-accent); font-weight: 700; }
.mt-bem[open] summary { margin-block-end: var(--sd-space-2); }
.mt-bem label { display: block; font-size: var(--sd-fs-meta); color: var(--sd-ink-muted); margin-block-end: var(--sd-space-1); }
.mt-bem-locked { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); margin: 0; max-inline-size: none; }
.mt-check { display: flex; align-items: center; gap: var(--sd-space-3); min-block-size: var(--sd-target); cursor: pointer; font-size: var(--sd-fs-meta); }
.mt-check input { inline-size: 1.5rem; block-size: 1.5rem; flex: none; margin: 0; accent-color: var(--sd-accent); cursor: pointer; }
.mt-salat { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sd-space-3); background: var(--sd-accent-soft); border: 2px dashed var(--sd-border-strong); border-radius: var(--sd-radius); padding: var(--sd-space-3) var(--sd-space-4); margin-block-start: var(--sd-space-3); }
.mt-salat[hidden] { display: none !important; }
.mt-salat__label { font-weight: 700; display: block; }
.mt-salat__hint { display: block; color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); }
.mt-reg { margin-block-start: var(--sd-space-4); border: 2px solid var(--sd-border-strong); border-radius: var(--sd-radius); background: var(--sd-surface); }
.mt-reg > summary { cursor: pointer; list-style: none; padding: var(--sd-space-3) var(--sd-space-4); font-weight: 700; color: var(--sd-accent); min-block-size: var(--sd-target); display: flex; align-items: center; gap: var(--sd-space-2); }
.mt-reg > summary::-webkit-details-marker { display: none; }
.mt-reg > summary::before { content: ""; inline-size: 1rem; block-size: 1rem; background: currentColor; -webkit-mask: var(--mt-ico-next) center / contain no-repeat; mask: var(--mt-ico-next) center / contain no-repeat; transition: transform var(--sd-dur-fast) var(--sd-ease); }
.mt-reg[open] > summary::before { transform: rotate(90deg); }
.mt-reg__body { padding: 0 var(--sd-space-4) var(--sd-space-4); content-visibility: auto; contain-intrinsic-size: auto 40rem; }
.mt-reg__hint { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); margin: var(--sd-space-2) 0 var(--sd-space-3); max-inline-size: none; }
.mt-reg__cat { font-weight: 700; margin: var(--sd-space-4) 0 var(--sd-space-1); text-transform: uppercase; font-size: var(--sd-fs-meta); letter-spacing: .03em; color: var(--sd-ink-muted); }
.mt-allergene { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); }
.mt-legende { margin-block-start: var(--sd-space-4); border: 1px solid var(--sd-line); border-radius: var(--sd-radius); background: var(--sd-surface); }
.mt-legende summary { cursor: pointer; padding: var(--sd-space-3) var(--sd-space-4); font-weight: 700; min-block-size: var(--sd-target); display: flex; align-items: center; }
.mt-legende__body { padding: 0 var(--sd-space-4) var(--sd-space-4); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--sd-space-1) var(--sd-space-5); font-size: var(--sd-fs-meta); color: var(--sd-ink-muted); }

/* ---------- Bestaetigung (Bon) ---------- */
.mt-bon { margin-block: var(--sd-space-4); text-align: center; }
.mt-bon__label { color: var(--sd-ink-muted); margin: 0 auto var(--sd-space-2); font-size: var(--sd-fs-meta); }
.mt-bon__nr { font-size: 2rem; font-weight: 700; letter-spacing: .04em; font-variant-numeric: tabular-nums; user-select: all; overflow-wrap: anywhere; margin: 0; }
.mt-bon-items { list-style: none; margin: 0; padding: 0; text-align: start; }
.mt-bon-items li { padding-block: var(--sd-space-1); border-block-end: 1px dotted var(--sd-line); }
.mt-bon-items li:last-child { border-block-end: 0; }
.mt-sum { display: flex; justify-content: space-between; font-weight: 700; margin-block-start: var(--sd-space-3); }
.mt-ok-icon { display: block; margin: 0 auto var(--sd-space-3); inline-size: 3.5rem; block-size: 3.5rem; color: var(--sd-success); }
.mt-actions { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); margin-block-start: var(--sd-space-4); }
.mt-actions .sd-btn { flex: 1 1 14rem; }
.mt-actions-end { justify-content: flex-end; }
.mt-actions-end .sd-btn { flex: 0 1 auto; }

/* ---------- Verwaltung: Rahmen ---------- */
.mt-verw .sd-header__inner { flex-wrap: wrap; row-gap: var(--sd-space-1); }
.mt-verw .sd-nav { flex: 1 1 auto; min-inline-size: 0; }
.mt-verw .sd-nav__list { flex-wrap: wrap; }
.mt-user { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); }
.mt-user strong { color: var(--sd-ink); }
button.sd-nav__link { background: transparent; border: 0; font: inherit; cursor: pointer; inline-size: 100%; }
.mt-mehr-list { list-style: none; margin: 0; padding: 0; }
.mt-mehr-list .sd-btn { inline-size: 100%; justify-content: flex-start; margin-block-end: var(--sd-space-2); }
.mt-mehr-list .sd-btn[aria-current="page"] { background: var(--sd-accent-soft); }
.mt-messages { display: grid; gap: var(--sd-space-3); margin-block-end: var(--sd-space-4); }
.mt-messages .sd-alert__body { margin: 0; }

/* Verwaltung: Kartenkoepfe, Statistik, Filter */
.mt-card-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sd-space-3); margin-block-end: var(--sd-space-3); }
.mt-card-head h2, .mt-card-head h3 { margin: 0; }
.mt-section { margin-block-end: var(--sd-space-5); }
.mt-stats { display: grid; gap: var(--sd-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); margin-block-end: var(--sd-space-5); }
.mt-stat { background: var(--sd-surface); border: 1px solid var(--sd-line); border-radius: var(--sd-radius); padding: var(--sd-space-3) var(--sd-space-4); }
.mt-stat__label { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); display: block; }
.mt-stat__value { font-size: var(--sd-fs-h2); font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1; display: block; }
.mt-stat__value.is-bad { color: var(--sd-danger); }
.mt-stat__value.is-bad::after { content: " Fehler"; font-size: var(--sd-fs-meta); font-weight: 700; }
.mt-filters { margin-block-end: var(--sd-space-4); }
.mt-filters form { display: grid; gap: var(--sd-space-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); align-items: end; }
.mt-filters .sd-field { margin: 0; }
.mt-filters .mt-filter-actions { display: flex; gap: var(--sd-space-2); flex-wrap: wrap; }
.mt-inline-form-row { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); align-items: end; }
.mt-inline-form-row .sd-field { margin: 0; flex: 1 1 12rem; }
.mt-table td.nr, .mt-table .nr { font-weight: 700; color: var(--sd-accent); white-space: nowrap; }
.mt-table .pos { font-size: var(--sd-fs-meta); }
.mt-table small, .mt-small-text { font-size: var(--sd-fs-meta); color: var(--sd-ink-muted); }
.mt-table .empty-cell { text-align: center; padding: var(--sd-space-6); color: var(--sd-ink-muted); }
.mt-table .rang { color: var(--sd-ink-muted); inline-size: 3rem; }
.mt-table .menge { font-weight: 700; color: var(--sd-accent); }
.mt-table .zahl { text-align: end; font-variant-numeric: tabular-nums; }
.mt-table-actions { display: flex; flex-wrap: wrap; gap: var(--sd-space-2); }
.mt-table-actions form { margin: 0; }
.mt-note-warn { color: var(--sd-warning); font-size: var(--sd-fs-meta); }

/* Status-Badges (Symbol + Wort kommen aus sd-badge) */
.mt-st-EINGEGANGEN { --_c: var(--sd-success); --_b: var(--sd-success-bg); --_i: var(--sd-ico-check); }
.mt-st-STORNIERT_KUNDE, .mt-st-STORNIERT_ADMIN { --_c: var(--sd-danger); --_b: var(--sd-danger-bg); --_i: var(--sd-ico-x); }
.mt-st-NICHT_ABGEHOLT { --_c: var(--sd-warning); --_b: var(--sd-warning-bg); --_i: var(--sd-ico-warn); }
.mt-dr-OFFEN { --_c: var(--sd-warning); --_b: var(--sd-warning-bg); --_i: var(--sd-ico-clock); }
.mt-dr-GEDRUCKT { --_c: var(--sd-success); --_b: var(--sd-success-bg); --_i: var(--sd-ico-check); }
.mt-dr-FEHLER { --_c: var(--sd-danger); --_b: var(--sd-danger-bg); --_i: var(--sd-ico-warn); }
.mt-dr-NICHT_DRUCKBAR { --_c: var(--sd-ink-muted); --_b: var(--sd-sunken); --_i: var(--sd-ico-x); }
.mt-wk-entwurf { --_i: var(--sd-ico-clock); }
.mt-wk-geplant { --_c: var(--sd-info); --_b: var(--sd-info-bg); --_i: var(--sd-ico-info); }
.mt-wk-freigegeben { --_c: var(--sd-success); --_b: var(--sd-success-bg); --_i: var(--sd-ico-check); }
.mt-wk-versand_geplant { --_c: var(--sd-warning); --_b: var(--sd-warning-bg); --_i: var(--sd-ico-clock); }
.mt-wk-versand_laeuft { --_c: var(--sd-warning); --_b: var(--sd-warning-bg); --_i: var(--mt-ico-refresh); }
.mt-wk-versendet { --_c: var(--sd-info); --_b: var(--sd-info-bg); --_i: var(--mt-ico-mail); }
.mt-wk-fehler { --_c: var(--sd-danger); --_b: var(--sd-danger-bg); --_i: var(--sd-ico-warn); }
.mt-stammkunde { --_c: var(--sd-success); --_b: var(--sd-success-bg); --_i: var(--sd-ico-check); }
.mt-regulaer { --_c: var(--sd-info); --_b: var(--sd-info-bg); --_i: var(--sd-ico-list); }

/* Verwaltung: Aktualisieren-Band (kompakt, nicht dauerhaft riesig) */
.mt-refresh { padding-block: var(--sd-space-2); margin-block-end: var(--sd-space-3); display: flex; align-items: center; gap: var(--sd-space-3); flex-wrap: wrap; }
.mt-refresh .sd-btn { flex: 1 1 16rem; }
.mt-refresh__stand { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); }

/* Produkt-/Mengenuebersicht + Limit-Formular */
.mt-produkt-cols { display: grid; gap: var(--sd-space-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
.mt-produkt-cols h4 { margin: 0 0 var(--sd-space-2); font-size: var(--sd-fs-meta); text-transform: uppercase; letter-spacing: .03em; color: var(--sd-ink-muted); }
.mt-produkt-zeile { display: flex; justify-content: space-between; gap: var(--sd-space-3); padding-block: var(--sd-space-2); border-block-end: 1px solid var(--sd-line); }
.mt-produkt-zeile .menge, .mt-menge-zeile .menge { font-weight: 700; color: var(--sd-accent); font-variant-numeric: tabular-nums; }
.mt-menge-zeile { padding-block: var(--sd-space-3); border-block-end: 1px solid var(--sd-line); display: grid; gap: var(--sd-space-3); }
.mt-menge-info { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); align-items: baseline; }
.mt-limit-hinweis { font-size: var(--sd-fs-meta); color: var(--sd-ink-muted); }
.mt-limit-hinweis.ausverkauft { color: var(--sd-danger); font-weight: 700; }
.mt-limit-form { display: flex; flex-wrap: wrap; gap: var(--sd-space-3); align-items: center; }
.mt-limit-form input[type=number] { inline-size: 6.5rem; min-block-size: var(--sd-target); }
.mt-limit-form .sd-btn { min-block-size: var(--sd-target); }

/* Detailseiten */
.mt-detail-grid { display: grid; gap: var(--sd-space-5); grid-template-columns: 2fr 1fr; align-items: start; }
@media (max-width: 56em) { .mt-detail-grid { grid-template-columns: 1fr; } }
.mt-pos-row { display: grid; grid-template-columns: 1fr auto 6rem; gap: var(--sd-space-3); align-items: center; padding-block: var(--sd-space-2); }
.mt-druck-row { display: grid; grid-template-columns: 7rem 1fr auto auto; gap: var(--sd-space-2); align-items: center; padding-block: var(--sd-space-2); border-block-end: 1px solid var(--sd-line); font-size: var(--sd-fs-meta); }
.mt-druck-row form { margin: 0; }
.mt-meta dt { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); }
.mt-meta dd { margin: 0 0 var(--sd-space-3); overflow-wrap: anywhere; }
.mt-form-grid { display: grid; gap: 0 var(--sd-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }

/* Wochenkarten-Formular */
.mt-edit-days { display: grid; gap: var(--sd-space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.mt-edit-day h4 { margin-block-end: var(--sd-space-3); }
.mt-edit-day.is-closed .mt-slots { opacity: .45; pointer-events: none; }
.mt-slot { padding-block-end: var(--sd-space-4); margin-block-end: var(--sd-space-4); border-block-end: 1px solid var(--sd-line); }
.mt-slot:last-child { border-block-end: 0; margin-block-end: 0; padding-block-end: 0; }
.mt-slot label, .mt-lbl { display: block; font-weight: 700; margin: var(--sd-space-3) 0 var(--sd-space-1); }
.mt-slot label:first-of-type { margin-top: 0; }
.mt-slot label.mt-check { font-weight: 400; margin: var(--sd-space-1) 0 0; }
.mt-fielderr { color: var(--sd-danger); font-weight: 700; font-size: var(--sd-fs-meta); }
.mt-fielderr ul { margin: 0; padding: 0; list-style: none; }
.mt-radio-list { list-style: none; margin: 0; padding: 0; }
.mt-radio-list li { margin-block-end: var(--sd-space-2); }
.mt-radio-list label { display: flex; align-items: center; gap: var(--sd-space-3); min-block-size: var(--sd-target); cursor: pointer; }
.mt-radio-list input { inline-size: 1.5rem; block-size: 1.5rem; accent-color: var(--sd-accent); }
.mt-status-line { margin: 0; max-inline-size: none; }
.mt-hidden-fields { display: none; }

/* Django-Formularfelder (class="form-control" aus forms.py) im Designsystem */
.form-control, .mt-verw input[type=text], .mt-verw input[type=email], .mt-verw input[type=password], .mt-verw input[type=number], .mt-verw input[type=date], .mt-verw input[type=datetime-local], .mt-verw textarea, .mt-verw select {
  inline-size: 100%; min-block-size: 3.25rem; padding: var(--sd-space-3) var(--sd-space-4);
  font: 400 var(--sd-fs-base)/1.4 var(--sd-font); color: var(--sd-ink); background: var(--sd-surface);
  border: var(--sd-border-w) solid var(--sd-border-strong); border-radius: var(--sd-radius); accent-color: var(--sd-accent);
}
.mt-verw input:focus-visible, .mt-verw select:focus-visible, .mt-verw textarea:focus-visible, .form-control:focus-visible { outline: 3px solid var(--sd-focus); outline-offset: 2px; border-color: var(--sd-ink); }
.mt-verw input:disabled, .mt-verw select:disabled { background: var(--sd-sunken); color: var(--sd-ink-muted); border-style: dashed; }
.mt-verw input[type=checkbox], .mt-verw input[type=radio], .form-check-input { inline-size: 1.5rem; block-size: 1.5rem; min-block-size: 0; padding: 0; flex: none; accent-color: var(--sd-accent); cursor: pointer; }
.mt-verw label { font-weight: 700; }
.mt-verw label.mt-check, .mt-verw .mt-radio-list label { font-weight: 400; }
.mt-verw textarea { min-block-size: 6rem; }
.mt-help { color: var(--sd-ink-muted); font-size: var(--sd-fs-meta); margin: var(--sd-space-1) 0 0; max-inline-size: none; }

/* Login */
.mt-login { max-inline-size: 26rem; margin: var(--sd-space-6) auto; }

/* Ref-Links / IPs */
.mt-reflink-list { display: grid; gap: var(--sd-space-3); margin-block-end: var(--sd-space-5); }
.mt-reflink-card { display: flex; align-items: center; gap: var(--sd-space-4); flex-wrap: wrap; }
.mt-reflink-card .name { font-weight: 700; }
.mt-reflink-url { flex: 1 1 16rem; min-inline-size: 0; }
.mt-reflink-card summary { cursor: pointer; font-weight: 700; color: var(--sd-accent); min-block-size: var(--sd-target); display: flex; align-items: center; }
.mt-reflink-card img.qr { display: block; margin-block-start: var(--sd-space-2); inline-size: 8.75rem; block-size: 8.75rem; background: #fff; padding: 4px; }
.mt-chips { display: flex; flex-wrap: wrap; gap: var(--sd-space-2); margin-block-start: var(--sd-space-3); }
.mt-chip { display: inline-flex; align-items: center; gap: var(--sd-space-2); background: var(--sd-accent-soft); border-radius: var(--sd-radius-pill); padding: var(--sd-space-1) var(--sd-space-1) var(--sd-space-1) var(--sd-space-4); }
.mt-chip form { margin: 0; }
.mt-chip .ip { font-weight: 700; }

/* Quellcode-Anzeige */
.mt-src-meta { display: flex; gap: var(--sd-space-4); align-items: center; flex-wrap: wrap; margin-block-end: var(--sd-space-3); }
.mt-src-meta code { background: var(--sd-sunken); padding: 2px 6px; border-radius: var(--sd-radius-sm); font-size: var(--sd-fs-meta); overflow-wrap: anywhere; }
.mt-src-box { background: var(--sd-sunken); color: var(--sd-ink); border: 1px solid var(--sd-line); border-radius: var(--sd-radius); padding: var(--sd-space-4); overflow: auto; font-family: var(--sd-font-mono); font-size: var(--sd-fs-meta); line-height: 1.5; white-space: pre; max-block-size: 75vh; }

/* Vorschau (Iframe mit isoliertem Dokument) */
.mt-preview-frame { inline-size: 100%; block-size: 70vh; border: 1px solid var(--sd-line); border-radius: var(--sd-radius); background: #fff; }

/* ---------- Klingel ---------- */
.mt-klingel-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sd-space-3); margin-block-end: var(--sd-space-3); }
.mt-conn { display: inline-flex; align-items: center; gap: var(--sd-space-2); font-weight: 700; padding: var(--sd-space-2) var(--sd-space-4); border-radius: var(--sd-radius-pill); border: 2px solid currentColor; color: var(--sd-ink-muted); background: var(--sd-sunken); }
.mt-conn::before { content: ""; inline-size: 1.1em; block-size: 1.1em; background: currentColor; -webkit-mask: var(--sd-ico-clock) center / contain no-repeat; mask: var(--sd-ico-clock) center / contain no-repeat; }
.mt-conn[data-state="ok"] { color: var(--sd-success); background: var(--sd-success-bg); }
.mt-conn[data-state="ok"]::before { -webkit-mask-image: var(--sd-ico-check); mask-image: var(--sd-ico-check); }
.mt-conn[data-state="fail"] { color: var(--sd-danger); background: var(--sd-danger-bg); }
.mt-conn[data-state="fail"]::before { -webkit-mask-image: var(--mt-ico-wifi-off); mask-image: var(--mt-ico-wifi-off); }
.mt-banner { margin-block-end: var(--sd-space-4); }
.mt-banner[hidden] { display: none !important; }
.mt-ton { display: inline-flex; align-items: center; gap: var(--sd-space-2); font-weight: 700; }
.mt-ton[data-state="an"] { color: var(--sd-success); }
.mt-ton[data-state="aus"] { color: var(--sd-danger); }
.mt-klingel-card { background: var(--sd-warning-bg); color: var(--sd-ink); border: 2px solid var(--sd-warning); border-inline-start-width: 12px; border-radius: var(--sd-radius); padding: var(--sd-space-4) var(--sd-space-5); margin-block-end: var(--sd-space-3); animation: mt-klingel-pulse 1s ease-in-out infinite; }
.mt-klingel-card.alt { background: var(--sd-sunken); border-color: var(--sd-border-strong); animation: none; }
.mt-klingel-card .alter { display: inline-flex; align-items: center; gap: var(--sd-space-2); font-weight: 700; font-size: var(--sd-fs-meta); padding: .1em .7em; border-radius: var(--sd-radius-pill); border: 2px solid currentColor; color: var(--sd-warning); background: var(--sd-surface); }
.mt-klingel-card.alt .alter { color: var(--sd-ink-muted); }
.mt-klingel-card .bestellnummer { font-weight: 700; margin-block-start: var(--sd-space-2); }
.mt-klingel-card .abholzeit { margin-block-start: var(--sd-space-2); font-size: 2.1rem; font-weight: 700; line-height: 1.25; }
.mt-klingel-card .positionen { margin-block-start: var(--sd-space-1); font-size: 1.6rem; font-weight: 700; line-height: 1.3; }
@keyframes mt-klingel-pulse { 0%, 100% { box-shadow: 0 0 0 0 hsl(var(--sd-shadow-color) / .35); } 50% { box-shadow: 0 0 0 10px hsl(var(--sd-shadow-color) / 0); } }
@media (prefers-reduced-motion: reduce) {
  .mt-klingel-card { animation: none; border-inline-width: 14px; outline: 3px solid var(--sd-warning); outline-offset: 2px; }
  .mt-klingel-card.alt { outline: 0; border-inline-width: 12px; }
}
.mt-alle-gesehen { min-block-size: 4rem; font-size: var(--sd-fs-h3); }

/* ---------- Druck ---------- */
@media print { .mt-cta-bar, .mt-refresh { display: none !important; } }

/* ---------- Bon-Karte (Designsystem 1.1) auf Bestaetigungs-/Storno-Seite ---------- */
.mt-bon-nr { font-variant-numeric: tabular-nums; letter-spacing: .02em; user-select: all; }
.mt-bons { margin-block: var(--sd-space-4); }
