/* yaranoglu.com — "B · Modern uygulama" tasarımı
   Yerleşim: üstte sabit başlık; soyağacı sayfasında solda kaydırılabilir ağaç, sağda kişi paneli
   (mobilde alttan açılan sayfa). Renkler token olarak tanımlı; açık ve koyu tema. */

:root {
  --zemin: #f6f8f7;
  --kart: #ffffff;
  --yazi: #16201d;
  --soluk: #5d6b66;
  --cizgi: #e2e8e6;
  --cizgi-guclu: #c9d4d1;
  --vurgu: #0f766e;
  --vurgu-acik: #e6f3f1;
  --vurgu-yazi: #ffffff;
  --uyari: #8a5300;
  --uyari-zemin: #fdf5e1;
  --z-erkek: #24312d;
  --z-kadin: #7c3aed;         /* kadın zinciri: mor */
  --z-tekrar: #eab308;        /* tekrar gösterim: canlı sarı */
  --z-tekrar-zemin: #fff36b;
  --z-tekrar-yazi: #713f12;   /* sarı zemin üzerinde okunur yazı (×N rozeti) */
  --kardes-cizgi: #8fb5ae;
  --evlilik-ic: #ec4fbf;
  --evlilik-ic-zemin: #fdf0f8;
  --evlilik-dis: #1d4ed8;
  --avatar-erkek: #2563eb;
  --avatar-kadin: #dc2626;
  --agac-zemin: #dbe7e1; /* açık adaçayı yeşili */
  --agac-hat: #6f8a83;     /* ebeveyn → çocuk bağlantı çizgileri */
  --z-kadin-zemin: #e6dafc;
  --golge: 0 1px 2px rgb(16 32 29 / .06), 0 4px 16px rgb(16 32 29 / .06);
  --yazi-govde: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --yazi-kod: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;
  --r: 10px;
  --bulut-1: #0f766e; --bulut-2: #2f5d57; --bulut-3: #b45309; --bulut-4: #6b5aa8; --sicak: #b45309;
  --bas-yuk: 60px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --zemin: #0f1514;
    --kart: #172120;
    --yazi: #e5eeeb;
    --soluk: #93a39e;
    --cizgi: #263432;
    --cizgi-guclu: #36504b;
    --vurgu: #2dd4bf;
    --vurgu-acik: #123532;
    --vurgu-yazi: #062421;
    --uyari: #f5c26b;
    --uyari-zemin: #2d2414;
    --z-erkek: #cfdcd8;
    --z-kadin: #a78bfa;
    --z-tekrar: #facc15;
    --z-tekrar-zemin: #3d3404;
    --z-tekrar-yazi: #fde047;
    --kardes-cizgi: #3f6d66;
    --evlilik-ic: #f472d0;
    --evlilik-ic-zemin: #2a1726;
    --evlilik-dis: #5b8cff;
    --avatar-erkek: #7aa7ff;
    --avatar-kadin: #f87171;
    --agac-zemin: #0e1a15;
    --agac-hat: #5f857b;
    --z-kadin-zemin: #2e2249;
    --golge: 0 1px 2px rgb(0 0 0 / .3), 0 4px 16px rgb(0 0 0 / .25);
    --bulut-1: #2dd4bf; --bulut-2: #9fc9c0; --bulut-3: #f59e0b; --bulut-4: #a78bfa; --sicak: #f59e0b;
    color-scheme: dark;
  }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; min-height: 100vh; display: flex; flex-direction: column;
  background: var(--zemin); color: var(--yazi);
  font: 16px/1.55 var(--yazi-govde);
}
a { color: var(--vurgu); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; border-radius: 4px; }
img { max-width: 100%; display: block; }
h1, h2, h3 { line-height: 1.2; text-wrap: balance; margin: 0; }
.gizli { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.soluk { color: var(--soluk); }
.sayisal { font-variant-numeric: tabular-nums; }
.sag { text-align: right; }

/* ---------- Başlık ---------- */
.ust { position: sticky; top: 0; z-index: 20; background: var(--kart); border-bottom: 1px solid var(--cizgi); }
.ust-ic {
  display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap;
  max-width: 1400px; margin: 0 auto; min-height: var(--bas-yuk);
  padding: 8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));
}
.logo { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 18px; color: var(--yazi); }
.logo:hover { text-decoration: none; }
.arama { position: relative; flex: 1 1 220px; max-width: 340px; }
.arama input, .arama-buyuk input {
  width: 100%; font: inherit; font-size: 15px; color: var(--yazi);
  background: var(--zemin); border: 1px solid var(--cizgi); border-radius: 8px; padding: 8px 12px;
}
.arama input:focus, .arama-buyuk input:focus { outline: none; border-color: var(--vurgu); background: var(--kart); }
.arama-sonuc {
  position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; width: min(680px, calc(100vw - 32px));
  background: var(--kart); border: 1px solid var(--cizgi); border-radius: var(--r); box-shadow: var(--golge);
  max-height: min(70vh, 460px); overflow-y: auto; padding: 4px;
}
.arama-sonuc .sonuc { padding: 6px 8px 8px; border-radius: 8px; }
.arama-sonuc .sonuc:hover, .arama-sonuc .sonuc:has(.secili) { background: var(--vurgu-acik); }
.sonuc-ana { display: flex; gap: 10px; align-items: center; color: var(--yazi); }
.sonuc-ana:hover { text-decoration: none; }
.sonuc-ana:hover b { color: var(--vurgu); }
.arama-sonuc .sonuc .ata-zinciri { padding-left: 46px; }
.arama-sonuc .tumu { padding: 10px 8px; font-size: 13px; color: var(--vurgu); border-radius: 8px; }
.arama-sonuc .tumu.secili { background: var(--vurgu-acik); }
.arama-sonuc small { display: block; color: var(--soluk); font-size: 12.5px; }
.sonuc-ana > span:last-child { min-width: 0; }
.ata-zinciri { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 5px; margin-top: 6px; font-size: 12.5px; color: var(--soluk); line-height: 1.3; }
.ata-zinciri .ata { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; color: var(--soluk); border-radius: 99px; padding: 1px 6px 1px 1px; }
.ata-zinciri a.ata:hover { color: var(--vurgu); background: var(--vurgu-acik); text-decoration: none; }
.sonuc-kart { background: var(--kart); border: 1px solid var(--cizgi); border-radius: var(--r); padding: 10px 12px; display: grid; gap: 2px; }
.sonuc-kart .ata-zinciri { padding-left: 60px; }
.sonuc-kart b { display: block; font-weight: 600; }
.sonuc-kart small { display: block; color: var(--soluk); font-size: 13px; }
.kart-atalar { display: grid; gap: 2px; }
.kart-atalar-bas { font-size: 12px; color: var(--soluk); }
.kart-atalar .ata-zinciri { margin-top: 0; }
.ata-zinciri .ayrac { color: var(--cizgi-guclu); }
.avatar.mini { width: 20px; height: 20px; font-size: 10px; }

.arama-sonuc .bos { padding: 10px; color: var(--soluk); font-size: 14px; }
.menu { display: flex; gap: 4px 16px; overflow-x: auto; scrollbar-width: none; margin-left: auto; }
.menu::-webkit-scrollbar { display: none; }
.menu a { color: var(--soluk); font-weight: 500; font-size: 14.5px; white-space: nowrap; padding: 6px 0; border-bottom: 2px solid transparent; }
.menu a:hover { color: var(--yazi); text-decoration: none; }
.menu a.aktif { color: var(--vurgu); border-bottom-color: var(--vurgu); }

