:root{
  --ground:#eef2f4; --card:#ffffff; --card-2:#f6f9fa; --sunken:#e6ecef;
  --ink:#15242e; --ink-2:#425866; --ink-3:#5f6f7c;
  --line:#d3dee3; --line-2:#bccdd5;
  --brand:#0c6f77; --brand-ink:#ffffff; --brand-tint:#0c6f7714; --brand-line:#0c6f7755;
  --go:#b1592a; --go-ink:#ffffff; --go-tint:#b1592a14; --go-line:#b1592a55;
  --ok:#1d7a4f; --ok-tint:#1d7a4f16;
  --warn:#8a6410; --warn-tint:#8a641016;
  --focus:#0c6f77;
  --sec:#e39a12; --sec-ink:#1a1206; --sec-line:#b9790a;   /* secili slot: amber */
  --sh-1:0 1px 2px rgba(21,36,46,.05);
  --sh-2:0 2px 4px rgba(21,36,46,.06),0 10px 24px rgba(21,36,46,.07);
  --sh-3:0 4px 10px rgba(21,36,46,.10),0 20px 46px rgba(21,36,46,.13);
  --r:12px; --r-sm:9px;
}
/* Varsayilan ACIK tema. Sistem koyu modda olsa bile site acik baslar (kurum karari);
   koyu tema yalnizca kullanici ust cubuktan sectiginde devreye girer ve tercihi saklanir. */
