/* ==================================================================
   Wayfare — arayüz
   Editoryal seyahat dergisi hissi: başlıklarda değişken serif, arayüzde
   Inter. Mobil öncelikli; masaüstünde program + harita iki sütun.
   Tüm ölçüler token — mobil uygulamaya taşınırken ölçek korunur.
================================================================== */
:root{
  /* Palet: sıcak kum kâğıt, deniz mürekkebi metin, lagün turkuazı vurgu,
     gün batımı mercanı ikincil. Önceki palet derin orman yeşili + krem idi:
     doğru ama her seyahat sitesinin yaptığı şey. Zemin artık sarıya değil
     kuma, metin ise yeşile değil denize çalıyor.

     ANLAM KORUNUR: --acc aynı zamanda "doğrulandı" rozetinin rengi, o yüzden
     yeşil ailesinde kaldı; --warn topluluk/uyarı altını, tahmin nötr. */
  --bg:#fbf6ee; --surface:#fff; --surface-2:#f4ece0; --surface-3:#e9dfd0;
  --ink:#17242e; --ink-2:#54646f; --ink-3:#67737b;
  --line:#e7dccb; --line-2:#d5c7b3;
  --acc:#0e7a6a;            /* lagün — güven, su */
  --acc-2:#b7522c;          /* gün batımı — vurgu */
  --acc-ink:#fff; --acc-soft:#e3f1ed; --acc2-soft:#fbeae0;
  --warn:#87611a; --warn-soft:#faf0d8;
  --r-xs:6px; --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:26px;
  --sh-1:0 1px 2px rgba(20,33,30,.04);
  --sh-2:0 1px 2px rgba(20,33,30,.04),0 10px 30px -18px rgba(20,33,30,.30);
  --sh-3:0 2px 6px rgba(20,33,30,.05),0 24px 60px -28px rgba(20,33,30,.38);
  --bar:60px;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
}
html[data-theme="dark"]{
  /* Karanlık tema gece gökyüzü: yeşile çalan siyah yerine lacivert.
     (--ink-2 eskiden İKİ KEZ tanımlıydı; ilkinin hex'inde Kiril 'а' vardı,
     tarayıcı o satırı geçersiz sayıp atıyordu. Tek ve doğru satır kaldı.) */
  --bg:#0a1420; --surface:#101e2c; --surface-2:#16283a; --surface-3:#1e3346;
  --ink:#eaf1f5; --ink-2:#9fb2bf; --ink-3:#72889a;
  --line:#1c2e40; --line-2:#2a415a;
  --acc:#45c3a8; --acc-2:#f08a5d;
  --acc-ink:#07121c; --acc-soft:#0e2f2a; --acc2-soft:#33211a;
  --warn:#d9b95f; --warn-soft:#2c2513;
  --sh-2:0 1px 2px rgba(0,0,0,.4),0 14px 34px -20px rgba(0,0,0,.9);
  --sh-3:0 2px 6px rgba(0,0,0,.5),0 30px 70px -30px rgba(0,0,0,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.015em}
a{color:var(--acc)}
.shell{max-width:1280px;margin:0 auto;padding:0 22px}
.hidden{display:none!important}
.muted{color:var(--ink-2)}
.small{font-size:12.5px;line-height:1.55}
code{background:var(--surface-2);padding:1px 6px;border-radius:5px;font-size:12px}

/* ---------- app bar ---------- */
.appbar{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:saturate(1.7) blur(14px);border-bottom:1px solid var(--line)}
.appbar-in{max-width:1280px;margin:0 auto;padding:0 22px;height:var(--bar);
  display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.mark{width:32px;height:32px;border-radius:11px;background:var(--acc);color:#fff;
  display:grid;place-items:center;box-shadow:var(--sh-1)}
.wordmark{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:-.02em}
.appbar-act{display:flex;align-items:center;gap:8px}

/* ---------- kontroller ---------- */
button,select,input{font:inherit;color:inherit}
button{cursor:pointer;border-radius:var(--r-sm);border:1px solid var(--line-2);
  background:var(--surface);padding:10px 17px;transition:.15s ease}
button:hover{border-color:var(--acc);transform:translateY(-1px)}
button:active{transform:none}
button.primary{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);font-weight:600;
  box-shadow:0 6px 18px -8px color-mix(in srgb,var(--acc) 70%,transparent)}
button.primary:hover{filter:brightness(1.08)}
button.lg{padding:13px 28px;font-size:15px;border-radius:var(--r)}
button.ghost{background:transparent}
button.tiny{padding:5px 11px;font-size:12.5px;position:absolute;top:14px;right:14px}
button.icon{padding:9px 12px}
.pill{border-radius:999px;padding:7px 14px;font-size:12.5px;background:var(--surface-2);border-color:var(--line);
  letter-spacing:.02em}
.pill.live{border-color:var(--acc);color:var(--acc);background:var(--acc-soft)}
.pill.partial{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}
/* `width:auto`: genel input/select kuralı %100 veriyor, üst çubuktaki esnek
   satırda kutu daralıyor ve en uzun dil adı kırpılıyordu ("Español" →
   "Españo", ok işareti metnin üstünde). İçeriğe göre genişlesin. */
select.mini{padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--line-2);
  background:var(--surface);width:auto;flex:none;max-width:100%}
