/* Harita keşif arayüzü — navy-açık tema (18 Ağu v2: kurucu "navy tarz, açık tonlar"). */

:root {
  --zemin: #f7fafd;        /* panel zemini — kırık beyaz, mavi esintili */
  --zemin-koyu: #e9eff6;   /* sayfa zemini + girdiler */
  --zemin-acik: #ffffff;   /* kartlar/vurgulu yüzeyler */
  --metin: #1c3450;        /* koyu lacivert */
  --metin-soluk: #5d7189;
  --vurgu: #1F9D55;        /* eylem yeşili (marka) */
  --vurgu-2: #33719f;      /* lacivert vurgu — bağlantı/çerçeve */
  --kolay: #a5761d;
  --gri: #7c8b9c;
  --cizgi: #d7e0ea;
  --turuncu: #d97f3e;
}

* { box-sizing: border-box; }

html, body {
  height: 100%;
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background: var(--zemin-koyu);
  color: var(--metin);
}

#uygulama {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

#ana {
  flex: 1;
  display: flex;
  min-height: 0;
}

/* ---------- panel ---------- */

#panel {
  width: 360px;
  flex: none;
  display: flex;
  flex-direction: column;
  background: var(--zemin);
  border-right: 1px solid var(--cizgi);
  min-height: 0;
}

#panel-baslik {
  padding: 12px 16px 8px;
}

#marka {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.28em;
  color: var(--vurgu);
  margin-bottom: 2px;
  user-select: none;
}

#panel-baslik-satir {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
}

#panel-baslik h1 {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.2px;
}

#sonuc-sayisi {
  font-size: 13px;
  color: var(--vurgu-2);
}

#filtreler {
  padding: 4px 16px 12px;
  border-bottom: 1px solid var(--cizgi);
}

.filtre-grup { margin-bottom: 12px; }
.filtre-grup:last-child { margin-bottom: 0; }

.filtre-etiket {
  font-size: 12px;
  color: var(--metin-soluk);
  margin-bottom: 6px;
}

.chipler {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.chip {
  font: inherit;
  font-size: 13px;
  color: var(--metin-soluk);
  background: var(--zemin-acik);
  border: 1px solid var(--cizgi);
  border-radius: 999px;
  padding: 4px 12px;
  cursor: pointer;
}

.chip.aktif {
  color: #FFFFFF;
  background: var(--vurgu);
  border-color: var(--vurgu);
}

.anahtar {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  cursor: pointer;
}

.anahtar input { accent-color: var(--vurgu); }

#maks-fiyat {
  width: 100%;
  accent-color: var(--vurgu-2);
}

#maks-fiyat-deger { color: var(--metin); }

/* ---------- liste ---------- */

#liste {
  flex: 1;
  overflow-y: auto;
  margin: 0;
  padding: 0;
  list-style: none;
  min-height: 0;
}

.satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 16px;
  border-bottom: 1px solid var(--cizgi);
  cursor: pointer;
}

.satir:hover { background: var(--zemin-acik); }

