/* ==========================================================
   Öko-Scheck Antragsservice – Saglam Creative Solutions GmbH
   Tokens: Scheck-Papier, Tannengrün, Stempelblau
   ========================================================== */

/* Schrift: Inter, selbst gehostet (DSGVO: keine Verbindung zu Google).
   Datei assets/fonts/InterVariable.woff2 ablegen – siehe ANLEITUNG.md.
   Ist Inter auf dem Gerät installiert, wird diese Version genutzt; fehlt beides, greift die Systemschrift. */
@font-face{font-family:"Inter";src:local("Inter Variable"),local("Inter"),url("fonts/InterVariable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{
  --paper:#F3F5F0;      /* Grund, leicht grünstichig */
  --sheet:#FFFFFF;      /* Formularblatt */
  --cheque:#E3EFE7;     /* Scheckpapier */
  --ink:#15231C;        /* Tannenschwarz */
  --muted:#56645C;
  --line:#C5D1C8;
  --fir:#1D5A44;        /* Hauptakzent */
  --fir-ink:#FFFFFF;
  --fir-soft:#D5E6DC;
  --stamp:#3440A0;      /* Stempelblau: Fristen, Pflichthinweise */
  --stamp-soft:#E2E5F6;
  --ok:#23703F; --ok-soft:#DDEFE3;
  --no:#A12A22; --no-soft:#F6E0DD;
  --guilloche:rgba(29,90,68,.16);
  --shadow:0 1px 0 rgba(21,35,28,.06),0 12px 32px -18px rgba(21,35,28,.35);

  --f-display:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;

  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:3rem;--s-8:4.5rem;--s-9:6.5rem;
  --t-xs:.78rem;--t-sm:.9rem;--t-md:1.05rem;--t-lg:1.3rem;--t-xl:1.75rem;--t-2xl:2.4rem;--t-3xl:clamp(2.3rem,5.4vw,4.1rem);
  --r-sm:4px;--r-md:8px;
  --wrap:72rem;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1512;--sheet:#15201B;--cheque:#18271F;--ink:#E4EDE7;--muted:#9AABA1;--line:#2B3A32;
    --fir:#6CC19C;--fir-ink:#0B1410;--fir-soft:#1F3A2E;--stamp:#A3ADF5;--stamp-soft:#232849;
    --ok:#7ED39C;--ok-soft:#173222;--no:#F09A90;--no-soft:#3A1D1A;--guilloche:rgba(108,193,156,.13);
    --shadow:0 1px 0 rgba(0,0,0,.4),0 14px 36px -20px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --paper:#0E1512;--sheet:#15201B;--cheque:#18271F;--ink:#E4EDE7;--muted:#9AABA1;--line:#2B3A32;
  --fir:#6CC19C;--fir-ink:#0B1410;--fir-soft:#1F3A2E;--stamp:#A3ADF5;--stamp-soft:#232849;
  --ok:#7ED39C;--ok-soft:#173222;--no:#F09A90;--no-soft:#3A1D1A;--guilloche:rgba(108,193,156,.13);
  --shadow:0 1px 0 rgba(0,0,0,.4),0 14px 36px -20px rgba(0,0,0,.8);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:var(--t-md);line-height:1.6;padding-inline:clamp(16px,4vw,40px)}
img{max-width:100%}
a{color:var(--fir);text-underline-offset:.18em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--stamp);outline-offset:2px;border-radius:2px}
h1,h2,h3{font-family:var(--f-display);line-height:1.08;letter-spacing:-.015em;text-wrap:balance;margin:0}
h2{font-size:var(--t-2xl);font-weight:800}
h3{font-size:var(--t-lg);font-weight:700}
p{margin:0}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.wrap{max-width:var(--wrap);margin-inline:auto}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Sprache: nur aktive Sprache sichtbar */
html[lang="de"] [data-lang="tr"],html[lang="tr"] [data-lang="de"]{display:none!important}

