/* LNL-Erhebung – Fragebogen (Teilnehmer). Registerleiste wie die Blätter im Excel-Fragebogen. */
.fb {
  --tinte: #0D2B55; --tinte2: #163A6E; --blau: #02377B; --blau-h: #E8EFF8; --papier: #F4F6FA;
  --gruen: #2E8B62; --gruen-h: #E3F3EA; --amber: #C7731C; --amber-h: #FDF1E3; --rot: #B4433E; --rot-h: #FBE9E8;
  --linie: #DCE3EE; --text: #1C2738; --grau: #627086;
  display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 100vh; background: var(--papier); color: var(--text);
}

/* ------------------------------------------------------------ Registerleiste */
.fb-leiste { background: var(--tinte); color: #DCE6F5; position: sticky; top: 0; height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column; padding-bottom: 14px; scrollbar-width: thin; scrollbar-color: #2C4E80 transparent; }
.fb-kopf { padding: 20px 20px 14px; }
.fb-logo { width: 132px; background: #fff; border-radius: 8px; padding: 6px 9px; display: block; }
.fb-org { font-weight: 700; color: #fff; font-size: 1.05rem; margin-top: 14px; line-height: 1.25; }
.fb-erh { font-size: .8rem; color: #9FB3D1; margin-top: 2px; }
.fb-admin { margin-top: 12px; width: 100%; border: 1px solid #3A5D92; background: transparent; color: #fff; border-radius: 8px;
  padding: 7px 10px; cursor: pointer; font: inherit; font-size: .85rem; text-align: left; }
.fb-admin:hover { background: var(--tinte2); }
.fb-gesamt { display: flex; align-items: center; gap: 14px; margin: 0 14px 10px; padding: 12px; border-radius: 12px; background: var(--tinte2); }
.fb-gesamt b { display: block; color: #fff; }
.fb-gesamt span { font-size: .8rem; color: #A9BCD8; display: block; }
.fb-gesamt .fb-abg { color: #8FE0B6; font-weight: 600; margin-top: 2px; }
.fb-ring { --p: 0; flex: 0 0 58px; height: 58px; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(#7FD3A8 calc(var(--p) * 1%), #2B4A78 0); position: relative; }
.fb-ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--tinte2); }
.fb-ring span { position: relative; color: #fff; font-weight: 700; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.fb-ring small { font-size: .65em; font-weight: 600; opacity: .8; }

.fb-gruppe { padding: 6px 10px; border-top: 1px solid #1E3E6E; }
.fb-reg { position: relative; display: flex; align-items: center; gap: 10px; width: 100%; padding: 7px 10px; margin: 1px 0;
  border: 0; border-radius: 8px; background: transparent; color: #DCE6F5; font: inherit; font-size: .88rem; text-align: left;
  cursor: pointer; line-height: 1.25; overflow: hidden; }
.fb-reg:hover { background: #17396A; }
.fb-reg:focus-visible { outline: 2px solid #8DB7F0; outline-offset: -2px; }
.fb-reg.aktiv { background: #fff; color: var(--tinte); font-weight: 600; box-shadow: 0 2px 10px rgba(0,0,0,.25); }
.fb-rt { flex: 1 1 auto; min-width: 0; }
.fb-ic { flex: 0 0 26px; text-align: center; opacity: .85; }
.fb-kn { flex: 0 0 26px; height: 22px; border-radius: 6px; background: #1F4173; color: #fff; font-weight: 700; font-size: .78rem;
  display: inline-flex; align-items: center; justify-content: center; font-variant-numeric: tabular-nums; }
.fb-reg.aktiv .fb-kn { background: var(--blau); }
.fb-reg.st-fertig .fb-kn { background: var(--gruen); }
.fb-st { flex: 0 0 auto; font-size: .85rem; width: 18px; text-align: center; }
.fb-st.fertig { color: #7FD3A8; } .fb-st.arbeit { color: #F0B266; } .fb-st.offen { color: #6F86AA; }
.fb-reg.aktiv .fb-st.fertig { color: var(--gruen); } .fb-reg.aktiv .fb-st.arbeit { color: var(--amber); } .fb-reg.aktiv .fb-st.offen { color: #9AA6B8; }
.fb-mini { position: absolute; left: 10px; bottom: 2px; height: 2px; border-radius: 2px; background: #F0B266; max-width: calc(100% - 20px); transition: width .3s; }
.fb-reg.st-fertig .fb-mini { background: #7FD3A8; }
.fb-reg.st-offen .fb-mini { display: none; }
.fb-zahl { background: var(--amber); color: #fff; border-radius: 999px; font-size: .72rem; font-weight: 700; padding: 1px 7px; }
.fb-fuss { margin-top: auto; padding: 14px 20px 0; font-size: .78rem; color: #8DA3C4; }
.fb-fuss a { color: #C9D8EE; }

/* ------------------------------------------------------------ Seite */
.fb-seite { padding: 26px 40px 70px; max-width: 1240px; width: 100%; }
.fb-seite h1 { margin: 0; color: var(--tinte); font-size: 1.65rem; line-height: 1.2; letter-spacing: -.01em; }
.fb-seitenkopf { margin-bottom: 18px; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 20px; }
.fb-seitenkopf h1 { flex: 1 1 auto; }
.fb-seitenkopf p { flex: 0 0 100%; margin: 4px 0 0; color: var(--grau); max-width: none; padding-right: 18%; }

/* Kapitelkopf: grosse Nummer, Titel, Stand, Blättern */
.fb-kapkopf { position: sticky; top: 0; z-index: 20; background: var(--papier); margin: -26px -40px 18px; padding: 20px 40px 12px;
  display: grid; grid-template-columns: auto 1fr auto; gap: 4px 18px; align-items: center; border-bottom: 1px solid var(--linie); }
.fb-kapnr { grid-row: span 2; font-size: 3.3rem; font-weight: 800; color: var(--blau); line-height: .9; letter-spacing: -.04em;
  font-variant-numeric: tabular-nums; align-self: start; }
.fb-kaptitel p { margin: 4px 0 0; color: var(--grau); font-size: .92rem; max-width: 80ch; }
.fb-kapkopf .fb-pillen { align-self: start; }
.fb-kapnav { grid-column: 2 / -1; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.fb-kapnav .knopf { padding: 5px 12px; font-size: .88rem; }
.fb-stand { margin-left: auto; font-size: .8rem; color: var(--grau); }
.fb-pillen { display: flex; gap: 8px; }
.fb-pille { position: relative; display: inline-flex; flex-direction: column; min-width: 92px; padding: 6px 12px 8px; border-radius: 10px;
  background: #fff; border: 1px solid var(--linie); overflow: hidden; }
.fb-pille span { font-size: .72rem; color: var(--grau); }
.fb-pille b { font-size: 1.15rem; color: var(--tinte); font-variant-numeric: tabular-nums; }
.fb-pille i { position: absolute; left: 0; bottom: 0; height: 3px; width: var(--p); background: var(--gruen); transition: width .3s; }

/* Spaltenkopf wie im Excel */
.fb-spaltenkopf, .fb-q { display: grid; grid-template-columns: 96px minmax(0, 1fr) minmax(220px, 300px) 34px; gap: 14px; }
.fb-spaltenkopf { padding: 0 18px 6px; font-size: .75rem; color: var(--grau); font-weight: 600; }
.fb-spaltenkopf span:last-child { text-align: center; }

.fb-abschnitt { background: #fff; border: 1px solid var(--linie); border-radius: 12px; margin-bottom: 18px; overflow: hidden; }
.fb-abschnitt > h2 { margin: 0; padding: 12px 18px; font-size: 1.02rem; color: var(--tinte); background: var(--blau-h); border-bottom: 1px solid var(--linie); }
.fb-info { margin: 0; padding: 9px 18px 9px 40px; background: #F8FAFD; border-bottom: 1px solid #EEF2F7; color: #475569; font-size: .88rem; position: relative; }
.fb-info::before { content: "i"; position: absolute; left: 16px; top: 9px; width: 16px; height: 16px; border-radius: 50%; background: var(--blau);
  color: #fff; font: 700 11px/16px Georgia, serif; text-align: center; }
.fb-info.klein-info { display: block; background: none; border: 0; padding: 4px 0 0 22px; font-size: .82rem; }
.fb-info.klein-info::before { left: 0; top: 5px; }

.fb-q { padding: 11px 18px; border-bottom: 1px solid #EEF2F7; align-items: start; }
.fb-q:last-child { border-bottom: 0; }
.fb-q:hover { background: #FBFCFE; }
.fb-q:focus-within { background: #F6F9FE; box-shadow: inset 3px 0 0 var(--blau); }
.fb-q-nr { padding-top: 7px; }
.fb-id { display: inline-block; font-size: .74rem; font-weight: 600; color: var(--blau); background: var(--blau-h); border-radius: 5px; padding: 2px 6px;
  font-variant-numeric: tabular-nums; letter-spacing: .01em; white-space: nowrap; }
.fb-q-text { padding-top: 6px; font-size: .95rem; line-height: 1.4; }
.fb-q-text .stern, .fb-m-kopf .stern, .stern { color: var(--amber); margin-left: 4px; font-weight: 700; }
.fb-hinweis { display: block; font-size: .82rem; color: var(--grau); margin-top: 3px; }
.fb-bem-titel { font-weight: 600; color: var(--grau); }
.fb-q-feld { display: flex; flex-direction: column; gap: 4px; }
.fb-q-feld .eingabe { width: 100%; }
.fb-q.bem { grid-template-columns: 96px minmax(0, 1fr) 34px; }
.fb-q.bem .fb-q-text { display: none; }
.fb-q.bem .fb-q-feld::before { content: "Bemerkung (optional)"; font-size: .8rem; color: var(--grau); }
.fb-q-status { text-align: center; padding-top: 7px; }
.fb-q-st { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-size: .8rem; font-weight: 700; }
.fb-q-st.ok { background: var(--gruen-h); color: var(--gruen); }
.fb-q-st.pf { background: var(--amber-h); color: var(--amber); }
.fb-q-st.leer { color: #B3BDCB; }
.eingabe.zahl { text-align: right; font-variant-numeric: tabular-nums; }
.fb-q.ungueltig .eingabe, .fb-m-tab td.ungueltig .eingabe { border-color: var(--rot); box-shadow: 0 0 0 3px rgba(180,67,62,.12); }
.fb-q.unplausibel .eingabe, .fb-m-tab td.unplausibel .eingabe { border-color: var(--amber); }
.fb-mk-wert { font-size: .85rem; color: var(--grau); }
.marker-reihe { display: flex; gap: 5px; }

/* Matrix */
.fb-matrix { padding: 12px 18px 14px; border-bottom: 1px solid #EEF2F7; }
.fb-matrix:last-child { border-bottom: 0; }
.fb-m-kopf { display: grid; grid-template-columns: 96px 1fr auto; gap: 14px; align-items: center; }
.fb-m-kopf .t { font-weight: 600; }
.fb-m-st { font-size: .8rem; color: var(--amber); font-weight: 600; }
.fb-matrix > .fb-info { margin-left: 110px; }
.fb-gleich { display: inline-flex; gap: 8px; align-items: center; margin: 8px 0 0 110px; font-size: .88rem; cursor: pointer; }
.fb-gleich span { color: var(--grau); }
.fb-m-rollen { overflow-x: auto; margin-top: 10px; border: 1px solid var(--linie); border-radius: 10px; }
.fb-m-tab { border-collapse: separate; border-spacing: 0; width: 100%; font-size: .88rem; }
.fb-m-tab th, .fb-m-tab td { padding: 7px 8px; border-bottom: 1px solid #EEF2F7; vertical-align: top; }
.fb-m-tab thead th { background: #F3F6FB; color: var(--tinte); font-weight: 600; font-size: .8rem; text-align: left; min-width: 118px; vertical-align: bottom; }
.fb-m-tab .erste { position: sticky; left: 0; background: #fff; z-index: 1; min-width: 190px; max-width: 230px; text-align: left; font-weight: 600; color: var(--text); box-shadow: 1px 0 0 var(--linie); }
.fb-m-tab thead .erste { background: #F3F6FB; }
.fb-m-tab tbody tr:last-child th, .fb-m-tab tbody tr:last-child td { border-bottom: 0; }
.fb-m-tab tr.gesperrt td { background: #F7F8FA; } .fb-m-tab tr.gesperrt .eingabe { color: #8592A6; background: #F1F3F7; }
.fb-m-tab .marker-reihe { margin-top: 3px; }
.fb-m-tab .marker-knopf { padding: 0 5px; font-size: .7rem; }
.fb-m-tab .rf-marke { margin: 3px 0 0; }

/* Fuss: grosses Weiterblättern */
.fb-fussnav { display: flex; justify-content: space-between; gap: 14px; margin: 26px 0 12px; }
.fb-blatt { display: flex; flex-direction: column; gap: 2px; padding: 14px 20px; border-radius: 12px; border: 1px solid var(--linie); background: #fff;
  cursor: pointer; font: inherit; text-align: left; min-width: 0; max-width: 48%; color: var(--text); }
.fb-blatt span { font-size: .8rem; color: var(--grau); }
.fb-blatt b { color: var(--tinte); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fb-blatt.weiter { margin-left: auto; text-align: right; background: var(--blau); border-color: var(--blau); }
.fb-blatt.weiter span { color: #BFD3EE; } .fb-blatt.weiter b { color: #fff; }
.fb-blatt:hover { border-color: var(--blau); } .fb-blatt.weiter:hover { background: var(--tinte); }
.fb-aktionen { display: flex; gap: 8px; flex-wrap: wrap; }

/* Start */
.fb-start { max-width: 920px; }
.fb-start-kopf { background: var(--tinte); color: #fff; border-radius: 16px; padding: 34px 36px 30px; position: relative; overflow: hidden; }
.fb-start-kopf::after { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%;
  border: 38px solid rgba(127,211,168,.18); }
.fb-start-kopf h1 { color: #fff; font-size: 2.4rem; letter-spacing: -.02em; }
.fb-unter { margin: 6px 0 0; color: #AFC3E0; }
.fb-start-text { background: #fff; border: 1px solid var(--linie); border-radius: 0 0 16px 16px; margin-top: -10px; padding: 26px 36px 24px; max-width: none; }
.fb-start-text p { max-width: 70ch; }
.fb-frist { background: var(--amber-h); display: inline-block; padding: 6px 12px; border-radius: 8px; }
.fb-start-aktion { display: flex; align-items: center; gap: 16px; margin-top: 16px; flex-wrap: wrap; }
.fb-start-aktion span { color: var(--grau); font-size: .9rem; }
.knopf.gross { padding: 11px 22px; font-size: 1.02rem; border-radius: 10px; }
.fb-h2 { color: var(--tinte); font-size: 1.15rem; margin: 30px 0 10px; }
.fb-anleitung { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; margin: 0; }
.fb-anl { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 11px 0; border-top: 1px solid var(--linie); }
.fb-anl dt { font-weight: 700; color: var(--tinte); }
.fb-anl dd { margin: 0; color: #3F4B5E; font-size: .92rem; }
.fb-mk { display: inline-block; border: 1px solid var(--linie); border-radius: 5px; padding: 0 5px; font-size: .78rem; background: #fff; }

/* Inhaltsverzeichnis */
.fb-toc { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--linie); border-radius: 12px; overflow: hidden; }
.fb-toc th { text-align: left; font-size: .78rem; color: var(--grau); font-weight: 600; padding: 10px 14px; background: #F3F6FB; border-bottom: 1px solid var(--linie); }
.fb-toc td { padding: 10px 14px; border-bottom: 1px solid #EEF2F7; }
.fb-toc tbody tr { cursor: pointer; } .fb-toc tbody tr:hover td { background: #F6F9FE; }
.fb-toc tbody tr:focus-visible { outline: 2px solid var(--blau); outline-offset: -2px; }
.fb-toc tr:last-child td { border-bottom: 0; }
.fb-toc .nr { width: 46px; font-weight: 800; color: var(--blau); font-variant-numeric: tabular-nums; }
.fb-toc .t { font-weight: 600; color: var(--tinte); }
.fb-toc .z { text-align: right; width: 70px; font-variant-numeric: tabular-nums; }
.fb-toc .bal { width: 210px; white-space: nowrap; }
.fb-toc .pz { display: inline-block; width: 46px; text-align: right; font-size: .85rem; font-variant-numeric: tabular-nums; }
.fb-balken { display: inline-block; vertical-align: middle; width: 140px; height: 7px; border-radius: 4px; background: #E6EBF3; overflow: hidden; }
.fb-balken i { display: block; height: 100%; background: var(--amber); }
.fb-balken.fertig i { background: var(--gruen); }
.fb-status { display: inline-block; font-size: .8rem; font-weight: 600; padding: 2px 10px; border-radius: 999px; white-space: nowrap; }
.fb-status.fertig { background: var(--gruen-h); color: var(--gruen); } .fb-status.arbeit { background: var(--amber-h); color: var(--amber); }
.fb-status.offen { background: #EEF1F5; color: var(--grau); }
.fb-ziele { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; margin-top: 16px; }
.fb-ziel { text-align: left; padding: 14px 16px; border: 1px solid var(--linie); border-radius: 12px; background: #fff; cursor: pointer; font: inherit; color: var(--text); }
.fb-ziel b { display: block; color: var(--tinte); } .fb-ziel span { font-size: .84rem; color: var(--grau); }
.fb-ziel:hover { border-color: var(--blau); }

/* Prüfung und Abschluss */
.fb-zaehler { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.fb-zaehler div { flex: 1 1 140px; background: #fff; border: 1px solid var(--linie); border-radius: 12px; padding: 12px 16px; border-top: 4px solid #C9D3E1; }
.fb-zaehler b { display: block; font-size: 1.7rem; color: var(--tinte); font-variant-numeric: tabular-nums; line-height: 1.1; }
.fb-zaehler span { color: var(--grau); font-size: .85rem; }
.fb-zaehler .ok { border-top-color: var(--gruen); } .fb-zaehler .h { border-top-color: var(--amber); } .fb-zaehler .f { border-top-color: var(--rot); }
.fb-meld { display: grid; grid-template-columns: 76px 84px 1fr auto; gap: 12px; align-items: center; padding: 10px 18px; border-bottom: 1px solid #EEF2F7; }
.fb-meld:last-child { border-bottom: 0; }
.fb-stufe { font-size: .75rem; font-weight: 700; border-radius: 999px; padding: 2px 9px; text-align: center; }
.fb-meld.f .fb-stufe { background: var(--rot-h); color: var(--rot); } .fb-meld.h .fb-stufe { background: var(--amber-h); color: var(--amber); }
.fb-meld .w { display: block; font-size: .82rem; color: var(--grau); }
.fb-leer { background: #fff; border: 1px solid var(--linie); border-radius: 12px; padding: 22px; text-align: center; color: var(--gruen); font-weight: 600; }
.fb-offen-z { display: grid; grid-template-columns: 46px 1fr auto auto; gap: 14px; align-items: center; padding: 10px 18px; border-bottom: 1px solid #EEF2F7; cursor: pointer; }
.fb-offen-z:hover { background: #F6F9FE; } .fb-offen-z:last-child { border-bottom: 0; }
.fb-offen-z .nr { font-weight: 800; color: var(--blau); } .fb-offen-z .n { color: var(--amber); font-weight: 600; font-size: .88rem; }
.fb-offen-z .go { color: var(--blau); font-size: .88rem; }
.fb-absenden { background: #fff; border: 1px solid var(--linie); border-radius: 12px; padding: 20px 24px; border-left: 5px solid #C9D3E1; }
.fb-absenden.bereit { border-left-color: var(--gruen); } .fb-absenden.erledigt { border-left-color: var(--gruen); background: var(--gruen-h); }
.fb-absenden h2 { margin: 0 0 4px; color: var(--tinte); font-size: 1.15rem; }
.fb-absenden .fb-aktionen { margin-top: 14px; }

/* Rückfragen im Fragebogen */
.fb-seite .rf-banner { border-radius: 12px; }
.fb-seite .rf-zeile .fb-id { margin-right: 4px; }

/* ------------------------------------------------------------ schmale Bildschirme */
@media (max-width: 1000px) {
  .fb { grid-template-columns: minmax(0, 1fr); }
  .fb-seite { max-width: 100vw; overflow-x: hidden; }
  .fb-leiste { position: sticky; top: 0; z-index: 30; height: auto; flex-direction: row; overflow-x: auto; overflow-y: hidden; padding: 0; align-items: stretch; }
  .fb-kopf, .fb-fuss { display: none; }
  .fb-gesamt { margin: 6px; padding: 6px 10px; flex: 0 0 auto; }
  .fb-gesamt div:last-child { display: none; }
  .fb-ring { flex-basis: 40px; height: 40px; } .fb-ring::before { inset: 4px; } .fb-ring span { font-size: .8rem; }
  .fb-gruppe { display: flex; border-top: 0; border-left: 1px solid #1E3E6E; padding: 6px; gap: 2px; }
  .fb-reg { width: auto; white-space: nowrap; padding: 8px 10px; }
  .fb-kaps .fb-rt { display: none; }
  .fb-seite { padding: 16px 16px 60px; }
  .fb-kapkopf { position: static; margin: -16px -16px 14px; padding: 14px 16px 10px; grid-template-columns: auto 1fr; }
  .fb-kaptitel h1 { font-size: 1.3rem; }
  .fb-gleich { display: block; } .fb-gleich span { display: block; font-size: .8rem; }
  .fb-kapkopf .fb-pillen { grid-column: 1 / -1; }
  .fb-kapnr { font-size: 2.2rem; }
  .fb-kapnav { grid-column: 1 / -1; }
  .fb-spaltenkopf { display: none; }
  .fb-q, .fb-q.bem { grid-template-columns: 1fr auto; gap: 6px 10px; }
  .fb-q-nr { grid-column: 1 / -1; padding: 0; }
  .fb-q-text { grid-column: 1; grid-row: 2; padding: 0; }
  .fb-q-status { grid-column: 2; grid-row: 2; padding: 0; }
  .fb-q-feld { grid-column: 1 / -1; }
  .fb-m-kopf { grid-template-columns: auto 1fr auto; }
  .fb-matrix > .fb-info, .fb-gleich { margin-left: 0; }
  .fb-anleitung { grid-template-columns: 1fr; }
  .fb-anl { grid-template-columns: 1fr; gap: 2px; }
  .fb-toc .bal, .fb-toc .z:nth-of-type(3) { display: none; }
  .fb-meld { grid-template-columns: auto 1fr; } .fb-meld .t { grid-column: 1 / -1; }
  .fb-blatt { max-width: 50%; }
  .fb-start-kopf { padding: 24px 20px; } .fb-start-kopf h1 { font-size: 1.8rem; } .fb-start-text { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) { .fb * { transition: none !important; animation: none !important; } }
@media print { .fb-leiste, .fb-kapnav, .fb-fussnav, .fb-aktionen { display: none; } .fb { display: block; } }

/* Nachträge: Gruppen, Abmelden, Marker in Tabellen */
body:has(.fb) #oben-rechts { display: none !important; }
.fb-abmelden { display: block; width: 100%; margin-bottom: 10px; border: 1px solid #3A5D92; background: transparent; color: #fff; border-radius: 8px; padding: 7px; cursor: pointer; font: inherit; font-size: .85rem; }
.fb-abmelden:hover { background: var(--tinte2); }
.fb-st.arbeit { font-size: .6rem; }
.fb-gruppe-q { border-bottom: 1px solid #EEF2F7; }
.fb-gruppe-q:last-child { border-bottom: 0; }
.fb-g-kopf { border-bottom: 0; padding-bottom: 2px; }
.fb-g-kopf .t { font-weight: 600; }
.fb-q.unter { border-bottom: 0; padding-top: 5px; padding-bottom: 5px; }
.fb-q.unter .fb-q-text { padding-left: 14px; border-left: 2px solid var(--linie); color: #334155; }
.fb-gruppe-q .fb-q.unter:last-child { padding-bottom: 12px; }
/* k.A./n.v. in Tabellen erst beim Anklicken der Zelle (oder wenn gesetzt) */
.fb-m-tab td .marker-reihe { opacity: 0; height: 0; overflow: hidden; transition: opacity .15s; }
.fb-m-tab td:focus-within .marker-reihe, .fb-m-tab td:hover .marker-reihe, .fb-m-tab td .marker-reihe:has([aria-pressed="true"]) { opacity: 1; height: auto; }
.fb-m-tab td { min-width: 118px; }
.fb-m-tab .mit-einheit .einheit { padding: 0 7px; font-size: .78rem; }
.fb-m-tab .eingabe { padding: 6px 8px; }
:root { --blau-h: #E8EFF8; }

/* ---------- 1.2.1: hell statt dunkelblau ---------- */
.fb { --tinte: #1D3B66; --blau: #1F63A8; --blau-d: #174F88; --blau-h: #E9F1FA; }
.fb-leiste { background: #fff; color: var(--text); border-right: 1px solid var(--linie); scrollbar-color: #C9D5E5 transparent; }
.fb-logo { padding: 0; border-radius: 0; }
.fb-org { color: var(--tinte); }
.fb-erh { color: var(--grau); }
.fb-admin, .fb-abmelden { border-color: var(--linie); color: var(--blau); background: #fff; }
.fb-admin:hover, .fb-abmelden:hover { background: var(--blau-h); }
.fb-gesamt { background: var(--blau-h); }
.fb-gesamt b { color: var(--tinte); }
.fb-gesamt span { color: var(--grau); }
.fb-gesamt .fb-abg { color: var(--gruen); }
.fb-ring { background: conic-gradient(var(--gruen) calc(var(--p) * 1%), #D3DEEC 0); }
.fb-ring::before { background: var(--blau-h); }
.fb-ring span { color: var(--tinte); }
.fb-gruppe { border-top-color: #E6ECF4; }
.fb-reg { color: #2B3A52; }
.fb-reg:hover { background: #F0F5FB; }
.fb-reg:focus-visible { outline-color: var(--blau); }
.fb-reg.aktiv { background: var(--blau); color: #fff; box-shadow: 0 2px 8px rgba(31,99,168,.25); }
.fb-kn { background: #E3ECF7; color: var(--blau); }
.fb-reg.aktiv .fb-kn { background: rgba(255,255,255,.22); color: #fff; }
.fb-reg.st-fertig .fb-kn { background: var(--gruen); color: #fff; }
.fb-st.fertig { color: var(--gruen); } .fb-st.arbeit { color: var(--amber); } .fb-st.offen { color: #A6B3C5; }
.fb-reg.aktiv .fb-st.fertig, .fb-reg.aktiv .fb-st.arbeit, .fb-reg.aktiv .fb-st.offen { color: #fff; }
.fb-mini { background: var(--amber); }
.fb-reg.st-fertig .fb-mini { background: var(--gruen); }
.fb-reg.aktiv .fb-mini { background: rgba(255,255,255,.7); }
.fb-fuss { color: var(--grau); } .fb-fuss a { color: var(--blau); }
.fb-kapnr { color: var(--blau); }
.fb-start-kopf { background: linear-gradient(120deg, #2A6FB3, #4C8CC9); }
.fb-start-kopf::after { border-color: rgba(255,255,255,.14); }
.fb-unter { color: #DCE9F7; }
.fb-blatt.weiter { background: var(--blau); border-color: var(--blau); }
.fb-blatt.weiter span { color: #D4E4F5; }
.fb-blatt.weiter:hover { background: var(--blau-d); }
@media (max-width: 1000px) {
  .fb-leiste { border-right: 0; border-bottom: 1px solid var(--linie); }
  .fb-gruppe { border-left-color: #E6ECF4; }
}

/* ---------- 1.3.0: Leiste ziehbar, Kapitel farbig ---------- */
.fb { grid-template-columns: var(--leiste-b, 300px) minmax(0, 1fr); }
.fb-leiste { position: sticky; }
.fb-zieher { position: absolute; top: 0; right: 0; width: 7px; height: 100%; cursor: col-resize; z-index: 5; touch-action: none; }
.fb-zieher::after { content: ""; position: absolute; top: 50%; right: 2px; width: 3px; height: 44px; margin-top: -22px; border-radius: 3px; background: #C9D5E5; opacity: 0; transition: opacity .2s; }
.fb-leiste:hover .fb-zieher::after, .fb-zieher:focus-visible::after, .fb.zieht .fb-zieher::after { opacity: 1; }
.fb-zieher:hover, .fb.zieht .fb-zieher { background: linear-gradient(90deg, transparent, rgba(31, 99, 168, .18)); }
.fb.zieht, .fb.zieht * { user-select: none; cursor: col-resize !important; }
/* sehr schmal: nur Nummern und Symbole */
.fb.schmal .fb-rt, .fb.schmal .fb-org, .fb.schmal .fb-erh, .fb.schmal .fb-gesamt > div:last-child, .fb.schmal .fb-st, .fb.schmal .fb-fuss,
.fb.schmal .fb-admin, .fb.schmal .fb-zahl { display: none; }
.fb.schmal .fb-kopf { padding: 12px 8px; }
.fb.schmal .fb-logo { width: 100%; }
.fb.schmal .fb-gesamt { margin: 0 6px 8px; padding: 8px 0; justify-content: center; }
.fb.schmal .fb-ring { flex-basis: 48px; height: 48px; }
.fb.schmal .fb-gruppe { padding: 6px 6px; }
.fb.schmal .fb-reg { justify-content: center; padding: 7px 4px; }
.fb-farbknopf { display: block; width: 100%; margin: 0 0 8px; border: 1px solid var(--linie); background: #fff; color: var(--blau); border-radius: 8px;
  padding: 6px 10px; cursor: pointer; font: inherit; font-size: .82rem; text-align: left; }
.fb-farbknopf:hover { background: var(--blau-h); }
.fb-farbknopf[aria-pressed="true"] { border-color: var(--blau); }
/* Kapitel farbig */
.fb.farbig .fb-kaps .fb-reg .fb-kn { background: var(--kf); color: #fff; }
.fb.farbig .fb-kaps .fb-reg { box-shadow: inset 3px 0 0 var(--kf); }
.fb.farbig .fb-kaps .fb-reg.aktiv { background: var(--kf); color: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .18); }
.fb.farbig .fb-kaps .fb-reg.aktiv .fb-kn { background: rgba(255, 255, 255, .25); }
.fb.farbig .fb-kaps .fb-reg.st-fertig .fb-kn::after { content: "✓"; font-size: .6rem; margin-left: 1px; }
.fb.farbig .fb-kaps .fb-mini { background: var(--kf); opacity: .55; }
.fb.farbig .fb-kapnr { color: var(--kf); }
.fb.farbig .fb-kapkopf { border-bottom: 3px solid var(--kf); }
.fb.farbig .fb-kaptitel h1 { color: color-mix(in srgb, var(--kf) 70%, #1C2738); }
.fb.farbig .fb-seite .fb-q { border-left: 3px solid color-mix(in srgb, var(--kf) 35%, transparent); }
.fb.farbig .fb-seite .fb-id, .fb.farbig .fb-q-nr { color: var(--kf); }
@media (max-width: 1000px) {
  .fb { grid-template-columns: minmax(0, 1fr); }
  .fb-zieher { display: none; }
  .fb.schmal .fb-rt { display: inline; }
}
/* Live-Hinweis beim Eingeben */
.fb-q, .fb-m-tab td { position: relative; }
.fb-q.regelfehler .eingabe, .fb-m-tab td.regelfehler .eingabe { border-color: var(--rot); box-shadow: 0 0 0 3px rgba(180,67,62,.10); }
.fb-q.regelfehler .feld-fehler { color: var(--rot); background: var(--rot-h); }
.fb-pop { position: absolute; z-index: 25; right: 8px; top: calc(100% - 6px); max-width: 340px; min-width: 220px; display: grid; grid-template-columns: 1fr auto; gap: 2px 8px;
  padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid #F0C98F; box-shadow: 0 10px 28px rgba(28, 39, 56, .18);
  font-size: .84rem; line-height: 1.35; animation: fbPop .22s ease-out; text-align: left; font-weight: 400; }
.fb-pop::before { content: ""; position: absolute; top: -7px; right: 26px; width: 12px; height: 12px; background: #fff; border-left: 1px solid #F0C98F; border-top: 1px solid #F0C98F; transform: rotate(45deg); }
.fb-pop b { grid-column: 1; color: #9A5B16; }
.fb-pop span { grid-column: 1; color: var(--text); }
.fb-pop button { grid-column: 2; grid-row: 1 / span 2; align-self: start; border: 0; background: transparent; font-size: 1.1rem; cursor: pointer; color: var(--grau); }
.fb-pop.regel { border-color: #E3A39F; } .fb-pop.regel::before { border-color: #E3A39F; } .fb-pop.regel b { color: var(--rot); }
.fb-pop.weg { opacity: 0; transform: translateY(-4px); transition: all .25s; }
@keyframes fbPop { from { opacity: 0; transform: translateY(-6px) scale(.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .fb-pop { animation: none; } }
/* Matrix-Spaltentitel: zentriert, oben, sauber umbrochen */
.fb-m-tab thead th { text-align: center; vertical-align: top; white-space: normal; text-wrap: balance; hyphens: manual; overflow-wrap: normal; line-height: 1.3; padding: 9px 8px; }
.fb-m-tab thead th.erste { text-align: left; }
.fb-m-tab tbody th.erste, .fb-m-tab tbody td.erste { vertical-align: middle; }
.fb-m-tab tbody td { vertical-align: middle; }
.fb-farbpunkte { display: inline-block; width: 26px; height: 10px; margin-right: 8px; vertical-align: middle; border-radius: 5px;
  background: linear-gradient(90deg, #2F6DB5 0 25%, #2E8B62 25% 50%, #C7731C 50% 75%, #8E44AD 75%); }

/* ---------- 1.3.1: Frage und Hilfe deutlicher ---------- */
/* Fragetext: grösser, kräftiger */
.fb-q-text .t, .fb-m-kopf .t { font-size: 1.06rem; font-weight: 650; color: var(--tinte); line-height: 1.35; letter-spacing: -.005em; }
.fb-q.unter .fb-q-text .t { font-size: .97rem; font-weight: 500; color: #334155; }
.fb-m-kopf .t { font-size: 1.08rem; }
/* Hilfe zum Abschnitt: deutliche Hilfe-Box */
.fb-abschnitt > .fb-info:not(.klein-info) { margin: 12px 18px 4px; padding: 11px 14px 11px 44px; background: #EEF5FD; border: 1px solid #D3E3F6;
  border-left: 4px solid var(--blau); border-radius: 10px; color: #1E3A5F; font-size: .93rem; line-height: 1.45; }
.fb-abschnitt > .fb-info:not(.klein-info)::before { left: 15px; top: 12px; width: 20px; height: 20px; font-size: .8rem; line-height: 20px; }
/* Hilfe zur einzelnen Frage */
.fb-info.klein-info { display: block; margin-top: 7px; padding: 7px 11px 7px 34px; background: #F2F7FD; border: 1px solid #DCE8F6; border-radius: 8px;
  color: #26476E; font-size: .88rem; line-height: 1.45; position: relative; }
.fb-info.klein-info::before { left: 10px; top: 8px; }
.fb-matrix > .fb-info.klein-info { margin: 8px 0 6px 110px; }
/* Hinweis (Spalte «Hinweis» im Excel) */
.fb-hinweis { margin-top: 5px; font-size: .88rem; color: #4A5A70; line-height: 1.4; padding-left: 10px; border-left: 2px solid #C9D6E6; }
/* Kapitel farbig: Hilfe-Box in der Kapitelfarbe */
.fb.farbig .fb-abschnitt > .fb-info:not(.klein-info) { border-left-color: var(--kf); }
@media (max-width: 1000px) {
  .fb-abschnitt > .fb-info:not(.klein-info) { margin: 10px 12px 4px; }
  .fb-matrix > .fb-info.klein-info { margin-left: 0; }
}

/* ======================================================================
   1.4.0: breiter und kompakter, Haupt-/Unterfrage, Farben wie im Portal
   ====================================================================== */
.fb { --tinte: #02377B; --blau: #02377B; --blau-d: #012B61; --blau2: #1B5F98; --blau-h: #EAF0F8;
  --gruen: #5C8F65; --gruen-h: #EAF1E8; --amber: #E07B24; --amber-h: #FDF1E3; --rot: #B85050; --rot-h: #F8E9E9;
  --papier: #F8F9FB; --linie: #D5DDEA; --text: #1F2A37; --grau: #6B7280; }
.fb-leiste { background: #F7F8FA; border-right: 1px solid #E5E7EB; }
.fb-gesamt { background: #fff; border: 1px solid #E5E7EB; }
.fb-ring { background: conic-gradient(var(--gruen) calc(var(--p) * 1%), #DCE3EE 0); }
.fb-ring::before { background: #fff; }
.fb-reg.aktiv { background: var(--blau); box-shadow: 0 2px 8px rgba(2, 55, 123, .22); }
.fb-kn { background: var(--blau-h); color: var(--blau); }
.fb-start-kopf { background: linear-gradient(120deg, #02377B, #1B5F98); }
.fb-blatt.weiter { background: var(--blau); border-color: var(--blau); }
.fb-blatt.weiter:hover { background: var(--blau-d); }
.fb-abschnitt > h2 { background: var(--blau-h); color: var(--blau); }
.fb .knopf.primaer { background: var(--blau); border-color: var(--blau); }

/* Breite: ganze Fläche nutzen */
.fb-seite { max-width: 1760px; padding: 18px 28px 60px; }
.fb-kapkopf { margin: -18px -28px 14px; padding: 12px 28px 10px; }
.fb-kapnr { font-size: 2.7rem; }
.fb-kaptitel h1 { font-size: 1.45rem; }

/* Zeilen niedriger, Antwortspalte breiter */
.fb-spaltenkopf, .fb-q { grid-template-columns: 92px minmax(0, 1fr) minmax(300px, 440px) 30px; gap: 12px; }
.fb-q.bem { grid-template-columns: 92px minmax(0, 1fr) 30px; }
.fb-q { padding: 6px 16px; }
.fb-q-text { padding-top: 4px; }
.fb-q-nr { padding-top: 5px; }
.fb-abschnitt { margin-bottom: 14px; }
.fb-abschnitt > h2 { padding: 9px 16px; }
.fb-q .eingabe { padding: 6px 9px; }
/* k.A./n.v. und ? neben dem Feld statt darunter */
.fb-q-feld { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.fb-q-feld > .mit-einheit, .fb-q-feld > .eingabe, .fb-q-feld > select { flex: 1 1 170px; min-width: 0; }
.fb-q-feld > textarea { flex: 1 1 100%; }
.fb-q-feld > .marker-reihe { margin: 0; flex: 0 0 auto; }
.fb-q-feld > .feld-fehler, .fb-q-feld > .feld-vorjahr, .fb-q-feld > .fb-mk-wert { flex: 1 1 100%; }
.marker-knopf { font-size: .72rem; padding: 0 7px; line-height: 1.7; }
/* Matrix: kompakt, Marker neben dem Feld */
.fb-m-tab th, .fb-m-tab td { padding: 4px 6px; }
.fb-m-tab thead th { padding: 7px 6px; min-width: 150px; }
.fb-m-tab .erste { min-width: 200px; max-width: 280px; }
.fb-zelle { display: flex; align-items: center; gap: 4px; }
.fb-zelle > .mit-einheit, .fb-zelle > .eingabe { flex: 1 1 auto; min-width: 70px; }
.fb-zelle .marker-reihe { margin: 0; flex: 0 0 auto; gap: 2px; }
.fb-m-tab .marker-knopf { padding: 0 4px; font-size: .66rem; }
.fb-zelle .rf-marke { flex: 0 0 auto; }
.fb-m-tab .eingabe { padding: 5px 7px; }

/* Hauptfrage und Unterfragen klar unterscheiden */
.fb-gruppe-q { border-bottom: 1px solid #E3E8F0; padding-bottom: 6px; }
.fb-g-kopf { background: #F3F6FA; border-top: 1px solid #E3E8F0; padding-top: 8px; padding-bottom: 8px; }
.fb-g-kopf .t { font-size: 1.06rem; font-weight: 700; color: var(--blau); }
.fb-q.unter { padding-top: 3px; padding-bottom: 3px; }
.fb-q.unter .fb-q-text { margin-left: 18px; padding-left: 12px; border-left: 3px solid #C9D6E6; padding-top: 6px; }
.fb-q.unter .fb-q-text .t { font-size: .95rem; font-weight: 400; color: #374151; }
.fb-q.unter .fb-q-text .t::before { content: "› "; color: #9DB4D3; }
.fb-m-kopf .t { font-weight: 700; color: var(--blau); }
.fb-m-tab tbody .erste { font-weight: 500; color: #374151; }

/* Speicherstand: gut sichtbar oben im Kapitelkopf */
.fb-stand { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--linie); background: #fff; color: var(--grau);
  border-radius: 999px; padding: 5px 12px; font: inherit; font-size: .84rem; cursor: pointer; white-space: nowrap; }
.fb-stand i { width: 9px; height: 9px; border-radius: 50%; background: #B8C2D0; }
.fb-stand.ok { color: var(--gruen); border-color: #CFE1D2; background: var(--gruen-h); }
.fb-stand.ok i { background: var(--gruen); }
.fb-stand.offen, .fb-stand.laeuft { color: #9A5A12; border-color: #F1D2AE; background: var(--amber-h); }
.fb-stand.offen i, .fb-stand.laeuft i { background: var(--amber); animation: fbPuls 1s infinite; }
.fb-stand.fehler { color: #fff; background: var(--rot); border-color: var(--rot); }
.fb-stand.fehler i { background: #fff; }
.fb-stand.nur { cursor: default; }
@keyframes fbPuls { 50% { opacity: .35; } }

/* Leiste: Abschnitte des aktiven Kapitels zum Springen */
.fb-subs { margin: 2px 0 6px 22px; border-left: 2px solid var(--blau-h); padding-left: 6px; }
.fb-sub { display: flex; justify-content: space-between; gap: 8px; width: 100%; border: 0; background: none; text-align: left; font: inherit;
  font-size: .8rem; color: #374151; padding: 3px 8px; border-radius: 6px; cursor: pointer; line-height: 1.3; }
.fb-sub:hover { background: var(--blau-h); color: var(--blau); }
.fb-sub span { color: var(--grau); font-size: .74rem; flex: 0 0 auto; }
.fb.schmal .fb-subs { display: none; }

/* Inhaltsverzeichnis aufklappbar */
.fb-toc-leiste { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 8px; }
.fb-toc th.auf, .fb-toc td.auf { width: 34px; padding-right: 0; }
.fb-auf { border: 1px solid var(--linie); background: #fff; border-radius: 6px; width: 26px; height: 24px; cursor: pointer; color: var(--blau); font-size: .8rem; }
.fb-auf:hover { background: var(--blau-h); }
.fb-toc tr.offen > td { background: #F5F8FC; }
.fb-toc-detail > td { background: #FBFCFE; padding: 6px 12px 14px !important; cursor: default; }
.fb-toc-abs { margin-top: 8px; }
.fb-toc-abs-t { font-weight: 700; color: var(--blau); font-size: .86rem; margin: 4px 0 2px; }
.fb-toc-q { display: grid; grid-template-columns: 86px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 4px 8px; border-radius: 6px;
  color: var(--text); text-decoration: none; font-size: .9rem; }
.fb-toc-q:hover { background: var(--blau-h); }
.fb-toc-q .t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-toc-st { font-size: .76rem; white-space: nowrap; }
.fb-toc-st.offen { color: var(--amber); font-weight: 600; } .fb-toc-st.ok { color: var(--gruen); font-weight: 700; } .fb-toc-st.leer { color: var(--grau); }

@media (max-width: 1000px) {
  .fb-seite { padding: 14px 14px 60px; }
  .fb-kapkopf { margin: -14px -14px 12px; padding: 12px 14px 10px; }
  .fb-q, .fb-q.bem { grid-template-columns: 1fr auto; }
  .fb-q.unter .fb-q-text { margin-left: 0; }
  .fb-stand { margin-left: 0; }
  .fb-toc-q { grid-template-columns: 70px minmax(0, 1fr) auto; }
}
/* Korrekturen 1.4.0: Felder nicht strecken, Matrix-Felder breiter, Hilfe in der Frage dezent grün */
.fb-q-feld { align-self: start; align-content: flex-start; }
.fb-q-feld > * { align-self: center; }
.fb-q-feld select.eingabe, .fb-q-feld .eingabe { height: auto; }
.fb-m-tab thead th { min-width: 128px; }
.fb-zelle .mit-einheit .eingabe { min-width: 56px; width: 100%; }
.fb-zelle .mit-einheit .einheit, .fb-m-tab .einheit { padding: 0 6px; font-size: .74rem; }
.fb-info.klein-info { background: #F1F7F1; border: 0; border-left: 3px solid #A9CBAE; border-radius: 6px; color: #3E5C44;
  font-size: .83rem; padding: 5px 10px 5px 28px; margin-top: 5px; }
.fb-info.klein-info::before { background: var(--gruen); left: 8px; top: 6px; width: 14px; height: 14px; font-size: 10px; line-height: 14px; }
/* Antwortfeld: Eingabe | k.A. n.v. | ?  – Meldungen darunter über die ganze Breite */
.fb-q-feld { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 4px 6px; flex-direction: initial; }
.fb-q-feld > .mit-einheit, .fb-q-feld > .eingabe, .fb-q-feld > select, .fb-q-feld > textarea { grid-column: 1; flex: none; }
.fb-q-feld > .marker-reihe { grid-column: 2; }
.fb-q-feld > .rf-marke { grid-column: 3; }
.fb-q-feld > .feld-fehler, .fb-q-feld > .feld-vorjahr, .fb-q-feld > .fb-mk-wert, .fb-q-feld > .fb-pop { grid-column: 1 / -1; }
.fb-q.bem .fb-q-feld { grid-template-columns: minmax(0, 1fr); }
.fb-q.bem .fb-q-feld::before { grid-column: 1 / -1; }
.fb-begr { padding: 8px 0; border-top: 1px solid var(--linie); }
.fb-begr > div { margin-bottom: 5px; font-size: .92rem; }
/* 1.5.3: Handy – Abschnittsliste nur am Desktop, Inhaltsverzeichnis schmal */
@media (max-width: 1000px) {
  .fb-subs { display: none !important; }
  .fb-toc th.z, .fb-toc td.z, .fb-toc th.bal, .fb-toc td.bal { display: none; }
  .fb-toc { table-layout: auto; width: 100%; }
  .fb-toc-leiste { flex-wrap: wrap; }
  .fb-toc-q { grid-template-columns: 70px minmax(0, 1fr); }
  .fb-toc-q .fb-toc-st { grid-column: 2; }
  .fb-toc-q .t { white-space: normal; }
}
@media (max-width: 1000px) {
  .fb-toc th, .fb-toc td { padding: 8px 6px; }
  .fb-toc .fb-status { font-size: 0; } .fb-toc .fb-status::first-letter { font-size: .9rem; }
  .fb-toc th:last-child { font-size: 0; }
}

/* 2.0 – Umfrage wechseln in der Leiste */
.fb-umfrage { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; font-size: .78em; color: var(--grau); }
.fb-umfrage select { font-size: 1em; padding: 4px 6px; margin: 0; }
.fb.schmal .fb-umfrage { display: none; }
