:root{
  --bg:#f6f5f2; --card:#ffffff; --ink:#16161a; --muted:#6b6b76;
  --line:#e6e3dc; --accent:#b3261e; --accent-soft:#fdeceb;
  --blue:#0b57d0; --green:#0f7b3f; --amber:#9a6700; --amber-soft:#fff6e0;
  --radius:16px; --shadow:0 1px 2px rgba(0,0,0,.05),0 8px 24px -16px rgba(0,0,0,.25);
  --maxw:760px;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#111114; --card:#1a1a1f; --ink:#eceaf0; --muted:#9d9daa;
    --line:#2b2b33; --accent:#ff6b5e; --accent-soft:#2a1614;
    --blue:#7aa7ff; --green:#5fd08a; --amber:#e5b74a; --amber-soft:#2a2113;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -16px rgba(0,0,0,.8);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
  padding-bottom:env(safe-area-inset-bottom);
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}

/* ---------- Header ---------- */
header.hero{
  background:linear-gradient(160deg,#1c1c22,#2e2e3a 55%,#3a2b2b);
  color:#fff;padding:28px 0 22px;border-bottom:1px solid var(--line);
}
.hero .flag{font-size:34px;line-height:1}
.hero h1{margin:6px 0 2px;font-size:clamp(24px,6vw,34px);letter-spacing:-.02em;font-weight:800}
.hero .sub{color:#cfcbd8;font-size:15px;margin:0}
.hero .facts{display:grid;gap:6px;margin-top:16px}
.hero .facts div{display:grid;grid-template-columns:104px 1fr;gap:10px;font-size:13.5px;color:#dcd8e4;align-items:baseline}
.hero .facts b{color:#fff;font-weight:600}
.heroacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.hero .hotelbtn{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  color:#fff;text-decoration:none;padding:10px 15px;border-radius:999px;
  font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;
}
.hero .hotelbtn.on{background:#fff;color:#16161a;border-color:#fff}

/* Önemli bilgiler paneli */
#extras{display:none}
#extras.open{display:block;animation:fade .18s ease-out}
@keyframes fade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* Giriş kapısı */
html.locked body>header,html.locked body>nav,html.locked body>main{display:none}
.gate{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  padding:24px;background:linear-gradient(160deg,#1c1c22,#2e2e3a 55%,#3a2b2b)}
.gatebox{width:100%;max-width:340px;text-align:center;color:#fff}
.gatebox .gflag{font-size:44px}
.gatebox h1{font-size:24px;margin:8px 0 2px;letter-spacing:-.02em}
.gatebox p{margin:0 0 22px;color:#cfcbd8;font-size:14px}
.gatebox input{width:100%;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.25);
  background:rgba(255,255,255,.10);color:#fff;font-size:16px;font-family:inherit;outline:none}
.gatebox input::placeholder{color:#a9a5b5}
.gatebox input:focus{border-color:#fff;background:rgba(255,255,255,.16)}
.gatebox button{width:100%;margin-top:10px;padding:14px;border-radius:14px;border:0;background:#fff;
  color:#16161a;font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:10px}
.gatebox button:disabled{opacity:.6}
.gatebox .gbtn-google{margin-top:4px}
.gatebox #gerr{display:block;margin-top:12px;color:#ff8f85;font-size:13.5px;min-height:18px}
.gatebox .ghint{display:block;color:#9b97a8;font-size:12.5px;line-height:1.5}

/* ---------- Day tabs ---------- */
nav.tabs{
  position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);
}
.tabs .scroller{display:flex;gap:8px;overflow-x:auto;padding:10px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs .scroller::-webkit-scrollbar{display:none}
.tab{
  flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;line-height:1.15;min-width:58px;
}
.tab small{font-size:10.5px;color:var(--muted);font-weight:500;letter-spacing:.03em;text-transform:uppercase}
.tab[aria-selected="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.tab[aria-selected="true"] small{color:var(--bg);opacity:.7}

/* ---------- Day ---------- */
.day{padding:22px 0 8px}
.day-head{margin-bottom:14px}
.day-head .kicker{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.day-head .date{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.day-head .dow{font-size:13px;color:var(--muted)}
.day-head h2{margin:4px 0 6px;font-size:clamp(19px,4.6vw,24px);letter-spacing:-.015em;line-height:1.25}
.day-head p{margin:0;color:var(--muted);font-size:14.5px}
.day-head .pin{
  display:inline-block;margin-top:10px;background:var(--accent-soft);color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
  padding:6px 11px;border-radius:10px;font-size:13px;font-weight:600
}
.dayroute{
  display:inline-flex;align-items:center;gap:7px;margin-top:12px;text-decoration:none;
  background:var(--card);border:1px solid var(--line);color:var(--ink);
  padding:9px 13px;border-radius:12px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow)
}

/* ---------- Timeline ---------- */
ol.timeline{list-style:none;margin:0;padding:0 0 0 22px;position:relative}
ol.timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:var(--line)}
li.item{position:relative;margin:0 0 14px}
li.item::before{
  content:"";position:absolute;left:-22px;top:20px;width:12px;height:12px;border-radius:50%;
  background:var(--card);border:2px solid var(--line)
}
li.item[data-kind="transit"]::before{border-color:var(--blue)}
li.item[data-kind="food"]::before{border-color:var(--amber)}
li.item[data-kind="museum"]::before,li.item[data-kind="view"]::before{border-color:var(--accent)}
li.item.done::before{background:var(--green);border-color:var(--green)}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card .body{padding:13px 14px}
.card.opt{border-style:dashed;opacity:.92}
.row1{display:flex;align-items:flex-start;gap:10px}
.time{
  flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;
  background:var(--ink);color:var(--bg);padding:3px 8px;border-radius:7px;margin-top:1px
}
.title{margin:0;font-size:16.5px;font-weight:700;letter-spacing:-.01em;flex:1;line-height:1.35}
.title .emoji{margin-right:6px}
.check{
  flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);
  background:transparent;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;
  display:flex;align-items:center;justify-content:center;padding:0
}
li.item.done .check{background:var(--green);border-color:var(--green);color:#fff}
li.item.done .title{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}
.note{margin:8px 0 0;font-size:14.5px;color:var(--muted)}
.note strong{color:var(--ink);font-weight:650}
.addr{margin:6px 0 0;font-size:13px;color:var(--muted)}
.meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.chip{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.chip.line{color:#fff;border:0}
.chip.geek{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.chip.tedlasso{background:#e8f3ea;color:#0f7b3f;border-color:transparent}
@media (prefers-color-scheme:dark){.chip.tedlasso{background:#15291c;color:#5fd08a}}
.callout.warn,.card .warnbox{
  background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);
  color:var(--ink);padding:9px 11px;border-radius:11px;font-size:13.5px;margin-top:9px
}

/* ---------- Route buttons ---------- */
.routes{display:flex;flex-wrap:wrap;gap:7px;padding:0 14px 13px}
.rb{
  display:inline-flex;align-items:center;gap:6px;text-decoration:none;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--ink);
  padding:8px 11px;border-radius:11px;font-size:13px;font-weight:600;font-family:inherit;
  -webkit-tap-highlight-color:transparent
}
.rb:active{transform:scale(.97)}
.rb.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.rb .ic{font-size:14px}
.routes .lbl{font-size:11.5px;color:var(--muted);width:100%;margin:2px 0 -2px;
  text-transform:uppercase;letter-spacing:.06em;font-weight:700}

/* ---------- Options ---------- */
.opts{border-top:1px solid var(--line);padding:10px 14px 4px}
.opt-row{padding:8px 0;border-bottom:1px dashed var(--line)}
.opt-row:last-child{border-bottom:0}
.opt-row b{font-size:14.5px}
.opt-row span{display:block;font-size:13px;color:var(--muted);margin-top:1px}

/* ---------- Sections ---------- */
section.block{margin:26px 0}
section.block h2{font-size:19px;margin:0 0 12px;letter-spacing:-.015em}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:14px 16px;font-size:14.5px}
.panel ul{padding-left:20px;margin:8px 0}
.panel p{margin:8px 0}
.tickets{padding:4px 16px}
.tk{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 0;border-bottom:1px solid var(--line)}
.tk:last-child{border-bottom:0}
.tk-n b{display:block;font-size:14.5px;font-weight:650;line-height:1.3}
.tk-n span{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.pill{flex:0 0 auto;font-weight:700;font-size:11.5px;padding:5px 10px;border-radius:999px;text-align:center}
.st-ok{background:#e2f4e9;color:#0f7b3f}
.st-free{background:#e6eefc;color:#0b57d0}
.st-todo{background:var(--amber-soft);color:var(--amber)}
@media (prefers-color-scheme:dark){.st-ok{background:#15291c;color:#5fd08a}.st-free{background:#161f31;color:#7aa7ff}}
.geekgrid{display:grid;gap:10px}
footer{padding:28px 0 40px;text-align:center;color:var(--muted);font-size:12.5px}
.hidden{display:none !important}
.toast{
  position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom));
  background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:999px;font-size:13.5px;font-weight:600;
  z-index:99;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}
.toolbar{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:10px 0 0;flex-wrap:wrap}
.toolbar button{
  border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:10px;
  padding:7px 11px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit
}