/* ---------- Kopfzeile ---------- */
.top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-4);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:baseline;gap:var(--s-2);text-decoration:none;color:var(--ink);flex-wrap:wrap}
.brand b{font-family:var(--f-display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em}
.brand span{font-size:var(--t-xs);color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.top nav{display:flex;align-items:center;gap:var(--s-4)}
.top nav a.navlink{color:var(--ink);text-decoration:none;font-size:var(--t-sm)}
.top nav a.navlink:hover{color:var(--fir)}
@media (max-width:760px){.top nav a.navlink{display:none}}
.lang{display:inline-flex;border:1px solid var(--ink);border-radius:999px;overflow:hidden}
.lang button{font:500 var(--t-xs)/1 var(--f-mono);letter-spacing:.08em;background:transparent;color:var(--ink);border:0;padding:.55rem .8rem;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}

.notice-bar{font-size:var(--t-xs);color:var(--muted);padding-block:var(--s-2);text-align:right}

/* ---------- Hero ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(var(--s-6),5vw,var(--s-8));align-items:center;padding-block:clamp(var(--s-6),6vw,var(--s-8))}
@media (max-width:880px){.hero{grid-template-columns:1fr}}
.eyebrow{font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--stamp)}
.hero h1{font-size:var(--t-3xl);font-weight:800;margin-block:var(--s-3) var(--s-5)}
.hero h1 em{font-style:normal;color:var(--fir);white-space:nowrap}
.hero .lede{font-size:var(--t-lg);max-width:34ch;color:var(--ink)}
.hero .actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font:600 var(--t-md)/1 var(--f-body);padding:.95rem 1.3rem;border-radius:var(--r-sm);text-decoration:none;cursor:pointer;border:1.5px solid var(--fir);transition:transform .15s ease,background .15s ease}
.btn.primary{background:var(--fir);color:var(--fir-ink)}
.btn.primary:hover{transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--fir)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.hero .facts{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);margin-top:var(--s-6);font-size:var(--t-sm);color:var(--muted)}
.hero .facts strong{color:var(--ink);font-weight:600}

/* Der Scheck */
.cheque{position:relative;background:var(--cheque);border-radius:var(--r-md);padding:clamp(1.2rem,3vw,2rem);box-shadow:var(--shadow);overflow:hidden;isolation:isolate;transform:rotate(-1.2deg)}
@media (max-width:880px){.cheque{transform:none}}
.cheque canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.cheque::after{content:"";position:absolute;right:26%;top:0;bottom:0;border-left:2px dashed var(--line)}
.cq-grid{display:grid;grid-template-columns:minmax(0,1fr) 26%;gap:var(--s-5)}
.cq-head{display:flex;justify-content:space-between;gap:var(--s-3);font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cq-title{font-family:var(--f-display);font-weight:800;font-size:clamp(1.4rem,3vw,1.9rem);margin-top:var(--s-4);color:var(--fir)}
.cq-field{margin-top:var(--s-4);border-bottom:1px solid var(--muted);padding-bottom:.35rem}
.cq-field small{display:block;font:500 .66rem/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.cq-amount{font:500 clamp(1.7rem,4.2vw,2.6rem)/1.1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.cq-words{font-style:italic;color:var(--ink)}
.cq-stub{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-3);font:500 var(--t-xs)/1.35 var(--f-mono);color:var(--muted)}
.cq-stub b{display:block;color:var(--ink);font-size:.95rem}
.stamp{position:absolute;right:30%;bottom:1.2rem;transform:rotate(-9deg);border:2px solid var(--stamp);color:var(--stamp);font:600 .68rem/1.25 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;padding:.35rem .55rem;border-radius:3px;background:color-mix(in srgb,var(--cheque) 70%,transparent);text-align:center}
.cq-note{margin-top:var(--s-3);font-size:var(--t-xs);color:var(--muted)}

/* ---------- Abschnitte ---------- */
section.block{padding-block:clamp(var(--s-7),7vw,var(--s-9));border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:var(--s-5) var(--s-7);align-items:start}
@media (max-width:820px){.sec-head{grid-template-columns:1fr}}
.sec-label{font:500 var(--t-xs)/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:.55rem}
.sec-body{display:grid;gap:var(--s-5);max-width:48rem}
.sec-body > p{max-width:65ch}

.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
@media (max-width:680px){.two{grid-template-columns:1fr}}
.list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.list li{display:grid;grid-template-columns:1.4rem 1fr;gap:.4rem;align-items:baseline}
.list li::before{content:"";width:.7rem;height:.7rem;border-radius:2px;background:var(--fir);transform:translateY(.05rem)}
.list.neg li::before{background:transparent;border:1.5px solid var(--no);border-radius:50%}
.col-title{font:600 var(--t-sm)/1.3 var(--f-body);margin-bottom:var(--s-3);display:flex;gap:.5rem;align-items:center}
.pill{display:inline-block;font:500 .7rem/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;padding:.3rem .5rem;border-radius:999px}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.no{background:var(--no-soft);color:var(--no)}

/* Zahlen der Förderung */
.figures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-md);background:var(--sheet)}
@media (max-width:760px){.figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
.figures div{padding:var(--s-4) var(--s-4) var(--s-5);border-left:1px solid var(--line)}
.figures div:first-child{border-left:0}
@media (max-width:760px){.figures div:nth-child(3){border-left:0}.figures div:nth-child(n+3){border-top:1px solid var(--line)}}
.figures small{display:block;font:500 .7rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.figures b{display:block;font:500 clamp(1.3rem,2.6vw,1.75rem)/1.2 var(--f-mono);font-variant-numeric:tabular-nums;margin-top:.35rem}
.figures span{display:block;font-size:var(--t-xs);color:var(--muted);margin-top:.2rem}

.callout{border:1.5px solid var(--stamp);background:var(--stamp-soft);border-radius:var(--r-md);padding:var(--s-5)}
.callout h3{color:var(--stamp);font-size:var(--t-md);font-family:var(--f-body);font-weight:600;letter-spacing:0;margin-bottom:var(--s-3)}
.callout .list li::before{background:var(--stamp)}

/* Ablauf – echte Reihenfolge */
.steps{list-style:none;margin:0;padding:0;counter-reset:st;display:grid;gap:0}
.steps li{counter-increment:st;display:grid;grid-template-columns:3rem 1fr;gap:var(--s-4);padding-block:var(--s-4);border-top:1px dashed var(--line)}
.steps li:first-child{border-top:0}
.steps li::before{content:counter(st);font:500 var(--t-lg)/1 var(--f-mono);color:var(--fir);width:2.4rem;height:2.4rem;border:1.5px solid var(--fir);border-radius:50%;display:grid;place-items:center}
.steps b{display:block}
.steps .fee{font:500 var(--t-xs)/1.4 var(--f-mono);color:var(--stamp);letter-spacing:.04em}

/* Preise als Scheck-Abschnitte */
.stubs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:var(--sheet);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden}
@media (max-width:680px){.stubs{grid-template-columns:1fr}}
.stub{padding:var(--s-6);display:grid;gap:var(--s-3);align-content:start;position:relative}
.stub + .stub{border-left:2px dashed var(--line)}
@media (max-width:680px){.stub + .stub{border-left:0;border-top:2px dashed var(--line)}}
.stub .k{font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stub .price{font:500 clamp(2rem,4vw,2.7rem)/1 var(--f-mono);font-variant-numeric:tabular-nums}
.stub .price small{font-size:.9rem;color:var(--muted);margin-left:.3rem}
.stub .gross{font:400 var(--t-sm)/1.3 var(--f-mono);color:var(--muted)}
.stub .when{font-weight:600}
.stub-foot{grid-column:1/-1;padding:var(--s-4) var(--s-6);background:var(--cheque);font-size:var(--t-sm);border-top:1px solid var(--line)}

/* ---------- Eignungs-Check (Formularblatt) ---------- */
.sheet{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);position:relative}
.sheet::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:radial-gradient(circle at 5px 0,var(--paper) 4px,transparent 4.5px) 0 0/14px 10px repeat-x;border-radius:var(--r-md) var(--r-md) 0 0}
.sheet-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--s-2);padding:var(--s-5) var(--s-6) var(--s-4);border-bottom:1px solid var(--line);font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.q{display:grid;grid-template-columns:2.2rem minmax(0,1fr) auto;gap:var(--s-3) var(--s-4);align-items:center;padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--line)}
.q[hidden]{display:none}
@media (max-width:640px){.q{grid-template-columns:2rem 1fr}.q .ctrl{grid-column:2}}
.q .n{font:500 var(--t-sm)/1 var(--f-mono);color:var(--muted)}
.q .txt small{display:block;color:var(--muted);font-size:var(--t-xs);margin-top:.15rem}
.seg{display:inline-flex;border:1.5px solid var(--ink);border-radius:var(--r-sm);overflow:hidden}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{font:500 var(--t-sm)/1 var(--f-body);padding:.6rem .95rem;cursor:pointer;min-width:3.6rem;text-align:center}
.seg label + input + label{border-left:1.5px solid var(--ink)}
.seg input:checked + label{background:var(--ink);color:var(--paper)}
.seg input:focus-visible + label{outline:3px solid var(--stamp);outline-offset:-3px}
select,input[type="text"],input[type="email"],input[type="tel"],input[type="number"],textarea{font:400 var(--t-md)/1.3 var(--f-body);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.65rem .75rem;width:100%}
select:focus,input:focus,textarea:focus{border-color:var(--fir);outline:none;box-shadow:0 0 0 3px var(--fir-soft)}
.q select{min-width:15rem}
@media (max-width:640px){.q select{min-width:0}}

