/* FBW Portal – Formular- & Übersichts-Styles (ergänzt styles.css) */
.portal-main{ padding-block: clamp(28px,5vw,56px); }
.portal-intro{ max-width:70ch; margin-bottom:24px; }
.portal-lead{ max-width:70ch; }

/* Dropdown-Auswahl (center-breit) */
.chooser{ background:var(--surface); border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-sm); padding:18px 20px; margin-bottom:22px; }
.chooser label{ display:block; font-weight:700; color:var(--fbw-ink); margin-bottom:8px; }
.chooser select{ width:100%; max-width:100%; font-family:var(--font); font-size:1.05rem; color:var(--ink-900); border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:#fff; }
.chooser select:focus{ outline:2px solid var(--soft-blue); border-color:var(--soft-blue); }

/* Übersicht */
.cat-block{ margin-bottom:30px; }
.cat-block h2{ font-size:1.2rem; display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.cat-block h2::before{ content:""; width:22px; height:5px; border-radius:3px; background:var(--fbw-blue); }
.form-grid{ display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
.form-tile{ display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:16px 18px; font-weight:600; color:var(--fbw-ink); transition:.15s; }
.form-tile:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:var(--soft-blue); }
.form-tile .arr{ color:var(--fbw-blue); flex:none; }

/* Formularkarte */
.formcard{ background:var(--surface); border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow-md); padding:clamp(22px,4vw,40px); max-width:100%; }
.formcard form{ max-width:760px; }
.formcard h1{ font-size:clamp(1.5rem,3vw,2rem); margin-bottom:8px; }
.formcard .intro{ color:var(--ink-600); margin-bottom:18px; }
.crumb{ display:inline-block; margin-bottom:16px; font-weight:600; color:var(--fbw-blue); }
.emergency{ background:#FDEEEE; border:1px solid #F3C9C9; color:#8a2b2b; border-radius:12px; padding:12px 16px; margin-bottom:18px; font-size:.95rem; }
.emergency a{ color:#8a2b2b; font-weight:700; }

.fsec{ font-size:.8rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fbw-blue); margin:24px 0 4px; padding-top:14px; border-top:1px solid var(--line); }
.fsec:first-of-type{ border-top:0; padding-top:0; margin-top:6px; }
.field{ margin:12px 0; }
.field label{ display:block; font-weight:600; color:var(--fbw-ink); margin-bottom:5px; font-size:.95rem; }
.field input, .field select, .field textarea{ width:100%; font-family:var(--font); font-size:1rem; color:var(--ink-900); border:1px solid var(--line); border-radius:10px; padding:11px 13px; background:#FCFDFD; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--soft-blue); border-color:var(--soft-blue); }
.field input[type=file]{ padding:9px; background:#fff; }
.req{ color:#c0392b; }
.fhelp{ display:block; font-size:.82rem; color:var(--ink-400); margin-top:4px; }
.radios{ display:flex; gap:16px; flex-wrap:wrap; }
.radio, .check{ display:inline-flex; align-items:center; gap:7px; font-weight:500; color:var(--ink-900); cursor:pointer; }
.radio input, .check input{ width:auto; }
.checkline label.check{ font-weight:500; }
.checkline span{ font-size:.95rem; }

.places-wrap{ position:relative; }
.places-sug{ position:absolute; left:0; right:0; top:100%; z-index:20; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow-md); margin-top:4px; overflow:hidden; }
.places-item{ display:block; width:100%; text-align:left; background:none; border:0; padding:10px 14px; font-family:var(--font); font-size:.95rem; color:var(--ink-900); cursor:pointer; }
.places-item:hover{ background:#EAF1FA; }

.formmsg{ margin:12px 0; font-size:.92rem; }
.formmsg.err{ color:#c0392b; font-weight:600; }
.btn-submit{ display:inline-block; width:100%; text-align:center; background:var(--fbw-blue); color:#fff; font-family:var(--font); font-weight:700; font-size:1.02rem; border:0; border-radius:999px; padding:14px 22px; margin-top:10px; cursor:pointer; text-decoration:none; transition:.15s; }
.btn-submit:hover{ background:var(--fbw-blue-deep); }
.btn-submit:disabled{ opacity:.6; cursor:default; }
.legal-hint{ font-size:.8rem; color:var(--ink-400); margin-top:12px; }
.legal-hint a{ color:var(--fbw-blue); }

/* Erfolg */
.formcard.success{ text-align:center; }
.success .ok{ width:64px; height:64px; margin:0 auto 12px; border-radius:50%; background:var(--accent); color:#fff; font-size:34px; display:grid; place-items:center; }
.success .ref{ display:inline-block; margin-top:8px; background:#EAF1FA; color:var(--fbw-navy,var(--fbw-blue-deep)); font-weight:700; font-size:1.25rem; padding:8px 16px; border-radius:10px; }
.success .btn-submit{ width:auto; margin-top:22px; padding-inline:34px; }
