/* ============================================================
   Foodiego PWA – Basis-Stylesheet (mobile-first)
   ============================================================ */

:root{
  /* Brand */
  --forest:#0f2a1c;
  --forest-2:#173926;
  --moss:#2a5540;
  --cream:#fffefb;
  --cream-2:#f4f2ea;
  --lime:#c9f24d;
  --lime-700:#95cc1f;
  --tang:#ff5c30;
  --ink:#14231b;
  --soft:#4b5a52;
  --muted:#6c7770; /* WCAG AA: 4.66:1 auf --cream (vorher #7c877f = 3.7:1) */
  --line:#e8e0cf;
  --line-d:rgba(240,236,222,.16);

  /* Typografie */
  --disp:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'Hanken Grotesque',system-ui,sans-serif;

  /* Form */
  --r:20px;
  --r-sm:13px;
  --r-pill:999px;
  --wrap:1220px;
  --shadow:0 2px 6px rgba(13,31,23,.04),0 22px 48px -26px rgba(13,31,23,.22);
}

*{box-sizing:border-box;margin:0;padding:0;}

body{
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.05;}

a{color:var(--forest-2);text-decoration:none;}
a:hover{color:var(--lime-700);}

img{display:block;max-width:100%;}
::selection{background:var(--lime);color:var(--forest);}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px;}
@media(min-width:720px){.wrap{padding:0 40px;}}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--body);font-weight:700;font-size:15.5px;
  padding:14px 24px;border-radius:var(--r-pill);border:none;cursor:pointer;
  white-space:nowrap;transition:transform .18s,filter .18s;
}
.btn:active{transform:scale(.96);}
.btn-accent{background:var(--lime);color:var(--forest);}
.btn-accent:hover{filter:brightness(1.05);color:var(--forest);}

.eyebrow{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--tang);}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--forest);
  border-bottom:1px solid var(--line-d);
}
.header-inner{display:flex;align-items:center;gap:16px;height:66px;}