/* ---------- Genel yerleşim ---------- */
.icerik {
  flex: 1; width: 100%; max-width: 1180px; margin: 0 auto;
  padding: 28px max(16px, env(safe-area-inset-right)) 48px max(16px, env(safe-area-inset-left));
}
body.genis .icerik { max-width: 1400px; padding-top: 16px; padding-bottom: 16px; }
.alt { border-top: 1px solid var(--cizgi); background: var(--kart); font-size: 14px; color: var(--soluk); }
.alt-ic { max-width: 1400px; margin: 0 auto; display: flex; justify-content: space-between; gap: 16px; padding: 14px max(16px, env(safe-area-inset-right)) 14px max(16px, env(safe-area-inset-left)); }
.sayfa-dar { max-width: 760px; margin: 0 auto; display: grid; gap: 18px; }
.sayfa-dar > h1 { font-size: 28px; }
.giris { color: var(--soluk); margin: 0; max-width: 65ch; }

.dugme {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--vurgu); color: var(--vurgu-yazi); font: inherit; font-weight: 600; font-size: 15px;
  border: 1px solid transparent; border-radius: 8px; padding: 9px 16px; cursor: pointer;
}
.dugme:hover { text-decoration: none; filter: brightness(1.06); }
.dugme.ikincil { background: transparent; color: var(--vurgu); border-color: var(--cizgi-guclu); }
.dugme.kucuk { padding: 5px 10px; font-size: 13px; }
.dugmeler { display: flex; flex-wrap: wrap; gap: 10px; }

.rozet { display: inline-block; font-size: 11.5px; font-weight: 700; line-height: 1; padding: 4px 6px; border-radius: 99px; font-variant-numeric: tabular-nums; }
.rozet.tekrar { background: var(--z-tekrar-zemin); color: var(--z-tekrar-yazi); }

.avatar {
  flex: none; display: grid; place-items: center; overflow: hidden; border-radius: 50%;
  background: color-mix(in srgb, var(--avatar-erkek) 14%, var(--kart)); color: var(--avatar-erkek); font-weight: 700;
  width: 36px; height: 36px; font-size: 15px;
}
/* Fotoğrafsız kişilerde baş harf kutusu: erkek mavi, kadın kırmızı */
.avatar.k { background: color-mix(in srgb, var(--avatar-kadin) 14%, var(--kart)); color: var(--avatar-kadin); }
.avatar.orta { width: 48px; height: 48px; font-size: 18px; }
.avatar.buyuk { width: 72px; height: 72px; font-size: 26px; }
.avatar img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Ana sayfa ---------- */
.ust-etiket { margin: 0 0 8px; font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--vurgu); }
.sayilar { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
.sayilar div { background: var(--kart); border: 1px solid var(--cizgi); border-radius: var(--r); padding: 14px 16px; }
.sayilar dt { font-size: 13px; color: var(--soluk); }
.sayilar dd { margin: 2px 0 0; font-size: 30px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.bolum { display: grid; gap: 14px; padding-block: 18px; }
.bolum-bas h2 { font-size: 20px; }
.bolum-bas p { margin: 4px 0 0; color: var(--soluk); font-size: 15px; }
.modul-izgara, .liste, .cip-liste, .esler, .lejant, .zincirler { list-style: none; margin: 0; padding: 0; }
.modul-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.modul-izgara a { display: block; padding: 14px 16px; border-radius: var(--r); background: var(--kart); border: 1px solid var(--cizgi); color: var(--yazi); }
.modul-izgara a:hover { text-decoration: none; border-color: var(--cizgi-guclu); }
.modul-izgara b { display: block; }
.modul-izgara small { color: var(--soluk); font-size: 13px; }
.liste { display: grid; gap: 8px; }
.arama-buyuk { display: flex; gap: 8px; }
.bos-durum { max-width: 560px; margin: 48px auto; text-align: center; display: grid; gap: 10px; }
.bos-durum p { color: var(--soluk); margin: 0; }

.tablo-kap { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: var(--r); background: var(--kart); }
.tablo { width: 100%; border-collapse: collapse; font-size: 15px; }
.tablo th, .tablo td { padding: 10px 14px; border-bottom: 1px solid var(--cizgi); text-align: left; vertical-align: top; }
.tablo th { font-size: 12.5px; font-weight: 600; color: var(--soluk); text-transform: uppercase; letter-spacing: .05em; background: var(--zemin); }
.tablo tr:last-child td { border-bottom: 0; }
.evlilik-isaret { color: var(--uyari); font-weight: 700; }

/* ---------- Soyağacı sayfası ---------- */
.agac-sayfa {
  --panel-varsayilan: 380px;
  display: grid; grid-template-columns: minmax(0, 1fr) 14px var(--panel-gen, var(--panel-varsayilan)); gap: 0;
  height: calc(100vh - var(--bas-yuk) - 32px - 50px); min-height: 520px;
}
/* Ağaç ile panel arasındaki sürüklenebilir ayırıcı */
.ayirici { position: relative; cursor: col-resize; touch-action: none; }
.ayirici::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; margin-left: -1px; border-radius: 2px; background: transparent; transition: background .15s; }
.ayirici::after { content: ""; position: absolute; top: 50%; left: 50%; width: 6px; height: 40px; margin: -20px 0 0 -3px; border-radius: 3px; background: var(--cizgi-guclu); }
.ayirici:hover::before, .ayirici:focus-visible::before, .ayirici.aktif::before { background: var(--vurgu); }
.ayirici:hover::after, .ayirici.aktif::after { background: var(--vurgu); }
.ayirici:focus-visible { outline: none; }
body.boyutlandiriliyor { cursor: col-resize; user-select: none; }
.agac-alan { display: flex; flex-direction: column; gap: 10px; min-width: 0; min-height: 0; }
.agac-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.atalar { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: 14px; min-width: 0; }
.atalar span[aria-current] { font-weight: 600; }
.ata-kod { font-family: var(--yazi-kod); font-size: 12px; font-weight: 400; color: var(--soluk); margin-right: 5px; }
.atalar .ayrac { color: var(--cizgi-guclu); }
.agac-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.secmeli { display: inline-flex; border: 1px solid var(--cizgi); border-radius: 99px; padding: 3px; margin: 0; background: var(--kart); }
.secmeli label { cursor: pointer; }
.secmeli input { position: absolute; opacity: 0; pointer-events: none; }
.secmeli span { display: block; font-size: 13px; padding: 5px 11px; border-radius: 99px; color: var(--soluk); white-space: nowrap; }
.secmeli input:checked + span { background: var(--vurgu-acik); color: var(--vurgu); font-weight: 600; }
.secmeli input:focus-visible + span { outline: 2px solid var(--vurgu); }
/* Açma-kapama anahtarı */
.anahtar { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--soluk); cursor: pointer; user-select: none; }
.anahtar input { position: absolute; opacity: 0; pointer-events: none; }
.anahtar-yuva { position: relative; width: 34px; height: 20px; border-radius: 99px; background: var(--cizgi-guclu); transition: background .15s; flex: none; }
.anahtar-yuva::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--kart); box-shadow: 0 1px 2px rgb(0 0 0 / .25); transition: transform .15s; }
.anahtar input:checked + .anahtar-yuva { background: var(--vurgu); }
.anahtar input:checked + .anahtar-yuva::after { transform: translateX(14px); }
.anahtar input:focus-visible + .anahtar-yuva { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.nesil-sec { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--soluk); }
.nesil-sec select { font: inherit; color: var(--yazi); background: var(--kart); border: 1px solid var(--cizgi); border-radius: 8px; padding: 5px 8px; }

