/* Patientenfragebogen online – ergänzt main.css */
.fb { display: grid; gap: 1.25rem; max-width: 56rem; margin: 0 auto; }
.fb [hidden] { display: none !important; }
.fb-intro { color: var(--ink-soft); }
.fb-intro p { margin: 0 0 0.75rem; }
.fb-note {
  margin-top: 1rem;
  padding: 1rem 1.15rem;
  border-radius: var(--radius-sm);
  background: var(--accent-soft);
  border: 1px solid var(--accent-mid);
  font-size: 0.95rem;
}
.fb-note strong { display: block; color: var(--accent-deep); margin-bottom: 0.25rem; }
.fb-status { display: block; margin-top: 0.5rem; font-weight: 600; color: var(--accent); }
.fb-status:empty { display: none; }

.fb-block {
  margin: 0;
  padding: 1.25rem 1.25rem 1.4rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  display: grid;
  gap: 0.9rem;
  min-width: 0;
}
.fb-block legend {
  float: left;
  width: 100%;
  margin-bottom: 0.2rem;
  font-family: 'Outfit', sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--accent-deep);
}
.fb-block legend small { font-size: 0.85rem; font-weight: 500; color: var(--muted); }
.fb-sub { margin: 0; padding: 0.6rem 0 0.2rem; color: var(--ink); }
.fb-label { font-size: 0.88rem; font-weight: 600; color: var(--ink-soft); }

.fb-grid { display: grid; gap: 0.9rem; }
@media (min-width: 640px) {
  .fb-grid--2 { grid-template-columns: 1fr 1fr; }
  .fb-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
  .fb-grid--addr { grid-template-columns: 2fr 0.8fr 1.4fr; }
  .fb-grid--jahr { grid-template-columns: 8rem 1fr; }
  .fb-grid--name { grid-template-columns: 11rem 1fr; align-items: end; }
  .fb-narrow { max-width: 14rem; }
}
.fb .field { align-content: start; }
.fb .field textarea { min-height: 4.5rem; }

.fb-choice { display: flex; flex-wrap: wrap; gap: 0.4rem 0.5rem; }
.fb-row { display: flex; flex-wrap: wrap; gap: 0.4rem 0.5rem; }
.fb-choice label,
.fb-check {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.85rem;
  border: 1px solid var(--line);
  border-radius: var(--radius-pill);
  background: var(--bg);
  font-size: 0.92rem;
  cursor: pointer;
  user-select: none;
}
.fb-check { justify-self: start; }
.fb-choice label:has(input:checked) { border-color: var(--accent); background: var(--accent-soft); color: var(--accent-deep); font-weight: 600; }
.fb .fb-choice input,
.fb .fb-check input { accent-color: var(--accent); width: 1rem; height: 1rem; min-height: 0; padding: 0; margin: 0; }

.fb-q {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--line);
}
.fb-q__text { flex: 1 1 18rem; color: var(--ink); }
/* Nummer als feste Spalte: Fragetexte (1.–10.) stehen bündig, Folgezeilen hängend eingerückt. */
.fb-num { padding-left: 1.7em; text-indent: -1.7em; }
.fb-q__num { display: inline-block; width: 1.7em; text-indent: 0; font-variant-numeric: tabular-nums; }
/* Offene Fragen (9., 10.) und Folgefelder: Eingaben bündig unter dem Fragetext. */
.fb-q--open { border-bottom: 0; padding-bottom: 0; }
.fb-indent { padding-left: 1.7em; }
label.fb-q__text { cursor: pointer; }
.fb-matrix { display: grid; gap: 0 1.5rem; padding-left: 1.7em; }
@media (min-width: 760px) {
  .fb-matrix { grid-template-columns: 1fr 1fr 1fr; gap: 0 5mm; }
}