.satir-sol {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.satir-sol strong {
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ulke {
  font-size: 12px;
  color: var(--metin-soluk);
}

.satir-sag {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: none;
}

.fiyat {
  font-size: 14px;
  font-weight: 700;
  color: var(--metin);
}

.rozet {
  font-size: 11px;
  padding: 2px 7px;
  border-radius: 999px;
  white-space: nowrap;
}

.rozet.vize-vizesiz { background: rgba(31, 157, 85, 0.18); color: #157a43; }
.rozet.vize-kolay { background: rgba(217, 162, 59, 0.16); color: #9a6d16; }
.rozet.vize-vizeli { background: rgba(154, 168, 168, 0.15); color: var(--gri); }
.rozet.vize-vizenle { background: rgba(76, 143, 214, 0.18); color: #2f6cb3; } /* v1.2 — mavi, vizesiz yeşilinden ayrık */
.rozet.direkt { background: rgba(51, 113, 159, 0.14); color: var(--vurgu-2); }
.rozet.yok { background: rgba(154, 168, 168, 0.12); color: var(--metin-soluk); }

/* otel katmanı (K3) */

.rozet.yalniz-ucus {
  background: rgba(154, 168, 168, 0.12);
  color: var(--metin-soluk);
  opacity: 0.75;
}

.rozet.test-verisi {
  background: rgba(224, 138, 60, 0.2);
  color: var(--turuncu);
}

/* tazelik (docs/05 §4): 10-15 gün arası bant soluk + "eski veri" notu */

.rozet.eski-veri {
  background: rgba(240, 168, 104, 0.16);
  color: var(--turuncu);
}

.bant-eski { opacity: 0.6; }

.satir-sag-otel {
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.kirilim {
  font-size: 11px;
  color: var(--metin-soluk);
  white-space: nowrap;
}

.not-orneklem {
  font-size: 10.5px;
  font-style: italic;
  color: var(--metin-soluk);
}

.rozet-satir {
  display: flex;
  gap: 6px;
}

.satir.veri-yok {
  cursor: default;
  opacity: 0.55;
}

.satir.veri-yok:hover { background: transparent; }

/* ---------- "Vizem var" v1.2 (docs/07) ---------- */

:root { --vizenle: #4C8FD6; }

.popup-vize.vize-vizenle { color: #2f6cb3; }

/* tarihli öneri vize bitişinden sonra dönüyorsa: soluk + uyarı rozeti (öneri gizlenmez) */
.satir.vize-dolmus { opacity: 0.55; }

.rozet.vize-dolmus-rozet {
  background: rgba(240, 168, 104, 0.16);
  color: var(--turuncu);
  white-space: normal;
}

/* Vizelerim — katlanır bölüm */

#vizelerim summary {
  font-size: 12px;
  color: var(--metin-soluk);
  cursor: pointer;
  user-select: none;
  margin-bottom: 6px;
}

#vizelerim[open] summary { color: var(--metin); }

.vize-profil-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 3px 0;
}

.vize-tarih {
  font: inherit;
  font-size: 12px;
  color: var(--metin);
  background: var(--zemin-acik);
  border: 1px solid var(--cizgi);
  border-radius: 6px;
  padding: 2px 6px;
  color-scheme: light; /* takvim/ay seçici açık temayla uyumlu */
}

.vize-bilgi {
  font-size: 11.5px;
  color: var(--turuncu);
  margin-top: 4px;
}

.vize-gizlilik-notu {
  font-size: 11px;
  color: var(--metin-soluk);
  margin-top: 6px;
}

/* ---------- çoklu şehir (K4) ---------- */

#mod-secici {
  display: flex;
  gap: 6px;
  margin-top: 8px;
}

#mod-secici[hidden] { display: none; }

.mod-sekme {
  font: inherit;
  font-size: 12.5px;
  color: var(--metin-soluk);
  background: var(--zemin-acik);
  border: 1px solid var(--cizgi);
  border-radius: 6px;
  padding: 4px 10px;
  cursor: pointer;
}

.mod-sekme.aktif {
  color: #FFFFFF;
  background: var(--vurgu);
  border-color: var(--vurgu);
}

#combo-liste {
  flex: 1;
  overflow-y: auto;
  margin: 0;
  padding: 10px 12px 14px;
  list-style: none;
  min-height: 0;
}

#combo-liste[hidden] { display: none; }

.combo-kart {
  background: var(--zemin-acik);
  border: 1px solid var(--cizgi);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 10px;
  cursor: pointer;
  font-size: 12.5px;
  line-height: 1.45;
}

.combo-kart:hover { border-color: var(--vurgu-2); }

.combo-kart.secili {
  border-color: var(--vurgu);
  box-shadow: 0 0 0 1px var(--vurgu);
}

.combo-baslik {
  font-size: 13.5px;
  font-weight: 700;
  margin-bottom: 4px;
}

.combo-rozetler {
  display: flex;
  gap: 6px;
  margin-bottom: 6px;
}

.rozet.temsili {
  background: rgba(240, 168, 104, 0.16);
  color: var(--turuncu);
}

/* tarih-uyum v1 (docs/06 §8.3): uyumlu kart rozeti + başlık altı seyahat aralığı */

.rozet.uyumlu {
  background: rgba(31, 157, 85, 0.18);
  color: #157a43;
}

.combo-aralik {
  font-size: 12px;
  font-weight: 600;
  color: var(--vurgu-2);
  margin: -2px 0 5px;
}

.bacaklar {
  list-style: none;
  margin: 0 0 6px;
  padding: 0;
}

.bacak {
  padding: 3px 0;
  border-bottom: 1px dashed var(--cizgi);
}

.bacak:last-child { border-bottom: none; }

.bacak-rota {
  display: block;
  font-weight: 600;
}

.bacak-detay {
  display: block;
  font-size: 12px;
  color: var(--metin-soluk);
}

.bacak-link {
  color: var(--vurgu-2);
  font-weight: 600;
  text-decoration: none;
}

.bacak-link:hover { text-decoration: underline; }

.combo-toplam { margin-top: 2px; }

.combo-otel { margin-top: 2px; }

.combo-otel .kirilim {
  margin-left: 6px;
  white-space: normal;
}

.combo-kiyas {
  margin-top: 4px;
  color: var(--metin-soluk);
}

.combo-temsili-not {
  margin-top: 4px;
  font-style: italic;
  color: var(--metin-soluk);
}

/* silinemez ayrı-bilet uyarısı (docs/06 §1) — her kartta */
.combo-uyari {
  margin-top: 8px;
  padding: 6px 8px;
  border-left: 3px solid var(--turuncu);
  border-radius: 0 6px 6px 0;
  background: rgba(240, 168, 104, 0.10);
  color: var(--turuncu);
  font-size: 11.5px;
}

.combo-damga {
  margin-top: 6px;
  font-size: 11px;
  color: var(--metin-soluk);
}

/* süre varyantları v1.1 (docs/06 §8.5): seçili süre için varyantı olmayan combo soluk */

.combo-kart.combo-yok { opacity: 0.55; }

.combo-yok-not {
  margin-top: 2px;
  font-style: italic;
  color: var(--metin-soluk);
  font-size: 12px;
}

.combo-bos {
  padding: 14px 4px;
  color: var(--metin-soluk);
  font-size: 13px;
}

/* ---------- Fırsat Motoru (docs/08 §4) ---------- */

#firsat-liste {
  flex: 1;
  overflow-y: auto;
  margin: 0;
  padding: 10px 12px 14px;
  list-style: none;
  min-height: 0;
}

#firsat-liste[hidden] { display: none; }

.firsat-kart {
  background: var(--zemin-acik);
  border: 1px solid var(--cizgi);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 12px;
  font-size: 12.5px;
  line-height: 1.45;
}

.firsat-baslik {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 4px;
}

.firsat-tarih {
  font-weight: 400;
  color: var(--metin-soluk);
}

/* turuncu-yeşil FIRSAT rozeti (docs/08 §4) */
.rozet.firsat-rozet {
  background: linear-gradient(100deg, rgba(240, 168, 104, 0.32), rgba(31, 157, 85, 0.32));
  color: #8a5a1f;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rozet.cikis-firsati {
  background: rgba(51, 113, 159, 0.14);
  color: var(--vurgu-2);
}

.firsat-normal {
  font-size: 12.5px;
  color: var(--metin);
  margin-top: 2px;
}

.firsat-normal strong { color: #157a43; }

.firsat-damga {
  font-size: 11px;
  color: var(--metin-soluk);
  margin-top: 2px;
}

.firsat-rota-etiket {
  font-size: 11.5px;
  color: var(--metin-soluk);
  margin: 8px 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.firsat-rotalar {
  list-style: none;
  margin: 0;
  padding: 0;
}

/* rota kartı combo kart düzenini yeniden kullanır; iç içe olduğundan zemin bir ton koyu */
.combo-kart.firsat-rota {
  background: var(--zemin);
  cursor: pointer;
}

/* fırsat bacağı satırı vurgulu (firsat_bacagi_index — docs/08 §4) */
.bacak.bacak-firsat {
  border-left: 3px solid var(--turuncu);
  padding-left: 8px;
  margin: 2px 0;
  background: linear-gradient(100deg, rgba(240, 168, 104, 0.10), rgba(31, 157, 85, 0.10));
  border-radius: 0 6px 6px 0;
}

.firsat-yok-not {
  margin-top: 8px;
  font-style: italic;
  color: var(--metin-soluk);
  font-size: 12px;
}

/* v2.1 (docs/08 §7.2): seçili şehir sayısında rotası olmayan fırsat kartı soluk —
   bacak bilgisi + linki yine görünür (combo-yok kalıbıyla aynı ton) */
.firsat-kart.firsat-sehir-yok { opacity: 0.55; }

/* v2.1 (docs/08 §7.1): direkt gidiş-dönüş kıyası — uçuş toplamının hemen altında
   belirgin satır; yüzde iddiası yok, kıyası kullanıcı yapar */
.firsat-direkt-kiyas {
  margin-top: 2px;
  padding: 3px 8px;
  border-left: 3px solid var(--vurgu-2);
  border-radius: 0 6px 6px 0;
  background: rgba(51, 113, 159, 0.09);
  color: var(--metin);
  font-size: 12px;
}

.firsat-direkt-kiyas strong { color: var(--vurgu-2); }

/* kara alternatifi v0-lite (docs/08 §4): eşleşen bacağın altında soluk satır */
.kara-satir {
  font-size: 11px;
  color: var(--metin-soluk);
  opacity: 0.85;
  margin-top: 1px;
}

.kara-damga { font-style: italic; }

/* ---------- harita ---------- */

#harita {
  flex: 1;
  min-width: 0;
}

.fiyat-rozet {
  font: inherit;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.2px;
  color: var(--metin);
  background: rgba(255, 255, 255, 0.93); /* açık stil üstünde yarı saydam beyaz */
  border: 1px solid rgba(51, 113, 159, 0.45);
  border-radius: 999px;
  padding: 2px 9px;
  backdrop-filter: blur(2px);
  box-shadow: 0 2px 8px rgba(28, 52, 80, 0.18);
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(28, 52, 80, 0.15);
}

.fiyat-rozet:hover { border-color: var(--vurgu); }

/* popup — koyu tema */

.maplibregl-popup-content {
  background: var(--zemin);
  color: var(--metin);
  border-radius: 8px;
  padding: 12px 14px;
  box-shadow: 0 2px 10px rgba(28, 52, 80, 0.18);
}

.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,
.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip { border-top-color: var(--zemin); }
.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,
.maplibregl-popup-anchor-top-right .maplibregl-popup-tip { border-bottom-color: var(--zemin); }
.maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: var(--zemin); }
.maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: var(--zemin); }

.maplibregl-popup-close-button {
  color: var(--metin-soluk);
  font-size: 16px;
  padding: 2px 6px;
}

.popup-icerik { font-size: 13px; line-height: 1.5; }

.popup-baslik {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 2px;
}

.popup-ulke {
  font-size: 12px;
  font-weight: 400;
  color: var(--metin-soluk);
  margin-left: 6px;
}

.popup-fiyat {
  font-size: 17px;
  font-weight: 700;
  color: var(--vurgu-2);
  margin-bottom: 4px;
}

.popup-ucus {
  font-size: 12px;
  font-weight: 400;
  color: var(--metin-soluk);
  margin-left: 6px;
}

.popup-satir { color: var(--metin); }
.popup-vize.vize-vizesiz { color: #157a43; }
.popup-vize.vize-kolay { color: #9a6d16; }
.popup-vize.vize-vizeli { color: var(--gri); }

.popup-link {
  display: inline-block;
  margin-top: 8px;
  color: var(--vurgu-2);
  font-weight: 600;
  text-decoration: none;
}

.popup-link:hover { text-decoration: underline; }

.soluk { color: var(--metin-soluk); }

/* ---------- alt bilgi ---------- */

#altbilgi {
  flex: none;
  padding: 7px 16px;
  font-size: 11.5px;
  color: var(--metin-soluk);
  background: var(--zemin);
  border-top: 1px solid var(--cizgi);
}

/* ---------- hata sayfası ---------- */

#hata {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

#hata[hidden] { display: none; }

#hata-kutu {
  max-width: 480px;
  background: var(--zemin);
  border: 1px solid var(--cizgi);
  border-radius: 10px;
  padding: 24px 28px;
}

#hata-kutu h2 { margin: 0 0 10px; font-size: 18px; }

#hata-kutu p { margin: 8px 0; font-size: 14px; line-height: 1.5; }

#hata-kutu pre {
  background: var(--zemin-koyu);
  border: 1px solid var(--cizgi);
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 13px;
  overflow-x: auto;
}

#hata-kutu code {
  background: var(--zemin-koyu);
  padding: 1px 5px;
  border-radius: 4px;
}

