@font-face{font-family:"Fraunces";src:url("/assets/schriften/fraunces.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/assets/schriften/instrument-sans-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/assets/schriften/instrument-sans-600.woff2") format("woff2");font-weight:600;font-display:swap}
:root{--morgen:#F5F6F2;--tau:#E3EBDD;--nadel:#0F1F19;--moos:#4F5F57;--spur:#1B5E3A;--wald:#123D27;--tinte:#2440B3;--weiss:#fff;--rot:#9B1C1C;
  --linie:rgba(15,31,25,.16);--linie-stark:rgba(15,31,25,.42);--antiqua:"Fraunces",Georgia,serif;--grotesk:"Instrument Sans","Helvetica Neue",Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--morgen);color:var(--nadel);font:400 1rem/1.5 var(--grotesk)}
a{color:var(--spur)} a:hover{color:var(--wald)}
h1,h2,h3{font-family:var(--antiqua);font-weight:400;margin:0;text-wrap:balance}
:focus-visible{outline:3px solid var(--tinte);outline-offset:2px;border-radius:2px}
.sprung{position:absolute;left:-999rem} .sprung:focus{left:1rem;top:1rem;background:var(--weiss);padding:.5rem 1rem;z-index:10}
small{display:block;color:var(--moos);font-size:.82rem;line-height:1.35}

/* Anmeldung */
.tor{max-width:30rem;margin:0 auto;padding:12vh 1.25rem 3rem;display:grid;gap:1.1rem}
.tor h1{font-size:2.4rem;line-height:1.1}
.tor form{display:grid;gap:.5rem;margin-top:.5rem}
.tor label{font-weight:600}
.tor .klein{font-size:.85rem;color:var(--moos);margin-top:1.5rem}
.fehler{color:var(--rot);font-weight:600;margin:0}
.projekte{list-style:none;padding:0;margin:0;border-top:1px solid var(--linie-stark)}
.projekte li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.8rem 0;border-bottom:1px solid var(--linie)}
.projekte span{color:var(--moos);font-size:.9rem}

input[type=text],input[type=email],input[type=tel],input[type=password],textarea{width:100%;font:inherit;color:inherit;background:var(--weiss);border:1px solid var(--linie-stark);border-radius:4px;padding:.55rem .7rem;min-height:2.75rem}
textarea{resize:vertical;line-height:1.45}
input::placeholder{color:var(--moos);opacity:1;font-size:.88rem}
button{font:600 1rem var(--grotesk);background:var(--spur);color:#fff;border:0;border-radius:4px;padding:.7rem 1.2rem;min-height:2.75rem;cursor:pointer}
button:hover{background:var(--wald)}
button.neben{background:transparent;color:var(--spur);border:1px solid var(--spur);justify-self:start;margin-top:.4rem}
button.neben:hover{background:var(--tau)}

/* Kopf */
.kopf{position:sticky;top:0;z-index:5;background:var(--morgen);border-bottom:1px solid var(--linie);display:flex;align-items:center;gap:1rem;padding:.8rem clamp(1rem,4vw,2.5rem)}
.kopf .marke img{display:block}
.kopf .projekt{color:var(--moos);font-size:.92rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kopf .rechts{display:flex;gap:1.2rem;font-size:.92rem;white-space:nowrap}

.seite{display:grid;grid-template-columns:17rem minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);max-width:78rem;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem) 6rem}
.inhaltsliste{position:sticky;top:4.2rem;align-self:start;max-height:calc(100vh - 5rem);overflow:auto;padding:2rem 0}
.inhaltsliste ol{list-style:none;margin:0;padding:0;counter-reset:a;border-top:1px solid var(--linie-stark)}
.inhaltsliste a{display:grid;grid-template-columns:1.6rem 1fr auto;gap:.3rem;align-items:baseline;padding:.55rem 0;border-bottom:1px solid var(--linie);text-decoration:none;color:var(--nadel);font-size:.93rem;line-height:1.3}
.inhaltsliste a::before{counter-increment:a;content:counter(a);font-family:var(--antiqua);color:var(--spur)}
.inhaltsliste a:hover span{text-decoration:underline}
.inhaltsliste em{font-style:normal;font-size:.78rem;color:var(--moos);font-variant-numeric:tabular-nums;white-space:nowrap}

.kopf .rechts a[aria-current]{color:var(--nadel);font-weight:600;text-decoration:none}
.weiter{margin:1.2rem 0 0;font-size:.93rem}
.anfang{padding:2.5rem 0 1rem;display:grid;gap:.8rem;max-width:44rem}
.anfang h1{font-size:clamp(2rem,4.5vw,2.9rem);line-height:1.08;letter-spacing:-.012em}
.anfang p{margin:0}
.schutz{margin-top:1.2rem;background:var(--tau);border-radius:6px;padding:1.4rem 1.5rem;max-width:46rem}
.schutz h2{font-size:1.35rem;margin-bottom:.8rem}
.schutz ul{margin:0;padding:0;list-style:none;display:grid;gap:.65rem}
.schutz li{font-size:.97rem;line-height:1.5}
section{padding-top:3rem}
section>h2{font-size:clamp(1.55rem,3vw,2.05rem);line-height:1.12;display:flex;gap:.9rem;align-items:baseline;padding-bottom:.9rem;border-bottom:2px solid var(--spur)}
section>h2 .nr{color:var(--spur);font-size:1.15em;min-width:1.6rem}
.hinweis{font-family:var(--antiqua);font-size:1.08rem;line-height:1.45;color:var(--moos);margin:1rem 0 0;max-width:46rem}
.block{margin-top:2rem;display:grid;gap:.9rem}
.block h3{font:600 .8rem var(--grotesk);letter-spacing:.07em;text-transform:uppercase;color:var(--moos);padding-bottom:.45rem;border-bottom:1px solid var(--linie-stark)}
.hilfe{margin:0;color:var(--moos);font-size:.93rem}
.raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.5rem;align-items:start}
.feld{display:grid;gap:.25rem;min-width:0;margin:0;padding:0;border:0}
.feld>label,.feld>legend{font-weight:600;font-size:.95rem;padding:0}
.feld.lang{grid-column:1/-1}
.feld.wahl{grid-column:1/-1}
.feld.wahl>div{display:flex;flex-wrap:wrap;gap:.3rem 1.4rem;margin-top:.15rem}
.feld.wahl label{display:inline-flex;align-items:center;gap:.5rem;min-height:2.4rem;cursor:pointer}
input[type=radio],input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--spur);margin:0;flex:none}
.feld.ok input:not([type=radio]):not([type=checkbox]),.feld.ok textarea{border-color:var(--spur)}
.feld.fehl input,.feld.fehl textarea{border-color:var(--rot)}