.result{margin:var(--s-5) var(--s-6);border-radius:var(--r-md);padding:var(--s-5);display:grid;gap:var(--s-3)}
.result.ok{background:var(--ok-soft);border:1.5px solid var(--ok)}
.result.no{background:var(--no-soft);border:1.5px solid var(--no)}
.result.pending{background:var(--cheque);border:1.5px dashed var(--line)}
.result h3{font-size:var(--t-lg)}
.result.ok h3{color:var(--ok)}.result.no h3{color:var(--no)}
.result ul{margin:0;padding-left:1.1rem}

/* Bestellformular */
.order{padding:var(--s-5) var(--s-6) var(--s-6);display:grid;gap:var(--s-5);border-top:2px dashed var(--line)}
.order[hidden]{display:none}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}
@media (max-width:640px){.fields{grid-template-columns:1fr}}
.field{display:grid;gap:.35rem}
.field.full{grid-column:1/-1}
.field label{font-size:var(--t-sm);font-weight:500}
.field .hint{font-size:var(--t-xs);color:var(--muted)}
.req{color:var(--no)}
.consents{display:grid;gap:var(--s-3);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-5)}
.consent{display:grid;grid-template-columns:1.4rem 1fr;gap:.6rem;align-items:start;font-size:var(--t-sm)}
.consent input{width:1.15rem;height:1.15rem;margin-top:.2rem;accent-color:var(--fir)}
.consent b{font-weight:600}
.pay{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4)}
.pay .sum{font:500 var(--t-sm)/1.5 var(--f-mono);color:var(--muted)}
.pay .sum b{color:var(--ink);font-size:1.2rem}
.formmsg{font-size:var(--t-sm)}
.formmsg.err{color:var(--no)}
.ref{font:500 var(--t-sm)/1 var(--f-mono);color:var(--stamp)}