.fb-consent p { margin: 0; color: var(--ink-soft); }
.fb .fb-upper { text-transform: uppercase; letter-spacing: 0.04em; }
.fb-actions { justify-content: center; }
.fb-confirm { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 0.4rem; padding: 0.85rem 1rem; border-radius: var(--radius-sm); background: var(--accent-soft); cursor: pointer; }
.fb .fb-confirm input { accent-color: var(--accent); width: 1.1rem; height: 1.1rem; min-height: 0; padding: 0; margin: 0.15rem 0 0; flex: none; }
.fb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fb-send-error { margin: 0; padding: 0.85rem 1rem; border-radius: var(--radius-sm); background: #FEF3F2; color: #B42318; font-weight: 600; text-align: center; }
.fb-send-error p { margin: 0; }
.fb-send-error ul { list-style: none; margin: 0.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.35rem 0.5rem; }
.fb-error-link { font: inherit; font-weight: 500; font-size: 0.92rem; color: #B42318; background: #fff; border: 1px solid #F3C4BF; border-radius: var(--radius-pill); padding: 0.3rem 0.8rem; cursor: pointer; }
.fb-error-link:hover, .fb-error-link:focus-visible { background: #B42318; color: #fff; outline: none; }
.fb-done { max-width: 40rem; margin: 2rem auto; padding: 2rem; text-align: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.fb-done .actions { justify-content: center; }
.fb-print-only { display: none; }

@media print {
  @page { size: A4; margin: 12mm 12mm 14mm; }
  html, body, main { background: #fff !important; }
  body { font-size: 10pt; }
  .fb ::placeholder { color: transparent; }
  .site-header, .site-footer, .dock, .page-hero, .fb-no-print,
  .inline-cms-bar, [data-cms-bar], .cookie-banner { display: none !important; }
  .section, .section--cream { padding: 0 !important; background: #fff !important; }
  .container { max-width: none !important; padding: 0 !important; }
  .fb { max-width: none; gap: 3mm; }
  .fb-print-only { display: block; }
  .fb-print-title { font-family: 'Outfit', sans-serif; font-size: 15pt; font-weight: 700; color: #672856; margin-bottom: 2mm !important; }
  .fb-intro { font-size: 9pt; }
  .fb-intro p { margin-bottom: 1mm; }
  .fb-block { border: 0.3mm solid #ccc; border-radius: 2mm; padding: 2.5mm 3.5mm; gap: 1.5mm; box-shadow: none; }
  .fb-q, .fb .field, .fb-grid, .fb-intro, .fb-consent { break-inside: avoid; }
  .fb-block legend { break-after: avoid; }
  .fb-check { padding: 0; border: 0; background: none; font-size: 9pt; }
  .fb-block legend { font-size: 10.5pt; margin-bottom: 0; }
  .fb-grid--2 { grid-template-columns: 1fr 1fr; }
  .fb-grid--3 { grid-template-columns: 1fr 1fr 1fr; }
  .fb-grid--addr { grid-template-columns: 2fr 0.8fr 1.4fr; }
  .fb-grid--jahr { grid-template-columns: 25mm 1fr; }
  .fb-grid--name { grid-template-columns: 35mm 1fr; align-items: end; }
  .fb-grid { gap: 1.5mm 3mm; }
  .fb-matrix { grid-template-columns: 1fr 1fr 1fr; gap: 0 5mm; padding-left: 5mm; }
  .fb .field { gap: 0.3mm; }
  .fb .field label, .fb-label { font-size: 7.5pt; }
  .fb .field input, .fb .field textarea {
    min-height: 0; padding: 0.6mm 0; border: 0; border-bottom: 0.25mm solid #999;
    border-radius: 0; background: none; font-size: 9.5pt;
  }
  .fb .field textarea { min-height: 7mm; resize: none; }
  .fb-q { padding: 0.8mm 0; font-size: 9pt; flex-wrap: nowrap; }
  .fb-q__text { flex: 1 1 auto; }
  .fb-q .fb-choice { flex: none; flex-wrap: nowrap; }
  .fb-choice { gap: 1mm 2mm; }
  .fb-choice label { padding: 0; border: 0; background: none !important; font-size: 9pt; }
  .fb-choice label:has(input:checked) { font-weight: 700; color: #000; }
  .fb-consent { padding-bottom: 6mm; }
  .fb-consent p { font-size: 8.5pt; }
  [data-reveal] { opacity: 1 !important; transform: none !important; }
}