/* ---------- mobil ---------- */

@media (max-width: 768px) {
  #ana { flex-direction: column; }

  #harita {
    order: -1;
    flex: none;
    height: 46vh;
  }

  #panel {
    width: 100%;
    flex: 1;
    border-right: none;
    border-top: 1px solid var(--cizgi);
  }

  #altbilgi { font-size: 10.5px; }
}

/* v2.1 netlik: filtre etiketi ipucu (ör. "Kaç şehir gezilsin? (İstanbul hariç)") */
.etiket-ipucu { color: var(--metin-soluk, #9DB3AF); font-weight: 400; font-size: 0.85em; }

/* Beta yayını rozeti */
.beta-rozet { font-size: 10px; letter-spacing: .1em; color: var(--zemin); background: var(--vurgu-2, #2AB3A6); border-radius: 4px; padding: 2px 6px; vertical-align: 2px; font-weight: 700; }

/* Ara bacak fırsatları (docs/08 §11) — kompakt satır listesi */
.ara-bacak-baslik { margin-top: 14px; padding: 8px 2px 4px; border-top: 1px solid var(--cizgi); list-style: none; }
.ara-bacak-baslik strong { font-size: 13px; color: var(--metin); }
.ara-bacak-aciklama { display: block; font-size: 11px; color: var(--metin-soluk); margin-top: 3px; line-height: 1.45; }
.ara-bacak-satir { display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
  padding: 6px 2px; border-bottom: 1px dashed var(--cizgi); font-size: 12px; list-style: none; }
.ara-bacak-rota { color: var(--metin); }
.ara-bacak-detay { color: var(--metin-soluk); white-space: nowrap; }
.ara-bacak-detay a { color: var(--vurgu-2); text-decoration: none; }
.firsat-rozet-mini { color: #a3831a; }

/* ---------- 18 Ağu birleşme + görsel dil temeli (docs/13) ---------- */

:root {
  --fs-fiyat: 19px; --fs-baslik: 15px; --fs-govde: 13px; --fs-detay: 12px; --fs-mikro: 11px;
  --b2: 8px; --b3: 12px; --b4: 16px;
  --r-kucuk: 6px; --r-kart: 12px; --r-hap: 999px;
  --golge-1: 0 1px 2px rgba(28, 52, 80, 0.06);
  --golge-2: 0 4px 14px rgba(28, 52, 80, 0.10);
}

#deger-satiri {
  margin: 2px 0 0;
  font-size: var(--fs-detay);
  color: var(--metin-soluk);
}

/* Rotalar kip segmenti: sekme (navigasyon) ve chip'ten (filtre) ayrı üçüncü dil —
   kapatılamaz ikili seçim */
#rota-kip-secici {
  display: flex;
  margin-top: var(--b2);
  border: 1px solid var(--cizgi);
  border-radius: var(--r-kucuk);
  overflow: hidden;
  width: fit-content;
}
#rota-kip-secici[hidden] { display: none; }
.kip-dugme {
  font: inherit;
  font-size: var(--fs-detay);
  padding: 4px 14px;
  border: none;
  background: var(--zemin-acik);
  color: var(--metin-soluk);
  cursor: pointer;
}
.kip-dugme + .kip-dugme { border-left: 1px solid var(--cizgi); }
.kip-dugme.aktif { background: var(--vurgu-2); color: #fff; }

/* yükleme iskeleti */
.satir.iskelet { cursor: default; }
.iskelet-cizgi {
  height: 12px;
  width: 90%;
  border-radius: var(--r-kucuk);
  background: var(--cizgi);
  animation: iskelet-puls 1.2s ease-in-out infinite;
}
@keyframes iskelet-puls { 0%, 100% { opacity: 0.5; } 50% { opacity: 1; } }

/* yıldız fırsat spotlight'ı */
.spotlight-kart {
  display: flex;
  align-items: flex-start;
  gap: var(--b2);
  margin: var(--b2) var(--b3);
  padding: 10px 12px;
  background: var(--zemin-acik);
  border: 1px solid var(--vurgu-2);
  border-radius: var(--r-kart);
  box-shadow: var(--golge-2);
  cursor: pointer;
}
.spotlight-kart:hover { box-shadow: var(--golge-2), 0 0 0 2px rgba(51, 113, 159, 0.15); }
.spotlight-icerik { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.spotlight-icerik strong { font-size: var(--fs-baslik); color: var(--metin); }
.spotlight-rozet {
  align-self: flex-start;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.6px;
  color: #fff;
  background: var(--vurgu);
  border-radius: var(--r-hap);
  padding: 1px 8px;
}
.spotlight-alt { font-size: var(--fs-mikro); color: var(--metin-soluk); }
.spotlight-cta { font-size: var(--fs-detay); color: var(--vurgu-2); font-weight: 600; }
.spotlight-kapat {
  margin-left: auto;
  background: none;
  border: none;
  color: var(--metin-soluk);
  cursor: pointer;
  font-size: 13px;
  padding: 0 2px;
}
.spotlight-kapat:hover { color: var(--metin); }

/* ---------- 18 Ağu redesign (docs/13 v2): harita = sahne, panel = katman ---------- */

:root {
  --firsat: #0d9488;   /* turkuaz — fırsat hapları / %20 dilimi */
  --nadir: #c9971c;    /* amber — yüzdelik/izleme ailesi */
  --fs-buyuk: 20px; --fs-dev: 28px;
  --r-buyuk: 16px;
  --golge-3: 0 12px 40px rgba(28, 52, 80, 0.16);
}

#ana { display: block; }

#harita { position: fixed; inset: 0; z-index: 0; }

#panel {
  position: absolute;
  top: 12px; left: 12px; bottom: 12px;
  width: 372px;
  z-index: 20;
  border-radius: var(--r-buyuk);
  background: rgba(247, 250, 253, 0.94);
  backdrop-filter: blur(14px);
  border: 1px solid var(--cizgi);
  box-shadow: var(--golge-3);
  overflow: hidden;
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
body.panel-dar #panel { transform: translateX(calc(-100% - 24px)); }

#panel-kulak {
  position: absolute;
  top: 50%; left: 384px;
  transform: translateY(-50%);
  z-index: 21;
  width: 26px; height: 64px;
  border: 1px solid var(--cizgi);
  border-radius: 0 10px 10px 0;
  background: rgba(247, 250, 253, 0.94);
  color: var(--metin-soluk);
  font-size: 15px;
  cursor: pointer;
  transition: left 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: var(--golge-1);
}
#panel-kulak:hover { color: var(--metin); }
body.panel-dar #panel-kulak { left: 0; border-radius: 0 10px 10px 0; }

/* altbilgi → sağ altta yüzen mini damga kartı */
#altbilgi {
  position: fixed;
  right: 12px; bottom: 34px;
  z-index: 15;
  max-width: 330px;
  font-size: var(--fs-mikro);
  line-height: 1.5;
  color: var(--metin-soluk);
  background: rgba(247, 250, 253, 0.92);
  border: 1px solid var(--cizgi);
  border-radius: 10px;
  padding: 6px 10px;
  box-shadow: var(--golge-1);
}

/* ---------- fiyat hapları (balon) ---------- */

.balon {
  position: relative;
  font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  letter-spacing: 0.2px;
  color: var(--metin);
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(51, 113, 159, 0.4);
  border-radius: var(--r-hap);
  padding: 4px 10px;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(28, 52, 80, 0.18);
  white-space: nowrap;
}
.balon:hover { transform: scale(1.12); z-index: 30; box-shadow: var(--golge-2); }
.balon--firsat {
  background: var(--firsat);
  border-color: var(--firsat);
  color: #fff;
}
.balon-glif { margin-left: 4px; opacity: 0.75; font-weight: 400; }
.balon .ipucu {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--metin);
  color: #fff;
  font-weight: 400;
  font-size: var(--fs-mikro);
  border-radius: 8px;
  padding: 6px 9px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s;
  z-index: 40;
}
.balon:hover .ipucu { opacity: 1; }

/* mini efsane */
#harita-efsane {
  position: fixed;
  left: 12px; bottom: 34px;
  z-index: 15;
  font-size: var(--fs-mikro);
  color: var(--metin-soluk);
  background: rgba(247, 250, 253, 0.92);
  border: 1px solid var(--cizgi);
  border-radius: 10px;
  padding: 5px 10px;
  box-shadow: var(--golge-1);
  display: flex;
  gap: 10px;
  align-items: center;
  transition: left 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
body:not(.panel-dar) #harita-efsane { left: 396px; }
.efsane-nokta { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 4px; vertical-align: -1px; }

/* ---------- detay katmanı ---------- */

#detay-katman {
  position: absolute;
  inset: 0;
  z-index: 25;
  background: var(--zemin);
  transform: translateX(-102%);
  transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
}
#detay-katman.acik { transform: translateX(0); }
#detay-katman[hidden] { display: none; }

.detay-baslik {
  position: sticky; top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: rgba(247, 250, 253, 0.96);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--cizgi);
}
.detay-geri {
  border: 1px solid var(--cizgi);
  background: var(--zemin-acik);
  color: var(--metin);
  border-radius: var(--r-kucuk);
  width: 30px; height: 30px;
  font-size: 15px;
  cursor: pointer;
  flex: none;
}
.detay-geri:hover { border-color: var(--vurgu-2); }
.detay-baslik-metin { min-width: 0; }
.detay-baslik-metin h2 { margin: 0; font-size: var(--fs-baslik); line-height: 1.25; }
.detay-baslik-alt { font-size: var(--fs-detay); color: var(--metin-soluk); margin-top: 2px; }