.brand{display:flex;align-items:center;gap:10px;color:#fff;}
.brand:hover{color:#fff;}
.brand b{font-family:var(--disp);font-weight:800;font-size:22px;letter-spacing:-.03em;}
.brand-mark{
  width:36px;height:36px;border-radius:11px;flex:none;
  background:var(--lime);color:var(--forest);
  display:grid;place-items:center;
  font-family:var(--disp);font-weight:800;font-size:22px;
}

.main-nav{margin-left:auto;display:flex;align-items:center;gap:2px;}
.main-nav a{
  color:rgba(255,255,255,.82);font-weight:600;font-size:14.5px;
  padding:8px 12px;border-radius:var(--r-pill);
  transition:color .15s,background .15s;
}
.main-nav a:hover{color:#fff;background:rgba(255,255,255,.08);}
.main-nav .nav-cta{
  color:var(--lime);box-shadow:inset 0 0 0 1.5px rgba(198,240,74,.4);
  margin-left:6px;
}
.main-nav .nav-cta:hover{background:var(--lime);color:var(--forest);}

@media(max-width:640px){
  .main-nav a{padding:8px 9px;font-size:13.5px;}
  .main-nav .nav-cta{margin-left:2px;}
}

/* ---------- Hero ---------- */
.hero{
  background:var(--forest);
  color:#fff;
  padding:64px 0 72px;
}
.hero h1{font-size:clamp(38px,7vw,64px);color:#fff;margin:14px 0 16px;}
.hero-sub{max-width:520px;font-size:17px;color:rgba(255,255,255,.75);margin-bottom:32px;}

.hero-search{display:flex;flex-direction:column;gap:10px;max-width:480px;}
.hero-search input{
  font:inherit;font-size:16px;color:var(--ink);
  padding:14px 20px;border-radius:var(--r-pill);border:none;
  background:#fff;outline:none;
}
.hero-search input::placeholder{color:var(--muted);}
.hero-search input:focus{box-shadow:0 0 0 3px var(--lime);}
@media(min-width:560px){
  .hero-search{flex-direction:row;}
  .hero-search input{flex:1;}
}

/* ---------- Restaurantliste ---------- */
.restaurant-section{padding:56px 0 80px;}
.restaurant-section h2{font-size:clamp(26px,4.5vw,36px);margin-bottom:26px;}

.restaurant-grid{
  display:grid;gap:18px;
  grid-template-columns:1fr;
}
@media(min-width:640px){.restaurant-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1020px){.restaurant-grid{grid-template-columns:repeat(3,1fr);}}

.placeholder-card{
  border:1.5px dashed var(--line);
  border-radius:var(--r);
  padding:40px 24px;
  text-align:center;
  color:var(--muted);
  grid-column:1 / -1;
}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--forest);
  color:rgba(255,255,255,.7);
  padding:44px 0 36px;
  margin-top:auto;
}
.footer-inner{display:flex;flex-direction:column;gap:14px;}
.footer-brand{display:flex;align-items:center;gap:10px;color:#fff;}
.footer-brand b{font-family:var(--disp);font-weight:800;font-size:20px;}
.footer-brand .brand-mark{width:32px;height:32px;font-size:19px;border-radius:9px;}
.footer-claim{font-size:15px;}
.footer-nav{display:flex;flex-wrap:wrap;gap:4px 18px;}
.footer-nav a{color:rgba(255,255,255,.7);font-size:14px;}
.footer-nav a:hover{color:var(--lime);}
.footer-copy{font-size:13px;color:rgba(255,255,255,.45);}

/* ---------- Seitenkopf + PLZ-Filter ---------- */
.page-head{background:var(--forest);color:#fff;padding:40px 0 44px;}
.page-head h1{color:#fff;font-size:clamp(30px,5.5vw,44px);margin-bottom:22px;}
.zip-filter{display:flex;gap:10px;max-width:420px;}
.zip-filter input{
  flex:1;min-width:0;font:inherit;font-size:16px;color:var(--ink);
  padding:13px 20px;border-radius:var(--r-pill);border:none;background:#fff;outline:none;
}
.zip-filter input::placeholder{color:var(--muted);}
.zip-filter input:focus{box-shadow:0 0 0 3px var(--lime);}

/* ---------- Restaurantkarten ---------- */
.restaurant-card{
  display:flex;flex-direction:column;gap:8px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:22px 22px 20px;color:var(--ink);
  transition:transform .18s,box-shadow .2s,border-color .15s;
}
.restaurant-card:hover{
  transform:translateY(-3px);box-shadow:var(--shadow);
  border-color:var(--lime-700);color:var(--ink);
}
.rc-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.rc-name{font-size:20px;}
.rc-rating{
  flex:none;font-weight:800;font-size:14px;color:var(--forest);
  background:var(--lime);border-radius:var(--r-pill);padding:4px 11px;
}
.rc-cuisines{font-size:14.5px;color:var(--soft);}
.rc-meta{
  list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;
  font-size:13.5px;font-weight:600;color:var(--soft);margin-top:2px;
}
.rc-meta li:not(:first-child)::before{content:"\00B7";margin-right:8px;color:var(--muted);}
.rc-status{
  align-self:flex-start;margin-top:6px;
  font-size:12.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  border-radius:var(--r-pill);padding:4px 12px;
}
.rc-open{background:rgba(198,240,74,.28);color:#3c5510;}
.rc-closed{background:var(--cream-2);color:var(--muted);}

.more-link{margin-top:24px;font-weight:700;}
.more-link a{color:var(--forest-2);}
.more-link a:hover{color:var(--lime-700);}

/* ---------- Hinweise ---------- */
.notice{
  border:1.5px solid var(--line);border-radius:var(--r);
  padding:28px 26px;color:var(--soft);background:#fff;
}
.notice p+p{margin-top:6px;}
.notice strong{color:var(--ink);}
.notice-error{border-color:var(--tang);color:var(--ink);}

/* ---------- Restaurant-Kopf ---------- */
.resto-head{background:var(--forest);color:#fff;padding:40px 0 34px;}
.resto-head-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px;}
.resto-head h1{color:#fff;font-size:clamp(30px,5.5vw,46px);}
.resto-cuisines{color:rgba(255,255,255,.7);font-size:15px;margin-top:8px;}
.resto-badges{display:flex;align-items:center;gap:10px;}
.resto-facts{
  list-style:none;display:flex;flex-wrap:wrap;gap:6px 10px;
  margin-top:18px;font-size:14px;font-weight:600;color:rgba(255,255,255,.75);
}
.resto-facts li:not(:first-child)::before{content:"\00B7";margin-right:10px;color:rgba(255,255,255,.35);}
.resto-facts a{color:rgba(255,255,255,.9);}
.resto-facts a:hover{color:var(--lime);}

/* ---------- Lieferung/Abholung ---------- */
.delivery-toggle{
  display:inline-flex;gap:4px;margin-top:22px;
  background:rgba(255,255,255,.09);border-radius:var(--r-pill);padding:4px;
}
.dt-btn{
  font:inherit;font-weight:700;font-size:14px;cursor:pointer;
  border:none;background:transparent;color:rgba(255,255,255,.75);
  padding:9px 20px;border-radius:var(--r-pill);transition:background .15s,color .15s;
}
.dt-btn.is-active{background:var(--lime);color:var(--forest);}

/* ---------- Speisekarten-Layout ---------- */
.menu-layout{display:grid;gap:28px;padding-top:36px;padding-bottom:80px;}
@media(min-width:960px){
  .menu-layout{grid-template-columns:1fr 340px;align-items:start;}
}

.menu-category{margin-bottom:36px;}
.menu-category h2{font-size:24px;margin-bottom:14px;}

.menu-item{
  display:flex;justify-content:space-between;gap:16px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:18px 20px;margin-bottom:12px;
}
.mi-body{min-width:0;display:flex;flex-direction:column;gap:6px;}
.mi-name{font-size:17px;line-height:1.3;}
.mi-number{color:var(--muted);font-weight:600;margin-right:6px;}
.mi-allergens{color:var(--muted);font-size:11px;font-weight:600;margin-left:4px;cursor:help;}
.mi-desc{font-size:14px;color:var(--soft);}

.mi-badges{display:flex;flex-wrap:wrap;gap:6px;}
.badge{
  font-size:11.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  border-radius:var(--r-pill);padding:3px 10px;
}
.badge-popular{background:var(--lime);color:var(--forest);}
.badge-veggie{background:rgba(29,58,42,.1);color:var(--moss);}
.badge-vegan{background:var(--moss);color:#fff;}
.badge-spicy{background:rgba(255,106,61,.14);color:#c2400e;}

.mi-sizes{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.mi-size input{position:absolute;opacity:0;pointer-events:none;}
.mi-size span{
  display:inline-block;font-size:13px;font-weight:700;color:var(--soft);
  border:1.5px solid var(--line);border-radius:var(--r-pill);
  padding:6px 14px;cursor:pointer;transition:border-color .15s,background .15s,color .15s;
}
.mi-size input:checked+span{background:var(--forest);border-color:var(--forest);color:#fff;}
.mi-size input:focus-visible+span{box-shadow:0 0 0 3px var(--lime);}

.mi-buy{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:10px;flex:none;}
.mi-price{font-weight:800;font-size:16px;white-space:nowrap;}
.add-btn{
  width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  background:var(--lime);color:var(--forest);
  font-size:24px;font-weight:800;line-height:1;
  display:grid;place-items:center;
  transition:transform .15s,filter .15s;
}
.add-btn:hover{filter:brightness(1.06);}
.add-btn:active{transform:scale(.92);}
.add-btn.added{transform:scale(1.12);}
.add-btn:disabled{background:var(--cream-2);color:var(--muted);cursor:not-allowed;}

/* ---------- Warenkorb ---------- */
.cart-col{order:-1;}
@media(min-width:960px){
  .cart-col{order:0;position:sticky;top:82px;}
}
.cart{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:22px;box-shadow:var(--shadow);
}
.cart-title{font-size:20px;margin-bottom:14px;}
.cart-empty{font-size:14px;color:var(--muted);}

.cart-line{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 0;border-bottom:1px solid var(--cream-2);
}
.cl-info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cl-name{font-weight:700;font-size:14.5px;}
.cl-size{font-size:12.5px;color:var(--muted);}
.cl-price{font-size:13.5px;font-weight:700;color:var(--soft);}

.cl-qty{display:flex;align-items:center;gap:10px;flex:none;}
.cl-qty button{
  width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);
  background:#fff;cursor:pointer;font-size:16px;font-weight:800;color:var(--forest);
  display:grid;place-items:center;transition:border-color .15s,background .15s;
}
.cl-qty button:hover{border-color:var(--lime-700);background:rgba(198,240,74,.15);}
.cl-qty span{font-weight:800;font-size:14px;min-width:16px;text-align:center;}

.cart-summary{margin-top:16px;display:flex;flex-direction:column;gap:8px;}
.cs-row{display:flex;justify-content:space-between;font-size:14.5px;color:var(--soft);}
.cs-total{font-weight:800;font-size:17px;color:var(--ink);border-top:1.5px solid var(--cream-2);padding-top:10px;margin-top:4px;}
.cart-minorder{font-size:13px;font-weight:600;color:#c2400e;background:rgba(255,106,61,.1);border-radius:var(--r-sm);padding:9px 12px;}
.cart-checkout{width:100%;margin-top:6px;}
.cart-checkout:disabled{background:var(--cream-2);color:var(--muted);cursor:not-allowed;filter:none;}
.cart-closed-note{font-size:13px;color:var(--muted);text-align:center;}

/* ---------- Checkout ---------- */
.page-head-sub{color:rgba(255,255,255,.75);font-size:15px;margin-top:-8px;}
.page-head-sub strong{color:#fff;}
.head-back{color:var(--lime);font-weight:700;}
.head-back:hover{color:#fff;}

.checkout-layout{display:grid;gap:28px;padding-top:36px;padding-bottom:80px;}
@media(min-width:960px){
  .checkout-layout{grid-template-columns:1fr 360px;align-items:start;}
  .checkout-cart{position:sticky;top:82px;}
}

.checkout-form{display:flex;flex-direction:column;gap:22px;}
.checkout-form fieldset{
  border:1px solid var(--line);border-radius:var(--r);
  background:#fff;padding:20px 20px 22px;
}
.checkout-form legend{
  font-family:var(--disp);font-weight:700;font-size:17px;
  padding:0 8px;margin-left:-8px;
}
.checkout-form fieldset[hidden]{display:none;}

.form-grid{display:grid;gap:14px;grid-template-columns:1fr;}
@media(min-width:640px){
  .form-grid{grid-template-columns:1fr 1fr;}
  .form-grid .span-2{grid-column:span 2;}
  .form-grid .field-zip{max-width:180px;}
}

.field{display:flex;flex-direction:column;gap:6px;}
.field>span{font-size:13.5px;font-weight:700;color:var(--soft);}
.field input,.field textarea{
  font:inherit;font-size:16px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:12px 14px;background:#fff;outline:none;width:100%;
  transition:border-color .15s,box-shadow .15s;
}
.field textarea{resize:vertical;min-height:74px;}
.field input:focus,.field textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(198,240,74,.45);}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);}

.radio-cards{display:grid;gap:10px;grid-template-columns:1fr;}
@media(min-width:560px){.radio-cards{grid-template-columns:1fr 1fr;}}
.radio-card{position:relative;display:block;cursor:pointer;}
.radio-card input{position:absolute;opacity:0;pointer-events:none;}
.radio-card span{
  display:flex;flex-direction:column;gap:2px;
  border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:14px 16px;transition:border-color .15s,background .15s;
}
.radio-card b{font-size:15.5px;}
.radio-card small{font-size:13px;color:var(--soft);}
.radio-card input:checked+span{border-color:var(--forest);background:rgba(198,240,74,.14);}
.radio-card input:focus-visible+span{box-shadow:0 0 0 3px var(--lime);}

.form-error{
  border:1.5px solid var(--tang);border-radius:var(--r-sm);
  background:rgba(255,106,61,.08);color:#c2400e;
  font-size:14.5px;font-weight:600;padding:13px 16px;
}
.checkout-submit{width:100%;font-size:17px;padding:16px 24px;}
.checkout-submit:disabled{background:var(--cream-2);color:var(--muted);cursor:not-allowed;filter:none;}
.checkout-legal{font-size:12.5px;color:var(--muted);text-align:center;}

/* ---------- Bestellbestätigung ---------- */
.confirm-wrap{max-width:640px;}
.confirm-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:36px 26px;text-align:center;
}
@media(min-width:640px){.confirm-card{padding:44px 44px;}}
.confirm-check{
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;
  background:var(--lime);color:var(--forest);
  font-size:32px;font-weight:800;display:grid;place-items:center;
}
.confirm-card h1{font-size:clamp(26px,5vw,34px);margin-bottom:10px;}
.confirm-sub{color:var(--soft);font-size:15.5px;max-width:420px;margin:0 auto;}
.confirm-number{
  margin:22px auto;font-size:13px;font-weight:700;color:var(--soft);
  background:var(--cream-2);border-radius:var(--r-sm);
  padding:12px 18px;display:inline-block;
}
.confirm-number strong{font-family:var(--disp);font-size:20px;color:var(--ink);letter-spacing:.02em;}

.confirm-summary{text-align:left;margin-top:8px;display:flex;flex-direction:column;gap:8px;}
.confirm-summary h2{font-size:18px;margin-bottom:6px;}
.confirm-line{
  display:flex;gap:10px;align-items:baseline;
  padding:8px 0;border-bottom:1px solid var(--cream-2);font-size:14.5px;
}
.cl2-qty{font-weight:800;color:var(--forest);flex:none;}
.cl2-name{flex:1;font-weight:600;}
.cl2-name small{color:var(--muted);font-weight:500;}
.cl2-opts{display:block;}
.cl2-price{font-weight:700;white-space:nowrap;}
.confirm-actions{margin-top:24px;}

/* ---------- Login / Registrierung ---------- */
.auth-wrap{max-width:460px;}
.auth-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:32px 26px;
}
@media(min-width:640px){.auth-card{padding:38px 38px;}}
.auth-card h1{font-size:clamp(26px,5vw,32px);margin-bottom:6px;}
.auth-sub{color:var(--soft);font-size:15px;margin-bottom:20px;}
.auth-form{display:flex;flex-direction:column;gap:14px;}
.auth-form .field span small{font-weight:500;color:var(--muted);}
.auth-submit{width:100%;margin-top:6px;}
.auth-alt{margin-top:18px;font-size:14px;color:var(--soft);text-align:center;}
.auth-alt a{font-weight:700;}
.auth-card .form-error{margin-bottom:16px;}
.auth-card .form-error a{color:inherit;text-decoration:underline;}

.nav-user{
  color:rgba(255,255,255,.6);font-weight:600;font-size:13.5px;
  padding:8px 4px 8px 12px;white-space:nowrap;
  max-width:180px;overflow:hidden;text-overflow:ellipsis;
}
@media(max-width:760px){.nav-user{display:none;}}

/* ---------- Portal / Admin ---------- */
.portal-wrap{padding-top:28px;padding-bottom:80px;}
.portal-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px;}
.portal-tabs a{
  font-weight:700;font-size:14.5px;color:var(--soft);
  padding:9px 18px;border-radius:var(--r-pill);border:1.5px solid var(--line);
  transition:background .15s,color .15s,border-color .15s;
}
.portal-tabs a:hover{border-color:var(--forest);color:var(--forest);}
.portal-tabs a.is-active{background:var(--forest);border-color:var(--forest);color:#fff;}

.portal-loading,.portal-empty{color:var(--muted);font-size:15px;padding:32px 0;text-align:center;}
.portal-muted{color:var(--muted);font-size:14px;}
.picker-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.picker-list a{font-weight:700;}

/* Bestellkarten */
.po-list{display:grid;gap:16px;grid-template-columns:1fr;}
@media(min-width:760px){.po-list{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1120px){.po-list{grid-template-columns:repeat(3,1fr);}}

.po-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:18px;display:flex;flex-direction:column;gap:10px;
  border-top:4px solid var(--line);
}
.po-card.status-new{border-top-color:var(--tang);}
.po-card.status-confirmed{border-top-color:#e3b341;}
.po-card.status-preparing{border-top-color:var(--lime-700);}
.po-card.status-ready{border-top-color:var(--moss);}
.po-card.status-delivering{border-top-color:#4a90d9;}

.po-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.po-number{font-family:var(--disp);font-weight:800;font-size:16px;}
.po-time{font-size:13px;font-weight:700;color:var(--muted);}

.po-meta{display:flex;flex-wrap:wrap;gap:6px;}
.po-chip{
  font-size:11.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  border-radius:var(--r-pill);padding:3px 10px;background:var(--cream-2);color:var(--soft);
}
.chip-delivery{background:rgba(198,240,74,.3);color:#3c5510;}
.chip-pickup{background:rgba(29,58,42,.1);color:var(--moss);}
.chip-time{background:rgba(255,106,61,.13);color:#c2400e;}

.po-customer{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--soft);}
.po-customer strong{color:var(--ink);font-size:14.5px;}

.po-items{list-style:none;display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--cream-2);padding-top:10px;}
.po-items li{font-size:14px;font-weight:600;display:flex;flex-direction:column;}
.po-items small{color:var(--muted);font-weight:500;}
.po-note{font-size:13.5px;color:#c2400e;background:rgba(255,106,61,.08);border-radius:var(--r-sm);padding:8px 12px;}

.po-foot{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--cream-2);padding-top:12px;margin-top:auto;}
.po-total{font-weight:800;font-size:16px;}
.po-actions{display:flex;flex-wrap:wrap;gap:8px;}
.po-btn{
  font:inherit;font-weight:700;font-size:13.5px;cursor:pointer;
  border:none;border-radius:var(--r-pill);padding:10px 16px;
  transition:filter .15s,transform .12s;
}
.po-btn:active{transform:scale(.96);}
.po-btn-go{background:var(--forest);color:#fff;}
.po-btn-go:hover{filter:brightness(1.25);}
.po-btn-cancel{background:transparent;color:#c2400e;box-shadow:inset 0 0 0 1.5px rgba(194,64,14,.35);}
.po-btn-cancel:hover{background:rgba(255,106,61,.09);}
.po-btn:disabled{opacity:.5;cursor:wait;}

/* Küchen-Board */
.kitchen-wrap{background:var(--cream-2);min-height:calc(100vh - 66px);}
.kitchen-bar{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:18px 20px 0;max-width:1600px;margin:0 auto;
}
.kitchen-bar h1{font-size:22px;}
.kitchen-clock{font-family:var(--disp);font-weight:800;font-size:22px;color:var(--forest);}
.kitchen-board{padding:16px 20px 40px;max-width:1600px;margin:0 auto;}

.kb-columns{display:grid;gap:14px;grid-template-columns:1fr;}
@media(min-width:700px){.kb-columns{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1100px){.kb-columns{grid-template-columns:repeat(5,1fr);align-items:start;}}
.kb-col{display:flex;flex-direction:column;gap:10px;}
.kb-col-title{
  display:flex;justify-content:space-between;align-items:center;
  font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);
  padding:0 4px;
}
.kb-count{
  background:var(--forest);color:#fff;border-radius:var(--r-pill);
  font-size:12px;padding:2px 9px;
}
.kb-col .po-card{padding:14px;gap:8px;}

/* Portal: Speisekarte */
.portal-menu-cat{margin-bottom:28px;}
.portal-menu-cat h2{font-size:20px;margin-bottom:10px;}
.portal-menu-list{display:flex;flex-direction:column;gap:8px;}
.portal-menu-row{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:12px 16px;
}
.portal-menu-row.is-off{opacity:.62;}
.pm-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px;}
.pm-name{font-weight:700;font-size:15px;}
.pm-prices{font-size:13px;color:var(--soft);}
.pm-state{
  font-size:11.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;
  border-radius:var(--r-pill);padding:3px 10px;background:var(--cream-2);color:var(--soft);
  white-space:nowrap;
}
.portal-menu-row:not(.is-off) .pm-state{background:rgba(198,240,74,.3);color:#3c5510;}
.btn-toggle{
  font:inherit;font-weight:700;font-size:13px;cursor:pointer;
  border-radius:var(--r-pill);padding:8px 16px;border:none;
  transition:filter .15s;
}
.btn-toggle.on{background:var(--cream-2);color:var(--soft);}
.btn-toggle.off{background:var(--lime);color:var(--forest);}
.btn-toggle:hover{filter:brightness(.96);}

/* Tabellen + Admin */
.portal-table{
  width:100%;border-collapse:collapse;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;
  font-size:14px;margin-bottom:28px;
}
.portal-table th{
  text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--soft);background:var(--cream-2);padding:10px 14px;
}
.portal-table td{padding:11px 14px;border-top:1px solid var(--cream-2);vertical-align:middle;}
.portal-hours h2{font-size:20px;margin:24px 0 12px;}
.portal-hours h2:first-child{margin-top:0;}

.st-active{background:rgba(198,240,74,.3);color:#3c5510;}
.st-inactive,.st-cancelled{background:rgba(255,106,61,.13);color:#c2400e;}
.st-pending{background:rgba(227,179,65,.2);color:#8a6410;}
.st-completed{background:rgba(29,58,42,.1);color:var(--moss);}
.role-admin{background:var(--forest);color:#fff;}
.role-restaurant{background:rgba(198,240,74,.3);color:#3c5510;}
.role-kitchen{background:rgba(74,144,217,.15);color:#2a5b94;}

.admin-form-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:22px;margin-bottom:28px;
}
.admin-form-card h2{font-size:20px;margin-bottom:16px;}
.admin-form-card .form-error{margin-bottom:14px;}
.field-select{
  font:inherit;font-size:16px;color:var(--ink);
  border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:12px 14px;background:#fff;width:100%;
}
.admin-form-actions{display:flex;align-items:center;gap:16px;}
.admin-cancel{font-weight:700;color:var(--soft);}
.admin-row-actions{white-space:nowrap;}
.admin-row-actions a{font-weight:700;margin-right:12px;}

/* ---------- PWA: Install-Banner + Offline ---------- */
.install-banner{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:100;
  display:flex;align-items:center;gap:12px;
  background:var(--forest);color:#fff;
  border:1px solid var(--line-d);border-radius:var(--r);
  padding:14px 16px;box-shadow:0 18px 44px -18px rgba(13,31,23,.55);
  animation:ib-in .35s ease both;
}
@media(min-width:640px){.install-banner{left:auto;max-width:420px;}}
@keyframes ib-in{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.install-banner p{flex:1;font-size:13.5px;font-weight:600;line-height:1.4;}
.ib-actions{display:flex;flex-direction:column;gap:6px;flex:none;}
.ib-install{
  font:inherit;font-weight:800;font-size:13px;cursor:pointer;
  background:var(--lime);color:var(--forest);
  border:none;border-radius:var(--r-pill);padding:8px 16px;
}
.ib-close{
  font:inherit;font-weight:700;font-size:12.5px;cursor:pointer;
  background:transparent;color:rgba(255,255,255,.65);
  border:none;padding:4px;
}
.ib-close:hover{color:#fff;}
.offline-icon{
  width:64px;height:64px;margin:0 auto 18px;border-radius:50%;
  background:var(--cream-2);font-size:30px;display:grid;place-items:center;
}

/* ---------- Rechtsseiten ---------- */
.legal-section{padding:40px 0 80px;}
.legal-wrap{max-width:760px;}
.legal-wrap h2{font-size:21px;margin:30px 0 10px;}
.legal-wrap h3{font-size:16.5px;margin:18px 0 6px;}
.legal-wrap p{font-size:15px;color:var(--soft);margin-bottom:10px;}
.legal-wrap p strong{color:var(--ink);}
.legal-wrap mark{
  background:rgba(255,106,61,.16);color:#a33509;
  font-weight:700;border-radius:4px;padding:1px 5px;
}
.legal-note{
  border:1.5px solid var(--tang);border-radius:var(--r-sm);
  background:rgba(255,106,61,.07);padding:14px 18px;margin-bottom:8px;
}
.legal-note p{margin:0;color:var(--ink);}
.legal-stand{margin-top:28px;font-size:13.5px;color:var(--muted);}

/* ---------- Flash-Messages ---------- */
.flash{
  margin:18px 0 -6px;padding:13px 18px;border-radius:var(--r-sm);
  font-size:14.5px;font-weight:600;
}
.flash-success{background:rgba(198,240,74,.25);color:#3c5510;border:1.5px solid var(--lime-700);}
.flash-error{background:rgba(255,106,61,.08);color:#c2400e;border:1.5px solid var(--tang);}
.flash-info{background:var(--cream-2);color:var(--soft);border:1.5px solid var(--line);}

/* ---------- Konto ---------- */
.konto-layout{display:grid;gap:28px;padding-top:36px;padding-bottom:80px;}
@media(min-width:960px){.konto-layout{grid-template-columns:1fr 360px;align-items:start;}}
.konto-main h2{font-size:22px;margin-bottom:16px;}
.konto-side{display:flex;flex-direction:column;gap:20px;}
.konto-side .auth-card{padding:24px;}
.konto-side h2{font-size:18px;margin-bottom:14px;}

.konto-orders{display:flex;flex-direction:column;gap:10px;}
.konto-order{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:14px 18px;
}
.ko-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:200px;}
.ko-restaurant{font-weight:800;font-size:15.5px;}
.ko-meta{font-size:13px;color:var(--muted);}
.ko-total{font-weight:800;white-space:nowrap;}
.ko-again{font-weight:700;font-size:13.5px;white-space:nowrap;}

.konto-profile{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14.5px;}
.konto-profile dt{color:var(--muted);font-weight:600;}
.konto-profile dd{color:var(--ink);font-weight:600;}

/* ---------- Info-Seiten (So funktioniert's / Gastronomen) ---------- */
.steps-section{padding:48px 0 80px;}
.steps-grid{display:grid;gap:18px;grid-template-columns:1fr;}
@media(min-width:780px){.steps-grid{grid-template-columns:repeat(3,1fr);}}
.step-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:26px 24px;display:flex;flex-direction:column;gap:10px;
}
.step-number{
  width:40px;height:40px;border-radius:50%;
  background:var(--lime);color:var(--forest);
  font-family:var(--disp);font-weight:800;font-size:19px;
  display:grid;place-items:center;
}
.step-card h2{font-size:19px;}
.step-card p{font-size:14.5px;color:var(--soft);}
.fair-note{
  margin-top:28px;background:var(--forest);color:#fff;
  border-radius:var(--r);padding:34px 28px;
}
.fair-note h2{color:#fff;font-size:22px;margin-bottom:10px;}
.fair-note p{color:rgba(255,255,255,.78);font-size:15px;max-width:560px;margin-bottom:10px;}
.fair-note .btn{margin-top:8px;}
.fair-note .portal-muted{color:rgba(255,255,255,.72);}
.fair-note a:not(.btn){color:var(--lime);font-weight:700;}

/* ===== Portal-Erweiterung (Dashboard, Menu-Mgmt, Hours-Editor, Stammdaten) ===== */
.portal-wrap{padding-top:24px;padding-bottom:64px;}
.portal-muted{color:#6a726a;}
.link-accent{color:#4d7c0f;font-weight:600;text-decoration:none;}
.link-accent:hover{text-decoration:underline;}
.notice-ok{background:#ecfccb;border:1px solid #bef264;color:#3f6212;border-radius:12px;padding:12px 16px;margin-bottom:16px;}
.btn-sm{padding:6px 12px;font-size:.85rem;}
.btn-danger{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;}
.btn-danger:hover{background:#fecaca;}
.portal-card{background:#fff;border:1px solid #e6dece;border-radius:16px;padding:20px 22px;margin-bottom:20px;}
.portal-card h2{margin:0 0 8px;font-size:1.15rem;}
.portal-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:22px;}
.portal-stat{background:#fff;border:1px solid #e6dece;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;}
.portal-stat span{color:#6a726a;font-size:.85rem;}
.portal-stat strong{font-size:1.7rem;line-height:1;}
.portal-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:720px){.portal-grid-2{grid-template-columns:1fr;}}
.portal-top{list-style:none;margin:0;padding:0;}
.portal-top li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f2efe6;}
.portal-quick{display:flex;flex-wrap:wrap;gap:10px;}
.portal-inline-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.portal-inline-form input[type=text]{flex:1;min-width:180px;padding:10px 12px;border:1px solid #dcd3bf;border-radius:10px;}
.portal-cat{background:#fff;border:1px solid #e6dece;border-radius:16px;padding:16px 18px;margin-bottom:16px;}
.portal-cat-head{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #f2efe6;}
.portal-cat-rename{display:flex;gap:8px;align-items:center;flex:1;}
.portal-cat-rename input[type=text]{font-weight:700;font-size:1.05rem;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;}
.portal-cat-rename input[type=text]:focus{border-color:#dcd3bf;background:#fff;}
.portal-menu-list{display:flex;flex-direction:column;gap:8px;}
.portal-item{border:1px solid #e6dece;border-radius:12px;overflow:hidden;}
.portal-item.is-off{opacity:.6;}
.portal-item>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px 14px;}
.portal-item>summary::-webkit-details-marker{display:none;}
.portal-item .pm-name{font-weight:600;flex:1;}
.portal-item .mi-number{color:#9a988a;font-weight:500;margin-right:4px;}
.portal-item .pm-prices{color:#55605a;font-size:.9rem;}
.portal-item .pm-state{font-size:.75rem;font-weight:700;text-transform:uppercase;color:#4d7c0f;}
.portal-item.is-off .pm-state{color:#9a988a;}
.portal-item-new>summary{color:#4d7c0f;font-weight:600;}
.portal-item-body{padding:14px;border-top:1px solid #f2efe6;display:grid;grid-template-columns:1fr 150px;gap:16px;}
@media(max-width:640px){.portal-item-body{grid-template-columns:1fr;}}
.portal-item-form label{display:block;font-size:.85rem;color:#2c3730;margin-bottom:10px;}
.portal-item-form input[type=text],.portal-item-form input[type=email],.portal-item-form textarea{width:100%;padding:9px 11px;border:1px solid #dcd3bf;border-radius:9px;font:inherit;margin-top:3px;}
.pif-row{display:flex;gap:12px;}
.pif-row .pif-num input{max-width:80px;}
.pif-grow{flex:1;}
.pif-label{display:block;font-size:.85rem;color:#2c3730;margin-bottom:6px;}
.pif-price-row{display:flex;gap:8px;margin-bottom:6px;}
.pif-flags{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0;}
.pif-flags label{display:inline-flex;align-items:center;gap:6px;margin:0;}
.pif-actions{margin-top:8px;}
.portal-item-side{display:flex;flex-direction:column;gap:8px;}
.portal-hours-grid{display:flex;flex-direction:column;gap:10px;margin:12px 0;}
.portal-hrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid #f3f0e8;}
.portal-hday{min-width:150px;display:inline-flex;align-items:center;gap:8px;font-weight:600;}
.portal-htimes{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.portal-htimes input[type=time]{padding:7px 9px;border:1px solid #dcd3bf;border-radius:8px;}
.portal-hsep{color:#9a988a;margin:0 4px;}
.portal-pause.is-paused{background:#fef2f2;border-color:#fecaca;}
.portal-switch{display:inline-flex;align-items:center;gap:8px;font-weight:600;margin-right:12px;}
.portal-picker{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;}
.portal-orders-bar{margin-bottom:12px;}
.portal-sound{display:inline-flex;align-items:center;gap:8px;color:#2c3730;font-size:.9rem;}
.portal-loading{color:#6a726a;padding:20px 0;}


/* ===== Portal: Bewertungen & Liefergebiete ===== */
.btn-ghost{background:transparent;border:1px solid #dcd3bf;color:#55605a;}
.btn-ghost:hover{background:#f2efe6;}
.portal-review{border:1px solid #eae5d8;border-radius:10px;padding:14px 16px;margin-bottom:12px;background:#fff;}
.portal-review-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.9rem;}
.portal-stars{color:#f79009;font-size:1.05rem;letter-spacing:1px;}
.portal-review-text{margin:8px 0;color:#2c3730;}
.portal-review-reply{background:#f6f4ec;border-left:3px solid #7f56d9;padding:8px 12px;border-radius:6px;margin:8px 0;font-size:.92rem;color:#55605a;}
.portal-review-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;}
.portal-reply-form{display:flex;gap:6px;flex:1;min-width:220px;}
.portal-reply-form input[type=text]{flex:1;padding:7px 10px;border:1px solid #dcd3bf;border-radius:8px;}
.portal-inline-form{display:inline;}
.portal-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.75rem;font-weight:600;}
.portal-badge-ok{background:#ecfdf3;color:#027a48;}
.portal-badge-no{background:#fef3f2;color:#b42318;}
.portal-badge-wait{background:#fffaeb;color:#b54708;}
.portal-zone-row{display:contents;}
.portal-table input[type=text],.portal-table input[type=number]{padding:6px 8px;border:1px solid #dcd3bf;border-radius:6px;width:100%;box-sizing:border-box;}
.portal-zone-btns{white-space:nowrap;}
.portal-zone-add .pif-grid{margin-bottom:14px;}
.pif-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;}
.pif-grid label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#55605a;font-weight:600;}
.pif-grid label input{padding:8px 10px;border:1px solid #dcd3bf;border-radius:8px;font-size:.95rem;font-weight:400;}

/* Admin: Inline-Aktionen in Tabellen (Nutzer/Bestellungen) */
.admin-inline-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.admin-mini-select{padding:6px 8px;border:1px solid var(--line,#d9e0d5);border-radius:8px;background:#fff;font-size:.85rem;max-width:150px;}
.btn-small{padding:6px 12px;font-size:.85rem;border-radius:8px;}
.portal-table td .admin-inline-form{margin:0;}

/* Menü-Filter & -Suche (Restaurant-Seite) */
.menu-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 20px;}
.menu-search{flex:1 1 220px;min-width:180px;padding:11px 16px;border:1px solid var(--line,#d9e0d5);border-radius:999px;font-size:1rem;background:#fff;}
.menu-search:focus{outline:none;border-color:var(--accent,#c3f53c);box-shadow:0 0 0 3px rgba(160,210,40,.25);}
.menu-chips{display:flex;flex-wrap:wrap;gap:8px;}
.menu-chip{padding:9px 16px;border:1px solid var(--line,#d9e0d5);border-radius:999px;background:#fff;font-size:.9rem;font-weight:600;color:var(--ink,#1c2b18);cursor:pointer;transition:background .15s,border-color .15s;}
.menu-chip:hover{border-color:var(--accent,#c3f53c);}
.menu-chip.is-active{background:var(--accent,#c3f53c);border-color:var(--accent,#c3f53c);color:#1c2b18;}
.menu-empty{padding:24px 4px;color:var(--muted,#6b7568);font-size:1rem;}


/* ---- Reorder-Toast ("Nochmal bestellen") ---- */
.reorder-toast {
  position: fixed;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%) translateY(20px);
  max-width: 90vw;
  background: #22302a;
  color: #fff;
  padding: 12px 18px;
  border-radius: 10px;
  font-size: 0.95rem;
  line-height: 1.3;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  z-index: 9999;
  text-align: center;
}
.reorder-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.reorder-toast.is-error {
  background: #b91c1c;
}


/* ============================================================
   FOODIEGO PREMIUM UI/UX v10  (appended override)
   ============================================================ */
body{background:#f7f9f0!important;color:#182b16!important;font-family:'Hanken Grotesque',system-ui,sans-serif!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,.hero h1,.page-head h1{font-family:'Bricolage Grotesque',system-ui,sans-serif!important;letter-spacing:-.02em!important;line-height:1.1!important;color:#182b16!important;}
p,li,.rc-cuisines,.mi-desc{line-height:1.6!important;color:#3f4d3a!important;}
.portal-muted,.muted,.rc-meta{color:#66735e!important;}
.site-header{background:rgba(247,249,240,.72)!important;backdrop-filter:saturate(180%) blur(14px)!important;-webkit-backdrop-filter:saturate(180%) blur(14px)!important;border-bottom:1px solid rgba(24,43,22,.06)!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;}
.hero,.page-head{background:linear-gradient(135deg,#c9ee4e 0%,#dcf877 100%)!important;border-radius:0 0 32px 32px!important;position:relative;overflow:hidden;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.hero::after,.page-head::after{content:"";position:absolute;top:-40%;right:-10%;width:60%;height:180%;background:radial-gradient(ellipse at center,rgba(255,255,255,.35),transparent 70%);pointer-events:none;}
.hero h1,.hero .eyebrow,.page-head h1{color:#1a3300!important;}
.hero .hero-sub,.hero p,.page-head p{color:#1c4a17!important;}
.resto-head{background:linear-gradient(135deg,#0f2a1c 0%,#173a26 100%)!important;border-radius:0 0 32px 32px!important;position:relative!important;overflow:hidden!important;}
.resto-head::after{content:"";position:absolute;top:-60%;right:-8%;width:55%;height:200%;background:radial-gradient(ellipse at center,rgba(201,238,78,.14),transparent 70%);pointer-events:none;}
.resto-head h1{color:#ffffff!important;text-shadow:0 1px 24px rgba(0,0,0,.25);}
.resto-head .resto-cuisines,.resto-head .resto-facts,.resto-head .resto-head-top,.resto-head p{color:rgba(255,255,255,.82)!important;}
.resto-head .resto-facts{font-weight:500!important;}
.resto-head strong,.resto-head b{color:#c9ee4e!important;}
.btn,.btn-accent,.cart-checkout,.add-btn,.auth-submit{font-family:'Hanken Grotesque',sans-serif!important;font-weight:700!important;border-radius:999px!important;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),background .2s!important;}
.btn-accent,.cart-checkout,.auth-submit{background:linear-gradient(135deg,#25611f,#1c4a17)!important;color:#ffffff!important;border:none!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.btn-accent:hover,.cart-checkout:hover,.auth-submit:hover{transform:translateY(-2px)!important;box-shadow:0 8px 30px rgba(24,43,22,.08),0 20px 60px rgba(24,43,22,.10)!important;}
.btn-accent:active,.cart-checkout:active,.auth-submit:active{transform:translateY(0) scale(.98)!important;}
.btn.is-loading{position:relative;color:transparent!important;}
.btn.is-loading::after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:fg-spin .6s linear infinite;}
@keyframes fg-spin{to{transform:rotate(360deg)}}
.restaurant-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:22px!important;}
.restaurant-card{background:#ffffff!important;border:1px solid #e9ebe0!important;border-radius:20px!important;overflow:hidden!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1)!important;}
.restaurant-card:hover{transform:translateY(-6px)!important;box-shadow:0 8px 30px rgba(24,43,22,.08),0 20px 60px rgba(24,43,22,.10)!important;}
.rc-name{font-family:'Bricolage Grotesque',sans-serif!important;font-weight:700!important;color:#182b16!important;}
.rc-rating{background:#25611f!important;color:#ffffff!important;border-radius:999px!important;padding:3px 10px!important;font-weight:700!important;font-size:.82rem!important;}
.rc-cuisines{color:#3f4d3a!important;}
.rc-closed,.rc-status{border-radius:999px!important;font-weight:700!important;}
.menu-toolbar{position:sticky!important;top:74px!important;z-index:20!important;background:rgba(247,249,240,.7)!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid rgba(24,43,22,.06)!important;border-radius:18px!important;padding:12px 14px!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;}
.menu-chips{display:flex!important;gap:8px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.menu-chips::-webkit-scrollbar{display:none;}
.menu-chip{scroll-snap-align:start!important;flex:0 0 auto!important;border-radius:999px!important;border:1px solid #e9ebe0!important;background:#ffffff!important;color:#3f4d3a!important;padding:8px 16px!important;font-weight:600!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important;}
.menu-chip.is-active{background:#25611f!important;color:#ffffff!important;border-color:#25611f!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;}
.menu-item{background:#ffffff!important;border:1px solid #e9ebe0!important;border-radius:18px!important;padding:16px 18px!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1)!important;}
.menu-item:hover{transform:translateY(-4px) scale(1.006)!important;box-shadow:0 8px 30px rgba(24,43,22,.08),0 20px 60px rgba(24,43,22,.10)!important;}
.mi-name{font-family:'Bricolage Grotesque',sans-serif!important;font-weight:600!important;color:#182b16!important;}
.mi-price{font-weight:700!important;color:#25611f!important;}
.mi-size{border-radius:999px!important;border:1px solid #e9ebe0!important;transition:all .2s!important;}
.add-btn{background:linear-gradient(135deg,#25611f,#1c4a17)!important;color:#ffffff!important;border:none!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;}
.add-btn:hover{transform:scale(1.12) rotate(90deg)!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.add-btn:active{transform:scale(.94)!important;}
.badge-popular{background:linear-gradient(135deg,#f7d774,#e0a933)!important;color:#4a3500!important;border:1px solid rgba(255,255,255,.5)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;border-radius:999px!important;font-weight:700!important;}
.badge-veggie,.badge-vegan{background:linear-gradient(135deg,#c9ee4e,#dcf877)!important;color:#1a3300!important;border:1px solid rgba(255,255,255,.5)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;border-radius:999px!important;font-weight:700!important;}
.badge-spicy{background:linear-gradient(135deg,#f5813f,#d8481a)!important;color:#fff!important;border:1px solid rgba(255,255,255,.4)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;border-radius:999px!important;font-weight:700!important;}
.cart{position:sticky!important;top:96px!important;background:rgba(255,255,255,.7)!important;backdrop-filter:blur(14px)!important;-webkit-backdrop-filter:blur(14px)!important;border:1px solid rgba(24,43,22,.07)!important;border-radius:24px!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.cs-total{font-family:'Bricolage Grotesque',sans-serif!important;font-weight:700!important;color:#182b16!important;}
.delivery-toggle{background:#f7f9f0!important;border:1px solid #e9ebe0!important;border-radius:999px!important;padding:3px!important;display:inline-flex!important;}
.dt-btn{border-radius:999px!important;border:none!important;background:transparent!important;color:#3f4d3a!important;font-weight:600!important;transition:all .2s cubic-bezier(.16,1,.3,1)!important;}
.dt-btn.is-active,.dt-btn[aria-pressed="true"]{background:#25611f!important;color:#ffffff!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;}
.step-card{background:#ffffff!important;border:1px solid #e9ebe0!important;border-radius:20px!important;box-shadow:0 2px 8px rgba(24,43,22,.04),0 4px 20px rgba(24,43,22,.04)!important;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s cubic-bezier(.16,1,.3,1)!important;}
.step-card:hover{transform:translateY(-6px)!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.step-number{background:linear-gradient(135deg,#25611f,#1c4a17)!important;color:#ffffff!important;border-radius:50%!important;font-family:'Bricolage Grotesque',sans-serif!important;font-weight:700!important;}
.fair-note{background:linear-gradient(135deg,#c9ee4e,#dcf877)!important;color:#1a3300!important;border-radius:24px!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
.fair-note h2,.fair-note p{color:#1a3300!important;}
.auth-card,.login-card{background:#ffffff!important;border:1px solid #e9ebe0!important;border-radius:24px!important;box-shadow:0 4px 24px rgba(24,43,22,.06),0 12px 40px rgba(24,43,22,.06)!important;}
input[type=email],input[type=text],input[type=password],input[type=tel],input[type=number]{border-radius:12px!important;border:1px solid #e9ebe0!important;transition:border .2s,box-shadow .2s!important;}
input:focus{border-color:#25611f!important;box-shadow:0 0 0 3px rgba(37,97,31,.12)!important;outline:none!important;}
@media(max-width:768px){
  .hero,.page-head{border-radius:0 0 24px 24px!important;}
  .hero h1{font-size:1.9rem!important;}
  .restaurant-grid{grid-template-columns:1fr!important;gap:16px!important;}
  .menu-layout{display:block!important;}
  .cart-col,.cart{position:static!important;margin-top:24px!important;}
  .menu-toolbar{top:60px!important;}
  .menu-chips{flex-wrap:nowrap!important;overflow-x:auto!important;}
  body{padding-bottom:78px!important;}
  .fg-bottomnav{position:fixed!important;left:12px;right:12px;bottom:12px;z-index:9999;display:flex!important;justify-content:space-around;align-items:center;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:1px solid rgba(24,43,22,.08);border-radius:22px;padding:8px 6px;box-shadow:0 8px 30px rgba(24,43,22,.08),0 20px 60px rgba(24,43,22,.10);}
  .fg-bottomnav a{flex:1;text-align:center;text-decoration:none;color:#3f4d3a;font-size:.66rem;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:3px;}
  .fg-bottomnav a .ic{font-size:1.25rem;line-height:1;}
  .fg-bottomnav a.is-active{color:#25611f;}
  .cart-checkout{position:sticky!important;bottom:86px!important;}
}
@media(min-width:1600px){.restaurant-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))!important;}}


/* ============================================================
   FOODIEGO FOTOS - Restaurant-Karten, Gericht-Bilder, Resto-Hero
   (aus /app/images/, angelegt beim Bild-Uebernahme v11)
   ============================================================ */

/* Foto oben auf der Restaurant-Karte */
.restaurant-card{overflow:hidden}
.rc-photo{
  margin:-4px -4px 14px;
  height:150px;
  border-radius:18px;
  overflow:hidden;
  position:relative;
  background:#0f2a1c;
  box-shadow:0 6px 18px rgba(15,42,28,.14);
}
.rc-photo img{
  width:100%;height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.restaurant-card:hover .rc-photo img{transform:scale(1.06)}
.rc-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.28));
  pointer-events:none;
}

/* Gericht-Foto in der Speisekarte */
.menu-item{align-items:flex-start}
.mi-photo{
  flex:0 0 96px;
  width:96px;height:96px;
  border-radius:16px;
  overflow:hidden;
  order:2;
  margin-left:14px;
  background:#eef1ee;
  box-shadow:0 4px 12px rgba(15,42,28,.12);
}
.mi-photo img{width:100%;height:100%;object-fit:cover;display:block}
.mi-body{order:1;flex:1 1 auto;min-width:0}
.mi-buy{order:3}

/* Resto-Hero mit Foto-Hintergrund */
.resto-head.has-photo{
  position:relative;
  background:linear-gradient(180deg,rgba(15,42,28,.5),rgba(15,42,28,.85)),var(--resto-hero) !important;
  background-size:cover !important;
  background-position:center !important;
  border-radius:0 0 32px 32px !important;
  color:#fff;
}
.resto-head.has-photo h1,
.resto-head.has-photo .resto-cuisines,
.resto-head.has-photo .resto-facts,
.resto-head.has-photo .resto-facts a{color:#fff}
.resto-head.has-photo .resto-facts li{border-color:rgba(255,255,255,.22)}

/* Mobil: kleineres Gericht-Foto */
@media (max-width:600px){
  .mi-photo{flex-basis:74px;width:74px;height:74px;margin-left:10px;border-radius:13px}
  .rc-photo{height:128px}
}

/* ---------- Audit: sichtbarer Deaktiviert-Zustand fuer Buttons ---------- */
/* Vorher waren deaktivierte Buttons (z.B. "Bestellung abschicken" im Checkout
   oder 'Hinzufuegen' bei geschlossenem Restaurant) optisch nicht von aktiven
   Buttons zu unterscheiden. Nutzer klickten ins Leere. */
button:disabled,
button[disabled],
input:disabled,
input[type="submit"]:disabled,
a[aria-disabled="true"],
.btn:disabled,
.btn[disabled],
.btn.is-disabled {
  opacity: 0.5;
  filter: grayscale(40%);
  cursor: not-allowed;
  box-shadow: none;
}
button:disabled:hover,
button[disabled]:hover,
.btn:disabled:hover,
.btn[disabled]:hover {
  transform: none;
}
