/* Doktor Yönetimi — randevu penceresi. Fotoğraflı başlık (hastane resepsiyonu, son adımda hekimin dekupe fotoğrafı),
   fotoğraflı hastane kartları, aranabilir birim listesi, yuvarlak gün düğmeleri ve saatler, yapışık "Devam et"
   çubuğu, kutu içinde duran alan adları, adımlar arası yumuşak geçiş. */
.dy-form {
	--dy: #004071;
	--dy-mavi: #0050a0;
	--dy-baslik: #0a1128;
	--dy-govde: #1f2d3d;
	--dy-gri: #4a5768;
	--dy-soluk: #8a96a6;
	--dy-acik: #f5f7fa;
	--dy-alan: #eaeef3;
	--dy-cizgi: #e2e7ed;
	--dy-kenar: #c9d1dc;
	--dy-saat: #edf3fa;
	--dy-saat-hover: #dce8f6;
	--dy-yesil: #1b7a43;
	--dy-bg: #f5f7fa;
	--dy-egri: cubic-bezier(.2, 0, 0, 1);
	--dy-ic: 32px;
	container: dyform / inline-size;
	position: relative;
	max-width: none;
	margin: 0 auto;
	color: var(--dy-govde);
	font-size: 15px;
	line-height: 1.55;
	text-align: left;
}
.dy-form *, .dy-form *::before, .dy-form *::after { box-sizing: border-box; }
.dy-form [hidden] { display: none !important; }
.dy-form button { font-family: inherit; }
.dy-form :focus-visible { outline: 2px solid var(--dy-mavi); outline-offset: 2px; }
.dy-form .dy-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.dy-form.dy-not-bookable { padding: 28px 24px; }

