/* DOST – Farben und Schriften wie im Prototyp */
:root{
  --ground:#e9ece6; --card:#ffffff; --ink:#15302a; --muted:#5d6b66; --line:#d6ddd8;
  --accent:#0f6b55; --accent-ink:#ffffff; --saffron:#f2b33d; --saffron-ink:#4a3203;
  --ok-bg:#dff1e8; --ok-ink:#0b5a43; --warn-bg:#fcefd2; --warn-ink:#6b4a05; --bad-bg:#fbe3df; --bad-ink:#8a2a1c;
  --night:#1b1310; --night-ink:#f3e6d3;
  --display:"Bricolage Grotesque","Avenir Next",system-ui,sans-serif;
  --body:"Figtree","Helvetica Neue",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --ground:#0f1714; --card:#17221e; --ink:#e6eeea; --muted:#9fb0a9; --line:#2b3a34;
  --accent:#3fbf97; --accent-ink:#06261d; --saffron-ink:#2b1d02;
  --ok-bg:#163d30; --ok-ink:#9fe3c6; --warn-bg:#3d2f10; --warn-ink:#f6d58b; --bad-bg:#43201a; --bad-ink:#f4b3a6;
  color-scheme:dark}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.45;
  padding:env(safe-area-inset-top) 16px calc(28px + env(safe-area-inset-bottom))}
.wrap{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
h1,h2,h3{font-family:var(--display);margin:0;line-height:1.15;text-wrap:balance}
h1{font-size:26px}h2{font-size:20px}h3{font-size:17px}
p{margin:0}
a{color:var(--accent)}
:focus-visible{outline:3px solid var(--saffron);outline-offset:2px}

.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}
.brand{display:flex;align-items:center;gap:8px;font-family:var(--display);font-weight:800;font-size:24px;letter-spacing:.03em;text-decoration:none;color:var(--ink);line-height:1}
.brand img{width:48px;height:48px;flex:none}
.brand small{display:block;font-weight:500;font-size:12px;letter-spacing:0;color:var(--accent);margin-top:2px}
.top-r{display:flex;align-items:center;gap:8px}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--card)}
.lang a{font:600 13px var(--body);color:var(--muted);padding:6px 11px;text-decoration:none}
.lang a.an{background:var(--accent);color:var(--accent-ink)}
.top form button{background:none;border:0;color:var(--muted);font:500 14px var(--body);cursor:pointer;padding:6px}

.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:12px}
.muted{color:var(--muted)}
.klein{font-size:14px}

/* Startseite */
.hallo{font-family:var(--display);font-size:22px;font-weight:700}
.knoepfe{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.knopf{display:flex;flex-direction:column;gap:4px;justify-content:flex-end;min-height:128px;padding:16px;border-radius:20px;
  background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none;cursor:pointer;position:relative}
.knopf b{font-family:var(--display);font-size:20px;line-height:1.1}
.knopf span{font-size:14px;color:var(--muted)}
.knopf .ico{font-size:30px;line-height:1;margin-bottom:auto;padding-bottom:10px}
.knopf.haupt{grid-column:1/-1;background:var(--accent);color:var(--accent-ink);border-color:var(--accent);min-height:140px}
.knopf.haupt span{color:var(--accent-ink);opacity:.85}
.knopf input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}

.zahlen{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zahl{display:flex;flex-direction:column;gap:2px}
.zahl small{font-size:13px;color:var(--muted)}
.zahl b{font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}

.hinweis{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--warn-bg);color:var(--warn-ink);text-decoration:none;font-weight:500}
.hinweis.ok{background:var(--ok-bg);color:var(--ok-ink)}
.hinweis.bad{background:var(--bad-bg);color:var(--bad-ink)}
.hinweis .pfeil{margin-left:auto}

.toast{display:flex;align-items:center;gap:12px;background:var(--night);color:var(--night-ink);border-radius:18px;padding:16px 18px;font-family:var(--display);font-size:19px;font-weight:600;line-height:1.3;animation:rein .5s ease both}
@keyframes rein{from{transform:translateY(-8px)}to{transform:none}}