input,select{padding:11px 13px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--surface);width:100%;transition:.15s}
input:hover,select:hover{border-color:var(--line-2)}
input:focus,select:focus{outline:none;border-color:var(--acc);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 16%,transparent)}
input[type=checkbox]{width:auto;accent-color:var(--acc)}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:20px;box-shadow:var(--sh-1)}
.card h2{margin-bottom:15px;font-size:14px;text-transform:uppercase;letter-spacing:.09em;
  color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* ---------- hero ---------- */
.hero{position:relative;padding:52px 0 44px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(70% 90% at 12% 0%, color-mix(in srgb,var(--acc) 15%,transparent) 0%, transparent 62%),
    radial-gradient(60% 80% at 92% 12%, color-mix(in srgb,var(--acc-2) 13%,transparent) 0%, transparent 58%);
  pointer-events:none}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:44px;align-items:center}
.hero-copy h1{font-family:var(--serif);font-size:clamp(30px,4.2vw,50px);line-height:1.08;
  letter-spacing:-.03em;white-space:pre-line;font-weight:600}
.lede{margin:18px 0 0;font-size:16px;color:var(--ink-2);max-width:44ch;line-height:1.65}

.panel{position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-xl);padding:26px;box-shadow:var(--sh-3)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:13px;margin-bottom:13px}
.fgrid.four{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
label.f{display:flex;flex-direction:column;gap:6px}
label.f>span{font-size:11px;color:var(--ink-2);font-weight:600;text-transform:uppercase;letter-spacing:.07em}
.more{border-top:1px solid var(--line);margin-top:16px;padding-top:14px}
.more>summary{cursor:pointer;font-size:13.5px;color:var(--acc);font-weight:600;list-style:none;
  padding:3px 0;user-select:none;display:flex;align-items:center;gap:7px}
.more>summary::-webkit-details-marker{display:none}
.more>summary::before{content:'+';display:inline-grid;place-items:center;width:18px;height:18px;
  border-radius:50%;background:var(--acc-soft);font-size:13px;line-height:1}
.more[open]>summary::before{content:'−'}
.more-in{padding-top:16px}
.switches{display:flex;flex-wrap:wrap;gap:11px 20px;margin:6px 0 4px}
.sw{display:flex;align-items:center;gap:8px;font-size:13.5px;cursor:pointer}
.taglabel{font-size:11px;color:var(--ink-2);font-weight:600;text-transform:uppercase;
  letter-spacing:.07em;margin:18px 0 0}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.chip{border:1px solid var(--line-2);background:var(--surface);padding:7px 14px;border-radius:999px;
  cursor:pointer;font-size:13px;user-select:none;transition:.14s;white-space:nowrap}
.chip:hover{border-color:var(--acc);transform:translateY(-1px)}
.chip.on{background:var(--acc);border-color:var(--acc);color:var(--acc-ink);font-weight:500}
.cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:22px}
.cta.bottom{margin:28px 0 10px}
.hint{color:var(--ink-2);font-size:13px}

/* ---------- gezi başlığı ---------- */
#trip{padding-top:26px}
.triphead{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;
  flex-wrap:wrap;margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.route-line{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  font-family:var(--serif);font-size:clamp(21px,2.6vw,30px);font-weight:600;letter-spacing:-.025em}
.route-line .arw{color:var(--ink-3);font-family:var(--sans);font-weight:400;font-size:.7em}
.route-line em{font-style:normal;font-family:var(--sans);font-size:11.5px;color:var(--ink-2);
  font-weight:500;letter-spacing:0}
.trip-sub{color:var(--ink-2);font-size:13.5px;margin-top:8px}
.trip-stats{display:flex;gap:26px;flex-wrap:wrap}
.tstat b{display:block;font-family:var(--serif);font-size:23px;letter-spacing:-.02em;line-height:1.15;font-weight:600}
.tstat span{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);font-weight:500}
.tstat.hi b{color:var(--acc)}

/* ---------- çalışma alanı ---------- */
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:26px;align-items:start}
.pane-side{position:sticky;top:calc(var(--bar) + 18px);display:flex;flex-direction:column;gap:18px;
  max-height:calc(100vh - var(--bar) - 36px);overflow:auto;padding-bottom:6px;scrollbar-width:thin}
.pane-side::-webkit-scrollbar{width:7px}
.pane-side::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}

/* ---------- gün çubuğu ---------- */
.daybar{position:sticky;top:var(--bar);z-index:20;display:flex;gap:8px;overflow-x:auto;
  padding:14px 0 16px;background:linear-gradient(var(--bg) 68%,transparent);scrollbar-width:none}
.daybar::-webkit-scrollbar{display:none}
.dchip{border:1px solid var(--line-2);background:var(--surface);border-radius:999px;
  padding:8px 15px;font-size:13px;white-space:nowrap;cursor:pointer;display:flex;gap:8px;align-items:center}
