:root {
  --orange: #FA9A02; --orange-text: #8F4C00; --orange-hell: #FFF3DF;
  --grau: #4F4C4D; --grau-hell: #BCBABB; --linie: #E4E2E3;
  --grund: #F7F6F5; --flaeche: #FFFFFF; --text: #1F1D1E; --leise: #6B6869;
  --gruen: #1E7A3C; --gruen-hell: #E5F4EA; --rot: #B3261E; --rot-hell: #FCE8E6;
}
@media (prefers-color-scheme: dark) {
  :root:not(.beamer-hell) {
    --grund: #1B1A1A; --flaeche: #262424; --text: #F2F0F0; --leise: #ABA7A8; --linie: #3A3738;
    --orange-text: #FFB547; --orange-hell: #3A2A10; --gruen-hell: #173222; --rot-hell: #3B1A18; --gruen: #6FD08E; --rot: #FF8A80;
  }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--grund); color: var(--text); font: 17px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--orange-text); }
h1 { font-size: 1.6rem; line-height: 1.25; margin: .4rem 0 .6rem; }
h2 { font-size: 1.2rem; margin: 0 0 .6rem; }
h3 { font-size: 1.05rem; margin: 0; }
.kopf { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: .7rem 1rem; background: var(--grau); color: #fff; }
.kopf a { color: #fff; text-decoration: none; }
.marke { display: flex; align-items: center; gap: .5rem; font-weight: 700; }
.zeichen { display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: .4rem; background: var(--orange); font-weight: 800; }
.menue { display: flex; gap: 1rem; align-items: center; font-size: .95rem; }
.menue form { margin: 0; }
.menue .link { color: #fff; }
.inhalt { max-width: 46rem; margin: 0 auto; padding: 1rem 1rem 4rem; }
.karte { background: var(--flaeche); border: 1px solid var(--linie); border-radius: .9rem; padding: 1rem 1.1rem; margin: 0 0 1rem; }
.karte.schmal { max-width: 26rem; margin: 2rem auto 1rem; }
.karte.klein { padding: .8rem 1rem; }
.mittig { text-align: center; }
.leise { color: var(--leise); font-size: .92rem; }
.abschnitt { margin-top: 1.6rem; }
.knopf { display: inline-block; border: 0; border-radius: 999px; background: var(--orange); color: #1F1D1E; font: inherit; font-weight: 650; padding: .55rem 1.1rem; cursor: pointer; text-decoration: none; }
.knopf:hover { filter: brightness(.95); }
.knopf.zweit { background: transparent; color: var(--text); box-shadow: inset 0 0 0 1.5px var(--grau-hell); }
.knopf.gross { width: 100%; padding: .85rem; font-size: 1.1rem; margin-top: .6rem; }
.knopf.gefahr { background: var(--rot); color: #fff; }
.knopf:disabled { opacity: .5; cursor: default; }
.link { background: none; border: 0; padding: 0; color: var(--orange-text); font: inherit; font-size: .92rem; text-decoration: underline; cursor: pointer; }
.formular { display: grid; gap: .8rem; }
.formular label { display: grid; gap: .3rem; font-weight: 600; font-size: .95rem; }
input, select, textarea { font: inherit; color: var(--text); background: var(--flaeche); border: 1.5px solid var(--grau-hell); border-radius: .55rem; padding: .55rem .7rem; width: 100%; min-width: 0; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--orange); border-color: var(--orange); }
fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: .5rem; }
legend { font-weight: 600; margin-bottom: .3rem; }
label.wahl { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; }
label.wahl input { width: auto; margin-top: .3rem; flex: none; }
.beitritt { display: flex; gap: .5rem; }
.beitritt input { font-size: 1.6rem; letter-spacing: .25em; text-align: center; }
.fehler, .erfolg, .hinweis, .warnung { border-radius: .6rem; padding: .6rem .8rem; }
.fehler { background: var(--rot-hell); color: var(--rot); }
.erfolg { background: var(--gruen-hell); color: var(--gruen); font-weight: 600; }
.hinweis, .warnung { background: var(--orange-hell); color: var(--orange-text); }
.liste { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .5rem; }
.liste a { display: grid; gap: .1rem; background: var(--flaeche); border: 1px solid var(--linie); border-radius: .8rem; padding: .7rem 1rem; text-decoration: none; color: var(--text); }
.zugang { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.zugang p { margin: .2rem 0; overflow-wrap: anywhere; }
.code { font-size: 1.4em; letter-spacing: .12em; color: var(--orange-text); }
.werkzeuge { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.werkzeuge form { margin: 0; }
.qr svg { display: block; width: 100%; height: auto; background: #fff; border-radius: .4rem; }
.qr.klein { width: 7rem; }
.frage-kopf { display: flex; gap: .8rem; align-items: flex-start; }
.frage-titel { flex: 1; min-width: 0; }
.frage-titel p { margin: .15rem 0 0; }
.nummer { flex: none; display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--grund); font-weight: 700; }
.status { flex: none; font-size: .8rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; background: var(--grund); }
.zustand-offen { border-color: var(--orange); box-shadow: 0 0 0 1px var(--orange); }
.zustand-offen .status { background: var(--orange); color: #1F1D1E; }
.zustand-geschlossen .status { background: var(--grau); color: #fff; }
.zaehler { margin: .7rem 0 .4rem; }
.auf-beamer { color: var(--orange-text); font-weight: 600; }
.aktionen { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .8rem; }
.aktionen form { margin: 0; }
.balken { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: .55rem; }
.balken li { display: grid; grid-template-columns: 1fr auto; gap: .15rem .6rem; }
.b-text { overflow-wrap: anywhere; }
.b-zahl { font-variant-numeric: tabular-nums; font-weight: 600; }
.b-spur { grid-column: 1 / -1; height: .7rem; background: var(--grund); border-radius: 999px; overflow: hidden; }
.b-fuell { display: block; height: 100%; width: 0; background: var(--grau-hell); border-radius: 999px; transition: width .4s ease; }
.balken li.vorne .b-fuell { background: var(--orange); }
.texte { list-style: none; padding: 0; margin: .5rem 0; display: grid; gap: .5rem; }
.texte li { background: var(--grund); border-radius: .6rem; padding: .5rem .7rem; }
.texte li p { margin: 0 0 .2rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.moderation li.frei { background: var(--orange-hell); }
.moderation form { margin: 0; }
.tabelle { width: 100%; border-collapse: collapse; margin: .6rem 0; font-size: .95rem; }
.tabelle th, .tabelle td { text-align: left; padding: .45rem .5rem; border-bottom: 1px solid var(--linie); vertical-align: top; overflow-wrap: anywhere; }
.tabelle form { margin: .3rem 0 0; }
.gesperrt { opacity: .55; }
.link-feld { font-size: .8rem; margin-top: .3rem; }
.gefahr form { margin: .6rem 0; display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
details summary { cursor: pointer; color: var(--orange-text); }
/* Teilnahme */
.teilnahme .inhalt { max-width: 34rem; }
.v-titel { font-size: 1.3rem; }
.optionen { display: grid; gap: .5rem; margin-top: .6rem; }
.option { display: flex; gap: .7rem; align-items: center; padding: .8rem .9rem; border: 1.5px solid var(--grau-hell); border-radius: .7rem; cursor: pointer; font-size: 1.05rem; }
.option input { width: 1.3rem; height: 1.3rem; flex: none; accent-color: var(--orange); }
.option:has(input:checked) { border-color: var(--orange); background: var(--orange-hell); }
.stimmzettel textarea { margin-top: .6rem; }
.warten { text-align: center; padding: 2rem 1rem; }
.neu-hinweis { position: fixed; left: 0; right: 0; bottom: 1rem; text-align: center; }
/* Beamer */
body.beamer { background: #F7F6F5; color: #1F1D1E; font-size: clamp(18px, 2vw, 34px); }
.beamer .inhalt { max-width: none; padding: 2.5vw 4vw; }
.b-kopf { display: flex; justify-content: space-between; align-items: flex-start; gap: 2vw; }
.b-titel { color: #6B6869; margin: 0; font-weight: 600; }
.b-beitritt { display: flex; gap: 1.2vw; align-items: center; background: #fff; border-radius: 1rem; padding: .8vw 1.2vw; }
.b-beitritt .qr { width: clamp(120px, 12vw, 260px); }
.b-beitritt p { margin: 0; line-height: 1.35; }
.b-beitritt .code { color: #8F4C00; }
.b-frage h1 { font-size: 2.2em; margin: 1.5vw 0 2vw; }
.beamer .balken { gap: 1.2vw; }
.beamer .b-spur { height: 1.4vw; min-height: 14px; background: #E4E2E3; }
.beamer .b-fuell { background: #BCBABB; }
.beamer .balken li.vorne .b-fuell { background: #FA9A02; }
.b-zaehler { color: #6B6869; margin-top: 2vw; }
.b-wand { list-style: none; padding: 0; margin: 0; columns: 3 18rem; column-gap: 1.2vw; }
.b-wand li { break-inside: avoid; background: #fff; border-left: .4rem solid #FA9A02; border-radius: .6rem; padding: .8vw 1vw; margin: 0 0 1.2vw; overflow-wrap: anywhere; white-space: pre-wrap; }
.b-vollbild { position: fixed; right: 1rem; bottom: 1rem; border: 0; background: transparent; font-size: 1.5rem; color: #BCBABB; cursor: pointer; }
/* Druck */
.kartenbogen { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 1rem; }
.zugangskarte { background: #fff; color: #1F1D1E; border: 1px dashed #BCBABB; padding: 1rem; text-align: center; }
.zugangskarte .qr { width: 9rem; margin: .4rem auto; }
.zk-titel { font-size: .85rem; color: #6B6869; margin: 0; }
.zk-name { font-weight: 700; margin: .3rem 0 0; }
.zk-hilfe { font-size: .75rem; color: #6B6869; margin: .2rem 0 0; }
.p-frage { break-inside: avoid; border-top: 1px solid var(--linie); padding-top: .8rem; margin-top: 1rem; }
@media print {
  body { background: #fff; color: #000; font-size: 11pt; }
  .kopf, .nicht-drucken, .b-vollbild { display: none !important; }
  .inhalt { max-width: none; padding: 0; }
  .kartenbogen { grid-template-columns: 1fr 1fr; gap: 0; }
  .zugangskarte { height: 66mm; break-inside: avoid; }
  .zugangskarte .qr { width: 36mm; }
  .b-fuell { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