/* FAQ */
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding-block:var(--s-4)}
.faq summary{cursor:pointer;font-weight:600;list-style:none;display:grid;grid-template-columns:1fr 1.5rem;gap:var(--s-3)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:500 1.3rem/1 var(--f-mono);color:var(--fir);text-align:right}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:var(--s-3);max-width:65ch;color:var(--ink)}

/* Fuß */
footer{border-top:1px solid var(--line);padding-block:var(--s-7) var(--s-6);display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:var(--s-6);font-size:var(--t-sm);color:var(--muted)}
@media (max-width:760px){footer{grid-template-columns:1fr}}
footer b{color:var(--ink)}
footer nav{display:grid;gap:.35rem}
footer a{color:var(--ink)}
.disclaimer{grid-column:1/-1;font-size:var(--t-xs);border-top:1px dashed var(--line);padding-top:var(--s-4)}

/* ---------- Rechtstexte ---------- */
.legal{max-width:46rem;margin-inline:auto;padding-block:var(--s-7) var(--s-8)}
.legal h1{font-size:var(--t-2xl);margin-bottom:var(--s-3)}
.legal .meta{font:500 var(--t-xs)/1.4 var(--f-mono);color:var(--muted);letter-spacing:.05em;margin-bottom:var(--s-6)}
.legal h2{font-size:var(--t-lg);margin-top:var(--s-6);margin-bottom:var(--s-3)}
.legal p,.legal li{max-width:65ch}
.legal p + p{margin-top:var(--s-3)}
.legal ol,.legal ul{padding-left:1.2rem;display:grid;gap:.35rem;margin:var(--s-3) 0}
.legal .box{background:var(--sheet);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-5);margin-block:var(--s-5)}
.legal dl{display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);gap:.4rem var(--s-4);margin:0}
@media (max-width:560px){.legal dl{grid-template-columns:1fr}.legal dd{margin-bottom:.5rem}}
.legal dt{color:var(--muted)}
.legal dd{margin:0}
.placeholder{background:var(--stamp-soft);color:var(--stamp);font-family:var(--f-mono);font-size:.9em;padding:0 .3rem;border-radius:3px}
.steps .fee{display:block;margin-top:.25rem}
.steps li > div > span:not(.fee){display:block;color:var(--muted)}
.field-label{font-size:var(--t-sm);font-weight:500}
.field .seg{justify-self:start}
/* Feinschliff nach Sichtprüfung */
.hero h1{max-width:13ch}
.hero .lede{max-width:40ch}
.cq-title{font-size:clamp(1.25rem,2.4vw,1.6rem)}
.cq-amount{font-size:clamp(1.5rem,3.2vw,2.2rem);white-space:nowrap}
.figures b{font-size:clamp(1.05rem,1.9vw,1.35rem);white-space:nowrap}
.stamp{bottom:3.6rem}
.cheque{padding-bottom:1.4rem}

