/* ── Basis ─────────────────────────────────────────────────────────────── */
#fmc-wrap {
  font-family: 'Segoe UI', Arial, sans-serif;
  max-width: 680px;
  margin: 0 auto;
  padding: 2rem 1rem;
  color: #222;
}

/* ── Fortschrittsbalken ────────────────────────────────────────────────── */
.fmc-progress {
  height: 4px;
  background: #E5E7EB;
  border-radius: 2px;
  margin-bottom: 2rem;
  overflow: hidden;
}
.fmc-progress-bar {
  height: 100%;
  background: #1B3A6B;
  border-radius: 2px;
  transition: width 0.3s ease;
}

/* ── Screens ───────────────────────────────────────────────────────────── */
.fmc-screen { display: none; animation: fmcFade 0.25s ease; }
.fmc-screen.active { display: block; }
@keyframes fmcFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

/* ── Intro ─────────────────────────────────────────────────────────────── */
.fmc-intro-head { margin-bottom: 1.5rem; }
.fmc-label {
  font-size: 11px;
  font-weight: 600;
  color: #6B7280;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 10px;
}
.fmc-title {
  font-size: 26px;
  font-weight: 700;
  color: #1B3A6B;
  margin: 0 0 10px;
  line-height: 1.3;
}
.fmc-subtitle {
  font-size: 15px;
  color: #6B7280;
  line-height: 1.6;
  margin: 0;
}
.fmc-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 1.75rem;
}
.fmc-chip {
  display: inline-block;
  padding: 4px 12px;
  background: #E8F0FA;
  color: #1B3A6B;
  border: 1px solid #2E75B6;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
}

/* ── Fragen ────────────────────────────────────────────────────────────── */
.fmc-step-label {
  font-size: 11px;
  font-weight: 600;
  color: #6B7280;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 8px;
}
.fmc-question {
  font-size: 20px;
  font-weight: 600;
  color: #1B3A6B;
  margin: 0 0 6px;
  line-height: 1.3;
}
.fmc-hint {
  font-size: 13px;
  color: #6B7280;
  margin: 0 0 1rem;
  line-height: 1.5;
}