.agac-cerceve { position: relative; flex: 1; min-height: 0; background: var(--agac-zemin); border: 1px solid var(--cizgi); border-radius: 12px; overflow: hidden; }
/* Silik yaprak deseni */
.agac-cerceve { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%230f766e' stroke-opacity='.13' stroke-width='1.4'%3E%3Cpath d='M20 40c8-14 24-16 30-14-2 10-14 22-30 14z'/%3E%3Cpath d='M20 40l26-12'/%3E%3Cpath d='M78 96c6-12 20-14 25-12-2 9-12 19-25 12z'/%3E%3Cpath d='M78 96l22-10'/%3E%3Cpath d='M86 30c-3-9 2-18 6-20 4 6 3 16-6 20z'/%3E%3Cpath d='M38 92c-9 1-15-6-15-10 7-2 14 2 15 10z'/%3E%3C/g%3E%3C/svg%3E"); background-size: 120px 120px; }
.agac-kaydir { position: absolute; inset: 0; overflow: auto; cursor: grab; overscroll-behavior: contain; }
.agac-kaydir.suruk { cursor: grabbing; user-select: none; }
.agac-kaydir:focus-visible { outline-offset: -2px; }
.agac-ic { display: inline-block; padding: 24px 40px 24px 24px; min-width: 100%; }
.yakinlik { position: absolute; z-index: 2; right: 12px; bottom: 12px; display: flex; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 8px; box-shadow: var(--golge); overflow: hidden; }
.yakinlik button { font: inherit; font-size: 16px; min-width: 36px; height: 34px; border: 0; background: none; color: var(--yazi); cursor: pointer; }
.yakinlik button:hover { background: var(--vurgu-acik); }
.yakinlik .yuzde { font-size: 12px; min-width: 52px; border-inline: 1px solid var(--cizgi); font-variant-numeric: tabular-nums; }
.agac-alt { margin: 0; font-size: 13px; }

/* Yatay ağaç (eski sitedeki gibi ebeveyn, çocuklarının en üstüne hizalı):
   her <li> = düğüm + çocuk listesi; bağlantı çizgileri sözde öğelerle, düğümün ilk satırı hizasında */
.agac-ic { --hat: 26px; } /* li dolgusu 4 + çerçeve 2 + iç dolgu 4 + adın ilk satırının ortası */
.dal { list-style: none; margin: 0; padding: 0 0 0 22px; position: relative; display: flex; flex-direction: column; }
.dal::before { content: ""; position: absolute; left: 0; top: var(--hat); width: 22px; border-top: 2px solid var(--agac-hat); }
.dal > li { position: relative; display: flex; align-items: flex-start; padding: 4px 0 4px 22px; --gb: 0px; }
/* Eşe göre grup başlığı olan çocuk: başlık kadar aşağı kayar, bağlantı çizgileri de onunla kayar. */
.dal > li.grup-bas { --gb: 21px; padding-top: calc(4px + var(--gb)); }
.es-grup { position: absolute; left: 22px; top: 5px; font-size: 12px; font-weight: 600; color: var(--soluk); white-space: nowrap; }
.dal > li.grup-bas:only-child::after { display: block; top: var(--hat); bottom: auto; height: var(--gb); }
.dal > li::before { content: ""; position: absolute; left: 0; top: calc(var(--hat) + var(--gb)); width: 22px; border-top: 2px solid var(--agac-hat); }
.dal > li::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; border-left: 2px solid var(--agac-hat); }
.dal > li:first-child::after { top: var(--hat); }
.dal > li:last-child::after { bottom: auto; height: calc(var(--hat) + var(--gb)); }
.dal > li:only-child::after { display: none; }
.dal > li > .dal { margin-top: -4px; }
.dal.kok { padding-left: 0; }
.dal.kok::before, .dal.kok > li::before, .dal.kok > li::after { display: none; }
.dal.kok > li { padding-left: 0; }
/* En soldaki atanın çocukları arasında geçiş: bir çocuğun alt soyu bitip kardeşine geçerken kalın çizgi */
.dal.kok > li > .dal { flex: 1; } /* çizgi ağaç alanının sonuna kadar uzansın */
.dal.kok > li > .dal > li + li { margin-top: 14px; border-top: 4px solid var(--kardes-cizgi); }
.dal.kok > li > .dal > li + li::after { top: -18px; }
.dal.kok > li > .dal > li + li:last-child::after { bottom: auto; height: calc(var(--hat) + var(--gb) + 18px); }
/* Bir alt seviye: torunlar arasında, bir torunun alt soyu bitip kardeşine geçerken kesikli çizgi */
.dal.kok > li > .dal > li > .dal { flex: 1; }
.dal.kok > li > .dal > li > .dal > li + li { margin-top: 10px; border-top: 3px solid transparent; background: var(--ayrim-kesik); }
.dal.kok > li > .dal > li > .dal > li + li::after { top: -13px; }
.dal.kok > li > .dal > li > .dal > li + li:last-child::after { bottom: auto; height: calc(var(--hat) + var(--gb) + 13px); }
/* Bir alt seviye daha: torunun çocukları arasında noktalı çizgi */
.dal.kok > li > .dal > li > .dal > li > .dal { flex: 1; }
.dal.kok > li > .dal > li > .dal > li > .dal > li + li { margin-top: 8px; border-top: 4px solid transparent; background: var(--ayrim-nokta); }
.dal.kok > li > .dal > li > .dal > li > .dal > li + li::after { top: -12px; }
.dal.kok > li > .dal > li > .dal > li > .dal > li + li:last-child::after { bottom: auto; height: calc(var(--hat) + var(--gb) + 12px); }
/* Kesikli: 16px çizgi + 10px boşluk; noktalı: 4px yuvarlak nokta + 9px boşluk. Kenarlık yerine zemin
   görseliyle çiziliyor ki boşluklar ayarlanabilsin; şeffaf kenarlık yer tutucu olarak kalıyor. */
.agac-ic {
  --ayrim-kesik: repeating-linear-gradient(to right, var(--kardes-cizgi) 0 16px, transparent 16px 26px) 0 0 / 100% 3px no-repeat border-box;
  --ayrim-nokta: radial-gradient(circle at 2px 2px, var(--kardes-cizgi) 2px, transparent 2.6px) 0 0 / 13px 4px repeat-x border-box;
}