/* ================= Antragsassistent ================= */
.asst{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:var(--s-7);padding-block:var(--s-6) var(--s-8);align-items:start}
@media (max-width:900px){.asst{grid-template-columns:1fr;gap:var(--s-5)}}
.rail{position:sticky;top:var(--s-4);display:grid;gap:var(--s-4)}
@media (max-width:900px){.rail{position:static}}
.rail h1{font-size:var(--t-xl)}
.rail ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:rs}
@media (max-width:900px){.rail ol{display:flex;overflow-x:auto;gap:var(--s-2);padding-bottom:.3rem}}
.rail li{counter-increment:rs}
.rail ol button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1.8rem 1fr;gap:.5rem;align-items:center;width:100%;padding:.55rem .6rem;border-radius:var(--r-sm);font-size:var(--t-sm);color:var(--muted)}
@media (max-width:900px){.rail ol button{white-space:nowrap;width:auto;border:1px solid var(--line)}}
.rail ol button::before{content:counter(rs);font:500 var(--t-xs)/1 var(--f-mono);width:1.6rem;height:1.6rem;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center}
.rail ol button[aria-current="step"]{background:var(--sheet);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.rail ol button.done{color:var(--fir)}
.rail ol button.done::before{content:"✓";background:var(--fir);color:var(--fir-ink);border-color:var(--fir)}
.rail ol button:focus-visible{outline:3px solid var(--stamp)}
.rail .meta{font:500 var(--t-xs)/1.5 var(--f-mono);color:var(--muted)}

.panel{display:grid;gap:var(--s-5)}
.panel > .sheet{padding:var(--s-6) var(--s-6) var(--s-5)}
@media (max-width:640px){.panel > .sheet{padding:var(--s-5) var(--s-4)}}
.step[hidden]{display:none}
.step{display:grid;gap:var(--s-5)}
.step-head{display:grid;gap:var(--s-2)}
.step-head h2{font-size:var(--t-xl)}
.step-head p{color:var(--muted);max-width:62ch}
.chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chip span{display:inline-block;padding:.5rem .8rem;border:1.5px solid var(--line);border-radius:999px;font-size:var(--t-sm)}
.chip input:checked + span{border-color:var(--fir);background:var(--fir-soft);color:var(--ink)}
.chip input:focus-visible + span{outline:3px solid var(--stamp);outline-offset:2px}
.navbar{display:flex;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;border-top:1px dashed var(--line);padding-top:var(--s-4)}

.team{display:grid;gap:var(--s-3)}
.member{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 6.5rem 6.5rem 2.4rem;gap:var(--s-2);align-items:end;padding:var(--s-3);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md)}
.member .aufgaben{grid-column:1/-2}
@media (max-width:760px){.member{grid-template-columns:1fr 1fr}.member .aufgaben{grid-column:1/-1}}
.member label{font-size:var(--t-xs);color:var(--muted);display:block;margin-bottom:.2rem}
.iconbtn{all:unset;cursor:pointer;width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:var(--r-sm);color:var(--no);border:1.5px solid var(--line)}
.iconbtn:hover{border-color:var(--no)}
.iconbtn:focus-visible{outline:3px solid var(--stamp)}

