/* Flavora – Online-Bestellung, Status, Konto */
.bestellen-kopf{padding:2rem 0 .6rem}
.bestellen-kopf h1{margin:0 0 .2rem;font-size:clamp(2rem,4vw,2.8rem)}
.bestellen-kopf p{margin:0}
.bestell-app{padding-bottom:6rem}
.b-raster{display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:1020px){.b-raster{grid-template-columns:minmax(0,1fr) 360px;align-items:start}.b-seite{position:sticky;top:90px}.b-leiste{display:none!important}}
@media (max-width:1019px){.b-seite{display:none}}

.b-modus{display:inline-grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:var(--flaeche);border:1px solid var(--linie);margin:.6rem 0 .4rem}
.b-modus button{border:0;background:transparent;border-radius:999px;padding:.55rem 1.3rem;font-weight:700;cursor:pointer;color:var(--text-leise);min-height:42px}
.b-modus button[aria-pressed=true]{background:var(--akzent);color:var(--akzent-text)}
.b-info{display:flex;flex-wrap:wrap;gap:.4rem 1rem;color:var(--text-leise);font-size:.93rem;margin:.3rem 0 .6rem}
.b-info span{display:inline-flex;align-items:center;gap:.35rem}
.b-info svg{width:16px;height:16px}

