/* Forum (seit 16.10.2026) – Farben nur über die Tokens aus Layout::farben(). */
.forum { margin:8px 0; }
.fm-thread { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:12px 14px; margin:0 0 12px; }
.fm-thread h3 { margin:0 0 8px; font-size:16px; line-height:1.4; }
.fm-thread h3 a { color:var(--text); text-decoration:none; } .fm-thread h3 a:hover { color:var(--link); }
.fm-kind { font-size:11.5px; font-weight:600; padding:1px 8px; border-radius:999px; background:var(--soft); color:var(--muted); vertical-align:2px; white-space:nowrap; }
.fm-kind.fm-entdeckung { background:#3b2f0b; color:#f0c060; } .fm-kind.fm-tipp { background:#173d2c; color:#9ee6c3; } .fm-kind.fm-frage { background:#1c2f4d; color:#9cc4ff; }
.fm-post { border-top:1px solid var(--border); padding:10px 0 6px; } .fm-thread > .fm-post:first-of-type { border-top:0; padding-top:0; }
.fm-post.fm-answer { margin-left:22px; padding-left:12px; border-left:2px solid var(--border); border-top:0; }
.fm-post.fm-hl { background:var(--soft); border-radius:8px; padding-left:8px; }
.fm-post header { font-size:12.5px; color:var(--muted); margin-bottom:4px; }
.fm-author { color:var(--text); font-weight:600; } .fm-badge { font-size:11px; color:#9ee6c3; background:#173d2c; border-radius:999px; padding:0 7px; }
.fm-time { color:var(--muted); text-decoration:none; }
.fm-text { font-size:14.5px; line-height:1.55; overflow-wrap:anywhere; } .fm-text p { margin:0 0 8px; }
.fm-text blockquote { margin:6px 0; padding:4px 12px; border-left:3px solid var(--accent); color:var(--muted); }
.fm-text pre.fm-code { background:#0f172a; color:#e2e8f0; padding:10px; border-radius:8px; overflow-x:auto; font-size:12.5px; }
.fm-text code { background:var(--soft); padding:1px 5px; border-radius:4px; font-size:13px; }
.fm-text h4, .fm-text h5 { margin:10px 0 4px; }
.fm-ref { text-decoration:none; background:var(--soft); border-radius:6px; padding:0 6px; white-space:nowrap; }
.fm-stat { display:inline-flex; flex-wrap:wrap; gap:6px; align-items:center; background:var(--card2); border:1px solid var(--border); border-radius:8px; padding:4px 8px; margin:2px 0; }
.fm-stat .fm-frame { display:block; width:100%; min-width:min(640px, 80vw); height:620px; border:0; border-radius:8px; margin-top:6px; background:var(--bg); }
.fm-preview, .fm-link, .fm-react { font:inherit; font-size:12.5px; border:1px solid var(--border); background:transparent; color:var(--muted); border-radius:999px; padding:2px 9px; cursor:pointer; }
.fm-link { border-color:transparent; } .fm-link:hover, .fm-react:hover, .fm-preview:hover { color:var(--text); border-color:var(--accent); }
.fm-react.on { background:var(--soft); color:var(--text); border-color:var(--accent); } .fm-react:disabled { cursor:default; opacity:.7; }
.fm-bar { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 2px; }
.fm-more summary { cursor:pointer; color:var(--link); font-size:13.5px; margin:6px 0; }
.fm-editor { margin:8px 0; }
.fm-editor input.fm-title, .fm-editor textarea, .fm-name { width:100%; box-sizing:border-box; padding:9px 11px; border-radius:8px; border:1px solid var(--border); background:var(--input); color:var(--text); font:inherit; margin:4px 0; }
.fm-name { width:auto; min-width:220px; }
.fm-tools { display:flex; flex-wrap:wrap; gap:4px; align-items:center; margin:4px 0 0; }
.fm-tools button { font:inherit; font-size:13px; min-width:32px; padding:4px 8px; border-radius:6px; border:1px solid var(--border); background:var(--card2); color:var(--text); cursor:pointer; }
.fm-tools button:hover { border-color:var(--accent); } .fm-hilfe { font-size:12px; color:var(--link); cursor:help; margin-left:6px; }
.fm-kinds { display:flex; flex-wrap:wrap; gap:6px 14px; font-size:13.5px; margin:4px 0; }
.fm-preview-box { background:var(--card2); border:1px dashed var(--border); border-radius:8px; padding:8px 12px; margin:6px 0; }
.fm-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; } .fm-msg { color:var(--warn-fg, #f0c060); font-size:13px; }
.fm-cta { background:var(--card); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:12px; padding:12px 14px; margin:10px 0; }
.fm-cta p { margin:0 0 8px; }
.fm-new > summary { list-style:none; display:inline-block; cursor:pointer; margin:6px 0; } .fm-new > summary::-webkit-details-marker { display:none; }
.fm-leer { color:var(--muted); font-style:italic; }
.fm-list { list-style:none; padding:0; margin:0; } .fm-list li { padding:9px 0; border-bottom:1px solid var(--border); }
.fm-list li a { font-weight:600; text-decoration:none; } .fm-list .small { display:block; margin-top:2px; }
.fm-replybox { margin-top:14px; }
.forum-teaser { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:14px; }

/* Ordnung (seit 16.10.2026 nachts): Bereiche, Filter, aufklappbare Themen, Störungsmeldungen */
.fm-head { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 10px; }
.fm-chips { display:flex; flex-wrap:wrap; gap:6px; }
.fm-chips button { font:inherit; font-size:13px; padding:4px 11px; border-radius:999px; border:1px solid var(--border); background:var(--card); color:var(--text); cursor:pointer; }
.fm-chips button.on { background:var(--btn); border-color:var(--btn); color:var(--on-accent); }
.fm-bereich { margin:14px 0 6px; }
.fm-bereich > h4 { margin:0 0 6px; font-size:15px; display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; border-bottom:1px solid var(--border); padding-bottom:4px; }
details.fm-thread { padding:0; margin:0 0 6px; }
details.fm-thread > summary { list-style:none; cursor:pointer; padding:9px 12px; display:flex; flex-wrap:wrap; gap:4px 8px; align-items:baseline; border-radius:12px; }
details.fm-thread > summary::-webkit-details-marker { display:none; }
details.fm-thread > summary::before { content:"▸"; color:var(--muted); } details.fm-thread[open] > summary::before { content:"▾"; }
details.fm-thread > summary:hover { background:var(--soft); }
details.fm-thread .fm-ttl { font-size:15px; }
.fm-meta { color:var(--muted); font-size:12.5px; }
.fm-thread-in { padding:0 12px 8px; }
.fm-meldung { display:flex; flex-wrap:wrap; gap:4px 8px; align-items:baseline; padding:8px 12px; margin:0 0 6px; border:1px dashed var(--border); border-left:3px solid #c98500; border-radius:10px; background:var(--card); }
.fm-kind.fm-stoerung { background:#3d2a0b; color:#f0c060; }
.fm-row { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; }
.fm-row label { font-size:13px; color:var(--muted); } .fm-row select { padding:6px 8px; border-radius:8px; border:1px solid var(--border); background:var(--input); color:var(--text); font:inherit; }
.fm-start { display:flex; flex-wrap:wrap; gap:6px; }
.fm-start .fm-link { border-color:var(--border); }
/* Leiste in den Suchergebnissen */
.fm-strip-wrap { margin-top:10px; border-top:1px solid var(--border); padding-top:8px; }
.fm-strip { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:8px 12px; border-radius:10px; background:var(--card2); border:1px solid var(--border); color:var(--text); text-decoration:none; font-size:13.5px; transition:border-color .15s; }
.fm-strip:hover { border-color:var(--accent); } .fm-strip.aktiv { border-left:3px solid var(--accent); }
.fm-strip-text { min-width:0; overflow-wrap:anywhere; } .fm-strip-pfeil { color:var(--link); white-space:nowrap; font-size:12.5px; }
.fm-strip-panel { margin-top:8px; text-align:left; }
.fm-strip-warn { color:#f0c060; }
/* Knöpfe auch auf Seiten ohne Layout-Stylesheet (Startseite/Suche) */
.forum .btn, .fm-cta .btn { display:inline-block; padding:8px 14px; border-radius:8px; border:1px solid var(--btn); background:var(--btn); color:var(--on-accent); text-decoration:none; font:inherit; font-size:14px; font-weight:600; cursor:pointer; }
.forum .btn.ghost, .fm-cta .btn.ghost { background:transparent; color:var(--link); border-color:var(--border); }
.fm-cta .knopfreihe { display:flex; flex-wrap:wrap; gap:8px; }

/* Arten und Sterne (17.10.2026) */
.fm-kind.fm-beschwerde { background:#4a1d1d; color:#ffb4a8; } .fm-kind.fm-lob { background:#173d2c; color:#9ee6c3; } .fm-kind.fm-erfahrung { background:#26324a; color:#c7d6f5; } .fm-kind.fm-hinweis { background:#3a2f4d; color:#d8c4ff; }
.fm-sterne { color:#f2b631; letter-spacing:1px; font-size:16px; white-space:nowrap; } .fm-sterne.klein { font-size:13px; } .fm-sterne .aus { color:#3a4757; }
.fm-sternwahl { display:flex; align-items:center; flex-wrap:wrap; gap:4px 6px; margin:8px 0; padding:8px 12px; border:1px solid var(--border); border-radius:10px; background:var(--card2); }
.fm-sternwahl.fehlt { border-color:#d9592a; } .fm-sternwahl > span:first-child { font-size:13.5px; margin-right:6px; }
.fm-stern { font-size:26px; line-height:1; background:none; border:0; cursor:pointer; color:#3a4757; padding:0 1px; transition:transform .1s, color .1s; } .fm-stern.an { color:#f2b631; } .fm-stern:hover { transform:scale(1.15); }
.fm-bewertung { display:grid; grid-template-columns:auto minmax(160px,1fr) auto; gap:10px 22px; align-items:center; padding:14px 16px; margin:4px 0 14px; border:1px solid var(--border); border-radius:12px; background:var(--card); }
@media (max-width:640px){ .fm-bewertung { grid-template-columns:1fr; } }
.fm-schnitt { display:grid; justify-items:start; gap:2px; } .fm-schnitt b { font-size:32px; line-height:1; }
.fm-vert { display:grid; grid-template-columns:auto 1fr auto; gap:3px 8px; align-items:center; font-size:12.5px; color:var(--muted); }
.fm-vert i { display:block; height:8px; background:var(--card2); border-radius:4px; overflow:hidden; } .fm-vert em { display:block; height:100%; background:#f2b631; }
.fm-bl { display:grid; gap:6px; }

/* Diskussionsleiste in Suchergebnissen prominent (17.10.2026) */
.fm-strip-wrap.oben { margin:12px 0 4px; border-top:0; padding-top:0; }
.fm-strip-wrap.oben .fm-strip { padding:12px 16px; font-size:14.5px; border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); border-left:4px solid var(--accent);
  background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 12%, var(--card2)), var(--card2)); }
.fm-strip-wrap.oben .fm-strip:hover { border-color:var(--accent); }
.fm-strip-wrap.oben .fm-strip-pfeil { font-weight:700; padding:5px 10px; border-radius:8px; background:var(--btn); color:var(--on-accent); }
.fm-strip-sterne { white-space:nowrap; }

/* Aufgeräumt (17.10.2026): eine Leiste, ruhige Listen, klarer Editor */
.forum { font-size:14.5px; }
.fm-head { justify-content:space-between; margin:0 0 14px; gap:10px; }
.fm-chips button { padding:5px 12px; background:transparent; color:var(--muted); }
.fm-chips button i { font-style:normal; font-size:11.5px; margin-left:4px; padding:0 6px; border-radius:999px; background:var(--card2); color:var(--muted); }
.fm-chips button.on { background:var(--soft); color:var(--text); border-color:var(--accent); } .fm-chips button.on i { background:var(--accent); color:var(--on-accent); }
.fm-schreiben { margin-left:auto; }
.fm-cta-zeile { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px 16px; padding:10px 14px; margin:0 0 14px; border-left-width:3px; }
.fm-cta-zeile .knopfreihe { display:flex; gap:8px; } .fm-cta-zeile .btn { padding:6px 12px; font-size:13.5px; }
.fm-bereich { margin:0 0 18px; }
.fm-bereich > h4 { border:0; padding:0; margin:0 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); align-items:center; }
.fm-bereich > h4 .fm-zahl { font-size:11.5px; padding:0 7px; border-radius:999px; background:var(--card2); letter-spacing:0; }
.fm-bereich > h4 .fm-hier { margin-left:auto; text-transform:none; letter-spacing:0; }
.fm-liste { border:1px solid var(--border); border-radius:12px; background:var(--card); overflow:hidden; }
.fm-liste > details.fm-thread { border:0; border-radius:0; margin:0; background:transparent; }
.fm-liste > * + * { border-top:1px solid var(--border) !important; }
.fm-liste > details.fm-thread > summary { border-radius:0; padding:12px 14px; gap:4px 10px; align-items:center; }
.fm-liste > details.fm-thread > summary .fm-meta { flex-basis:100%; padding-left:16px; }
.fm-liste > details.fm-thread[open] > summary { background:var(--soft); }
.fm-liste .fm-thread-in { padding:12px 16px 10px 30px; }
.fm-liste > .fm-meldung { border:0; border-left:3px solid #c98500; border-radius:0; margin:0; padding:12px 14px; }
.fm-leerbox { padding:18px 20px; border:1px dashed var(--border); border-radius:12px; background:var(--card); text-align:center; }
.fm-leerbox p { margin:0 0 12px; color:var(--muted); }
.fm-start { justify-content:center; gap:8px; }
.fm-startknopf { font:inherit; font-size:13.5px; padding:8px 14px; border-radius:10px; border:1px solid var(--border); background:var(--card2); color:var(--text); cursor:pointer; text-decoration:none; transition:border-color .15s, transform .15s; }
.fm-startknopf:hover { border-color:var(--accent); transform:translateY(-1px); }
.fm-new { margin:0 0 16px; }
.fm-new > summary.fm-new-sum { display:none; }
.fm-new[open] { padding:16px 18px; border:1px solid color-mix(in srgb, var(--accent) 45%, var(--border)); border-radius:14px; background:var(--card); }
.fm-new[open]::before { content:'Neuer Beitrag'; display:block; font-weight:700; font-size:15px; margin-bottom:10px; }
.fm-kinds { gap:6px; margin:0 0 6px; }
.fm-kinds label { display:inline-flex; align-items:center; padding:5px 11px; border:1px solid var(--border); border-radius:999px; cursor:pointer; color:var(--text); font-size:13px; background:var(--card2); }
.fm-kinds label:has(input:checked) { border-color:var(--accent); background:var(--soft); font-weight:600; }
.fm-kinds input { position:absolute; opacity:0; pointer-events:none; }
.fm-editor .fm-row { margin-bottom:6px; }
.fm-editor .fm-title { font-weight:600; }
.fm-tools { opacity:.75; } .fm-tools:hover, .fm-tools:focus-within { opacity:1; }
.fm-tools button { min-width:28px; padding:3px 7px; font-size:12.5px; background:transparent; }
.fm-actions { margin-top:6px; }
details.fm-thread > summary .fm-kind { font-size:11px; }

/* Melden und Thema bearbeiten (17.10.2026) */
.fm-melden { margin:8px 0; padding:12px 14px; border:1px solid var(--border); border-left:3px solid #d9592a; border-radius:10px; background:var(--card2); }
.fm-gruende { display:flex; flex-wrap:wrap; gap:6px 14px; margin:8px 0; font-size:13.5px; }
.fm-ok { color:#9ee6c3; margin:0; }
.fm-themaedit .fm-new { padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:var(--card2); margin:8px 0; }
.fm-themaedit .fm-new::before { content:none; }
