/* Randevu kaynağı (ky-; gorunum/kaynak.js, gorunum/kaynak-kart.js). Renkler yalnız belirteçlerden (Gündüz; kurum rengi --vurgu), yeni palet ve yazı tipi yok.
   "Kaynak hunisi": üstte iri dönüşüm oranı + sayaçlar, altında kaynak başına satır (yeni hasta payı ince çubukla → randevu → gelen / gelmedi / iptal →
   dönüşüm çubuk + metin). Oranlar her zaman metinle de yazılır; kırmızı yok. Dar ekran (≤ 640 px): tablo kaynak başına karta döner (tablo bileşeninin kap
   sorgusu), süzgeçler kendi kabında yatay kayar, ay şeridi ve yıl tablosu kendi kabında kayar (sayfa taşmaz), dokunma hedefi ≥ 44 px. */

/* ---------------- ortak ---------------- */
.ky-baslik-alt { overflow-wrap: anywhere; }
.ky-uyarilar { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; min-width: 0; }
.ky-uyarilar:empty { display: none; }
.ky-bilgi { margin: 0; font-size: 12.5px; color: var(--metin3); overflow-wrap: anywhere; }
.ky-mono { font-family: var(--f-sayi); font-size: 12.5px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ky-tanim { margin: 0; font-size: 12.5px; overflow-wrap: anywhere; }
.ky-kvkk { margin: 4px 0 0; display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; border-radius: var(--r); background: var(--yuzey2);
  font-size: 12.5px; color: var(--metin2); overflow-wrap: anywhere; }
.ky-kvkk > .ikon { color: var(--iyi); margin-top: 1px; flex: none; }
.sekme-panel:has(> .ky-rapor-arac), .sekme-panel:has(> .ky-tanimlar), .sekme-panel:has(> .ky-hr-arac) { min-width: 0; max-width: 100%; }

/* ---------------- rapor: süzgeçler ---------------- */
.ky-rapor-arac { min-width: 0; margin-bottom: 12px; }
/* position: görünmez (mutlak konumlu) etiketler kayan kabın dışına taşıp sayfayı genişletmesin */
.ky-suzgec { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; flex: 1 1 auto; }
.ky-suzgec .bolumlu { flex: 0 1 auto; }
.ky-sec-kutu, .ky-suzgec .sube-secici { position: relative; }
.ky-sec-kutu { flex: 0 1 220px; min-width: 0; max-width: 100%; }
.ky-sec-kutu .secim { width: 100%; }
.ky-rapor-ozel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.ky-rapor-ozel[hidden] { display: none; }
.ky-rapor-ozel .girdi { width: auto; min-width: 0; max-width: 170px; }

/* ---------------- rapor: özet ---------------- */
.ky-rapor { display: flex; flex-direction: column; gap: 16px; min-width: 0; transition: opacity var(--t-hizli); }
.ky-rapor[aria-busy="true"] > * { opacity: .7; }
.ky-rapor-ust { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(0, 2fr); gap: 14px; align-items: stretch; min-width: 0; }
.ky-oran { display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 14px 18px; border-radius: var(--r-uzam, 14px); background: var(--yuzey);
  border: 1px solid var(--cizgi); border-left: 4px solid var(--vurgu); min-width: 0; }
.ky-oran-sayi { font-family: var(--f-sayi); font-size: 36px; font-weight: 600; line-height: 1.05; font-variant-numeric: tabular-nums; }
.ky-oran-ad { font-weight: 620; font-size: 13.5px; }
.ky-oran .metin-3 { font-size: 12.5px; overflow-wrap: anywhere; }
.ky-rapor-sayac { align-content: stretch; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }

/* ---------------- rapor: tablolar ---------------- */
.ky-tablo-kart { min-width: 0; }
.ky-tablo { min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; }
.ky-tablo .tablo { min-width: 100%; }
/* çok sütunlu sayı tablosu: başlık iki satıra iner, hücre boşluğu dar (masaüstünde yatay kaydırma gerekmesin) */
.ky-tablo th { white-space: normal; overflow-wrap: normal; word-break: keep-all; height: auto; padding: 8px 8px; line-height: 1.25; vertical-align: bottom;
  letter-spacing: .04em; }
.ky-tablo td { white-space: nowrap; padding-left: 8px; padding-right: 8px; }
.ky-tablo td.birincil { white-space: normal; min-width: 9em; }
.ky-tablo tr[data-toplam] td { font-weight: 650; background: var(--yuzey2); border-top: 1px solid var(--cizgi2); }
.ky-tablo tr[data-kaynaksiz] td.birincil { font-style: italic; }
.ky-kaynak-ad { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-width: 0; overflow-wrap: anywhere; }
.ky-pay-hucre, .ky-oran-hucre { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.ky-pay-hucre .cubuk { width: 40px; flex: none; }
.ky-oran-hucre .cubuk { width: 52px; flex: none; }
.ky-eslesmeyen { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ky-eslesmeyen > p { margin: 0; overflow-wrap: anywhere; }
.ky-etiket-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ky-etiket-liste > li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 6px 0; border-top: 1px solid var(--cizgi); min-width: 0; }
.ky-etiket-liste > li:first-child { border-top: 0; }

/* ---------------- tanımlar ---------------- */
.ky-tanimlar { display: flex; flex-direction: column; gap: 14px; min-width: 0; transition: opacity var(--t-hizli); }
.ky-tanimlar[aria-busy="true"] > * { opacity: .7; }
.ky-tanim-arac { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 16px; }
.ky-tanim-arac > p { margin: 0; flex: 1 1 320px; min-width: 0; font-size: 13px; overflow-wrap: anywhere; }
.ky-tanim-eylem { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ky-baglanti-kart .kopya-kutusu { max-width: 100%; }
.ky-baglanti-kart p { margin: 0; overflow-wrap: anywhere; }
.ky-tanim-liste { list-style: none; margin: 0; padding: 0 6px; display: flex; flex-direction: column; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--r-uzam, 14px); min-width: 0; }
.ky-tanim { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px 14px; padding: 12px 8px; border-top: 1px solid var(--cizgi); min-width: 0; }
.ky-tanim:first-child { border-top: 0; }
.ky-tanim[data-durum="pasif"] { background: var(--yuzey2); }
.ky-tanim[data-durum="pasif"] .ky-tanim-bas strong { color: var(--metin2); }
.ky-tanim-govde { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ky-tanim-govde p { margin: 0; overflow-wrap: anywhere; }
.ky-tanim-bas { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.ky-tanim-kod { font-size: 12.5px; }
.ky-tanim-etiket { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; font-size: 12.5px; }
.ky-cip { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: var(--r-tam); background: var(--yuzey3); color: var(--metin2);
  font-family: var(--f-sayi); font-size: 12px; overflow-wrap: anywhere; }
.ky-tanim-eylemler { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

/* ---------------- harcama ---------------- */
.ky-hr-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-bottom: 12px; min-width: 0; }
.ky-yil { display: inline-flex; align-items: center; gap: 8px; }
.ky-yil-sayi { font-family: var(--f-sayi); font-size: 18px; font-weight: 600; min-width: 3.2em; text-align: center; }
.ky-hr-not { margin: 0; flex: 1 1 320px; min-width: 0; font-size: 12.5px; overflow-wrap: anywhere; }
.ky-ay-kap { margin-bottom: 14px; min-width: 0; }
.ky-ay-kap:empty { display: none; }
.ky-ay-serit { list-style: none; margin: 0; padding: 2px; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; }
.ky-ay-serit > li { min-width: 0; display: flex; }
.ky-ay { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; min-width: 0; min-height: 52px; padding: 8px 8px 8px 10px; text-align: left;
  color: var(--metin); background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--r); cursor: pointer; font: inherit;
  transition: border-color var(--t-hizli), background var(--t-hizli), box-shadow var(--t-orta); }
.ky-ay:hover { box-shadow: var(--golge); }
.ky-ay:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.ky-ay[aria-pressed="true"] { background: var(--vurgu-zemin); border-color: color-mix(in oklab, var(--vurgu) 45%, var(--cizgi)); box-shadow: inset 0 -2px 0 var(--vurgu); }
.ky-ay-ad { font-weight: 620; font-size: 13px; }
.ky-ay-tutar { font-size: 11.5px; color: var(--metin3); overflow-wrap: anywhere; line-height: 1.2; }
.ky-harcama { display: flex; flex-direction: column; gap: 14px; min-width: 0; transition: opacity var(--t-hizli); }
.ky-harcama[aria-busy="true"] > * { opacity: .7; }
.ky-hr-ay-toplam { margin: 0; font-weight: 620; font-size: 14px; font-variant-numeric: tabular-nums; }
.ky-hr-yil-toplam { margin: 0; font-size: 12.5px; }
.ky-hr-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; min-width: 0; }
.ky-hr-satir { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; padding: 10px 0; border-top: 1px solid var(--cizgi); min-width: 0; }
.ky-hr-satir:first-child { border-top: 0; }
.ky-hr-satir[data-durum="pasif"] .ky-hr-bas strong { color: var(--metin2); }
.ky-hr-ad { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ky-hr-ad p { margin: 0; overflow-wrap: anywhere; }
.ky-hr-ad .metin-3 { font-size: 12.5px; }
.ky-hr-bas { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.ky-hr-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; }
.ky-hr-girdi-kap { position: relative; display: inline-flex; align-items: center; min-width: 0; }
.ky-hr-girdi { width: 150px; max-width: 100%; text-align: right; padding-right: 26px; }
.ky-hr-birim { position: absolute; right: 10px; color: var(--metin3); font-size: 13px; pointer-events: none; }
.ky-hr-satir > .alan-hata { grid-column: 1 / -1; margin: 0; }
.ky-yil-ozet { min-width: 0; }
.ky-yil-ozet > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 620; font-size: 13.5px; }
.ky-yil-kaydir { overflow-x: auto; overscroll-behavior-x: contain; max-width: 100%; border: 1px solid var(--cizgi); border-radius: var(--r); background: var(--yuzey); }
.ky-yil-kaydir:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.ky-yil-tablo { border-collapse: collapse; font-size: 12.5px; min-width: 100%; }
.ky-yil-tablo th, .ky-yil-tablo td { padding: 6px 10px; border-bottom: 1px solid var(--cizgi); text-align: right; white-space: nowrap; }
.ky-yil-tablo thead th { font-size: 11.5px; font-weight: 650; color: var(--metin3); background: var(--yuzey); }
.ky-yil-tablo th[scope="row"], .ky-yil-tablo thead th:first-child { position: sticky; left: 0; z-index: 1; text-align: left; background: var(--yuzey); font-weight: 600;
  max-width: 14em; overflow: hidden; text-overflow: ellipsis; }
.ky-yil-tablo tbody tr:last-child th, .ky-yil-tablo tbody tr:last-child td { border-bottom: 0; }

/* ---------------- hasta kartı: "Nereden geldi" ---------------- */
.ky-hk { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ky-hk-ust { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; min-width: 0; }
.ky-hk-metin { overflow-wrap: anywhere; }
.ky-hk-metin[data-bos] { color: var(--metin3); }
.ky-hk-alt { font-size: 12px; }
.ky-hk-hata { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.ky-hk-form { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.ky-hk-sec { flex: 1 1 200px; min-width: 0; max-width: 280px; }
.ky-hk-sec .secim { width: 100%; }
.ky-hk-talep > summary { cursor: pointer; font-size: 12.5px; color: var(--metin2); min-height: 32px; display: flex; align-items: center; }
.ky-hk-talep-liste { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; }
.ky-hk-talep-liste > li { display: flex; flex-direction: column; gap: 1px; min-width: 0; overflow-wrap: anywhere; }

/* ---------------- dar ekran ---------------- */
@media (max-width: 900px) {
  .ky-rapor-ust { grid-template-columns: minmax(0, 1fr); }
  .ky-ay-serit { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(84px, 1fr); overflow-x: auto; overscroll-behavior-x: contain;
    scrollbar-width: thin; padding-bottom: 6px; }
}
@media (max-width: 640px) {
  /* süzgeç grupları alt alta; hap grupları kendi kabında yatay kayar (özel tarih satırı görünür kalır, sayfa taşmaz) */
  .ky-suzgec { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; }
  .ky-suzgec .bolumlu[data-tur="hap"] { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; max-width: 100%; padding: 2px 2px 6px; }
  .ky-suzgec .bolumlu[data-tur="hap"] .bolumlu-oge { flex: none; height: 44px; white-space: nowrap; }
  .ky-sec-kutu, .ky-suzgec .sube-secici { width: 100%; max-width: none; flex: none; }
  .ky-sec-kutu .secim { min-height: 44px; width: 100%; }
  .ky-suzgec .sube-secici { display: flex; align-items: center; gap: 8px; }
  .ky-suzgec .sube-secici .secim { min-height: 44px; flex: 1; min-width: 0; width: auto; }
  .ky-rapor-ozel .girdi { min-height: 44px; max-width: none; flex: 1 1 130px; }
  .ky-rapor-ozel .dugme, .ky-tablo-kart .dugme { min-height: 44px; }
  .ky-oran-sayi { font-size: 30px; }
  .ky-tablo { overflow-x: visible; }
  .ky-tablo td { white-space: normal; }
  .ky-tanim-liste { padding: 0 2px; }
  .ky-tanim-eylemler .dugme, .ky-tanim-eylem .dugme, .ky-etiket-liste .dugme, .ky-hk .dugme, .ky-hr-form .dugme { min-height: 44px; }
  .ky-hr-satir { grid-template-columns: minmax(0, 1fr); }
  .ky-hr-form { justify-content: flex-start; }
  .ky-hr-girdi-kap { flex: 1 1 140px; }
  .ky-hr-girdi { width: 100%; min-height: 44px; }
  .ky-yil .ikon-dugme { min-width: 44px; min-height: 44px; }
  .ky-ay { min-height: 56px; }
  .ky-hk-sec { max-width: none; }
  .ky-hk-sec .secim { min-height: 44px; }
}
@media (pointer: coarse) {
  .ky-tanim-eylemler .dugme, .ky-hr-form .dugme, .ky-hk .dugme, .ky-etiket-liste .dugme { min-height: 44px; }
  .ky-hr-girdi, .ky-hk-sec .secim { min-height: 44px; }
}

/* ---------------- efekt ve hareket ---------------- */
:root:not([data-efekt="sade"]) .ky-tanim-liste { background: var(--cam, var(--yuzey)); backdrop-filter: var(--cam-bulanik); -webkit-backdrop-filter: var(--cam-bulanik);
  border-color: var(--cam-kenar, var(--cizgi)); box-shadow: var(--golge-uzam); }
@media (forced-colors: active) {
  .ky-ay[aria-pressed="true"] { outline: 2px solid CanvasText; }
  .ky-tablo tr[data-toplam] td { border-top: 2px solid CanvasText; }
}