.dchip .dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.dchip.on{border-color:var(--acc);background:var(--acc-soft);font-weight:600}

/* ---------- gün ---------- */
.day{margin-bottom:34px;scroll-margin-top:calc(var(--bar) + 62px)}
.dayhead{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:14px}
.dayno{background:var(--ink);color:var(--bg);border-radius:7px;padding:4px 10px;
  font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.dayhead .dt{font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:-.02em}
.dayhead .city{color:var(--acc);font-size:12px;font-weight:600;background:var(--acc-soft);
  padding:4px 11px;border-radius:999px;letter-spacing:.01em}
.brief{background:var(--acc2-soft);border-left:3px solid var(--acc-2);padding:11px 15px;
  border-radius:0 var(--r) var(--r) 0;font-size:14px;margin:0 0 14px;font-family:var(--serif);
  font-weight:400;line-height:1.5}
.note{font-size:12.5px;color:var(--ink-2);background:var(--surface-2);padding:9px 13px;
  border-radius:var(--r-sm);margin:0 0 10px}
.transfer{background:var(--acc-soft);border-left:3px solid var(--acc);padding:11px 15px;
  border-radius:0 var(--r) var(--r) 0;font-size:13px;margin:0 0 14px}

/* ---------- durak kartı ---------- */
.stops{position:relative}
.stops::before{content:'';position:absolute;left:15px;top:16px;bottom:16px;width:1px;
  background:var(--line-2)}
.stop{position:relative;display:grid;grid-template-columns:32px 1fr;gap:16px;padding:13px 0}
.stop-rail{display:flex;flex-direction:column;align-items:center;gap:7px;padding-top:2px}
.pin{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  color:#fff;font-size:11.5px;font-weight:700;flex:0 0 auto;box-shadow:0 0 0 4px var(--bg)}
.pin.plain{background:var(--surface-3);color:var(--ink-3);box-shadow:0 0 0 4px var(--bg)}
.stop-body{display:flex;gap:15px;align-items:flex-start;min-width:0}
.stop-txt{min-width:0;flex:1}
.stop-time{font-variant-numeric:tabular-nums;font-size:11.5px;color:var(--ink-3);
  font-weight:600;letter-spacing:.04em;margin-bottom:2px}
.stop-name{font-weight:600;font-size:15.5px;letter-spacing:-.015em;line-height:1.35}
.stop-why{color:var(--ink-2);font-size:13px;margin-top:4px;line-height:1.55}
.stop-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px;font-size:11.5px;align-items:center}
.m{background:var(--surface-2);border-radius:var(--r-xs);padding:3px 9px;color:var(--ink-2);white-space:nowrap}
.m.price{color:var(--acc);font-weight:650;background:var(--acc-soft)}
.m.rate{color:var(--warn);font-weight:600;background:var(--warn-soft)}
.m.ok{color:var(--acc);background:var(--acc-soft);font-weight:600;text-decoration:none}
.m.ok:hover{text-decoration:underline}
.thumb{width:94px;height:94px;border-radius:var(--r);object-fit:cover;flex:0 0 auto;
  background:var(--surface-2);border:1px solid var(--line)}
.tip{background:var(--warn-soft);border-left:3px solid var(--warn);padding:8px 12px;
  border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:12.5px;margin-top:9px}
.stop.filler .stop-name{color:var(--ink-2);font-weight:500}

/* ---------- harita ---------- */
.map-card{padding:0;overflow:hidden}
#map{height:352px;width:100%;background:var(--surface-2)}
.map-legend{display:flex;gap:11px;flex-wrap:wrap;padding:11px 16px;border-top:1px solid var(--line);font-size:11.5px}
.map-legend span{display:flex;align-items:center;gap:5px;color:var(--ink-2)}
.map-legend i{width:9px;height:9px;border-radius:50%}
.leaflet-container{font:inherit;background:var(--surface-2)}
.numpin{border-radius:50%;color:#fff;font-weight:700;font-size:11px;display:grid;place-items:center;
  box-shadow:0 2px 6px rgba(0,0,0,.35);border:2px solid #fff}

/* ---------- bütçe ---------- */
.chart{display:flex;height:10px;border-radius:99px;overflow:hidden;margin-bottom:12px;background:var(--surface-2)}
.chart i{display:block;height:100%}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11.5px;margin-bottom:14px}
.legend span{display:flex;align-items:center;gap:5px;color:var(--ink-2)}
.legend i{width:9px;height:9px;border-radius:3px}
table.budget{width:100%;border-collapse:collapse;font-size:13px}
table.budget th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.09em;
  color:var(--ink-3);padding:7px 0;border-bottom:1px solid var(--line);font-weight:600}
table.budget td{padding:9px 0;border-bottom:1px solid var(--line);vertical-align:top}
table.budget td:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-left:10px}
table.budget .d{color:var(--ink-3);font-size:11.5px;display:block;margin-top:3px;line-height:1.45}
table.budget tr.grp td{font-weight:650;background:var(--surface-2);font-size:12px;
  text-transform:uppercase;letter-spacing:.05em;padding:8px 9px}
