:root {
  --bg: #050505;
  --surface: #0f0f10;
  --surface-2: #171717;
  --card: rgba(18,18,18,.94);
  --text: #fff9ed;
  --muted: #d8cbb8;
  --soft: #9b8f80;
  --accent: #e32922;
  --accent-dark: #9c1712;
  --accent-2: #ffc545;
  --cream: #fff6e7;
  --green: #2fb86f;
  --line: rgba(255,255,255,.12);
  --shadow: 0 24px 80px rgba(0,0,0,.48);
  --radius: 26px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 18% 8%, rgba(227,41,34,.19), transparent 28rem),
    radial-gradient(circle at 86% 12%, rgba(255,197,69,.16), transparent 25rem),
    linear-gradient(180deg, #080808 0%, #050505 55%, #0b0b0b 100%);
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }

.topbar {
  position: sticky; top: 0; z-index: 50;
  min-height: 78px; padding: 10px clamp(14px, 3vw, 38px);
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  background: rgba(0,0,0,.82); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(255,255,255,.10);
}
.brand { display:flex; align-items:center; gap:12px; font-weight:900; letter-spacing:.12em; }
.brand-logo { width:56px; height:56px; object-fit:contain; display:block; }
.logo-fallback {
  width: 48px; height: 48px; display:none; place-items:center; border-radius: 50%;
  color:#050505; background: var(--accent-2); font-weight:900;
}
.brand-text { font-size: 16px; }
.topnav { display:flex; gap:20px; color: var(--muted); font-size:14px; font-weight:800; }
.topnav a:hover { color:#fff; }
.lang-switch { display:flex; gap:5px; border:1px solid var(--line); border-radius:999px; padding:4px; background:rgba(255,255,255,.04); }
.lang-switch button { border:0; border-radius:999px; background:transparent; color:var(--muted); font-weight:900; font-size:12px; padding:7px 8px; }
.lang-switch button.active { background:var(--cream); color:#111; }
.nav-order, .cart-pill, .mobile-cart {
  border: 1px solid rgba(255,255,255,.14); border-radius: 999px; padding: 12px 17px; font-weight: 900;
}
.nav-order { background: var(--accent); color:#fff; box-shadow:0 14px 34px rgba(227,41,34,.30); }
.cart-pill, .mobile-cart { background:var(--cream); color:#111; }

.home-hero {
  position: relative; min-height: calc(100svh - 78px); display:grid; place-items:center; overflow:hidden;
  background:
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.88) 72%, #050505),
    radial-gradient(circle at 50% 28%, rgba(255,197,69,.16), transparent 16rem),
    radial-gradient(circle at 18% 78%, rgba(227,41,34,.18), transparent 20rem),
    #050505;
}
.home-bg:before {
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 58px 58px; mask-image: linear-gradient(180deg, #000, transparent 84%); opacity:.55;
}
.home-bg:after {
  content:""; position:absolute; inset:0;
  background: radial-gradient(circle at center, transparent 0 40%, rgba(0,0,0,.38) 72%);
}
.home-hero:after {
  content:""; position:absolute; right:3%; bottom:5%; width:min(310px, 38vw); aspect-ratio:1; border-radius:50%;
  background: radial-gradient(circle at 38% 35%, #ffe3a2, #ffba31 34%, #d9221c 35%, #8d130e 68%, transparent 69%);
  opacity:.24; filter: blur(.2px) drop-shadow(0 36px 70px rgba(0,0,0,.58)); transform:rotate(-12deg);
}
.home-hero-inner { position:relative; z-index:2; width:min(1120px, calc(100% - 38px)); padding:68px 0 92px; }
.home-hero-inner.centered { text-align:center; display:flex; flex-direction:column; align-items:center; }
.hero-logo-wrap { min-height: 118px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.hero-logo { width:min(340px, 74vw); max-height:155px; object-fit:contain; object-position:center; }
.hero-logo-fallback { display:none; place-items:center; padding:22px 30px; border-radius:24px; background:rgba(255,255,255,.08); border:1px solid var(--line); font-weight:900; font-size:34px; letter-spacing:.08em; color:var(--accent-2); }
.eyebrow, .section-label { margin:0 0 10px; color:var(--accent-2); font-weight:900; letter-spacing:.14em; text-transform:uppercase; font-size:12px; }
h1 { margin:0; max-width:900px; font-size:clamp(76px, 15vw, 188px); line-height:.8; letter-spacing:-.085em; color:#fff; text-shadow:0 18px 60px rgba(0,0,0,.60); }
.hero-subline { max-width:720px; margin:24px auto 0; color:#eee0ce; font-size:clamp(18px, 2.2vw, 25px); line-height:1.45; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; justify-content:center; }
.primary-cta, .secondary-cta { padding:16px 25px; border-radius:999px; font-weight:900; display:inline-flex; align-items:center; justify-content:center; }
.primary-cta { background:var(--accent); box-shadow:0 16px 42px rgba(227,41,34,.37); color:#fff; }
.primary-cta.big-cta { font-size:20px; padding:19px 36px; }
.secondary-cta { border:1px solid rgba(255,255,255,.20); background:rgba(255,255,255,.07); }
.trust-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; justify-content:center; }
.trust-row span { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#f4eadb; border-radius:999px; padding:9px 12px; font-size:13px; font-weight:800; }

.info-band, .order-entry, .gallery-section, .jobs-franchise, .site-footer { max-width:1260px; margin: 0 auto; padding: 32px 20px 0; }
.info-band { display:grid; grid-template-columns: 1.35fr .85fr .85fr; gap:18px; margin-top:-62px; position:relative; z-index:4; }
.info-card, .card, .menu-shell, .checkout-card, .address-finder, .promo-card, .gallery-section, .site-footer {
  border:1px solid var(--line); background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow);
}
.info-card { padding:25px; }
.info-card.wide { min-height:190px; }
h2 { margin:0; font-size:clamp(28px, 4vw, 46px); letter-spacing:-.05em; line-height:1.02; }
h3 { margin:0 0 10px; font-size:22px; }
.muted { color:var(--muted); margin:8px 0 0; line-height:1.6; }
.badge-soft { display:inline-flex; margin-top:8px; padding:6px 9px; border-radius:999px; background:rgba(255,197,69,.14); color:var(--accent-2); font-weight:900; font-size:12px; }

.gallery-section { margin-top:24px; padding:28px; }
.section-head { max-width:760px; }
.gallery-tabs { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.gallery-tabs button { border:1px solid var(--line); border-radius:999px; padding:11px 15px; background:rgba(255,255,255,.04); color:var(--cream); font-weight:900; }
.gallery-tabs button.active { background:var(--accent); border-color:var(--accent); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gallery-tile { min-height:180px; border-radius:22px; display:grid; place-items:end start; padding:18px; font-weight:900; font-size:28px; background:#181818; border:1px solid var(--line); overflow:hidden; position:relative; }
.gallery-tile:before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 64% 30%, rgba(255,197,69,.55), transparent 9rem); opacity:.7; }
.gallery-tile.pizza { background:linear-gradient(135deg,#1d0604,#4f0b07); }
.gallery-tile.panini { background:linear-gradient(135deg,#14110b,#66450d); }
.gallery-tile.burger { background:linear-gradient(135deg,#131313,#3a1a0a); }
.gallery-tile { color:#fff; z-index:1; }

.jobs-franchise { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
.promo-card { padding:24px; }
.promo-card a { display:inline-flex; margin-top:16px; background:var(--cream); color:#111; border-radius:999px; padding:11px 16px; font-weight:900; }
.alcastello-card { background:linear-gradient(135deg, rgba(255,197,69,.12), rgba(227,41,34,.08)), var(--card); }

.order-entry { margin-top:24px; display:grid; grid-template-columns: .8fr 1.2fr; align-items:stretch; gap:18px; }
.order-intro { padding:18px 0; }
.address-finder { padding:22px; }
.address-finder label { display:block; font-weight:900; margin-bottom:10px; }
.address-row { display:grid; grid-template-columns:1fr auto; gap:10px; }
.address-row button { border:0; background:var(--accent); color:#fff; border-radius:16px; padding:0 18px; font-weight:900; }
.mini-note { margin:10px 0 0; color:var(--soft); font-size:13px; }

.layout { max-width:1260px; margin: 24px auto 70px; padding:0 20px; display:grid; grid-template-columns:minmax(0,1fr) 410px; gap:24px; position:relative; z-index:5; }
.content { display:flex; flex-direction:column; gap:22px; }
.card, .menu-shell { padding:24px; }
.setup { display:grid; gap:20px; }
.store-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.store-tile { border:1px solid var(--line); background:linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.03)); border-radius:20px; padding:17px; text-align:left; color:#fff; min-height:132px; }
.store-tile.active { outline:2px solid var(--accent); background:linear-gradient(180deg, rgba(227,41,34,.22), rgba(255,255,255,.04)); }
.store-tile strong { display:block; font-size:18px; margin-bottom:7px; }
.store-tile span { display:block; color:var(--muted); font-size:13px; line-height:1.35; }
.store-status { margin-top:12px; display:inline-flex!important; color:#fff!important; background:rgba(47,184,111,.18); border:1px solid rgba(47,184,111,.4); border-radius:999px; padding:6px 9px; font-weight:800; }
.fulfillment-toggle { display:grid; grid-template-columns:1fr 1fr; background:#0b0b0b; border:1px solid var(--line); border-radius:18px; padding:5px; gap:5px; }
.fulfillment-toggle button { border:0; border-radius:14px; padding:13px; background:transparent; color:var(--muted); font-weight:900; }
.fulfillment-toggle button.active { background:var(--cream); color:#111; }
.menu-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.search-wrap { min-width:280px; }
input, textarea, select { width:100%; border:1px solid var(--line); background:#0e0e0e; color:#fff; border-radius:15px; padding:13px 14px; outline:none; }
textarea { min-height:84px; resize:vertical; }
input:focus, textarea:focus, select:focus { border-color:rgba(255,197,69,.55); box-shadow:0 0 0 4px rgba(255,197,69,.10); }
.category-tabs { display:flex; gap:10px; overflow-x:auto; padding:4px 0 18px; scrollbar-width:thin; }
.cat-tab { white-space:nowrap; border:1px solid var(--line); background:#111; color:#f7ead8; border-radius:999px; padding:11px 15px; font-weight:900; }
.cat-tab.active { background:var(--accent); border-color:var(--accent); }
.category-block { margin-top:10px; }
.category-title { font-size:22px; margin:12px 0 12px; }
.product-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; }
.product-card { display:grid; grid-template-columns:1fr auto; gap:10px 14px; border:1px solid var(--line); background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)); border-radius:20px; padding:16px; }
.product-name { font-weight:900; font-size:17px; }
.product-desc { margin:6px 0 0; color:var(--muted); line-height:1.35; font-size:13px; }
.product-price { font-weight:900; color:var(--accent-2); }
.addBtn { grid-column:1 / -1; border:0; background:var(--cream); color:#111; border-radius:14px; padding:12px; font-weight:900; }
.checkout-card { position:sticky; top:92px; padding:20px; max-height:calc(100svh - 112px); overflow:auto; }
.checkout-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ghost { border:1px solid var(--line); background:transparent; color:var(--muted); border-radius:999px; padding:9px 12px; font-weight:900; }
.empty { color:var(--muted); padding:14px 0; }
.cart-row { display:grid; grid-template-columns:1fr auto; gap:10px; padding:12px 0; border-bottom:1px solid var(--line); }
.cart-row strong { display:block; }
.cart-row small { color:var(--muted); }
.qty { display:flex; align-items:center; gap:9px; justify-content:flex-end; }
.qty button { width:28px; height:28px; border:0; border-radius:50%; background:#2b2b2b; color:#fff; font-weight:900; }
.totals { margin:18px 0; padding:16px; border:1px solid var(--line); border-radius:18px; background:#0b0b0b; }
.totals div { display:flex; justify-content:space-between; padding:6px 0; color:var(--muted); }
.totals strong { color:#fff; }
.total-line { margin-top:8px; padding-top:12px!important; border-top:1px solid var(--line); font-size:20px; color:#fff!important; }
.customer-form { display:flex; flex-direction:column; gap:10px; }
.form-grid { display:grid; gap:10px; }
.two, .zip-grid { grid-template-columns:1fr 1fr; }
.street-grid { grid-template-columns:1fr 92px; }
.privacy-check { display:flex; gap:10px; align-items:flex-start; color:var(--muted); font-size:12px; line-height:1.4; }
.privacy-check input { width:auto; margin-top:2px; accent-color:var(--accent); }
.orderBtn { width:100%; border:0; border-radius:18px; padding:16px; background:linear-gradient(135deg, var(--accent), var(--accent-dark)); color:#fff; font-weight:900; font-size:16px; box-shadow:0 16px 36px rgba(227,41,34,.28); }
#message { min-height:22px; color:#9af2b8; margin:6px 0 0; font-weight:800; }
.site-footer { margin-bottom:38px; padding:24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; }
.site-footer p { margin:6px 0 0; color:var(--muted); }
.legal-strip { display:flex; flex-wrap:wrap; gap:12px; color:var(--muted); font-size:13px; }
.legal-strip a { border:1px solid var(--line); border-radius:999px; padding:9px 12px; background:rgba(255,255,255,.04); }
.mobile-cart { display:none; position:fixed; left:16px; right:16px; bottom:16px; z-index:60; justify-content:center; box-shadow:0 18px 44px rgba(0,0,0,.45); }


/* Separate Bestell-App: keine Homepage-Inhalte auf der Bestellseite */
.order-page {
  background: radial-gradient(circle at 20% 0%, rgba(227,41,34,.18), transparent 24rem), linear-gradient(180deg,#080808,#050505 58%,#0b0b0b);
}
.order-topbar .topnav, .order-topbar .lang-switch { display:none; }
.back-home { color: var(--muted); font-weight: 900; border:1px solid var(--line); border-radius:999px; padding:10px 14px; background:rgba(255,255,255,.04); }
.order-app-main { padding-top: 22px; }
.order-page .order-entry { margin-top: 0; }
.order-page .location-choice { margin-top: 20px; }
.order-page .layout { margin-top: 22px; }
.order-page .site-footer, .order-page .gallery-section, .order-page .jobs-franchise, .order-page .info-band { display:none; }

@media (max-width:1080px) {
  .info-band, .order-entry, .layout, .jobs-franchise { grid-template-columns:1fr; }
  .checkout-card { position:static; max-height:none; }
  .store-grid { grid-template-columns:1fr; }
  .topnav { display:none; }
}
@media (max-width:760px) {
  .back-home { font-size:12px; padding:9px 10px; }
  .order-topbar .brand-text { display:none; }
  .topbar { min-height:66px; padding:8px 12px; }
  .brand-logo { width:44px; height:44px; }
  .brand-text { font-size:13px; }
  .cart-pill, .lang-switch { display:none; }
  .nav-order { padding:10px 12px; font-size:13px; }
  .home-hero { min-height:calc(100svh - 66px); place-items:center; }
  .home-hero:after { right:-42px; bottom:110px; width:190px; opacity:.18; }
  .home-hero-inner { padding:38px 0 82px; }
  .hero-logo-wrap { min-height:82px; }
  .hero-logo { width:min(260px, 76vw); max-height:115px; }
  h1 { font-size:clamp(78px, 24vw, 128px); }
  .hero-subline { font-size:17px; }
  .primary-cta.big-cta { width:100%; max-width:320px; }
  .info-band { margin-top:-50px; padding:0 12px; }
  .gallery-section, .jobs-franchise, .order-entry, .layout, .site-footer { padding-left:12px; padding-right:12px; }
  .gallery-section, .site-footer { border-radius:20px; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-tile { min-height:128px; }
  .address-row { grid-template-columns:1fr; }
  .card, .menu-shell, .checkout-card, .address-finder, .info-card, .promo-card { border-radius:20px; padding:18px; }
  .menu-head { align-items:stretch; flex-direction:column; }
  .search-wrap { min-width:0; }
  .product-grid { grid-template-columns:1fr; }
  .two, .street-grid, .zip-grid { grid-template-columns:1fr; }
  .site-footer { margin-bottom:96px; }
  .mobile-cart { display:flex; }
}

.location-choice { max-width:1260px; margin:24px auto 0; padding:0 20px; position:relative; z-index:5; }
.ordering-locked .fulfillment-card,
.ordering-locked .menu-shell,
.ordering-locked .checkout { display:none; }
.choose-location-empty { border:1px dashed var(--line); border-radius:18px; padding:20px; }
#menuLocationNote { margin:6px 0 0; font-size:13px; }
.store-tile.active .store-status { background:rgba(255,197,69,.18); border-color:rgba(255,197,69,.45); color:#ffd66b!important; }
@media (max-width: 760px) {
  .location-choice { padding-left:12px; padding-right:12px; }
}

.product-card.sold-out{opacity:.65;filter:grayscale(.25)}
.product-card.sold-out .addBtn{background:#555;cursor:not-allowed;box-shadow:none}
.soldout-label{display:inline-block;margin:.45rem 0 0;padding:.28rem .55rem;border-radius:999px;background:rgba(215,25,32,.18);border:1px solid rgba(215,25,32,.35);color:#ffd7d7;font-weight:800;font-size:.82rem}

/* Update: Standort-Auswahl und eigentliche Bestell-App sind getrennte Seiten */
.location-only-main { max-width:1260px; margin:0 auto; padding-bottom:70px; }
.order-location-page .order-entry,
.order-location-page .location-choice { max-width:1260px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; }
.order-location-page .location-choice { margin-top:20px; }
.location-select-card { padding:28px; }
.location-message { min-height:22px; margin:12px 0 0; font-weight:800; }
.shop-page .shop-main { padding-top:18px; }
.shop-topbar .brand { gap:12px; }
.brand-stack { display:flex; flex-direction:column; line-height:1.05; }
.brand-stack strong { margin-top:4px; color:var(--accent-2); font-size:13px; letter-spacing:.02em; }
.compact-store-head {
  max-width:1260px;
  margin: 0 auto 22px;
  padding: 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:20px;
  align-items:center;
  border:1px solid var(--line);
  background:linear-gradient(135deg, rgba(227,41,34,.16), rgba(255,197,69,.08)), var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.compact-store-head h1 { margin:0; font-size:clamp(30px, 4vw, 54px); letter-spacing:-.055em; line-height:1; }
.shop-page .layout { margin-top:0; }
.shop-page .menu-shell { min-height:360px; }
@media (max-width:1080px) {
  .compact-store-head { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .order-location-page .order-entry,
  .order-location-page .location-choice { padding-left:14px; padding-right:14px; }
  .compact-store-head { margin-left:14px; margin-right:14px; padding:16px; border-radius:22px; }
  .shop-topbar .brand-stack .brand-text { display:none; }
  .brand-stack strong { font-size:12px; max-width:150px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}


.product-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.ghost.light{background:rgba(255,255,255,.06);color:#fff;border-radius:14px;padding:12px;}
.customize-hint{display:inline-block;margin:.45rem 0 0;padding:.28rem .55rem;border-radius:999px;background:rgba(255,197,69,.14);border:1px solid rgba(255,197,69,.24);color:#ffdb7b;font-weight:800;font-size:.8rem}
.cart-note{margin-top:6px;font-size:12px;line-height:1.35;color:#cbbda6;}
body.modal-open{overflow:hidden;}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.68);display:none;align-items:center;justify-content:center;padding:18px;z-index:120;}
.modal-overlay.open{display:flex;}
.modal-card{width:min(980px,100%);max-height:min(92vh,920px);overflow:auto;border:1px solid var(--line);background:#111;border-radius:28px;box-shadow:0 30px 80px rgba(0,0,0,.55);}
.modal-head,.modal-foot{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;}
.modal-foot{border-top:1px solid var(--line);border-bottom:0;position:sticky;bottom:0;background:#111;}
.customizer-body{padding:0 22px 22px;display:grid;gap:18px;}
.customizer-section{border:1px solid var(--line);border-radius:20px;padding:16px;background:rgba(255,255,255,.03);}
.small-muted{font-size:13px;}
.customizer-chip-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.customizer-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);padding:10px 12px;border-radius:999px;background:#0d0d0d;color:#fff;}
.customizer-chip input{width:auto;accent-color:var(--accent);}
.extra-grid.compact-extra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px;}
.extra-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:8px 10px;background:#0d0d0d;min-height:58px;}
.extra-row.disabled{opacity:.55;filter:grayscale(.15);}
.extra-info strong{display:block;font-size:13px;line-height:1.2;}
.extra-info small{display:block;margin-top:3px;color:var(--muted);font-size:11px;}
.extra-stepper{display:flex;align-items:center;gap:6px;}
.step-btn{width:28px;height:28px;border-radius:10px;border:1px solid var(--line);background:#1c1c1c;color:#fff;font-weight:900;font-size:16px;padding:0;}
.extra-stepper span{min-width:18px;text-align:center;font-weight:900;font-size:13px;}
.customizer-total-wrap{display:flex;flex-direction:column;gap:4px;}
.customizer-total-wrap span{color:var(--muted);font-size:13px;}
.customizer-total-wrap strong{font-size:22px;color:var(--accent-2);}
.modal-actions{display:flex;gap:10px;align-items:center;}
.compact-btn{width:auto;padding:14px 18px;border-radius:14px;}
@media (max-width:980px){.extra-grid.compact-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:760px){
  .product-actions{grid-template-columns:1fr;}
  .modal-overlay{padding:10px;align-items:flex-end;}
  .modal-card{max-height:94vh;border-radius:22px;}
  .modal-head,.modal-foot,.customizer-body{padding-left:14px;padding-right:14px;}
  .modal-head,.modal-foot{flex-direction:column;align-items:stretch;}
  .extra-grid.compact-extra-grid{grid-template-columns:1fr;}
}

/* Location order page like Liefer-style cards */
.shop-page{
  background:#030303;
}
.shop-topbar{
  background:#060606;
  border-bottom:1px solid rgba(255,153,31,.22);
}
.compact-store-head{
  background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.9)), url('/pizza-hero.jpg');
  background-size:cover;
  background-position:center;
  border:1px solid rgba(255,153,31,.45);
  border-radius:18px;
}
.category-tabs{
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding:8px 0 16px;
}
.cat-tab{
  min-width:86px;
  min-height:86px;
  border-radius:18px;
  border:1px solid rgba(255,153,31,.24);
  background:#101010;
  color:#fff;
  font-weight:900;
}
.cat-tab.active{
  color:#ff9f1f;
  border-color:#ff9f1f;
  box-shadow:0 0 0 2px rgba(255,159,31,.12);
}
.product-grid{
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
}
.shop-product-card{
  padding:0;
  overflow:hidden;
  background:#262626;
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  cursor:pointer;
}
.product-photo-wrap{
  position:relative;
  height:150px;
  background:#151515;
  overflow:hidden;
}
.product-photo-wrap img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.product-photo-placeholder{
  height:100%;
  display:grid;
  place-items:center;
  font-size:3rem;
}
.product-price-badge{
  position:absolute;
  right:10px;
  bottom:10px;
  background:#ff9f1f;
  color:#111;
  border-radius:999px;
  padding:7px 11px;
  font-weight:1000;
}
.product-card-body{
  padding:14px 14px 8px;
}
.product-meta-line{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}
.product-meta-line span,
.info-badges span{
  font-size:.72rem;
  font-weight:900;
  color:#111;
  background:#ff9f1f;
  border-radius:999px;
  padding:4px 8px;
}
.shop-product-card .product-actions{
  padding:0 14px 14px;
}
.delivery-info-box{
  border:1px solid rgba(255,159,31,.45);
  background:#17120b;
  color:#fff;
  border-radius:12px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:10px;
}
.delivery-info-box.ok{
  border-color:rgba(47,184,111,.65);
  background:#0d1a12;
}
.delivery-info-box b{color:#ff9f1f;}
.delivery-info-box.ok b{color:#7ee2a8;}
.delivery-info-box span{font-size:.86rem;color:#ddd;}
.full-width{width:100%;justify-content:center;margin:8px 0 4px;}
.min-order-hint{
  margin:8px 0 0;
  font-size:.88rem;
  font-weight:800;
}
.min-order-hint.warn{color:#ffb347;}
.min-order-hint.ok{color:#7ee2a8;}
.customizer-product-top{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:16px;
  align-items:start;
}
.customizer-product-image{
  min-height:170px;
  background:#151515;
  border-radius:16px;
  overflow:hidden;
  display:grid;
  place-items:center;
  font-size:3rem;
}
.customizer-product-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.customizer-product-info h3{
  margin:0 0 6px;
  font-size:1.3rem;
}
.allergen-box{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:8px 12px;
  margin-top:12px;
  padding:12px;
  border-radius:12px;
  background:#111;
  border:1px solid rgba(255,255,255,.12);
}
.allergen-box b{color:#ff9f1f;}
.size-choice-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(130px,1fr));
  gap:10px;
}
.size-choice{
  border:1px solid rgba(255,255,255,.18);
  background:#151515;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.size-choice input{display:none;}
.size-choice.active{
  border-color:#ff9f1f;
  background:#2a1b08;
}
@media(max-width:720px){
  .customizer-product-top{grid-template-columns:1fr;}
  .product-photo-wrap{height:135px;}
}

/* Larger product detail popup for online ordering */
.customizer-modal{
  width:min(1040px,calc(100vw - 28px));
}
.premium-product-popup{
  grid-template-columns:minmax(300px,42%) 1fr;
  gap:22px;
}
.large-product-image{
  min-height:290px;
  border:1px solid rgba(255,159,31,.34);
  box-shadow:0 18px 40px rgba(0,0,0,.34);
}
.large-product-image img{
  transform:scale(1.01);
}
.info-badges-large{
  margin:12px 0;
}
.info-badges-large span{
  padding:6px 10px;
  font-size:.78rem;
}
.allergen-box-large{
  grid-template-columns:125px 1fr;
  font-size:.94rem;
}
.customizer-section h3{
  display:flex;
  align-items:center;
  gap:8px;
}
.customizer-section h3::before{
  content:'+';
  display:inline-grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:999px;
  background:#ff9f1f;
  color:#111;
  font-weight:1000;
}
.customizer-section:first-of-type h3::before{
  content:'i';
}
.extra-row{
  cursor:default;
}
.extra-stepper .step-btn{
  font-weight:1000;
}
@media(max-width:760px){
  .premium-product-popup{grid-template-columns:1fr;}
  .large-product-image{min-height:220px;}
  .allergen-box-large{grid-template-columns:1fr;}
}

/* Kategorie-Bilder und Lieferando/Liefersoft-artige Produktkarten */
.category-admin-strip{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.03);display:grid;gap:10px;}
.category-admin-buttons{display:flex;flex-wrap:wrap;gap:8px;}
.category-photo-preview{min-height:150px;}
.category-tabs .cat-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:86px;height:86px;padding:8px;border-radius:18px;overflow:hidden;}
.cat-tab-image img{width:54px;height:54px;border-radius:999px;object-fit:cover;border:2px solid rgba(255,255,255,.55);box-shadow:0 8px 20px rgba(0,0,0,.35);}
.cat-tab-image span,.cat-tab-icon span,.cat-tab-text span{font-size:.78rem;font-weight:900;line-height:1.1;text-align:center;}
.cat-icon-only{font-size:1.65rem!important;line-height:1!important;}
.cat-tab-text{min-width:112px!important;height:54px!important;}
.category-hero-card{position:relative;min-height:124px;border-radius:18px;overflow:hidden;margin:10px 0 18px;background:#171717;border:1px solid rgba(255,159,31,.32);display:flex;align-items:end;padding:18px;}
.category-hero-card.has-image{min-height:190px;}
.category-hero-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.58);}
.category-hero-card::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.16));}
.category-hero-card>div{position:relative;z-index:1;color:#fff;}
.category-hero-card .category-title{font-size:2.1rem;margin:0 0 4px;text-transform:uppercase;}
.category-hero-card p{margin:0;color:#fff;font-weight:800;}
.shop-product-card{position:relative;border-radius:14px;overflow:visible;margin-top:0;padding-bottom:54px;}
.shop-product-card .product-photo-wrap{border-radius:14px 14px 4px 4px;}
.shop-product-card .product-card-body{position:absolute;left:14px;right:14px;bottom:48px;transform:translateY(50%);background:#2b2b2b;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:10px 12px;box-shadow:0 8px 22px rgba(0,0,0,.45);}
.shop-product-card .product-name{font-size:1rem;font-weight:1000;}
.shop-product-card .product-desc{font-size:.82rem;line-height:1.2;max-height:2.4em;overflow:hidden;margin:2px 0 0;}
.shop-product-card .product-actions{position:absolute;right:12px;bottom:8px;padding:0;}
.product-meta-line,.customize-hint{display:none;}
@media(max-width:720px){.category-hero-card.has-image{min-height:150px}.category-hero-card .category-title{font-size:1.6rem}.shop-product-card{padding-bottom:62px}}

.product-price-badge{
  display:none!important;
}
.product-price-center{
  margin:10px auto 8px;
  text-align:center;
  color:#ff9f1f;
  font-size:1.18rem;
  font-weight:1000;
  line-height:1;
}
.shop-product-card .product-card-body{
  text-align:left;
}
.shop-product-card .product-price-center{
  text-align:center;
}
.shop-product-card .product-actions{
  display:none!important;
}

.price-dual{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:3px;
}
.price-dual s{
  color:#b9b9b9;
  font-size:.86em;
  font-weight:800;
  text-decoration-thickness:2px;
}
.price-dual strong{
  color:#ff9f1f;
  font-size:1.08em;
  font-weight:1000;
}
.cart-row .price-dual{
  display:inline-flex;
  flex-direction:row;
  gap:6px;
  vertical-align:middle;
}
.cart-row .price-dual strong{
  font-size:1em;
}
#normalSubtotal{
  color:#aaa;
  margin-right:6px;
}
#discountRow{
  color:#7ee2a8;
}

.product-price-center .price-dual{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#2a2a2a;
  border:1px solid #ff9f1f;
  border-radius:8px;
  padding:6px 10px;
  min-width:72px;
}
.product-price-center .price-dual s{
  line-height:1;
}
.product-price-center .price-dual strong{
  line-height:1;
}

/* Stabile Produktkarten-Anzeige: Bild oben, Beschreibung darunter, Preis mittig unten */
.shop-page .product-price-center{
  margin:10px auto 8px;
  text-align:center;
}
.shop-page .product-price-center .price-dual{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  background:#2a2a2a;
  border:1px solid #ff9f1f;
  border-radius:8px;
  padding:7px 12px;
  min-width:78px;
}
.shop-page .product-price-center .price-dual s{
  color:#b9b9b9;
  font-size:.82rem;
  font-weight:900;
  line-height:1;
  text-decoration-thickness:2px;
}
.shop-page .product-price-center .price-dual strong{
  color:#fff;
  font-size:1.08rem;
  font-weight:1000;
  line-height:1;
}
.shop-page .product-price-center > span:not(.price-dual){
  color:#ff9f1f;
  font-size:1.12rem;
  font-weight:1000;
}

/* Nicht verfügbare Speisen: sichtbar, aber nicht klickbar und nicht bestellbar */
.shop-product-card.sold-out{
  opacity:.55;
  filter:grayscale(.35);
  cursor:not-allowed!important;
}
.shop-product-card.sold-out *{
  pointer-events:none;
}
.shop-product-card.sold-out .soldout-label{
  color:#ffb4b4;
  font-weight:1000;
}

/* Preis-Hinweis bei mehreren Größen */
.shop-page .product-price-center .price-from{
  display:inline-block;
  margin-right:6px;
  color:#ff9f1f;
  font-size:.86rem;
  font-weight:1000;
  vertical-align:middle;
}
.shop-page .product-price-center .price-from + .price-dual{
  vertical-align:middle;
}

.promo-item-pick-list{
  max-height:260px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px;
  display:grid;
  gap:8px;
  background:#fff;
}
.promo-item-pick-list label{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:8px;
  align-items:center;
  font-weight:800;
}
.promo-item-pick-list small{color:#6b7280;font-weight:700;}
.promo-excluded-note{
  margin:6px 0 0;
  color:#ffc46b;
  font-size:.78rem;
  font-weight:900;
  text-align:center;
}
.price-from{
  display:block;
  color:#ff9f1f;
  font-weight:1000;
  font-size:.84rem;
  margin-bottom:2px;
}

/* Standort-Logo oben auf der Bestellseite */
.store-hero-brand{
  min-width:0;
}
.shop-store-logo{
  display:block;
  max-width:min(620px, 100%);
  max-height:155px;
  width:auto;
  height:auto;
  object-fit:contain;
  margin:4px 0 10px;
  background:rgba(255,255,255,.98);
  border-radius:12px;
  padding:8px 12px;
}
.visually-hidden-title{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.location-logo-manager{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:280px 1fr;
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#fff;
}
.location-logo-preview{
  min-height:120px;
  display:grid;
  place-items:center;
  border:1px dashed #cbd5e1;
  border-radius:14px;
  overflow:hidden;
  background:#f8fafc;
  color:#64748b;
  font-weight:900;
}
.location-logo-preview img{
  width:100%;
  height:100%;
  max-height:160px;
  object-fit:contain;
  background:#fff;
}
.location-logo-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.location-logo-actions .mini-note{
  flex-basis:100%;
}
@media(max-width:800px){
  .location-logo-manager{grid-template-columns:1fr;}
  .shop-store-logo{max-height:110px;}
}

.special-hours-rows{display:grid;gap:10px;margin-top:10px}.special-hour-row{display:grid;grid-template-columns:150px 1fr 1fr minmax(170px,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff}.special-service-block{display:grid;grid-template-columns:auto auto 1fr 1fr;gap:8px;align-items:center}.special-service-block strong{font-size:.82rem;color:#374151}.hours-rows{display:grid;gap:8px}.hour-row{display:grid;grid-template-columns:120px 150px 1fr 1fr;gap:10px;align-items:center}@media(max-width:1000px){.special-hour-row{grid-template-columns:1fr}.special-service-block{grid-template-columns:1fr 1fr}.hour-row{grid-template-columns:1fr 1fr}}


/* Standortauswahl: Live-Öffnungsstatus rot/grün und Öffnungszeiten-Popup */
.store-tile.is-open{border-color:rgba(34,197,94,.55);}
.store-tile.is-closed{border-color:rgba(239,68,68,.72); background:linear-gradient(180deg, rgba(239,68,68,.10), rgba(255,255,255,.03));}
.location-live-status{display:inline-flex;align-items:center;gap:6px;font-weight:1000;border-radius:999px;padding:7px 10px;margin-top:8px;width:max-content;}
.location-live-status.open{background:rgba(34,197,94,.14);color:#86efac;border:1px solid rgba(34,197,94,.45);}
.location-live-status.closed{background:rgba(239,68,68,.14);color:#fca5a5;border:1px solid rgba(239,68,68,.45);}
.store-tile small{display:block;color:var(--muted);font-weight:800;margin-top:5px;}
.store-status.open{background:rgba(34,197,94,.18)!important;color:#86efac!important;border-color:rgba(34,197,94,.45)!important;}
.store-status.closed{background:rgba(239,68,68,.18)!important;color:#fca5a5!important;border-color:rgba(239,68,68,.45)!important;}
.store-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.store-status-dot.open{background:#22c55e;}
.store-status-dot.closed{background:#ef4444;}
.store-hours-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:200;display:grid;place-items:center;padding:20px;}
.store-hours-modal.hidden{display:none;}
.store-hours-dialog{width:min(940px,96vw);max-height:90vh;overflow:auto;background:#161616;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:22px;box-shadow:0 28px 80px rgba(0,0,0,.55);padding:24px;position:relative;}
.store-hours-close{position:absolute;right:16px;top:14px;border:1px solid rgba(255,255,255,.18);background:#242424;color:#fff;border-radius:999px;width:38px;height:38px;font-size:24px;font-weight:900;}
.store-hours-dialog-head h2{font-size:2rem;margin:4px 0 6px;}
.store-hours-dialog-head p{margin:0;color:#d1d5db;}
.store-hours-live{display:inline-flex;margin-top:12px;padding:8px 12px;border-radius:999px;font-weight:1000;}
.store-hours-live.open{background:rgba(34,197,94,.16);color:#86efac;border:1px solid rgba(34,197,94,.45);}
.store-hours-live.closed{background:rgba(239,68,68,.16);color:#fca5a5;border:1px solid rgba(239,68,68,.45);}
.special-note{display:block;margin-top:8px;color:#fbbf24;font-weight:900;}
.store-hours-live-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0;}
.store-hours-live-grid div{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px;background:#202020;}
.store-hours-live-grid span{display:block;color:#a3a3a3;font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.store-hours-live-grid b.open{color:#86efac;}.store-hours-live-grid b.closed{color:#fca5a5;}
.store-hours-table-title{font-weight:1000;color:#ffb020;margin:18px 0 8px;text-transform:uppercase;letter-spacing:.06em;}
.store-hours-table{width:100%;border-collapse:collapse;border:1px solid rgba(255,255,255,.14);border-radius:14px;overflow:hidden;background:#202020;}
.store-hours-table th,.store-hours-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.10);text-align:left;font-size:.9rem;}
.store-hours-table th{color:#ffb020;background:#181818;}
.store-hours-table tr.today{background:rgba(255,176,32,.10);}
.store-hours-table small{display:block;color:#ffb020;}
.store-hours-actions{display:flex;justify-content:flex-end;margin-top:18px;}
.primary-like{border:0;border-radius:14px;background:linear-gradient(135deg,#ff9f1f,#f97316);color:#111;font-weight:1000;padding:12px 16px;}
@media(max-width:720px){.store-hours-live-grid{grid-template-columns:1fr}.store-hours-table{font-size:.8rem}.store-hours-table th,.store-hours-table td{padding:8px 6px}.store-hours-dialog{padding:18px}}

.preorder-box{
  border:1px solid var(--line);
  border-radius:14px;
  padding:12px;
  background:rgba(255,255,255,.035);
  display:grid;
  gap:9px;
}
.preorder-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.preorder-head strong{ font-size:.98rem; }
#serviceOpenStatus{
  font-size:.78rem;
  font-weight:1000;
  border-radius:999px;
  padding:5px 9px;
}
#serviceOpenStatus.open{
  background:rgba(36,180,97,.18);
  color:#70ffad;
}
#serviceOpenStatus.closed{
  background:rgba(255,75,85,.18);
  color:#ff9da3;
}
.mini-help{
  margin:0;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.35;
}
.checkout-hints{
  display:grid;
  gap:7px;
  margin:-4px 0 12px;
}
.checkout-hint{
  border:1px solid rgba(255,159,31,.35);
  background:rgba(255,159,31,.08);
  color:#ffd89b;
  border-radius:10px;
  padding:8px 10px;
  font-size:.8rem;
  line-height:1.35;
}
.checkout-hint.success{
  border-color:rgba(36,180,97,.35);
  background:rgba(36,180,97,.1);
  color:#8dffbd;
}
.promo-included-note{
  margin:8px 0 0;
  color:#80ffb0;
  font-weight:1000;
  font-size:.78rem;
}

.service-pause-panel{
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  margin:0 0 18px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(300px,1.4fr);
  gap:16px;
  align-items:center;
}
.service-pause-panel h3{margin:3px 0 5px;}
.service-pause-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.service-pause-btn{
  border:2px solid transparent;
  border-radius:16px;
  padding:14px;
  text-align:left;
  display:grid;
  gap:4px;
  cursor:pointer;
}
.service-pause-btn span{
  font-weight:900;
  color:#374151;
}
.service-pause-btn strong{
  font-size:1.7rem;
  font-weight:1000;
}
.service-pause-btn small{
  color:#4b5563;
  line-height:1.25;
}
.service-pause-btn.on{
  background:#eafff2;
  border-color:#26a65b;
}
.service-pause-btn.on strong{color:#15803d;}
.service-pause-btn.off{
  background:#fff0f0;
  border-color:#dc2626;
}
.service-pause-btn.off strong{color:#b91c1c;}
@media(max-width:850px){
  .service-pause-panel{grid-template-columns:1fr;}
  .service-pause-grid{grid-template-columns:1fr;}
}

.service-pause-card{
  display:grid;
  gap:8px;
}
.service-pause-duration{
  width:100%;
}
.capacity-settings-section{
  border:1px solid #dbeafe;
  background:#f8fbff;
}


/* Kompakte Service-Schalter oben neben dem Location-Namen */
.headline-with-pause{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.headline-with-pause h2{
  margin:0;
}
.service-pause-inline{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.service-pause-mini{
  position:relative;
  display:grid;
  gap:4px;
}
.service-pause-inline .service-pause-btn{
  min-width:92px;
  min-height:38px;
  border-radius:10px;
  padding:5px 9px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
  text-align:left;
  border-width:1px;
}
.service-pause-inline .service-pause-btn span{
  font-size:.72rem;
  line-height:1;
}
.service-pause-inline .service-pause-btn strong{
  font-size:.92rem;
  line-height:1;
}
.service-pause-inline .service-pause-btn small{
  display:block;
  position:absolute;
  top:40px;
  left:0;
  min-width:120px;
  font-size:.66rem;
  line-height:1.1;
  color:#6b7280;
}
.service-pause-inline .service-pause-duration{
  position:absolute;
  z-index:20;
  top:43px;
  left:0;
  width:150px;
  min-height:34px;
  font-size:.82rem;
  box-shadow:0 12px 30px rgba(15,23,42,.18);
}
.service-pause-inline .service-pause-duration.hidden{
  display:none;
}
@media(max-width:850px){
  .headline-with-pause{align-items:flex-start;}
  .service-pause-inline{width:100%;}
}


/* Bestellart-Umschalter im Warenkorb statt oben im Hero */
.compact-store-head{
  grid-template-columns:1fr;
}
.checkout-fulfillment-block{
  border:1px solid rgba(255,197,69,.18);
  background:rgba(255,255,255,.025);
  border-radius:16px;
  padding:10px;
  margin-bottom:14px;
}
.checkout-fulfillment-block .section-label{
  margin-bottom:7px;
}
.checkout-fulfillment-toggle{
  width:100%;
  border-radius:14px;
  padding:4px;
}
.checkout-fulfillment-toggle button{
  padding:11px 10px;
  border-radius:11px;
  font-size:.92rem;
}
@media(max-width:980px){
  .checkout-fulfillment-block{
    position:sticky;
    top:8px;
    z-index:8;
  }
}

.sidebar-group{
  display:grid;
  gap:6px;
  margin:10px 0 14px;
}
.sidebar-group p{
  margin:0 0 2px;
  padding:0 10px;
  color:#9ca3af;
  font-size:.72rem;
  font-weight:1000;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-tab.grouped-tab,
.sidebar-a.grouped-tab{
  width:100%;
  text-decoration:none;
  justify-content:flex-start;
}
.shopping-list-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:12px;
}
.shopping-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#fff;
  display:grid;
  gap:6px;
}
.shopping-card strong{font-size:1rem;}
.shopping-card small{color:#64748b;}
.shopping-card p{margin:0;color:#374151;line-height:1.35;}

.backoffice-filter-row{
  display:grid;
  grid-template-columns:220px 180px 180px;
  gap:10px;
  margin:0 0 16px;
}
@media(max-width:780px){
  .backoffice-filter-row{grid-template-columns:1fr;}
}

.admin-tab.main-group-tab{
  justify-content:flex-start;
  font-size:.96rem;
  padding:14px 12px;
  border-radius:12px;
}
.settings-tile-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;
}
.settings-tile{
  min-height:160px;
  border:1.5px solid #2f80ff;
  border-radius:14px;
  background:#fff;
  color:#1f2937;
  display:grid;
  place-items:center;
  text-align:center;
  gap:8px;
  padding:24px 18px;
  cursor:pointer;
  text-decoration:none;
  transition:.15s ease;
}
.settings-tile:hover{
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(37,99,235,.13);
}
.settings-tile span{
  font-size:2.1rem;
  color:#2f80ff;
}
.settings-tile strong{
  font-size:1.08rem;
  font-weight:900;
}
.settings-tile small{
  color:#64748b;
  line-height:1.35;
}
.settings-home-card span{
  font-size:2rem;
}


.welcome-title-wrap{
  min-width:0;
}
.welcome-title-line{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.welcome-title-line h2{
  margin:0;
}
.top-service-pause-controls{
  display:inline-flex;
  align-items:center;
}
.top-service-pause-controls.hidden{
  display:none;
}
.top-service-pause-controls .service-pause-inline{
  margin-top:0;
}
.top-service-pause-controls .service-pause-inline .service-pause-btn{
  background:#fff;
}


/* Obere Leiste: Abholung/Lieferung links vor Zurück, Mobile-first entfernt */
.pa-topbar .topbar-actions{
  align-items:center;
}
.pa-topbar .top-service-pause-controls{
  order:-1;
  margin-right:4px;
}
.pa-topbar .top-service-pause-controls .service-pause-inline{
  gap:6px;
}
.pa-topbar .top-service-pause-controls .service-pause-inline .service-pause-btn{
  min-width:88px;
  min-height:36px;
  padding:5px 8px;
}

.customer-filter-row{
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:10px;
  margin:0 0 14px;
}
.customer-table td small{
  display:block;
  color:#64748b;
  margin-top:3px;
}
.deletion-requested{
  background:#fff5f5;
}
.danger-text{
  color:#b91c1c!important;
  font-weight:900;
}
.danger-btn{
  border-color:#fecaca!important;
  color:#b91c1c!important;
}
.customer-edit-card{
  margin-top:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  padding:16px;
  display:grid;
  gap:12px;
}
@media(max-width:900px){
  .customer-filter-row{grid-template-columns:1fr;}
}


.required-fields-note{
  margin-top:-4px;
  color:#f8d589;
}

.enhanced-size-row{
  grid-template-columns:1.1fr .8fr 1fr auto auto;
  align-items:center;
}
.size-half-chip{
  white-space:nowrap;
}
.half-pizza-section{
  border:1px solid rgba(215,25,32,.22);
  background:rgba(255,248,230,.62);
  border-radius:16px;
  padding:14px;
}
.half-pizza-picker{
  margin-top:10px;
}
.disabled-half-section{
  opacity:.58;
}
.disabled-half-section .half-toggle{
  pointer-events:none;
}
.size-choice small{
  display:block;
  margin-top:3px;
  color:#198754;
  font-weight:800;
}
@media(max-width:760px){
  .enhanced-size-row{grid-template-columns:1fr;}
}

.half-main-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.half-picker-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:8px 0 10px;
}
.half-picker-head span{
  color:#64748b;
  font-size:.9rem;
}
.half-choice-scroll{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:10px;
  max-height:360px;
  overflow:auto;
  padding:4px 4px 8px;
}
.half-choice-card{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:8px;
  display:grid;
  grid-template-columns:82px 1fr;
  gap:10px;
  text-align:left;
  cursor:pointer;
}
.half-choice-card.selected{
  border-color:#f59e0b;
  box-shadow:0 0 0 3px rgba(245,158,11,.16);
}
.half-choice-img{
  width:82px;
  height:72px;
  border-radius:12px;
  background:#111;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.half-choice-img img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.half-choice-card strong,
.half-choice-card small,
.half-choice-card b{
  display:block;
}
.half-choice-card small{
  color:#64748b;
  line-height:1.25;
  max-height:34px;
  overflow:hidden;
}
.half-choice-card b{
  color:#198754;
  margin-top:5px;
}
.half-detail-panels{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
  margin-top:14px;
}
.half-custom-card{
  border:1px solid rgba(245,158,11,.35);
  background:#fffaf0;
  border-radius:16px;
  padding:12px;
}
.half-custom-head{
  display:grid;
  gap:2px;
  margin-bottom:10px;
}
.half-custom-head span{
  color:#d97706;
  font-weight:900;
  text-transform:uppercase;
  font-size:.78rem;
  letter-spacing:.04em;
}
.half-custom-head strong{
  font-size:1.05rem;
}
.half-custom-head small{
  color:#64748b;
}
.half-subsection{
  margin-top:12px;
}
.half-subsection h4{
  margin:0 0 8px;
  font-size:.92rem;
}


.half-pizza-section.hidden{
  display:none!important;
}
.size-choice{
  cursor:pointer;
}
.size-choice.half-size-action{
  border-style:solid;
  border-color:#22c55e!important;
  background:rgba(34,197,94,.10)!important;
  color:#f8fafc;
}
.size-choice.half-size-action strong{
  color:#22c55e;
}
.size-choice.half-size-action span{
  color:#fff;
}
.size-choice.half-size-action small{
  color:#86efac;
}
.half-pizza-section.hidden{display:none!important;}


/* FIX: Bestellseite Desktop mit 3 Speisen pro Reihe + Rabatttext sichtbar */
@media (min-width: 1180px){
  .shop-page .layout{
    max-width:1500px;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:22px;
  }
  .shop-page .product-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:24px 22px;
    align-items:start;
  }
}
@media (min-width: 820px) and (max-width:1179px){
  .shop-page .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:24px 18px;
  }
}
@media (max-width:819px){
  .shop-page .product-grid{
    grid-template-columns:1fr!important;
  }
}

/* Rabattzeile nicht mehr abschneiden/verstecken */
.shop-page .shop-product-card{
  padding-bottom:98px!important;
  overflow:visible!important;
}
.shop-page .shop-product-card .product-card-body{
  bottom:54px!important;
  padding:10px 12px 12px!important;
  overflow:visible!important;
}
.shop-page .promo-included-note{
  display:block!important;
  visibility:visible!important;
  margin:9px 0 0!important;
  padding:3px 0 0!important;
  color:#38ff7a!important;
  font-size:.86rem!important;
  line-height:1.15!important;
  font-weight:1000!important;
  text-align:left!important;
  text-shadow:0 1px 2px rgba(0,0,0,.75);
  white-space:normal!important;
}
.shop-page .category-block{
  margin-bottom:12px;
}


.half-addons-title{
  grid-column:1 / -1;
  border:1px solid rgba(255,159,31,.35);
  background:rgba(255,159,31,.08);
  border-radius:14px;
  padding:12px 14px;
}
.half-addons-title h3{
  margin:0 0 4px;
  color:#ff9f1f;
  font-size:1.05rem;
}
.half-addons-title p{
  margin:0;
  color:#f5f5f5;
  font-size:.9rem;
  line-height:1.35;
}


/* FIX: Location-Logo oben schöner und voller darstellen */
.shop-page .compact-store-head{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  max-width:1500px;
  min-height:260px;
  padding:24px;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 12% 18%, rgba(232,59,52,.34), transparent 22%),
    radial-gradient(circle at 86% 20%, rgba(68,193,95,.22), transparent 22%),
    radial-gradient(circle at 22% 78%, rgba(255,204,51,.18), transparent 26%),
    radial-gradient(circle at 82% 76%, rgba(255,255,255,.08), transparent 20%),
    linear-gradient(135deg, rgba(20,20,20,.36), rgba(10,10,10,.72)),
    url('/pizza-hero.jpg');
  background-size:cover;
  background-position:center;
}
.shop-page .compact-store-head::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,.08) 40%, rgba(0,0,0,.3)),
    radial-gradient(circle at 16% 24%, rgba(255,255,255,.10) 0 10px, transparent 11px),
    radial-gradient(circle at 21% 29%, rgba(255,86,70,.22) 0 22px, transparent 23px),
    radial-gradient(circle at 73% 22%, rgba(255,255,255,.12) 0 11px, transparent 12px),
    radial-gradient(circle at 78% 28%, rgba(245,52,52,.18) 0 19px, transparent 20px),
    radial-gradient(circle at 22% 72%, rgba(255,255,255,.10) 0 9px, transparent 10px),
    radial-gradient(circle at 27% 77%, rgba(54,180,73,.18) 0 18px, transparent 19px),
    radial-gradient(circle at 76% 72%, rgba(255,255,255,.10) 0 9px, transparent 10px),
    radial-gradient(circle at 81% 77%, rgba(255,194,31,.18) 0 18px, transparent 19px);
  opacity:.95;
  pointer-events:none;
}
.shop-page .compact-store-head::after{
  content:"";
  position:absolute;
  inset:18px;
  z-index:0;
  border-radius:26px;
  border:1px solid rgba(255,199,88,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  pointer-events:none;
}
.shop-page .store-hero-brand{
  position:relative;
  z-index:1;
  width:min(920px, 100%);
  display:grid;
  justify-items:center;
  text-align:center;
  gap:10px;
  padding:0;
}
.shop-page .store-hero-brand .section-label{
  justify-self:start;
  margin-left:4px;
}
.shop-page .shop-store-logo{
  width:100%;
  max-width:760px;
  height:190px;
  max-height:none;
  object-fit:contain;
  object-position:center;
  display:block;
  margin:0 auto 2px;
  background:rgba(255,255,255,.95);
  border-radius:18px;
  padding:18px 26px;
  border:1px solid rgba(255,255,255,.82);
  box-shadow:0 22px 55px rgba(0,0,0,.45);
  backdrop-filter:blur(3px);
}
.shop-page #shopStoreAddress{
  margin:0;
  color:#fff8ef;
  font-size:1.02rem;
  font-weight:800;
  text-shadow:0 2px 10px rgba(0,0,0,.85);
}
.shop-page #shopStoreTitle:not(.visually-hidden-title){
  text-align:center;
}
@media(max-width:760px){
  .shop-page .compact-store-head{
    min-height:210px;
    padding:16px;
  }
  .shop-page .compact-store-head::after{
    inset:12px;
    border-radius:20px;
  }
  .shop-page .shop-store-logo{
    height:145px;
    padding:12px 16px;
    border-radius:15px;
  }
  .shop-page .store-hero-brand .section-label{
    justify-self:center;
    margin-left:0;
  }
}


/* FIX: Halb/Halb Zutatenbereich größer, deutlicher und besser lesbar */
.half-pizza-section{
  padding:18px;
  background:rgba(255,248,230,.70);
}
.half-addons-title{
  border:1px solid rgba(255,159,31,.45);
  background:rgba(255,248,230,.92);
  padding:14px 16px;
}
.half-addons-title h3{
  margin:0 0 6px;
  color:#1f2937;
  font-size:1.18rem;
  font-weight:900;
}
.half-addons-title p{
  margin:0;
  color:#334155;
  font-size:1rem;
  line-height:1.45;
  font-weight:700;
}
.half-detail-panels{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
  align-items:start;
}
.half-custom-card{
  padding:16px 16px 18px;
  min-height:100%;
}
.half-custom-head{
  gap:4px;
  margin-bottom:12px;
}
.half-custom-head span{
  color:#b45309;
  font-size:.92rem;
}
.half-custom-head strong{
  color:#111827;
  font-size:1.18rem;
  line-height:1.2;
}
.half-custom-head small{
  color:#334155;
  font-size:1.02rem;
  font-weight:700;
}
.half-subsection{
  margin-top:14px;
}
.half-subsection h4{
  margin:0 0 10px;
  font-size:1rem;
  color:#111827;
}
.half-custom-card .customizer-chip-list{
  gap:12px;
}
.half-custom-card .customizer-chip{
  padding:12px 14px;
  font-weight:700;
}
.half-custom-card .extra-grid.compact-extra-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:10px;
}
.half-custom-card .extra-row{
  min-height:76px;
  padding:10px 12px;
}
.half-custom-card .extra-info strong{
  font-size:1rem;
  line-height:1.2;
}
.half-custom-card .extra-info small{
  font-size:.92rem;
  line-height:1.25;
  color:#e5e7eb;
}
.half-custom-card .extra-stepper{
  gap:8px;
}
.half-custom-card .step-btn{
  width:30px;
  height:30px;
}
.half-custom-card .extra-stepper span{
  min-width:20px;
  font-size:.98rem;
}
@media (max-width:980px){
  .half-detail-panels{
    grid-template-columns:1fr;
  }
  .half-custom-card .extra-grid.compact-extra-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:640px){
  .half-pizza-section{
    padding:14px;
  }
  .half-addons-title h3{
    font-size:1.06rem;
  }
  .half-addons-title p{
    font-size:.94rem;
  }
  .half-custom-card .extra-grid.compact-extra-grid{
    grid-template-columns:1fr;
  }
}


.availability-action-cell{
  display:grid;
  gap:6px;
  align-items:center;
  justify-items:start;
}
.availability-action-cell small{
  color:#64748b;
  font-weight:800;
  line-height:1.2;
}
.availability-toggle-btn{
  min-width:74px;
  border:0;
  border-radius:999px;
  padding:8px 12px;
  font-weight:1000;
  cursor:pointer;
}
.availability-toggle-btn.on{
  background:#dcfce7;
  color:#166534;
  border:1px solid #22c55e;
}
.availability-toggle-btn.off{
  background:#fee2e2;
  color:#991b1b;
  border:1px solid #ef4444;
}
.ingredient-tile.unavailable small,
.availability-action-cell .danger-text{
  color:#b91c1c;
}


.availability-mode-menu{
  position:fixed;
  z-index:9999;
  width:270px;
  border:1px solid rgba(255,159,31,.45);
  background:#111827;
  color:#fff;
  border-radius:14px;
  padding:10px;
  box-shadow:0 18px 45px rgba(0,0,0,.45);
  display:grid;
  gap:8px;
}
.availability-mode-menu strong{
  color:#ff9f1f;
  font-size:.92rem;
  margin-bottom:2px;
}
.availability-mode-menu button{
  border:1px solid rgba(255,255,255,.12);
  background:#1f2937;
  color:#fff;
  border-radius:10px;
  padding:10px 12px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}
.availability-mode-menu button:hover{
  border-color:#ff9f1f;
  background:#2b3444;
}
.availability-mode-menu button[data-mode=""]{
  color:#cbd5e1;
  font-weight:700;
}


.required-fields-note{
  color:#f8d589;
  font-weight:800;
}
.optional-benefit-note{
  color:#9ae6b4;
  border:1px solid rgba(34,197,94,.22);
  background:rgba(34,197,94,.08);
  border-radius:10px;
  padding:8px 10px;
  line-height:1.35;
}
.optional-customer-fields{
  margin-top:4px;
}


.optional-customer-fields{
  grid-template-columns:1fr;
}


.privacy-link{
  border:0;
  background:transparent;
  color:#ffcc45;
  font-weight:1000;
  text-decoration:underline;
  cursor:pointer;
  padding:0 2px;
  font:inherit;
}
.privacy-link:hover{
  color:#fff1a8;
}
.privacy-modal-card{
  width:min(760px,100%);
}
.privacy-notice-content{
  padding:20px 22px;
  display:grid;
  gap:14px;
  color:#f8fafc;
}
.privacy-notice-content section{
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
  border-radius:14px;
  padding:12px 14px;
}
.privacy-notice-content h3{
  margin:0 0 6px;
  color:#ffcc45;
  font-size:1rem;
}
.privacy-notice-content p{
  margin:0;
  line-height:1.45;
  color:#e5e7eb;
}
.privacy-modal-foot{
  justify-content:flex-end;
}
@media(max-width:760px){
  .privacy-notice-content{
    padding:14px;
  }
}


.admin-customer-modal{
  z-index:130;
}
.customer-modal-card{
  width:min(1100px, 100%);
  max-height:min(92vh, 920px);
}
.customer-edit-card-modal{
  margin:0;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:20px 22px 0;
  background:#fff;
}
.customer-modal-foot{
  margin:18px -22px 0;
  background:#fff;
  border-top:1px solid var(--line);
}
.customer-modal-foot .mini-note{
  margin-right:auto;
}
@media(max-width:760px){
  .customer-edit-card-modal{
    padding:14px 14px 0;
  }
  .customer-modal-foot{
    margin:14px -14px 0;
  }
}


.report-filter-row{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr auto;
  gap:10px;
  align-items:center;
  margin:0 0 16px;
}
.report-bar{
  width:100%;
  max-width:220px;
  height:12px;
  border-radius:999px;
  background:#eef2f7;
  overflow:hidden;
  border:1px solid #dbe4ef;
}
.report-bar span{
  display:block;
  height:100%;
  background:#e32922;
  border-radius:999px;
}
.report-subtitle{
  margin:18px 0 10px;
  font-size:1.05rem;
}
@media(max-width:1000px){
  .report-filter-row{grid-template-columns:1fr;}
}


.payment-provider-box{
  border-left:4px solid #e32922;
}
#paymentSettingsMsg{
  font-weight:900;
}


.checkout-payment-box{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.18);
  border-radius:16px;
  padding:12px;
  margin:10px 0;
}
.checkout-payment-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
  color:#fff;
}
.checkout-payment-head span{
  width:24px;
  height:24px;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  background:#1fd39a;
  color:#07130f;
  font-weight:1000;
}
.payment-method-grid{
  display:grid;
  gap:8px;
}
.payment-method-tile{
  width:100%;
  display:grid;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  align-items:center;
  text-align:left;
  border:1px solid rgba(255,255,255,.18);
  background:#242424;
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
}
.payment-method-tile .pay-icon{
  grid-row:1 / span 2;
  width:30px;
  height:30px;
  border-radius:8px;
  background:rgba(255,255,255,.08);
  display:grid;
  place-items:center;
  font-weight:1000;
}
.payment-method-tile strong{
  font-size:.98rem;
  line-height:1.1;
}
.payment-method-tile small{
  color:#cbd5e1;
}
.payment-method-tile.active{
  border-color:#ff9900;
  box-shadow:0 0 0 2px rgba(255,153,0,.26);
  background:#303030;
}
.payment-toggle-grid .disabled-card{
  opacity:.55;
  cursor:not-allowed;
}


.driver-admin-grid{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:18px;
}
.driver-qr-card{
  text-align:center;
}
.driver-qr-box{
  background:#050505;
  color:#fff;
  border-radius:16px;
  padding:16px;
  display:grid;
  gap:12px;
  justify-items:center;
  margin:14px 0;
}
.driver-qr-box img{
  width:210px;
  height:210px;
  background:#fff;
  padding:8px;
}
.driver-page{
  background:#101322;
  min-height:100vh;
}
.driver-shell{
  width:min(980px,100%);
  margin:0 auto;
  padding:22px;
}
.driver-card,.driver-head-card{
  background:#fff;
  border-radius:20px;
  padding:20px;
  margin-bottom:16px;
  box-shadow:0 16px 40px rgba(0,0,0,.18);
}
.driver-head-card{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.driver-card h1,.driver-head-card h1{
  margin:0;
}
.driver-order-card{
  border:1px solid #dbe4ef;
  border-radius:16px;
  padding:14px;
  margin:12px 0;
  background:#f8fafc;
}
.driver-order-top{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.driver-order-top span{
  background:#e0f2fe;
  color:#075985;
  border-radius:999px;
  padding:5px 10px;
  font-weight:900;
}
.driver-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.compact-select{
  min-width:150px;
}
@media(max-width:900px){
  .driver-admin-grid{grid-template-columns:1fr;}
  .driver-head-card{display:block;}
}


.admin-profile-menu{
  position:relative;
}
.admin-profile-trigger{
  border:1px solid #dbe4ef;
  background:#fff;
  border-radius:14px;
  padding:8px 12px;
  display:flex;
  align-items:center;
  gap:10px;
  min-width:210px;
  cursor:pointer;
  color:#111827;
}
.admin-profile-trigger small{
  display:block;
  font-size:.78rem;
  color:#6b7280;
  text-align:left;
}
.admin-profile-trigger strong{
  display:block;
  max-width:160px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:left;
  font-size:.88rem;
}
.admin-profile-avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  background:#d9d4f5;
  color:#34315f;
  display:grid;
  place-items:center;
  font-weight:1000;
  font-size:1.2rem;
}
.profile-chevron{
  margin-left:auto;
  color:#6b7280;
}
.admin-profile-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 10px);
  width:320px;
  background:#fff;
  color:#111827;
  border:1px solid #e5e7eb;
  border-radius:16px;
  box-shadow:0 24px 70px rgba(0,0,0,.25);
  padding:18px;
  z-index:500;
}
.profile-info-list{
  display:grid;
  gap:12px;
  margin-bottom:16px;
}
.profile-info-list div{
  display:grid;
  grid-template-columns:32px 1fr;
  gap:10px;
  align-items:center;
}
.profile-info-list span{
  font-size:1.25rem;
  opacity:.68;
}
.profile-action-btn{
  width:100%;
  border:0;
  border-radius:12px;
  padding:12px 14px;
  display:block;
  text-align:center;
  text-decoration:none;
  background:#2f80ed;
  color:#fff;
  font-weight:1000;
  margin:10px 0;
  cursor:pointer;
}
.profile-driver-box{
  background:#050505;
  color:#fff;
  border-radius:16px;
  padding:14px;
  display:grid;
  gap:10px;
  justify-items:center;
  margin:12px 0 16px;
}
.profile-driver-box img{
  width:210px;
  height:210px;
  background:#fff;
  padding:8px;
}
.profile-driver-box small{
  word-break:break-all;
  color:#d1d5db;
  font-size:.72rem;
  text-align:center;
}
.logout-profile-btn{
  background:#2563eb;
}
@media(max-width:760px){
  .admin-profile-trigger{
    min-width:auto;
  }
  .admin-profile-trigger span:nth-child(2){
    display:none;
  }
  .admin-profile-dropdown{
    right:-60px;
    width:min(320px,calc(100vw - 24px));
  }
}

/* ==========================================================
   MOBILE OPTIMIERUNG 2026-07-15
   Nur Darstellung/Responsive Design – keine Funktionslogik geändert.
   ========================================================== */
@media (max-width: 760px){
  html{font-size:15px;}
  body{overflow-x:hidden;}
  img, video, canvas{max-width:100%;height:auto;}

  /* Allgemeine Seitenbreite */
  .page-shell,
  .shop-shell,
  .order-shell,
  .driver-shell,
  .container,
  main{
    width:100%;
    max-width:100%;
  }

  /* Startseite */
  .topbar{
    position:sticky;
    top:0;
    z-index:100;
    padding:10px 12px;
    gap:10px;
    flex-wrap:wrap;
  }
  .brand{
    min-width:0;
    gap:8px;
  }
  .brand-logo{
    max-height:48px;
    max-width:150px;
  }
  .topnav{
    order:3;
    width:100%;
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding-bottom:2px;
    -webkit-overflow-scrolling:touch;
  }
  .topnav a,
  .lang-switch button,
  .nav-order{
    min-height:42px;
    white-space:nowrap;
  }
  .lang-switch{
    margin-left:auto;
    flex-wrap:nowrap;
  }
  .home-hero,
  .hero,
  .pizzaarriva-home{
    min-height:auto;
    padding:34px 14px 26px;
  }
  .home-hero-inner,
  .hero-inner{
    width:100%;
    text-align:center;
  }
  .hero-logo-wrap,
  .center-logo{
    max-width:220px;
    margin-inline:auto;
  }
  .home-hero h1,
  .hero h1{
    font-size:clamp(2.15rem,13vw,3.55rem);
    line-height:.95;
  }
  .hero-subline,
  .home-hero p{
    font-size:1rem;
    line-height:1.45;
  }
  .hero-actions,
  .centered-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .primary-cta,.secondary-cta,.nav-order{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .trust-row{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .info-grid,
  .gallery-grid,
  .promo-grid,
  .location-grid{
    grid-template-columns:1fr!important;
  }

  /* Standort-/Order-Seite */
  .order-main,
  .order-hero,
  .locations-wrap{
    padding:16px 12px;
  }
  .location-card,
  .store-card,
  .order-card{
    border-radius:18px;
    padding:16px;
  }
  .store-grid,
  .order-location-grid{
    grid-template-columns:1fr!important;
    gap:12px;
  }
  .address-grid,
  .checkout-grid,
  .form-grid,
  .form-grid.three,
  .form-grid.four{
    grid-template-columns:1fr!important;
  }
  input,select,textarea,button{
    font-size:16px; /* verhindert iOS Zoom */
  }
  .admin-input,.admin-select,.admin-textarea,
  .input,.select,.textarea{
    min-height:46px;
  }

  /* Shop/Bestellseite */
  .shop-page{
    overflow-x:hidden;
  }
  .shop-hero,
  .shop-header,
  .store-hero{
    padding:18px 12px;
    border-radius:0 0 22px 22px;
  }
  .shop-hero-logo,
  .location-logo,
  .store-logo{
    max-width:210px;
    max-height:110px;
  }
  .shop-layout,
  .shop-grid-layout,
  .order-layout{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    padding:12px!important;
  }
  .category-tabs,
  .category-nav,
  .shop-categories{
    display:flex!important;
    overflow-x:auto;
    gap:8px;
    padding:8px 2px 10px;
    -webkit-overflow-scrolling:touch;
    position:sticky;
    top:0;
    z-index:60;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
  }
  .category-tabs button,
  .category-nav button,
  .shop-categories button,
  .category-pill{
    white-space:nowrap;
    min-height:42px;
  }
  .product-grid,
  .shop-product-grid,
  .products-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .shop-product-card,
  .product-card{
    border-radius:18px;
    min-height:auto;
  }
  .shop-product-card img,
  .product-card img,
  .product-photo{
    max-height:190px;
    object-fit:cover;
  }
  .product-card h3,
  .shop-product-card h3{
    font-size:1.05rem;
  }
  .cart-panel,
  .basket-panel,
  .checkout-panel,
  .cart-card{
    position:static!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    border-radius:18px!important;
  }
  .cart-sticky,
  .sticky-cart{
    position:static!important;
  }
  .cart-summary,
  .cart-footer{
    position:sticky;
    bottom:0;
    z-index:80;
    background:#fff;
    border-top:1px solid #e5e7eb;
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
  }
  .cart-summary button,
  .checkout-btn,
  .primary-btn{
    min-height:48px;
    width:100%;
  }
  .modal,
  .dialog-backdrop,
  .product-dialog-backdrop{
    padding:8px!important;
    align-items:flex-end!important;
  }
  .modal-card,
  .product-modal,
  .product-dialog,
  .dialog-card{
    width:100%!important;
    max-width:100%!important;
    max-height:92vh!important;
    border-radius:22px 22px 0 0!important;
    overflow:auto!important;
    padding:16px!important;
  }
  .extras-grid,
  .extra-grid,
  .addons-grid,
  .ingredient-grid,
  .compact-extra-grid{
    grid-template-columns:1fr!important;
  }
  .half-half-grid,
  .half-pizza-grid,
  .half-customize-grid{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .half-panel,
  .half-box{
    padding:14px!important;
    border-radius:16px!important;
  }

  /* Fahrer-App */
  .driver-page{
    background:#0f172a;
  }
  .driver-shell{
    padding:12px;
  }
  .driver-card,
  .driver-head-card{
    border-radius:18px;
    padding:16px;
  }
  .driver-head-card{
    display:grid;
    gap:12px;
  }
  .driver-head-card .ghost,
  #driverLogout{
    width:100%;
    min-height:44px;
  }
  .driver-order-card{
    padding:14px;
  }
  .driver-order-top{
    display:grid;
    gap:8px;
    align-items:start;
  }
  .driver-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .driver-actions a,
  .driver-actions button{
    width:100%;
    min-height:46px;
    text-align:center;
    justify-content:center;
  }
  .driver-card .overview-grid{
    grid-template-columns:1fr!important;
  }
  .driver-card .form-grid{
    grid-template-columns:1fr!important;
  }

  /* Profil/QR oben rechts im Location-Admin */
  .admin-profile-menu{
    width:100%;
  }
  .admin-profile-trigger{
    width:100%;
    justify-content:flex-start;
  }
  .admin-profile-dropdown{
    position:fixed;
    left:10px!important;
    right:10px!important;
    top:74px!important;
    width:auto!important;
    max-height:calc(100vh - 90px);
    overflow:auto;
    z-index:9999;
  }
  .profile-driver-box img,
  .driver-qr-box img{
    width:min(220px,72vw);
    height:auto;
  }
}

@media (max-width: 420px){
  .home-hero h1,.hero h1{font-size:2.45rem;}
  .brand-logo{max-width:132px;}
  .shop-product-card img,.product-card img{max-height:160px;}
  .modal-card,.product-modal,.product-dialog,.dialog-card{padding:14px!important;}
}

/* ==========================================================
   MOBILE FEINJUSTIERUNG 2026-07-15 – echte Handy-Ansicht
   Ziel: keine horizontale Überbreite, kleinere Pizza-Bilder,
   quadratische/saubere Kacheln, Warenkorb bleibt bedienbar.
   Nur CSS, keine Funktionslogik geändert.
   ========================================================== */
@media (max-width: 760px){
  html,
  body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  *,*::before,*::after{box-sizing:border-box;}

  .shop-page,
  .shop-page body,
  .shop-main,
  .shop-page main{
    width:100%!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
  }

  .shop-page .layout{
    width:100%!important;
    max-width:100vw!important;
    margin:0!important;
    padding:0 12px 96px!important;
    display:block!important;
    overflow-x:hidden!important;
  }

  .shop-page .shop-topbar{
    width:100%!important;
    max-width:100vw!important;
    padding:10px 12px!important;
    overflow:hidden!important;
  }
  .shop-page .shop-topbar .brand{
    min-width:0!important;
    max-width:100%!important;
  }
  .shop-page .shop-topbar .brand-logo{
    width:auto!important;
    max-width:78px!important;
    max-height:34px!important;
    object-fit:contain!important;
  }
  .shop-page .shop-topbar .brand-text{
    display:block!important;
    min-width:0!important;
    max-width:calc(100vw - 150px)!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:1rem!important;
  }

  .shop-page .compact-store-head{
    width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
    min-height:auto!important;
    margin:12px auto 18px!important;
    padding:12px!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }
  .shop-page .compact-store-head::after{inset:9px!important;border-radius:16px!important;}
  .shop-page .store-hero-brand{
    width:100%!important;
    max-width:100%!important;
    gap:8px!important;
  }
  .shop-page .store-hero-brand .section-label{
    justify-self:center!important;
    font-size:.92rem!important;
    letter-spacing:.14em!important;
  }
  .shop-page .shop-store-logo{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:118px!important;
    padding:9px 12px!important;
    border-radius:14px!important;
    object-fit:contain!important;
  }
  .shop-page #shopStoreAddress{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(.86rem,4vw,1.04rem)!important;
    line-height:1.16!important;
    overflow-wrap:break-word!important;
  }

  .shop-page .menu-shell,
  .shop-page .card,
  .shop-page .panel{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  .shop-page .menu-shell{
    padding:16px 12px 22px!important;
    border-radius:18px!important;
    overflow:hidden!important;
  }
  .shop-page .menu-shell h1,
  .shop-page .menu-shell h2{
    font-size:clamp(1.55rem,9vw,2.15rem)!important;
    line-height:1.05!important;
  }
  .shop-page .menu-shell p{
    font-size:.98rem!important;
    line-height:1.38!important;
  }

  .shop-page .category-tabs{
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:8px!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    border-radius:14px!important;
    background:#fff!important;
    position:relative!important;
    top:auto!important;
    z-index:5!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .shop-page .category-tabs::-webkit-scrollbar{display:none;}
  .shop-page .category-tabs .cat-tab,
  .shop-page .cat-tab{
    flex:0 0 78px!important;
    width:78px!important;
    min-width:78px!important;
    height:74px!important;
    min-height:74px!important;
    padding:7px 5px!important;
    border-radius:15px!important;
    font-size:.78rem!important;
    line-height:1.05!important;
  }
  .shop-page .cat-tab .cat-emoji,
  .shop-page .cat-tab span:first-child{
    font-size:1.28rem!important;
    line-height:1!important;
  }

  .shop-page .category-hero-card,
  .shop-page .category-hero-card.has-image{
    width:100%!important;
    max-width:100%!important;
    min-height:118px!important;
    margin:14px 0 14px!important;
    padding:16px!important;
    border-radius:16px!important;
    overflow:hidden!important;
  }
  .shop-page .category-hero-card img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
  .shop-page .category-hero-card .category-title{
    font-size:1.42rem!important;
    line-height:1!important;
  }
  .shop-page .category-hero-card p{
    max-width:100%!important;
    font-size:.94rem!important;
    line-height:1.18!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
    overflow:hidden!important;
  }

  .shop-page .product-grid,
  .shop-page .shop-product-grid,
  .shop-page .products-grid{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    margin:0!important;
    overflow:visible!important;
  }
  .shop-page .shop-product-card{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:17px!important;
    display:block!important;
  }
  .shop-page .shop-product-card .product-photo-wrap,
  .shop-page .product-photo-wrap{
    width:100%!important;
    height:150px!important;
    max-height:150px!important;
    aspect-ratio:auto!important;
    overflow:hidden!important;
    border-radius:17px 17px 0 0!important;
  }
  .shop-page .shop-product-card .product-photo-wrap img,
  .shop-page .product-photo-wrap img,
  .shop-page .shop-product-card img{
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    object-fit:cover!important;
    object-position:center!important;
    display:block!important;
  }
  .shop-page .shop-product-card .product-card-body{
    position:static!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:100%!important;
    margin:0!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.14)!important;
    border-radius:0!important;
    padding:11px 12px 12px!important;
    background:#2b2b2b!important;
    box-shadow:none!important;
  }
  .shop-page .shop-product-card .product-name{
    font-size:1.08rem!important;
    line-height:1.08!important;
    white-space:normal!important;
  }
  .shop-page .shop-product-card .product-desc{
    font-size:.9rem!important;
    line-height:1.22!important;
    max-height:2.45em!important;
    overflow:hidden!important;
    display:-webkit-box!important;
    -webkit-line-clamp:2!important;
    -webkit-box-orient:vertical!important;
  }
  .shop-page .shop-product-card .product-price-center,
  .shop-page .product-price-center{
    position:static!important;
    width:100%!important;
    display:block!important;
    margin-top:8px!important;
    text-align:right!important;
    font-size:1.08rem!important;
  }
  .shop-page .product-price-center > span:not(.price-dual),
  .shop-page .product-price-center .price-dual strong{
    font-size:1.16rem!important;
    line-height:1.1!important;
  }
  .shop-page .shop-product-card .product-actions{
    position:static!important;
    right:auto!important;
    bottom:auto!important;
    padding:0 12px 12px!important;
  }
  .shop-page .promo-included-note{
    font-size:.78rem!important;
    line-height:1.2!important;
  }

  .shop-page .mobile-cart,
  .mobile-cart{
    left:14px!important;
    right:14px!important;
    bottom:calc(10px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-width:calc(100vw - 28px)!important;
    min-height:52px!important;
    border-radius:999px!important;
    font-size:1.05rem!important;
    z-index:120!important;
  }
}

@media (max-width: 420px){
  .shop-page .layout{padding-left:10px!important;padding-right:10px!important;}
  .shop-page .compact-store-head{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;}
  .shop-page .shop-store-logo{max-height:104px!important;padding:8px 10px!important;}
  .shop-page .category-tabs .cat-tab,.shop-page .cat-tab{flex-basis:70px!important;width:70px!important;min-width:70px!important;height:68px!important;min-height:68px!important;font-size:.72rem!important;}
  .shop-page .shop-product-card .product-photo-wrap,.shop-page .product-photo-wrap{height:135px!important;max-height:135px!important;}
}


/* UPDATE: Größen-Auswahl im Produkt-Popup kompakter und nebeneinander */
.customizer-modal .size-choice-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
}
.customizer-modal .size-choice{
  width:96px;
  min-height:92px;
  flex:0 0 96px;
  padding:8px 7px;
  border-radius:11px;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:4px;
  line-height:1.08;
}
.customizer-modal .size-choice strong{
  font-size:.92rem;
  line-height:1.05;
}
.customizer-modal .size-choice span{
  font-size:1.02rem;
  font-weight:1000;
  line-height:1;
}
.customizer-modal .size-choice small{
  margin-top:0;
  font-size:.68rem;
  line-height:1.05;
}
.customizer-modal .size-choice.half-size-action strong{
  font-size:.86rem;
}
.customizer-modal .size-choice.half-size-action span{
  font-size:.82rem;
  font-weight:900;
}
.customizer-modal .size-choice.half-size-action small{
  font-size:.66rem;
}
@media(max-width:520px){
  .customizer-modal .size-choice-grid{
    gap:7px;
  }
  .customizer-modal .size-choice{
    width:84px;
    flex-basis:84px;
    min-height:84px;
    padding:7px 5px;
  }
  .customizer-modal .size-choice strong{
    font-size:.82rem;
  }
  .customizer-modal .size-choice span{
    font-size:.92rem;
  }
}


/* UPDATE: Größenkacheln immer in einer Reihe + nur aktive Auswahl grün */
.customizer-modal .size-choice-grid{
  display:grid!important;
  grid-template-columns:repeat(3, minmax(76px, 92px))!important;
  gap:7px!important;
  justify-content:start!important;
  align-items:stretch!important;
  max-width:300px!important;
}
.customizer-modal .size-choice{
  width:auto!important;
  min-width:0!important;
  flex:0 0 auto!important;
  min-height:84px!important;
  padding:7px 5px!important;
  border-radius:12px!important;
  border:2px solid rgba(255,255,255,.18)!important;
  background:#151515!important;
  color:#fff9ed!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.customizer-modal .size-choice.active{
  border-color:#22c55e!important;
  background:rgba(34,197,94,.16)!important;
  box-shadow:0 0 0 1px rgba(34,197,94,.22) inset!important;
}
.customizer-modal .size-choice.active strong,
.customizer-modal .size-choice.active span,
.customizer-modal .size-choice.active small{
  color:#86efac!important;
}
.customizer-modal .size-choice.half-size-action{
  border-color:rgba(255,255,255,.18)!important;
  background:#151515!important;
  color:#fff9ed!important;
}
.customizer-modal .size-choice.half-size-action strong,
.customizer-modal .size-choice.half-size-action span,
.customizer-modal .size-choice.half-size-action small{
  color:inherit!important;
}
.customizer-modal .size-choice.half-size-action.active{
  border-color:#22c55e!important;
  background:rgba(34,197,94,.16)!important;
}
.customizer-modal .size-choice.half-size-action.active strong,
.customizer-modal .size-choice.half-size-action.active span,
.customizer-modal .size-choice.half-size-action.active small{
  color:#86efac!important;
}
@media(max-width:420px){
  .customizer-modal .size-choice-grid{
    grid-template-columns:repeat(3, minmax(70px, 82px))!important;
    gap:6px!important;
    max-width:258px!important;
  }
  .customizer-modal .size-choice{
    min-height:78px!important;
    padding:6px 4px!important;
  }
  .customizer-modal .size-choice strong{font-size:.78rem!important;}
  .customizer-modal .size-choice span{font-size:.86rem!important;}
  .customizer-modal .size-choice small{font-size:.62rem!important;}
}
.driver-store-fixed{
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;
  padding:14px 15px;
  background:rgba(255,255,255,.06);
  color:#fff9ed;
  font-weight:900;
}
.driver-store-fixed small{display:block;color:#9b8f80;font-weight:800;margin-top:3px;}

/* Fahrer-Bearbeitung und mobile Lesbarkeit */
.admin-table tr.editing-row td{
  background:rgba(34,197,94,.08);
  border-top:1px solid rgba(34,197,94,.28);
  border-bottom:1px solid rgba(34,197,94,.28);
}
.driver-page .driver-card,
.driver-page .driver-head-card{
  color:#111827;
}
.driver-page .section-label,
.driver-page .muted,
.driver-page .mini-note,
.driver-page p,
.driver-page label,
.driver-page h1,
.driver-page h2,
.driver-page h3{
  color:#111827!important;
}
.driver-store-fixed{
  background:#f8fafc!important;
  border:1px solid #cbd5e1!important;
  color:#111827!important;
}
.driver-store-fixed small{
  color:#374151!important;
}
.driver-page .admin-input{
  color:#111827!important;
  background:#ffffff!important;
  border-color:#cbd5e1!important;
}
.driver-page .admin-input::placeholder{
  color:#6b7280!important;
}


/* Fahrer-App Pro Update – Status, Aufträge, Abrechnung */
.driver-app-v2{max-width:1040px;}
.driver-head-v2{border:1px solid #e5e7eb;}
.driver-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.driver-section-title h2{margin:.1rem 0 0;}
.driver-status-pill{background:#dcfce7;color:#166534;border-radius:999px;padding:7px 12px;font-weight:1000;font-size:.86rem;white-space:nowrap;}
.driver-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 14px;}
.driver-info-grid div,.driver-order-details div,.driver-map-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:11px 12px;}
.driver-info-grid span,.driver-order-details span,.driver-map-box span{display:block;color:#64748b;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px;}
.driver-info-grid strong,.driver-order-details b,.driver-map-box b{color:#111827;font-size:1rem;word-break:break-word;}
.driver-status-actions .active{background:#22c55e!important;color:#052e16!important;border-color:#16a34a!important;}
.driver-gps-note{margin-top:8px;}
.driver-order-v2{background:#ffffff;border:1px solid #dbe4ef;box-shadow:0 10px 24px rgba(15,23,42,.08);}
.driver-order-top strong{font-size:1.05rem;color:#111827;display:block;}
.driver-order-top small{display:block;color:#64748b;font-weight:800;margin-top:3px;}
.driver-order-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0;}
.driver-order-details .wide{grid-column:1/-1;}
.driver-order-details a{color:#0f766e;font-weight:1000;text-decoration:none;}
.driver-order-items{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px;padding:10px 12px;margin:12px 0;color:#111827;}
.driver-order-items summary{font-weight:1000;cursor:pointer;}
.driver-order-items ul{margin:10px 0 0;padding-left:18px;}
.driver-order-items li{margin:5px 0;}
.driver-map-box{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;background:#eef6ff;}
.driver-map-box small{display:block;color:#475569;font-weight:700;margin-top:2px;}
.driver-status-flow button,.driver-communication a{min-height:42px;}
.driver-communication{border-top:1px solid #e2e8f0;padding-top:10px;}
.driver-km-box{margin-top:14px;display:grid;grid-template-columns:1fr 170px auto;gap:10px;align-items:end;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px;}
.driver-km-box label{font-weight:1000;color:#111827;}
.driver-safety-card{border:1px solid #fecaca;background:#fff7f7;}
.driver-page .danger-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
@media(max-width:760px){
  .driver-section-title{display:grid;grid-template-columns:1fr;}
  .driver-info-grid,.driver-order-details{grid-template-columns:1fr;}
  .driver-map-box{display:grid;grid-template-columns:1fr;}
  .driver-km-box{grid-template-columns:1fr;}
  .driver-order-top span{justify-self:start;}
  .driver-status-flow,.driver-communication{grid-template-columns:1fr!important;}
}

/* Driver reports */
.clickable-row{cursor:pointer;}
.clickable-row:hover{background:rgba(255,255,255,.06);}
.selected-row{outline:2px solid rgba(34,197,94,.45);background:rgba(34,197,94,.08);}
.link-button{background:none;border:0;color:inherit;padding:0;cursor:pointer;text-align:left;font:inherit;}
.link-button strong{text-decoration:underline;}
.driver-report-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0;}
.compact-date{max-width:180px;}
.driver-report-detail{margin-top:18px;padding:18px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(0,0,0,.22);}
.compact-head{margin-bottom:12px;}
.report-driver-info{margin:14px 0;}
@media(max-width:760px){.driver-report-filters .admin-select,.driver-report-filters .admin-input{width:100%;max-width:none}.driver-report-table{min-width:900px}}

/* Fahrerbericht Popup + Druckansicht */
.driver-report-modal{z-index:9999;}
.driver-report-modal-card{width:min(1120px,96vw);max-height:92vh;overflow:auto;}
.driver-report-print-area{padding:18px 22px 24px;}
.driver-report-modal .overview-grid{margin-top:0;}
.driver-report-modal .admin-table-wrap{margin-top:16px;}
.print-only{display:none;}
@media print{
  body *{visibility:hidden!important;}
  #driverReportModal, #driverReportModal *{visibility:visible!important;}
  #driverReportModal{position:absolute!important;inset:0!important;background:#fff!important;color:#000!important;display:block!important;padding:0!important;}
  #driverReportModal .modal-card{box-shadow:none!important;border:0!important;border-radius:0!important;max-height:none!important;width:100%!important;background:#fff!important;color:#000!important;}
  #driverReportModal .no-print{display:none!important;}
  #driverReportModal .print-only{display:block!important;}
  #driverReportModal .driver-report-print-area{padding:12mm!important;}
  #driverReportModal .kpi,
  #driverReportModal .report-driver-info>div,
  #driverReportModal .admin-table{background:#fff!important;color:#000!important;border-color:#999!important;}
  #driverReportModal .kpi strong,
  #driverReportModal .kpi span,
  #driverReportModal .kpi small,
  #driverReportModal .admin-table th,
  #driverReportModal .admin-table td{color:#000!important;}
  #driverReportModal .admin-table-wrap{overflow:visible!important;}
  .admin-shell,.admin-sidebar,.admin-topbar{display:none!important;}
}

/* Tagesbericht / Kassensystem-Statistik */
.sales-pie-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(190px,1fr));
  gap:16px;
  margin:16px 0 22px;
}
.sales-pie-card{
  background:#fff;
  border:1px solid #d8e0ec;
  border-radius:14px;
  padding:18px 16px;
  text-align:center;
  box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.sales-pie-card h3{
  margin:0 0 4px;
  font-size:15px;
  color:#111827;
  font-weight:800;
}
.sales-pie-card>strong{
  display:block;
  color:#111827;
  font-size:22px;
  margin-bottom:10px;
}
.sales-pie{
  width:128px;
  height:128px;
  border-radius:50%;
  margin:8px auto 14px;
  border:1px solid rgba(15,23,42,.06);
}
.sales-legend{
  display:flex;
  flex-direction:column;
  gap:6px;
  align-items:flex-start;
  max-width:210px;
  margin:0 auto;
  color:#374151;
  font-size:12px;
  text-align:left;
}
.sales-legend span{display:flex;align-items:center;gap:7px;line-height:1.25;}
.sales-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;flex:0 0 14px;}
.sales-report-filters,
.report-product-filter-row{
  display:grid;
  grid-template-columns:1.1fr 1fr 1fr 1fr auto;
  gap:12px;
  align-items:center;
  margin:14px 0;
}
.report-product-filter-row{grid-template-columns:2fr 1fr 1fr;}
.product-search-input{font-size:18px;font-weight:800;}
.compact-kpi-row{margin:8px 0 14px;}
.sales-report-table th,
.sales-report-table td{white-space:nowrap;}
@media(max-width:1100px){
  .sales-pie-grid{grid-template-columns:repeat(2,minmax(190px,1fr));}
  .sales-report-filters{grid-template-columns:1fr 1fr;}
  .report-product-filter-row{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .sales-pie-grid{grid-template-columns:1fr;}
  .sales-report-filters{grid-template-columns:1fr;}
  .sales-pie{width:110px;height:110px;}
}

/* Kunden sperren */
.customer-table tr.customer-blocked td{ background:rgba(239,68,68,.08); }
.customer-table tr.customer-blocked td:first-child{ border-left:4px solid #ef4444; }
.customer-block-section{ border:1px solid rgba(239,68,68,.28); background:rgba(239,68,68,.06); border-radius:16px; padding:14px; }
.customer-block-section h3{ color:#b91c1c; }
.block-switch{ font-weight:900; color:#991b1b; }


/* Kundenhistorie */
.customer-history-section{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);border-radius:16px;padding:16px;margin-bottom:14px}
.customer-history-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 12px}
.customer-history-kpis>div{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:10px;background:rgba(0,0,0,.12)}
.customer-history-kpis span,.customer-history-kpis small{display:block;color:#9ca3af;font-size:.82rem}
.customer-history-kpis strong{display:block;font-size:1.15rem;margin:3px 0;color:#fff}
.customer-popular-box{border:1px solid rgba(34,197,94,.28);background:rgba(34,197,94,.08);border-radius:12px;padding:10px;margin:10px 0;color:#e5e7eb}
.customer-popular-box span{display:inline-block;margin:6px 6px 0 0;padding:5px 8px;border-radius:999px;background:rgba(34,197,94,.16);color:#bbf7d0;font-weight:800;font-size:.86rem}
.customer-orders-details{margin-top:10px}
.customer-orders-details summary{cursor:pointer;font-weight:900;color:#f8d589;margin-bottom:10px}
.customer-order-history-table small{line-height:1.35}
@media(max-width:760px){.customer-history-kpis{grid-template-columns:1fr}.customer-table th:nth-child(6),.customer-table td:nth-child(6){display:none}}


/* Kundenhistorie: bessere Lesbarkeit im hellen Kunden-Popup */
.admin-customer-modal .customer-history-section{
  background:#ffffff;
  border:1px solid #dbe4f0;
  color:#111827;
  box-shadow:0 12px 28px rgba(15,23,42,.06);
}
.admin-customer-modal .customer-history-section h3{
  color:#b91c1c;
  font-weight:1000;
}
.admin-customer-modal .customer-history-kpis>div{
  background:#f8fafc;
  border:1px solid #cbd5e1;
  color:#111827;
}
.admin-customer-modal .customer-history-kpis span,
.admin-customer-modal .customer-history-kpis small{
  color:#475569;
  font-weight:800;
}
.admin-customer-modal .customer-history-kpis strong{
  color:#0f172a;
  font-weight:1000;
}
.admin-customer-modal .customer-popular-box{
  background:#ecfdf5;
  border:1px solid #10b981;
  color:#064e3b;
}
.admin-customer-modal .customer-popular-box strong{
  color:#065f46;
  font-weight:1000;
}
.admin-customer-modal .customer-popular-box span{
  background:#10b981;
  color:#ffffff;
  font-weight:1000;
  border:1px solid #059669;
}
.admin-customer-modal .customer-popular-box small{
  color:#065f46;
  font-weight:800;
}
.admin-customer-modal .customer-orders-details summary{
  color:#b45309;
  font-weight:1000;
}
.driver-km-auto-box{
  grid-template-columns:1fr 180px;
  align-items:center;
}
.driver-km-auto-box strong{
  display:block;
  font-size:1.45rem;
  font-weight:1000;
  color:#111827;
  text-align:right;
}
.driver-km-auto-box small{
  grid-column:1 / -1;
  color:#4b5563;
  font-weight:800;
}
@media(max-width:760px){
  .driver-km-auto-box{grid-template-columns:1fr;}
  .driver-km-auto-box strong{text-align:left;}
}

/* Homepage dynamic modules */
.link-button{border:0;background:transparent;color:#e11d2a;font-weight:900;cursor:pointer;padding:0;text-decoration:underline;font:inherit}
.events-section{padding:54px 6vw;background:#fff7ed}
.home-event-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;max-width:1120px;margin:0 auto}
.home-event-card{background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:22px;box-shadow:0 18px 50px rgba(15,23,42,.08);overflow:hidden}
.home-event-card>div:last-child{padding:18px}
.home-event-img{height:190px;background:linear-gradient(135deg,#111827,#dc2626);display:grid;place-items:center;color:#fff;font-weight:900;font-size:30px}
.home-event-img img{width:100%;height:100%;object-fit:cover;display:block}
.home-modal{position:fixed;inset:0;background:rgba(0,0,0,.64);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px}
.home-modal.hidden{display:none}
.home-modal-card{position:relative;background:#fff;border-radius:24px;box-shadow:0 24px 90px rgba(0,0,0,.35);max-width:860px;width:100%;max-height:90vh;overflow:auto;padding:30px;color:#111827}
.home-modal-close{position:absolute;right:16px;top:14px;border:0;border-radius:14px;background:#f3f4f6;color:#111827;font-size:30px;font-weight:900;width:48px;height:48px;cursor:pointer}
.home-modal-box{border:1px solid #e5e7eb;border-radius:18px;padding:16px;margin:14px 0;background:#f9fafb}
.home-modal-list{display:grid;gap:12px;margin:16px 0}
.home-photo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.home-photo-strip img,.home-modal-hero-img{width:100%;border-radius:16px;display:block;object-fit:cover;max-height:300px}
.home-reservation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.home-reservation-form input,.home-reservation-form textarea{border:1px solid #d1d5db;border-radius:12px;padding:12px;font:inherit;background:#fff;color:#111827}
.home-reservation-form textarea{grid-column:1/-1;min-height:92px}
.home-reservation-form button,.home-reservation-form p{grid-column:1/-1}
.blocked-slots{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.blocked-slots span{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:999px;padding:6px 10px;font-weight:800}
.homepage-admin-form textarea.admin-input{min-height:90px;resize:vertical}
.upload-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
.switch-row.wrap{flex-wrap:wrap;gap:14px}
@media (max-width:700px){.home-reservation-form{grid-template-columns:1fr}.home-modal-card{padding:22px}.topnav{flex-wrap:wrap}.home-event-img{height:150px}}

/* Produkt-Pop-up: Nährwerte und schnelle Kennzeichnung */
.nutrition-toggle{margin-top:12px;width:100%;border:1px solid #d8dde5;background:#f7f9fb;color:#172235;border-radius:12px;padding:11px 14px;font-weight:800;cursor:pointer;text-align:left}
.nutrition-toggle:hover{background:#eef3f7}.nutrition-panel{margin-top:9px;border:1px solid #d8dde5;border-radius:14px;padding:14px;background:#fff}.nutrition-panel.hidden{display:none!important}
.nutrition-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}.nutrition-head span{font-size:.76rem;color:#677284}
.nutrition-panel dl{margin:0;display:grid;gap:0}.nutrition-panel dl>div{display:grid;grid-template-columns:1fr auto;gap:12px;padding:7px 0;border-bottom:1px solid #edf0f3}.nutrition-panel dl>div:last-child{border-bottom:0}.nutrition-panel dt{color:#4c5869}.nutrition-panel dd{margin:0;font-weight:800}
.nutrition-food-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.nutrition-food-tags b{font-size:.75rem;padding:5px 8px;border-radius:999px;background:#eef3e7;color:#334527}.nutrition-panel small{display:block;line-height:1.45;color:#667080}


/* PizzaArriva Category Visibility — 2026-09-23 START */
/* Nur die grossen Kategorie-Banner der Speisekarte, nicht Produktfotos oder Startseite. */
.shop-page .category-hero-card.has-image {
  min-height: 240px !important;
}
.shop-page .category-hero-card.has-image img {
  filter: brightness(0.98) contrast(1.045) saturate(1.10) !important;
  object-fit: cover !important;
  object-position: center 48% !important;
}
.shop-page .category-hero-card.has-image::after {
  background: linear-gradient(90deg,
    rgba(0,0,0,0.66) 0%,
    rgba(0,0,0,0.46) 25%,
    rgba(0,0,0,0.16) 57%,
    rgba(0,0,0,0.035) 100%) !important;
}
.shop-page .category-hero-card.has-image > div {
  text-shadow: 0 2px 5px rgba(0,0,0,0.60);
}
@media (max-width: 760px) {
  .shop-page .category-hero-card.has-image {
    min-height: 184px !important;
    padding: 18px !important;
  }
  .shop-page .category-hero-card.has-image::after {
    background: linear-gradient(90deg,
      rgba(0,0,0,0.70) 0%,
      rgba(0,0,0,0.43) 45%,
      rgba(0,0,0,0.08) 100%) !important;
  }
}
/* PizzaArriva Category Visibility — 2026-09-23 END */

.pa-nutrition{grid-column:1/-1;padding:12px;background:#fff8ee;border-radius:12px;color:#252525}.pa-nutrition dl{margin:8px 0}.pa-nutrition dl>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #ddd;padding:4px 0}.pa-nutrition dd{margin:0;text-align:right}.pa-nutrition small,.pa-calorie-filter small{display:block;margin-top:8px}.pa-calorie-filter{padding:14px;margin:12px 0;background:#fff8ee;color:#252525;border-radius:12px}.pa-calorie-filter input{width:130px;padding:8px}.pa-calorie-filter button{padding:8px}

.pa-nutrition-trigger{grid-column:1/-1;margin:8px 0}.pa-nutrition-open,#paFilterToggle{border:1px solid #c6ad91;border-radius:999px;padding:9px 16px;background:#fff8ee;color:#34251b;cursor:pointer;font-weight:700}.pa-nutrition-dialog{width:min(520px,calc(100vw - 32px));max-height:85vh;overflow:auto;box-sizing:border-box;border:0;border-radius:18px;padding:20px;background:#fff;color:#252525;box-shadow:0 20px 80px #0005}.pa-nutrition-dialog::backdrop{background:#0008}.pa-nutrition-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pa-nutrition-dialog-head h2{margin:0 0 12px}.pa-nutrition-dialog-head button{padding:8px 12px;cursor:pointer}.pa-calorie-filter{padding:0;background:transparent;margin:10px 0}#paFilterOptions:not([hidden]){display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;margin-top:8px;background:#fff8ee;border-radius:12px}#paFilterOptions[hidden]{display:none!important}#paFilterOptions small{flex-basis:100%}#paDietFilter{padding:8px;border-radius:8px}.pa-nutrition-dialog .pa-nutrition{font-size:14px}

.pa-nutrition-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.pa-nutrition-table caption{text-align:left;font-weight:700;padding-bottom:12px}.pa-nutrition-table th,.pa-nutrition-table td{padding:8px 4px;border-bottom:1px solid #ded8d0;overflow-wrap:anywhere;text-align:right;vertical-align:top}.pa-nutrition-table th:first-child{text-align:left;width:38%}.pa-nutrition-table thead th{font-weight:700}.pa-nutrition-dialog{width:min(620px,calc(100vw - 24px))}@media(max-width:420px){.pa-nutrition-dialog{padding:12px}.pa-nutrition-table{font-size:12px}.pa-nutrition-table th,.pa-nutrition-table td{padding:7px 3px}}

#paCalorieFields[hidden],#paCalorieHelp[hidden]{display:none!important}

/* Readable promotion text on the existing product-card background. */
html .shop-page #menuList .promo-included-note{color:#145c2a!important;background:transparent!important;text-shadow:none!important;font-weight:800!important;opacity:1!important;}
