/* Fan Messages - frontend (Threads-like) */
.fm-form-wrap, .fm-feed-wrap { max-width: 640px; margin: 16px auto; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; color: #eaeaea; }

/* Form */
.fm-form { background: #111; border: 1px solid #2f2f2f; border-radius: 14px; padding: 16px; box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset; }
.fm-field { margin-bottom: 12px; }
.fm-field label { display:block; font-size: 13px; opacity:.8; margin-bottom: 6px; }
.fm-field input, .fm-field textarea { width: 100%; background: #0b0b0b; border: 1px solid #2f2f2f; color: #fff; border-radius: 12px; padding: 10px 12px; outline: none; }
.fm-field input:focus, .fm-field textarea:focus { border-color: #3a3a3a; }
.fm-field textarea { min-height: 100px; resize: vertical; }
.fm-btn { background: #fff; color: #000; border: none; border-radius: 999px; padding: 10px 16px; font-weight: 600; cursor: pointer; }
.fm-btn:disabled { opacity:.5; cursor: not-allowed; }
.fm-note { font-size: 12px; opacity:.7; margin-top:8px; }

/* Search + Sort controls */
.fm-feed-controls { display:flex; gap:8px; align-items:center; margin-bottom:10px; }
.fm-feed-controls input[type="search"], .fm-feed-controls select { background:#111; border:1px solid #2f2f2f; color:#fff; border-radius:12px; padding:8px 10px; }

/* Force white text for inputs and placeholder */
.fm-form input, .fm-form textarea, .fm-feed-controls input[type="search"] { color:#fff !important; caret-color:#fff; }
.fm-form input::placeholder, .fm-form textarea::placeholder, .fm-feed-controls input[type="search"]::placeholder { color:rgba(255,255,255,.6); }

/* Feed wrapper */
.fm-feed { display:flex; flex-direction: column; gap: 0; border:1px solid #2f2f2f; border-radius: 14px; overflow:hidden; background:#0a0a0a; }

/* Items */
.fm-item { display:flex; gap:12px; padding:14px 16px; border-bottom:1px solid #1d1d1d; }
.fm-item:last-child { border-bottom: none; }
.fm-bubble { flex:1; }
.fm-name { font-weight:700; font-size:14px; display:flex; align-items:center; gap:8px; }
.fm-time { font-size:12px; opacity:.6; }
.fm-text { margin-top:6px; line-height:1.5; white-space: pre-wrap; word-wrap: break-word; font-size:14px; }

.fm-load-more { width:100%; margin-top:10px; }

/* Minimal dark theme compatibility */
:root { color-scheme: dark; }