table.budget tr.grp td:last-child{padding-right:9px}
table.budget tr.tot td{font-weight:700;font-size:16px;border-bottom:0;padding-top:13px;
  font-family:var(--serif)}

/* ---------- oteller / uçuşlar ---------- */
.hcity{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--acc);
  font-weight:700;margin:18px 0 7px}
.hcity:first-child{margin-top:0}
.hot{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.hot:first-of-type{border-top:0}
.hot b{font-size:13.5px;font-weight:600}
.hot .w{color:var(--ink-3);font-size:11.5px;margin-top:3px;line-height:1.45}
.hot .p{white-space:nowrap;text-align:right}
.hot .p b{color:var(--acc);font-size:15px;font-family:var(--serif)}
.flight{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-top:1px solid var(--line)}
.flight:first-of-type{border-top:0}
.flight .leg{font-size:13px;display:flex;gap:9px;flex-wrap:wrap;align-items:baseline}
.flight .car{color:var(--ink-3);font-size:11.5px}
.flight .pr{text-align:right;white-space:nowrap}
.flight .pr b{font-size:17px;color:var(--acc);display:block;font-family:var(--serif)}
.flight .pr small{color:var(--ink-3);font-size:11px;display:block}
.flight.best{background:var(--acc-soft);border-radius:var(--r);padding:13px;margin:3px 0;border-top:0}

/* ---------- bildirimler ---------- */
.notice{border-radius:var(--r);padding:13px 16px;margin:0 0 12px;font-size:13px;
  display:flex;gap:11px;align-items:flex-start;line-height:1.55}
.notice.info{background:var(--acc-soft);border-left:3px solid var(--acc)}
.notice.warn{background:var(--warn-soft);border-left:3px solid var(--warn)}
.notice ul{margin:7px 0 0;padding-left:18px}
.notice li{margin:4px 0}
.notice a{color:inherit}
.srcbadge{font-size:10px;font-weight:600;color:var(--acc);background:var(--acc-soft);
  padding:3px 9px;border-radius:999px;text-transform:none;letter-spacing:0}
.srcbadge.est{color:var(--ink-3);background:var(--surface-2)}
.tips{margin:0;padding-left:18px;font-size:13px;color:var(--ink-2);line-height:1.6}
.tips li{margin:8px 0}
.disclaimer{font-size:11.5px;color:var(--ink-3);line-height:1.65;margin:18px 0 50px}

/* ---------- kaynak paneli ---------- */
.srcpanel{background:var(--surface);border-bottom:1px solid var(--line);padding:22px 0 26px}
.srcpanel h3{font-family:var(--serif);font-size:19px;margin-bottom:6px}
.srcgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:13px;margin:16px 0}
.srccard{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px}
.srccard h4{margin:0 0 9px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--acc)}
.srccard .row2{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:3px 0}
.st{font-size:11px;white-space:nowrap}
.st.on{color:var(--acc);font-weight:600}
.st.off{color:var(--ink-3)}
.st.gate{color:var(--warn)}

/* ---------- yükleniyor ---------- */
.overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 92%,transparent);
  display:grid;place-items:center;align-content:center;gap:14px;z-index:80;backdrop-filter:blur(4px)}
.overlay p{margin:0;color:var(--ink-2);font-size:14.5px}
.compass{width:42px;height:42px;border-radius:50%;border:2px solid var(--line-2);
  position:relative;display:grid;place-items:center}
.compass span{width:3px;height:17px;background:var(--acc);border-radius:2px;
  transform-origin:center;animation:sweep 1.4s cubic-bezier(.5,0,.5,1) infinite}
@keyframes sweep{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}