.detay-govde { padding: 14px; }
.detay-toplam { font-size: var(--fs-dev); font-weight: 700; letter-spacing: -0.4px; }
.detay-toplam-alt { font-size: var(--fs-detay); color: var(--metin-soluk); margin-top: 2px; }
.detay-bolum { margin-top: 20px; }
.detay-bolum-baslik {
  font-size: var(--fs-mikro);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: var(--metin-soluk);
  margin-bottom: 8px;
}

/* süre radio-satır tablosu */
.sure-secenek { display: block; }
.sure-secenek input { position: absolute; opacity: 0; pointer-events: none; }
.sure-secenek .sure-kutu {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  border: 1px solid var(--cizgi);
  border-radius: var(--r-kucuk);
  background: var(--zemin-acik);
  padding: 9px 12px;
  margin-bottom: 8px;
  cursor: pointer;
  font-size: var(--fs-govde);
}
.sure-secenek input:checked + .sure-kutu {
  border-color: var(--vurgu-2);
  box-shadow: 0 0 0 1px var(--vurgu-2);
}
.sure-kutu strong { font-size: 14px; }
.sure-kutu .sure-tarih { color: var(--metin-soluk); font-size: var(--fs-detay); }

/* rota timeline */
.rota-zaman { list-style: none; margin: 0; padding: 0 0 0 18px; border-left: 2px solid var(--cizgi); }
.rota-zaman > li { position: relative; padding: 0 0 14px 14px; }
.rota-zaman .dugum-nokta {
  position: absolute;
  left: -27px; top: 0;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--vurgu-2);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.rota-zaman .dugum-sehir { font-weight: 600; font-size: 14px; }