.calc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-md);background:var(--cheque)}
@media (max-width:760px){.calc{grid-template-columns:repeat(2,minmax(0,1fr))}}
.calc div{padding:var(--s-3) var(--s-4)}
.calc small{display:block;font:500 .68rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.calc b{font:500 1.25rem/1.3 var(--f-mono);font-variant-numeric:tabular-nums}
.warns{display:grid;gap:.4rem;margin:0;padding:0;list-style:none;font-size:var(--t-sm)}
.warns li{padding:.5rem .7rem;border-radius:var(--r-sm);background:var(--no-soft);color:var(--no)}
.warns li.info{background:var(--stamp-soft);color:var(--stamp)}

.textcard{border:1px solid var(--line);border-radius:var(--r-md);background:var(--sheet);display:grid}
.textcard header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}
.textcard header b{font-weight:600}
.textcard header small{font:500 var(--t-xs)/1.3 var(--f-mono);color:var(--muted)}
.textcard textarea{border:0;border-radius:0;background:var(--sheet);min-height:9rem;resize:vertical;font-size:var(--t-sm);line-height:1.55;padding:var(--s-4)}
.textcard textarea.long{min-height:24rem}
.textcard footer{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);background:var(--paper);border-radius:0 0 var(--r-md) var(--r-md)}
.counter{font:500 var(--t-xs)/1 var(--f-mono);padding:.35rem .5rem;border-radius:999px}
.counter.ok{background:var(--ok-soft);color:var(--ok)}
.counter.bad{background:var(--no-soft);color:var(--no)}
.counter.idle{background:var(--cheque);color:var(--muted)}
.tools{display:flex;gap:var(--s-2);flex-wrap:wrap}
.btn.sm{padding:.55rem .8rem;font-size:var(--t-sm)}
.approve{display:flex;gap:.5rem;align-items:center;font-size:var(--t-sm)}
.approve input{accent-color:var(--fir);width:1.1rem;height:1.1rem}
.flag{font-size:var(--t-xs);color:var(--no)}
.ideas{display:grid;gap:var(--s-3)}
.idea{border:1px dashed var(--fir);border-radius:var(--r-md);padding:var(--s-4);display:grid;gap:var(--s-2);white-space:pre-wrap;font-size:var(--t-sm);background:var(--paper)}
.gate{text-align:left;display:grid;gap:var(--s-4);max-width:40rem}
.kv{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:.35rem var(--s-4);font-size:var(--t-sm)}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:var(--f-mono)}
@media (max-width:560px){.kv{grid-template-columns:1fr}}
.dm-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 9rem 7rem 2.4rem;gap:var(--s-2);align-items:end}
@media (max-width:760px){.dm-row{grid-template-columns:1fr 1fr}}
.dm-row label{font-size:var(--t-xs);color:var(--muted);display:block;margin-bottom:.2rem}
[hidden]{display:none!important}
.rail-tools{display:grid;gap:.35rem;justify-items:start;font-size:var(--t-xs)}
.linkish{all:unset;cursor:pointer;color:var(--fir);text-decoration:underline;text-underline-offset:2px;font-size:var(--t-xs)}
.linkish:focus-visible,.linkish:focus-within{outline:3px solid var(--stamp);outline-offset:2px}
@media (max-width:900px){.rail-tools{display:flex;flex-wrap:wrap;gap:var(--s-3)}}
.ai-note{font-size:var(--t-xs);color:var(--muted);border-left:3px solid var(--stamp);padding-left:var(--s-3);max-width:62ch}
.saved{font:500 var(--t-xs)/1 var(--f-mono);color:var(--muted)}