/* ---------- duyarlı ---------- */
@media(max-width:1040px){
  .workspace{grid-template-columns:1fr}
  .pane-side{position:static;max-height:none;overflow:visible;order:-1}
  #map{height:280px}
}
@media(max-width:900px){
  .hero{padding:34px 0 28px}
  .hero-in{grid-template-columns:1fr;gap:26px}
  .lede{max-width:none}
  .triphead{align-items:flex-start}
}
@media(max-width:600px){
  .shell{padding:0 15px}
  .appbar-in{padding:0 15px}
  .panel{padding:18px;border-radius:var(--r-lg)}
  .card{padding:16px;border-radius:var(--r)}
  .stop{grid-template-columns:28px 1fr;gap:11px}
  .stops::before{left:13px}
  .pin{width:24px;height:24px;font-size:11px}
  .thumb{width:72px;height:72px}
  .trip-stats{width:100%;justify-content:space-between;gap:14px}
  .tstat b{font-size:18px}
  .cta button{flex:1 1 auto}
  .wordmark{font-size:19px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
/* ==================================================================
   Yazdırma ve PDF.

   Buradaki en önemli satır ilki. Uygulama koyu temadayken `body`yi
   beyaza boyamak yetmiyordu: metin, kenarlık ve rozet renkleri hâlâ
   koyu tema değişkenlerinden geliyordu, yani beyaz kâğıda açık gri
   yazı basılıyordu — okunmayan bir PDF. Değişkenlerin TAMAMI kâğıt
   için yeniden tanımlanıyor, tema ne olursa olsun.

   İkinci ilke: kâğıda GEZİ basılır, uygulama değil. Form, arama
   kutusu, düğmeler, harita, konuşma çubuğu, oy ve bildirim bağlantıları
   —hiçbiri kâğıtta işe yaramaz— çıkarıldı. Kalan şey program, bütçe,
   uçuşlar ve giriş kuralları.
================================================================== */
@media print{
  /* Kâğıt her zaman açık paletle basılır. `html` seçicisi tema
     özniteliğinden daha güçlü olsun diye `!important` kullanılıyor:
     `html[data-theme="dark"]` daha belirgin bir seçici. */
  html, html[data-theme="dark"]{
    --bg:#fff!important; --surface:#fff!important; --surface-2:#fff!important;
    --surface-3:#f3f3f3!important;
    --ink:#111!important; --ink-2:#3d3d3d!important; --ink-3:#666!important;
    --line:#ddd!important; --line-2:#c9c9c9!important;
    --acc:#0f5a4a!important; --acc-2:#a44f28!important;
    --acc-ink:#fff!important; --acc-soft:#eef4f2!important; --acc2-soft:#faefe9!important;
    --warn:#7a5c14!important; --warn-soft:#f7f1de!important;
    --sh-1:none!important; --sh-2:none!important; --sh-3:none!important;
  }
  body{background:#fff}

  /* Ekrana ait olan, kâğıda ait olmayan her şey. */
  .appbar,.hero,.cta,.srcpanel,.map-card,.daybar,.overlay,.flashbar,.verifybar,
  .tailorbar,.tailorout,.intakebar,.modal-back,.cm-add,.cm-acts,.poproutes,
  .rvbox>summary,.acbox,.thumb,.sharedhead button{display:none!important}

  /* Paylaşılan gezinin başlığı kâğıtta kutu olmaktan çıkıp belgenin
     başlığı olur: renkli zemin ve kenarlık mürekkep harcar, kâğıtta
     "burası tıklanabilir bir kutu" demenin de bir anlamı yok. */
  .sharedhead{background:none!important;border:0!important;padding:0!important;margin-bottom:14px}

  /* Topluluk kutuları kapalı olsa bile içerikleri basılsın: kâğıtta
     tıklayıp açacak kimse yok. */
  details{display:block}
  details>summary{display:none}

  .workspace{grid-template-columns:1fr;gap:0}
  .pane-side{position:static;margin-top:18px}

  /* Sayfa sonu: bir gün ikiye bölünmemeli, bölünecekse başlığı
     yanında kalmalı. */
  .card,.day,.stop,.entrycard,.flight{break-inside:avoid;box-shadow:none}
  .day h3,.card h2{break-after:avoid}

  /* Renkli rozetler yazıcıda gri tonuna düşerse "doğrulandı" ile
     "tahmini" ayırt edilemez hale gelir. Tarayıcıya rengi basmasını
     söylüyoruz; basmazsa metin zaten farklı ("doğrulandı" / "tahmini"). */
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}

  a{text-decoration:none;color:inherit}
  @page{margin:14mm}
}

.mini-spin{width:15px;height:15px;border:2px solid var(--line-2);border-top-color:var(--acc);
  border-radius:50%;animation:sweep .9s linear infinite;flex:0 0 auto;margin-top:2px}

/* ---------- gezgin yorumları ---------- */
.rvbox{margin-top:10px;border-top:1px dashed var(--line);padding-top:9px}
.rvbox>summary{cursor:pointer;font-size:12px;color:var(--acc);font-weight:600;list-style:none;
  user-select:none;display:inline-flex;align-items:center;gap:6px}
.rvbox>summary::-webkit-details-marker{display:none}
.rvbox>summary::before{content:'“';font-family:var(--serif);font-size:20px;line-height:0;
  position:relative;top:5px}
.rv-topics{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 8px}
.rv-lab{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.rv-chip{background:var(--surface-2);border-radius:999px;padding:3px 9px;font-size:11.5px;color:var(--ink-2)}
.rv-chip b{color:var(--ink);font-weight:600}
blockquote.rv{margin:9px 0 0;padding:0 0 0 12px;border-left:2px solid var(--line-2);font-size:12.5px;
  color:var(--ink-2);line-height:1.55}
.rv-stars{color:var(--warn);font-size:11px;letter-spacing:.5px;display:block}
.rv-text{display:block;margin:3px 0 4px}
blockquote.rv cite{font-style:normal;font-size:11px;color:var(--ink-3)}

/* ---------- hedef önerisi ---------- */
.combo{position:relative;display:block}
.acbox{position:absolute;z-index:40;top:calc(100% + 5px);left:0;right:0;margin:0;padding:5px;
  list-style:none;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r);
  box-shadow:var(--sh-3);max-height:290px;overflow:auto;display:none}
.acbox.open{display:block}
.acbox li{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--r-sm);
  cursor:pointer;font-size:14px}
.acbox li:hover,.acbox li.sel{background:var(--surface-2)}
.acbox .ic{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;
  background:var(--surface-2);font-size:11px;flex:0 0 auto}
.acbox li.cur .ic{background:var(--acc);color:var(--acc-ink)}
.acbox .tx{min-width:0;flex:1}
.acbox .tx b{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acbox .tx span{font-size:11.5px;color:var(--ink-3)}
.acbox .badge{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--acc);
  background:var(--acc-soft);padding:2px 7px;border-radius:999px;font-weight:700;flex:0 0 auto}
.acbox .empty{color:var(--ink-3);font-size:12.5px;padding:9px 10px;cursor:default}

/* ---------- modal ---------- */
.modal-back{position:fixed;inset:0;background:rgba(10,18,16,.55);backdrop-filter:blur(3px);
  z-index:90;display:grid;place-items:center;padding:20px;overflow:auto}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--sh-3);width:min(440px,100%);padding:22px}