/* Kişi + eşleri çerçevesi (eski sitedeki gibi): aile içi evlilik pembe, aile dışı evlilik mavi */
.aile { flex: none; display: grid; gap: 4px; padding: 4px; border: 2px solid transparent; border-radius: 11px; }
.aile.ic { border-color: var(--evlilik-ic); background: var(--evlilik-ic-zemin); }
.aile.dis { border-color: var(--evlilik-dis); background: var(--kart); }
.es-kutu {
  position: relative; display: grid; gap: 1px; padding: 5px 10px 5px 13px; border-radius: 7px;
  background: var(--zemin); border: 1px solid var(--cizgi); color: var(--yazi); font-size: 13px; cursor: default;
}
.es-kutu .dugum-ad { font-size: 13px; }
.es-no { color: var(--vurgu); font-weight: 700; }
.lejant-no { font-size: 20px; line-height: 20px; width: 28px; text-align: center; flex: none; }
a.es-kutu { cursor: pointer; background: var(--kart); }
/* Sülaleden eşin solunda, kendi asıl zincirinin rengi: erkek zinciri siyah, kadın zinciri mor */
a.es-kutu::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; border-radius: 7px 0 0 7px; background: var(--z-erkek); }
a.es-kutu.kadin::before { background: var(--z-kadin); }
a.es-kutu:hover { text-decoration: none; border-color: var(--vurgu); }
a.es-kutu.secili { border-color: var(--vurgu); box-shadow: 0 0 0 2px var(--vurgu); }
.es-kutu .rozet { position: absolute; right: 6px; top: 5px; }
.es-kutu.fotolu { grid-template-columns: 36px minmax(0, 1fr); column-gap: 9px; align-items: start; }
.es-kutu.fotolu > :not(.avatar):not(.rozet) { grid-column: 2; }
.es-kutu.fotolu > .avatar { grid-column: 1; grid-row: 1 / span 3; }
.avatar.portre-kucuk { width: 36px; height: 44px; border-radius: 5px; font-size: 14px; }
.aile { width: 190px; }
.aile:has(.fotolu) { width: 228px; }
.aile .dugum { width: 100%; }
/* Eş, esas kişinin biraz sağında: buranın onun asıl yeri olmadığı anlaşılsın */
.aile .es-kutu { margin-left: var(--es-girinti); }
.aile { --es-girinti: 18px; }
.dugum {
  position: relative; flex: none; display: grid; gap: 1px; width: 176px;
  padding: 7px 10px 7px 13px; border-radius: 8px; color: var(--yazi);
  background: var(--kart); border: 1px solid var(--cizgi); box-shadow: 0 1px 1px rgb(0 0 0 / .03);
}
.dugum::before { content: ""; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 4px; border-radius: 8px 0 0 8px; background: var(--z-erkek); }
.dugum.kadin { background: var(--z-kadin-zemin); }
.dugum.kadin::before { background: var(--z-kadin); }
.dugum.tekrar { background: var(--z-tekrar-zemin); border-style: dashed; }
.dugum.tekrar::before { background: var(--z-tekrar); }
.dugum:hover { text-decoration: none; border-color: var(--vurgu); }
.dugum { touch-action: manipulation; user-select: none; -webkit-user-select: none; } /* çift dokunma sayfayı yakınlaştırmasın, metin seçilmesin */
.dugum.secili { border-color: var(--vurgu); box-shadow: 0 0 0 2px var(--vurgu); }
.dugum.vurgu { box-shadow: 0 0 0 3px var(--uyari); }
.dugum-ad { font-weight: 600; font-size: 14px; line-height: 1.25; padding-right: 26px; overflow-wrap: anywhere; }
.dugum-kod { font-family: var(--yazi-kod); font-weight: 400; font-size: 11px; color: var(--soluk); white-space: nowrap; }
/* Fotoğraflı görünüm: solda portre, sağda bilgiler */
.dugum.fotolu { grid-template-columns: 44px minmax(0, 1fr); column-gap: 9px; align-items: start; }
.dugum.fotolu > :not(.avatar):not(.rozet) { grid-column: 2; }
.dugum.fotolu > .avatar { grid-column: 1; grid-row: 1 / span 4; }
.avatar.portre { width: 44px; height: 54px; border-radius: 6px; font-size: 17px; }
.dugum-yil { font-size: 12px; color: var(--soluk); font-variant-numeric: tabular-nums; }
.dugum-es { font-size: 12px; color: var(--soluk); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dugum .rozet { position: absolute; right: 6px; top: 6px; }
.devam { flex: none; margin: 15px 0 0 10px; font-size: 12px; font-weight: 600; padding: 4px 8px; border-radius: 99px; border: 1px dashed var(--cizgi-guclu); color: var(--soluk); white-space: nowrap; }
.devam:hover { color: var(--vurgu); border-color: var(--vurgu); text-decoration: none; }

/* ---------- Panel ve kişi kartı ---------- */
.panel { min-height: 0; overflow-y: auto; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 12px; padding: 18px; }
.panel-bos { display: grid; gap: 14px; }
.panel-bos h2 { font-size: 16px; }
.panel-bos p { margin: 0; font-size: 14px; }
.lejant { display: grid; gap: 12px; }
.lejant li { display: flex; gap: 12px; align-items: flex-start; }
.lejant b { display: block; font-size: 14px; }
.lejant small { color: var(--soluk); font-size: 13px; }
.lejant .cizgi { flex: none; width: 28px; height: 20px; border-radius: 5px; border: 1px solid var(--cizgi); border-left: 4px solid var(--z-erkek); margin-top: 1px; }
.lejant .cizgi.kadin { border-left-color: var(--z-kadin); background: var(--z-kadin-zemin); }
.lejant .cizgi.tekrar { border-left-color: var(--z-tekrar); border-style: dashed; border-left-style: solid; background: var(--z-tekrar-zemin); }
.lejant .cerceve { flex: none; width: 28px; height: 20px; border-radius: 6px; border: 2px solid var(--evlilik-ic); background: var(--evlilik-ic-zemin); margin-top: 1px; }
.lejant .cerceve.dis { border-color: var(--evlilik-dis); background: none; }
.lejant .rozet { flex: none; width: 28px; text-align: center; }
.lejant .ayrim { flex: none; width: 28px; display: grid; gap: 5px; padding-top: 3px; }
.lejant .ayrim i { display: block; height: 4px; background: var(--kardes-cizgi); }
.lejant .ayrim i:nth-child(2) { height: 3px; background: repeating-linear-gradient(to right, var(--kardes-cizgi) 0 8px, transparent 8px 13px); }
.lejant .ayrim i:nth-child(3) { background: radial-gradient(circle at 2px 2px, var(--kardes-cizgi) 2px, transparent 2.6px) 0 0 / 8px 4px repeat-x; }
.panel.yukleniyor { opacity: .6; }

.kart { display: grid; gap: 16px; position: relative; }
.sayfa-dar .kart { background: var(--kart); border: 1px solid var(--cizgi); border-radius: 12px; padding: 22px; }
.kapat { position: absolute; right: -6px; top: -8px; width: 34px; height: 34px; border: 0; background: none; font-size: 24px; line-height: 1; color: var(--soluk); cursor: pointer; border-radius: 8px; }
.kapat:hover { background: var(--zemin); color: var(--yazi); }
.kart-bas { display: flex; gap: 14px; align-items: center; padding-right: 26px; }
.kart-bas h2 { font-size: 21px; }
.kart-bas p { margin: 3px 0 0; font-size: 14px; }
.kod { font-family: var(--yazi-kod); font-size: 12.5px; }
.uyari { background: var(--uyari-zemin); color: var(--uyari); border-radius: 8px; padding: 10px 12px; font-size: 14px; }
.uyari b { display: block; }
.bilgi { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 16px; margin: 0; font-size: 15px; }
.bilgi dt { color: var(--soluk); }
.bilgi dd { margin: 0; }
.esler { display: grid; gap: 6px; }
.akraba-etiket { display: inline-block; margin-top: 2px; font-size: 12px; font-weight: 600; color: var(--uyari); background: var(--uyari-zemin); border-radius: 99px; padding: 2px 8px; }
.kart-bolum { display: grid; gap: 8px; border-top: 1px solid var(--cizgi); padding-top: 14px; }
.kart-bolum h3 { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--soluk); }
.grup-bas { margin: 4px 0 0; font-size: 13.5px; color: var(--soluk); }
.cip-liste { display: flex; flex-wrap: wrap; gap: 6px; }
.cip-liste a { display: inline-block; font-size: 14px; padding: 4px 10px; border-radius: 99px; background: var(--zemin); border: 1px solid var(--cizgi); color: var(--yazi); }
.cip-liste a:hover { border-color: var(--vurgu); text-decoration: none; }
.zincirler { display: grid; gap: 8px; }
.zincirler li { border-left: 3px solid var(--z-erkek); padding: 2px 0 2px 10px; }
.zincirler li.kadin { border-left-color: var(--z-kadin); }
.zincirler li.tekrar { border-left-color: var(--z-tekrar); }
.zincir-tur { display: block; font-size: 12px; color: var(--soluk); }
.zincir-yol { font-size: 14px; }
.aciklama { font-size: 15px; max-width: 65ch; }
.kart-alt { display: flex; flex-wrap: wrap; gap: 8px; }

