/* =========================================================================
   Başvuru ve soru pencereleri (ajanda.html · app.js Modal + Soru)
   Koyu kitap sahnesi üzerinde açık renkli pencere. Kurallar :is(.modal, .form-kart) içine kapsanır ki kitap.css'teki
   aynı adlı sınıflar (.dugme, .donen, .rozet) etkilenmesin; form alanı sarmalayıcısı .falan
   (kitap.css'te .alan reklam alanıdır). Yalnız tokens.css değişkenleri kullanılır.
   ========================================================================= */
.modal {
  width: min(640px, calc(100vw - 32px)); max-width: none; max-height: 90vh; max-height: 90dvh; padding: 0; border: 0;
  border-radius: var(--r-xl); background: var(--yuzey); color: var(--metin); box-shadow: var(--golge-xl); overflow: hidden;
  color-scheme: light; font-family: var(--font-govde); font-size: var(--fs-base); line-height: var(--lh-govde);
}
.modal::backdrop { background: rgba(5, 12, 24, .62); }
:is(.modal, .form-kart) h2, :is(.modal, .form-kart) h3 { font-family: var(--font-baslik); color: var(--metin-baslik); line-height: var(--lh-baslik); margin: 0; }
:is(.modal, .form-kart) h3 { font-size: var(--fs-lg); font-weight: var(--fw-yari); }
:is(.modal, .form-kart) p { margin: 0; }
:is(.modal, .form-kart) ul, :is(.modal, .form-kart) ol { margin: 0; padding: 0; }
:is(.modal, .form-kart) a { color: var(--metin-link); text-underline-offset: 2px; }
:is(.modal, .form-kart) a:hover { color: var(--metin-link-hover); }
:is(.modal, .form-kart) button, :is(.modal, .form-kart) input, :is(.modal, .form-kart) textarea, :is(.modal, .form-kart) select { font: inherit; color: inherit; }
:is(.modal, .form-kart) button { cursor: pointer; }
:is(.modal, .form-kart) :focus { outline: none; }
:is(.modal, .form-kart) :focus-visible { outline: none; box-shadow: var(--odak-golge); border-radius: var(--r-xs); }
:is(.modal, .form-kart) .ikon { stroke-width: 1.75; vertical-align: -0.2em; }
:is(.modal, .form-kart) .kucuk { font-size: var(--fs-sm); color: var(--metin-ikincil); line-height: var(--lh-orta); }
:is(.modal, .form-kart) .fiyat { font-variant-numeric: tabular-nums; white-space: nowrap; }
:is(.modal, .form-kart) .belirlenecek { color: var(--uyari); font-weight: var(--fw-orta); border: 1px dashed var(--durum-opsiyonlu-kenarlik); border-radius: var(--r-xs); padding: 0 4px; background: var(--durum-opsiyonlu-zemin); }

/* Düğmeler */
:is(.modal, .form-kart) .dugme {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--b-2);
  min-height: var(--dokunma-min); padding: var(--b-2) var(--b-5); border-radius: var(--r-md); border: 1.5px solid transparent;
  font-weight: var(--fw-yari); font-size: var(--fs-base); line-height: 1.2; text-decoration: none; text-align: center;
}
:is(.modal, .form-kart) .dugme--birincil { background: var(--renk-ana); color: var(--metin-ters); }
:is(.modal, .form-kart) .dugme--birincil:hover { background: var(--renk-ana-hover); color: var(--metin-ters); }
:is(.modal, .form-kart) .dugme--ikincil { background: var(--yuzey); color: var(--renk-ana); border-color: var(--renk-ana); }
:is(.modal, .form-kart) .dugme--ikincil:hover { background: var(--renk-ana-acik); color: var(--renk-ana-hover); }
:is(.modal, .form-kart) .dugme[aria-disabled="true"] { background: var(--gri-100); color: var(--metin-soluk); border-color: var(--gri-200); cursor: not-allowed; }
:is(.modal, .form-kart) .dugme[aria-busy="true"] { cursor: progress; }
:is(.modal, .form-kart) .ikon-dugme { display: inline-grid; place-items: center; width: var(--dokunma-min); height: var(--dokunma-min); border: 0; background: transparent; border-radius: var(--r-md); color: var(--metin-ikincil); }
:is(.modal, .form-kart) .ikon-dugme:hover { background: var(--gri-100); color: var(--metin); }
:is(.modal, .form-kart) .metin-dugme { border: 0; background: none; padding: var(--b-1) 0; min-height: var(--dokunma-min); color: var(--metin-link); font-weight: var(--fw-orta); text-decoration: underline; text-underline-offset: 2px; }
:is(.modal, .form-kart) .metin-bag { display: inline-flex; align-items: center; gap: 6px; min-height: var(--dokunma-min); color: var(--metin-link); font-weight: var(--fw-yari); font-size: var(--fs-sm); text-decoration: none; }
:is(.modal, .form-kart) .metin-bag:hover { text-decoration: underline; }
:is(.modal, .form-kart) .donen { display: none; width: 1em; height: 1em; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: don 0.8s linear infinite; }
:is(.modal, .form-kart) [aria-busy="true"] > .donen { display: inline-block; }