:root[data-theme="dark"]{
  --ground:#0b1319; --card:#121e26; --card-2:#0e1922; --sunken:#0a1218;
  --ink:#e8eff3; --ink-2:#a2b6c2; --ink-3:#7a8e9c;
  --line:#233442; --line-2:#31485a;
  --brand:#3fb3ba; --brand-ink:#052528; --brand-tint:#3fb3ba1f; --brand-line:#3fb3ba66;
  --go:#e08a55; --go-ink:#2a1206; --go-tint:#e08a551f; --go-line:#e08a5566;
  --ok:#4cbf85; --ok-tint:#4cbf8520;
  --sec:#f0b23a; --sec-ink:#2a1a02; --sec-line:#f0b23a;   /* secili slot: amber (koyu tema) */
  --warn:#d9a83f; --warn-tint:#d9a83f20;
  --focus:#5ecfd6;
  --sh-1:0 1px 2px rgba(0,0,0,.4);
  --sh-2:0 2px 6px rgba(0,0,0,.45),0 12px 28px rgba(0,0,0,.45);
  --sh-3:0 6px 14px rgba(0,0,0,.5),0 26px 56px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{font-size:var(--fs,100%)}
body{margin:0;background:var(--ground);color:var(--ink);
  font-family:"Source Sans 3",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}

/* ================= ARKA PLAN: GOKYUZU ve BULUTLAR =================
   Ust cubugun (.bar opak, kendi zemini var) hemen altindan baslar; koyudan
   acigi, sonra sayfanin zeminine (beyaza yakin) dogru gider. Bulutlar da
   CSS: gorsel dosya YOK -> ek varlik, lisans, ag istegi ve gecikme yok,
   her cozunurlukte keskin, koyu temada kendiliginden degisir.

   ⚠️ RENK OLCUMU (AA esigi 4.5). Zeminin UZERINDE duran metinler:
   .k-icerik, .k-tuzel, .p-step → hepsi --ink (#15242e) yapildi, cunku:
     ust durak #6d9ba2 ile  ink 5.18  ·  ink-2 2.43  ·  ink-3 daha da dusuk
   Yani gokyuzu bu koyulukta OLABILIYOR ama ancak zemin metni --ink ise.
   Onceki denemede ust durak #bfd6da idi (ink-2 4.91) ve .k-tuzel (--ink-3)
   3.42 ile AA'nin ALTINDA kaliyordu — olcum bunu yakaladi.
   Metin ustten ~30px asagida basliyor, yani gercek kontrast 5.18'den iyi.
   Bant 760px; sonrasi --ground ile kusursuz birlesir (dikis izi olmaz). */
body{
  background-repeat:no-repeat;
  background-position:top center;
  background-size:100% 760px;
  background-image:
    /* bulutlar — yumusak beyaz lekeler, ustte seyrek, ortada yogun */
    radial-gradient(34% 22% at 13% 17%, #ffffffd9 0 40%, #ffffff00 73%),
    radial-gradient(27% 17% at 74% 11%, #ffffffc2 0 42%, #ffffff00 75%),
    radial-gradient(31% 19% at 47% 27%, #ffffffb0 0 44%, #ffffff00 77%),
    radial-gradient(42% 23% at 26% 40%, #ffffffe6 0 44%, #ffffff00 77%),
    radial-gradient(37% 21% at 83% 35%, #ffffffd0 0 44%, #ffffff00 77%),
    radial-gradient(50% 26% at 62% 52%, #fffffff2 0 46%, #ffffff00 80%),
    /* gokyuzu: koyu -> acik -> sayfa zemini */
    linear-gradient(180deg,#6d9ba2 0,#93b8bd 18%,#c3dade 42%,#e9f3f4 66%,#f8fbfc 84%,var(--ground) 100%);
}
:root[data-theme="dark"] body{
  background-image:
    radial-gradient(38% 26% at 14% 20%, #ffffff12 0 42%, #ffffff00 74%),
    radial-gradient(30% 20% at 76% 13%, #ffffff0e 0 44%, #ffffff00 76%),
    radial-gradient(34% 22% at 50% 31%, #ffffff0b 0 46%, #ffffff00 78%),
    radial-gradient(46% 26% at 28% 44%, #ffffff14 0 46%, #ffffff00 78%),
    radial-gradient(40% 24% at 84% 40%, #ffffff10 0 46%, #ffffff00 78%),
    linear-gradient(180deg,#102a33 0,#0d222b 30%,#0c1b23 58%,var(--ground) 100%);
}
/* Yazdirmada gokyuzu kagida basilmaz */
@media print{ body{background-image:none!important} }
h1,h2,h3,.ff{font-family:Figtree,system-ui,sans-serif;letter-spacing:-.012em}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.bar{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.bar-in{max-width:1180px;margin:0 auto;padding:14px 18px;display:flex;align-items:center;gap:12px}
/* Ana sayfa baglantisi: <a> ama gorunumu metin gibi kalir */
.brandmark{display:flex;align-items:center;gap:14px;margin-right:auto;min-width:0;
  text-decoration:none;color:inherit;border-radius:10px;padding:2px 4px;margin-left:-4px;
  transition:background .15s}
.brandmark:hover{background:var(--sunken)}
.brandmark:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.brandmark .bn{font-family:Figtree,sans-serif;font-weight:700;font-size:1.0rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icb{min-width:44px;min-height:44px;padding:0 11px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:var(--r-sm);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,border-color .15s}
.icb:hover{background:var(--card-2);border-color:var(--brand)}
.icb[aria-expanded="true"]{background:var(--brand-tint);border-color:var(--brand-line);color:var(--brand)}
/* ---- Gorunum ayarlari: masaustunde satir ici, cepte acilir menu ----
   [hidden] niteligi KULLANILMAZ: panel display:flex oldugu icin [hidden] eziliyor
   (bu tuzaga bir kez dusuldu). Gorunurluk body sinifiyla yonetilir. */
.ayar-btn{display:none}
.ayar-panel{display:flex;align-items:center;gap:8px}
.ayar-panel .ayar-baslik,.ayar-panel .ayar-etiket,.th-etiket{display:none}
@media (max-width:700px){
  .bar{position:sticky}
  .bar-in{position:relative}
  .ayar-btn{display:inline-flex}
  .ayar-panel{display:none;position:absolute;top:calc(100% + 8px);right:10px;z-index:40;
    flex-direction:column;align-items:stretch;gap:12px;min-width:232px;
    background:var(--card);border:1px solid var(--line);border-radius:var(--r);
    box-shadow:var(--sh-3);padding:14px}
  body.ayar-acik .ayar-panel{display:flex}
  .ayar-panel .ayar-baslik{display:block;margin:0;font-size:.72rem;font-weight:700;
    letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
  .ayar-panel .ayar-satir{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .ayar-panel .ayar-etiket{display:block;font-size:.95rem;font-weight:600}
  .th-etiket{display:inline;font-size:.9rem;font-weight:600}
  #thBtn{padding:0 14px;gap:8px}
}

.fsgrp{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-sm);overflow:hidden}
.fsgrp .icb{border:none;border-radius:0;min-width:40px}
.fsgrp .icb+.icb{border-left:1px solid var(--line-2)}
/* ---------- HESAP MENUSU (ust cubuk) ----------
   Masaustu: hasta adi = menu dugmesi, altinda Randevularim + Cikis.
   Cep: bu dugme gizlenir, ayni maddeler ⋮ menusundeki .mn-hesap bolumune girer
   (ust cubukta iki ayri menu olmasin). Ikisi de yalniz body.girisli iken gorunur. */
.hesap-sar{position:relative;margin-left:auto;flex:none}
.hesap{display:none;align-items:center;gap:9px;background:var(--card);color:var(--ink);
  border:1px solid var(--line-2);border-radius:var(--r-sm);font:inherit;font-weight:600;
  font-size:.92rem;padding:0 12px;min-height:48px;cursor:pointer;
  transition:border-color .15s,background .15s}
body.girisli .hesap{display:inline-flex}
.hesap:hover{border-color:var(--brand);background:var(--card-2)}
.hesap:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.hs-ik{display:grid;place-items:center;color:var(--brand);flex:none}
.hs-ik svg{width:20px;height:20px}
.hs-ad{max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hs-ok{width:15px;height:15px;flex:none;color:var(--ink-3);transition:transform .16s}
body.hesap-acik .hs-ok{transform:rotate(180deg)}

.hesap-panel{display:none;position:absolute;top:calc(100% + 8px);right:0;z-index:45;
  min-width:236px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--sh-3);padding:8px}
body.hesap-acik .hesap-panel{display:block}

/* Menu maddeleri (her iki menude ayni gorunum) */
.mn-baslik{margin:6px 8px 6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3)}
.mn-oge{display:flex;align-items:center;gap:11px;width:100%;background:none;border:0;
  font:inherit;font-weight:600;font-size:.98rem;color:var(--ink);text-align:left;
  padding:12px 10px;min-height:48px;border-radius:var(--r-sm);cursor:pointer}
.mn-oge:hover{background:var(--sunken)}
.mn-oge:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
.mn-oge svg{width:19px;height:19px;flex:none;color:var(--ink-2)}
.mn-oge.tehlike{color:var(--go)}
.mn-oge.tehlike svg{color:var(--go)}
.mn-oge.tehlike:hover{background:var(--go-tint)}
/* #mnHesap tek DOM parcasi; konumu JS ile degisir (yerlesimTasi). Gorunurlugu
   yalnizca giris durumuna bagli — display:none ile gizlemiyoruz ki tasindigi
   yerde de gorunsun. */
.mn-hesap{display:none}
body.girisli .mn-hesap{display:block}
.mn-yuva:empty{display:none}

/* Masaustu: TEMA satiri hesap menusunun icinde (kullanici istegi).
   A−/A+ ust cubukta satir ici kalir. */
.mn-gorunum:empty{display:none}
.mn-gorunum{border-top:1.5px solid var(--line);margin-top:6px;padding-top:6px}
.mn-gorunum .ayar-satir{display:flex;align-items:center;justify-content:space-between;
  gap:12px;padding:6px 10px 2px}
.mn-gorunum .ayar-etiket{display:block;font-size:.95rem;font-weight:600}
.mn-gorunum .th-etiket{display:inline;font-size:.9rem;font-weight:600}
.mn-gorunum #thBtn{padding:0 14px;gap:8px}

/* CEP: ust cubukta TEK menu kalsin — hesap dugmesi gizlenir, maddeler ⋮ menusune
   tasinir. Bu blok .hesap tanimlarindan SONRA olmak zorunda: once yazildiginda
   ayni ozgullukteki "body.girisli .hesap{display:inline-flex}" kuralini ezemiyor
   ve cepte IKI menu gorunuyordu. */
@media (max-width:700px){
  .hesap,body.girisli .hesap{display:none}
  .hesap-sar{margin-left:auto}
  .mn-hesap{border-bottom:1.5px solid var(--line);padding-bottom:8px;margin-bottom:4px}
  .ayar-panel .mn-baslik{margin:0 4px 4px}
  .ayar-panel .mn-oge{padding:11px 8px}
}

/* Ust cubukta kurum iletisim bilgisi (kurumun verdigi randevu hatti) */
.bar .hat{display:inline-flex;align-items:center;gap:10px;flex:none;text-decoration:none;
  color:var(--ink);padding:8px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  min-height:48px;transition:border-color .15s,background .15s}
.bar .hat:hover{background:var(--card-2);border-color:var(--brand)}
/* display:inline-flex, [hidden] niteligini EZER — numara DB'den gelene kadar
   gizli kalmali. Ayni tuzaga .k-notlar ve .ayar-panel'de de dusulmustu. */
.bar .hat[hidden]{display:none}
.bar .hat svg{width:20px;height:20px;flex:none;color:var(--brand)}
.bar .hat small{display:block;font-size:.68rem;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3);line-height:1.2}
.bar .hat b{display:block;font-family:"IBM Plex Mono",monospace;font-size:.94rem;font-weight:600;
  line-height:1.25;white-space:nowrap}
@media (max-width:900px){.bar .hat span{display:none}.bar .hat{padding:8px 12px}}
@media (max-width:640px){.bar .hat{display:none}}

.steps{background:var(--card-2);border-bottom:1px solid var(--line)}
.steps-in{max-width:1180px;margin:0 auto;padding:12px 18px}
.prog{height:6px;background:var(--sunken);border-radius:99px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--brand);border-radius:99px;transition:width .35s cubic-bezier(.4,0,.2,1)}
.steplist{display:none;gap:4px;margin-top:10px;list-style:none;padding:0}
.steplist li{flex:1;font-size:.78rem;color:var(--ink-3);font-weight:600;padding-top:8px;border-top:3px solid var(--line);transition:color .2s,border-color .2s}
.steplist li.done{color:var(--ink-2);border-top-color:var(--brand-line)}
.steplist li[aria-current]{color:var(--brand);border-top-color:var(--brand)}
.stepnow{margin-top:9px;font-size:.85rem;color:var(--ink-2);font-weight:600;display:flex;justify-content:space-between;gap:10px}
.stepnow b{color:var(--ink)}
@media(min-width:720px){.steplist{display:flex}.stepnow{display:none}.prog{display:none}}

main{max-width:660px;margin:0 auto;padding:22px 16px 130px}
.h-step{margin:0 0 4px;font-size:clamp(1.45rem,4.4vw,1.85rem);font-weight:800;text-wrap:balance}
/* Gokyuzu zemininin UZERINDE duruyor: --ink sart (olcum: en koyu durakta 5.18) */
.p-step{margin:0 0 20px;color:var(--ink);font-size:1rem}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- param panel ---- */
.ppanel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-2);margin-bottom:22px;overflow:hidden}
.ppanel .ph{padding:14px 16px;border-bottom:1px solid var(--line);background:var(--card-2)}
.ppanel .ph h2{margin:0;font-size:1.05rem;font-weight:700}
.ppanel .ph p{margin:5px 0 0;font-size:.85rem;color:var(--ink-3)}
.prow{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:none}
.pid{font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:600;color:var(--brand);
  background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:6px;padding:3px 7px;flex:none;min-width:44px;text-align:center}
.ptx{flex:1;min-width:0;font-size:.9rem}
.ptx .pv{color:var(--ink-3);font-size:.8rem;margin-top:2px}
.sw{position:relative;width:46px;height:26px;flex:none}
.sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%;z-index:2}
.sw i{position:absolute;inset:0;background:var(--line-2);border-radius:99px;transition:background .18s;pointer-events:none}
.sw i::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .18s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.sw input:checked+i{background:var(--brand)}
.sw input:checked+i::after{transform:translateX(20px)}
.sw input:focus-visible+i{outline:3px solid var(--focus);outline-offset:2px}
.pro{padding:12px 16px;background:var(--card-2);font-size:.84rem;color:var(--ink-2)}
.pro b{color:var(--ink);font-family:"IBM Plex Mono",monospace;font-size:.8rem}
.pro div{padding:2px 0}

.opts{display:grid;gap:10px}
.opt{position:relative;display:block}
.opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.opt .box{display:flex;align-items:center;gap:13px;min-height:64px;padding:14px 15px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);transition:border-color .16s,box-shadow .16s,transform .16s,background .16s}
.opt input:hover+.box{border-color:var(--line-2);transform:translateY(-1px);box-shadow:var(--sh-2)}
.opt input:focus-visible+.box{outline:3px solid var(--focus);outline-offset:2px}
.opt input:checked+.box{border-color:var(--brand);background:var(--brand-tint);box-shadow:var(--sh-2)}
.opt .ic{width:40px;height:40px;border-radius:10px;background:var(--sunken);color:var(--ink-2);display:grid;place-items:center;flex:none;font-family:Figtree,sans-serif;font-weight:700;font-size:.95rem}
.opt input:checked+.box .ic{background:var(--brand);color:var(--brand-ink)}
/* Brans ikonu (Tabler, MIT): kisaltma yerine cizgi ikon */
.opt .ic-svg{background:var(--brand-tint);border:1px solid var(--brand-line);color:var(--brand)}
.opt .ic-svg svg{width:22px;height:22px}
.opt input:checked+.box .ic-svg{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.opt input:disabled+.box .ic-svg{background:var(--sunken);border-color:var(--line);color:var(--ink-3)}
.opt .tx{min-width:0;flex:1}
.opt .t1{font-family:Figtree,sans-serif;font-weight:700;font-size:1.02rem;line-height:1.3}
.opt .t2{color:var(--ink-2);font-size:.88rem;margin-top:2px}
/* Poliklinik kartinda bos slot rozeti (tarih kartlarindaki .gk-slot ile ayni dil) */
.slot-rozet{display:inline-flex;align-items:baseline;gap:6px;margin-top:8px;
  font-size:.82rem;font-weight:600;color:var(--ok);
  background:var(--ok-tint);border:1px solid var(--ok);border-radius:99px;padding:3px 11px}
.slot-rozet b{font-family:Figtree,sans-serif;font-weight:800;font-size:1.1rem;line-height:1}
.slot-rozet.az{color:var(--warn);background:var(--warn-tint);border-color:var(--warn)}
/* 0 bos: metin --ink-2 (kirmizi metin kirmizi tint uzerinde 3.90 kontrast veriyor, AA alti) */
.slot-rozet.yok{color:var(--ink-2);background:var(--go-tint);border-color:var(--go);
  align-items:center;gap:5px;font-weight:700}
.slot-rozet.yok svg{width:13px;height:13px;flex:none;color:var(--go)}
.opt input:disabled+.box .slot-rozet{opacity:.6}
/* Bos randevusu kalmayan POLIKLINIK karti: tarih ekranindaki .gdolu ile ayni renk dili
   (kirmizi tint + kesikli kenar). Fark: bu kart SECILEBILIR kalir, o yuzden secildiginde
   kirmizi zemin korunur ve secim marka rengi KENARDAN + onay isaretinden okunur. */
.pdolu .box{background:var(--go-tint);border-color:var(--go);border-style:dashed}
.pdolu .box .t1,.pdolu .box .t2{color:var(--ink-2)}
.pdolu input:checked+.box{background:var(--go-tint);border-color:var(--brand);border-style:solid}
.pdolu .chk{border-color:var(--go-line);border-style:dashed}
.pdolu input:checked+.box .chk{border-style:solid}

.opt .chk{width:24px;height:24px;flex:none;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center;color:transparent;transition:all .16s}
.opt input:checked+.box .chk{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.opt .chk svg{width:14px;height:14px}
.opt input:disabled+.box{opacity:.5;cursor:not-allowed}

.fields{display:grid;gap:16px}
.f label{display:block;font-weight:600;font-size:.94rem;margin-bottom:6px}
.f .hint{color:var(--ink-3);font-size:.85rem;font-weight:400}
.f input{width:100%;min-height:52px;padding:12px 14px;font:inherit;font-size:1.05rem;background:var(--card);color:var(--ink);border:1.5px solid var(--line-2);border-radius:var(--r-sm)}
.f input::placeholder{color:var(--ink-3)}
.f input:focus-visible{border-color:var(--brand)}
.f .err{color:var(--go);font-size:.87rem;margin-top:6px;display:none;font-weight:600}
.f.bad input{border-color:var(--go)}
.f.bad .err{display:block}
.cap-row{display:flex;gap:10px;align-items:stretch}
.cap-img{flex:1;min-height:66px;border-radius:var(--r-sm);border:1.5px solid var(--line-2);background-color:var(--sunken);
  background-image:repeating-linear-gradient(115deg,transparent 0 7px,rgba(109,133,147,.13) 7px 8px);
  display:flex;align-items:center;justify-content:center;gap:3px;user-select:none;-webkit-user-select:none;overflow:hidden;position:relative}
.cap-img b{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:1.75rem;color:var(--ink);display:inline-block;line-height:1}
.cap-img::after{content:"";position:absolute;left:5%;right:5%;top:54%;height:2px;background:var(--ink-3);opacity:.4;transform:rotate(-5deg)}
.cap-new{flex:0 0 auto;min-width:58px;font-size:1.3rem}
.cap-note{font-size:.82rem;color:var(--ink-3);margin:7px 0 0}

/* ---- Tarih kartlari (yeniden kurgulandi) ----
   Sol: buyuk gun sayisi bloku · Sag: tam gun adi, tarih ve BOS SLOT rozeti.
   Randevularim kartlarindaki .appt-cal dilinin aynisi, tutarli kalsin. */
.dates{display:grid;grid-template-columns:repeat(auto-fill,minmax(266px,1fr));gap:12px}
.dates .box.gunkart{align-items:center;gap:14px;min-height:104px;padding:14px 16px;text-align:left}
.gk-gun{flex:none;width:62px;padding:8px 0 9px;border-radius:12px;text-align:center;
  background:var(--brand-tint);border:1px solid var(--brand-line);color:var(--brand)}
.gk-gun b{display:block;font-family:Figtree,sans-serif;font-weight:800;font-size:1.85rem;line-height:1}
.gk-gun i{display:block;font-style:normal;font-size:.74rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;margin-top:3px}
.opt input:checked+.box .gk-gun{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.gk-tx{flex:1;min-width:0}
.gk-ad{display:flex;align-items:baseline;gap:9px;font-family:Figtree,sans-serif;
  font-weight:700;font-size:1.12rem;line-height:1.2}
.gk-simdi{font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--brand);background:var(--brand-tint);border:1px solid var(--brand-line);
  border-radius:99px;padding:2px 8px;flex:none}
.gk-tarih{display:block;font-size:.9rem;color:var(--ink-2);margin-top:2px}
/* Bos slot sayisi: ekranin en belirgin ikinci ogesi */
.gk-slot{display:inline-flex;align-items:baseline;gap:6px;margin-top:9px;
  font-size:.86rem;font-weight:600;color:var(--ok);
  background:var(--ok-tint);border:1px solid var(--ok);border-radius:99px;padding:4px 12px}
.gk-slot b{font-family:Figtree,sans-serif;font-weight:800;font-size:1.25rem;line-height:1}
.gk-slot.az{color:var(--warn);background:var(--warn-tint);border-color:var(--warn)}
/* Bos yeri kalmayan gun: SECILEMEZ. Renk dili slot ekranindaki .tfull ile birebir ayni
   (kirmizi tint + kesikli kenar + capraz ikon). Metin --ink-2: kirmizi metin kirmizi tint
   uzerinde 3.90 kontrast veriyor (AA 4.5 alti) — slot ekraninda olculmustu. */
.dates .gdolu .box{background:var(--go-tint);border-color:var(--go);border-style:dashed;cursor:not-allowed}
.dates .gdolu input:disabled+.box{opacity:1}   /* kirmizi zemin durumu zaten anlatiyor */
.dates .gdolu .box:hover{filter:none}
.dates .gdolu .gk-gun{background:var(--go-tint);border-color:var(--go-line);color:var(--ink-2)}
.dates .gdolu .gk-ad,.dates .gdolu .gk-tarih{color:var(--ink-2)}
.dates .gdolu .gk-gun b{text-decoration:line-through;text-decoration-thickness:2px}
.dates .gdolu .chk{border-color:var(--go-line);border-style:dashed;opacity:.45}
.gk-slot.dolu{color:var(--ink-2);background:var(--go-tint);border-color:var(--go);
  gap:5px;align-items:center;font-weight:700}
.gk-slot.dolu svg{width:14px;height:14px;flex:none;color:var(--go)}
/* Takvim modunda (param 155) ayni kural: dolu gun kirmizi ve secilemez */
.cal-gr .gdolu .box{background:var(--go-tint);border-color:var(--go);border-style:dashed}
.cal-gr .gdolu input:disabled+.box{opacity:1}
.cal-gr .gdolu .cd{color:var(--ink-2);text-decoration:line-through}
.cal-gr .gdolu .cq{color:var(--ink-2);background:transparent}
.dates input:checked+.box .dw,.dates input:checked+.box .dm{color:var(--brand)}
/* takvim modu (param 155) */
.cal{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);padding:12px;box-shadow:var(--sh-1)}
.cal-hd{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-bottom:6px}
.cal-hd span{text-align:center;font-size:.74rem;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}
.cal-gr{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-gr .opt .box{min-height:52px;padding:6px 2px;flex-direction:column;gap:1px;align-items:center;justify-content:center}
.cal-gr .cd{font-family:Figtree,sans-serif;font-weight:700;font-size:1.05rem;line-height:1}
.cal-gr .cq{font-size:.62rem;color:var(--ok);font-weight:700}
.cal-gr .dead{min-height:52px;border-radius:var(--r-sm);background:var(--sunken);opacity:.45}

.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:8px}
/* Slot durum renkleri: BOS yesil · DOLU ve KAPALI kirmizi (paletin kiremit tonu) ·
   SECILEN dolu marka rengi. Zeminler tint (%8-10) oldugu icin metin kontrasti korunur. */
.times .box{justify-content:center;min-height:52px;padding:10px 6px;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:1.02rem;font-variant-numeric:tabular-nums;
  background:var(--ok-tint);border-color:var(--ok);color:var(--ink);gap:7px}
/* Slot ikonu: bos saat · dolu capraz · kapali kilit */
.times .box svg{width:16px;height:16px;flex:none;opacity:.8}
.times .box b{font-weight:600;letter-spacing:.01em}
.times .opt input:checked+.box svg{opacity:1}
.times .opt input:hover+.box{background:var(--ok-tint);border-color:var(--ok);filter:brightness(.98)}
/* Secilen saat: AMBER dolgu — bos (yesil) ve dolu (kirmizi) yigininin ikisinden de ayrilir.
   Metin koyu: beyaz metin amber uzerinde AA'yi gecmiyor (3.46), koyu metin 6.9. */
.times .opt input:checked+.box{background:var(--sec);border-color:var(--sec-line);color:var(--sec-ink)}
/* Dolu/kapali: zemin ve ikon kirmizi, METIN koyu — kirmizi metin kirmizi tint uzerinde
   3.90 kontrast veriyordu (AA 4.5 alti). Durumu renk + ikon + ustu cizili anlatiyor. */
.tfull .box{background:var(--go-tint);color:var(--ink-2);border-color:var(--go);border-style:dashed}
.tfull .box b{text-decoration:line-through}
.tfull .box svg,.tkapali .box svg{color:var(--go);opacity:1}
.tkapali .box{background:var(--go-tint);color:var(--ink-2);border-color:var(--go-line);border-style:dotted}
.times .opt input:disabled+.box{opacity:1}      /* kirmizi zemin zaten durumu anlatiyor */
.tlegend i.bos{background:var(--ok-tint);border-color:var(--ok)}
.tlegend i.kp{background:var(--go-tint);border-color:var(--go-line);border-style:dotted}
.tlegend i.f{background:var(--go-tint);border-color:var(--go);border-style:dashed}
.tlegend i.sec{background:var(--sec);border-color:var(--sec-line)}
.tlegend{display:flex;gap:16px;margin:14px 0 0;font-size:.85rem;color:var(--ink-2);flex-wrap:wrap}
.tlegend span{display:inline-flex;align-items:center;gap:7px}
.tlegend i{width:13px;height:13px;border-radius:4px;border:1.5px solid var(--line-2);display:inline-block}
.tlegend i.f{background:var(--sunken);border-style:dashed}

.sum{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-2);overflow:hidden;margin-bottom:18px}
.sum .sr1{display:flex;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line);align-items:baseline}
.sum .sr1:last-child{border-bottom:none}
.sum dt{flex:0 0 108px;color:var(--ink-2);font-size:.88rem;font-weight:600;margin:0}
.sum dd{margin:0;font-weight:600;font-family:Figtree,sans-serif;min-width:0}
.note{display:flex;gap:11px;padding:13px 15px;border-radius:var(--r-sm);font-size:.92rem;background:var(--warn-tint);border:1px solid var(--warn);color:var(--ink);margin-bottom:18px}
/* Saat adiminda secim ozeti: hasta hangi tarih/brans/poliklinik icin baktigini gorsun */
.sum.ozet{margin-bottom:14px}
.sum.ozet dt{flex:0 0 128px}
.sum.ozet dd{font-size:1rem}
.note.bilgi{background:var(--brand-tint);border-color:var(--brand-line);align-items:flex-start;line-height:1.5}
.note.bilgi svg{color:var(--brand)}
.note.bilgi b{font-weight:700}
.note.ok{background:var(--ok-tint);border-color:var(--ok)}
.note.red{background:var(--go-tint);border-color:var(--go-line)}
.note svg{width:19px;height:19px;flex:none;margin-top:2px}
.note .pt{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--ink-3);display:block;margin-top:4px}
.check{display:flex;gap:11px;align-items:flex-start;padding:14px 15px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-sm);margin-bottom:18px;cursor:pointer}
.check input{width:24px;height:24px;flex:none;margin:0;accent-color:var(--brand);cursor:pointer}
.check span{font-size:.93rem}
.check a{color:var(--brand);font-weight:600}

.done-wrap{text-align:center;padding:14px 0 6px}
.done-ic{width:76px;height:76px;margin:0 auto 18px;border-radius:50%;background:var(--ok-tint);border:2px solid var(--ok);color:var(--ok);display:grid;place-items:center}
.done-ic svg{width:38px;height:38px}
.refkod{font-family:"IBM Plex Mono",monospace;font-size:1.6rem;font-weight:600;letter-spacing:.04em;background:var(--sunken);border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:12px 18px;display:inline-block;margin:6px 0 4px}

.hub-head{margin-bottom:16px}
/* Karsilama + hava durumu: darda alt alta, genisde yan yana (hava sagda) */
.selam-satir{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.selam{font-family:Figtree,sans-serif;font-weight:700;font-size:1.02rem;color:var(--brand);margin:0 0 2px}
/* ---------- Hava durumu seridi — bilgi amacli, tiklanabilir degil ----------
   Zemin hava durumuna gore renklenir; her palet TEK koyu metin rengiyle (--h-ink)
   kullanilir ve gradyanin EN KOYU duragina karsi olculdu: en dusuk oran 7.06
   (acik tema) / 7.09 (koyu tema) — AA 4.5 esiginin cok uzerinde.
   Hareket dekoratiftir: prefers-reduced-motion ile tamamen kapanir, renk kalir. */
.hava{position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;gap:11px;flex:none;
  background:linear-gradient(135deg,var(--h-a,var(--sunken)),var(--h-b,var(--sunken)));
  border:1.5px solid var(--h-line,var(--line));border-radius:var(--r-sm);
  padding:9px 14px;box-shadow:var(--sh-1);color:var(--h-ink,var(--ink))}
/* Animasyon katmani: icerigin ARKASINDA kalir, metni hicbir zaman karartmaz */
.hava-efekt{position:absolute;inset:0;z-index:-1;pointer-events:none;
  overflow:hidden;border-radius:inherit}
.hava>*:not(.hava-efekt){position:relative}

/* --- paletler: acik tema --- */
.hava-gunes  {--h-a:#FFE9A8;--h-b:#FFC24D;--h-line:#E0A63A;--h-ink:#14212B}
.hava-parcali{--h-a:#D6E8F7;--h-b:#A7C9E8;--h-line:#7FA8CC;--h-ink:#14212B}
.hava-bulut  {--h-a:#DFE5EA;--h-b:#B8C4CD;--h-line:#93A1AC;--h-ink:#14212B}
.hava-yagmur {--h-a:#C2D9EC;--h-b:#8FB5D6;--h-line:#6C94B8;--h-ink:#14212B}
.hava-kar    {--h-a:#EEF5FA;--h-b:#C9DEEE;--h-line:#9CBDD4;--h-ink:#14212B}
.hava-firtina{--h-a:#D3D6E6;--h-b:#A3A9C6;--h-line:#8288A8;--h-ink:#14212B}

/* --- paletler: koyu tema (tema her zaman data-theme ile ACIKCA verilir) --- */
:root[data-theme="dark"] .hava-gunes  {--h-a:#4A3208;--h-b:#6B4A0C;--h-line:#8A6316;--h-ink:#EAF2F8}
:root[data-theme="dark"] .hava-parcali{--h-a:#1B3A55;--h-b:#25506F;--h-line:#356B8E;--h-ink:#EAF2F8}
:root[data-theme="dark"] .hava-bulut  {--h-a:#2A343C;--h-b:#3A4750;--h-line:#4E5D68;--h-ink:#EAF2F8}
:root[data-theme="dark"] .hava-yagmur {--h-a:#17334C;--h-b:#204866;--h-line:#2F6183;--h-ink:#EAF2F8}
:root[data-theme="dark"] .hava-kar    {--h-a:#22404F;--h-b:#2E5568;--h-line:#417186;--h-ink:#EAF2F8}
:root[data-theme="dark"] .hava-firtina{--h-a:#2A2846;--h-b:#3A3760;--h-line:#4E4A80;--h-ink:#EAF2F8}

/* --- gunes: cok yavas donen isinlar --- */
.hava-gunes .hava-efekt::before{content:"";position:absolute;top:-46px;right:-34px;
  width:118px;height:118px;border-radius:50%;opacity:.5;
  background:conic-gradient(from 0deg,#fff9 0 5%,#0000 5% 25%,#fff9 25% 30%,#0000 30% 50%,
             #fff9 50% 55%,#0000 55% 75%,#fff9 75% 80%,#0000 80%);
  animation:hv-don 30s linear infinite}
@keyframes hv-don{to{transform:rotate(360deg)}}

/* --- parcali / bulut: suzulen bulut lekeleri --- */
.hava-parcali .hava-efekt::before,.hava-bulut .hava-efekt::before,
.hava-bulut .hava-efekt::after{content:"";position:absolute;
  background:#ffffff9c;border-radius:99px;filter:blur(5px);
  animation:hv-suzul 38s linear infinite}
.hava-parcali .hava-efekt::before{top:7px;left:-90px;width:86px;height:20px}
.hava-bulut .hava-efekt::before{top:5px;left:-90px;width:96px;height:22px}
.hava-bulut .hava-efekt::after{bottom:6px;left:-120px;width:70px;height:16px;
  opacity:.7;animation-duration:52s;animation-delay:-14s}
@keyframes hv-suzul{to{transform:translateX(420px)}}

/* --- yagmur: egik dusen cizgiler. Desen dikey uretilir, katman dondurulur;
       boylece background-position tam bir periyot (14px) kaydirilinca kusursuz doner. --- */
.hava-yagmur .hava-efekt::before,.hava-firtina .hava-efekt::before{content:"";
  position:absolute;inset:-40%;transform:rotate(15deg);
  background:repeating-linear-gradient(to bottom,#0000 0 7px,#ffffffb0 7px 14px);
  background-size:4px 14px;opacity:.55;animation:hv-yagis 1.15s linear infinite}
.hava-firtina .hava-efekt::before{opacity:.4;animation-duration:.85s}
@keyframes hv-yagis{to{background-position:0 14px}}

/* --- kar: iki hizda dusen taneler --- */
.hava-kar .hava-efekt::before,.hava-kar .hava-efekt::after{content:"";position:absolute;inset:-30%;
  background-image:radial-gradient(circle,#fff 1.6px,#0000 1.7px)}
.hava-kar .hava-efekt::before{background-size:22px 22px;opacity:.95;animation:hv-kar1 9s linear infinite}
.hava-kar .hava-efekt::after{background-size:34px 34px;background-position:11px 0;opacity:.6;
  animation:hv-kar2 15s linear infinite}
@keyframes hv-kar1{to{background-position:6px 22px}}
@keyframes hv-kar2{to{background-position:5px 34px}}

/* --- firtina: yagmur + seyrek, YUMUSAK cakim.
       WCAG 2.3.1: saniyede 3 parlamanin cok altinda (10 sn'de 2) ve tepe opaklik .28 --- */
.hava-firtina .hava-efekt::after{content:"";position:absolute;inset:0;background:#fff;
  opacity:0;animation:hv-cakim 10s ease-in-out infinite}
@keyframes hv-cakim{0%,88%,100%{opacity:0}90%{opacity:.28}91.5%{opacity:0}93%{opacity:.16}94.5%{opacity:0}}

/* Hareket istemeyen kullanici: renk ve ikon kalir, hareket tamamen durur */
@media (prefers-reduced-motion:reduce){
  .hava-efekt::before,.hava-efekt::after{animation:none!important}
  .hava-firtina .hava-efekt::after{display:none}
}

.hava-ik{color:var(--h-ink,var(--brand));display:grid;place-items:center;flex:none}
.hava-ik svg{width:30px;height:30px}
.hava-tx{display:grid;line-height:1.25}
.hava-tx b{font-family:Figtree,sans-serif;font-weight:800;font-size:1.3rem;font-variant-numeric:tabular-nums}
.hava-tx i{font-style:normal;font-size:.86rem;font-weight:600;color:var(--h-ink,var(--ink-2));opacity:.85}
.hava-tx u{text-decoration:none;font-size:.76rem;color:var(--h-ink,var(--ink-3));opacity:.7}
@media (max-width:560px){
  .hava{width:100%;justify-content:flex-start}
}
/* Sekmeler: tam genislikte cizgiye oturur, secili olan kalin marka alt cizgisiyle.
   Cizgi tum genisligi kestigi icin altindaki liste ile bagli okunur — eski hap
   grubu bosluklta duruyordu. Sayaclar bilgi de katiyor. */
.sekmeler{display:flex;gap:4px;margin:0 0 16px;
  border-bottom:1.5px solid var(--line);overflow-x:auto;scrollbar-width:none}
.sekmeler::-webkit-scrollbar{display:none}
.sekmeler button{position:relative;flex:none;border:0;background:transparent;color:var(--ink-2);
  font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;
  padding:11px 14px 12px;min-height:46px;display:inline-flex;align-items:center;gap:8px;
  border-bottom:3px solid transparent;margin-bottom:-1.5px;transition:color .15s,border-color .15s}
.sekmeler button:hover{color:var(--ink)}
.sekmeler button:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:6px}
.sekmeler button[aria-selected="true"]{color:var(--brand);border-bottom-color:var(--brand)}
.sk-n{font-family:Figtree,sans-serif;font-weight:700;font-size:.78rem;
  background:var(--sunken);color:var(--ink-2);border-radius:99px;padding:2px 8px;min-width:22px;text-align:center}
.sekmeler button[aria-selected="true"] .sk-n{background:var(--brand-tint);color:var(--brand)}
/* Randevularim: 12 ay suzgeci bildirimi (sekmelerin altinda, listenin ustunde) */
.sure-suzgec{display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin:0 0 14px;padding:10px 13px;font-size:.92rem;color:var(--ink-2);
  background:var(--sunken);border:1px solid var(--line);border-radius:var(--r-sm)}
.sure-suzgec svg{width:16px;height:16px;flex:none;color:var(--ink-3)}
.sure-suzgec b{color:var(--ink);font-weight:700}
.sure-suzgec button{margin-left:auto;border:1.5px solid var(--brand-line);background:var(--card);
  color:var(--brand);font:inherit;font-weight:700;font-size:.88rem;
  border-radius:var(--r-sm);padding:8px 14px;min-height:40px;cursor:pointer}
.sure-suzgec button:hover{background:var(--brand-tint)}
@media (max-width:560px){ .sure-suzgec button{margin-left:0;width:100%} }

.appt-list{display:grid;gap:12px}
/* Iptalde ZORUNLU onay kodu alani. Kod = RANDEVU_ID; iptal proc'u dogruluyor. */
.confirm .ok-giris{width:100%;max-width:15rem;min-height:50px;padding:11px 13px;
  font:inherit;font-size:1.2rem;letter-spacing:.14em;font-variant-numeric:tabular-nums;
  background:var(--card);color:var(--ink);border:1.5px solid var(--line-2);border-radius:var(--r-sm);
  margin-bottom:4px}
.confirm .ok-giris::placeholder{letter-spacing:.06em;font-size:.95rem;color:var(--ink-3)}
.confirm .ok-giris[aria-invalid="true"]{border-color:var(--go);background:var(--go-tint)}
.confirm .err:empty{display:none}
.confirm .err{margin:2px 0 10px;color:var(--go);font-size:.88rem;font-weight:600}
/* Randevularim kartinda onay kodu (= RANDEVU_ID) */
.ai-kod{display:inline-flex;align-items:baseline;gap:6px;color:var(--ink-2)}
.ai-kod b{font-weight:700;color:var(--ink);letter-spacing:.02em}

/* ---------- RANDEVU OZETI (.rz) — TEK KAYNAK ----------
   Ayni siniflar iki ekranda kullanilir: basari ekrani (.rz-tam) ve
   Randevularim ust seridi (.rz-serit). Markup randevuOzetiHtml()'de tek yerde;
   burada da tek CSS blogu var — degisiklik iki ekrana birlikte yansir. */
.rz{position:relative;text-align:left;background:var(--ok-tint);
  border:1.5px solid var(--ok);border-radius:var(--r);padding:16px}
.rz-bas{display:flex;align-items:center;gap:8px;margin:0 0 12px;
  font-family:Figtree,sans-serif;font-weight:800;font-size:.98rem;color:var(--ink)}
.rz-bas svg{width:19px;height:19px;flex:none;color:var(--ok)}
.rz-govde{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.rz-bilgi{display:grid;gap:3px;min-width:0}
.rz-tarih{font-family:Figtree,sans-serif;font-weight:700;font-size:1.08rem}
.rz-saat{display:inline-flex;align-items:center;gap:6px;font-size:.95rem;color:var(--ink-2);
  font-variant-numeric:tabular-nums}
.rz-saat svg{width:15px;height:15px;flex:none}
.rz-poli{font-size:.92rem;color:var(--ink-2)}

.rz-kod{display:grid;gap:2px;justify-items:center;flex:none;
  background:var(--card);border:1.5px solid var(--ok);border-radius:var(--r-sm);padding:10px 16px}
.rz-kod-et{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.rz-kod-no{font-size:1.35rem;letter-spacing:.1em;font-variant-numeric:tabular-nums;line-height:1.1}
.rz-kopya{display:inline-flex;align-items:center;gap:6px;margin-top:5px;
  border:1.5px solid var(--brand-line);background:var(--card);color:var(--brand);
  font:inherit;font-weight:700;font-size:.82rem;border-radius:var(--r-sm);
  padding:7px 12px;min-height:38px;cursor:pointer}
.rz-kopya:hover{background:var(--brand-tint)}
.rz-kopya svg{width:14px;height:14px}

.rz-not,.rz-sms{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;
  font-size:.9rem;color:var(--ink-2);line-height:1.45}
.rz-not svg,.rz-sms svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--ok)}
.rz-sms{padding-top:11px;border-top:1px solid var(--ok)}
.rz-sms b{color:var(--ink);font-weight:700;letter-spacing:.02em}

.rz-ayrinti{margin:13px 0 0;padding-top:12px;border-top:1px solid var(--ok);display:grid;gap:7px}
.rz-ayrinti div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.rz-ayrinti dt{font-size:.9rem;color:var(--ink-2)}
.rz-ayrinti dd{margin:0;font-weight:700;font-size:.93rem;text-align:right}

.rz-kapat{position:absolute;top:9px;right:9px;width:34px;height:34px;display:grid;
  place-items:center;background:none;border:0;border-radius:50%;color:var(--ink-3);cursor:pointer}
.rz-kapat:hover{background:var(--card);color:var(--ink)}
.rz-kapat svg{width:16px;height:16px}

/* Basari ekraninda kod daha buyuk ve ortalanmis; seritte derli toplu */
.rz-tam{margin:20px auto 0;max-width:34rem}
.rz-tam .rz-govde{justify-content:center;text-align:center}
.rz-tam .rz-bilgi{justify-items:center}
.rz-tam .rz-kod-no{font-size:2.2rem;letter-spacing:.12em}
.rz-serit{margin-bottom:16px;padding-right:44px}
@media (max-width:560px){
  .rz-govde{flex-direction:column;align-items:stretch}
  .rz-kod{justify-items:start}
  .rz-ayrinti div{flex-direction:column;gap:1px}
  .rz-ayrinti dd{text-align:left}
}

.done-wrap .sum{margin-top:16px}
.yazdir{margin-top:18px;width:auto;display:inline-flex;align-items:center;gap:9px}
.yazdir svg{width:18px;height:18px}

/* ---------- SMS dogrulama ekrani ---------- */
.sms-wrap{max-width:30rem;margin:0 auto}
.sms-tel{display:flex;align-items:center;gap:9px;margin:0 0 18px;padding:11px 13px;
  background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:var(--r-sm);
  font-size:.95rem;color:var(--ink-2)}
.sms-tel svg{width:17px;height:17px;flex:none;color:var(--brand)}
.sms-tel b{color:var(--ink);font-weight:700;letter-spacing:.02em}
/* Kod alani: 6 hane, iri ve aralikli — telefondan bakip yazmak kolay olsun */
.sms-giris{text-align:center;font-size:1.9rem!important;letter-spacing:.42em;
  font-variant-numeric:tabular-nums;padding-left:.42em!important}
.sms-giris::placeholder{letter-spacing:.42em;color:var(--ink-3)}
.sms-sure{margin:14px 0 0;font-size:.92rem;color:var(--ink-2);text-align:center}
.sms-sure b{font-variant-numeric:tabular-nums;color:var(--ink)}
.sms-alt{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}
.sms-alt button{min-height:44px}
.sms-alt button:disabled{opacity:.45;cursor:not-allowed;text-decoration:none}

/* ---------- KVKK metni (modal) ---------- */
.baglink{border:0;background:none;padding:0;font:inherit;color:var(--brand);
  font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.kvkk-dlg{width:min(94vw,44rem);max-height:86vh;padding:0;border:0;
  border-radius:var(--r);background:var(--card);color:var(--ink);box-shadow:var(--sh-3,0 18px 50px #0003)}
.kvkk-dlg::backdrop{background:#0009}
.kvkk-ic{padding:22px 24px;overflow-y:auto;max-height:calc(86vh - 76px);line-height:1.6}
.kvkk-ic:focus{outline:none}
.kvkk-ic h2{font-size:1.2rem;margin:0 0 4px}
.kvkk-ic h3{font-size:1rem;margin:20px 0 6px;color:var(--brand)}
.kvkk-ic p,.kvkk-ic ul{margin:0 0 10px;font-size:.95rem;color:var(--ink-2)}
.kvkk-ic ul{padding-left:20px}
.kvkk-ic li{margin-bottom:5px}
.kvkk-ic b{color:var(--ink)}
.kvkk-ic .kv-alt{font-size:.86rem;color:var(--ink-3);margin-bottom:14px}
.kvkk-ic .kv-not{margin-top:18px;padding-top:14px;border-top:1.5px solid var(--line);
  font-size:.88rem;color:var(--ink-3)}
.kvkk-alt{display:flex;justify-content:flex-end;padding:14px 24px;border-top:1.5px solid var(--line)}
.kvkk-alt .btn{width:auto}

/* ---------- yazdirma: yalniz randevu ozeti kagida gitsin ---------- */
@media print{
  body{background:#fff}
  header,#stepper,#actbar,.yazdir,.kk-kopya,.hava,.ayar-btn,.ayar-panel,footer{display:none!important}
  .done-wrap{max-width:none}
  .rz,.sum,.note{break-inside:avoid;box-shadow:none}
  .rz{border:2px solid #000;background:#fff}
  .rz-kod{border-color:#000}
  .rz-kopya,.rz-kapat{display:none!important}
  *{color:#000!important}
}
.appt{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-1);overflow:hidden;border-left-width:5px;border-left-style:solid}
/* Durum rengi: aktif yesil · iptal kirmizi (paletin kiremit tonu) · gecmis gri.
   Zemin TINT (≈%8 alfa) oldugu icin metin kontrasti kart zeminine yakin kalir. */
.appt.aktif{background:var(--ok-tint);border-color:var(--ok);border-left-color:var(--ok)}
.appt.cancelled{background:var(--go-tint);border-color:var(--go-line);border-left-color:var(--go)}
.appt.past{background:var(--card-2);border-color:var(--line);border-left-color:var(--line-2)}
/* iptal edilmis kartta gun kutusu da kirmizi tonda olsun */
.appt.cancelled .appt-cal{background:var(--go-tint);border-color:var(--go-line);color:var(--go)}
.appt-main{display:flex;gap:14px;padding:15px 16px;align-items:flex-start}
.appt-cal{width:56px;flex:none;text-align:center;border-radius:10px;background:var(--brand-tint);border:1px solid var(--brand-line);padding:7px 0 8px;color:var(--brand)}
.appt.past .appt-cal{background:var(--sunken);border-color:var(--line);color:var(--ink-3)}
.appt-cal .cd{font-family:Figtree,sans-serif;font-weight:800;font-size:1.5rem;line-height:1}
.appt-cal .cm{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.appt-info{flex:1;min-width:0}
.appt-info .ai-brans{font-family:Figtree,sans-serif;font-weight:700;font-size:1.08rem;line-height:1.25}
.appt-info .ai-hekim{color:var(--ink-2);font-size:.92rem;margin-top:1px}
.appt-info .ai-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:.86rem;color:var(--ink-3)}
.appt-info .ai-meta span{display:inline-flex;align-items:center;gap:5px}
.appt-info .ai-meta svg{width:14px;height:14px}
.appt-info .ai-ref{font-family:"IBM Plex Mono",monospace;font-weight:600;color:var(--ink-2)}
.badge{font-size:.72rem;font-weight:700;letter-spacing:.02em;padding:4px 9px;border-radius:99px;white-space:nowrap;flex:none;align-self:flex-start}
.badge.aktif{background:var(--ok-tint);color:var(--ok);border:1px solid var(--ok)}
.badge.gecmis{background:var(--sunken);color:var(--ink-3);border:1px solid var(--line-2)}
.badge.iptal{background:var(--go-tint);color:var(--go);border:1px solid var(--go-line)}
.appt-foot{display:flex;gap:9px;padding:0 16px 14px;justify-content:flex-end;align-items:center}
.lockmsg{flex:1;font-size:.82rem;color:var(--ink-3);display:flex;align-items:center;gap:7px}
.lockmsg svg{width:15px;height:15px;flex:none}
.abtn{min-height:44px;padding:0 16px;border-radius:var(--r-sm);font:inherit;font-weight:600;font-size:.94rem;cursor:pointer;border:1.5px solid var(--line-2);background:var(--card);color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;transition:background .15s,border-color .15s,color .15s}
.abtn:hover{background:var(--card-2)}
.abtn svg{width:15px;height:15px}
.abtn.danger{color:var(--go);border-color:var(--go-line)}
.abtn.danger:hover{background:var(--go-tint)}
.confirm{border-top:1.5px dashed var(--go-line);background:var(--go-tint);padding:14px 16px}
.confirm .ct{font-family:Figtree,sans-serif;font-weight:700;font-size:1rem;margin:0 0 4px;display:flex;align-items:center;gap:8px}
.confirm .ct svg{width:18px;height:18px;color:var(--go);flex:none}
.confirm .cp{margin:0 0 12px;font-size:.9rem;color:var(--ink-2)}
.confirm label{display:block;font-size:.86rem;font-weight:600;margin:0 0 6px}
.confirm textarea{width:100%;min-height:64px;padding:10px 12px;font:inherit;font-size:.98rem;resize:vertical;background:var(--card);color:var(--ink);border:1.5px solid var(--line-2);border-radius:var(--r-sm)}
.confirm textarea:focus-visible{border-color:var(--go)}
.confirm-act{display:flex;gap:9px;justify-content:flex-end;margin-top:12px}
.confirm-act .abtn.solid{background:var(--go);color:var(--go-ink);border-color:var(--go)}
.empty{text-align:center;padding:40px 20px;color:var(--ink-3)}
.empty svg{width:52px;height:52px;color:var(--line-2);margin-bottom:12px}
.empty p{margin:0}
.dbmsg{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:18px;font-size:.92rem}
.dbmsg .pt{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--ink-3);display:block;margin-bottom:4px}
/* poliklinik uyarisi (SERVIS_ACIKLAMA) */
.wl{display:flex;gap:6px;margin-top:7px;padding:7px 9px;border-radius:7px;font-size:.82rem;
  background:var(--warn-tint);border:1px solid var(--warn);color:var(--ink);line-height:1.4}
.wl svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--warn)}
/* SMS onizleme */
.smsbox{text-align:left;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r);
  overflow:hidden;margin-top:18px;box-shadow:var(--sh-1)}
.smsbox .sh2{padding:11px 14px;background:var(--card-2);border-bottom:1px solid var(--line);
  font-size:.82rem;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:8px}
.smsbox .sh2 svg{width:16px;height:16px;color:var(--brand)}
.smsbody{padding:14px;font-size:.94rem;white-space:pre-line;line-height:1.5}
.smsbox .sf{padding:9px 14px;border-top:1px solid var(--line);font-family:"IBM Plex Mono",monospace;
  font-size:.7rem;color:var(--ink-3);background:var(--card-2)}
.slotinfo{display:flex;flex-wrap:wrap;gap:6px 12px;margin:0 0 16px;font-size:.84rem;color:var(--ink-2)}
.slotinfo b{color:var(--ink);font-family:"IBM Plex Mono",monospace}

.actions{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(21,36,46,.09);z-index:15;padding-bottom:env(safe-area-inset-bottom)}
.actions-in{max-width:660px;margin:0 auto;padding:12px 16px;display:flex;gap:10px;align-items:center}
.btn{min-height:54px;padding:0 22px;border-radius:var(--r-sm);font:inherit;font-family:Figtree,sans-serif;font-weight:700;font-size:1.05rem;cursor:pointer;border:1.5px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:filter .15s,background .15s}
.btn-1{background:var(--brand);color:var(--brand-ink);flex:1;box-shadow:var(--sh-2)}
.btn-1:hover:not(:disabled){filter:brightness(1.08)}
.btn-1:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn-go{background:var(--go);color:var(--go-ink);flex:1;box-shadow:var(--sh-2)}
.btn-go:hover:not(:disabled){filter:brightness(1.08)}
.btn-2{background:var(--card);color:var(--ink);border-color:var(--line-2);flex:0 0 auto;min-width:96px}
.btn-2:hover{background:var(--card-2);border-color:var(--brand)}
.btn svg{width:17px;height:17px}
.livehint{max-width:660px;margin:0 auto;padding:0 16px 10px;font-size:.84rem;color:var(--ink-3)}

/* ---- API surumu: yukleme / hata / bos durumlar ---- */
.yukleniyor{display:flex;align-items:center;gap:10px;padding:26px 4px;color:var(--ink-2);font-size:.95rem}
.spin{width:20px;height:20px;border-radius:50%;border:2.5px solid var(--line-2);
  border-top-color:var(--brand);animation:dn .8s linear infinite;flex:none}
@keyframes dn{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.5s}}
.iskelet{height:64px;border-radius:var(--r);background:var(--card);border:1.5px solid var(--line);
  position:relative;overflow:hidden}
.iskelet::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(109,133,147,.12),transparent);
  animation:kay 1.3s ease-in-out infinite}
@keyframes kay{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){.iskelet::after{animation:none}}
.hata{display:flex;gap:11px;padding:13px 15px;border-radius:var(--r-sm);font-size:.93rem;
  background:var(--go-tint);border:1px solid var(--go-line);color:var(--ink);margin-bottom:16px}
.hata svg{width:19px;height:19px;flex:none;margin-top:2px;color:var(--go)}
.cap-img img{display:block;width:100%;height:100%;object-fit:cover;border-radius:calc(var(--r-sm) - 2px)}
.cap-img{padding:0}
.hasta-adi{font-size:.85rem;color:var(--ink-2);margin-left:auto;padding-right:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.db-html{font-size:.92rem;color:var(--ink-2)}
.db-html h1,.db-html h2{font-size:1rem;margin:0 0 4px;color:var(--ink)}

/* ================= ERISILEBILIRLIK / MOBIL GECISI ================= */

/* Dokunma alani en az 44x44 (WCAG 2.5.8 / 2.5.5) */
.fsgrp .icb{min-width:44px}
.icb{min-width:44px;min-height:44px}


/* Metin icinde buton gibi duran baglanti — captcha alternatifi icin */
.baglanti-btn{background:none;border:0;padding:6px 2px;margin:0;font:inherit;font-size:.86rem;
  color:var(--brand);text-decoration:underline;cursor:pointer;min-height:44px;
  display:inline-flex;align-items:center}
.baglanti-btn:hover{color:var(--ink)}
.baglanti-btn+.baglanti-btn{margin-left:14px}

/* Guvenlik sorusu (gorsel captcha alternatifi) */
.soru-metni{margin:0 0 10px;padding:13px 15px;border-radius:var(--r-sm);
  background:var(--sunken);border:1px solid var(--line-2);
  font-family:Figtree,system-ui,sans-serif;font-weight:700;font-size:1.05rem;color:var(--ink)}
.soru-metni .hint{display:block;font-family:"Source Sans 3",sans-serif;font-weight:400;
  font-size:.85rem;color:var(--ink-2);margin-top:4px}

/* aria-disabled ile pasif gorunum (buton hala odaklanabilir kalir) */
.icb[aria-disabled="true"]{opacity:.45}

/* Hata alani: bos oldugunda yer kaplamasin */
.err:empty{display:none}

/* --- 360px alti cok kucuk ekranlar --- */
@media (max-width:400px){
  .wrap,main{padding-left:12px;padding-right:12px}
  .bar-in{padding:10px 12px;gap:8px}
  .brandmark{gap:10px}
  .brandmark .bmlogo img{height:40px}
  .brandmark .bn{display:none}          /* cok kucuk ekranda logo yeterli */
  .hasta-adi{display:none}                 /* ust cubuk sikismasin */
  .actions-in{padding:10px 12px}
  .btn{font-size:1rem;padding:0 16px}
  .btn-2{min-width:84px}
  .times{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}
  .dates{grid-template-columns:1fr}
  .dates .box.gunkart{padding:12px 13px;gap:12px}
  .gk-gun{width:54px}
  .sum dt{flex:0 0 92px;font-size:.84rem}
  .appt-main{gap:11px;padding:13px 13px}
  .appt-cal{width:48px}
}

/* Sabit alt cubuk icerigi kapatmasin (mobil) */
main{padding-bottom:150px}

/* Yatay tasabilecek icerikler kendi icinde kaydirilsin */
.sum,.appt,.opts{min-width:0}
.ai-brans,.ai-hekim,.opt .t1,.opt .t2{overflow-wrap:anywhere}

/* Odak halkasi her zaman gorunur kalsin (kart icindeki gizli radio dahil) */
.opt input:focus-visible+.box{outline:3px solid var(--focus);outline-offset:2px}
.check:focus-within{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}

/* Atlama baglantisi — odaklaninca kayarak gorunur (left:-9999px yerine transform:
   negatif ofset bazi durumlarda :focus kuralini gecersiz kilabiliyordu). */
.skip{position:fixed;top:0;left:0;z-index:100;
  min-height:44px;display:inline-flex;align-items:center;
  padding:12px 18px;background:var(--card);color:var(--ink);font-weight:600;
  border:1px solid var(--line);border-radius:0 0 10px 0;box-shadow:var(--sh-3);
  text-decoration:none;transform:translateY(-150%);transition:transform .15s ease}
.skip:focus{transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.skip{transition:none}}

/* ================= BRANS ADIMI: ARAMA + SUZGEC ================= */

.suzgec{display:grid;gap:12px;margin-bottom:14px}
.ara{position:relative;display:flex;align-items:center;gap:10px;
  background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--r);
  padding:0 14px;min-height:56px;box-shadow:var(--sh-1);transition:border-color .15s,box-shadow .15s}
.ara:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-tint)}
.ara>svg{width:20px;height:20px;flex:none;color:var(--ink-3)}
.ara input{flex:1;min-width:0;border:0;background:none;color:var(--ink);
  font:inherit;font-size:1.05rem;padding:14px 0;outline:none}
.ara input::placeholder{color:var(--ink-3)}
.ara input::-webkit-search-cancel-button{display:none}
.ara-sil{flex:none;width:40px;height:40px;border:0;background:none;color:var(--ink-3);
  border-radius:50%;cursor:pointer;display:grid;place-items:center}
.ara-sil svg{width:16px;height:16px}
.ara-sil:hover{background:var(--sunken);color:var(--ink)}

.onay-satir{display:flex;align-items:center;gap:11px;min-height:44px;cursor:pointer;
  font-size:.95rem;color:var(--ink-2)}
.onay-satir input{width:22px;height:22px;flex:none;margin:0;accent-color:var(--brand);cursor:pointer}
.onay-satir b{color:var(--ink);font-family:"IBM Plex Mono",monospace;font-size:.85rem}
.onay-satir:focus-within{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}

.sonuc-sayi{margin:0 0 12px;font-size:.85rem;color:var(--ink-3);font-weight:600}

/* Kart basligi ve alt satiri satir ici span'lardi: alt metin basliga yapisiyordu
   ("Çocuk Sağlığı ve HastalıklarıBu branş sizin için uygun değil"). */
.opt .t1,.opt .t2{display:block}
.opt .wl{display:flex}
.bos-suzgec{margin:0;padding:26px 18px;text-align:center;color:var(--ink-3);
  background:var(--card-2);border:1.5px dashed var(--line-2);border-radius:var(--r)}

/* Iki kolon: uzun branş listesi tek kolonda çok uzuyor */
@media (min-width:640px){
  .opts.iki-kolon{grid-template-columns:1fr 1fr}
  .opts.iki-kolon .box{min-height:72px}
}

/* ================= GIRIS EKRANI ================= */

/* Ust cubuk: kurum adi + alt satirda sistem adi (kurum adi DB'den gelince gorunur) */
.brandmark .bn{display:flex;flex-direction:column;justify-content:center;line-height:1.18;min-width:0}
.brandmark .bn b{font-family:Figtree,sans-serif;font-weight:700;font-size:1.06rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brandmark .bn small{font-size:.74rem;font-weight:600;color:var(--ink-3);
  letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Kurum logosu. Logo seffaf zeminli: acik temada dogrudan durur, koyu temada
   "HOSPITAL" yazisi okunmaz hale geldigi icin fildisi plaket uzerine alinir
   (logonun kendi renkleri hic degistirilmez). */
.brandmark .bmlogo{flex:none;display:flex;align-items:center;border-radius:9px;
  padding:var(--logo-pad,0);background:var(--logo-plaka,transparent)}
.brandmark .bmlogo img{display:block;height:56px;width:auto}
.brandmark .bn{border-left:1px solid var(--line);padding-left:11px}

/* Giris ekraninda sabit alt cubuk yok → alt bosluk kucuk kalsin */
body.v-login main{padding-bottom:44px}

.giris{display:grid;gap:20px}
@media (min-width:920px){
  body.v-login main{max-width:1060px;padding-top:30px}
  .giris{grid-template-columns:minmax(0,1fr) minmax(380px,450px);
    grid-template-areas:"hos form" "notlar form";
    grid-template-rows:auto 1fr;column-gap:26px;row-gap:22px;align-items:start}
  .karsilama{grid-area:hos}
  .giris-kart{grid-area:form}
  /* Harita karti masaustunde SOL kolonun 2. satirinda (mevcut "notlar" alani).
     Cepte tek kolon oldugu icin DOM sirasi geregi FORMUN ALTINDA kalir —
     order hilesine gerek yok, kart .giris-kart'in kardesi ve DOM'da sonda. */
  .harita-kart{grid-area:notlar}
  /* Kartlar .karsilama icinde; grid alani kullanilmiyor, bosluk .k-notlar'dan gelir */
}

/* --- harita karti: "Haritadaki Yerimiz" --- */
.harita-kart{background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--sh-1);overflow:hidden;padding:18px 20px 16px}
.harita-kart h2{display:flex;align-items:center;gap:9px;margin:0 0 6px;
  font-family:Figtree,sans-serif;font-size:1.06rem;font-weight:800}
.harita-kart h2 svg{width:19px;height:19px;flex:none;color:var(--brand)}
.hk-adres{margin:0 0 13px;font-size:.95rem;color:var(--ink-2);line-height:1.5;
  max-width:min(100%,52ch)}
/* Cerceve orani sabit: harita yuklenmezse de duzen ziplamaz */
.hk-cerceve{position:relative;aspect-ratio:16/9;min-height:180px;
  border:1.5px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--sunken)}
.hk-cerceve iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.hk-alt{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px}
.hk-tarif{width:auto;display:inline-flex;align-items:center;gap:9px;text-decoration:none}
.hk-tarif svg{width:17px;height:17px}
.hk-buyut{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600;
  color:var(--brand);text-decoration:none;min-height:44px}
.hk-buyut:hover{text-decoration:underline;text-underline-offset:3px}
.hk-buyut svg{width:15px;height:15px;flex:none}
.hk-not{font-size:.82rem;color:var(--ink-3)}

/* Calisma saatleri: harita ile butonlar arasinda, hairline ile ayrilmis */
.hk-saat{margin-top:15px;padding-top:14px;border-top:1.5px solid var(--line)}
.hk-saat h3{display:flex;align-items:center;gap:8px;margin:0 0 9px;
  font-family:Figtree,sans-serif;font-size:.95rem;font-weight:800}
.hk-saat h3 svg{width:17px;height:17px;flex:none;color:var(--brand)}
.hk-saat dl{margin:0;display:grid;gap:6px}
.hk-saat dl div{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.hk-saat dt{font-size:.92rem;color:var(--ink-2)}
/* Saatler tabular: rakamlar alt alta hizali okunur */
.hk-saat dd{margin:0;font-weight:700;font-size:.94rem;font-variant-numeric:tabular-nums;
  text-align:right;white-space:nowrap}
.hk-acil{display:flex;align-items:center;gap:8px;margin:11px 0 0;
  background:var(--ok-tint);border:1px solid var(--ok);border-radius:var(--r-sm);
  padding:9px 12px;font-size:.9rem;font-weight:600;color:var(--ink)}
.hk-acil svg{width:16px;height:16px;flex:none;color:var(--ok)}

@media (max-width:560px){
  .hk-cerceve{aspect-ratio:4/3}
  .hk-tarif{width:100%;justify-content:center}
  .hk-saat dl div{flex-direction:column;gap:1px}
  .hk-saat dd{text-align:left}
}

/* --- sol: karsilama --- */
.karsilama{padding-top:4px}
.k-etiket{display:inline-flex;align-items:center;gap:7px;margin:0 0 14px;
  padding:6px 13px 6px 10px;border-radius:99px;
  background:var(--brand-tint);border:1px solid var(--brand-line);color:var(--brand);
  font-size:.8rem;font-weight:700;letter-spacing:.02em;max-width:100%}
.k-etiket svg{width:15px;height:15px;flex:none}
.k-etiket span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-baslik{margin:0 0 14px;font-size:clamp(1.6rem,5.2vw,2.5rem);font-weight:800;
  line-height:1.14;text-wrap:balance}
.k-baslik em{font-style:normal;color:var(--brand)}
.k-lead{margin:0;color:var(--ink-2);font-size:1.06rem;line-height:1.62;max-width:56ch}
/* Kurumun ticari unvani (parametre 32'deki h1'in ikinci satiri) */
/* --ink-3 gokyuzunde 3.42 veriyordu (AA alti) -> --ink */
.k-tuzel{margin:-6px 0 16px;font-size:.98rem;color:var(--ink);font-weight:600;max-width:52ch}
/* DB metnindeki telefonlar otomatik baglanti olur */
.k-lead .tel-bag,.kn .tel-bag{color:var(--brand);font-weight:700;text-decoration:underline;
  text-underline-offset:2px;white-space:nowrap;padding:7px 1px}
.k-lead .tel-bag:hover,.kn .tel-bag:hover{color:var(--ink)}
/* Uyari niteligindeki kart ikonu (telefon disi bloklar) */
.kn-ic.uyari{background:var(--clay,var(--go-tint));color:var(--go);border-color:var(--go-line)}

/* Kurumun DB'den gelen giris metni (parametre 32). Inline renkler sunucuda silindigi icin
   burada TEMA renkleri gecerli; olculer bizim tipografiye oturtulur. */
/* Gokyuzu zemini uzerinde: --ink-2 en koyu durakta 2.43 veriyordu (AA alti) */
.k-icerik{max-width:60ch;color:var(--ink);font-size:1.04rem;line-height:1.62}
.k-icerik center{text-align:left}
.k-icerik h1{font-size:clamp(1.5rem,4.4vw,2.1rem);font-weight:800;line-height:1.15;
  color:var(--ink);margin:0 0 6px;text-wrap:balance}
.k-icerik h3{font-size:1.12rem;font-weight:700;color:var(--brand);margin:0 0 18px}
.k-icerik strong,.k-icerik b{color:var(--ink);font-weight:700}
.k-icerik br+br{content:"";display:block;height:8px}
.k-lead b{color:var(--ink);font-weight:600}

/* --- notlar (kayit sarti + 30 dk) --- */
/* Karsilama metni ile bilgi kartlari arasi bosluk (kartlar metne yapisiyordu) */
/* Kartlar ustteki metnin bittigi yere kadar: lead 56ch'te sariyor ama metin ~52ch'te
   bitiyor, kartlari 552px yerine ~438px'e cekiyoruz (olculdu). Mobilde tasmasin. */
.k-notlar{display:grid;gap:12px;align-self:start;margin-top:26px;max-width:min(100%,52ch)}
.kn{display:flex;gap:12px;padding:14px 15px;border-radius:var(--r);
  background:var(--card);border:1px solid var(--line);box-shadow:var(--sh-1)}
.kn-ic{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;
  background:var(--brand-tint);color:var(--brand);border:1px solid var(--brand-line)}
.kn-ic svg{width:18px;height:18px}
.kn p{margin:0;font-size:.93rem;line-height:1.55;color:var(--ink-2)}
.kn p b{color:var(--ink);font-weight:700}
/* Telefon baglantilari: satir ici oldugu icin dikey dolgu satir yuksekligini bozmaz,
   ama dokunma alanini ~35px'e cikarir (yasli kullanici agirlikli kitle). */
.kn a{color:var(--brand);font-weight:700;text-decoration:underline;
  text-underline-offset:2px;white-space:nowrap;padding:7px 1px}
.kn a:hover{color:var(--ink)}

/* --- sag: giris karti --- */
.giris-kart{background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--sh-3);overflow:hidden}
.gk-head{display:flex;gap:13px;align-items:center;padding:17px 20px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--brand-tint),transparent)}
.gk-ic{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:var(--brand);color:var(--brand-ink);box-shadow:var(--sh-1)}
.gk-ic svg{width:22px;height:22px}
.gk-ht h2{margin:0;font-size:1.16rem;font-weight:800;font-family:Figtree,sans-serif}
.gk-ht p{margin:3px 0 0;font-size:.86rem;color:var(--ink-2);line-height:1.4}
.gk-body{padding:20px}
.gk-foot{padding:0 20px 20px;display:grid;gap:8px}
.gk-foot .btn-1{width:100%}
.kart-hint{margin:0;font-size:.84rem;color:var(--ink-3);text-align:center;min-height:1.2em}
.kart-hint:empty{min-height:0}

@media (max-width:400px){
  .gk-body,.gk-head{padding-left:15px;padding-right:15px}
  .gk-foot{padding-left:15px;padding-right:15px}
  .kn{padding:12px 13px}
  .kn a{white-space:normal}
}