.modal.wide{width:min(620px,100%)}
.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.modal-head h3{font-family:var(--serif);font-size:21px}
.stack{display:flex;flex-direction:column;gap:13px}
.stack textarea{padding:11px 13px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--surface);width:100%;resize:vertical;font:inherit;line-height:1.5}
.stack textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 16%,transparent)}
.formerr{color:var(--acc-2);font-size:13px;min-height:1px}
.ratepick{display:flex;gap:4px;align-items:center}
.star{background:none;border:0;font-size:26px;line-height:1;color:var(--line-2);padding:2px;transition:.1s}
.star:hover,.star.on{color:var(--warn);transform:none}
.mine{display:flex;flex-direction:column;gap:10px;max-height:44vh;overflow:auto}
.minerow{border:1px solid var(--line);border-radius:var(--r);padding:10px 13px;font-size:13px}

/* ---------- topluluk ---------- */
.cmbox{margin-top:9px;border-top:1px dashed var(--line);padding-top:9px}
.cmbox>summary{cursor:pointer;font-size:12px;color:var(--acc-2);font-weight:650;list-style:none;user-select:none}
.cmbox>summary::-webkit-details-marker{display:none}
.cmbox>summary::before{content:'👥 '}
blockquote.cm-rev{margin:10px 0 0;padding:0 0 0 12px;border-left:2px solid var(--acc-2);
  font-size:12.5px;color:var(--ink-2);line-height:1.55}
blockquote.cm-rev cite{font-style:normal;font-size:11px;color:var(--ink-3);display:block;margin-top:3px}
.cm-tip{margin-top:9px;font-size:12.5px;color:var(--ink-2);display:flex;gap:7px;
  align-items:baseline;flex-wrap:wrap;line-height:1.5}
.cm-acts{display:inline-flex;gap:10px;margin-left:2px}
.linkbtn{background:none;border:0;padding:0;font-size:11px;color:var(--ink-3);
  text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.linkbtn:hover{color:var(--acc);transform:none}
.linkbtn.strong{color:var(--acc-2);font-weight:650;text-decoration:none}
.cm-add{display:flex;gap:14px;margin-top:11px}
.m.com{color:var(--acc-2);background:var(--acc2-soft);font-weight:600}

/* ---------- doğrulama / bilgi şeritleri ---------- */
.verifybar,.flashbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:10px 22px;font-size:13px;border-bottom:1px solid var(--line)}
.verifybar{background:var(--warn-soft);color:var(--ink)}
.flashbar.ok{background:var(--acc-soft)}
.flashbar.warn{background:var(--warn-soft)}
.flashbar a{word-break:break-all;font-size:12px}

/* ---------- paylaşılan gezi ---------- */
.sharedhead{background:var(--acc-soft);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:22px 24px;margin:4px 0 18px}
.sharedhead h2{font-family:var(--serif);font-size:24px;text-transform:none;letter-spacing:-.02em;
  color:var(--ink);margin-bottom:6px}
.sharedhead .lede{margin:0 0 8px;font-size:14.5px}
.sharedhead button{margin-top:12px}
.sharerow{display:flex;gap:8px}
.sharerow input{font-size:13px}
h4.sect{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);
  margin:14px 0 2px;font-weight:700}
h4.sect:first-of-type{margin-top:0}
.m.ok{color:var(--acc);background:var(--acc-soft)}

/* ---------- rezervasyon listesi ---------- */
.bkprog{margin:12px 0 14px}
.bkbar{height:6px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-bottom:7px}
.bkbar i{display:block;height:100%;background:var(--acc);transition:width .25s}
.bkrow{display:grid;grid-template-columns:20px 1fr auto;gap:11px;align-items:start;
  padding:11px 0;border-top:1px solid var(--line);cursor:pointer}
.bkrow:first-of-type{border-top:0}
.bkrow.done .bktx b{text-decoration:line-through;color:var(--ink-3)}
.bkrow input{margin-top:3px}
.bktx{display:flex;flex-direction:column;gap:2px;min-width:0}
.bktx b{font-size:13.5px;font-weight:600}
.bknote{font-size:11px;color:var(--ink-3);font-style:italic}
.bkright{display:flex;flex-direction:column;gap:5px;align-items:flex-end;white-space:nowrap}

