/* Küchen-Ansicht und Betriebsseite. Für das Tablet an der Theke gebaut:
   grosse Flächen, wenig Farben, alles auf Armlänge lesbar. */

:root{
  --linie:#f0ddd0; --flaeche:#fffaf6; --ok:#1f6b3a; --ok-flaeche:#eef7f0;
  --warn:#9a4a06; --warn-flaeche:#fff4e8; --btn:#c2410c;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--flaeche);color:#1c1410;
  font:400 16px/1.55 Inter,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"Bricolage Grotesque",Inter,system-ui,sans-serif;line-height:1.12;margin:0}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid #c2410c;outline-offset:3px;border-radius:6px}
.huelle{max-width:1240px;margin:0 auto;padding:20px clamp(16px,4vw,32px) 80px}

.kopf{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--linie)}
.kopf-innen{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;
  gap:10px 18px;padding:12px clamp(16px,4vw,32px)}
.marke{display:flex;align-items:center;gap:10px;font-family:"Bricolage Grotesque",sans-serif;
  font-weight:800;font-size:1.3rem;text-decoration:none;color:inherit}
.marke svg{width:26px;height:26px}
.kopf-rest{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.puls{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;color:#6b5d54}
.puls::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ok)}
.puls.aus::before{background:#a3221a}

button{font:inherit}
.knopf{min-height:48px;padding:12px 22px;border-radius:999px;border:0;cursor:pointer;
  background:var(--btn);color:#fff;font-weight:700;display:inline-flex;align-items:center;
  justify-content:center;gap:8px;text-decoration:none}
.knopf:hover{background:#a8380a}
.knopf[disabled]{opacity:.5;cursor:not-allowed}
.knopf--rand{background:#fff;color:var(--btn);border:1.5px solid var(--linie)}
.knopf--rand:hover{background:#fff;border-color:#ff7a1a}
.knopf--warn{background:#8a3a05}
.knopf--klein{min-height:44px;padding:10px 16px;font-size:.94rem}

.feld{display:block;margin-bottom:16px}
.feld>span{display:block;font-weight:600;font-size:.94rem;margin-bottom:6px}
.feld input,.feld select{width:100%;min-height:48px;padding:12px 14px;border:1.5px solid var(--linie);
  border-radius:14px;background:#fff;font:400 1rem inherit;color:inherit}
.hinweis{padding:14px 18px;border-radius:14px;background:var(--warn-flaeche);color:#7a3a05;
  line-height:1.6;margin:0 0 18px}
.hinweis.gut{background:var(--ok-flaeche);color:#16532c}
.hinweis.schlecht{background:#fdeceb;color:#8c1d16}

.karte{background:#fff;border:1px solid var(--linie);border-radius:20px;padding:22px;margin-bottom:20px}
.karte>h2{font-size:1.2rem;font-weight:800;margin-bottom:14px}

/* ---------- Anmeldung ---------- */
.anmeldung{max-width:26rem;margin:8vh auto 0}

/* ---------- Küchen-Tafel ---------- */
.spalten{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr));gap:18px}
.spalte>h2{font-size:1.05rem;font-weight:800;margin-bottom:12px;display:flex;align-items:center;gap:9px}
.spalte>h2 .zahl{min-width:26px;height:26px;padding-inline:7px;border-radius:999px;
  background:var(--btn);color:#fff;font-size:.85rem;display:grid;place-items:center}
.bon{background:#fff;border:1px solid var(--linie);border-radius:18px;padding:18px;margin-bottom:14px}
.bon.neu{border-color:var(--btn);border-width:2px;box-shadow:0 8px 24px rgba(232,72,10,.15)}
.bon.spaet{border-color:#a3221a;border-width:2px}
.bon-kopf{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.bon-nr{font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.35rem}
.bon-zeit{margin-left:auto;font-weight:800;font-size:1.2rem}
.bon-zeit.spaet{color:#a3221a}
.bon-art{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;background:var(--ok-flaeche);color:var(--ok)}
.bon-art.lieferung{background:#eef2fb;color:#24417d}
.bon-zahl{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;background:var(--warn-flaeche);color:var(--warn)}
.bon-zahl.bezahlt{background:var(--ok-flaeche);color:var(--ok)}
.bon ul{list-style:none;margin:12px 0;padding:0}
.bon li{padding:7px 0;border-bottom:1px solid var(--linie);display:flex;gap:10px}
.bon li b{min-width:2.4ch;color:var(--btn);font-size:1.05rem}
.bon li small{display:block;color:#6b5d54;font-size:.86rem}
/* Der Wunsch zum Gericht ist das, was die Kueche NICHT uebersehen darf. */
.bon li .wunsch{display:inline-block;margin-top:4px;padding:3px 10px;border-radius:8px;
  background:var(--warn-flaeche);color:var(--warn);font-weight:700;font-size:.92rem}
.bon-fuss{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.bon-adresse{font-size:.92rem;color:#4a423c;line-height:1.5;margin:8px 0 0}
.bon-bemerkung{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:var(--warn-flaeche);
  color:#7a3a05;font-weight:600;line-height:1.5}
.leer{padding:26px;text-align:center;color:#6b5d54;border:2px dashed var(--linie);border-radius:18px}

/* ---------- Betriebsseite ---------- */
.zahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:14px}
.zahl-kachel{background:#fff;border:1px solid var(--linie);border-radius:18px;padding:18px;text-align:center}
.zahl-kachel b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:2rem;
  font-weight:800;color:var(--btn)}
.zahl-kachel span{font-size:.9rem;color:#6b5d54}
.artikelliste{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:8px}
.artikelliste label{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;
  border:1.5px solid var(--linie);border-radius:14px;background:#fff;cursor:pointer}
.artikelliste label:focus-within{outline:3px solid #c2410c;outline-offset:2px}
.artikelliste input{width:22px;height:22px;accent-color:var(--btn);flex:none;margin:0}
.artikelliste label:has(input:checked){border-color:var(--btn);background:#fffaf7}

/* ---------- Danke-Seite ---------- */
.danke{max-width:44rem;margin:0 auto}
.danke h1{font-size:clamp(1.8rem,4vw,2.5rem);font-weight:800;margin-bottom:12px}
.gross-nr{font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(2rem,6vw,3rem);
  font-weight:800;color:var(--btn);letter-spacing:.02em}
.schritte{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}
.schritte li{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:14px;
  background:#fff;border:1px solid var(--linie);line-height:1.55}
.schritte li.aktiv{border-color:var(--btn);border-width:2px;font-weight:600}
.schritte li.fertig{background:var(--ok-flaeche);border-color:var(--ok-flaeche)}
.schritte .pkt{width:22px;height:22px;flex:none;border-radius:50%;border:2px solid var(--linie);
  margin-top:2px;display:grid;place-items:center;font-size:.7rem;font-weight:800}
.schritte li.aktiv .pkt{border-color:var(--btn);background:var(--btn);color:#fff}
.schritte li.fertig .pkt{border-color:var(--ok);background:var(--ok);color:#fff}
.summen-zeile{display:flex;justify-content:space-between;gap:16px;padding:7px 0}
.summen-zeile.gesamt{border-top:2px solid #1c1410;margin-top:8px;padding-top:12px;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:1.3rem}
.posten{list-style:none;margin:0;padding:0}
.posten li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--linie)}
.posten b.anz{color:var(--btn);min-width:2.4ch}
.posten .txt{flex:1;min-width:0}
.posten small{display:block;color:#6b5d54;font-size:.86rem;line-height:1.5}
.posten .betrag{font-weight:700;white-space:nowrap}

/* Ein Telefonlink mitten im Satz ist als Tippflaeche zu klein (gemessen 110x20).
   inline-flex hebt ihn auf 44 px; der Strich gehoert dann an den TEXT, nicht an
   den Kasten — sonst liegt er weit unter der Schrift. */
a[href^="tel:"],a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:44px;
  text-decoration:underline;text-underline-offset:3px;font-weight:600;color:#a8380a}

/* ---------- Rechtstexte ---------- */
.rechtstext{max-width:46rem;margin:0 auto}
.rechtstext h1{font-size:clamp(1.7rem,4vw,2.3rem);font-weight:800;margin-bottom:10px}
.rechtstext h2{font-size:1.25rem;font-weight:800;margin:34px 0 10px}
.rechtstext h3{font-size:1.05rem;font-weight:700;margin:22px 0 8px}
.rechtstext p,.rechtstext li{line-height:1.7}
.rechtstext ul,.rechtstext ol{padding-left:22px}
.rechtstext li{margin-bottom:6px}
.rechtstext dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:0}
.rechtstext dt{font-weight:600;color:#6b5d54}
.rechtstext dd{margin:0}
.rechtstext table{width:100%;border-collapse:collapse;margin:14px 0;font-size:.94rem}
.rechtstext th,.rechtstext td{text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid var(--linie);
  vertical-align:top}
/* Eine dreispaltige Tabelle passt bei 320 px nicht — sie scrollt in ihrem eigenen
   Kasten, damit nicht die ganze Seite seitwaerts wandert. */
.tabelle-scroll{overflow-x:auto;margin:14px 0;-webkit-overflow-scrolling:touch}
.tabelle-scroll table{margin:0;min-width:30rem}
.tabelle-scroll:focus-visible{outline:3px solid #c2410c;outline-offset:3px}

/* Quellenangaben sind je eine Zeile mit je einem Verweis — als Tippflaeche zu klein,
   wenn sie nur die Zeilenhoehe haben. Im Fliesstext bleiben Verweise, wie sie sind. */
.quelle li a,.rechtstext li>a:only-child{display:inline-flex;align-items:center;min-height:44px;
  text-underline-offset:3px}

.entwurf{border:2px solid #8a3a05;background:#fff4e8;color:#7a3a05;border-radius:16px;
  padding:18px 20px;margin:0 0 28px;line-height:1.6}
.entwurf b{display:block;margin-bottom:6px;font-size:1.05rem}
.offen{background:#fffaf6;border-left:4px solid var(--btn);padding:12px 16px;margin:14px 0;
  border-radius:0 12px 12px 0;line-height:1.6}
.quelle{font-size:.88rem;color:#6b5d54}
.rechts-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.rechts-nav a{min-height:44px;display:inline-flex;align-items:center;padding:10px 18px;
  border-radius:999px;background:#fff;border:1.5px solid var(--linie);text-decoration:none;
  font-weight:600;font-size:.94rem;color:#1c1410}
.rechts-nav a[aria-current]{background:var(--btn);border-color:var(--btn);color:#fff}

.fuss{margin-top:40px;padding-top:20px;border-top:1px solid var(--linie);
  font-size:.86rem;color:#6b5d54;line-height:1.6}
h1,h2,h3,p,b,li,td,th,.txt{overflow-wrap:break-word;hyphens:auto}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