/* ================= İçerik modülleri ================= */
[hidden] { display: none !important; }
.alt-menu { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.sayfa-bas { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin-bottom: 22px; }
.sayfa-bas > div:first-child { min-width: 0; flex: 1 1 320px; }
.sayfa-bas h1 { font-size: clamp(26px, 3.4vw, 34px); letter-spacing: -.01em; overflow-wrap: anywhere; }
.sayfa-bas p { margin: 6px 0 0; color: var(--soluk); max-width: 68ch; }
.geri-baglanti { display: inline-block; margin-bottom: 8px; font-size: 14px; font-weight: 500; }
.rozet.taslak { background: var(--uyari-zemin); color: var(--uyari); vertical-align: middle; font-size: 11px; }
.kucuk-baglanti { font-size: 12.5px; font-weight: 500; margin-left: 6px; }
.ara-baslik { font-size: 18px; margin: 28px 0 12px; }
.liste-arama { max-width: 460px; margin-bottom: 18px; }
.sayfalama { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 26px; }

/* Kart ızgarası (haber, yemek) */
.kart-izgara, .album-izgara, .foto-izgara, .video-izgara, .mezar-liste { list-style: none; margin: 0; padding: 0; }
.kart-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.kart-oge { height: 100%; display: flex; flex-direction: column; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 12px; overflow: hidden; }
.kart-oge:hover { border-color: var(--cizgi-guclu); }
.kart-resim { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--vurgu-acik); overflow: hidden; }
.kart-resim img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.kart-oge:hover .kart-resim img { transform: scale(1.03); }
.kart-resim.bos::after { content: ""; position: absolute; inset: 0; margin: auto; width: 40px; height: 40px; border-radius: 10px; background: var(--vurgu); opacity: .18; }
.kart-govde { padding: 14px 16px 16px; display: grid; gap: 6px; align-content: start; }
.kart-govde time, .makale-bilgi, .haber-one time { font-size: 13px; color: var(--soluk); font-variant-numeric: tabular-nums; }
.kart-govde h3 { font-size: 17px; line-height: 1.3; }
.kart-govde h3 a { color: var(--yazi); }
.kart-govde h3 a:hover { color: var(--vurgu); text-decoration: none; }
.kart-govde p { margin: 0; color: var(--soluk); font-size: 14.5px; }

/* Öne çıkan haber */
.haber-one { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; align-items: center; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 14px; overflow: hidden; margin-bottom: 18px; }
.haber-one.resimsiz { grid-template-columns: 1fr; }
.haber-one-resim { display: block; height: 100%; min-height: 240px; max-height: 380px; background: var(--vurgu-acik); }
.haber-one-resim img { width: 100%; height: 100%; object-fit: cover; }
.haber-one-metin { padding: 22px 24px 24px 0; display: grid; gap: 10px; justify-items: start; }
.haber-one.resimsiz .haber-one-metin { padding-left: 24px; }
.haber-one h2 { font-size: clamp(21px, 2.4vw, 27px); }
.haber-one h2 a { color: var(--yazi); }
.haber-one p { margin: 0; color: var(--soluk); }

/* Makale (haber, yemek, kitap bölümü) */
.makale { max-width: 760px; margin: 0 auto; }
.makale .sayfa-bas { margin-bottom: 8px; }
.makale-bilgi { margin: 0 0 18px; }
.makale-kapak { margin: 0 0 22px; }
.makale-kapak img { width: 100%; max-height: 520px; object-fit: contain; border-radius: 12px; background: var(--kart); }
.makale-giris { font-size: 18px; color: var(--soluk); margin: 0 0 18px; }
.metin { font-size: 17px; line-height: 1.7; overflow-wrap: break-word; }
.metin > :first-child { margin-top: 0; }
.metin p { margin: 0 0 1em; }
.metin h2 { font-size: 23px; margin: 1.6em 0 .5em; }
.metin h3 { font-size: 20px; margin: 1.5em 0 .5em; }
.metin h4 { font-size: 17px; margin: 1.4em 0 .4em; }
.metin ul, .metin ol { padding-left: 1.4em; margin: 0 0 1em; }
.metin li + li { margin-top: .25em; }
.metin blockquote { margin: 1.2em 0; padding: 2px 0 2px 16px; border-left: 3px solid var(--vurgu); color: var(--soluk); }
.metin img { height: auto; max-width: 100%; border-radius: 8px; margin: 12px 0; display: inline-block; vertical-align: top; }
.metin a img { cursor: zoom-in; }
.metin img[width] { margin-right: 10px; }
.metin hr { border: 0; border-top: 1px solid var(--cizgi); margin: 2em 0; }
.metin table { border-collapse: collapse; width: 100%; font-size: 15px; margin: 1em 0; display: block; overflow-x: auto; }
.metin th, .metin td { border: 1px solid var(--cizgi); padding: 6px 10px; text-align: left; vertical-align: top; }
.metin figure { margin: 1.2em 0; }
.metin figcaption { font-size: 14px; color: var(--soluk); margin-top: 4px; }
.onceki-sonraki { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--cizgi); }
.onceki-sonraki a { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--cizgi); border-radius: var(--r); background: var(--kart); color: var(--yazi); font-weight: 600; font-size: 15px; line-height: 1.35; }
.onceki-sonraki a:hover { border-color: var(--vurgu); text-decoration: none; }
.onceki-sonraki small { font-weight: 500; color: var(--soluk); font-size: 12.5px; }
.onceki-sonraki .sag { text-align: right; }

/* Galeri */
.album-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.album { display: grid; gap: 3px; color: var(--yazi); }
.album:hover { text-decoration: none; }
.album-kapak { display: block; aspect-ratio: 4 / 3; border-radius: 12px; overflow: hidden; background: var(--vurgu-acik); margin-bottom: 6px;
  box-shadow: 6px -6px 0 -2px var(--kart), 6px -6px 0 -1px var(--cizgi-guclu); margin-top: 6px; margin-right: 6px; }
.album-kapak img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.album:hover .album-kapak img { transform: scale(1.04); }
.album:hover b { color: var(--vurgu); }
.album b { font-weight: 600; line-height: 1.3; }
.album small { color: var(--soluk); font-size: 13px; }
.foto-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.foto-izgara a { display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: var(--vurgu-acik); cursor: zoom-in; }
.foto-izgara img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease, opacity .2s; }
.foto-izgara a:hover img { transform: scale(1.05); }
.foto-izgara a.taslak-foto img { opacity: .45; }