/* ---------- benzer gezginlerin rotaları ---------- */
.poproutes{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:18px 20px;margin-bottom:18px;box-shadow:var(--sh-1)}
.poproutes h3{font-size:15.5px;margin:0 0 4px;letter-spacing:-.01em}
.poproutes .pr-sub{margin:0 0 14px;font-size:13px;color:var(--ink-2);line-height:1.55}
.pr-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 0;
  border-top:1px solid var(--line)}
.pr-path{font-weight:600;font-size:14.5px}
.pr-path .pr-leg{white-space:nowrap}
.pr-path .pr-arrow{color:var(--ink-3);margin:0 6px}
.pr-share{font-size:11.5px;font-weight:700;background:var(--acc-soft);color:var(--acc);
  padding:3px 9px;border-radius:999px;white-space:nowrap}
.pr-row button{margin-left:auto;font-size:13px;padding:7px 14px}
.pr-current{font-size:12px;color:var(--ink-3);white-space:nowrap;margin-left:auto}

/* ---------- yorum fotoğrafları ---------- */
.rv-pics{display:flex;gap:6px;margin:8px 0 4px;flex-wrap:wrap}
.rv-pic{width:64px;height:64px;border-radius:10px;background-size:cover;background-position:center;
  border:1px solid var(--line);display:block;transition:.15s ease}
.rv-pic:hover{transform:scale(1.06);border-color:var(--acc)}
.photopick{display:flex;flex-direction:column;gap:4px;cursor:pointer;
  border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:12px 14px}
.photopick:hover{border-color:var(--acc)}
.photopick > span{font-weight:600;font-size:13.5px}
.photorow{display:flex;gap:7px;flex-wrap:wrap}
.photothumb{width:56px;height:56px;border-radius:9px;background-size:cover;background-position:center;
  border:1px solid var(--line)}

/* ---------- giriş / kayıt penceresi ---------- */
.authform .fgrid.two{grid-template-columns:1fr 1fr;gap:13px;margin-bottom:0}
@media(max-width:420px){.authform .fgrid.two{grid-template-columns:1fr}}
.pwrow{position:relative;display:flex}
.pwrow input{padding-right:74px}
.pweye{position:absolute;right:5px;top:50%;transform:translateY(-50%);background:none;border:0;
  padding:6px 9px;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink-3);border-radius:var(--r-sm)}
.pweye:hover{color:var(--acc);border-color:transparent;transform:translateY(-50%)}
.pwnote{font-size:12px;color:var(--ink-3);line-height:1.5;margin:0}
.pwnote.caps{color:var(--warn);font-weight:600}
.pwmeter{display:flex;gap:4px;margin-top:2px}
.pwmeter i{flex:1;height:3px;border-radius:2px;background:var(--line-2);transition:.2s}
.pwmeter[data-score="1"] i:nth-child(-n+1){background:var(--acc-2)}
.pwmeter[data-score="2"] i:nth-child(-n+2){background:var(--warn)}
.pwmeter[data-score="3"] i:nth-child(-n+3){background:var(--acc)}
.pwmeter[data-score="4"] i{background:var(--acc)}
.authfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  border-top:1px solid var(--line);margin-top:4px;padding-top:14px}
.authform .cta{margin-top:6px}
.authform .cta .primary{width:100%;justify-content:center}

/* ---------- giriş kuralları kartı ---------- */
.entrycard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:16px 18px;margin:0 0 18px;box-shadow:var(--sh-1)}
.entryhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:15px}
.entryflag{width:9px;height:9px;border-radius:50%;flex:none;background:var(--ink-3)}
.entryflag.v-hayir{background:var(--acc)}
.entryflag.v-kapida,.entryflag.v-eta,.entryflag.v-evize{background:var(--warn)}
.entryflag.v-evet,.entryflag.v-giris_yok{background:var(--acc-2)}
.entrynotes{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:5px}
.entrynotes li{font-size:13.5px;color:var(--ink-2);line-height:1.55}
.entryfoot{margin:12px 0 0;font-size:12px;color:var(--ink-3);line-height:1.5}
.entryfoot a{color:var(--acc)}

/* ---------- plan üzerinde konuşma ---------- */
.tailorbar{display:flex;gap:9px;margin:0 0 12px}
.tailorbar input{flex:1}
.tailorbar button{white-space:nowrap}
.tailorout{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);
  padding:12px 14px;margin:0 0 16px;font-size:13.5px;color:var(--ink-2);line-height:1.6}
.tailorout.ok{border-color:color-mix(in srgb,var(--acc) 45%,var(--line))}
.tailorout.err{border-color:var(--acc-2);color:var(--acc-2)}
.tailorout p{margin:0}
.tailorout ul{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}

/* ---------- serbest metinden form ---------- */
/* Serbest metin çubuğu TEK bir denetim gibi okunmalı: cümleyi yazdığınız yer
   ile onu plana çeviren düğme aynı işin iki ucu. Ayrı duran çerçeveli bir
   düğme, yanındaki girdiyle ilgisiz görünüyordu. Düğme artık alanın içinde
   oturuyor ve vurgu rengini taşıyor. */