/* Kutular ve rozet */
:is(.modal, .form-kart) .kutu { display: flex; gap: var(--b-3); align-items: flex-start; padding: var(--b-3) var(--b-4); border-radius: var(--r-md); border: 1px solid; font-size: var(--fs-sm); line-height: var(--lh-orta); }
:is(.modal, .form-kart) .kutu > .ikon { margin-top: 2px; }
:is(.modal, .form-kart) .kutu__govde { flex: 1; min-width: 0; display: grid; gap: var(--b-2); }
:is(.modal, .form-kart) .kutu__govde ul { padding-left: var(--b-5); }
:is(.modal, .form-kart) .kutu--uyari { background: var(--durum-opsiyonlu-zemin); border-color: var(--durum-opsiyonlu-kenarlik); }
:is(.modal, .form-kart) .kutu--uyari > .ikon { color: var(--durum-opsiyonlu-metin); }
:is(.modal, .form-kart) .kutu--hata { background: var(--hata-zemin); border-color: var(--hata); }
:is(.modal, .form-kart) .kutu--hata > .ikon { color: var(--hata); }
:is(.modal, .form-kart) .kutu--bilgi { background: var(--camgobegi-50); border-color: var(--mavi-300); }
:is(.modal, .form-kart) .kutu--bilgi > .ikon { color: var(--bilgi); }
:is(.modal, .form-kart) .kutu strong { font-weight: var(--fw-yari); }
:is(.modal, .form-kart) .kutu__eylem { display: flex; flex-wrap: wrap; gap: var(--b-2); margin-top: var(--b-1); }
:is(.modal, .form-kart) .rozet { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px 2px 8px; border-radius: var(--r-tam); border: 1px solid; font-size: var(--fs-xs); font-weight: var(--fw-yari); line-height: 1.5; white-space: nowrap; }
:is(.modal, .form-kart) .rozet[data-durum="opsiyonlu"] { background: var(--durum-opsiyonlu-zemin); color: var(--durum-opsiyonlu-metin); border-color: var(--durum-opsiyonlu-kenarlik); border-style: dashed; }

