/* Harita keşif arayüzü — koyu-nötr panel, sade görsel dil. */

:root {
  --zemin: #14201F;
  --zemin-koyu: #0E1817;
  --zemin-acik: #1C2B2A;
  --metin: #E7F0EE;
  --metin-soluk: #9DB3AF;
  --vurgu: #1F9D55;
  --vurgu-2: #2AB3A6;
  --kolay: #D9A23B;
  --gri: #9AA8A8;
  --cizgi: #263736;
  --turuncu: #F0A868;
}

* { 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: #5FD394; }
.rozet.vize-kolay { background: rgba(217, 162, 59, 0.16); color: #E7BE6E; }
.rozet.vize-vizeli { background: rgba(154, 168, 168, 0.15); color: var(--gri); }
.rozet.vize-vizenle { background: rgba(76, 143, 214, 0.18); color: #7EB3E8; } /* v1.2 — mavi, vizesiz yeşilinden ayrık */
.rozet.direkt { background: rgba(42, 179, 166, 0.16); 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: #7EB3E8; }

/* 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: dark; /* takvim/ay seçici koyu temada okunur kalsın */
}

.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: #5FD394;
}

.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: #FFD9A8;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.rozet.cikis-firsati {
  background: rgba(42, 179, 166, 0.16);
  color: var(--vurgu-2);
}

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

.firsat-normal strong { color: #5FD394; }

.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(42, 179, 166, 0.10);
  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: 12px;
  font-weight: 600;
  color: var(--metin);
  background: var(--zemin-koyu);
  border: 1px solid var(--vurgu-2);
  border-radius: 999px;
  padding: 2px 8px;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.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(0, 0, 0, 0.4);
}

.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: #5FD394; }
.popup-vize.vize-kolay { color: #E7BE6E; }
.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; }