@media print{
  body{background:#fff;color:#000;padding:0}
  .top,.notice-bar,.rail,.gate,.navbar,.tools,.approve,footer,.no-print,#bs-form{display:none!important}
  .asst{display:block;padding:0}
  .step[hidden]{display:grid!important}
  .step:not(.printable){display:none!important}
  .sheet{box-shadow:none;border:0}
  .textcard textarea{border:1px solid #999;min-height:auto;height:auto;overflow:visible}
}
@media print{
  .asst,.panel > .sheet,#gate{display:none!important}
  #printout{display:block!important}
  #printout h2{font-size:14pt;margin:14pt 0 4pt}
  #printout pre{white-space:pre-wrap;font:10pt/1.45 var(--f-body);margin:0}
}

/* ---------- Schritt-Formular (Startseite) ---------- */
.wz-section{display:grid;gap:var(--s-5)}
.wz-intro{max-width:46rem;margin-inline:auto;width:100%;display:grid;gap:var(--s-2)}
.wz-intro p{color:var(--muted)}
.wz-card{max-width:46rem;margin-inline:auto;width:100%}
.wz-top{padding:var(--s-5) var(--s-6) var(--s-4);border-bottom:1px solid var(--line);display:grid;gap:var(--s-3)}
@media (max-width:640px){.wz-top{padding:var(--s-5) var(--s-4) var(--s-3)}}
.wz-phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.wz-phases li{display:flex;gap:.45rem;align-items:center;min-width:0}
.wz-phases li::before{content:attr(data-n);width:1.5rem;height:1.5rem;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;flex:none}
.wz-phases li.on{color:var(--ink)}
.wz-phases li.on::before{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.wz-phases li.done{color:var(--fir)}
.wz-phases li.done::before{content:"✓";background:var(--fir);color:var(--fir-ink);border-color:var(--fir)}
@media (max-width:560px){.wz-phases{display:flex;gap:var(--s-2)}.wz-phases li:not(.on) .lbl{display:none}}
.wz-bar{height:6px;background:var(--cheque);border-radius:99px;overflow:hidden}
.wz-bar span{display:block;height:100%;width:0;background:var(--fir);border-radius:99px;transition:width .3s ease}
.wz-count{font:500 var(--t-xs)/1 var(--f-mono);color:var(--muted)}
.wz{padding:var(--s-6);display:grid;gap:var(--s-4);align-content:start}
@media (max-width:640px){.wz{padding:var(--s-5) var(--s-4)}}
.wz-q{font-size:clamp(1.35rem,2.8vw,1.8rem);font-weight:800;outline:none}
.wz-why{color:var(--muted);font-size:var(--t-sm);max-width:60ch}
.choices{display:grid;gap:var(--s-3)}
.choices.yn{grid-template-columns:repeat(2,minmax(0,1fr))}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice-box{display:flex;align-items:center;gap:var(--s-3);min-height:3.6rem;padding:var(--s-3) var(--s-4);border:2px solid var(--line);border-radius:var(--r-md);background:var(--paper);font-weight:600;transition:border-color .15s ease,background .15s ease}
.choice-box::before{content:"";width:1.3rem;height:1.3rem;border-radius:50%;border:2px solid var(--muted);flex:none;background:var(--sheet)}
.choice-box small{display:block;font-weight:400;font-size:var(--t-xs);color:var(--muted)}
.choice:hover .choice-box{border-color:var(--fir)}
.choice input:checked + .choice-box{border-color:var(--fir);background:var(--fir-soft)}
.choice input:checked + .choice-box::before{border-color:var(--fir);background:radial-gradient(circle,var(--fir) 0 42%,var(--sheet) 46%)}
.choice input:focus-visible + .choice-box{outline:3px solid var(--stamp);outline-offset:2px}
.yn .choice-box{justify-content:center;font-size:var(--t-lg);min-height:4.4rem}
.wz-nav{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;padding:var(--s-4) var(--s-6);border-top:1px solid var(--line);background:var(--paper);border-radius:0 0 var(--r-md) var(--r-md)}
@media (max-width:640px){.wz-nav{padding:var(--s-4)}}
.wz-nav .formmsg{flex:1 1 10rem;order:0}
.wz-nav #wz-next{margin-left:auto}
.wz-nav .formmsg:empty{flex-basis:0}
.wz-facts,.wz-costs{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.wz-facts div,.wz-costs div{padding:var(--s-3) var(--s-4);display:grid;gap:.1rem;border-right:1px dashed var(--line)}
.wz-facts div:last-child,.wz-costs div:last-child{border-right:0}
.wz-facts{background:var(--cheque)}
.wz-costs{background:var(--sheet)}
.wz-facts small,.wz-costs small{font:500 .68rem/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.wz-facts b,.wz-costs b{font:500 1.2rem/1.25 var(--f-mono);font-variant-numeric:tabular-nums}
.wz-facts span,.wz-costs span{font-size:var(--t-xs);color:var(--muted)}
.wz-plan{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3);counter-reset:pl}
.wz-plan li{counter-increment:pl;display:grid;grid-template-columns:2rem 1fr;gap:0 var(--s-3)}
.wz-plan li::before{content:counter(pl);grid-row:span 2;width:1.8rem;height:1.8rem;border-radius:50%;border:1.5px solid var(--fir);color:var(--fir);font:500 var(--t-sm)/1 var(--f-mono);display:grid;place-items:center}
.wz-plan span{color:var(--muted);font-size:var(--t-sm)}
.wz-list{margin:0;padding-left:1.1rem;display:grid;gap:.55rem}
.wz-list b{font-weight:600}
.fee-card{border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--cheque);padding:var(--s-4);display:grid;gap:var(--s-3)}
.fee-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);flex-wrap:wrap}
.fee-head .k{font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.fee-head b{font:500 1.5rem/1 var(--f-mono);font-variant-numeric:tabular-nums}
.fee-card p{font-size:var(--t-sm)}
.fee-card .consent{background:var(--sheet);border-radius:var(--r-sm);padding:var(--s-3)}
.wz .consent{font-size:var(--t-md)}
.legalbox{border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper)}
.legalbox summary{cursor:pointer;padding:var(--s-3) var(--s-4);font-weight:600;color:var(--fir)}
.legal-scroll{max-height:20rem;overflow:auto;padding:0 var(--s-4) var(--s-4);font-size:var(--t-sm);border-top:1px solid var(--line)}
.legal-scroll .legal{padding:0;max-width:none}
.legal-scroll .legal h2{font-size:var(--t-md);margin-top:var(--s-4)}
.legal-scroll > p{padding-top:var(--s-3)}
.paybox{display:grid;gap:var(--s-3)}
#checkout:empty{display:none}
.secure{font-size:var(--t-xs);color:var(--muted)}
.mock-pay{border:2px dashed var(--stamp);border-radius:var(--r-md);padding:var(--s-5);display:grid;gap:var(--s-3);background:var(--stamp-soft)}
.mock-label{font:500 var(--t-xs)/1.3 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--stamp)}
.mock-tabs{display:flex;gap:var(--s-2)}
.mock-tab{padding:.45rem .8rem;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--sheet);font-size:var(--t-sm)}
.mock-tab.on{border-color:var(--fir);color:var(--fir);font-weight:600}
.mock-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}
.mock-field{min-height:2.8rem;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--sheet);display:flex;align-items:center;padding:0 .75rem;color:var(--muted);font-size:var(--t-sm)}
.wz .result{margin:0}

/* ---------- Eingabe-Service: Zugang und Vollmacht ---------- */
.subform{border:1px solid var(--line);border-radius:var(--r-md);background:var(--sheet);padding:var(--s-4) var(--s-5) var(--s-5);margin:0;display:grid;gap:var(--s-3);min-width:0}
.subform legend{font-family:var(--f-display);font-weight:700;font-size:var(--t-md);padding:0 .4rem}
.guide{background:var(--cheque);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-sm)}
.guide ol{margin:.4rem 0 0;padding-left:1.2rem;display:grid;gap:.3rem}
.hint-box{background:var(--stamp-soft);color:var(--ink);border-left:3px solid var(--stamp);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);font-size:var(--t-sm)}
.hint-box.full{grid-column:1/-1}
.pw{display:flex;gap:var(--s-2)}
.pw input{flex:1;min-width:0}
.vm-preview:empty{display:none}
.vm-preview{white-space:pre-wrap;font:400 var(--t-xs)/1.55 var(--f-mono);background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-sm);padding:var(--s-3) var(--s-4);max-height:16rem;overflow:auto}
@media print{#printout pre{font-family:var(--f-body)}}
.subform .fields{align-items:start}
#bs-vm-body{display:grid;gap:var(--s-3)}