/* Pencere iskeleti */
.modal__kap { display: flex; flex-direction: column; max-height: 90vh; max-height: 90dvh; }
.modal__ust { position: relative; padding: var(--b-4) var(--b-5) var(--b-3); border-bottom: 1px solid var(--kenarlik); background: var(--yuzey); }
.modal__baslik { font-family: var(--font-baslik); font-weight: var(--fw-kalin); color: var(--metin-baslik); font-size: var(--fs-base); }
.modal__kapat { position: absolute; top: 6px; right: 8px; }
.modal__kapat[aria-disabled="true"] { opacity: 0.4; cursor: not-allowed; }
.adimlar { display: flex; gap: var(--b-2); list-style: none; margin-top: var(--b-3) !important; font-size: var(--fs-xs); color: var(--metin-soluk); flex-wrap: wrap; }
.adimlar li { display: inline-flex; align-items: center; gap: 6px; font-weight: var(--fw-yari); }
.adimlar li + li::before { content: ""; width: 18px; height: 1px; background: var(--gri-300); margin-right: 2px; }
.adimlar__no { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--gri-400); font-variant-numeric: tabular-nums; }
.adimlar li[aria-current="step"] { color: var(--renk-ana); }
.adimlar li[aria-current="step"] .adimlar__no { background: var(--renk-ana); border-color: var(--renk-ana); color: var(--metin-ters); }
.adimlar li.tamam { color: var(--basari); }
.adimlar li.tamam .adimlar__no { border-color: var(--basari); background: var(--basari); color: var(--metin-ters); font-size: 0; }
.adimlar li.tamam .adimlar__no::after { content: "✓"; font-size: var(--fs-xs); }
.modal__govde { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: var(--b-5); overscroll-behavior: contain; }
.adim__baslik { font-size: var(--fs-xl); font-weight: var(--fw-kalin); margin-bottom: var(--b-4) !important; }
.adim > * + * { margin-top: var(--b-4); }
.adim > .adim__baslik + * { margin-top: 0; }
#ozet-uyari:empty, #form-sunucu-alert:empty, #form-sunucu-status:empty, #soru-sunucu:empty { display: none; }
.modal__alt { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--b-3); padding: var(--b-3) var(--b-5) var(--b-4); border-top: 1px solid var(--kenarlik); background: var(--yuzey); }
@media (max-width: 767.98px), (max-height: 500px) {
  .modal { width: 100%; height: 100%; max-height: none; max-width: none; margin: 0; border-radius: 0; }
  .modal__kap { height: 100%; max-height: none; }
  .modal__alt .dugme { flex: 1 1 auto; }
}
@media (max-height: 500px) {
  .modal__ust { padding-block: var(--b-2); }
  .adimlar { margin-top: var(--b-1) !important; }
  .modal__alt { padding-block: var(--b-2); }
}
html.kilitli, html.kilitli body { overflow: hidden; overscroll-behavior: none; }

/* Özet tablosu */
.ozet-tablo { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ozet-tablo th { text-align: left; font-weight: var(--fw-yari); color: var(--metin-soluk); font-size: var(--fs-xs); padding: var(--b-2); border-bottom: 1px solid var(--kenarlik); }
.ozet-tablo td { padding: var(--b-2); border-bottom: 1px solid var(--kenarlik); vertical-align: middle; }
.ozet-tablo .sag { text-align: right; }
.ozet-tablo td.fiyat { font-weight: var(--fw-yari); }
.ozet-tablo .ozet-ad { font-weight: var(--fw-yari); color: var(--metin-baslik); }
.ozet-tablo .rozet { margin-left: 6px; }
.ozet-tablo tfoot td { border-bottom: 0; padding-top: var(--b-3); }
.ozet-toplam { font-size: var(--fs-xl); font-weight: var(--fw-kalin); color: var(--metin-baslik); }
.ozet-tablo tfoot .ozet-ara td { color: var(--metin-ikincil); }
.ozet-tablo .ozet-indirim td, .sonuc-liste .sonuc-indirim { color: var(--basari); font-weight: var(--fw-yari); }
.ozet-tablo tfoot .ozet-indirim td { padding-top: var(--b-1); }
.ozet-kaldir { min-height: var(--dokunma-min); padding: 0 var(--b-2); border: 1px solid var(--kenarlik); border-radius: var(--r-sm); background: var(--yuzey); color: var(--metin-ikincil); font-size: var(--fs-xs); font-weight: var(--fw-yari); }
.ozet-kaldir:hover { border-color: var(--hata); color: var(--hata); }
.ozet-aciklama { font-size: var(--fs-sm); color: var(--metin-ikincil); }
.ozet-bos { display: grid; gap: var(--b-3); justify-items: start; padding: var(--b-6) 0; }
.ozet-hucre-olcu .mobil-baski { display: none; }
@media (max-width: 767.98px) {
  .ozet-tablo thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .ozet-tablo tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "ad fiyat" "olcu kaldir"; gap: 2px var(--b-3); padding: var(--b-3) 0; border-bottom: 1px solid var(--kenarlik); }
  .ozet-tablo tbody td { display: block; padding: 0; border: 0; }
  .ozet-tablo td.ozet-hucre-ad { grid-area: ad; }
  .ozet-tablo td.ozet-hucre-fiyat { grid-area: fiyat; text-align: right; }
  .ozet-tablo td.ozet-hucre-olcu { grid-area: olcu; color: var(--metin-soluk); font-size: var(--fs-xs); }
  .ozet-tablo td.ozet-hucre-baski { display: none; }
  .ozet-tablo td.ozet-hucre-kaldir { grid-area: kaldir; text-align: right; }
  .ozet-tablo tfoot tr { display: flex; justify-content: space-between; align-items: baseline; }
  .ozet-tablo tfoot td { padding: var(--b-3) 0 0; }
  .ozet-tablo tfoot td.bos-hucre { display: none; }
  .ozet-hucre-olcu .mobil-baski { display: inline; }
}

