/* ==========================================================================
   GAZALI AVIATION — havalimani.css
   Kalkış / varış kutusu (havalimanı önerili açılır liste).
   Yalnız işaretlemesi basılan sayfalarda yüklenir: /teklif ve /kiralama
   (Model: $sayfaCss[] = 'havalimani'). Ortak katman main.css'tedir; bu
   dosya ONUN USTUNE biner.

   ⚠ main.css'TE DEĞİL: bileşen iki sayfada var; ortak katmanda durması her
     sayfaya bedava bayt bindirirdi (parça kataloğundaki .parca* ile aynı
     gerekçe).
   ⚠ FİZİKSEL left/right YOK: liste inset-inline ile hizalanır, RTL'de
     kendiliğinden aynalanır. Etkin seçeneğin çizgisi border-inline-start.
   ⚠ Renkler jetondan; WCAG formülüyle hesaplanan kontrast (beyaz / etkin
     satırın --paper-2 zemini):
       --ink        ad                          18.17:1 / 16.16:1
       --navy-950   IATA kodu, "Listede yok"    15.47:1 / 13.76:1
       --slate-600  şehir · ülke, durum, not     7.53:1 /  6.69:1
     --slate-500 KULLANILMADI (beyazda 4.02:1, AA altında).
   ========================================================================== */

.hav__kutu {
  position: relative;
}

/* Açılır kutu — metin kutusunun hemen altında, onunla aynı genişlikte.
   ⚠ z-index yerel: kapsayıcılar (.wizard, kiralama hero'su) kendi
     katmanını açar; bkz. teklif.css / kiralama.css. */
.hav__acilir {
  position: absolute;
  inset-inline: 0;
  top: calc(100% + 4px);
  z-index: 30;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}

.hav__durum {
  margin: 0;
  padding: 0.65rem 0.9rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--slate-600);
  border-bottom: 1px solid var(--line);
}

/* ⚠ TEK KAYDIRMA ALANI liste: açılır kutu kaymaz, yalnız liste kayar.
   overscroll-behavior: listenin sonunda kaydırma sayfaya zincirlenmesin. */
.hav__liste {
  margin: 0;
  padding: 4px;
  list-style: none;
  max-height: min(21rem, 52vh);
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* ⚠ KOD SÜTUNU GENİŞLİĞİ DEĞİŞKENDE, ŞABLONDA DEĞİL (ölçülmüş kusur,
     2026-09-23): dar ekran kuralı eskiden grid-template-columns'u
     .hav__secenek üzerinde YENİDEN yazıyordu. Aynı özgüllükte ve dosyada
     SONRA geldiği için "Listede yok" satırının tek sütunlu şablonunu da
     eziyordu — 390 px ve altında başlık 44 px'lik kod sütununa sıkışıp
     harf harf kırılıyordu (ölçüldü: başlık 44×122 px, satır 139 px;
     391 px'te 260×20, satır 55). Dar kural artık yalnız --hav-kod'u
     değiştirir; tek sütunlu satır bu değişkeni hiç okumaz, sıraya bağlı
     bir ezilme kalmaz. */
.hav__secenek {
  --hav-kod: 3.25rem;
  display: grid;
  grid-template-columns: var(--hav-kod) minmax(0, 1fr);
  column-gap: 0.75rem;
  align-items: baseline;
  padding: 0.55rem 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.35;
  text-align: start;
  border-inline-start: 3px solid transparent;
  border-radius: 6px;
  cursor: pointer;
}

.hav__secenek + .hav__secenek {
  margin-top: 2px;
}

.hav__secenek:hover,
.hav__secenek.is-aktif {
  background: var(--paper-2);
}

.hav__secenek.is-aktif {
  border-inline-start-color: var(--gold-600);
}

.hav__kod {
  grid-row: 1 / span 2;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--navy-950);
}

/* IATA'sı olmayan meydanın ICAO'su: aynı sütun, daha ince — IATA ile
   karıştırılmasın. */
.hav__kod--icao {
  font-weight: 500;
  font-size: 0.8125rem;
  color: var(--slate-600);
}

.hav__ad {
  font-weight: 500;
  overflow-wrap: anywhere;
}

.hav__yer {
  grid-column: 2;
  font-size: 0.8125rem;
  color: var(--slate-600);
  overflow-wrap: anywhere;
}

/* "Listede yok — yazdığım gibi gönder" — daima sonda; önerilerden bir
   çizgiyle ayrılır (öneri yoksa tek başına, çizgisiz). Kod sütunu yok:
   başlık ve yazılan metin satırın tam genişliğini alır (--hav-kod'a
   bakmaz; bkz. .hav__secenek). */
.hav__secenek--elle {
  grid-template-columns: minmax(0, 1fr);
}

.hav__secenek + .hav__secenek--elle {
  margin-top: 4px;
  border-top: 1px solid var(--line);
  border-start-start-radius: 0;
  border-start-end-radius: 0;
}

.hav__elle-baslik {
  font-weight: 600;
  color: var(--navy-950);
}

.hav__elle-metin {
  font-size: 0.8125rem;
  color: var(--slate-600);
  overflow-wrap: anywhere;
}

.hav__elle-metin:empty {
  display: none;
}

/* Seçimden sonraki durum notu ("listede yok olarak iletilecek"). */
.hav__not {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--slate-600);
}

/* Listeden seçildi — kutunun kenarı durumu söyler (renk TEK işaret değil:
   metin de etiketin kendisi, "Ad (KOD) — Şehir, ÜLKE"). */
.hav--secili .input {
  border-color: var(--navy-700);
}

/* "Listede yok" — serbest metin: kesikli kenar + altında .hav__not metni.
   Biçim farkı (kesikli) renge bağlı değil. */
.hav--elle .input {
  border-style: dashed;
  border-color: var(--slate-600);
}

/* ---- 390 ve altı ---- */
@media (max-width: 390px) {
  .hav__secenek {
    --hav-kod: 2.75rem;   /* şablon DEĞİL — bkz. .hav__secenek */
    column-gap: 0.6rem;
    padding-inline: 0.6rem;
  }
}