/* ── Fotoğraflı başlık ── */
.dy-form .dy-kapak { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 150px; padding: 30px var(--dy-ic) 22px; overflow: hidden; background: var(--dy); color: #fff; }
/* Hekim seçiliyken kompakt başlık: solda bandın altına oturan dekupe portre, hemen sağında ad, birim ve müsaitlik
   (telefonda düzen aşağıdaki 600 px kuralında). */
.dy-form .dy-kapak.is-hekim { display: grid; grid-template-columns: auto minmax(0, 1fr); justify-content: start; align-items: center; column-gap: 20px; min-height: 0; padding-top: 18px; padding-bottom: 0; }
/* Başlık zemini hekim sayfasındaki bantla aynı düz lacivert: bulanık hastane fotoğrafı lacivert örtünün altında kirli
   çizgi gibi duruyordu (Batuhan, 1 Kas). Gizli öğenin arka plan görseli indirilmez. */
.dy-form .dy-kapak__zemin { display: none; }
/* Başlık zemini hekim sayfası bandının saten görseli (WebGL'in sabit karesi, WebP; Batuhan 2 Kas: "video olmasına gerek yok").
   Lacivert düz renk görsel gelene kadar ve görsel yoksa görünür. Telefonda dikey küçük kare. */
.dy-form .dy-kapak { background: var(--dy) url("../img/hekim-bandi-saten.webp") center / cover no-repeat; }
@media (max-width: 600px) {
	.dy-form .dy-kapak { background-image: url("../img/hekim-bandi-saten-k.webp"); }
}
.dy-form .dy-kapak__hekim { position: absolute; right: 96px; bottom: 0; z-index: 0; display: block; width: auto; height: 212px; aspect-ratio: 3 / 4; object-fit: contain; object-position: bottom; max-width: none; filter: drop-shadow(0 18px 28px rgba(0, 0, 0, .28)); animation: dy-giris-yukari .5s var(--dy-egri) both; }
.dy-form .dy-kapak__metin { position: relative; z-index: 1; max-width: 100%; }
.dy-form .dy-kapak.is-hekim .dy-kapak__metin { grid-column: 2; grid-row: 1; max-width: none; padding-bottom: 18px; }
.dy-form .dy-kapak.is-hekim .dy-kapak__hekim { position: static; grid-column: 1; grid-row: 1; align-self: end; height: 124px; margin-left: -6px; }
.dy-form .dy-form__baslik { margin: 0; font-size: 26px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em; color: #fff; }
.dy-form .dy-kapak.is-hekim .dy-form__baslik { margin-bottom: 6px; font-size: 13px; font-weight: 500; letter-spacing: 0; color: rgba(255, 255, 255, .72); }
.dy-form .dy-kapak__ad { margin: 0; font-size: 24px; font-weight: 600; line-height: 1.2; letter-spacing: -.02em; color: #fff; }
.dy-form .dy-form__alt { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, .8); }
/* Hekim başlığında birim · hastane: ayraç ikinci öğenin soluna asılı durur; satır kırılıp ikinci öğe satır başına inince
   ayraç satırın dışında kalır ve kırpılır (noktayla başlayan satır olmaz). */
.dy-form .dy-kapak.is-hekim .dy-form__alt { display: flex; flex-wrap: wrap; column-gap: 14px; overflow: hidden; overflow: clip; }
.dy-form .dy-kapak.is-hekim .dy-form__alt span { position: relative; }
.dy-form .dy-kapak.is-hekim .dy-form__alt span + span::before { content: "·"; content: "·" / ""; position: absolute; top: 0; right: 100%; width: 14px; text-align: center; }
.dy-form .dy-kapak__alt-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; }
.dy-form .dy-kapak__alt-satir:has(> :not([hidden])) { margin-top: 12px; }
/* Müsaitlik: yazı beyaz, yeşil yalnız noktada (hekim sayfası bandındaki "En Yakın Randevu" ile aynı). */
.dy-form .dy-form__musait { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding-left: 3px; font-size: 13px; line-height: 1.3; color: #fff; white-space: nowrap; }
.dy-form .dy-form__musait::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 3px rgba(74, 222, 128, .18); }
.dy-form .dy-form__musait b { font-weight: 600; }
/* Dokunma kutusu 44 px; görünen daire 40 px kalır (::before). */
/* Kapat: çerçevesiz ince X (40 px'lik yarı saydam daire "kaba" bulundu, Batuhan 2 Kas); fareyle üstüne gelince hafif daire.
   Dokunma alanı 44 px. */
.dy-form .dy-kapat { position: absolute; top: 14px; right: 14px; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: none; color: rgba(255, 255, 255, .85); cursor: pointer; transition: color .15s var(--dy-egri); }
.dy-form .dy-kapat::before { content: ""; position: absolute; inset: 6px; z-index: -1; border-radius: 50%; background: transparent; transition: background-color .15s var(--dy-egri); }
.dy-form .dy-kapat:hover { color: #fff; }
.dy-form .dy-kapat:hover::before { background: rgba(255, 255, 255, .12); }
.dy-form .dy-kapat svg { width: 16px; height: 16px; }
.dy-form .dy-kapak:has(.dy-kapat:not([hidden])) .dy-kapak__metin { padding-right: 44px; }

/* Adımlar: başlığın altında ince beyaz çizgi; hekim sayfasından açılan akışta yok */
.dy-form .dy-steps { position: relative; z-index: 1; display: flex; gap: 6px; margin: 20px 0 0; padding: 0; list-style: none; }
.dy-form .dy-step { display: flex; flex: 1 1 0; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding: 0; border-radius: 0; background: none; font-size: 12px; font-weight: 500; line-height: 1.3; color: rgba(255, 255, 255, .8); text-align: left; white-space: nowrap; }
.dy-form .dy-step::before { content: ""; height: 3px; border-radius: 2px; background: rgba(255, 255, 255, .22); transition: background-color .25s var(--dy-egri); }
.dy-form .dy-step.is-active, .dy-form .dy-step.is-done { background: none; }
.dy-form .dy-step.is-active { font-weight: 600; color: #fff; }
.dy-form .dy-step.is-active::before, .dy-form .dy-step.is-done::before { background: #fff; }
.dy-form.is-hekim .dy-steps, .dy-form .dy-kapak.is-hekim .dy-steps { display: none; }

/* ── Gövde ── */
.dy-form .dy-govde { padding: 28px var(--dy-ic) 32px; }
.dy-form .dy-panel:not([hidden]), .dy-form .dy-bolum-saat, .dy-form .dy-bolum-bilgi { animation: dy-giris .32s var(--dy-egri) both; }
@keyframes dy-giris { from { opacity: 0; transform: translateY(8px); } }
@keyframes dy-giris-yukari { from { opacity: 0; transform: translateY(14px); } }
.dy-form .dy-alert { margin: 0 0 16px; padding: 12px 14px; border: 0; border-radius: 12px; background: #fdf0ef; font-size: 14px; line-height: 1.5; color: #b42318; }
/* Hata çıkmaz sokak olmasın: yeniden dene ve çağrı merkezi (1.2.90). */
.dy-form .dy-alert__eylem { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 10px; }
.dy-form .dy-alert__tekrar { height: 36px; padding: 0 14px; border: 1px solid currentColor; border-radius: 8px; background: #fff; font: inherit; font-size: 13px; font-weight: 600; color: #b42318; cursor: pointer; }
.dy-form .dy-alert__tel { font-size: 13px; font-weight: 600; color: #b42318; text-decoration: underline; text-underline-offset: 3px; }
/* Adım değişince odak kodla başlığa ya da mesaja verilir (tabindex=-1): orada halka çizilmez, gerçek düğme ve alanların halkası durur. */
.dy-form .dy-panel h4:focus, .dy-form .dy-bolum-baslik:focus, .dy-form .dy-cc-title:focus, .dy-form .dy-success p:focus { outline: none; }
.dy-form .dy-panel h4 { margin: 0 0 14px; font-size: 16px; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; color: var(--dy-baslik); text-transform: none; }
.dy-form .dy-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 0; border: 0; background: none; font-size: 13px; font-weight: 600; line-height: 1.4; color: var(--dy-mavi); cursor: pointer; }
.dy-form .dy-back:hover { color: var(--dy); }
.dy-form .dy-loading { padding: 20px; color: var(--dy-gri); text-align: center; }

/* Seçim satırları (birim, hekim): kutu değil, saç teli çizgilerle ayrılan sade liste */
.dy-form .dy-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 24px; }
.dy-form .dy-choice { position: relative; display: block; width: 100%; min-height: 48px; margin: 0; padding: 13px 32px 13px 4px; border: 0; border-bottom: 1px solid #edf0f3; border-radius: 0; background: none; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--dy-baslik); text-align: left; cursor: pointer; transition: color .15s var(--dy-egri); }
.dy-form .dy-choice::after { content: ""; position: absolute; top: 50%; right: 6px; width: 14px; height: 14px; margin-top: -7px; background: currentColor; opacity: .35; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: opacity .15s var(--dy-egri), transform .15s var(--dy-egri); }
.dy-form .dy-choice:hover { border-color: #edf0f3; background: none; box-shadow: none; color: var(--dy-mavi); }
.dy-form .dy-choice:hover::after { opacity: .9; transform: translateX(2px); }
.dy-form .dy-choice strong { font-weight: 500; }
.dy-form .dy-choice small { font-size: 13px; font-weight: 500; color: var(--dy-gri); }
.dy-form .dy-doctor { display: flex; align-items: center; gap: 14px; padding-top: 8px; padding-bottom: 8px; }
.dy-form .dy-doctor img { flex: none; width: 48px; height: 64px; border-radius: 8px; background: #eef2f6; object-fit: contain; object-position: 50% 100%; }

/* Hastane kartları (fotoğraflı) */
.dy-form .dy-hastaneler { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
.dy-form .dy-choice.dy-hastane-kart { display: flex; flex-direction: column; min-height: 0; padding: 0; border: 0; border-radius: 16px; background: none; }
.dy-form .dy-choice.dy-hastane-kart::after { display: none; }
.dy-form .dy-choice.dy-hastane-kart:hover { background: none; }
.dy-form .dy-hastane-kart__foto { display: block; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 14px; background: var(--dy-alan) center / cover no-repeat; transition: transform .25s var(--dy-egri), box-shadow .25s var(--dy-egri); }
.dy-form .dy-hastane-kart__foto { background-image: var(--dy-foto, none); }
.dy-form .dy-hastane-kart__ad { display: block; padding: 9px 2px 0; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--dy-baslik); }
.dy-form .dy-hastane-kart:hover .dy-hastane-kart__foto { transform: translateY(-3px); box-shadow: 0 16px 30px -18px rgba(10, 17, 40, .5); }
.dy-form .dy-hastane-kart:hover .dy-hastane-kart__ad { color: var(--dy-mavi); }

/* Birim arama */
.dy-form .dy-ara { position: relative; display: block; margin: 0 0 14px; }
.dy-form .dy-ara svg { position: absolute; top: 50%; left: 12px; width: 16px; height: 16px; margin-top: -8px; color: var(--dy-gri); pointer-events: none; }
.dy-form .dy-ara__girdi { width: 100%; height: 40px; margin: 0; padding: 0 12px 0 38px; border: 1px solid #e4e8ed; border-radius: 8px; background: #fff; box-shadow: none; font-family: inherit; font-size: 14px; font-weight: 400; color: var(--dy-baslik); transition: background-color .15s var(--dy-egri), box-shadow .15s var(--dy-egri); }
.dy-form .dy-ara__girdi::placeholder { font-weight: 450; color: var(--dy-soluk); opacity: 1; }
.dy-form .dy-ara__girdi:focus { background: #fff; box-shadow: 0 0 0 1px var(--dy), 0 0 0 4px rgba(0, 80, 160, .12); outline: none; }
.dy-form .dy-ara__bos { margin: 4px 0 0; font-size: 14px; color: var(--dy-gri); }

/* ── Son adım ── */
.dy-form .dy-summary { display: none !important; }
/* Hekim ve hastane değiştirme: 4. adımın başında iki küçük bağlantı */
.dy-form .dy-degis { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0 0 16px; }
.dy-form .dy-degis button { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--dy-mavi); cursor: pointer; }
/* Dokunma alanı 44 px yüksekliğe uzar (görünmez ::before); görünüm ve odak halkası aynı kalır. */
.dy-form .dy-degis button::before, .dy-form .dy-back::before { content: ""; position: absolute; inset: -13px -8px; }
.dy-form .dy-degis button:hover { color: var(--dy); text-decoration: underline; text-underline-offset: 3px; }
.dy-form .dy-degis svg { flex: none; width: 15px; height: 15px; }
.dy-form .dy-panel[data-gorunum="saat"] .dy-bolum-bilgi,
.dy-form .dy-panel[data-gorunum="bilgi"] .dy-bolum-saat { display: none; }
.dy-form .dy-doctor-note { display: flex; gap: 10px; margin: 0 0 18px !important; padding: 0; border: 0; border-radius: 0; background: none; font-size: 13px; font-weight: 400; line-height: 1.5; color: var(--dy-govde) !important; }
.dy-form .dy-doctor-note::before { content: ""; flex: none; width: 18px; height: 18px; background: var(--dy-mavi); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E") center / contain no-repeat; }
.dy-form .dy-panel h4.dy-bolum-baslik { margin: 0 0 16px; }
/* Temanın başlıklara verdiği üst iç boşluk (24 px) pencerede not ve seçim satırının altında fazladan boşluk açıyordu. */
.dy-form .dy-panel h4 { padding-top: 0; }

/* Gün ve saatler (easyui takvim dili): kutu, çerçeve, gölge yok; düz yazı, seçilen tek lacivert dolgu. */
.dy-form .dy-slots-wrap { margin: 0; }
.dy-form .dy-gun-ust { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 8px; }
.dy-form .dy-gun-ay { font-size: 14px; font-weight: 500; color: var(--dy-baslik); }
.dy-form .dy-gun-oklar { display: flex; gap: 0; }
/* Dokunma kutusu 44 px (yerleşim 32 px kalır: dikey negatif boşluk); görünen hover dairesi 32 px (::before). */
.dy-form .dy-slot-prev, .dy-form .dy-slot-next { position: relative; z-index: 0; display: grid; place-items: center; width: 44px; height: 44px; margin: -6px 0; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--dy-baslik); cursor: pointer; }
.dy-form .dy-slot-prev::before, .dy-form .dy-slot-next::before { content: ""; position: absolute; inset: 6px; z-index: -1; border-radius: 50%; transition: background-color .15s var(--dy-egri); }
.dy-form .dy-slot-prev svg, .dy-form .dy-slot-next svg { width: 16px; height: 16px; }
.dy-form .dy-slot-prev:hover:not(:disabled)::before, .dy-form .dy-slot-next:hover:not(:disabled)::before { background: #f4f5f7; }
.dy-form .dy-slot-prev:disabled, .dy-form .dy-slot-next:disabled { opacity: .3; background: none; cursor: default; }
.dy-form .dy-gunler { display: grid; grid-template-columns: repeat(var(--dy-serit, 7), minmax(0, 1fr)); gap: 4px; margin: 0 0 18px; padding: 0 0 16px; border-bottom: 1px solid #edf0f3; }
.dy-form .dy-gun { display: flex; flex-direction: column; align-items: center; gap: 6px; height: auto; padding: 4px 0; border: 0; border-radius: 0; background: none; line-height: 1; color: var(--dy-baslik); box-shadow: none; cursor: pointer; }
.dy-form .dy-gun .n { font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--dy-gri); }
.dy-form .dy-gun .c { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; font-size: 15px; font-weight: 400; font-variant-numeric: tabular-nums; transition: background-color .18s var(--dy-egri), color .18s var(--dy-egri); }
.dy-form .dy-gun:hover .c { background: #f4f5f7; }
.dy-form .dy-gun .t, .dy-form .dy-gun .g { display: none; }
.dy-form .dy-gun[aria-pressed="true"] { background: none; color: var(--dy-baslik); box-shadow: none; transform: none; }
.dy-form .dy-gun[aria-pressed="true"] .n { color: var(--dy); font-weight: 500; }
.dy-form .dy-gun[aria-pressed="true"] .c { background: var(--dy); color: #fff; font-weight: 500; }

.dy-form .dy-saat-grup { margin: 0 0 6px; font-size: 12px; font-weight: 500; color: var(--dy-gri); }
.dy-form .dy-saat-izgara + .dy-saat-grup { margin-top: 14px; }
.dy-form .dy-saat-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 12px; }
/* Saat: dar, ince ve soluk çerçeveli küçük kutu, aralarında nefes; üstüne gelince çerçeve koyulaşır, seçili lacivert. */
.dy-form .dy-slot { height: 34px; padding: 0; border: 1px solid #e4e8ed; border-radius: 8px; background: #fff; font-size: 13px; font-weight: 500; line-height: 1; color: #4b5868; text-align: center; font-variant-numeric: tabular-nums; box-shadow: none; cursor: pointer; transition: border-color .15s var(--dy-egri), background-color .15s var(--dy-egri), color .15s var(--dy-egri); }
.dy-form .dy-slot:hover { border-color: #9fb2c6; background: #fff; color: var(--dy); }
.dy-form .dy-slot.is-sel, .dy-form .dy-slot.is-sel:hover { border-color: var(--dy); background: var(--dy); color: #fff; font-weight: 600; }
.dy-form .dy-noslot { padding: 14px; border-radius: 12px; background: #f4f5f7; font-size: 14px; color: var(--dy-gri); }

/* Telefonla randevu: kalp ritmi çizgisi ve numara. Yalnız hastane, birim ve hekim adımlarında; saat adımında
   "Devam et" çubuğu, sonuçta başarı ekranı alttadır. Çizgi soldan kırpılır, ritim hep sağda ve oranı bozulmaz. */
.dy-form .dy-tel { display: grid; grid-template-areas: "ritim ritim" "metin ara"; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 16px; margin-top: 28px; color: var(--dy-baslik); text-decoration: none; }
.dy-form[data-adim="4"] .dy-tel, .dy-form[data-adim="5"] .dy-tel { display: none; }
.dy-form .dy-tel__ritim { grid-area: ritim; position: relative; display: block; height: 40px; overflow: hidden; }
.dy-form .dy-tel__ritim svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: #d9dee5; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.dy-form .dy-tel__ritim path { vector-effect: non-scaling-stroke; }
/* Çizginin tamamı açık gri durur; üstünden düz lacivert bir ışık soldan sağa atıp geçer (1 sn), 1,2 sn dinlenir,
   yeniden. Parlak mavi ve uzun solma "neon" gibi duruyordu: renk kurumsal lacivert, uçlar kısa. */
.dy-form .dy-tel__ritim .dy-tel__isik { stroke: var(--dy); -webkit-mask: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent) -60% 0 / 30% 100% no-repeat; mask: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent) -60% 0 / 30% 100% no-repeat; animation: dy-tel-tarama 2s linear infinite; }
@keyframes dy-tel-tarama { 0% { -webkit-mask-position: -60% 0; mask-position: -60% 0; } 40%, 100% { -webkit-mask-position: 160% 0; mask-position: 160% 0; } }
.dy-form .dy-tel__metin { grid-area: metin; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dy-form .dy-tel__etiket { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--dy-gri); }
.dy-form .dy-tel__no { font-size: 20px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--dy-baslik); font-variant-numeric: tabular-nums; }
.dy-form .dy-tel__ara { grid-area: ara; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: #eef3f9; color: var(--dy); transition: background-color .16s var(--dy-egri), color .16s var(--dy-egri); }
.dy-form .dy-tel__ara svg { width: 17px; height: 17px; }
.dy-form .dy-tel:hover .dy-tel__ara { background: var(--dy); color: #fff; }

/* Yapışık "Devam et" çubuğu */
.dy-form .dy-devam-cubuk { position: sticky; bottom: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 28px calc(-1 * var(--dy-ic)) -32px; padding: 16px var(--dy-ic); border-top: 1px solid var(--dy-cizgi); background: rgba(255, 255, 255, .97); }
.dy-form .dy-devam-cubuk__secim { margin: 0; min-width: 0; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--dy-gri); }
.dy-form .dy-devam-cubuk__secim.is-secili { font-weight: 500; color: var(--dy-baslik); }
.dy-form .dy-devam, .dy-form .dy-submit { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: none; min-height: 40px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--dy); font-size: 14px; font-weight: 500; line-height: 1.2; color: #fff; box-shadow: none; cursor: pointer; transition: background-color .16s var(--dy-egri); }
.dy-form .dy-devam::after, .dy-form .dy-submit::after { content: ""; flex: none; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; }
.dy-form .dy-devam:hover:not(:disabled), .dy-form .dy-submit:hover:not(:disabled) { background: var(--dy-mavi); }
.dy-form .dy-devam:disabled, .dy-form .dy-submit:disabled { background: #f0f2f4; color: #7a8594; opacity: 1; box-shadow: none; cursor: not-allowed; }

/* Bilgiler ekranı */

/* Alanlar: shadcn/ui input (etiket üstte, 42 px, saç teli çerçeve, hafif gölge; odakta lacivert halka). */
.dy-form .dy-fields .dy-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px 12px; margin: 0 0 14px; }
.dy-form .dy-fields .dy-full { grid-column: 1 / -1; }
.dy-form .dy-alan { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 6px; min-width: 0; margin: 0; font-size: 15px; font-weight: 400; line-height: 1.55; }
.dy-form .dy-alan > span { font-size: 13px; font-weight: 500; line-height: 1.3; color: #3b4656; }
.dy-form .dy-alan input,
.dy-form .dy-alan select {
	display: block;
	width: 100%;
	height: 44px;
	min-height: 0; /* temanın 48 px en az yüksekliği alanları gereksiz açıyordu */
	margin: 0;
	padding: 0 12px;
	border: 1px solid #e4e7eb;
	border-radius: 8px;
	background: #fff;
	box-shadow: none;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.3;
	color: var(--dy-baslik);
	transition: border-color .15s var(--dy-egri), box-shadow .15s var(--dy-egri);
	-webkit-appearance: none;
	appearance: none;
}
.dy-form .dy-alan select { padding-right: 34px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2356657a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 12px center / 16px no-repeat; cursor: pointer; }
.dy-form .dy-alan input:hover, .dy-form .dy-alan select:hover { border-color: #cfd5dc; }
.dy-form .dy-alan input:focus, .dy-form .dy-alan select:focus { border-color: var(--dy); box-shadow: 0 0 0 3px rgba(0, 80, 160, .12); outline: none; }
.dy-form .dy-alan input::placeholder { font-weight: 400; color: var(--dy-soluk); opacity: 1; }
.dy-form .dy-alan:has(.dy-invalid) > span { color: #b42318; }
.dy-form .dy-alan input.dy-invalid, .dy-form .dy-alan select.dy-invalid { border-color: #b42318 !important; box-shadow: 0 0 0 3px rgba(180, 35, 24, .12) !important; }
.dy-form .dy-fields .dy-birth-alert { grid-column: 1 / -1; margin: 0; }
.dy-form .dy-register { margin: 8px 0 0; }
.dy-form .dy-register-note { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: var(--dy-acik); font-size: 14px; line-height: 1.55; color: var(--dy-govde); }
.dy-form .dy-register-note:empty { display: none; }

/* Gönder */
.dy-form .dy-submit { display: flex; width: 100%; min-height: 40px; margin: 18px 0 0; }
.dy-form .dy-submit-row { display: flex; flex-direction: column; gap: 12px; align-items: stretch; width: 100%; margin: 12px 0 0; }
.dy-form .dy-submit-row .dy-submit { margin: 0; }
/* Robot doğrulaması iki düzende: Cloudflare ek onay istemezse görünmez ve yer kaplamaz; isterse (is-etkilesim) 300x65 kutu. */
.dy-form .dy-turnstile-wrap { width: 100%; max-width: 300px; min-height: 0; align-self: flex-start; }
.dy-form .dy-turnstile-wrap.is-etkilesim { min-height: 65px; }
/* Bilgi ekranında seçilen gün ve saat: tek satır, açık gri zemin, yalnız bilgi (değiştirmek için üstteki Geri). Saat
   ekranında yok. */
.dy-form .dy-ozet { display: flex; flex-direction: column; margin: 0 0 22px; padding: 4px 16px; border-radius: 12px; background: #f3f6f9; }
.dy-form .dy-ozet__satir { display: flex; align-items: center; gap: 10px; min-height: 40px; }
.dy-form .dy-ozet__satir svg { flex: none; width: 16px; height: 16px; color: var(--dy-gri); }
.dy-form .dy-ozet__metin { flex: 1 1 auto; min-width: 0; overflow: hidden; font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--dy-baslik); text-overflow: ellipsis; white-space: nowrap; }
.dy-form .dy-panel[data-gorunum="saat"] .dy-ozet { display: none; }
/* Görünmez doğrulama kutusu (300 px genişlik, 0 yükseklik) çubukta yer kaplamasın: etkileşim isteyene kadar akış dışında. */
@media (min-width: 601px) {
	.dy-form.is-popup .dy-submit-row .dy-turnstile-wrap:not(.is-etkilesim) { position: absolute; left: var(--dy-ic); bottom: 0; pointer-events: none; }
}
.dy-form .dy-turnstile-wrap iframe { max-width: 100%; }

/* Sonuç: çizilen onay işareti */
.dy-form .dy-success { padding: 12px 8px 4px; text-align: center; }
.dy-form .dy-onay { display: block; width: 76px; height: 76px; margin: 4px auto 20px; }
.dy-form .dy-onay svg { display: block; width: 100%; height: 100%; fill: none; stroke: var(--dy-yesil); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.dy-form .dy-onay circle { fill: #e9f6ee; stroke-dasharray: 151; stroke-dashoffset: 151; animation: dy-ciz .6s var(--dy-egri) forwards; }
.dy-form .dy-onay path { stroke-width: 3; stroke-dasharray: 36; stroke-dashoffset: 36; animation: dy-ciz .35s .45s var(--dy-egri) forwards; }
@keyframes dy-ciz { to { stroke-dashoffset: 0; } }
.dy-form .dy-success p { margin: 0 auto; max-width: 30em; font-size: 17px; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; color: var(--dy-baslik); }
.dy-form .dy-success small { display: inline-block; margin-top: 8px; font-size: 14px; font-weight: 500; letter-spacing: 0; color: var(--dy-gri); }

/* Geniş alan: iki sütunlu satırlar ve alanlar */
@container dyform (min-width: 540px) {
	/* Geniş pencerede günler sekme gibi: kutusuz, eşit genişlikte satırı doldurur; üstte tarih (02.11.2026), altta gün
	   adı. Seçili gün lacivert yazı ve alttaki çizginin üstünde ince lacivert çizgi (sayfadaki sekmelerle aynı dil). */
	.dy-form .dy-gunler { gap: 0; padding: 0; }
	/* Ay adı ve oklar sağda, "Gün ve saat seçin" başlığıyla aynı satırda (başlık 21,6 px + 16 px alt boşluk). */
	.dy-form .dy-bolum-baslik + .dy-slots-wrap .dy-gun-ust { justify-content: flex-end; margin: -43px 0 14px; pointer-events: none; }
	.dy-form .dy-bolum-baslik + .dy-slots-wrap .dy-gun-ust > * { pointer-events: auto; }
	.dy-form .dy-gun { gap: 5px; padding: 8px 2px 14px; box-shadow: inset 0 -2px 0 transparent; transition: box-shadow .18s var(--dy-egri); }
	.dy-form .dy-gun .n, .dy-form .dy-gun .c { display: none; }
	.dy-form .dy-gun .t { display: block; font-size: 14px; font-weight: 500; line-height: 1.2; color: var(--dy-baslik); font-variant-numeric: tabular-nums; white-space: nowrap; transition: color .18s var(--dy-egri); }
	.dy-form .dy-gun .g { display: block; font-size: 12px; font-weight: 500; line-height: 1.2; color: var(--dy-gri); transition: color .18s var(--dy-egri); }
	.dy-form .dy-gun:hover .t { color: var(--dy); }
	.dy-form .dy-gun[aria-pressed="true"], .dy-form .dy-gun[aria-pressed="true"]:hover { box-shadow: inset 0 -2px 0 var(--dy); }
	.dy-form .dy-gun[aria-pressed="true"] .t { font-weight: 600; color: var(--dy); }
	.dy-form .dy-gun[aria-pressed="true"] .g { color: var(--dy); }
	.dy-form .dy-grid:not(.dy-hastaneler) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dy-form .dy-fields .dy-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.dy-form .dy-hastaneler { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Telefon: her şey bir kademe küçük */
@media (max-width: 600px) {
	.dy-form { --dy-ic: 18px; font-size: 14px; }
	.dy-form .dy-kapak { min-height: 116px; padding-top: 22px; padding-bottom: 16px; }
	/* Hekim seçiliyken: yazı bloğu ve dekupe fotoğraf bitişik tek grup, ortada. Satırlar kısa ve eşit (unvan / ad,
	   birim / hastane), fotoğraf bant boyunda; yazıyla fotoğraf arasında boşluk kalmaz. */
	.dy-form .dy-kapak.is-hekim { display: grid; grid-template-columns: minmax(0, max-content) auto; justify-content: center; align-items: center; column-gap: 8px; min-height: 0; padding-top: 22px; padding-bottom: 0; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__metin { grid-column: 1; grid-row: 1; max-width: none; padding: 0 0 22px; }
	.dy-form .dy-kapak.is-hekim:has(.dy-kapat:not([hidden])) .dy-kapak__metin { grid-column: 1; grid-row: 1; max-width: none; padding: 0 0 22px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__ad { text-wrap: balance; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__alt-satir { flex-direction: column; align-items: flex-start; gap: 6px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__unvan { display: block; font-weight: 400; color: rgba(255, 255, 255, .88); }
	.dy-form .dy-kapak.is-hekim .dy-form__alt { margin-top: 10px; text-wrap: balance; }
	.dy-form .dy-form__baslik { font-size: 20px; }
	.dy-form .dy-kapak.is-hekim .dy-form__baslik { margin-bottom: 8px; font-size: 13px; }
	.dy-form .dy-kapak__ad { font-size: 20px; line-height: 1.25; }
	.dy-form .dy-form__alt { margin-top: 8px; font-size: 13px; line-height: 1.5; }
	.dy-form .dy-kapak__alt-satir { gap: 8px 14px; }
	.dy-form .dy-kapak__alt-satir:has(> :not([hidden])) { margin-top: 14px; }
	.dy-form .dy-form__musait { font-size: 13px; }
	.dy-form .dy-kapat { top: 8px; right: 8px; }
	.dy-form .dy-kapat svg { width: 16px; height: 16px; }
	.dy-form .dy-kapak:not(.is-hekim):has(.dy-kapat:not([hidden])) .dy-kapak__metin { padding-right: 42px; }
	.dy-form .dy-steps { margin-top: 14px; }
	.dy-form .dy-step { color: transparent; }
	.dy-form .dy-step.is-active { color: #fff; }
	.dy-form .dy-govde { padding-top: 18px; padding-bottom: 22px; }
	.dy-form .dy-panel h4 { margin-bottom: 12px; font-size: 16px; }
	.dy-form .dy-panel h4.dy-bolum-baslik { margin-bottom: 12px; }
	.dy-form .dy-back { margin-bottom: 8px; }
	.dy-form .dy-hastaneler { gap: 12px 8px; }
	.dy-form .dy-hastane-kart__foto { border-radius: 12px; }
	.dy-form .dy-hastane-kart__ad { padding-top: 8px; font-size: 13px; }
	.dy-form .dy-ara__girdi { font-size: 16px; }
	.dy-form .dy-doctor-note { margin-bottom: 14px !important; }
	.dy-form .dy-gun-ust { margin-bottom: 10px; }
	.dy-form .dy-gun-ay { font-size: 14px; }
	.dy-form .dy-gun .c { width: 36px; height: 36px; }
	.dy-form .dy-saat-izgara { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
	.dy-form .dy-devam-cubuk { gap: 12px; margin-top: 20px; margin-bottom: -22px; padding-top: 12px; padding-bottom: 12px; }
	.dy-form .dy-devam-cubuk__secim { font-size: 13px; }
	.dy-form .dy-onay { width: 64px; height: 64px; }
	.dy-form .dy-success p { font-size: 16px; }
	/* Pencere telefonda ekran boyu: üste sabit kalır (ortalanınca her adımda zıplıyor, sayfa kayması sayılıyordu;
	   1.2.70), altta boş koyu alan bırakmaz; "Devam et" çubuğu kısa listede de en altta. */
	.dy-form.is-popup { display: flex; flex-direction: column; min-height: calc(100vh - 28px); min-height: calc(100dvh - 28px); }
	.dy-form.is-popup .dy-govde { display: flex; flex: 1 0 auto; flex-direction: column; }
	.dy-form.is-popup .dy-panel[data-panel="4"]:not([hidden]) { display: flex; flex: 1 0 auto; flex-direction: column; }
	.dy-form.is-popup .dy-panel[data-gorunum="saat"] .dy-bolum-saat { display: flex; flex: 1 0 auto; flex-direction: column; }
	.dy-form.is-popup .dy-slots-wrap { margin-bottom: 20px; }
	.dy-form.is-popup .dy-devam-cubuk { margin-top: auto; }
	.dy-form.is-popup .dy-tel { margin-top: auto; padding-top: 28px; }
}
@media (prefers-reduced-motion: reduce) {
	.dy-form *, .dy-form *::before, .dy-form *::after { animation: none !important; transition: none !important; }
	.dy-form .dy-onay circle, .dy-form .dy-onay path { stroke-dashoffset: 0; }
	.dy-form .dy-tel__ritim .dy-tel__isik { -webkit-mask: none; mask: none; }
}

/* ── Formu taşıyan tema penceresi (Impreza ya da aynı sınıflı yeni tema): köşeler; karartma temanın nötr %85 siyahı (Batuhan); kapatma formun içinde ── */
.w-popup-wrap:has(.dy-form) { --popup-width: 760px !important; }
.w-popup-wrap:has(.dy-form) .w-popup-box-h { overflow: clip; border-radius: 24px; box-shadow: 0 40px 90px -30px rgba(10, 17, 40, .6); }
.w-popup-wrap:has(.dy-form) .w-popup-box-content { padding: 0 !important; overflow: visible !important; }
/* Koyu başlığın yuvarlak köşesinin altında beyaz zemin kalınca kenarda ince açık çizgi sızıyordu: kutu saydam, beyaz yalnız gövdede. */
.w-popup-wrap:has(.dy-form.is-popup) .w-popup-box-h, .w-popup-wrap:has(.dy-form.is-popup) .w-popup-box-content { background: transparent !important; }
.dy-form.is-popup .dy-govde { background: #fff; }
.w-popup-wrap:has(.dy-form) .w-popup-box-content > .l-section,
.w-popup-wrap:has(.dy-form) .w-popup-box-content .l-section-h { padding: 0 !important; }
.w-popup-wrap:has(.dy-form) .w-popup-box-content .wpb_text_column,
.w-popup-wrap:has(.dy-form) .w-popup-box-content .wpb_wrapper > p:empty { margin: 0; }
.w-popup-wrap:has(.dy-form.is-popup) > .w-popup-closer { display: none; }
@media (max-width: 600px) {
	.w-popup-wrap:has(.dy-form) .w-popup-box-h { border-radius: 20px; }
}
/* Sayfaya gömülü form (pencere dışı): başlık ve gövde tek kutuda */
.dy-form:not(.is-popup):not(.dy-not-bookable) { overflow: clip; border: 1px solid var(--dy-cizgi); border-radius: 24px; background: #fff; }

/* Kısa laptop ekranı (1366×768 gibi): gün ve saatlere yer kalsın diye gövde boşlukları daralır */
@media (min-width: 601px) and (max-height: 760px) {
	.dy-form .dy-govde { padding-top: 20px; }
	.dy-form .dy-doctor-note { margin-bottom: 12px !important; }
}

/* Masaüstü ve tablet: pencere ekrana göre esner (en çok 600 px; 800 px geniş ve dağınık duruyordu, Batuhan 2 Kas) ve hiçbir zaman ekrandan uzun olmaz; başlık ve
   "Devam et" çubuğu yerinde kalır, gerekirse yalnız gövde kayar. Telefonda pencere ekran boyu, başlık kayıp gider. */
@media (min-width: 601px) {
	.w-popup-wrap:has(.dy-form.is-popup) { --popup-width: min(600px, calc(100vw - 48px)) !important; padding: 24px !important; }
	/* Yeni tema kutuya doğrudan 800 px veriyor (--popup-width'i okumuyor): genişlik iki temada da kutuya yazılır. */
	.w-popup-wrap:has(.dy-form.is-popup) > .w-popup-box { width: min(600px, calc(100vw - 48px)) !important; max-width: none !important; }
	.dy-form.is-popup .dy-kapak.is-hekim { padding-right: 76px; }
	/* Başlık: solda portre, yanında ad, birim · hastane ve altında müsaitlik; bant boydan boya dolar. */
	.dy-form .dy-kapak.is-hekim { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: minmax(0, 1fr) auto auto auto auto minmax(16px, 1fr); column-gap: 20px; padding-top: 14px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__metin { display: contents; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__hekim { grid-column: 1; grid-row: 1 / -1; height: 116px; } /* boy randevu.js fotoBoy ile yazıya eşitlenir */
	.dy-form .dy-kapak.is-hekim .dy-form__baslik { grid-column: 2; grid-row: 2; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__ad { grid-column: 2; grid-row: 3; }
	.dy-form .dy-kapak.is-hekim .dy-form__alt { grid-column: 2; grid-row: 4; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__alt-satir { grid-column: 2; grid-row: 5; align-self: start; flex-direction: row; align-items: center; gap: 8px; margin: 8px 0 0; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__alt-satir:has(> :not([hidden])) { grid-column: 2; grid-row: 5; align-self: start; flex-direction: row; align-items: center; gap: 8px; margin: 8px 0 0; }
	.dy-form.is-popup { display: flex; flex-direction: column; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); }
	.dy-form.is-popup .dy-kapak { flex: none; }
	.dy-form.is-popup .dy-govde { flex: 1 1 auto; min-height: 0; padding-bottom: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(10, 17, 40, .18) transparent; }
	/* Kayan gövdede yapışık çubuk iç boşluğun üstünde duruyordu; alt boşluk iç boşluk yerine son öğe olarak verilir. */
	.dy-form.is-popup .dy-govde::after { content: ""; display: block; flex: none; height: 32px; } /* flex: none: uzun listede ezilmesin (2 Kas) */
}
@container dyform (min-width: 860px) {
	.dy-form .dy-grid:not(.dy-hastaneler) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.dy-form .dy-hastaneler { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ── 1 Kasım denetim düzeltmeleri (bağımsız görünüm ve davranış denetimi) ── */
/* Pasif düğmeler gri dolgu değil: beyaz zemin, ince çerçeve. */
.dy-form .dy-devam:disabled, .dy-form .dy-submit:disabled { border: 1px solid #e4e8ed; background: #fff; color: #8a96a6; }
/* Bağlantı kalınlığı ve çizgi tonu her yerde aynı. */
.dy-form .dy-back { font-weight: 500; }
.dy-form .dy-alan input, .dy-form .dy-alan select { border-color: #e4e8ed; }
/* Kapatma düğmesinin odak halkası lacivert başlıkta görünsün. */
.dy-form .dy-kapat:focus-visible { outline: 2px solid #fff; outline-offset: 0; }
/* Ay okları sağ kenarla hizalı; iki ok da kapalıysa gizli (JS). */
.dy-form .dy-gun-oklar { margin-right: -14px; }
/* Yapışık çubuk tam beyaz (altındaki saatler silik görünmesin). */
.dy-form .dy-devam-cubuk { background: #fff; }
/* Telefon numarası kartla aynı boyda. */
.dy-form .dy-tel__no { font-size: 18px; }
/* Fotoğrafsız hekim: listede aynı boyda boş kutu; başlıkta yazı gövdeyle aynı hizada. */
.dy-form .dy-doctor:not(:has(img))::before { content: ""; flex: none; width: 48px; height: 64px; border-radius: 8px; background: #eef2f6; }
.dy-form .dy-kapak.is-hekim:has(.dy-kapak__hekim[hidden]) { column-gap: 0; }
/* Orta genişlikte pencere (tablet): saatler 6 sütun, tek kalan saat azalır. */
@container dyform (min-width: 540px) and (max-width: 779px) {
	.dy-form .dy-saat-izgara { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
}
@media (min-width: 601px) {
	/* Pencere ekranın ortasında (Batuhan 2 Kas: "niye yukarı gidiyor"); ekrandan uzunsa gövde içeride kayar. */
	.w-popup-wrap:has(.dy-form.is-popup) { align-items: center !important; }
	.w-popup-wrap:has(.dy-form.is-popup) .w-popup-box { margin: auto !important; }
	/* Pencere her adımda aynı boyda, hiçbir adımda kısalmaz (Batuhan 2 Kas): kısa listede de bilgi ekranında da 640 px (ekran
	   kısaysa ekran boyu). "Devam et" ve "Randevuyu Oluştur" çubukları ile "Telefonla randevu" en altta; boşluk içerikle çubuk
	   arasında kalır. Telefondaki düzenin aynısı. */
	.dy-form.is-popup { height: min(640px, calc(100vh - 48px)); height: min(640px, calc(100dvh - 48px)); }
	/* 640 px'te bilgi ekranı kaydırmadan sığsın (doğal boyu 659 px idi): Geri, tarih satırı ve alt çubuk aralıkları biraz dar.
	   Gün-saat ekranında (doğal 719 px) son saat sırası pencerenin içinde kayar, "Devam et" çubuğu yerinde kalır. */
	.dy-form.is-popup .dy-govde { padding-top: 22px; }
	.dy-form.is-popup .dy-back { margin-bottom: 8px; }
	.dy-form.is-popup .dy-ozet { margin-bottom: 16px; }
	.dy-form.is-popup .dy-panel h4.dy-bolum-baslik { margin-bottom: 12px; }
	.dy-form.is-popup .dy-govde { display: flex; flex-direction: column; }
	.dy-form.is-popup .dy-panel:not([hidden]) { flex: 1 0 auto; }
	.dy-form.is-popup .dy-panel[data-panel="4"]:not([hidden]) { display: flex; flex-direction: column; }
	.dy-form.is-popup .dy-panel[data-gorunum="saat"] .dy-bolum-saat, .dy-form.is-popup .dy-panel[data-gorunum="bilgi"] .dy-bolum-bilgi { display: flex; flex: 1 0 auto; flex-direction: column; }
	.dy-form.is-popup .dy-slots-wrap, .dy-form.is-popup .dy-fields { flex: 1 0 auto; }
	.dy-form.is-popup .dy-panel[data-panel="5"]:not([hidden]) { display: flex; flex-direction: column; justify-content: center; }
	.dy-form.is-popup .dy-devam-cubuk { margin-top: 24px; }
	/* Bilgiler, altta yapışık: doğrulama görünmezken "Randevuyu Oluştur" tek başına tam genişlik; Cloudflare ek onay isterse
	   canlıdaki gibi solda kutu, sağda kalan genişlikte düğme. Düğme iki düzende de normal boyda (44 px). */
	.dy-form.is-popup .dy-submit-row { position: sticky; bottom: 0; z-index: 3; width: auto; flex-direction: row; align-items: center; justify-content: flex-start; gap: 12px; margin: 16px calc(-1 * var(--dy-ic)) 0; padding: 16px var(--dy-ic); border-top: 1px solid var(--dy-cizgi); background: #fff; }
	.dy-form.is-popup .dy-submit-row .dy-turnstile-wrap { flex: none; width: 300px; align-self: center; }
	.dy-form.is-popup .dy-submit-row .dy-submit { flex: 1 1 auto; width: auto; min-width: 0; min-height: 40px; margin: 0; }
	/* Bilgiler ekranında yapışık satır gövdenin dibine otursun (alt boşluk payı yalnız saat ekranında). */
	.dy-form.is-popup .dy-govde:has(.dy-panel[data-panel="4"][data-gorunum="bilgi"]:not([hidden]))::after { height: 0; }
	/* Telefon bloğu masaüstünde kartla aynı: tek satır. */
	.dy-form .dy-tel { grid-template-areas: "metin ritim ara"; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; }
	.dy-form .dy-tel__ritim { height: 32px; }
	.dy-form .dy-tel__ara { width: 40px; height: 40px; }
}
@media (max-width: 767px) {
	/* iPhone'da alana dokununca sayfa yakınlaşmasın (16 px altı yakınlaştırıyor). */
	.dy-form .dy-alan input, .dy-form .dy-alan select { font-size: 16px; }
}
@media (max-width: 600px) {
	/* Başarı ekranı telefonda dikeyde ortada. */
	.dy-form.is-popup .dy-panel[data-panel="5"]:not([hidden]) { display: flex; flex: 1 0 auto; flex-direction: column; justify-content: center; }
}

/* 1.2.90: Sitenin sayfalarındaki Used CSS (WP Rocket) 1.2.89 penceresinin kurallarını taşıyor ve sayfa yenilenene kadar
   bu pencereye de uygulanıyor (canlı Used CSS'le benzetimde ölçüldü). Yeni pencerenin tanımlamadığı eski özellikler burada
   etkisizleşir. Eski kurallar: .dy-form{max-width:720px}, .dy-doctor-note{color:#000!important;font-weight:600}, .dy-doctor-note::after
   {content:" *"}, .dy-fields label{font-size:13px;font-weight:600}, !important boşluklar. */
.dy-form .dy-doctor-note::after { content: none; }

/* Telefonda bilgi formu sıkı: alan başına 85 px'ten 75 px'e (44 px kutu, dokunma alanı korunur). */
@media (max-width: 600px) {
	.dy-form .dy-fields .dy-row { gap: 10px 12px; margin-bottom: 10px; }
	.dy-form .dy-alan { gap: 4px; }
	/* Robot doğrulaması telefonda ortada, altında tam genişlik "Randevuyu Oluştur". */
	.dy-form .dy-turnstile-wrap { align-self: center; }
}

/* 1.2.90 — Telefonda kibar pencere (Batuhan: ekranı kaplamasın, kocaman olmasın). Pencere ortada duran, kenarlardan
   boşluklu sabit boy bir kart (adım değişince zıplamaz, sayfa kayması olmaz); içerik kartın içinde kayar. Hekim başlığı
   masaüstündeki gibi yatay ve küçük, hastaneler küçük fotoğraflı liste. */
@media (max-width: 600px) {
	.dy-form.is-popup { min-height: 0; height: min(720px, calc(100vh - 32px)); height: min(720px, calc(100dvh - 32px)); }
	.dy-form.is-popup .dy-kapak { flex: none; }
	.dy-form.is-popup .dy-govde { flex: 1 1 auto; min-height: 0; padding-bottom: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
	.dy-form.is-popup .dy-govde::after { content: ""; display: block; flex: none; height: 20px; }
	/* Odaklanan alan yapışık "Randevuyu Oluştur" düğmesinin altında kalmasın. */
	.dy-form.is-popup .dy-govde { scroll-padding-bottom: 96px; }
	.dy-form.is-popup .dy-devam-cubuk { margin-bottom: -20px; }
	.dy-form .dy-kapak:not(.is-hekim) { min-height: 0; padding-top: 18px; padding-bottom: 14px; }
	.dy-form .dy-form__baslik { font-size: 18px; }
	.dy-form .dy-form__alt { margin-top: 6px; font-size: 13px; line-height: 1.45; }
	.dy-form .dy-steps { margin-top: 12px; }
	/* Hekim başlığı (1 Kas düzeltmesi: "hekim kısacık, yazılar dağınık"): fotoğraf başlığın boyunu doldurur; kapatma düğmesine
	   yalnız üstteki iki satır yer açar, birim · hastane satırı tam genişlikte tek satıra sığar; unvan adla aynı kalınlıkta. */
	/* 1.2.91: yazı sütunu geniş (sol boşluk 14, aralık 10; sağda yalnız üstteki iki satır kapatma düğmesine yer açar); fotoğraf boyu
	   randevu.js fotoBoy ile yazı bloğuna eşitlenir (Batuhan 4 Kas: "hekim yazıdan kısa kalıyor"), 120 px yedek değerdir. */
	.dy-form .dy-kapak.is-hekim { grid-template-columns: auto minmax(0, 1fr); justify-content: start; align-items: center; column-gap: 10px; padding-top: 12px; padding-right: 18px; padding-left: 14px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__hekim { grid-column: 1; grid-row: 1; height: 120px; margin: 0; }
	.dy-form.is-popup .dy-kapak.is-hekim .dy-form__baslik, .dy-form.is-popup .dy-kapak.is-hekim .dy-kapak__ad { padding-right: 38px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__metin { grid-column: 2; grid-row: 1; padding: 0 0 12px; }
	.dy-form .dy-kapak.is-hekim:has(.dy-kapat:not([hidden])) .dy-kapak__metin { grid-column: 2; grid-row: 1; padding: 0 0 12px; }
	.dy-form .dy-kapak.is-hekim .dy-form__baslik { margin-bottom: 3px; font-size: 12px; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__ad { font-size: 15px; line-height: 1.3; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__unvan { display: inline; font-weight: inherit; color: inherit; }
	.dy-form .dy-kapak.is-hekim .dy-form__alt { margin-top: 3px; font-size: 12.5px; line-height: 1.4; }
	.dy-form .dy-kapak.is-hekim .dy-kapak__alt-satir:has(> :not([hidden])) { margin-top: 5px; }
	.dy-form .dy-form__musait { font-size: 12.5px; }
}
@media (max-width: 374px) {
	/* Küçük telefon (320–374; Batuhan 4 Kas: "Kürşad niye tam oturmuyor"): ad tek satıra sığsın diye başlık satırı kapatma
	   düğmesinin boyunda ve yalnız o satır sağda düğmeye yer açar; ad ve alt satırlar tam sütun genişliğinde, ad 14 px;
	   birim ve hastane noktasız alt alta iki satır (hastane adı ortadan kırılmaz); fotoğraf bandın %32'si (randevu.js fotoBoy). */
	.dy-form .dy-kapak.is-hekim .dy-kapak__hekim { height: 104px; }
	.dy-form .dy-kapat { top: 6px; right: 6px; width: 40px; height: 40px; }
	.dy-form.is-popup .dy-kapak.is-hekim .dy-form__baslik { display: flex; align-items: center; min-height: 28px; margin: -2px 0 0; padding-right: 40px; }
	.dy-form.is-popup .dy-kapak.is-hekim .dy-kapak__ad { padding-right: 0; font-size: 14px; }
	.dy-form .dy-kapak.is-hekim .dy-form__alt { display: block; overflow: visible; font-size: 12px; letter-spacing: -.01em; }
	.dy-form .dy-kapak.is-hekim .dy-form__alt span { display: block; position: static; }
	.dy-form .dy-kapak.is-hekim .dy-form__alt span + span::before { display: none; }
}
@media (max-width: 600px) {
	.dy-form .dy-hastaneler { grid-template-columns: minmax(0, 1fr); gap: 6px; }
	/* Pencere bilgi ekranında da kısalmaz; boşluk alanlarla düğme arasında kalır, "Randevuyu Oluştur" dipte. */
	.dy-form.is-popup .dy-panel[data-gorunum="bilgi"] .dy-bolum-bilgi { display: flex; flex: 1 0 auto; flex-direction: column; }
	.dy-form.is-popup .dy-panel[data-gorunum="bilgi"] .dy-fields { flex: 0 0 auto; }
	/* 4 Kas (Batuhan: "Turnstile yokken rezalet"): bilgi adımında kart içeriğe göre kısalır (en çok 720 px / ekran), alanlarla
	   düğme arasında boşluk kalmaz; içerik uzunsa gövde kayar, düğme satırı dipte yapışık kalır (2 Kas kararı). */
	.dy-form.is-popup:has(.dy-panel[data-panel="4"][data-gorunum="bilgi"]:not([hidden])) { height: auto; max-height: min(720px, calc(100vh - 32px)); max-height: min(720px, calc(100dvh - 32px)); }
	.dy-form.is-popup:has(.dy-panel[data-panel="4"][data-gorunum="bilgi"]:not([hidden])) .dy-govde { flex: 0 1 auto; }
	/* Bilgi ekranında "Telefonla randevu" düğmenin altında tek satır (T.C. vermek istemeyen için de seçenek). */
	.dy-form.is-popup:has(.dy-panel[data-panel="4"][data-gorunum="bilgi"]:not([hidden])) .dy-tel { display: grid; grid-template-areas: "metin ritim ara"; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; margin-top: 0; padding-top: 18px; }
	.dy-form.is-popup:has(.dy-panel[data-panel="4"][data-gorunum="bilgi"]:not([hidden])) .dy-tel__ritim { height: 32px; }
	/* "Randevuyu Oluştur" kartın altında yapışık: kısa ekranlarda (iPhone SE, 360x640) de kaydırmadan görünür.
	   Satır çözülür (display: contents); düğme bilgi bölümünün sonuna kadar altta durur, çevresindeki beyaz pay altındaki içeriği örter. */
	.dy-form.is-popup .dy-submit-row { display: contents; }
	/* Üst öğe flex değil (gönder satırı display:contents): ortalamayı yan boşluklar yapar. */
	.dy-form.is-popup .dy-submit-row .dy-turnstile-wrap { align-self: center; margin: 0 0 0 calc((100% - 300px) / 2); }
	.dy-form.is-popup .dy-submit-row .dy-turnstile-wrap.is-etkilesim { margin-top: 12px; }
	.dy-form.is-popup .dy-submit-row .dy-submit { position: sticky; bottom: 12px; z-index: 3; margin-top: 14px; box-shadow: 0 0 0 12px #fff; }
	.dy-form .dy-choice.dy-hastane-kart { flex-direction: row; align-items: center; gap: 12px; padding: 6px 12px 6px 6px; border: 1px solid #e4e8ed; border-radius: 12px; text-align: left; }
	/* Bilgiler ikişerli (Ad | Soyad, T.C. | Telefon, E-posta tam): form kısalır, "Randevuyu Oluştur" ekrana yaklaşır. */
	.dy-form .dy-fields .dy-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Telefonda 64 px'lik fotoğraf: yalnız küçük WebP iner (192x144). */
	.dy-form .dy-hastane-kart__foto { flex: none; width: 64px; aspect-ratio: 4 / 3; border-radius: 8px; background-image: var(--dy-foto-k, var(--dy-foto, none)); }
	.dy-form .dy-hastane-kart__ad { padding: 0; font-size: 14px; line-height: 1.35; }
	.dy-form .dy-hastane-kart:hover .dy-hastane-kart__foto { transform: none; box-shadow: none; }
}

/* Dokunmatik ekranda (yatay telefon, tablet) 16 px altı alan iOS'ta sayfayı yakınlaştırır. */
@media (pointer: coarse) {
	.dy-form input, .dy-form select, .dy-form textarea { font-size: 16px; }
}

/* ── 1.2.90 stil düzeltmeleri (bağımsız denetim, 1 Kasım gece) ── */
/* Geri: her adımda üstte, yazı kadar geniş (dokunma alanı satır boyu uzamaz); 14 px kalın yazı ve net ok. Dokunma alanı
   ::before ile yaklaşık 80x46 px (2 Kas: telefonda 13 px yazı ve küçük ok zayıftı, görünmez alan satır boyunca 315 px idi). */
.dy-form .dy-back { position: relative; width: fit-content; gap: 2px; font-size: 14px; font-weight: 600; }
.dy-form .dy-back svg { flex: none; width: 16px; height: 16px; margin-left: -4px; }
.dy-form .dy-back::before { inset: -13px -12px; }

/* ── 4 Kas: zorunlu alan, telefonda ortalı pencere, robot doğrulaması payı ── */
/* Zorunlu alan etiketinin sonunda küçük kırmızı yıldız (Batuhan 4 Kas). İki kural ayrı: :has tanımayan tarayıcı tüm listeyi
   atar; şablondaki dy-alan--zorunlu sınıfı yedektir. "/ ''" ekran okuyucuya yıldızı okutmaz (zorunluluğu required ve
   aria-required söyler); bu yazımı tanımayan tarayıcı ilk satırla kalır. Kayıt alanları (baba adı, doğum tarihi, cinsiyet)
   açıldıklarında zorunludur, sınıfları şablonda. */
.dy-form .dy-alan--zorunlu > span::after { content: " *"; content: " *" / ""; color: #c0392b; font-weight: 600; }
.dy-form .dy-alan:has(> input[required], > select[required], > textarea[required]) > span::after { content: " *"; content: " *" / ""; color: #c0392b; font-weight: 600; }
/* Cloudflare kutusu satır içi çerçeve olarak geliyordu; satır payı kutuyu 65 yerine 72 px yapıyordu. */
.dy-form .dy-turnstile-wrap { font-size: 0; line-height: 0; }
@media (max-width: 600px) {
	/* Pencere telefonda her adımda ekranın tam ortasında (Batuhan 4 Kas: "yukarı yakın aşağı yakın durmasın"); iki temada da
	   kabuk ortalar, kutu kendiliğinden üste yaslanmaz. Kart en çok ekran eksi 32 px (klavye açıkken de sığar). */
	.w-popup-wrap:has(.dy-form.is-popup) { align-items: center !important; justify-content: center !important; }
	.w-popup-wrap:has(.dy-form.is-popup) > .w-popup-box { margin: auto !important; }
}
