/* ===== Custom dropdowns (replaces native selects) ===== */
.fm-dropdown { position: relative; flex: 1 1 auto; min-width: 0; }
.fm-dropdown select[data-fm-dropdown] { position: absolute; opacity: 0; pointer-events: none; width: 100%; height: 100%; top: 0; left: 0; }
.fm-dd-trigger {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  padding: 10px 14px; border-radius: 10px; cursor: pointer;
  background: var(--fm-dd-bg, var(--surface-card, #fff));
  border: 1px solid var(--fm-dd-border, var(--border-subtle, #d8e2dd));
  color: var(--fm-dd-text, var(--ink-body, #0f172a));
  font-size: 0.9rem; font-weight: 500; text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.fm-dd-trigger:hover { border-color: var(--brand-primary, #0f4c3a); }
.fm-dropdown.open .fm-dd-trigger { border-color: var(--brand-primary, #0f4c3a); box-shadow: 0 0 0 3px rgba(15,76,58,0.12); }
.fm-dd-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fm-dd-label.is-placeholder { color: var(--fm-dd-muted, var(--ink-muted, #64748b)); }
.fm-dd-chev { width: 8px; height: 8px; flex-shrink: 0; border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform 0.2s ease; opacity: 0.6; }
.fm-dropdown.open .fm-dd-chev { transform: rotate(225deg) translateY(-2px); }
.fm-dd-panel {
  color: var(--ink-body, #334155);
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 100;
  background: var(--fm-dd-bg, var(--surface-card, #fff));
  border: 1px solid var(--fm-dd-border, var(--border-subtle, #d8e2dd));
  border-radius: 12px; box-shadow: 0 18px 50px rgba(0,0,0,0.16);
  opacity: 0; transform: translateY(-6px); pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  overflow: hidden; min-width: 200px;
}
.fm-dd-panel.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.fm-dd-panel.fm-dd-fixed { position: fixed; z-index: 1050; }
.fm-dd-search { width: 100%; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--fm-dd-border, var(--border-subtle, #d8e2dd));
  background: transparent; color: inherit; font-size: 0.85rem; outline: none; }
.fm-dd-search::placeholder { color: var(--fm-dd-muted, var(--ink-muted, #64748b)); }
.fm-dd-options { max-height: 260px; overflow-y: auto; padding: 6px;
  scrollbar-width: thin; scrollbar-color: rgba(15,76,58,.35) transparent; }
.fm-dd-options:hover { scrollbar-color: rgba(15,76,58,.3) transparent; }
.fm-dd-options::-webkit-scrollbar { width: 5px; }
.fm-dd-options::-webkit-scrollbar-thumb { background: rgba(15,76,58,.35); border-radius: 99px; }
.fm-dd-options:hover::-webkit-scrollbar-thumb { background: rgba(15,76,58,.3); }
.fm-dd-group { font-size: 0.68rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--fm-dd-muted, var(--ink-muted, #64748b)); padding: 8px 10px 4px; }
.fm-dd-option { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 9px 10px; border-radius: 8px; cursor: pointer; font-size: 0.88rem; }
.fm-dd-option:hover, .fm-dd-option.highlighted { background: rgba(15,76,58,0.08); }
[data-theme="dark"] .fm-dd-option:hover, [data-theme="dark"] .fm-dd-option.highlighted { background: rgba(16,185,129,0.12); }
.fm-dd-option { color: var(--ink-body, #334155); }
.fm-dd-option.selected { font-weight: 700; color: var(--brand-primary, #0f4c3a); }
.fm-dd-option[data-value=""] .fm-dd-check { display: none; }
.fm-dd-check { width: 16px; height: 16px; flex-shrink: 0; opacity: 0; color: var(--brand-primary, #0f4c3a); }
.fm-dd-option.selected .fm-dd-check { opacity: 1; }
.fm-dd-no-results { padding: 14px; text-align: center; font-size: 0.85rem; color: var(--fm-dd-muted, var(--ink-muted, #64748b)); }
/* Admin theme */
.fm-dropdown.adm .fm-dd-trigger { background: var(--adm-input-bg); border-color: var(--adm-border); color: var(--adm-text); }
.fm-dropdown.adm .fm-dd-panel { background: var(--adm-panel); border-color: var(--adm-border); }
.fm-dropdown.adm .fm-dd-search { border-bottom-color: var(--adm-border); color: var(--adm-text); }
.fm-dropdown.adm .fm-dd-option.selected { color: var(--adm-accent); }
.fm-dropdown.adm .fm-dd-check { color: var(--adm-accent); }
