/* ===== Autocomplete (scoped) ===== */
.fdt-autolist{
  position:absolute; top:100%; left:0; right:0;
  background:#fff; border:1px solid #e5e7eb; border-radius:12px;
  box-shadow:0 10px 20px rgba(0,0,0,.08);
  max-height:280px; overflow-y:auto; display:none; z-index:2000;
   z-index: 99999; /* ensure always above */
}
.fdt-autolist .item{ padding:.6rem .8rem; cursor:pointer; }
.fdt-autolist .item:hover, .fdt-autolist .item.active{ background:#fff7db; }
.fdt-title{ font-weight:700; color:#111827; }
.fdt-sub{ font-size:.86rem; color:#6b7280; }
.fdt-hi{ background:#ffefb3; padding:0 .1rem; }

/* Mobile: JS sets position/size */
@media (max-width: 576px) {
  .fdt-autolist{
    position:fixed;
    max-height:60vh;
    z-index:5000;
  }
  .fdt-autolist .item{ padding:1rem; font-size:1rem; }
}

/* ===== Route pill (scoped) ===== */
.fdt-routepill{
  display:inline-flex; align-items:center; gap:.6rem;
  background:#fff; border:1px solid #e5e7eb; border-radius:999px;
  padding:.5rem 1rem; color:#444;
  box-shadow:0 6px 16px rgba(0,0,0,.06);
}
.fdt-dot{ width:8px; height:8px; border-radius:999px; background:#e6b318; box-shadow:0 0 0 5px rgba(230,179,24,.25); }

/* ===== Compact, centered estimate ===== */
.fdt-estimate{
  max-width:720px; margin:12px auto 0; background:#fff;
  border:1px solid #e5e7eb; border-radius:16px;
  box-shadow:0 10px 22px rgba(0,0,0,.06);
  padding:16px 18px;
}
.fdt-estimate .fdt-title{
  text-align:center; font-weight:900; font-size:1.25rem; color:#111827; margin-bottom:8px;
}
.fdt-metrics{ display:flex; justify-content:center; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:8px; }
.fdt-pill{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid #e5e7eb; border-radius:999px; padding:6px 10px;
  font-weight:700; color:#2b2b2b; background:#fff;
}
.fdt-k{ color:#6b7280; font-weight:600; }
.fdt-v{ font-weight:800; }
.fdt-fare{ text-align:center; margin-top:4px; }
.fdt-fare .fdt-label{ color:#6b7280; font-weight:600; font-size:.95rem; margin-bottom:2px; }
.fdt-fare .fdt-price{ font-size:2rem; font-weight:900; color:#111827; line-height:1.1; }
.fdt-notes{ text-align:center; color:#6b7280; font-size:.9rem; margin-top:4px; }

/* ===== Validation helpers (submit-time) ===== */
.fdt-invalid{
  border-color:#dc3545 !important;
  box-shadow:0 0 0 .2rem rgba(220,53,69,.15) !important;
}
.fdt-error{
  color:#dc3545; font-size:.9rem; margin-top:.25rem;
}