/* Listen */
.zeilen{display:flex;flex-direction:column}
.zeile{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.zeile:last-child{border-bottom:0}
.zeile .wer{flex:1;min-width:0}
.zeile .wer b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zeile .wer small{color:var(--muted);font-size:13px}
.zeile .betrag{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.pill{font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap}
.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}
.pill.ok{background:var(--ok-bg);color:var(--ok-ink)}
.pill.grau{background:var(--ground);color:var(--muted)}

/* Formulare */
form.f{display:flex;flex-direction:column;gap:14px}
.feld{display:flex;flex-direction:column;gap:5px}
.feld>label,.feld>.lbl{font-weight:600;font-size:15px}
.feld input[type=text],.feld input[type=date],.feld input[type=email],.feld input[type=password],.feld input:not([type]),.feld select,.feld textarea{
  font:17px var(--body);color:var(--ink);background:var(--ground);border:1px solid var(--line);border-radius:12px;padding:12px;width:100%}
.feld.unsicher input,.feld.unsicher select{border-color:var(--saffron);box-shadow:0 0 0 2px var(--warn-bg)}
.feld .hilfe{font-size:13px;color:var(--muted)}
.feld .err,.errorlist{color:var(--bad-ink);font-size:14px;margin:0;padding:0;list-style:none}
.reihe{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.reihe>*{min-width:0}
.wahl{display:flex;flex-wrap:wrap;gap:8px}
.wahl label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--ground);border-radius:999px;padding:9px 14px;font-weight:500;cursor:pointer}
.wahl input{accent-color:var(--accent)}
.wahl label:has(input:checked){background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.wahl.block{flex-direction:column}
.wahl.block label{border-radius:14px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--accent)}
details.mehr summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:15px}
details.mehr[open] summary{margin-bottom:12px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 17px var(--body);text-decoration:none;border:0;border-radius:14px;padding:14px 18px;cursor:pointer}
.btn.voll{width:100%}
.btn.gruen{background:var(--accent);color:var(--accent-ink)}
.btn.gelb{background:var(--saffron);color:#2b1d02}
.btn.leise{background:transparent;color:var(--muted);border:1px solid var(--line)}
.btn.rot{background:var(--bad-bg);color:var(--bad-ink)}
.knopfreihe{display:flex;gap:10px;flex-wrap:wrap}
.knopfreihe>*{flex:1}

.foto{border-radius:16px;overflow:hidden;background:var(--night);display:flex;justify-content:center;max-height:52vh}
.foto img{max-width:100%;max-height:52vh;object-fit:contain;display:block}
.frage{background:var(--night);color:var(--night-ink);border-radius:16px;padding:14px 16px;font-weight:500}
.frage small{display:block;color:var(--saffron);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}

table.tab{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
table.tab th,table.tab td{text-align:left;padding:7px 4px;border-bottom:1px solid var(--line)}
table.tab td.r,table.tab th.r{text-align:right}
table.tab tr.ende td{font-weight:700}
table.tab tr.minus td{background:var(--bad-bg);color:var(--bad-ink)}
.scroll{overflow-x:auto}

.monatsnav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.monatsnav a{text-decoration:none;font-weight:600}

/* Lese-Overlay */
.lesen{position:fixed;inset:0;background:rgba(15,23,20,.95);color:#f3e6d3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10;text-align:center;padding:24px}
.lesen[hidden]{display:none}
.lesen b{font-family:var(--display);font-size:26px}
.kreis{width:56px;height:56px;border-radius:50%;border:5px solid rgba(255,255,255,.2);border-top-color:#f2b33d;animation:dreh 1s linear infinite}
@keyframes dreh{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.kreis,.toast{animation:none}}

.toast img{width:48px;height:48px;border-radius:50%;background:var(--saffron);flex:none;object-fit:cover}
.held{display:block;width:160px;height:160px;margin:0 auto -4px}
.lese-logo{width:160px;height:160px;animation:wippen 1.6s ease-in-out infinite}
.kreis{width:34px;height:34px;border-width:4px}
@keyframes wippen{50%{transform:translateY(-6px) rotate(-2deg)}}
@media (prefers-reduced-motion:reduce){.lese-logo{animation:none}}
.pdfkarte{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:16px;background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.pdfkarte>span:first-child{font-size:30px}
.pdfkarte b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pdfkarte>span:last-child{color:var(--accent);font-weight:600;white-space:nowrap}
.ton{background:var(--card);border:1px solid var(--line);border-radius:999px;width:38px;height:34px;font-size:16px;cursor:pointer;color:var(--ink)}
.ton[aria-pressed="true"]{background:var(--saffron);border-color:var(--saffron)}

/* Landingpage */
.wrap.breit{max-width:1040px;gap:0}
.l-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;background:var(--night);color:var(--night-ink);border-radius:28px;padding:clamp(22px,5vw,52px);margin-top:8px;overflow:hidden}
.l-hero>*{min-width:0}
.l-eyebrow{font:600 13px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--saffron)}
.l-hero h1{font-size:clamp(36px,6.4vw,66px);font-weight:800;line-height:1.02;margin-top:12px;letter-spacing:-.01em}
.l-hero h1 em{font-style:normal;color:var(--saffron)}
.l-lead{color:#d9c7ae;font-size:clamp(17px,2vw,20px);margin-top:18px;max-width:40ch}
.l-lead b{color:var(--night-ink)}
.l-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.l-ghost{background:transparent;color:var(--night-ink);border:1px solid #3a2a22}
.l-ghost[aria-pressed="true"]{border-color:var(--saffron);color:var(--saffron)}
.l-fein{font-size:14px;color:#c9b49b;margin-top:14px}
.l-fein a{color:var(--saffron)}
.l-figur{width:100%;max-width:380px;height:auto;justify-self:center;filter:drop-shadow(0 18px 26px rgba(0,0,0,.5))}
.l-sek{padding-block:clamp(36px,6vw,64px) 0;display:flex;flex-direction:column;gap:18px}
.l-sek h2{font-size:clamp(26px,4vw,38px);font-weight:800}
.l-dert{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.l-dert>div{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;min-width:0}
.l-dert b{font-family:var(--display);font-size:18px;display:block}
.l-dert p{color:var(--muted);font-size:15px;margin-top:6px}
.l-adim{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:a}
.l-adim li{counter-increment:a;border-top:3px solid var(--accent);padding-top:14px;min-width:0}
.l-adim li::before{content:counter(a);font:800 40px/1 var(--display);color:var(--saffron);display:block;margin-bottom:6px}
.l-adim b{font-family:var(--display);font-size:20px}
.l-adim p{color:var(--muted);margin-top:6px}
.l-iki{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.l-iki>*{min-width:0}
.l-iki ul{margin:0;padding-left:20px;display:grid;gap:6px}
.l-durust{border-left:4px solid var(--saffron);padding:6px 0 6px 14px;color:var(--muted)}
.l-fiyat{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;background:var(--accent);color:var(--accent-ink);border-radius:24px;padding:28px;margin-top:48px}
.l-tutar{font:800 clamp(52px,8vw,76px)/1 var(--display);margin:8px 0}
.l-tutar small{font-size:18px;font-weight:500}
.l-sek details{border-bottom:1px solid var(--line);padding-block:12px}
.l-sek summary{font:700 18px var(--display);cursor:pointer}
.l-sek details p{color:var(--muted);margin-top:8px}
.l-schluss{margin-top:48px;background:var(--night);color:var(--night-ink);border-radius:24px;padding:32px;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.l-schluss p{font:700 clamp(22px,3.4vw,32px)/1.25 var(--display);max-width:28ch}
.l-fuss{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:40px;padding-top:16px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.l-fuss nav{display:flex;gap:16px}
@media (max-width:860px){.l-dert{grid-template-columns:1fr 1fr}.l-adim,.l-iki{grid-template-columns:1fr}}
@media (max-width:640px){.l-hero{grid-template-columns:1fr}.l-figur{max-width:240px;order:-1}.l-dert{grid-template-columns:1fr}}