/* ── Input ─────────────────────────────────────────────────────────────── */
.fmc-input {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid #D1D5DB;
  border-radius: 8px;
  font-size: 15px;
  font-family: inherit;
  color: #222;
  background: #fff;
  margin-bottom: 4px;
  box-sizing: border-box;
  transition: border-color 0.15s;
}
.fmc-input:focus { outline: none; border-color: #2E75B6; box-shadow: 0 0 0 3px rgba(46,117,182,0.12); }

/* ── Optionen ──────────────────────────────────────────────────────────── */
.fmc-options { display: grid; gap: 8px; margin-bottom: 1.25rem; }
.fmc-opt {
  padding: 13px 16px;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font-size: 14px;
  color: #222;
  transition: border-color 0.15s, background 0.15s;
  display: flex;
  align-items: center;
  gap: 10px;
}
.fmc-opt:hover { border-color: #9CA3AF; background: #F9FAFB; }
.fmc-opt.sel { border-color: #2E75B6; background: #E8F0FA; color: #1B3A6B; font-weight: 500; }
.fmc-opt-meta { margin-left: auto; font-size: 12px; color: #6B7280; font-weight: 400; }
.fmc-warn { color: #C0392B !important; }

/* ── Buttons ───────────────────────────────────────────────────────────── */
.fmc-btn-row { display: flex; gap: 10px; margin-top: 1.25rem; flex-wrap: wrap; }
.fmc-btn {
  padding: 11px 22px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid #D1D5DB;
  background: transparent;
  color: #374151;
  transition: background 0.15s;
  font-family: inherit;
}
.fmc-btn:hover { background: #F3F4F6; }
.fmc-btn-primary { background: #1B3A6B; color: #fff; border-color: #1B3A6B; }
.fmc-btn-primary:hover { background: #2E75B6; border-color: #2E75B6; }
.fmc-btn-primary:disabled { opacity: 0.4; cursor: default; }
.fmc-btn-sec { color: #6B7280; }

/* ── DSGVO ─────────────────────────────────────────────────────────────── */
.fmc-dsgvo { font-size: 11px; color: #9CA3AF; margin: 8px 0 0; line-height: 1.5; }
.fmc-dsgvo a { color: #2E75B6; }

/* ── Felder ────────────────────────────────────────────────────────────── */
.fmc-field-group { display: grid; gap: 12px; }
.fmc-field { display: flex; flex-direction: column; gap: 4px; }
.fmc-field-label { font-size: 11px; font-weight: 600; color: #6B7280; text-transform: uppercase; letter-spacing: 0.06em; }

/* ── Loading ───────────────────────────────────────────────────────────── */
.fmc-loading-box { text-align: center; padding: 3rem 1rem; }
.fmc-spinner {
  width: 40px; height: 40px;
  border: 3px solid #E5E7EB;
  border-top-color: #1B3A6B;
  border-radius: 50%;
  animation: fmcSpin 0.8s linear infinite;
  margin: 0 auto 1rem;
}
@keyframes fmcSpin { to { transform: rotate(360deg); } }
.fmc-loading-msg { font-size: 15px; font-weight: 600; color: #1B3A6B; margin-bottom: 4px; }
.fmc-loading-sub { font-size: 13px; color: #6B7280; }

/* ── Ergebnis (Teaser) ─────────────────────────────────────────────────── */
.fmc-result-header {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  margin-bottom: 1rem;
}
.fmc-result-firma { font-size: 17px; font-weight: 600; color: #111; margin-bottom: 3px; }
.fmc-result-meta { font-size: 12px; color: #6B7280; }

.fmc-ampel-box {
  border-radius: 10px;
  padding: 1.1rem 1.25rem;
  margin-bottom: 1rem;
}
.fmc-ampel-gruen { background: #E8F5EE; border: 2px solid #217346; }
.fmc-ampel-gelb  { background: #FFFBE6; border: 2px solid #B8860B; }
.fmc-ampel-rot   { background: #FEECEC; border: 2px solid #C0392B; }
.fmc-ampel-title { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
.fmc-ampel-gruen .fmc-ampel-title { color: #217346; }
.fmc-ampel-gelb  .fmc-ampel-title { color: #B8860B; }
.fmc-ampel-rot   .fmc-ampel-title { color: #C0392B; }
.fmc-ampel-text  { font-size: 13px; line-height: 1.55; }
.fmc-ampel-gruen .fmc-ampel-text { color: #217346; }
.fmc-ampel-gelb  .fmc-ampel-text { color: #B8860B; }
.fmc-ampel-rot   .fmc-ampel-text { color: #C0392B; }
.fmc-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.fmc-badge { padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.fmc-badge-green { background: #E8F5EE; color: #217346; border: 1px solid #217346; }
.fmc-badge-blue  { background: #E8F0FA; color: #1B3A6B; border: 1px solid #2E75B6; }
.fmc-badge-amber { background: #FFFBE6; color: #B8860B; border: 1px solid #B8860B; }
.fmc-badge-red   { background: #FEECEC; color: #C0392B; border: 1px solid #C0392B; }

.fmc-warn-banner {
  background: #FFFBE6;
  border: 1px solid #B8860B;
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #B8860B;
  margin-bottom: 1rem;
}

/* ── Gesperrte Blöcke ──────────────────────────────────────────────────── */
.fmc-locked-block {
  position: relative;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 10px;
}
.fmc-locked-head {
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 600;
  color: #6B7280;
  border-bottom: 1px solid #E5E7EB;
}
.fmc-locked-body { padding: 14px; filter: blur(4px); user-select: none; pointer-events: none; }
.fmc-locked-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.88);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  z-index: 2;
}
.fmc-lock-icon { font-size: 22px; }
.fmc-lock-label { font-size: 13px; font-weight: 600; color: #6B7280; }

.fmc-prog-teaser { display: grid; gap: 7px; }
.fmc-prog-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 7px;
  font-size: 13px;
}
.fmc-prog-row.blurred { filter: blur(5px); }
.fmc-prog-name { font-weight: 600; color: #111; }
.fmc-prog-meta { font-size: 12px; color: #6B7280; }
.fmc-prog-badge { background: #E8F0FA; color: #1B3A6B; border: 1px solid #2E75B6; padding: 2px 9px; border-radius: 20px; font-size: 11px; font-weight: 600; }

/* ── CTA Box ───────────────────────────────────────────────────────────── */
.fmc-cta-box {
  background: #E8F0FA;
  border: 2px solid #2E75B6;
  border-radius: 10px;
  padding: 1.25rem;
  margin-top: 1rem;
}
.fmc-cta-title { font-size: 16px; font-weight: 700; color: #1B3A6B; margin-bottom: 6px; }
.fmc-cta-sub { font-size: 13px; color: #374151; line-height: 1.55; margin-bottom: 1rem; }
.fmc-cta-list { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: 4px; }
.fmc-cta-list li { font-size: 13px; color: #1B3A6B; display: flex; align-items: center; gap: 6px; }
.fmc-cta-list li::before { content: '✓'; font-weight: 700; }
.fmc-cta-mail { font-size: 11px; color: #6B7280; text-align: center; margin-top: 8px; }

.fmc-restart { text-align: center; margin-top: 1rem; }
.fmc-restart button { font-size: 12px; color: #6B7280; background: none; border: none; cursor: pointer; text-decoration: underline; }

.fmc-footer-note {
  font-size: 10px;
  color: #9CA3AF;
  line-height: 1.5;
  border-top: 1px solid #E5E7EB;
  padding-top: 10px;
  margin-top: 1rem;
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .fmc-title { font-size: 20px; }
  .fmc-question { font-size: 17px; }
  .fmc-btn { padding: 10px 16px; font-size: 13px; }
}