.b-leiste-oben{position:sticky;top:72px;z-index:40;background:rgba(var(--hintergrund-rgb),.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--linie);margin:0 -16px;padding:0 16px}
@media (max-width:980px){.b-leiste-oben{top:64px}}
.b-kat{padding-top:1.6rem;scroll-margin-top:140px}
.b-kat h2{font-size:1.75rem;margin-bottom:.15rem}
.b-kat .kategorie-hinweis{margin-bottom:.4rem}
.b-liste{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:.8rem}
.b-gericht{display:flex;gap:.9rem;align-items:stretch;width:100%;text-align:left;padding:.9rem;border-radius:var(--radius);border:1px solid var(--linie);background:var(--flaeche);color:var(--text);cursor:pointer;transition:border-color .15s,transform .15s}
.b-gericht:hover{border-color:rgba(var(--akzent-rgb),.6)}
.b-gericht:active{transform:scale(.99)}
.b-gericht[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.b-gericht .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}
.b-gericht .n{font-weight:700;font-size:1.02rem;line-height:1.3}
.b-gericht .d{color:var(--text-leise);font-size:.9rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.b-gericht .p{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.b-gericht img{width:84px;height:84px;border-radius:var(--radius-klein);object-fit:cover;flex:none}
.b-plus{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--akzent);color:var(--akzent-text);flex:none}
.b-plus svg{width:18px;height:18px}
.b-anzahl-marke{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:var(--neon);color:#fff;font-size:.8rem;font-weight:800}

/* Warenkorb */
.b-korb{background:var(--flaeche);border:1px solid var(--linie);border-radius:var(--radius);padding:1.1rem}
.b-korb h3{font-size:1.4rem;margin-bottom:.6rem}
.b-zeile{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:start;padding:.7rem 0;border-bottom:1px solid var(--linie)}
.b-zeile .n{font-weight:700;line-height:1.3}
.b-zeile small{display:block;color:var(--text-leise);font-size:.84rem;line-height:1.35}
.b-zeile .warn{color:var(--warnung);font-weight:600}
.b-menge{display:inline-flex;align-items:center;gap:.25rem;border:1px solid var(--linie);border-radius:999px;padding:2px}
.b-menge button{width:30px;height:30px;border-radius:50%;border:0;background:var(--flaeche-hell);color:var(--text);display:grid;place-items:center;cursor:pointer}
.b-menge button svg{width:15px;height:15px}
.b-menge span{min-width:20px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}
.b-summen{display:grid;gap:.3rem;margin:.8rem 0;font-variant-numeric:tabular-nums}
.b-summen div{display:flex;justify-content:space-between;gap:1rem}
.b-summen .gesamt{font-weight:800;font-size:1.15rem;padding-top:.4rem;border-top:1px solid var(--linie)}
.b-fortschritt{height:6px;border-radius:999px;background:var(--flaeche-hell);overflow:hidden;margin:.3rem 0 .2rem}
.b-fortschritt i{display:block;height:100%;background:var(--akzent)}
.b-leiste{position:fixed;left:0;right:0;bottom:0;z-index:95;padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(var(--hintergrund-rgb),.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--linie)}
.b-leiste .knopf{width:100%;justify-content:space-between;min-height:54px}

/* Gericht-Dialog */
.b-detail img.titelbild{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);margin-bottom:1rem}
.b-detail img.titelbild.hoch{width:auto;max-width:100%;height:min(46vh,380px);aspect-ratio:auto;display:block;margin-inline:auto}
.b-gruppe{margin:1.1rem 0}
.b-gruppe h4{margin:0 0 .5rem;font-family:var(--schrift-text);font-size:1rem;display:flex;gap:.5rem;align-items:center}
.b-option{display:flex;align-items:center;gap:.7rem;padding:.7rem .8rem;border:1px solid var(--linie);border-radius:var(--radius-klein);margin-bottom:.45rem;cursor:pointer;background:var(--flaeche)}
.b-option:has(input:checked){border-color:var(--akzent);background:rgba(var(--akzent-rgb),.1)}
.b-option input{width:20px;height:20px;accent-color:var(--akzent);flex:none}
.b-option span{flex:1}
.b-option b{font-variant-numeric:tabular-nums;color:var(--text-leise);font-weight:600}
.b-fuss{position:sticky;bottom:calc(-1.4rem - env(safe-area-inset-bottom));margin:1rem -1.3rem calc(-1.4rem - env(safe-area-inset-bottom));padding:1rem 1.3rem calc(1rem + env(safe-area-inset-bottom));background:var(--hintergrund);border-top:1px solid var(--linie);display:flex;gap:.8rem;align-items:center}
.b-fuss .knopf{flex:1;justify-content:space-between}

/* Kasse */
.b-kasse h3{font-size:1.25rem;margin:1.4rem 0 .6rem;font-family:var(--schrift-text)}
.b-adressen{display:grid;gap:.45rem;margin-bottom:.8rem}
.code-feld{font-size:1.8rem!important;letter-spacing:.5em;text-align:center;font-variant-numeric:tabular-nums}

/* Status */
.status-karte{text-align:center}
.status-nummer{font-family:var(--schrift-titel);font-size:clamp(2.6rem,9vw,4rem);line-height:1;color:var(--akzent);margin:.2rem 0 .6rem}
.status-text{font-size:1.2rem;font-weight:600;margin-bottom:1.4rem}
.schritte{display:grid;gap:0;margin:1.4rem 0;text-align:left;counter-reset:s}
.schritt{display:grid;grid-template-columns:34px 1fr;gap:.8rem;align-items:start;padding-bottom:1.2rem;position:relative}
.schritt::before{content:'';position:absolute;left:16px;top:30px;bottom:0;width:2px;background:var(--linie)}
.schritt:last-child::before{display:none}
.schritt i{width:34px;height:34px;border-radius:50%;border:2px solid var(--linie);background:var(--flaeche);display:grid;place-items:center;font-style:normal;z-index:1}
.schritt.erledigt i{background:var(--akzent);border-color:var(--akzent);color:var(--akzent-text)}
.schritt.aktuell i{border-color:var(--akzent);box-shadow:0 0 0 5px rgba(var(--akzent-rgb),.2);animation:puls 2s infinite}
.schritt.erledigt::before{background:var(--akzent)}
.schritt b{display:block;padding-top:5px}
.schritt small{color:var(--text-leise)}
@keyframes puls{50%{box-shadow:0 0 0 9px rgba(var(--akzent-rgb),.08)}}

/* Konto */
.konto-bestellung{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--linie);align-items:center}
