/* Fly by Deniz — Connect (front-end). Scoped to .fbd-* so it stays out of theme styles. */
.fbd-flight-search, .fbd-flight-booking, .fbd-flight-confirmation { --fbd-accent: #CCA04A; --fbd-ink:#1f2933; --fbd-muted:#6b7785; --fbd-line:#e4e7eb; font-size:15px; color:var(--fbd-ink); }
.fbd-muted { color: var(--fbd-muted); }

/* Search form */
.fbd-search-form { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; background:#fff; border:1px solid var(--fbd-line); border-radius:14px; padding:16px; }
.fbd-field { display:flex; flex-direction:column; gap:6px; flex:1 1 160px; position:relative; }
.fbd-field.fbd-narrow { flex:0 0 110px; }
.fbd-field.fbd-submit { flex:0 0 auto; }
.fbd-field label { font-size:12px; font-weight:600; color:var(--fbd-muted); text-transform:uppercase; letter-spacing:.03em; }
.fbd-field input, .fbd-field select { padding:10px 12px; border:1px solid var(--fbd-line); border-radius:9px; font-size:15px; background:#fff; }
.fbd-field input:focus, .fbd-field select:focus { outline:none; border-color:var(--fbd-accent); box-shadow:0 0 0 3px color-mix(in srgb, var(--fbd-accent) 25%, transparent); }

/* Autocomplete */
.fbd-ac-list { position:absolute; top:100%; left:0; right:0; z-index:30; background:#fff; border:1px solid var(--fbd-line); border-radius:9px; margin-top:4px; box-shadow:0 8px 24px rgba(0,0,0,.08); display:none; max-height:260px; overflow:auto; }
.fbd-ac-item { padding:9px 12px; cursor:pointer; display:flex; justify-content:space-between; gap:8px; }
.fbd-ac-item:hover { background:#f6f7f9; }
.fbd-ac-code { color:var(--fbd-muted); font-weight:600; font-size:12px; }

/* Buttons */
.fbd-btn { display:inline-block; padding:11px 18px; border-radius:9px; border:1px solid var(--fbd-line); background:#fff; color:var(--fbd-ink); font-weight:600; cursor:pointer; font-size:15px; }
.fbd-btn-primary { background:var(--fbd-accent); border-color:var(--fbd-accent); color:#1a1407; }
.fbd-btn-primary:hover { filter:brightness(.96); }
.fbd-btn[disabled] { opacity:.6; cursor:default; }

/* Status + notices */
.fbd-search-status, .fbd-booking-status { margin:14px 2px; color:var(--fbd-muted); font-size:14px; }
.fbd-notice { padding:14px 16px; background:#fff8e6; border:1px solid #f0e0a8; border-radius:10px; }

/* Results / offer cards */
.fbd-results { display:flex; flex-direction:column; gap:12px; margin-top:8px; }
.fbd-offer { display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--fbd-line); border-radius:14px; padding:16px; }
.fbd-offer-score { display:flex; flex-direction:column; align-items:center; justify-content:center; width:58px; height:58px; border-radius:50%; border:3px solid var(--fbd-accent); flex:0 0 58px; }
.fbd-score-num { font-size:20px; font-weight:700; line-height:1; }
.fbd-score-lbl { font-size:10px; color:var(--fbd-muted); text-transform:uppercase; }
.fbd-offer-main { flex:1 1 auto; }
.fbd-offer-airline { font-weight:700; }
.fbd-offer-flight { color:var(--fbd-muted); font-weight:500; }
.fbd-offer-times { margin-top:2px; }
.fbd-offer-dur, .fbd-offer-stops { color:var(--fbd-muted); }
.fbd-offer-tags { margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; }
.fbd-tag { font-size:12px; padding:3px 9px; border-radius:999px; background:#eef1f4; color:#46535f; }
.fbd-tag-flex { background:#e8f3ec; color:#2f6b46; }
.fbd-offer-buy { text-align:right; display:flex; flex-direction:column; gap:8px; align-items:flex-end; flex:0 0 auto; }
.fbd-offer-price { font-size:20px; font-weight:700; }

/* Booking summary + form */
.fbd-summary { background:#fff; border:1px solid var(--fbd-line); border-radius:14px; padding:16px; margin-bottom:16px; }
.fbd-summary-airline { font-weight:700; } .fbd-summary-airline span { color:var(--fbd-muted); font-weight:500; }
.fbd-summary-route { color:var(--fbd-muted); margin-top:4px; }
.fbd-summary-price { font-size:22px; font-weight:700; margin-top:8px; }
.fbd-booking-form fieldset { border:1px solid var(--fbd-line); border-radius:12px; padding:14px 16px; margin:0 0 14px; }
.fbd-booking-form legend { font-weight:700; padding:0 6px; }
.fbd-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; }
.fbd-grid label { display:flex; flex-direction:column; gap:6px; font-size:13px; font-weight:600; color:var(--fbd-muted); }
.fbd-grid input, .fbd-grid select { padding:10px 12px; border:1px solid var(--fbd-line); border-radius:9px; font-size:15px; color:var(--fbd-ink); }
.fbd-requote { margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.fbd-requote-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; border:1px solid var(--fbd-line); border-radius:10px; background:#fff; }

/* Confirmation */
.fbd-conf { text-align:center; padding:32px 20px; background:#fff; border:1px solid var(--fbd-line); border-radius:16px; }
.fbd-conf-icon { width:56px; height:56px; line-height:56px; border-radius:50%; margin:0 auto 14px; font-size:28px; font-weight:700; }
.fbd-conf-ok .fbd-conf-icon { background:#e8f3ec; color:#2f6b46; }
.fbd-conf-warn .fbd-conf-icon { background:#fff3e0; color:#9a6212; }
.fbd-conf-pnr { font-size:18px; }
.fbd-spinner { width:40px; height:40px; margin:0 auto 16px; border:4px solid var(--fbd-line); border-top-color:var(--fbd-accent); border-radius:50%; animation:fbd-spin 1s linear infinite; }
@keyframes fbd-spin { to { transform:rotate(360deg); } }

@media (max-width:600px){
    .fbd-offer { flex-wrap:wrap; }
    .fbd-offer-buy { width:100%; flex-direction:row; justify-content:space-between; align-items:center; }
}
