  :root{
    --red:#c8102e;
    --red-dark:#8f0c21;
    --red-tint:#fbe9ec;
    --ink:#000000;
    --muted:#6b6763;
    --paper:#ffffff;
    --bg:#f4f1ee;
    --border:#e2ddd6;
    --border-strong:#cfc8bf;
    --radius:10px;
    --ok:#1c7a41;
    --ok-tint:#e7f5ec;
    --err:#a32d2d;
    --err-tint:#fcebeb;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    font-family:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
    background:var(--bg);
    color:var(--ink);
    line-height:1.5;
    padding-bottom:4rem;
  }
  .topbar{
    background:var(--paper);
    border-bottom:3px solid var(--red);
  }
  .topbar-inner{
    max-width:760px;
    margin:0 auto;
    padding:1.75rem 1.5rem 1.5rem;
  }
  .topbar-toprow{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin-bottom:1.25rem;
  }
  .topbar-logos{
    display:flex;
    align-items:center;
    gap:1.5rem;
    flex-wrap:wrap;
  }
  .lang-switch{
    display:flex;
    gap:.35rem;
    flex:0 0 auto;
  }
  .lang-btn{
    background:var(--paper);
    border:1px solid var(--border-strong);
    color:var(--muted);
    font-size:12px;
    font-weight:700;
    letter-spacing:.03em;
    padding:.35rem .65rem;
    border-radius:6px;
    line-height:1;
  }
  .lang-btn:hover{
    border-color:var(--red);
    color:var(--red);
  }
  .lang-btn.active{
    background:var(--red);
    border-color:var(--red);
    color:#fff;
  }
  .topbar-logos a{
    display:block;
    line-height:0;
    opacity:1;
    transition:opacity .15s ease;
  }
  .topbar-logos a:hover,
  .topbar-logos a:focus-visible{
    opacity:.75;
  }
  .topbar-logo{
    height:56px;
    width:auto;
    display:block;
  }
  @media (max-width:480px){
    .topbar-logo{height:44px;}
  }
  .eyebrow{
    font-size:12px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0 0 .35rem;
  }
  h1{
    font-size:26px;
    font-weight:700;
    color:var(--red);
    margin:0 0 .35rem;
  }
  .subtitle{
    font-size:14px;
    color:var(--muted);
    margin:0;
  }

  /* Page navigation (switch between info page and form) */
  .pagenav{
    display:flex;
    gap:1.75rem;
    margin-top:1.4rem;
    padding-top:1rem;
    border-top:1px solid var(--border);
  }
  .pagenav a{
    font-size:13px;
    font-weight:600;
    letter-spacing:.02em;
    color:var(--muted);
    text-decoration:none;
    padding-bottom:.6rem;
    border-bottom:2px solid transparent;
  }
  .pagenav a:hover{color:var(--ink);}
  .pagenav a[aria-current="page"]{
    color:var(--red);
    border-bottom-color:var(--red);
  }

  main{
    max-width:760px;
    margin:2rem auto 0;
    padding:0 1.5rem;
  }
  fieldset{
    background:var(--paper);
    border:1px solid var(--border);
    border-left:4px solid var(--red);
    border-radius:var(--radius);
    padding:1.4rem 1.5rem 1.6rem;
    margin:0 0 1.5rem;
  }
  legend{
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--red);
    padding:0 .5rem;
  }
  .grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem 1.25rem;
  }
  .grid .full{grid-column:1 / -1;}
  @media (max-width:600px){
    .grid{grid-template-columns:1fr;}
  }
  label{
    display:block;
    font-size:13px;
    font-weight:500;
    color:var(--ink);
    margin-bottom:.35rem;
  }
  .field{margin-bottom:0;}
  .hint{
    font-size:12px;
    color:var(--muted);
    margin-top:.3rem;
  }
  input[type=text],
  input[type=email],
  input[type=date],
  input[type=number],
  select,
  textarea{
    width:100%;
    font-family:inherit;
    font-size:14px;
    color:var(--ink);
    background:var(--paper);
    border:1px solid var(--border-strong);
    border-radius:8px;
    padding:.6rem .7rem;
  }
  textarea{resize:vertical;min-height:5.5rem;}
  input:focus,select:focus,textarea:focus{
    outline:none;
    border-color:var(--red);
    box-shadow:0 0 0 3px var(--red-tint);
  }
  .checkrow{
    display:flex;
    align-items:flex-start;
    gap:.6rem;
    font-size:14px;
  }
  .checkrow input{margin-top:.2rem;}
  .checkrow label{margin:0;font-weight:400;}
  .amount-wrap{position:relative;}
  .amount-wrap span{
    position:absolute;right:.8rem;top:50%;transform:translateY(-50%);
    color:var(--muted);font-size:14px;
  }
  .antragsnr-row{display:flex;align-items:center;gap:.5rem;}
  .antragsnr-row .prefix{
    font-family:monospace;font-size:14px;color:var(--muted);
    white-space:nowrap;
  }
  .antragsnr-row input{width:5rem;text-align:center;letter-spacing:.1em;}
  canvas#sigpad{
    width:100%;
    height:160px;
    border:1.5px dashed var(--border-strong);
    border-radius:8px;
    background:#fff;
    touch-action:none;
    display:block;
  }
  .sig-actions{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:.6rem;
  }
  button{
    font-family:inherit;
    cursor:pointer;
  }
  .btn-ghost{
    background:none;
    border:1px solid var(--border-strong);
    color:var(--ink);
    font-size:13px;
    padding:.45rem .9rem;
    border-radius:8px;
  }
  .btn-ghost:hover{border-color:var(--red);color:var(--red);}
  .dropzone{
    border:1.5px dashed var(--border-strong);
    border-radius:8px;
    padding:1.1rem;
    text-align:center;
    font-size:13px;
    color:var(--muted);
    position:relative;
    background:#fdfcfb;
  }
  .dropzone input[type=file]{
    position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;
  }
  .dropzone strong{color:var(--red);}
  #fileList{
    list-style:none;
    padding:0;
    margin:.8rem 0 0;
    display:flex;
    flex-direction:column;
    gap:.4rem;
  }
  #fileList li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:13px;
    background:var(--bg);
    border:1px solid var(--border);
    border-radius:6px;
    padding:.4rem .6rem;
  }
  #fileList button{
    background:none;border:none;color:var(--err);font-size:16px;line-height:1;padding:0 .2rem;
  }
  .actions{
    display:flex;
    gap:.75rem;
    flex-wrap:wrap;
    align-items:center;
  }
  .btn-primary{
    background:var(--red);
    color:#fff;
    border:none;
    font-size:15px;
    font-weight:600;
    padding:.85rem 1.6rem;
    border-radius:8px;
  }
  .btn-primary:hover{background:var(--red-dark);}
  .btn-primary:disabled{background:var(--border-strong);cursor:not-allowed;}
  .btn-secondary{
    background:none;
    border:1.5px solid var(--red);
    color:var(--red);
    font-size:15px;
    font-weight:600;
    padding:.8rem 1.4rem;
    border-radius:8px;
  }
  .btn-secondary:hover{background:var(--red-tint);}
  #status{
    margin-top:1rem;
    padding:.8rem 1rem;
    border-radius:8px;
    font-size:14px;
    display:none;
  }
  #status.ok{display:block;background:var(--ok-tint);color:var(--ok);}
  #status.err{display:block;background:var(--err-tint);color:var(--err);}
  #status.pending{display:block;background:var(--bg);color:var(--muted);}
  .req{color:var(--red);}
  footer{
    max-width:760px;
    margin:2rem auto 0;
    padding:0 1.5rem;
    font-size:12px;
    color:var(--muted);
    text-align:center;
  }
  .impressum{
    max-width:760px;
    margin:1.5rem auto 0;
    padding:0 1.5rem;
  }
  .impressum-inner{
    background:var(--paper);
    border:1px solid var(--border);
    border-left:4px solid var(--red);
    border-radius:var(--radius);
    padding:1.4rem 1.5rem 1.6rem;
    display:flex;
    gap:1.5rem;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .impressum-logos{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1rem;
    flex:0 0 auto;
  }
  .impressum-logos a{
    display:block;
    line-height:0;
    opacity:1;
    transition:opacity .15s ease;
  }
  .impressum-logos a:hover,
  .impressum-logos a:focus-visible{
    opacity:.75;
  }
  .impressum-logo{
    max-width:120px;
    height:auto;
    display:block;
  }
  .impressum-logo--asta{
    max-width:100px;
  }
  .impressum-content{
    flex:1 1 260px;
    min-width:0;
  }
  .impressum-content h2{
    font-size:13px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--red);
    margin:0 0 .9rem;
  }
  .impressum-list{
    margin:0;
    display:flex;
    flex-direction:column;
    gap:.6rem;
  }
  .impressum-row{
    display:grid;
    grid-template-columns:130px 1fr;
    gap:.5rem;
    font-size:13px;
  }
  .impressum-row dt{
    font-weight:600;
    color:var(--muted);
  }
  .impressum-row dd{
    margin:0;
    color:var(--ink);
  }
  .impressum-row a{
    color:var(--red);
    text-decoration:none;
  }
  .impressum-row a:hover{
    text-decoration:underline;
  }
  @media (max-width:600px){
    .impressum-inner{flex-direction:column;align-items:center;text-align:left;}
    .impressum-logos{flex-direction:row;}
    .impressum-row{grid-template-columns:1fr;gap:.15rem;}
  }

  /* ---------- Info / Ablauf landing page ---------- */
  .lede{
    font-size:16px;
    color:var(--ink);
    max-width:58ch;
    margin:0 0 1.75rem;
  }
  .section-head{
    margin:0 0 1.1rem;
  }
  .section-head h2{
    font-size:19px;
    font-weight:700;
    color:var(--ink);
    margin:0 0 .3rem;
  }
  .section-head p{
    font-size:13.5px;
    color:var(--muted);
    margin:0;
    max-width:60ch;
  }

  .committees{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1rem;
  }
  @media (max-width:700px){
    .committees{grid-template-columns:1fr;}
  }
  .committee-card{
    border:1px solid var(--border);
    border-top:4px solid var(--red);
    border-radius:var(--radius);
    background:var(--paper);
    padding:1.1rem 1.1rem 1.25rem;
  }
  .committee-card .eyebrow-sm{
    font-size:11px;
    font-weight:700;
    letter-spacing:.07em;
    text-transform:uppercase;
    color:var(--muted);
    margin:0 0 .5rem;
  }
  .committee-card h3{
    font-size:17px;
    margin:0 0 .35rem;
    color:var(--ink);
  }
  .committee-card .cap{
    font-size:22px;
    font-weight:700;
    color:var(--red);
    margin:0 0 .4rem;
  }
  .committee-card p.scope{
    font-size:13px;
    color:var(--muted);
    margin:0;
  }

  .steps{
    list-style:none;
    margin:0;
    padding:0;
    counter-reset:step;
  }
  .steps li{
    counter-increment:step;
    display:grid;
    grid-template-columns:2.4rem 1fr;
    gap:0 1rem;
    padding:0 0 1.4rem;
    position:relative;
  }
  .steps li:last-child{padding-bottom:0;}
  .steps li::before{
    content:counter(step);
    grid-row:1 / span 2;
    width:2.4rem;
    height:2.4rem;
    border-radius:50%;
    background:var(--red-tint);
    color:var(--red);
    font-weight:700;
    font-size:15px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .steps li:not(:last-child)::after{
    content:"";
    position:absolute;
    left:1.2rem;
    top:2.4rem;
    bottom:0;
    width:1px;
    background:var(--border-strong);
  }
  .steps h3{
    font-size:15px;
    margin:.2rem 0 .3rem;
    color:var(--ink);
  }
  .steps p{
    font-size:13.5px;
    color:var(--muted);
    margin:0;
    max-width:56ch;
  }

  .doc-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1rem;
  }
  @media (max-width:600px){
    .doc-grid{grid-template-columns:1fr;}
  }
  .doc-box{
    border:1px solid var(--border);
    border-radius:8px;
    padding:1rem 1.1rem;
    background:var(--bg);
  }
  .doc-box h4{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--red);
    margin:0 0 .6rem;
  }
  .doc-box ul{
    margin:0;
    padding-left:1.1rem;
    font-size:13.5px;
    color:var(--ink);
    display:flex;
    flex-direction:column;
    gap:.4rem;
  }
  .note-box{
    margin-top:1rem;
    border-left:3px solid var(--red);
    background:var(--red-tint);
    padding:.8rem 1rem;
    font-size:13px;
    color:var(--red-dark);
    border-radius:0 8px 8px 0;
  }

  .cta-band{
    background:var(--red);
    border-radius:var(--radius);
    padding:1.6rem 1.75rem;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin:0 0 1.5rem;
  }
  .cta-band p{
    color:#fff;
    margin:0;
    font-size:15px;
    font-weight:600;
  }
  .cta-band .btn-onred{
    background:#fff;
    color:var(--red);
    font-weight:700;
    font-size:14.5px;
    padding:.75rem 1.4rem;
    border-radius:8px;
    text-decoration:none;
    white-space:nowrap;
  }
  .cta-band .btn-onred:hover{
    background:var(--red-tint);
  }