/* Işık kutusu (fotoğrafı büyük gösterme) */
.isik-kutusu { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(8 12 11 / .94); color: #fff; }
.isik-kutusu::backdrop { background: rgb(0 0 0 / .6); }
.isik-kutusu[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.ik-ust { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px max(14px, env(safe-area-inset-right)) 10px max(14px, env(safe-area-inset-left)); font-size: 14px; color: rgb(255 255 255 / .75); font-variant-numeric: tabular-nums; }
.ik-sahne { position: relative; display: grid; place-items: center; min-height: 0; padding: 0 56px; touch-action: pan-y; }
.ik-sahne img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; user-select: none; -webkit-user-drag: none; }
.ik-alt { min-height: 48px; padding: 10px 16px calc(14px + env(safe-area-inset-bottom)); text-align: center; font-size: 15px; color: rgb(255 255 255 / .9); }
.isik-kutusu button { font: inherit; color: #fff; background: rgb(255 255 255 / .12); border: 0; border-radius: 99px; cursor: pointer; }
.isik-kutusu button:hover { background: rgb(255 255 255 / .22); }
.isik-kutusu button:focus-visible { outline: 2px solid #fff; }
.ik-kapat { width: 40px; height: 40px; font-size: 22px; line-height: 1; }
.ik-onceki, .ik-sonraki { position: absolute; top: 50%; translate: 0 -50%; width: 44px; height: 44px; font-size: 22px; }
.ik-onceki { left: 8px; } .ik-sonraki { right: 8px; }
.ik-ust a { color: #fff; }

/* Video */
.video-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.video-oynat { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; background: #111; cursor: pointer; overflow: hidden; }
.video-oynat img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
.oynat-simge { position: absolute; inset: 0; margin: auto; width: 64px; height: 46px; border-radius: 12px; background: rgb(0 0 0 / .7); transition: background .15s; }
.oynat-simge::after { content: ""; position: absolute; left: 26px; top: 13px; border-left: 16px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.video-oynat:hover .oynat-simge { background: #e11d48; }
.video-cerceve { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; background: #000; }
.video-sekmeler { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 20px; }
.video-sekmeler a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 99px; border: 1px solid var(--cizgi); background: var(--kart); color: var(--yazi); font-size: 14.5px; }
.video-sekmeler a:hover { text-decoration: none; border-color: var(--cizgi-guclu); }
.video-sekmeler a[aria-current] { background: var(--vurgu); border-color: var(--vurgu); color: var(--vurgu-yazi); }
.video-sekmeler a[aria-current] .rozet { background: rgb(255 255 255 / .2); color: inherit; }
.video-sekmeler a.taslak-sekme { border-style: dashed; color: var(--soluk); }
.video-bolum .bolum-bas h2 a { color: inherit; }
.video-alt-cipler { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.video-alt-cipler a { display: inline-block; padding: 4px 12px; border-radius: 99px; background: var(--zemin); border: 1px solid var(--cizgi); color: var(--yazi); font-size: 14px; }
.video-alt { margin-top: 26px; }
.video-alt h3 { margin: 0 0 4px; font-size: 18px; }
.video-alt h3 a { color: inherit; }
.video-alt > p { margin: 0 0 12px; }
.video-alt h3 + .video-izgara { margin-top: 12px; }
.video-kart { display: flex; flex-direction: column; height: 100%; border-radius: var(--r); background: var(--kart); border: 1px solid var(--cizgi); overflow: hidden; color: var(--yazi); }
.video-kart:hover { text-decoration: none; border-color: var(--cizgi-guclu); box-shadow: var(--golge); }
.video-kart:hover .oynat-simge { background: #e11d48; }
.video-kapak { position: relative; display: block; aspect-ratio: 16 / 9; background: #1b2422; }
.video-kapak img { width: 100%; height: 100%; object-fit: cover; }
.video-sure { position: absolute; right: 8px; bottom: 8px; padding: 1px 6px; border-radius: 4px; background: rgb(0 0 0 / .78); color: #fff; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.video-kart-govde { display: grid; gap: 4px; padding: 10px 14px 14px; }
.video-kart-govde b { font-size: 15.5px; line-height: 1.35; }
.video-kart-govde small { color: var(--soluk); font-size: 13px; }
.video-sayfa { display: grid; gap: 16px; margin-bottom: 28px; }
.video-oynatici video { display: block; width: 100%; max-height: 78vh; aspect-ratio: 16 / 9; background: #000; border-radius: 12px; }
.video-oynatici .video-oynat, .video-oynatici .video-cerceve { border-radius: 12px; }
.video-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; color: var(--soluk); font-size: 14.5px; }
.video-aciklama { max-width: 72ch; line-height: 1.65; }

/* Sözlük */
.sozluk-arac { position: sticky; top: var(--bas-yuk); z-index: 5; display: grid; gap: 10px; padding: 10px 0 12px; background: var(--zemin); border-bottom: 1px solid var(--cizgi); margin-bottom: 8px; }
.sozluk-arac .arama-buyuk { max-width: 460px; }
.harfler { display: flex; flex-wrap: wrap; gap: 4px; }
.harfler a, .harfler span { min-width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; font-weight: 600; font-size: 14px; }
.harfler a { background: var(--kart); border: 1px solid var(--cizgi); color: var(--yazi); }
.harfler a:hover { border-color: var(--vurgu); color: var(--vurgu); text-decoration: none; }
.harfler span { color: var(--cizgi-guclu); }
.sozluk-grup { scroll-margin-top: calc(var(--bas-yuk) + 120px); padding-top: 14px; }
.sozluk-grup h2 { font-size: 22px; color: var(--vurgu); margin-bottom: 6px; }
.sozluk-grup dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 0 28px; }
.sozluk-kelime { padding: 10px 0; border-bottom: 1px solid var(--cizgi); scroll-margin-top: calc(var(--bas-yuk) + 120px); }
.sozluk-kelime:target { background: var(--vurgu-acik); border-radius: 6px; padding-inline: 8px; }
.sozluk-kelime dt { font-weight: 700; }
.sozluk-kelime dd { margin: 2px 0 0; color: var(--soluk); }
.sozluk-kelime mark { background: var(--z-tekrar-zemin); color: inherit; border-radius: 3px; }

/* Kitap */
.kitap { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 36px; align-items: start; }
.kitap-icindekiler { position: sticky; top: calc(var(--bas-yuk) + 16px); max-height: calc(100vh - var(--bas-yuk) - 32px); overflow-y: auto; background: var(--kart); border: 1px solid var(--cizgi); border-radius: 12px; padding: 14px 10px 14px 14px; }
.kitap-icindekiler summary { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--soluk); cursor: pointer; padding: 2px 4px 8px; }
.kitap-icindekiler ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; }
.kitap-icindekiler ol ol { padding-left: 14px; margin: 2px 0 4px; border-left: 2px solid var(--cizgi); margin-left: 8px; }
.kitap-icindekiler a { display: block; padding: 5px 8px; border-radius: 6px; color: var(--yazi); font-size: 14.5px; line-height: 1.35; }
.kitap-icindekiler a:hover { background: var(--zemin); text-decoration: none; }
.kitap-icindekiler a[aria-current] { background: var(--vurgu-acik); color: var(--vurgu); font-weight: 600; }
.kitap-no { font-family: var(--yazi-kod); font-size: 11.5px; color: var(--soluk); margin-right: 7px; }
.kitap-metin { margin: 0; max-width: 72ch; }
.kitap-metin .metin h3, .kitap-metin .metin h4 { color: var(--vurgu); }

/* Mezar haritası */
.harita-cerceve { position: relative; }
.harita { height: min(78vh, 860px); min-height: 420px; border-radius: 12px; border: 1px solid var(--cizgi); background: var(--agac-zemin); z-index: 0; }
.harita-not { position: absolute; left: 50%; top: 16px; translate: -50% 0; z-index: 500; margin: 0; padding: 8px 14px; border-radius: 99px; background: var(--kart); box-shadow: var(--golge); font-size: 14px; white-space: nowrap; max-width: calc(100% - 32px); overflow: hidden; text-overflow: ellipsis; }
.mezar-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 10px; }
.mezar-kart { display: flex; gap: 12px; align-items: flex-start; padding: 10px; background: var(--kart); border: 1px solid var(--cizgi); border-radius: var(--r); height: 100%; }
.mezar-kart[data-mezar] { cursor: pointer; }
.mezar-kart[data-mezar]:hover, .mezar-kart.secili { border-color: var(--vurgu); }
.mezar-kart.secili { box-shadow: 0 0 0 2px var(--vurgu); }
.mezar-kart > div { display: grid; gap: 2px; min-width: 0; font-size: 15px; }
.mezar-kart small { font-size: 13px; }
.mezar-foto { flex: none; width: 64px; height: 84px; border-radius: 6px; overflow: hidden; background: var(--vurgu-acik); display: block; cursor: zoom-in; }
.mezar-foto img { width: 100%; height: 100%; object-fit: cover; }
.mezar-foto.bos { cursor: default; }
.mezar-baglanti { display: flex; flex-wrap: wrap; gap: 10px; font-size: 13.5px; margin-top: 2px; }
.leaflet-container { font: inherit; }
.leaflet-popup-content { margin: 10px 12px; font-size: 14px; line-height: 1.4; }
.mezar-popup { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; min-width: 200px; }
.mezar-popup img { width: 70px; height: 92px; object-fit: cover; border-radius: 6px; }
.mezar-popup b { display: block; font-size: 15px; }
.mezar-popup small { display: block; color: #5d6b66; }
.mezar-isaret { width: 18px; height: 18px; border-radius: 50%; background: #0f766e; border: 3px solid #fff; box-shadow: 0 1px 4px rgb(0 0 0 / .5); }
.mezar-isaret.secili { background: #eab308; transform: scale(1.3); }

.ipucu-metin { font-size: 13.5px; margin: 8px 0 0; text-align: center; }

/* İletişim ve herkese açık formlar */
.iletisim { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.kutu-kart { background: var(--kart); border: 1px solid var(--cizgi); border-radius: 12px; padding: 22px; }
.iletisim-yan h2 { font-size: 17px; margin-bottom: 8px; }
.iletisim-yan ul { margin: 0 0 12px; padding-left: 18px; display: grid; gap: 4px; }
.form-genel { display: grid; gap: 16px; }
.form-genel .alan { display: grid; gap: 6px; min-width: 0; }
.form-genel label { font-weight: 600; font-size: 15px; }
.form-genel input, .form-genel textarea {
  width: 100%; font: inherit; font-size: 16px; color: var(--yazi); background: var(--kart);
  border: 1px solid var(--cizgi-guclu); border-radius: 8px; padding: 9px 12px;
}
.form-genel textarea { resize: vertical; }
.form-genel input:focus, .form-genel textarea:focus { outline: none; border-color: var(--vurgu); box-shadow: 0 0 0 3px var(--vurgu-acik); }
.form-genel .hatali input, .form-genel .hatali textarea { border-color: #dc2626; }
.form-genel .alan-hata { margin: 0; color: #dc2626; font-size: 14px; }
.form-genel .ipucu { margin: 0; color: var(--soluk); font-size: 13.5px; }
.form-genel .iki-sutun { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tuzak { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bildirim-kutu { padding: 14px 16px; border-radius: 10px; margin-bottom: 14px; display: grid; gap: 6px; justify-items: start; }
.bildirim-kutu p { margin: 0; }
.bildirim-kutu.basari { background: color-mix(in srgb, #16a34a 12%, var(--kart)); color: color-mix(in srgb, #16a34a 75%, var(--yazi)); }
.bildirim-kutu.hata { background: color-mix(in srgb, #dc2626 10%, var(--kart)); color: color-mix(in srgb, #dc2626 80%, var(--yazi)); }

/* Ana sayfa: son haberler */
.bolum-bas.yan { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .sozluk-arac { position: static; }
  .sozluk-grup, .sozluk-kelime { scroll-margin-top: 160px; }
  .kitap { grid-template-columns: 1fr; gap: 16px; }
  .kitap-icindekiler { position: static; max-height: none; }
  .iletisim { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .haber-one { grid-template-columns: 1fr; gap: 0; }
  .haber-one-resim { min-height: 0; aspect-ratio: 16 / 9; }
  .haber-one-metin { padding: 16px 18px 20px; }
  .onceki-sonraki { grid-template-columns: 1fr; }
  .onceki-sonraki .sag { text-align: left; }
  .foto-izgara { grid-template-columns: repeat(3, 1fr); gap: 4px; }
  .foto-izgara a { border-radius: 4px; }
  .album-izgara { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ik-sahne { padding: 0; }
  .ik-onceki, .ik-sonraki { background: rgb(0 0 0 / .35); }
  .metin { font-size: 16.5px; }
  .form-genel .iki-sutun { grid-template-columns: 1fr; }
  .sozluk-grup dl { grid-template-columns: 1fr; }
  .video-izgara { grid-template-columns: 1fr; }
  .alt-ic { flex-direction: column; }
}

/* ---------- Duyarlı ---------- */
@media (max-width: 1024px) {
  .agac-sayfa { --panel-varsayilan: 320px; }
}
@media (max-width: 820px) {
  .ayirici { display: none; }
  .agac-sayfa { grid-template-columns: 1fr; height: calc(100vh - var(--bas-yuk) - 80px); min-height: 460px; }
  /* Telefonda tüm menü görünsün: yana kaydırma yerine alt satıra geçer */
  .menu { margin-left: 0; width: 100%; order: 3; flex-wrap: wrap; overflow: visible; gap: 2px 14px; }
  .arama { max-width: none; }
  .panel {
    position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; max-height: 78vh;
    border-radius: 16px 16px 0 0; border-bottom: 0; box-shadow: 0 -8px 32px rgb(0 0 0 / .18);
    padding: 20px max(16px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    transform: translateY(105%); transition: transform .22s ease;
  }
  .panel.acik { transform: none; }
  .dugum { width: 150px; }
  .aile { width: 164px; --es-girinti: 14px; }
  .aile:has(.fotolu) { width: 200px; }
}
@media (max-width: 480px) {
  .sonuc-kart .ata-zinciri, .arama-sonuc .sonuc .ata-zinciri { padding-left: 0; }
  .sayilar dd { font-size: 24px; }
  .secmeli span { padding: 5px 8px; font-size: 12.5px; }
  .kart-bas { align-items: flex-start; }
  .avatar.buyuk { width: 60px; height: 60px; font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Aile sekmeleri (soyağacı) ---------- */

/* ---------- Ana sayfa tanıtım yazısı, diğer aileler, ağaç çizimi ---------- */
.tanitim { max-width: 860px; }
.tanitim p { line-height: 1.7; margin: 0 0 14px; }
.tanitim a { font-weight: 600; }
.bolum.dar { max-width: 860px; }
.aile-kartlar { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.aile-kart { display: block; height: 100%; padding: 18px 20px; border: 1px solid var(--cizgi); border-radius: 12px; background: var(--kart); color: var(--yazi); }
.aile-kart:hover { text-decoration: none; border-color: var(--vurgu); }
.aile-kart h2 { margin: 0 0 8px; font-size: 20px; color: var(--vurgu); }
.aile-kart p { margin: 0 0 12px; line-height: 1.6; }
.aile-kart-alt { color: var(--soluk); font-size: 14px; font-weight: 500; }
.aile-kart.modul-gizli { opacity: .55; }
.agac-cizimi { display: block; overflow: hidden; border: 1px solid var(--cizgi); border-radius: 12px; background: #fff; }
.agac-cizimi img { display: block; width: 100%; height: auto; }
/* İki yana yaslı; dar ekranda (telefon) satır başına az kelime düştüğü için büyük boşluklar oluşur, orada sola yaslı */
@media (min-width: 600px) { .tanitim p { text-align: justify; hyphens: auto; -webkit-hyphens: auto; } }

.aile-baslik { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; margin: 0 0 10px; font-size: 15px; }

/* ---------- Ana sayfa (kişi fotoğrafı yok) ---------- */
.ana-izgara { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.ana-izgara > .g12 { grid-column: span 12; } .ana-izgara > .g8 { grid-column: span 8; } .ana-izgara > .g7 { grid-column: span 7; }
.ana-izgara > .g6 { grid-column: span 6; } .ana-izgara > .g5 { grid-column: span 5; } .ana-izgara > .g4 { grid-column: span 4; }
@media (max-width: 1000px) { .ana-izgara > .g4 { grid-column: span 6; } .ana-izgara > .g7, .ana-izgara > .g5 { grid-column: span 12; } }
@media (max-width: 720px) { .ana-izgara > * { grid-column: span 12 !important; } .ana-izgara { gap: 12px; } }
.ana-kutu { background: var(--kart); border: 1px solid var(--cizgi); border-radius: 14px; padding: 18px 20px; min-width: 0; }
.ana-kutu > h2 { font-size: 17px; margin: 0 0 12px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.ana-kutu > h2 a { font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.ana-not { color: var(--soluk); font-size: 13.5px; margin: 10px 0 0; }
.ana-hos { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 28px; align-items: center; padding: 26px 28px; }
.ana-hos h1 { font-size: clamp(28px, 3.6vw, 38px); letter-spacing: -.015em; margin: 0 0 10px; }
.ana-giris { margin: 0 0 16px; line-height: 1.7; font-size: 16.5px; }
.ana-arama { max-width: 520px; }
.ana-arama input { font-size: 16px; padding: 11px 14px; }
.ana-sayilar { display: flex; flex-wrap: wrap; gap: 10px 30px; margin: 18px 0 0; }
.ana-sayilar dd { margin: 0; font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.2; }
.ana-sayilar dd a { color: inherit; }
.ana-sayilar dt { color: var(--soluk); font-size: 13.5px; }
.ana-cizim { display: block; border: 1px solid var(--cizgi); border-radius: 12px; overflow: hidden; background: #fff; color: var(--soluk); }
.ana-cizim img { width: 100%; height: auto; }
.ana-cizim span { display: block; padding: 8px 12px; font-size: 13px; border-top: 1px solid var(--cizgi); background: var(--kart); }
.ana-cizim:hover { text-decoration: none; border-color: var(--cizgi-guclu); }
@media (max-width: 860px) { .ana-hos { grid-template-columns: 1fr; padding: 20px; } }
.ana-harf { width: 38px; height: 38px; border-radius: 50%; flex: none; display: inline-grid; place-items: center; font-weight: 700;
  background: var(--vurgu-acik); color: var(--vurgu); }
.ana-harf.kadin { background: color-mix(in srgb, var(--avatar-kadin) 14%, var(--kart)); color: var(--avatar-kadin); }
/* Sülalenin kolları: iki ana kol yan yana (dar ekranda alt alta) */
.ana-kollar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.ana-kol-kok, .ana-kol-not { grid-column: 1 / -1; }
.ana-kol-kok { display: flex; align-items: center; gap: 10px; color: var(--yazi); } .ana-kol-kok small { color: var(--soluk); }
.ana-kol-kok .ana-harf { width: 32px; height: 32px; }
.ana-kol-kok:hover, .ana-kol-bas:hover { text-decoration: none; }
.ana-kol { border-left: 2px solid var(--kardes-cizgi); padding-left: 12px; min-width: 0; }
.ana-kol-bas { display: flex; gap: 8px; align-items: baseline; margin-bottom: 8px; font-size: 16.5px; } .ana-kol-bas small { color: var(--soluk); font-size: 13px; }
.ana-kol-bas:hover b { text-decoration: underline; }
.ana-kol ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.ana-kol li a { display: grid; grid-template-columns: minmax(70px, 130px) 1fr 32px; gap: 8px; align-items: center; color: var(--yazi); font-size: 14.5px; line-height: 1.3; padding: 6px 0; }
.ana-kol li a:hover { text-decoration: none; } .ana-kol li a:hover .ana-kol-ad { color: var(--vurgu); text-decoration: underline; }
.ana-kol-ad { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ana-kol-cubuk { height: 9px; background: var(--zemin); border-radius: 4px; overflow: hidden; }
.ana-kol-cubuk i { display: block; height: 100%; background: var(--vurgu); opacity: .75; border-radius: 4px; }
.ana-kol li small { color: var(--soluk); text-align: right; font-variant-numeric: tabular-nums; font-size: 12.5px; }
.ana-kol-not { margin: 0; color: var(--soluk); font-size: 13px; }
@media (max-width: 520px) { .ana-kollar { grid-template-columns: 1fr; } }
/* İsim bulutu */
.ana-bulut-kutu { background: linear-gradient(160deg, color-mix(in srgb, var(--vurgu-acik) 70%, var(--kart)), var(--kart)); }
.ana-bulut-kutu .ana-not { margin: -6px 0 6px; }
.ana-bulut-kutu { display: flex; flex-direction: column; }
.bulut { flex: 1; display: flex; flex-wrap: wrap; justify-content: center; align-content: center; align-items: baseline; line-height: 1.3; margin: 0; padding: 6px 0; }
.bulut a { display: inline-block; margin: 5px 9px; font-weight: 600; transition: transform .15s; }
.bulut a small { font-size: .55em; font-weight: 500; margin-left: 2px; opacity: .8; vertical-align: .35em; }
.bulut a:hover { transform: scale(1.08); text-decoration: none; }
.bulut .t1 { color: var(--bulut-1); } .bulut .t2 { color: var(--bulut-2); } .bulut .t3 { color: var(--bulut-3); } .bulut .t4 { color: var(--bulut-4); }
.tanitim.ana-kutu { max-width: none; padding: 22px 28px; }
.tanitim.ana-kutu > h2 { font-size: 20px; }
.tanitim.ana-kutu p:last-child { margin-bottom: 0; }
/* Nesil çubukları */
.nesil-cubuklar { display: flex; align-items: flex-end; gap: 6px; height: 130px; }
.nesil-cubuklar div { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px; height: 100%; }
.nesil-cubuklar i { display: block; width: 100%; background: var(--vurgu); border-radius: 4px 4px 0 0; }
.nesil-cubuklar em, .nesil-cubuklar small { font-size: 11.5px; font-style: normal; color: var(--soluk); font-variant-numeric: tabular-nums; }
.nesil-cubuklar em { color: var(--yazi); font-weight: 600; }
/* Listeler */
.ana-liste, .ana-albumler, .ana-yemekler, .ana-haber-liste { list-style: none; margin: 0; padding: 0; }
.ana-liste { display: grid; gap: 8px; }
.ana-liste a { display: flex; gap: 10px; align-items: center; color: var(--yazi); border-radius: 8px; padding: 2px; }
.ana-liste a:hover { text-decoration: none; } .ana-liste a:hover b { color: var(--vurgu); }
.ana-liste span:not(.ana-harf) { display: grid; line-height: 1.3; min-width: 0; }
.ana-liste small { color: var(--soluk); font-size: 13px; }
.ana-liste small.vurgu { color: var(--sicak); font-weight: 600; }
.ana-albumler { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ana-yemekler { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ana-albumler a, .ana-yemekler a { display: grid; gap: 6px; color: var(--yazi); font-size: 14.5px; }
.ana-albumler img, .ana-yemekler img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; background: var(--zemin); }
.ana-albumler img { aspect-ratio: 1; }
.ana-yemekler img { aspect-ratio: 16 / 9; }
.ana-albumler a:hover, .ana-yemekler a:hover { text-decoration: none; color: var(--vurgu); }
@media (max-width: 560px) { .ana-albumler { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ana-sozluk { margin: 0; display: grid; gap: 10px; }
.ana-sozluk div { border-left: 3px solid var(--vurgu-acik); padding-left: 10px; }
.ana-sozluk dt { font-weight: 700; color: var(--vurgu); }
.ana-sozluk dd { margin: 2px 0 0; color: var(--soluk); font-size: 14px; }
.ana-haber-liste { display: grid; gap: 14px; }
.ana-haber-liste b { font-weight: 600; } .ana-haber-liste small { display: block; color: var(--soluk); font-size: 13px; }
.ana-haber-liste p { margin: 4px 0 0; color: var(--soluk); font-size: 14px; line-height: 1.6; }
.ana-videolar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .ana-videolar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .ana-videolar { grid-template-columns: 1fr; } }

/* Dokunmatik ekranda videonun üstündeki görünmez dur/oynat katmanı (alttaki 64 px denetim çubuğu açıkta) */
.video-oynatici { position: relative; }
.video-dokun { display: none; }
.video-zaman { display: none; }
@media (hover: none) and (pointer: coarse) {
  .video-zaman:not([hidden]) { display: block; position: absolute; left: 10px; top: 10px; z-index: 2; pointer-events: none;
    background: rgb(0 0 0 / .6); color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; padding: 3px 8px; border-radius: 6px; }
  .video-dokun { display: block; position: absolute; inset: 0 0 64px 0; z-index: 1; border: 0; padding: 0; margin: 0;
    background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
}

/* Video dosyası henüz sunucuda yoksa: kapak resmi + not */
.video-yakinda { position: relative; aspect-ratio: 16 / 9; max-height: 78vh; border-radius: 12px; overflow: hidden; background: #111; display: grid; place-items: center; }
.video-yakinda img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.video-yakinda span { position: relative; background: rgb(0 0 0 / .65); color: #fff; padding: 10px 18px; border-radius: 999px; font-weight: 600; }