.rota-zaman .dugum-alt { font-size: var(--fs-detay); color: var(--metin-soluk); margin-top: 1px; }
.rota-ucus-satir {
  font-size: var(--fs-detay);
  color: var(--metin-soluk);
  background: var(--zemin-acik);
  border: 1px dashed var(--cizgi);
  border-radius: var(--r-kucuk);
  padding: 6px 9px;
  margin: 8px 0;
}
.rota-ucus-satir a { color: var(--vurgu-2); text-decoration: none; }

/* yapışkan CTA çubuğu */
.detay-cta {
  position: sticky; bottom: 0;
  background: rgba(247, 250, 253, 0.96);
  backdrop-filter: blur(8px);
  border-top: 1px solid var(--cizgi);
  padding: 10px 14px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.detay-cta .birincil {
  flex: 1;
  text-align: center;
  background: var(--vurgu);
  color: #fff;
  font-weight: 600;
  font-size: var(--fs-govde);
  border: none;
  border-radius: 10px;
  padding: 10px 12px;
  text-decoration: none;
  cursor: pointer;
}
.detay-cta .birincil:hover { filter: brightness(1.07); }
.detay-damga-notu { font-size: 10.5px; color: var(--metin-soluk); }

/* mobil: panel alta iner (basit v1 — bottom sheet sonraki evre) */
@media (max-width: 760px) {
  #panel { top: auto; left: 8px; right: 8px; bottom: 8px; width: auto; height: 52vh; }
  #panel-kulak { display: none; }
  #harita-efsane { display: none; }
  #altbilgi { display: none; }
}

/* direkt-ağ düğmesi (docs/15) */
#direkt-ag-dugme {
  position: fixed;
  top: 12px; right: 52px;
  z-index: 15;
  font: 600 12px/1 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--metin-soluk);
  background: rgba(247, 250, 253, 0.94);
  border: 1px solid var(--cizgi);
  border-radius: var(--r-hap);
  padding: 7px 12px;
  cursor: pointer;
  box-shadow: var(--golge-1);
}
#direkt-ag-dugme:hover { color: var(--metin); }
#direkt-ag-dugme.aktif { background: var(--vurgu-2); border-color: var(--vurgu-2); color: #fff; }
@media (max-width: 760px) { #direkt-ag-dugme { display: none; } }

/* transit vize rehberi (docs/15) */
.transit-uyari {
  border: 1px solid rgba(217, 162, 59, 0.5);
  background: rgba(217, 162, 59, 0.08);
  border-radius: var(--r-kucuk);
  padding: 8px 10px;
  font-size: var(--fs-detay);
}
.transit-uyari summary { cursor: pointer; color: #9a6d16; font-weight: 600; }
.transit-icerik { margin-top: 8px; display: flex; flex-direction: column; gap: 5px; }
.transit-kural { color: var(--metin); font-size: var(--fs-detay); line-height: 1.45; }

/* vize başvuru kanalı satırı (docs/14 Faz 1) */
.vize-kanal { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--cizgi); font-size: var(--fs-detay); }
.vize-kanal a { color: var(--vurgu-2); text-decoration: none; }