.intakebar{position:relative;display:flex;margin:0 0 16px}
.intakebar input{flex:1;padding-right:118px}
.intakebar button{
  position:absolute;right:5px;top:50%;transform:translateY(-50%);
  white-space:nowrap;padding:7px 14px;border-radius:calc(var(--r-sm) - 3px);
  background:var(--acc);border-color:var(--acc);color:var(--acc-ink);
  font-weight:600;font-size:13px}
.intakebar button:hover{filter:brightness(1.06);transform:translateY(-50%)}
.intakebar button:active{transform:translateY(-50%) scale(.98)}
/* Dar ekranda düğme metnin üstüne binmesin: alt alta geçer. */
@media (max-width:520px){
  .intakebar{flex-direction:column;gap:8px}
  .intakebar input{padding-right:12px}
  .intakebar button{position:static;transform:none;width:100%;padding:10px}
  .intakebar button:hover,.intakebar button:active{transform:none}
}

/* ---------- gezi günlüğü taslakları ---------- */
.draft{border:1px solid var(--line);border-radius:var(--r);padding:14px;
  display:flex;flex-direction:column;gap:10px}
.draft.done{border-color:color-mix(in srgb,var(--acc) 45%,var(--line));color:var(--acc)}
.drafthead{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.drafthead b{flex:1;min-width:140px;font-size:15px}
label.f.inline{gap:4px}
label.f.inline input,label.f.inline select{padding:7px 9px;font-size:13px}
label.f.inline input[name=price]{width:88px}
label.f.inline input[name=cur]{width:62px;text-transform:uppercase}
.draft .cta{margin-top:0}

/* ---------- yorum özeti ---------- */
.cm-digest{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}
.cm-digest:empty{display:none}
.cm-theme{font-size:13px;color:var(--ink-2);line-height:1.55}
.cm-theme b{color:var(--acc);font-weight:650;margin-right:5px}

/* ---------- "neden bu durak?" ---------- */
.stop-pick{font-size:12px;color:var(--ink-3);margin-top:3px;line-height:1.5}
.stop-pick:empty{display:none}

/* Bağlantıyı düğme gibi göstermek: `mailto:` bir <a> olmak zorunda
   (tarayıcı posta programını ancak öyle açar) ama görsel olarak
   yanındaki düğmelerden ayrı durmamalı. */
a.btnlike{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  padding:9px 18px;border-radius:var(--r-sm);border:1px solid transparent;font-size:14px}
.tailordelta{margin:9px 0 0;font-size:12.5px;color:var(--ink-3)}

/* Sunucunun bastığı gezi özeti. Uygulama planı çizince JavaScript onu
   kaldırıyor; burada yalnız okunur görünmesini sağlıyoruz. */
/* Sunucunun bastığı özet. JavaScript çalışana kadar EKRANDA DURAN şey bu:
   arama motorunun ve JavaScript'siz ziyaretçinin gördüğü sayfa da bu. Çıplak
   başlık + numaralı liste olarak bırakıldığında biçimlenmemiş bir belge gibi
   görünüyordu ("XML gibi açılıyor"). Programın kendisine benzemesi, yavaş bir
   bağlantıda bile sayfanın bozuk değil hazırlanıyor görünmesini sağlıyor. */
#seoTrip{max-width:820px;margin:0 auto;padding:34px 22px 60px;color:var(--ink)}
#seoTrip h1{font-family:var(--serif);font-size:clamp(24px,3.6vw,34px);
  letter-spacing:-.02em;margin:0 0 10px}
#seoTrip>p{color:var(--ink-2);margin:0 0 26px;font-size:16px;max-width:60ch}
#seoTrip section{border-top:1px solid var(--line);padding:16px 0 4px}
#seoTrip h3{font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);font-weight:600;margin:0 0 10px}
#seoTrip ol{margin:0;padding:0;list-style:none;display:grid;gap:9px}
#seoTrip li{display:flex;align-items:baseline;gap:14px;font-size:15px;line-height:1.5}
#seoTrip li time{flex:none;width:52px;font-family:var(--mono,ui-monospace,SFMono-Regular,Menlo,monospace);
  font-size:12.5px;color:var(--ink-3);letter-spacing:.02em}
#seoTrip li span{color:var(--ink);flex:1}
#seoTrip li b{font-weight:600;color:var(--ink-2);font-size:13.5px}


/* Anahtarsız OpenStreetMap döşemeleri açık renkli; koyu temada sayfanın
   içinde parlayan beyaz bir dikdörtgen gibi duruyorlar. Ters çevirip tonu
   döndürmek, ayrı bir koyu döşeme kaynağı gerektirmeden okunur bir harita
   veriyor. */
.osm-dark{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.95)}


/* Metin içinde bağlantı gibi duran düğme: vize kartındaki "giriş yapın"
   çağrısı cümlenin parçası, ayrı bir düğme kutusu orada ağır kaçıyor. */
.linklike{background:none;border:0;padding:0;color:var(--acc);font:inherit;
  font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.linklike:hover{filter:brightness(1.15);transform:none;border:0}
