/* App-eigene Ergänzungen zu den D1-Bausteinen (nur Tokens, keine eigenen Farben oder Maße).
   Inline-Styles sind per CSP gesperrt, deshalb Kapitelfarben und Blatt-Zustand als Klassen. */

.kap--aperitivi { --kap: var(--kap-aperitivi); }
.kap--analcolici { --kap: var(--kap-analcolici); }
.kap--birra { --kap: var(--kap-birra); }
.kap--vini { --kap: var(--kap-vini); }
.kap--distillati { --kap: var(--kap-distillati); }
.kap--grappa { --kap: var(--kap-grappa); }
.kap--caffe { --kap: var(--kap-caffe); }
.kap--dolci { --kap: var(--kap-dolci); }

a { color: var(--vino); }
a.zeile, a.leiste__punkt, a.reiter__punkt, a.knopf, a.knopf-icon { text-decoration: none; color: inherit; }
a.knopf { color: var(--white); }
a.knopf--zweit { color: var(--vino); }
a.zeile[aria-current="true"] { background: var(--vino-hell); }
form.inline { display: contents; }

/* Zeile mit mehreren Preisen: untereinander, rechtsbündig */
.zeile__preis span { display: block; }

/* Blatt offen: Seite darunter nicht scrollen (mobil und mittlere Breite, Blatt liegt über der Liste mit Schleier).
   Erst ab 1280 px ist neben Leiste (248) und Blatt (520) genug Platz, dass die Liste daneben sichtbar bleibt. */
body.mit-blatt { overflow: hidden; }
@media (min-width: 1280px) {
  body.mit-blatt { overflow: auto; }
  body.mit-blatt .app__main { padding-right: 520px; }
  body.mit-blatt .schleier { display: none; }
}
.schleier { display: block; }

/* Preiszeile im Blatt: nur der Preis ist bearbeitbar (S3) */
.preis--fest { grid-template-columns: auto minmax(0, 1fr) 96px; }
.preis__bezeichnung { min-width: 0; font-size: var(--text-sm); }

/* Anmeldung */
.anmeldung { min-height: 100dvh; display: grid; place-items: center; padding: var(--s-6) var(--rand-mobil); }
.anmeldung__karte { width: 100%; max-width: 400px; display: flex; flex-direction: column; gap: var(--s-6); padding: var(--s-8) var(--s-6); background: var(--white); border: var(--linie); }
.anmeldung__marke { display: flex; align-items: center; gap: var(--s-3); }
.anmeldung__marke img { width: 40px; height: 40px; }
.anmeldung__marke span { font: 500 var(--text-lg)/1.1 var(--font-serif); }
.anmeldung__marke small { display: block; font: 400 var(--text-xs)/1.4 var(--font-sans); letter-spacing: var(--caps-spacing); text-transform: uppercase; color: var(--muted); }

/* Änderungen (Audit) */
.verlauf { display: flex; flex-direction: column; background: var(--white); border: var(--linie); margin: 0; padding: 0; list-style: none; }
.verlauf li { display: grid; grid-template-columns: 1fr auto; gap: var(--s-1) var(--s-4); padding: var(--s-3) var(--s-4); border-bottom: var(--linie); }
.verlauf li:last-child { border-bottom: 0; }
.verlauf__bezug { font: 400 var(--text-md)/1.25 var(--font-serif); }
.verlauf__wert { grid-row: 1 / span 2; grid-column: 2; text-align: right; font: 400 var(--text-md)/1.25 var(--font-serif); white-space: nowrap; font-variant-numeric: lining-nums tabular-nums; }
.verlauf__meta { font-size: var(--text-sm); color: var(--muted); }

/* Sprungziel nach dem Speichern (#eintrag-…) nicht unter Kopfzeile und Kapitelband verstecken */
.zeile { scroll-margin-top: calc(56px + var(--s-14) + var(--s-4)); }
@media (min-width: 960px) { .zeile { scroll-margin-top: calc(64px + var(--s-14) + var(--s-4)); } }

/* Druck (S4): Fehlermeldung als Statusband, Prüfsumme klein */
.lage--fehler { border-left-color: var(--hinweis); }
.meldung__punkte { margin: var(--s-2) 0; padding-left: var(--s-6); }
.meldung__punkte li { margin-bottom: var(--s-1); overflow-wrap: anywhere; }
.verlauf__hash { font: 400 var(--text-xs)/1.4 var(--font-sans); color: var(--muted); }
a.verlauf__bezug { overflow-wrap: anywhere; }