/* Form */
.form-ozet { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--b-3); padding: var(--b-2) var(--b-3); border-radius: var(--r-md); background: var(--renk-ana-acik); font-size: var(--fs-sm); font-weight: var(--fw-yari); color: var(--metin-baslik); font-variant-numeric: tabular-nums; }
.form-aciklama { font-size: var(--fs-sm); color: var(--metin-ikincil); }
:is(.modal, .form-kart) .form { display: grid; gap: var(--b-4); margin-top: var(--b-4); }
.falan { display: grid; align-content: start; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; } /* yan yana alanlarda kutular hizalı kalsın */
.falan label, .falan legend { font-weight: var(--fw-yari); font-size: var(--fs-sm); color: var(--metin); padding: 0; }
.falan legend { margin-bottom: 6px; }
:is(.modal, .form-kart) .zorunlu { color: var(--hata); }
:is(.modal, .form-kart) .istege-bagli { font-weight: var(--fw-normal); color: var(--metin-soluk); }
.falan input[type="text"], .falan input[type="tel"], .falan input[type="email"], .falan textarea, .falan select {
  width: 100%; min-height: var(--dokunma-min); padding: 10px 12px; border: 1px solid var(--kenarlik-guclu); border-radius: var(--r-sm);
  background: var(--yuzey); color: var(--metin); font-size: var(--fs-base); line-height: 1.4;
}
.falan select { max-width: 320px; }
.falan textarea { resize: vertical; min-height: 88px; }
.falan textarea[rows="2"] { min-height: 64px; }
.falan input:focus-visible, .falan textarea:focus-visible, .falan select:focus-visible { box-shadow: var(--odak-golge); border-color: var(--renk-ana); }
.falan input[aria-invalid="true"], .falan textarea[aria-invalid="true"] { border: 2px solid var(--hata); padding: 9px 11px; }
.falan input::placeholder, .falan textarea::placeholder { color: var(--metin-soluk); opacity: 1; }
.falan [readonly] { background: var(--gri-25); }
.falan--grup { display: grid; gap: var(--b-2); }
.falan--grup[aria-invalid="true"] .secenek { border-color: var(--hata); }
.alan-yardim { font-size: var(--fs-xs); color: var(--metin-ikincil); line-height: var(--lh-orta); }
.alan-yardim--onay { margin-left: 32px; }
.alan-sayac { font-size: var(--fs-xs); color: var(--metin-soluk); text-align: right; font-variant-numeric: tabular-nums; }
.alan-hata { display: flex; align-items: flex-start; gap: 6px; font-size: var(--fs-sm); color: var(--hata); font-weight: var(--fw-orta); line-height: var(--lh-orta); }
.alan-hata::before { content: "⚠"; flex-shrink: 0; }
.alan-cift { display: grid; gap: var(--b-4); }
@media (min-width: 640px) { .alan-cift { grid-template-columns: 1fr 1fr; } }
.secenek { display: flex; align-items: flex-start; gap: var(--b-3); min-height: var(--dokunma-min); padding: var(--b-2) var(--b-3); border: 1px solid var(--kenarlik-guclu); border-radius: var(--r-sm); background: var(--yuzey); font-weight: var(--fw-normal) !important; cursor: pointer; }
.secenek:has(input:checked) { border-color: var(--renk-ana); background: var(--renk-ana-acik); }
.secenek input { width: 20px; height: 20px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--renk-ana); }
.secenek input:focus-visible { box-shadow: var(--odak-golge); }
.secenek--onay { border: 0; padding: 0; background: none !important; font-size: var(--fs-sm); line-height: var(--lh-orta); }
.falan--onay .alan-hata { margin-left: 32px; }
:is(.modal, .form-kart) .bk { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-gonderiliyor { font-size: var(--fs-sm); color: var(--metin-ikincil); }
.btn-gonder__metin { white-space: nowrap; }
.form-iletisim { display: flex; align-items: flex-start; gap: var(--b-2); padding: var(--b-2) var(--b-3); border-radius: var(--r-md); background: var(--zemin-alt); font-size: var(--fs-sm); color: var(--metin-ikincil); }
.form-iletisim .ikon { flex-shrink: 0; margin-top: 2px; color: var(--renk-ana); }

/* Sonuç */
.sonuc { display: grid; gap: var(--b-4); }
.sonuc h3 { font-size: var(--fs-base); font-weight: var(--fw-kalin); }
.sonuc-ikon { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--durum-musait-zemin); color: var(--basari); }
.sonuc-ikon .ikon { width: 34px; height: 34px; stroke-width: 2.5; }
.basvuru-no { display: flex; flex-wrap: wrap; align-items: center; gap: var(--b-3); padding: var(--b-3) var(--b-4); border-radius: var(--r-md); background: var(--zemin-alt); border: 1px solid var(--mavi-100); }
.basvuru-no__etiket { font-size: var(--fs-sm); color: var(--metin-ikincil); }
.basvuru-no__deger { font-family: var(--font-mono); font-size: var(--fs-lg); font-weight: var(--fw-kalin); color: var(--metin-baslik); letter-spacing: 0.02em; }
.sonuc-liste { list-style: none; display: grid; border-top: 1px solid var(--kenarlik); }
.sonuc-liste li { display: flex; justify-content: space-between; gap: var(--b-3); padding: var(--b-2) 0; border-bottom: 1px solid var(--kenarlik); font-size: var(--fs-sm); }
.sonuc-toplam { display: flex; justify-content: space-between; gap: var(--b-3); font-weight: var(--fw-kalin); font-size: var(--fs-lg); color: var(--metin-baslik); }
.sonuc-adimlar, .sonuc-hazirlik { padding-left: var(--b-5) !important; font-size: var(--fs-sm); display: grid; gap: var(--b-1); }
.sonuc-rehber { justify-self: start; }
.onizleme-ayrinti summary { cursor: pointer; font-size: var(--fs-sm); font-weight: var(--fw-yari); color: var(--metin-link); min-height: var(--dokunma-min); display: flex; align-items: center; }
.onizleme-json { max-height: 280px; overflow: auto; margin: 0; padding: var(--b-3); border-radius: var(--r-md); background: var(--gri-900); color: var(--gri-100); font-family: var(--font-mono); font-size: var(--fs-xs); line-height: 1.5; white-space: pre; }