/* Zugänge: Titel links, Felder rechts */
.block.zugang{grid-template-columns:15rem minmax(0,1fr);grid-template-rows:auto 1fr;gap:.4rem 2rem;margin-top:0;padding:1.4rem 0;border-bottom:1px solid var(--linie)}
.block.zugang h3{font:400 1.2rem/1.25 var(--antiqua);letter-spacing:0;text-transform:none;color:var(--nadel);border:0;padding:0}
.block.zugang .hilfe{grid-column:1;font-size:.86rem;align-self:start}
.block.zugang .raster{grid-column:2;grid-row:1/span 2}

.zeilen{display:grid;gap:0}
.zeile{border:0;border-bottom:1px solid var(--linie);margin:0;padding:.9rem 0 1.1rem;min-width:0}
.zeile legend{font-weight:600;padding:0;float:left;width:100%;margin-bottom:.5rem}
.zeile>div{clear:both;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:.6rem 1rem}
.zeile .feld>label{font-weight:400;font-size:.82rem;color:var(--moos)}

.mehrfach{margin-top:2.2rem;padding:0 0 1.5rem 1.25rem;border-left:2px solid var(--spur)}
.mehrfach h3.gross{font:400 1.5rem var(--antiqua);margin-bottom:-.6rem}

/* Upload */
.wunsch{margin:0;padding:0;list-style:none;display:grid;gap:.2rem;color:var(--moos);font-size:.95rem}
.wunsch li{padding-left:1.3rem;position:relative}
.wunsch li::before{content:"→";position:absolute;left:0;color:var(--spur)}
.zuerst{font:600 .72rem var(--grotesk);letter-spacing:.03em;text-transform:none;color:var(--spur);margin-left:.6rem;white-space:nowrap}
.zone{border:2px dashed var(--linie-stark);border-radius:6px;background:var(--weiss);padding:1.4rem 1.2rem;text-align:center}
.zone p{margin:0}
.zone.ueber{border-color:var(--spur);background:var(--tau)}
.waehlen{color:var(--spur);text-decoration:underline;cursor:pointer;display:inline-block;min-height:1.6rem}
.waehlen input{position:absolute;opacity:0;width:1px;height:1px}
.waehlen:focus-within{outline:3px solid var(--tinte);outline-offset:2px}
.dateien{list-style:none;margin:0;padding:0}
.dateien li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.2rem 1rem;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--linie);font-size:.93rem}
.dateien .dn{overflow-wrap:anywhere}
.dateien .dg{color:var(--moos);font-size:.85rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.dateien progress{grid-column:1/-1;width:100%;height:.45rem;accent-color:var(--spur)}
.dateien li.fehl .dg{color:var(--rot);white-space:normal}
.weg{background:none;color:var(--moos);font:400 .85rem var(--grotesk);padding:.3rem .2rem;min-height:2rem;text-decoration:underline}
.weg:hover{background:none;color:var(--rot)}
.nichts{display:inline-flex;gap:.5rem;align-items:center;color:var(--moos);font-size:.92rem;min-height:2.4rem;cursor:pointer}

.schluss{margin-top:4rem;padding-top:1.2rem;border-top:1px solid var(--linie-stark);color:var(--moos)}
.status{position:fixed;right:1rem;bottom:1rem;background:var(--wald);color:#fff;font-size:.9rem;padding:.5rem .9rem;border-radius:4px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:calc(100vw - 2rem)}
.status.an{opacity:1} .status.rot{background:var(--rot)}

@media (max-width:60rem){
  .seite{grid-template-columns:1fr;gap:0}
  .inhaltsliste{position:static;max-height:none;padding:1.5rem 0 0}
  .block.zugang{grid-template-columns:1fr}
  .block.zugang .raster{grid-column:1;grid-row:auto;margin-top:.5rem}
}
@media (max-width:40rem){
  .raster{grid-template-columns:1fr}
  .zeile>div{grid-template-columns:1fr}
  .kopf{flex-wrap:wrap;gap:.3rem 1rem}
  .kopf .projekt{order:3;flex-basis:100%}
  .kopf .rechts{margin-left:auto}
  .dateien li{grid-template-columns:minmax(0,1fr) auto}
  .dateien .dg{grid-column:1}
}
@media print{
  .kopf,.inhaltsliste,.zone,.status,button,.nichts{display:none!important}
  .seite{display:block;padding:0} section{break-inside:auto;padding-top:1.5rem} body{background:#fff;font-size:10pt}
  input,textarea{border:0!important;border-bottom:1px solid #999!important;border-radius:0!important;min-height:0!important;padding:.1rem 0!important}
}