/* Bildirimler (toast) — pencere dışında, sayfanın altında */
.bildirimler { position: fixed; z-index: 1100; left: 50%; bottom: var(--b-4); transform: translateX(-50%); display: grid; gap: var(--b-2); width: min(480px, calc(100vw - 32px)); pointer-events: none; }
.bildirim { pointer-events: auto; display: flex; align-items: center; gap: var(--b-3); padding: var(--b-3) var(--b-3) var(--b-3) var(--b-4); border-radius: var(--r-md); background: var(--gri-900); color: var(--metin-ters); box-shadow: var(--golge-lg); font-size: var(--fs-sm); }
.bildirim p { flex: 1; margin: 0; }
.bildirim button { min-height: var(--dokunma-min); padding: 0 var(--b-3); border: 1px solid rgba(255, 255, 255, .3); border-radius: var(--r-sm); background: transparent; color: var(--camgobegi-300); font-weight: var(--fw-yari); }

@media (forced-colors: active) {
  .modal { border: 2px solid CanvasText; }
  .falan input, .falan textarea { border: 1px solid CanvasText; }
}

/* Sayfa içi form kartı (ana sayfa İletişim bölümü): pencereyle aynı form stilleri, koyu bölüm üzerinde açık kart */
.form-kart {
  background: var(--yuzey); color: var(--metin); border-radius: var(--r-xl); padding: var(--b-6); box-shadow: var(--golge-xl);
  font-family: var(--font-govde); font-size: var(--fs-base); line-height: var(--lh-govde); color-scheme: light;
}
.koyu .form-kart a:not(.dugme) { color: var(--metin-link); }
.koyu .form-kart :focus-visible { box-shadow: var(--odak-golge); }
.form-kart .adim__baslik { font-size: var(--fs-xl); }
.iletisim-formu__alt { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--b-3); }
.iletisim-formu__alt:has(> [hidden]:only-child) { display: none; }
@media (max-width: 479.98px) {
  .form-kart { padding: var(--b-4); border-radius: var(--r-lg); }
  .iletisim-formu__alt .dugme { width: 100%; }
}