/* KAKDO web uygulaması: stil.
   Tasarım: KAKDO Proje Masası (docs/tasarim/anasayfa_20261006/DESIGN.md). Belirteçler kakdo.com v2'nin :root bloklarından
   alındı; bileşenler doğrudan renk değeri kullanmaz. Dış kaynak yok; yazı tipleri yazi-tipleri.css içinde gömülüdür.
   Düzen: ana sayfada pafta kartı (sayfanın adı ve motorun durumu) ve uygulama simgesi gibi duran araçlar; araç simgesinden
   açılan tam ekran araç ekranı (başlık, alan sekmeleri, kendi içinde kayan alan). 960 px ve üstünde pafta solda yapışkandır.
   Hareket bu dosyada yoktur: uygulama.js kitaplık varsa canlandırır; yoksa buradaki son durumlar geçerlidir. */
:root {
  color-scheme: light;
  /* zemin */
  --zemin-kagit: #e9ece6;
  --zemin-pafta: #fbfbf7;
  --zemin-yuzey: #f5f6f1;
  /* metin */
  --metin-1: #131c26;
  --metin-2: #3f4b57;
  --metin-3: #57626d;
  --metin-ters: #fbfbf7;
  /* çizgi */
  --cizgi-ince: #c3cbc5;
  --cizgi-belirgin: #6f7b74;
  --cizgi-sinir: #1b3044;
  /* harita */
  --harita-hat: #1b3044;
  --harita-izgara: #8ea3a5;
  --harita-egri: #cfab85;
  --harita-egri-ana: #8e6236;
  --harita-yazi: #3f4b57;
  --harita-kirik: var(--durum-sil);
  /* durum */
  --durum-tamam: #246b40;
  --durum-tamam-zemin: #dcefe2;
  --durum-sil: #c3221a;
  --durum-sil-zemin: #f6dedb;
  --durum-uyari: #8a5a00;
  --durum-uyari-zemin: #fbefd2;
  /* etkileşim */
  --vurgu: #1a4c7a;
  --vurgu-zemin: #dbe6f0;
  --odak: #1a4c7a;
  --odak-kalinlik: 3px;
  --odak-aralik: 3px;
  --golge-pencere: 0 1px 2px rgb(20 30 40 / .08), 0 14px 34px rgb(20 30 40 / .14);
  /* simge plakası tonları: vurgu zemini; eş yükselti toprağı %30 + pafta; ızgara yeşil-grisi %28 + pafta (hesaplanmış değerler) */
  --ton-a: #dbe6f0;
  --ton-b: #eee3d5;
  --ton-c: #dce2e0;
  --plaka-cizgi: rgb(27 48 68 / .14);
  /* 3B maket: gök (tepe, ufuk), haritanın çevresindeki arazi, kapalı objenin zemini (toprak) ve kenarı, açık obje (çizgi); bulgu hacimleri aracın
     haritasının ailesinden (hata kırmızı, inceleme mavi, not gri); seçili objenin çizgisi; Kanal maketinde kanalın yüzü (kanal) ve dolgu gövdesi (dolgu; harita-egri-ana'nın değeri) */
  --sahne-gok: #c9d8e4; --sahne-ufuk: #eef0ea; --sahne-arazi: #a3ad8c; --sahne-toprak: #c4ae86; --sahne-kenar: #f6f1e4; --sahne-cizgi: #1b3044; --sahne-kanal: #d9d2c0; --kirmizi-kot: #c62828; --sahne-dolgu: #8e6236;
  --sahne-hata: #e2412f; --sahne-inceleme: #3f7fc0; --sahne-not: #8a949c; --sahne-secili: #131c26;
  /* Saha Maketi'nin önizlemesi: basılacak filamentin renkleri (kafa 1 zemin, 2 yol, 3 su, 4 yapı ve çizgi); temaya göre değişmez, kâğıttaki baskı gibi */
  --maket-zemin: #8fa86d; --maket-yol: #8b8b86; --maket-su: #4a83c2; --maket-yapi: #f1eee6;
  /* Eskiz'in oda türü tonları (E2-1; goldy'nin eskiz-2 --eskiz-* belirteçlerinden): yaşam, mutfak, yatak, ıslak, dolaşım, depo */
  --eskiz-yasam: #ede3d1; --eskiz-mutfak: #e2e8da; --eskiz-yatak: #dde5ee; --eskiz-islak: #d3e5e6; --eskiz-dolasim: #f0f0ea; --eskiz-depo: #e7e1e9;
  /* Eskiz planının sunum katmanı (E2-3; goldy'nin eskiz-2 belirteçleri): duvar, pencere, desen; türü bilinmeyen oda nötr */
  --eskiz-duvar: #1b3044; --eskiz-pencere: #fbfbf7; --eskiz-desen: rgb(27 48 68 / .10); --eskiz-notr: #ebe9e3;

  /* yazı tipi */
  --yazi-baslik: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", "Segoe UI", system-ui, sans-serif;
  --yazi-govde: "Source Sans 3", "Segoe UI", "Noto Sans", "Helvetica Neue", Arial, sans-serif;
  --yazi-sayi: "IBM Plex Mono", "Cascadia Mono", Consolas, "Courier New", monospace;
  /* yazı boyu */
  --boy-kucuk: .8125rem;
  --boy-not: .875rem;
  --boy-arayuz: .9375rem;
  --boy-govde: 1rem;
  --boy-okuma: 1.0625rem;
  --boy-h3: 1.5rem;
  --boy-baslik: 1.75rem;
  --satir-baslik: 1.05;
  --satir-govde: 1.45;
  --satir-okuma: 1.55;
  --iz-etiket: .08em;
  /* ölçü */
  --oluk: clamp(16px, 4vw, 32px);
  --kose: 22px;
  --kose-kart: 18px;
  --kose-satir: 16px;
  --kose-dugme: 14px;
  --rihtim: 76px;
  --hedef: 44px;
}
/* koyu tema yalnız ekranda: kâğıda her zaman açık renkler basılır */
@media screen and (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --zemin-kagit: #0e1318; --zemin-pafta: #121a22; --zemin-yuzey: #17212b;
    --metin-1: #e8edf1; --metin-2: #b7c1ca; --metin-3: #98a4ae; --metin-ters: #121a22;
    --cizgi-ince: #2c3843; --cizgi-belirgin: #687a8a; --cizgi-sinir: #8fa4b7;
    --harita-hat: #8fa4b7; --harita-izgara: #4f6878; --harita-egri: #76624c; --harita-egri-ana: #b08a5f; --harita-yazi: #98a4ae;
    --durum-tamam: #62c98e; --durum-tamam-zemin: #15301f; --durum-sil: #ff6b5d; --durum-sil-zemin: #3a1c19;
    --durum-uyari: #f0c060; --durum-uyari-zemin: #352a12;
    --vurgu: #8bbcec; --vurgu-zemin: #1b3550; --odak: #8bbcec;
    --golge-pencere: 0 1px 2px rgb(0 0 0 / .5), 0 14px 34px rgb(0 0 0 / .45);
    --sahne-gok: #0c1520; --sahne-ufuk: #1b2833; --sahne-arazi: #3b4433; --sahne-toprak: #7a6a50; --sahne-kenar: #d8d2c2; --sahne-cizgi: #8fa4b7; --sahne-kanal: #9a9382; --kirmizi-kot: #ef5350; --sahne-dolgu: #b08a5f;
    --sahne-hata: #e0483a; --sahne-inceleme: #5b8fc4; --sahne-not: #6d7882; --sahne-secili: #f4f6f8;
    --ton-a: #1b3550; --ton-b: #30302f; --ton-c: #23303a; --plaka-cizgi: rgb(143 164 183 / .16);
    --eskiz-yasam: #3a3326; --eskiz-mutfak: #2c3829; --eskiz-yatak: #223040; --eskiz-islak: #1e3a3d; --eskiz-dolasim: #1b242d; --eskiz-depo: #322a37;
    --eskiz-duvar: #c9d7e4; --eskiz-pencere: #121a22; --eskiz-desen: rgb(201 215 228 / .10); --eskiz-notr: #232b33;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --zemin-kagit: #0e1318; --zemin-pafta: #121a22; --zemin-yuzey: #17212b;
  --metin-1: #e8edf1; --metin-2: #b7c1ca; --metin-3: #98a4ae; --metin-ters: #121a22;
  --cizgi-ince: #2c3843; --cizgi-belirgin: #687a8a; --cizgi-sinir: #8fa4b7;
  --harita-hat: #8fa4b7; --harita-izgara: #4f6878; --harita-egri: #76624c; --harita-egri-ana: #b08a5f; --harita-yazi: #98a4ae;
  --durum-tamam: #62c98e; --durum-tamam-zemin: #15301f; --durum-sil: #ff6b5d; --durum-sil-zemin: #3a1c19;
  --durum-uyari: #f0c060; --durum-uyari-zemin: #352a12;
  --vurgu: #8bbcec; --vurgu-zemin: #1b3550; --odak: #8bbcec;
  --golge-pencere: 0 1px 2px rgb(0 0 0 / .5), 0 14px 34px rgb(0 0 0 / .45);
  --sahne-gok: #0c1520; --sahne-ufuk: #1b2833; --sahne-arazi: #3b4433; --sahne-toprak: #7a6a50; --sahne-kenar: #d8d2c2; --sahne-cizgi: #8fa4b7; --sahne-kanal: #9a9382; --kirmizi-kot: #ef5350; --sahne-dolgu: #b08a5f;
  --sahne-hata: #e0483a; --sahne-inceleme: #5b8fc4; --sahne-not: #6d7882; --sahne-secili: #f4f6f8;
  --ton-a: #1b3550; --ton-b: #30302f; --ton-c: #23303a; --plaka-cizgi: rgb(143 164 183 / .16);
  --eskiz-yasam: #3a3326; --eskiz-mutfak: #2c3829; --eskiz-yatak: #223040; --eskiz-islak: #1e3a3d; --eskiz-dolasim: #1b242d; --eskiz-depo: #322a37;
  --eskiz-duvar: #c9d7e4; --eskiz-pencere: #121a22; --eskiz-desen: rgb(201 215 228 / .10); --eskiz-notr: #232b33;
  color-scheme: dark;
}

/* temel */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-padding-bottom: calc(var(--rihtim) + env(safe-area-inset-bottom, 0px) + 12px); }   /* uygulamanın kaydırdığı yer (sonucGorunsun) sabit rıhtımın altına inmesin (ms-35 B11, 14.10.2026) */
body {
  margin: 0;
  background: var(--zemin-kagit);
  color: var(--metin-1);
  font-family: var(--yazi-govde);
  font-size: var(--boy-govde);
  line-height: var(--satir-govde);
  overflow-wrap: break-word;
  overflow-x: hidden;
}
/* araç ekranı açıkken arkadaki sayfa kaymaz */
body[data-acik] { overflow: hidden; }
h1, h2, h3 { margin: 0; font-family: var(--yazi-baslik); font-weight: 600; line-height: var(--satir-baslik); text-wrap: balance; }
p, figure { margin: 0; }
p { text-wrap: pretty; }
a { color: var(--vurgu); text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: var(--odak-kalinlik) solid var(--odak); outline-offset: var(--odak-aralik); }
::selection { background: var(--vurgu-zemin); color: var(--metin-1); }
svg { display: block; }
.simge { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.simgeler { position: absolute; width: 0; height: 0; overflow: hidden; }
.sayi { font-family: var(--yazi-sayi); font-variant-numeric: tabular-nums; }
p > .sayi { font-size: .92em; }   /* eş genişlikli yazı gövde yazısından iri görünür */
.gorunmez { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.ton-a { --ton: var(--ton-a); }
.ton-b { --ton: var(--ton-b); }
.ton-c { --ton: var(--ton-c); }

/* ---- ana sayfa kabuğu */
.masa { max-width: 1120px; margin-inline: auto; padding-inline: var(--oluk); padding-block: 12px calc(var(--rihtim) + 40px); display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; transform-origin: 50% 30%; }
.ust { display: flex; align-items: center; gap: 12px; min-height: 48px; }
.marka { display: inline-flex; align-items: center; gap: 10px; min-height: var(--hedef); color: var(--metin-1); text-decoration: none; font-family: var(--yazi-baslik); font-weight: 700; font-size: 1.5rem; letter-spacing: .14em; line-height: 1; }
.marka svg { flex: none; }
.marka-hat { fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
.marka-uc { fill: currentColor; }
.marka-kirik { fill: var(--durum-sil); stroke: var(--zemin-kagit); stroke-width: 1.6; }
.on-rozet { margin-left: auto; padding: 3px 10px; border: 1px dashed var(--cizgi-belirgin); border-radius: 999px; color: var(--metin-3); font-size: var(--boy-kucuk); white-space: nowrap; }
.govde-izgara { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.sol, .sag { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; align-content: start; }
@media (min-width: 60em) {
  .govde-izgara { grid-template-columns: minmax(320px, 400px) minmax(0, 1fr); gap: 32px; align-items: start; }
  .sol { position: sticky; top: calc(env(safe-area-inset-top, 0px) + 16px); }
}

/* ---- pafta: sayfanın adı ve motorun durumu */
.pafta { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose); }
.harita { aspect-ratio: 10 / 3; max-width: 100%; background:
  linear-gradient(var(--cizgi-ince) 1px, transparent 1px) 0 0 / 100% 33.34%,
  linear-gradient(90deg, var(--cizgi-ince) 1px, transparent 1px) 0 0 / 12.5% 100%; }
.harita svg { width: 100%; height: 100%; }
.harita .egri { fill: none; stroke: var(--harita-egri); stroke-width: 1.2; }
.pafta-alt { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 14px 16px 16px; border-top: 1px solid var(--cizgi-ince); }
.pafta-ad { font-size: var(--boy-baslik); }
.motor { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; justify-items: start; }
.motor-durum { color: var(--metin-2); font-size: var(--boy-arayuz); font-weight: 600; }
.motor[data-durum="hata"] .motor-durum { color: var(--durum-sil); }
.sinyalsiz { margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }   /* Ö11e: önbellek tamamlanınca */
#motor-adim { color: var(--metin-3); font-weight: 400; font-size: var(--boy-not); }
progress { display: block; width: min(100%, 20rem); height: 6px; accent-color: var(--vurgu); }
.giris, .not { color: var(--metin-3); font-size: var(--boy-not); }
.pafta-alt > details { justify-self: stretch; }

/* ---- istek kutusu («yaz, yapsın») ve genel karne: plan ve sonuç aynı yerde; tam sonuç aracın kendi ekranında */
.is { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; justify-items: start; }
.is textarea { font-family: inherit; }
.is-dosya-satiri { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.is-dosyalar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.is-dosyalar:empty, .is-karne:empty, .is-cumle:empty { display: none; }
.is-dosyalar li { display: inline-flex; align-items: center; max-width: 100%; padding-left: 12px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); font-family: var(--yazi-sayi); font-size: var(--boy-kucuk); }
.is-dosyalar span { min-width: 0; overflow-wrap: anywhere; }
/* hazır işler, uzman ayarı ve künyenin altındaki Çizim Özeti sayımı (Dalga A 2. tren) */
.is-dosyalar li:has(.is-ozet) { flex-wrap: wrap; }
.is-ozet { flex-basis: 100%; padding: 0 12px 6px; color: var(--metin-3); font-size: var(--boy-kucuk); }
.is-ozet:empty { display: none; }
.is-hazir { display: flex; flex-wrap: wrap; gap: 8px; }
/* tek kabul (Dalga A 3. tren): plan kartının Dosyalar bölümü ve araç ekranındaki kutudaki dosya düğmeleri */
.is-dosya-kabul { display: grid; gap: 8px; padding: 10px 0; border-top: 1px solid var(--cizgi-ince); }
.is-dosya-kabul h3 { margin: 0; font-size: var(--boy-h3); }
.is-dosya-kabul ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.is-dosya-kabul li { display: grid; gap: 2px; min-width: 0; }
.is-dosya-kabul .ad { font-weight: 600; overflow-wrap: anywhere; }
.is-dosya-kabul .kullanan, .is-dosya-kabul .denetim { color: var(--metin-3); font-size: var(--boy-kucuk); overflow-wrap: anywhere; }
.is-dosya-kabul .dugme { justify-self: start; }
.kutudan { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.kutudan-dugme { min-height: 36px; padding-inline: 12px; font-size: var(--boy-kucuk); }
.is-cikar { flex: none; min-width: var(--hedef); min-height: var(--hedef); padding: 0; background: none; border: 0; border-radius: var(--kose-dugme); color: var(--metin-2); font-size: 1.25rem; line-height: 1; }
.is-serit { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.is-metin { font-weight: 600; overflow-wrap: anywhere; white-space: pre-wrap; }
/* Karne: başlığın yanında hüküm (#is-karne), adım başına tek satır, altında tek ayrıntı bölmesi. Hâlin rengi hükümde zeminli, satırda yalnız yazıda. */
.is-teslim { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose); }
.is-teslim > * { grid-column: 1 / -1; }
.is-teslim > h2 { grid-column: 1; font-size: var(--boy-h3); }
.is-teslim > .is-karne { grid-column: 2; grid-row: 1; padding: 4px 12px; background: var(--hal-zemin, var(--zemin-yuzey)); border: 1px solid var(--hal, var(--cizgi-ince)); border-radius: 999px; }
/* Sonuç sözleri: düzeltme isteyen bulgu ve çalışamayan adım kırmızı, uyarı sarı; bulgu yok ve bitti yalın (onay rengi yok) */
:is(.is-karne, .is-adim):is([data-durum="dikkat"], [data-durum="eksik"], [data-durum="uyari"]) { --hal: var(--durum-uyari); --hal-zemin: var(--durum-uyari-zemin); }
:is(.is-karne, .is-adim):is([data-durum="hata"], [data-durum="duzeltme"], [data-sonuc="duzeltme"]) { --hal: var(--durum-sil); --hal-zemin: var(--durum-sil-zemin); }
.is-karne, .is-durum { color: var(--hal, var(--metin-2)); font-size: var(--boy-kucuk); font-weight: 600; white-space: nowrap; }
.is-adimlar { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.is-adim { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 12px 0 12px 12px; border-top: 1px solid var(--cizgi-ince); }
.is-adim:has([aria-expanded="true"]) { box-shadow: inset 3px 0 0 var(--vurgu); }
.is-adim-ust { display: flex; align-items: center; gap: 12px; min-height: 28px; }
.is-adim-ust h3 { flex: 1 1 auto; min-width: 0; font-size: 1.125rem; overflow-wrap: anywhere; }
/* Satırın başlığı düğmedir; dokunma alanı satırın tamamıdır (::after). Satırdaki öteki düğmeler onun üstünde kalır. */
.is-adim-ac { padding: 0; background: none; border: 0; color: inherit; font: inherit; text-align: left; overflow-wrap: anywhere; }
.is-adim-ac::after { content: ""; position: absolute; inset: 0; }
.is-adim-ac:focus-visible { outline: none; }
.is-adim-ac:focus-visible::after { outline: var(--odak-kalinlik) solid var(--odak); outline-offset: calc(-1 * var(--odak-kalinlik)); }
.is-adim-ust::after { content: ""; flex: none; width: 7px; height: 7px; margin-right: 6px; border: solid var(--metin-3); border-width: 0 2px 2px 0; transform: rotate(-45deg); }
.is-adim-ust:has([aria-expanded="true"])::after { transform: rotate(45deg); }
.is-adim-ust:not(:has(.is-adim-ac))::after { visibility: hidden; }
.is-adim :is(.is-cikar, .satir) { position: relative; z-index: 1; }
.is-adim .is-cikar { margin-block: -8px; }
.is-adim .is-cumle { color: var(--metin-2); }
.is-ayrinti { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 12px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.is-ayrinti h3 { font-size: 1rem; }
.is-kural h4 { margin: 0 0 4px; font-size: var(--boy-not); }   /* genel karnede kural açıklaması: başlık ve dayanak satırı (Dalga A 6. tren) */
/* 3B önizleme: aracın haritası arazi maketi (WebGL; uygulama.js «3B önizleme»). Kitaplık inene dek ve WebGL yoksa alanda aracın haritası düz durur. */
.is-sahne { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin: 0; }
.is-sahne-cerceve { position: relative; }
.is-sahne-alani { position: relative; aspect-ratio: 5 / 4; min-height: 260px; max-height: 520px; overflow: hidden; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.is-sahne-alani > .bulgu-haritasi { height: 100%; max-height: none; padding: 12px; }
.is-sahne-alani > .kanal-boykesit { width: 100%; height: 100%; padding: 12px; }
.is-kunye .kanal-enkesit { display: block; width: 100%; height: auto; margin-bottom: 6px; }
.is-sahne-alani canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; cursor: grab; }   /* WebKit aspect-ratio'lu kutuda %100 boyu çözmüyor */
.is-sahne-alani canvas:active { cursor: grabbing; }
.is-sahne-dugmeler { position: absolute; left: 8px; top: 8px; display: flex; flex-wrap: wrap; gap: 2px; padding: 2px; background: var(--zemin-pafta); background: color-mix(in srgb, var(--zemin-pafta) 90%, transparent); border: 1px solid var(--cizgi-ince); border-radius: 999px; }
.is-sahne-dugmeler button { min-height: var(--hedef); padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--metin-2); font: 600 var(--boy-kucuk) var(--yazi-govde); cursor: pointer; }
.is-sahne-dugmeler button[aria-pressed="true"] { background: var(--vurgu); color: var(--metin-ters); }
.is-sahne-dugmeler button:not([aria-pressed="true"]):hover { color: var(--metin-1); }
.is-pusula { position: absolute; pointer-events: none; right: 10px; bottom: 10px; width: 40px; height: 40px; padding: 5px; border-radius: 50%; background: var(--zemin-pafta); background: color-mix(in srgb, var(--zemin-pafta) 90%, transparent); border: 1px solid var(--cizgi-ince); }
.is-pusula path { fill: var(--metin-3); }
.is-pusula .kuzey { fill: var(--durum-sil); }
.is-olcek { position: absolute; pointer-events: none; right: 10px; bottom: 58px; display: grid; justify-items: end; gap: 2px; padding: 3px 8px 5px; border-radius: 8px; background: var(--zemin-pafta); background: color-mix(in srgb, var(--zemin-pafta) 82%, transparent); color: var(--metin-1); font: 500 .75rem var(--yazi-sayi); }
.is-olcek i { display: block; height: 6px; border: 2px solid var(--metin-1); border-top: 0; }
.is-kunye { position: absolute; z-index: 1; max-width: min(300px, calc(100% - 16px)); margin: 0; padding: 8px 12px; background: var(--zemin-pafta); color: var(--metin-1); border: 1px solid var(--cizgi-ince); border-radius: 10px; box-shadow: var(--golge-pencere); font-size: var(--boy-not); overflow-wrap: anywhere; pointer-events: none; }
.sol.teslimde { position: static; }   /* karne uzundur: geniş ekranda sol sütun yapışık kalırsa altı görünmez */
.is-proje { padding-inline: 4px; color: var(--metin-3); font-size: var(--boy-not); overflow-wrap: anywhere; }
.site-baglari { display: flex; flex-wrap: wrap; gap: 0 20px; padding-inline: 4px; }
.site-baglari a { display: inline-flex; align-items: center; min-width: var(--hedef); min-height: var(--hedef); font-weight: 600; }

/* açılır ayrıntı */
summary { min-height: var(--hedef); padding-block: 10px; color: var(--vurgu); font-weight: 600; cursor: pointer; }
details > :not(summary) { margin-top: 8px; }

/* ---- araç arama: giriş kutunun kendisidir (odak çizgisi kutuyu sarar); simge ve tuş ipucu üstünde durur */
.arac-ara { position: relative; display: block; color: var(--metin-3); }
.arac-ara > .simge { position: absolute; left: 14px; top: 50%; margin-top: -12px; pointer-events: none; }
.arac-ara input { width: 100%; min-height: 48px; padding: 0 46px 0 48px; background: var(--zemin-pafta); color: var(--metin-1); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); -webkit-appearance: none; appearance: none; }
.arac-ara input::-webkit-search-cancel-button { -webkit-appearance: none; }
.arac-ara kbd { position: absolute; right: 14px; top: 50%; margin-top: -11px; padding: 1px 6px; border: 1px solid var(--cizgi-ince); border-radius: 6px; font-family: var(--yazi-sayi); font-size: .75rem; line-height: 18px; pointer-events: none; }

/* ---- araç simgeleri */
.araclar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 10px; }
.karo { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: start; gap: 7px; min-width: 0; padding: 0; background: none; border: 0; color: var(--metin-2); font-size: var(--boy-kucuk); line-height: 1.2; text-align: center; }
.karo.gizli { display: none; }
/* Araçlar bölümü (Dalga A 2. tren): katlanır, açılışta kapalı; uymayan kart soluk ve notlu */
.araclar-bolumu > summary { display: flex; align-items: center; gap: 10px; min-height: var(--hedef); margin-bottom: 12px; padding: 0 4px; font-weight: 600; color: var(--metin-1); cursor: pointer; list-style: none; }
.araclar-bolumu > summary::-webkit-details-marker { display: none; }
.araclar-bolumu > summary::before { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-2px) rotate(-45deg); transition: transform .2s; }
.araclar-bolumu[open] > summary::before { transform: translateY(-4px) rotate(45deg); }
.karo.uygun-degil { opacity: .55; }
.karo-not { font-size: var(--boy-kucuk); color: var(--metin-3); }
.karo-simge { position: relative; display: grid; place-items: center; width: min(100%, 76px); aspect-ratio: 1; background: var(--ton, var(--ton-a)); color: var(--cizgi-sinir); border: 1px solid var(--plaka-cizgi); border-radius: var(--kose); }
.karo-simge > .simge { width: 44%; height: 44%; }
.karo-ad { max-width: 100%; overflow-wrap: anywhere; }
.rozet { position: absolute; top: -5px; right: calc(50% - min(50%, 38px) - 5px); display: grid; place-items: center; min-width: 22px; height: 22px; border-radius: 11px; border: 2px solid var(--zemin-kagit); }
.rozet.kilit { background: var(--zemin-pafta); color: var(--metin-2); border-color: var(--cizgi-ince); }
.rozet.kilit .simge { width: 12px; height: 12px; stroke-width: 2.2; }
.karo.genis { grid-column: span 2; justify-items: stretch; text-align: left; }
.karo.genis .karo-simge { width: 100%; aspect-ratio: auto; min-height: 92px; grid-template-columns: auto minmax(0, 1fr); place-items: center start; gap: 12px; padding: 12px 14px; }
.karo.genis .karo-simge > .simge { width: 28px; height: 28px; }
.karo.genis .karo-ad { font-size: .6875rem; font-weight: 600; letter-spacing: var(--iz-etiket); text-transform: uppercase; color: var(--metin-3); }
.onizleme { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-width: 0; color: var(--metin-1); font-size: var(--boy-not); line-height: 1.25; }
.onizleme small { color: var(--metin-3); font-size: .75rem; }
@media (min-width: 60em) {
  .araclar { gap: 28px 18px; }
  .karo { font-size: var(--boy-arayuz); }
  .karo-simge { width: min(100%, 120px); border-radius: 30px; }
  .karo.genis .karo-simge { min-height: 112px; padding: 16px 20px; }
  .rozet { right: calc(50% - min(50%, 60px) - 5px); }
}

/* ---- rıhtım: içeriğin üstünde yüzen üç kısayol */
.rihtim { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; justify-content: center; padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 12px); pointer-events: none; }
.rihtim-ic { display: flex; align-items: center; gap: 6px; padding: 6px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: 999px; box-shadow: var(--golge-pencere); pointer-events: auto; }
.rihtim button { display: grid; place-items: center; width: 52px; height: 52px; padding: 0; background: none; border: 0; border-radius: 50%; color: var(--metin-2); }
.rihtim button.asil { width: 60px; background: var(--vurgu); color: var(--metin-ters); }

/* ---- araç ekranı */
.ekran { position: fixed; inset: 0; z-index: 50; overflow: hidden; background: var(--zemin-pafta); color: var(--metin-1); }
.ekran-ic { height: 100%; max-width: 880px; margin-inline: auto; padding-top: env(safe-area-inset-top, 0px); }
.arac { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.ekran-ust { position: relative; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; column-gap: 12px; padding: 14px var(--oluk) 8px; touch-action: none; user-select: none; -webkit-user-select: none; }
.tutamak { position: absolute; top: 5px; left: 50%; width: 40px; height: 4px; margin-left: -20px; border-radius: 2px; background: var(--cizgi-ince); }
.geri { display: grid; place-items: center; width: var(--hedef); height: var(--hedef); padding: 0; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: 50%; }
.ekran-simge { display: grid; place-items: center; width: 44px; height: 44px; background: var(--ton, var(--ton-a)); color: var(--cizgi-sinir); border: 1px solid var(--plaka-cizgi); border-radius: var(--kose-dugme); transform-origin: 0 0; }
.ekran-ad { min-width: 0; font-size: var(--boy-baslik); line-height: 1; overflow-wrap: anywhere; }
.durum { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: 999px; color: var(--metin-2); font-size: var(--boy-kucuk); white-space: nowrap; }
.durum .simge { width: 14px; height: 14px; stroke-width: 2; }
.ekran-alt-ad { grid-area: 2 / 3; margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }   /* Kesinti Oranı: «(zayiat)» (alan uzmanı A16, İ8) */
.rozetler { display: inline-flex; flex-wrap: wrap; gap: 6px; }   /* Eskiz: «Bu cihazda» ve bağlıyken «YZ bağlı: …» */
@media (max-width: 30em) {
  .ekran-ust { grid-template-columns: auto auto minmax(0, 1fr); row-gap: 6px; }
  .ekran-ust .durum, .ekran-ust .rozetler { grid-column: 3; justify-self: start; }
}
.sekmeler { position: relative; display: flex; flex: none; gap: 4px; margin: 4px var(--oluk) 0; padding: 4px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.sekmeler button { position: relative; z-index: 1; display: flex; flex: 1; align-items: center; justify-content: center; gap: 8px; min-width: 0; min-height: var(--hedef); padding: 0 4px; background: none; border: 0; border-radius: 10px; color: var(--metin-3); font-size: var(--boy-arayuz); font-weight: 600; }
.sekmeler button .simge { width: 18px; height: 18px; }
.sekmeler button[aria-selected="true"] { color: var(--metin-1); }
/* içinde yeni sonuç duran alan: adının yanında nokta */
/* nokta yer kaplamaz (sekmenin köşesinde): dar ekranda üç sekmeli araçta yazıyı sıkıştırmasın */
.sekmeler button[data-dolu]::after { content: ""; position: absolute; top: 5px; right: 6px; width: 7px; height: 7px; border-radius: 50%; background: var(--vurgu); }
/* seçim plakası: betik seçili sekmenin yerine ve enine oturtur; betik yokken ilk sekmenin yerinde durur */
.sekme-imi { position: absolute; top: 4px; left: 0; width: 0; height: calc(100% - 8px); background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: 10px; box-shadow: 0 1px 2px rgb(20 30 40 / .08); }
@media (max-width: 23.75em) {
  .sekmeler button { gap: 5px; font-size: var(--boy-kucuk); }
  .sekmeler button .simge { width: 16px; height: 16px; }
}
/* dar ekranda (400 px'e kadar) dört sekmeli araçta (Çizim Özeti, Parsel Denetimi) sekmede yalnız yazı: simge eziliyor, «Tabakalar» sığmıyordu (Ö10i; 25. ölçüt) */
@media (max-width: 25em) {
  .sekmeler:has(> button:nth-of-type(4)) .simge { display: none; }
}
/* beş ve daha çok sekmeli araç (Kübaj, Taşıma ve Sıkılık ile altı; 22.10.2026): sekmeler üçerli sıralara iner, plaka seçilinin sırasına oturur
   (imiYerlestir); 600 px'e kadar sekmede yalnız yazı (simgeyle «Enkesitler» sığmıyor) */
.sekmeler:has(> button:nth-of-type(5)) { flex-wrap: wrap; }
.sekmeler:has(> button:nth-of-type(5)) > button { flex: 1 1 30%; }
@media (max-width: 37.5em) {
  .sekmeler:has(> button:nth-of-type(5)) .simge { display: none; }
}
.govde { display: grid; flex: 1; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 12px; min-height: 0; padding: 16px var(--oluk) calc(env(safe-area-inset-bottom, 0px) + 28px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
/* boş alanın notu: yanındaki sonuç bölgesi dolunca kalkar */
.sonuc:not(:empty) + .bos { display: none; }

/* ---- girişler */
/* ızgara sütunları minmax(0, 1fr): uzun dosya adı ya da bölünmez metin sütunu genişletemez */
.alanlar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; justify-items: start; }
.alan { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; justify-self: stretch; }
label { font-weight: 600; }
.ipucu { color: var(--metin-3); font-size: var(--boy-not); }
.satir { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
input[type="text"], input[type="date"], input[type="number"], textarea, select { width: 100%; min-height: 48px; padding: 10px 14px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-belirgin); border-radius: var(--kose-dugme); }
/* Ö25 (goldy A6): WebKit seçiciyi kendi gri düğmesiyle çiziyordu (54 px); girişle aynı yüzey, ok iki degradeden. Sıra önemli: üstteki background kısaltması background-image'ı sıfırlar */
/* WebKit seçili seçeneğin uzun metnini kutudan taşırıp atanın kaydırma genişliğine katıyordu (Kübaj › Kazı, 120 harflik katman adı: 320 px'te gövde 882 px taştı); seçici kendi kutusunda kırpar, Chromium ve Firefox'taki gibi */
select { -webkit-appearance: none; appearance: none; overflow: hidden; padding-right: 40px;
  background-image: linear-gradient(45deg, transparent 50%, var(--metin-2) 50%), linear-gradient(135deg, var(--metin-2) 50%, transparent 50%);
  background-position: right 20px center, right 14px center; background-size: 6px 6px; background-repeat: no-repeat; }
.satir input[type="text"] { flex: 1 1 14rem; width: auto; min-width: 0; }
textarea { display: block; font-family: var(--yazi-sayi); font-size: max(1rem, var(--boy-arayuz)); line-height: var(--satir-govde); resize: vertical; }
.onay { display: inline-flex; align-items: center; gap: 8px; min-height: var(--hedef); font-weight: 400; cursor: pointer; }
.onay input { flex: none; width: 1.375rem; height: 1.375rem; margin: 0; accent-color: var(--vurgu); }
.onay:has(input:disabled) { opacity: .5; cursor: default; }   /* kapalı kutu (ör. güzergahsız Kanal'ın makine dosyası) neden işaretlenmediğini görünüşüyle söyler */
/* Dosya girişi görsel olarak gizlidir (odaklanır, ekran okuyucu okur); görünen düğme etiketidir. Girdi etiketten önce durur: odak çizgisi ve kapalı görünüm kardeş seçiciyle gelir. */
.dosya-sec { display: inline-flex; align-items: center; gap: 8px; justify-self: start; min-height: 48px; padding: 0 20px; background: var(--zemin-yuzey); color: var(--metin-1); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); cursor: pointer; }
.dosya-sec .simge { width: 20px; height: 20px; }
input[type="file"]:focus-visible + .dosya-sec { outline: var(--odak-kalinlik) solid var(--odak); outline-offset: var(--odak-aralik); }
input[type="file"]:disabled + .dosya-sec { opacity: .5; cursor: default; }
.motor-bekler { color: var(--metin-3); font-size: var(--boy-not); }
/* KD-C sayfa girdileri (15.10.2026): kapalı «Gelişmiş» ayrıntısı girişlerle aynı genişlikte; içindeki alanlar aralıklı */
.gelismis { justify-self: stretch; }
.gelismis > .alan { margin-top: 14px; }

/* düğme */
.dugme { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 20px; background: var(--vurgu); color: var(--metin-ters); border: 1px solid var(--vurgu); border-radius: var(--kose-dugme); font-weight: 600; }
.dugme-ikincil { background: var(--zemin-yuzey); color: var(--metin-1); border-color: var(--cizgi-ince); }
a.dugme { text-decoration: none; }   /* bağlantı biçimli düğme (Mühür, [Kaydı sorgula]: doğrulama adresi yeni sekmede) */
.dugme:disabled { opacity: .5; cursor: default; }
.dugme-bekliyor:disabled { opacity: 1; }   /* dağıtıcı: basılan düğme «Hesaplanıyor…» der, kilitli kalır ama soluklaşmaz (TOPLU 101 dördüncü tur) */
/* dağıtıcı: hesabın kilidi çoğu kez bir iki kare sürer; kilitli denetim .2 s sonra soluklaşır, açılınca beklemeden (TOPLU 101 altıncı tur). Sınırı: radyo noktası ve seçim kutusu tarayıcının kilitli boyamasıyla hemen değişir; uzun eşzamanlı hesapta soluklaşma görünmez (ince ayar ayrı kart).
   Geçiş değil gecikmeli canlandırma: yeni çizimde kilitli doğan denetimin önceki biçemi yok, geçiş ona işlemez (yedinci tur). Bekleyen düğme hiç soluklaşmaz */
#arac-dagitim :is(.dugme:disabled:not(.dugme-bekliyor), input[type="file"]:disabled + .dosya-sec, .onay:has(input:disabled)) { opacity: 1; animation: dagitim-soluklas 0s .2s forwards; }
@keyframes dagitim-soluklas { to { opacity: .5; } }

/* ---- sonuç bölgesi (her alanda bir tane) */
.sonuc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.sonuc > .dugme { justify-self: start; }
.ncz-dxf { display: grid; gap: 8px; justify-items: start; }   /* Çizim Özeti › DXF olarak indir (TOPLU 110): düğme ve notları */
.adim { color: var(--metin-3); font-size: var(--boy-not); }
.bildirim { font-weight: 600; }
.hata { padding: 12px 14px; background: var(--durum-sil-zemin); border: 1px solid var(--durum-sil); border-radius: var(--kose-dugme); font-weight: 600; }
.soru { padding: 12px 14px; background: var(--vurgu-zemin); border: 1px solid var(--vurgu); border-radius: var(--kose-dugme); font-weight: 600; }   /* Ö25 (goldy A2): seçimle çözülen soru */
.ozet { font-family: var(--yazi-baslik); font-weight: 600; font-size: var(--boy-h3); line-height: 1.2; }
.uyarilar li { min-width: 0; overflow-wrap: anywhere; }   /* boşluksuz uzun satır dar ekranda gövdeyi yana açmasın */
.uyarilar { list-style: none; margin: 0; padding: 12px 14px; display: grid; gap: 4px; border: 1px dashed var(--cizgi-belirgin); border-radius: var(--kose-dugme); color: var(--metin-2); font-size: var(--boy-arayuz); }
.dogrulama { padding-top: 10px; border-top: 1px dotted var(--cizgi-belirgin); color: var(--metin-3); font-size: var(--boy-not); }
/* sınır notu: aracın bulamadıkları (tek cümle; ayrıntısı açılır) */
.sinir-notu { padding: 10px 14px; border: 1px dashed var(--cizgi-belirgin); border-radius: var(--kose-dugme); color: var(--metin-2); font-size: var(--boy-arayuz); }
.dipnot { padding-top: 10px; border-top: 1px solid var(--cizgi-ince); }

/* tablo: dar ekranda kendi kabında kayar */
.tablo-kabi { max-width: 100%; overflow-x: auto; }
/* sağda kalan sütun (uygulama.js sagdaKalan): kenar solar; odakta (klavyeyle kaydırma) solma kalkar, odak çizgisi tam görünür */
.tablo-kabi.sagda-kalan { -webkit-mask-image: linear-gradient(to left, transparent, #000 2.5rem); mask-image: linear-gradient(to left, transparent, #000 2.5rem); }
.tablo-kabi.sagda-kalan:focus-visible { -webkit-mask-image: none; mask-image: none; }
table { width: 100%; border-collapse: collapse; font-size: var(--boy-arayuz); }
th, td { padding: 8px 16px 8px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cizgi-ince); }
th:last-child, td:last-child { padding-right: 0; }
thead th, thead th.sayi { border-bottom: 2px solid var(--cizgi-sinir); color: var(--metin-3); font-family: var(--yazi-govde); font-weight: 600; font-size: var(--boy-kucuk); letter-spacing: var(--iz-etiket); text-transform: uppercase; }
tbody th { font-weight: 600; }
td.sayi, th.sayi { text-align: right; }

/* ---- Toplulaştırma Karnesi, Askı Listesi, İtiraz Defteri (Ö12) */
.karne-secimler, .cetvel-secimler, .yol-secimler, .cap-secimler, .kaplama-secimler, .katman-esleme-secimler, .dagitim-secimler, .imar-secimler { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; }
.imar-secimler { justify-self: stretch; }   /* Alan ve İmar Hakkı: plan değerleri formun içinde (.alanlar öğeleri başa yaslar) */
/* Ayırma Taslağı (TOPLU 111): seçimler imar'ınki gibi; önizleme çizimi (eski parsel çizgi, iki yeni parsel dolgu, ayırma hattı kesikli) */
.taslak-secimler { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 12px; justify-self: stretch; }
.taslak-cizim { width: 100%; height: auto; max-height: 360px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.taslak-cizim .eski { fill: none; stroke: var(--harita-hat); stroke-width: 2; vector-effect: non-scaling-stroke; }
.taslak-cizim .yeni-1 { fill: var(--vurgu-zemin); }
.taslak-cizim .yeni-2 { fill: var(--ton-b); }   /* onay rengi değil (24. ölçüt): Parça 2 sıcak gri, Parça 1 mavi */
.taslak-cizim .hat { fill: none; stroke: var(--durum-sil); stroke-width: 2; stroke-dasharray: 6 4; vector-effect: non-scaling-stroke; }
.taslak-cizim text { fill: var(--harita-yazi); font-family: var(--yazi-sayi); }
/* Oda Rölevesi (551; ROLEVE-TASARIM): oda başına bir kroki; yazı boyu çizimin niteliğinde (odanın büyüklüğüne göre), burada verilmez */
.roleve-krokiler { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 12px; }
.roleve-kroki { width: 100%; height: auto; max-height: 360px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.roleve-kroki .duvar { fill: var(--vurgu-zemin); stroke: var(--harita-hat); stroke-width: 2; vector-effect: non-scaling-stroke; }
.roleve-kroki .kosegen { fill: none; stroke: var(--cizgi-belirgin); stroke-width: 1; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.roleve-kroki text { fill: var(--harita-yazi); font-family: var(--yazi-sayi); text-anchor: middle; dominant-baseline: central; }
.roleve-kroki .kose { fill: var(--metin-3); }
.roleve-kroki .ad { fill: var(--metin-1); font-family: var(--yazi-govde); font-weight: 600; }
/* Röleve Ölçü Krokisi (ROLEVE-OLCU-TASARIM): blok başına A3 yatay kroki; ekranda önizleme, kâğıtta iki sayfa (kroki, koordinat listesi). Yazı boyları çizimin
   niteliğinde (kâğıdın mm'si × ölçek); renkler belirteçten, onay rengi yok (24. ölçüt) */
.olcu-krokiler { display: grid; gap: 12px; }
.olcu-krokiler figure { margin: 0; }
.olcu-krokiler figcaption { color: var(--metin-2); font-size: var(--boy-not); }
.olcu-cizim { display: block; width: 100%; height: auto; aspect-ratio: 400 / 232; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.olcu-cizim .olcu-parsel { fill: none; stroke: var(--harita-hat); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-nokta { fill: var(--metin-1); }
.olcu-cizim .olcu-nokta-bos { fill: var(--zemin-pafta); stroke: var(--metin-1); stroke-width: 1; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-disinda { fill: none; stroke: var(--durum-sil); stroke-width: 2; vector-effect: non-scaling-stroke; }
.olcu-cizim :is(.olcu-komsu, .olcu-degen) { fill: none; stroke: var(--metin-2); stroke-width: 0.75; vector-effect: non-scaling-stroke; }
.olcu-cizim :is(.olcu-komsu-no, .olcu-aralik, .olcu-degen-no) { fill: var(--metin-2); }
.olcu-cizim :is(.olcu-komsu-no, .olcu-degen-no, .olcu-anahtar-no) { font-weight: 700; }
.olcu-cizim :is(.olcu-kose, .olcu-kenar, .olcu-parsel-no, .olcu-komsu-no, .olcu-aralik, .olcu-degen-no, .olcu-anahtar-no) { dominant-baseline: central; stroke: var(--zemin-pafta); stroke-width: 3; stroke-linejoin: round; paint-order: stroke; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-anahtar-zemin { fill: var(--zemin-pafta); stroke: var(--metin-1); stroke-width: 0.75; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-anahtar-parsel { fill: none; stroke: var(--metin-2); stroke-width: 0.5; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-anahtar-tarama { stroke: var(--metin-1); stroke-width: 0.5; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-kose { font-weight: 700; }
.olcu-cizim .olcu-kenar { fill: var(--metin-2); font-family: var(--yazi-sayi); }
.olcu-cizim .olcu-kilavuz { stroke: var(--metin-2); stroke-width: 0.75; vector-effect: non-scaling-stroke; }
.olcu-cizim .olcu-parsel-no { font-weight: 700; }
.olcu-krokileri-baski { display: none; color: var(--metin-1); font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.olcu-sayfa { break-after: page; }
.olcu-sayfa:last-child { break-after: auto; }
.olcu-sayfa h2 { margin: 0 0 1mm; font-family: var(--yazi-baslik); font-size: 14pt; }
.olcu-sayfa .olcu-cizim { width: 400mm; height: 232mm; aspect-ratio: auto; border-radius: 0; }
.olcu-sayfa :is(.olcu-kunye, .olcu-lejant) { margin: 1mm 0; color: var(--metin-2); font-size: 8pt; }
.olcu-elle { display: flex; gap: 6mm; margin: 2mm 0 0; padding: 0; list-style: none; }
.olcu-elle li { flex: 1; padding-bottom: 3mm; border-bottom: .2mm dotted var(--metin-2); }
.olcu-liste table { width: 100%; margin: 0 0 4mm; border-collapse: collapse; font-size: 7.5pt; font-variant-numeric: tabular-nums; }
.olcu-liste :is(th, td) { padding: .6mm 1.2mm; border: .2mm solid var(--cizgi-ince); text-align: right; }
.olcu-liste :is(th, td):is(:first-child, :nth-child(2)) { text-align: left; }
.olcu-imzalar { display: flex; gap: 8mm; margin: 6mm 0 2mm; }
.olcu-imzalar div { display: grid; flex: 1; gap: 8mm; padding-bottom: 2mm; border-bottom: .2mm solid var(--metin-2); }
.olcu-imzalar span { color: var(--metin-2); font-size: 7.5pt; }
.taslak-tevhit-secim, .taslak-terk-secim { display: grid; margin: 0; padding: 0; border: 0; min-width: 0; }   /* Tevhit'in parselleri ve Yola terk'in parçaları: kutular alt alta */
:is(.taslak-tevhit-secim, .taslak-terk-secim) legend { padding: 0; margin-bottom: 4px; }
:is(.taslak-tevhit-secim, .taslak-terk-secim) .onay span { min-width: 0; overflow-wrap: anywhere; }   /* uzun parsel adı dar ekranda kırılır */
.karne-tablosu td { white-space: nowrap; }   /* «-33,3 %» dar ekranda bölünmesin; tablo kendi kabında kayar */
.duz-liste { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.aski-sutun-tablosu select { min-width: 8.5rem; }   /* «Maskele» kesilmesin */
.aski-onizleme-tablosu :is(th, td) { white-space: nowrap; }
.defter-bolumu { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.itiraz-tablosu tbody :is(th, td) { white-space: nowrap; }
.itiraz-tablosu :is(input, select) { width: auto; }   /* hücrede doğal genişlik (genel kural %100: hücre daralınca kutu da daralır) */
.ilan-yerleri { display: inline-flex; gap: 12px; }   /* askının ilan yerleri: üç kutu yan yana (TOPLU 57) */
.yer-karti-baglanti { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }   /* yer kartı: bağlantı ve [Paylaş] (TOPLU 58) */
.ilan-yerleri .onay input { width: 1.375rem; }   /* tablonun «width: auto»su .onay'ın kutusunu daraltmasın */
.itiraz-listesi td:nth-child(7) { white-space: normal; min-width: 12em; }
/* Cetvel ↔ Çizim (Ö13) ve Yol Ağı (Ö14): sayılar bölünmesin; tablo kendi kabında kayar */
:is(.cetvel-tablosu, .yol-tablosu, .cap-tablosu, .kaplama-tablosu) :is(th, td) { white-space: nowrap; }
.cap-tablosu td:nth-child(3) { white-space: normal; min-width: 14em; }
/* Dağıtım (kıvılcım 23.10 kart 1 ve 2): dosya başına eşleme kutusu; kalacak kayıt seçimi hücrede doğal genişlikte, sığmazsa tablo kendi kabında kayar */
.dagitim-dosya { display: grid; gap: 8px; }
.dagitim-dosya p { margin: 0; }
.dagitim-cakisma-tablosu select { width: auto; max-width: 28rem; }
.dagitim-oncelik { display: grid; gap: 4px; margin: 0; padding: 0; border: 0; min-width: 0; }   /* öncelik radyoları alt alta; dar ekranda satır kırılır */
.dagitim-oncelik legend { padding: 0; margin-bottom: 4px; }
/* dağıtıcının seçili öncelik bölümü (TOPLU 101): .sonuc gibi aralıklı ızgara, düğmeler doğal genişlikte */
.dagitim-secili { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.dagitim-secili > .dugme { justify-self: start; }
/* Tam Kaplama (Ö18): Boşluklar'ın komşu parsel listesi satır kırar (dar ekranda alan ve koordinatlar sağa itilmesin); öteki hücreler bölünmez */
.kaplama-tablosu td:not(.sayi) { white-space: normal; min-width: 8em; }
.cap-kisimlar { display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; padding: 0; border: 0; min-width: 0; }
.cap-kisimlar legend { padding: 0; margin-bottom: 4px; }   /* Ayırma Çapı'nın kısım sütunları: onay kutuları yan yana, sığmazsa alta */   /* Ayırma Çapı'nın Durum'u: sorunlar birden çoksa satır kırılır */
.cip { display: inline-block; padding: 2px 8px; border: 1px solid var(--cizgi-belirgin); border-radius: 999px; font-size: var(--boy-not); }
.cip.disinda { border-color: var(--durum-sil); color: var(--durum-sil); }
.sil { min-height: var(--hedef); padding: 0 12px; background: none; border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }

/* ---- Adım Yolu (Ö19): iş seçimi radyo düğmeleri, parçalı şerit, açılır adım kartları. «Bitti» vurgu rengiyle (yeşil değil: onay gibi görünmesin) */
.adim-isler { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }   /* telefonda alt alta */
.adim-isler legend { padding: 0; margin-bottom: 6px; color: var(--metin-3); font-size: var(--boy-not); font-weight: 600; }
.adim-is { display: flex; align-items: center; gap: 8px; min-height: var(--hedef); padding: 6px 12px; background: var(--zemin-yuzey); color: var(--metin-1); font: inherit; text-align: left; border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); cursor: pointer; }
.adim-is[aria-pressed="true"] { border-color: var(--vurgu); background: var(--vurgu-zemin); font-weight: 600; }
.adim-sayi { margin-left: auto; color: var(--metin-3); font-family: var(--yazi-sayi); font-variant-numeric: tabular-nums; white-space: nowrap; }
.adim-yol { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.adim-sayac { font-weight: 600; }
.adim-serit { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 3px; height: 6px; }
.adim-serit span { border-radius: 3px; background: var(--cizgi-ince); }
.adim-serit .dolu { background: var(--vurgu); }
.adim-listesi { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.adim-karti > details { padding: 0 14px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-satir); }
.adim-karti > details[open] { padding-bottom: 12px; }
/* kartın özeti esnek satırdır (kod, ad, durum): tarayıcının üçgeni düşer, yerine çizgiyle çizilmiş ok (metin değil: ekran okuyucu okumaz). İçteki
   «Ayrıntı» sayfanın öteki açılırları gibi kalır (vurgu rengi, kendi üçgeni). */
.adim-karti > details > summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; color: var(--metin-1); list-style: none; }
.adim-karti > details > summary::-webkit-details-marker { display: none; }
.adim-karti > details > summary::before { content: ''; flex: none; align-self: center; width: 7px; height: 7px; margin-right: 2px; border-right: 2px solid var(--metin-3); border-bottom: 2px solid var(--metin-3); transform: rotate(-45deg); }
.adim-karti > details[open] > summary::before { transform: rotate(45deg); }
.adim-kod { font-family: var(--yazi-sayi); color: var(--metin-3); }
.adim-ad { flex: 1 1 10rem; min-width: 0; overflow-wrap: anywhere; }
.adim-hal { color: var(--metin-3); font-size: var(--boy-kucuk); font-weight: 400; }
.adim-karti[data-hal="bitti"] .adim-hal { color: var(--vurgu); font-weight: 600; }
.adim-ic { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.adim-kim { color: var(--metin-2); font-size: var(--boy-arayuz); }
.adim-kakdo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.adim-ayrinti h3 { margin: 12px 0 4px; font-size: var(--boy-arayuz); }
.adim-dayanak { margin: 0; padding-left: 20px; display: grid; gap: 6px; font-size: var(--boy-arayuz); overflow-wrap: anywhere; }
.adim-neden { color: var(--metin-3); font-size: var(--boy-not); }
.adim-neden:empty { display: none; }
.ek1-liste { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 4px; }
.ek1-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 4px 0; border-top: 1px solid var(--cizgi-ince); }
.ek1-satir .onay { flex: 1 1 14rem; min-width: 0; overflow-wrap: anywhere; }
.ek1-tarama { color: var(--metin-3); font-size: var(--boy-kucuk); }
.ek1-sayac { color: var(--metin-2); font-size: var(--boy-kucuk); }
.ek1-dosya { min-width: 0; overflow-wrap: anywhere; }   /* uzun, boşluksuz dosya adı dar ekranda satırı taşırmasın (kalfa TOPLU 54 P2) */

/* ---- mevzuat: kaynak listesi ve madde kartları */
.kaynaklar { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: kaynak; }
.kaynaklar li { counter-increment: kaynak; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: center; min-height: 60px; padding: 10px 14px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-satir); }
.kaynaklar li::before { content: counter(kaynak); display: grid; place-items: center; width: 40px; height: 40px; background: var(--ton-c); color: var(--cizgi-sinir); border-radius: 12px; font-family: var(--yazi-sayi); }
.maddeler { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.kart { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 14px 16px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
.kart h3 { font-family: var(--yazi-govde); font-size: var(--boy-govde); line-height: 1.3; }
.kart-kaynak { color: var(--metin-3); font-size: var(--boy-kucuk); font-weight: 600; line-height: 1.3; }
.alinti, .madde-tam { margin: 0; padding: 2px 0 2px 14px; border-left: 3px solid var(--harita-egri); font-size: var(--boy-okuma); line-height: var(--satir-okuma); white-space: pre-wrap; }
.kart-not { color: var(--metin-3); font-size: var(--boy-not); }
#mevzuat-sonuc:not(:has(.maddeler)) + .dipnot { display: none; }   /* alıntı dipnotu yalnız alıntı varken */
.kart-eski { justify-self: start; padding: 2px 10px; border: 1px solid var(--durum-sil); border-radius: 999px; color: var(--metin-1); font-weight: 600; }

/* ---- gizlilik: karar, bulgular, işaretli metin */
.karar { display: grid; gap: 4px; padding: 14px 16px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
.karar h3 { font-size: var(--boy-h3); }
.karar p { color: var(--metin-2); }
.karar-uyari { background: var(--vurgu-zemin); border-color: var(--vurgu); }
.karar-engel { background: var(--durum-sil-zemin); border-color: var(--durum-sil); }
.karar-engel h3 { color: var(--durum-sil); }
.bulgular { margin: 0; padding-left: 1.25rem; font-size: var(--boy-arayuz); }
.bulgu-daha { color: var(--metin-2); font-size: var(--boy-arayuz); }
.kutu-etiket { margin-bottom: 4px; color: var(--metin-3); font-size: var(--boy-not); font-weight: 600; }
.metin-kutusu { margin: 0; padding: 14px 16px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); font-family: var(--yazi-sayi); font-size: var(--boy-not); line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.maske-notu { color: var(--metin-2); font-size: var(--boy-not); }
mark { background: var(--vurgu-zemin); color: var(--metin-1); border-radius: 4px; box-shadow: inset 0 -2px 0 var(--vurgu); }

/* ---- çizim özeti */
.dosya-adi { font-weight: 600; overflow-wrap: anywhere; }
/* sayım: her sayı kendi karosunda. Metni «Toplam obje: N · Çoklu doğru: N · …» olarak kalır; iki nokta ve ayraç görünmez yazılır. */
/* Dizilim: üstte toplam obje; altında makronun öteki iki sayısı (çoklu doğru, toplam köşe); en altta nokta, yazı ve tabaka. */
.sayim { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.sayac { grid-column: span 2; display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 2px; min-width: 0; padding: 12px 10px 12px 14px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
.sayac .sayi { order: -1; font-size: clamp(1.0625rem, 5vw, 1.5rem); line-height: 1.1; overflow-wrap: anywhere; }
.sayac-ad { color: var(--metin-3); font-size: var(--boy-kucuk); }
.sayac:nth-child(-n+5) { grid-column: span 3; }   /* 1., 3. ve 5. çocuk ilk üç karodur (aralarında görünmez ayraçlar var) */
.sayac:nth-child(-n+5) .sayi { font-size: clamp(1.25rem, 6vw, 1.75rem); }
.sayac:first-child { grid-column: 1 / -1; }
.sayac:first-child .sayi { font-size: clamp(1.75rem, 9vw, 2.5rem); }
/* Parsel Denetimi: sekiz sonuç sayısı eşit karolarda (Çizim Özeti'nin büyük ilk karoları burada yok) */
.sayim.parsel-sayim .sayac, .sayim.fark-sayim .sayac { grid-column: span 2; }
@media (max-width: 480px) { .sayim.parsel-sayim .sayac, .sayim.fark-sayim .sayac { grid-column: span 3; } }   /* dar ekranda ikişer karo: uzun söz («Denetim tamamlanamadı») kırılmaz */
.sayim.parsel-sayim .sayac .sayi, .sayim.fark-sayim .sayac .sayi { font-size: clamp(1.25rem, 6vw, 1.75rem); }
.dayanak { display: block; margin-top: 4px; color: var(--metin-3); font-size: var(--boy-kucuk); font-weight: 400; }
.kural-tablosu tbody th { white-space: nowrap; }
.kural-tablosu td p { margin: 0; }
/* Belgeden cevap: kodlanmamış ya da yalnız tanınan kural satırında [Belgeyi ekle] (etiket içinde gizli PDF girişi); sonuç satırın altında, ayrıntı kapalı */
.belge-kutu { display: block; margin-top: 6px; }
.kodsuz li .belge-kutu { display: inline-block; margin: 0 0 0 8px; vertical-align: middle; }
.belge-ekle { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.belge-ekle:focus-within { outline: var(--odak-kalinlik) solid var(--odak); outline-offset: var(--odak-aralik); }
.belge-sonuc { margin-top: 6px; font-size: var(--boy-not); color: var(--metin-2); }
.belge-sonuc .belge-ozet { margin: 0; color: var(--metin-1); }
.belge-ayrinti summary { min-height: 0; padding-block: 2px; }
.belge-ayrinti ul { margin: 4px 0 0; padding-left: 18px; }
.belge-ayrinti li + li { margin-top: 2px; }
/* Kural ek tabloları (sözleşme 4.7 `ek`): Not hücresinde kapalı ayrıntı; iç tablo kendi kabında kayar, hücreleri kırılmaz */
.ek-tablolar { margin-top: 6px; }
.ek-tablolar summary { min-height: 0; padding-block: 2px; }
.ek-tablo { margin-top: 8px; }
.ek-tablo .ek-tablo-basligi { font-weight: 600; color: var(--metin-1); overflow-wrap: anywhere; }
.ek-tablo .not { margin: 4px 0 0; }
.ek-tablo .dugme { margin-top: 6px; }
.kural-tablosu .ek-tablosu table { min-width: 0; }
.kural-tablosu .ek-tablosu td, .kural-tablosu .ek-tablosu th { min-width: 0; white-space: nowrap; overflow-wrap: normal; font-size: var(--boy-not); }
.belge-ayrinti li.bulunamadi, .belge-kanit { color: var(--metin-3); }
/* Parsel tabloları: dar ekranda en az 640 px (kendi kabında kayar); motorun notlarındaki boşluksuz uzun ifadeler hücrede kırılır */
.kural-tablosu table, .bulgu-tablosu table, .fark-tablosu table { min-width: 640px; }
/* Rapor Taslağı'nın yol listesi (Ö8a-2): yolun adı ve obje numarası tek satırda; dar ekranda tablo kendi kabında kayar */
.yol-tablosu tbody th { white-space: nowrap; }
.kural-tablosu td:nth-child(n+4), .bulgu-tablosu td:nth-child(2) { overflow-wrap: anywhere; min-width: 16rem; }   /* Tanım, Not ve Ne (bulgu şablonu); kısa sütunlar sözcükte kırılmaz.
   En az 16rem (Ö22 S4): anywhere sütunun en dar genişliğini tek harfe indirir, dar ekranda tablo bu sütunları sıkıştırıyordu (telefonda tek bulgunun satırı yüzlerce piksel) */
/* Bulgu işaretleri (Ö10j): son sütunda seçim kutusu ve (işaret seçilince) gerekçe alt alta; çubukta sayaç, indirme, not ve hata satırı.
   Yazı en az 16 px: iOS odakta yakınlaştırmasın */
.bulgu-tablosu .isaret-hucresi { display: grid; gap: 6px; min-width: 12rem; }
/* Bulgu şablonu (Dalga A 4. tren): kural başına yapılacak iş satırı başlığın altında; Nerede hücresinde tabaka, ad ve numara tek satırda
   kalmaya çalışır (nokta ayraçlı); Ölçüm kapalı ayrıntı, özeti küçük, maddeleri alt alta */
.kural-dayanagi { margin: 0 0 8px; color: var(--metin-2); font-size: var(--boy-not); }
.kural-dayanagi p { margin: 0; }
.kural-dayanagi .dayanak-maddesi { font-weight: 600; }
.kural-dayanagi details { margin: 4px 0; }
.kural-dayanagi summary { min-height: 0; padding-block: 2px; }
.kural-dayanagi button { margin-top: 4px; }
.bulgu-tablosu tbody th { font-weight: 400; }
.bulgu-tablosu .bulgu-tabakasi { font-weight: 600; }
.bulgu-tablosu .bulgu-olcumu { min-width: 10rem; }
.bulgu-tablosu .bulgu-olcumu summary { min-height: 0; padding-block: 2px; font-size: var(--boy-not); }
.bulgu-tablosu .bulgu-olcumu ul { margin: 4px 0 0; padding-left: 18px; font-size: var(--boy-not); color: var(--metin-2); }
.bulgu-tablosu .bulgu-olcumu li + li { margin-top: 2px; }
.isaret-hucresi :is(select, input) { font-size: max(1rem, var(--boy-arayuz)); }
.isaret-cubugu { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 16px; }
.isaret-cubugu p { margin: 0; }
.isaret-cubugu :is(.not, .hata) { flex-basis: 100%; }
/* Bulgu haritası (Ö5): kuzey yukarı; çizgi kalınlığı ölçekten bağımsız; onay rengi kullanılmaz */
.bulgu-haritasi-kabi { border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); background: var(--zemin-yuzey); padding: 4px; }
/* kutunun tam kenarındaki çizgi kırpılmasın (ms-98, pas 62): taşan yarım çizgi kabın payına düşer */
.bulgu-haritasi { display: block; width: 100%; height: auto; max-height: 70vh; overflow: visible; }
.bulgu-haritasi path { fill: none; stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.bulgu-haritasi-zemin path { stroke: var(--metin-3); opacity: .45; }
.bulgu-haritasi .bulgu-hata { stroke: var(--durum-sil); fill: var(--durum-sil-zemin); fill-opacity: .7; stroke-width: 2; }
.bulgu-haritasi .bulgu-inceleme { stroke: var(--vurgu); fill: var(--vurgu-zemin); fill-opacity: .7; stroke-width: 2; }
.bulgu-haritasi .bulgu-not { stroke: var(--metin-3); stroke-dasharray: 4 3; stroke-width: 1.5; }
/* açık obje dolgusuz: kapanmamış çizgi kapalıymış gibi boyanmasın (yolu "Z" ile bitmez) */
.bulgu-haritasi path:not([d$="Z"]) { fill: none; }
/* fareyle başlık boyalı objenin içinde de görünür; dokununca seçim geometriyle (Ö10b-2): seçili obje kalın, zemindeki de belirgin */
.bulgu-haritasi :is(.bulgu-hata, .bulgu-inceleme, .bulgu-not) { pointer-events: visible; cursor: pointer; }
.bulgu-haritasi .secili { stroke-width: 4; }
.bulgu-haritasi-zemin .secili { stroke: var(--metin-1); opacity: 1; }
/* haritada gezinme (Ö10b-1): düğme satırı; yakınken sürükleme haritayı kaydırır, sığdırılmışken parmak sayfayı kaydırır */
.harita-dugmeleri { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.bulgu-haritasi.yakin { touch-action: none; cursor: grab; overflow: hidden; }   /* yakınken görüş dışı objeler kabın dışına taşmaz */
.obje-dugmesi { font: inherit; color: var(--vurgu); background: none; border: 0; padding: 0; text-decoration: underline; cursor: pointer; }
/* Sahada (Ö11a): konum. Doğruluk dairesi metre ölçeğinde; nokta sıfır boylu yolun yuvarlak ucu, ekranda sabit boyda (hale açık zeminde) */
.bulgu-haritasi .konum { pointer-events: none; }
.bulgu-haritasi .konum-dogruluk { fill: var(--vurgu); fill-opacity: .12; stroke: var(--vurgu); stroke-width: 1; vector-effect: non-scaling-stroke; }
.bulgu-haritasi .konum-hale { stroke: var(--zemin-yuzey); stroke-width: 14; stroke-linecap: round; }
.bulgu-haritasi .konum-imi { stroke: var(--vurgu); stroke-width: 9; stroke-linecap: round; }
.konum-durumu p { margin: 4px 8px 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.konum-durumu p.hata { color: var(--durum-sil); }
/* Eksende neredeyim (Ö11b): seçim düğmeleri ve not; seçilen eksen haritada konum işaretinin altında vurgulu */
.eksen-secimi { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 8px 0; }
.eksen-secimi:empty { display: none; }
.eksen-secimi p { flex-basis: 100%; margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.bulgu-haritasi .konum-ekseni { stroke: var(--vurgu); stroke-width: 6; stroke-opacity: .5; stroke-linecap: round; }
/* Hedefe uzaklık ve yön (Ö11c): düğmeler ve not; hedef koyu nokta (açık haleli), konumdan hedefe kesik çizgi */
.hedef-secimi { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 6px 8px 0; }
.hedef-secimi:empty { display: none; }
.hedef-secimi p { margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.hedef-secimi p.not { flex-basis: 100%; }
.bulgu-haritasi .konum-hedef-cizgisi { stroke: var(--metin-1); stroke-width: 1.5; stroke-dasharray: 6 4; }
.bulgu-haritasi .konum-hedef-hale { stroke: var(--zemin-yuzey); stroke-width: 16; stroke-linecap: round; }
.bulgu-haritasi .konum-hedef { stroke: var(--metin-1); stroke-width: 10; stroke-linecap: round; }
#kubaj-kanal-form .alan[hidden], #kubaj-kanal-dolgu-alani[hidden] { display: none; }   /* kanal tabanı kipine göre kapanan alanlar */
/* Model sekmesinin denetime göre açılan alan grupları formun ızgarasında kalır (alanlar arası 10 px; kalfa TOPLU 52 P2) */
#kubaj-kot-hatali-alani, #kubaj-kot-ucgen-alani { display: contents; }
#kubaj-kot-hatali-alani[hidden], #kubaj-kot-ucgen-alani[hidden] { display: none; }
/* Kanal'ın boykesiti (Kübaj → Kanal; uygulama.js 14d): km'ye göre eksende zemin kotu ve taban kotu, arası kazı; kot farkı kutuya göre büyür
   (preserveAspectRatio none), çizgi kalınlığı ölçekten bağımsız */
.kanal-boykesit-kabi, .kanal-enkesit-kabi { display: grid; gap: 6px; padding: 8px; border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); background: var(--zemin-yuzey); }
.kanal-boykesit-kabi p, .kanal-enkesit-kabi p { margin: 0; }
/* Netcad düzeni (ürün sahibi 14.10.2026 18:1x «Netcad gibi tam bant»): solda bant başlıkları (kaydırmayla gitmez), sağda geniş çizim yatay kaydırılır (klavyeden odaklanır) */
.kanal-boykesit-bant { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0 6px; align-items: start; }
.kanal-boykesit-basliklar { display: grid; color: var(--metin-2); font: 600 .75rem var(--yazi-govde); }   /* satır boyları betikten: çizimle aynı */
.kanal-boykesit-basliklar span { align-self: end; padding-bottom: 6px; white-space: nowrap; }
.kanal-boykesit-kaydirma { overflow-x: auto; overscroll-behavior-x: contain; }
.kanal-boykesit-kaydirma:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.kanal-boykesit { display: block; height: auto; }
.kanal-boykesit polygon.kazi, .kanal-enkesit polygon.kazi { fill: var(--vurgu-zemin); fill-opacity: .6; stroke: none; }   /* yazılar aynı sınıf adını taşır: kurallar şekle bağlı */
.kanal-boykesit polygon.dolgu, .kanal-enkesit polygon.dolgu { fill: var(--harita-egri); fill-opacity: .6; stroke: none; }   /* dolgu: kanal çizgisi (kırmızı hat) zeminin üstünde; akar kot */
.kanal-boykesit polyline.zemin, .kanal-enkesit polyline.zemin { fill: none; stroke: var(--metin-1); stroke-width: 1.5; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.kanal-boykesit polyline.taban, .kanal-enkesit polyline.kanal { fill: none; stroke: var(--kirmizi-kot); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }   /* kırmızı hat: kanal tabanı (akar kot), Netcad'in geleneği (ürün sahibi 14.10.2026 17:45) */
.kanal-boykesit .dik, .kanal-boykesit .bant { stroke: var(--cizgi-ince); stroke-width: 1; }
.kanal-boykesit .kiyas, .kanal-enkesit .kiyas { stroke: var(--metin-3); stroke-width: 1; stroke-dasharray: 4 3; }
.kanal-boykesit text, .kanal-enkesit text { font: 11px var(--yazi-sayi); fill: var(--metin-1); }
.kanal-boykesit text.bant-taban, .kanal-enkesit text.taban { fill: var(--kirmizi-kot); }
.kanal-boykesit polyline.sonraki { fill: none; stroke: var(--vurgu); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }   /* Kübaj: sonraki alım; önceki zemin gibi siyah (biçim alıma bağlı) */
.kanal-boykesit text.bant-sonraki { fill: var(--vurgu); }
/* enkesit (ürün sahibi 14.10.2026 18:1x «enkesit de ekle»): gerçek şekil; ekranda kesit seçici, künyede yalnız şekil */
.kanal-enkesit-secim { display: flex; align-items: center; gap: 8px; }
.kanal-enkesit-secim select { min-height: var(--hedef); padding: 0 10px; background: var(--zemin-pafta); color: var(--metin-1); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); font: inherit; }
.kanal-enkesit { display: block; width: 100%; max-width: 560px; height: auto; }
.kanal-enkesit .eksen { stroke: var(--metin-3); stroke-width: 1; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
/* Nokta kaydet (Ö11d): not alanı ve düğme bir satırda (telefonda alt alta); liste ve indirme düğmeleri */
.nokta-kaydi { margin: 6px 8px 0; }
.nokta-kaydet, .nokta-listesi { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.nokta-kaydet[hidden] { display: none; }
.nokta-kaydet label, .olcek-secimi label { display: flex; flex: 1 1 14rem; align-items: center; gap: 8px; color: var(--metin-2); font-size: var(--boy-kucuk); }
.nokta-kaydet input[type="text"], .olcek-secimi input[type="text"] { flex: 1 1 auto; width: auto; min-width: 0; font-size: max(1rem, var(--boy-arayuz)); }
.olcek-secimi { margin-inline: 0; }   /* Ö25 (goldy A4): İstek ve Plan'da formla aynı hizada (.hedef-secimi'nin 8 px yan payı haritanın içi içindir) */
.olcek-secimi p, .olcek-secimi label { color: var(--metin-1); font-size: inherit; }
.olcek-secimi p.hata, .nokta-kaydet .sart-hata { flex-basis: 100%; }   /* Ö10h-2: PDF'in ölçek uçları (hedef-secimi düzeni); uzunluk yazılmadı. Ö25: öteki .hata kutuları gibi. H6: doğruluk şartının yazımı yanlış (satırın canlı bölgesi; boşken de satırı kaplar) */
.dilim-secimi { margin-inline: 0; }   /* H2b: PDF'ten DXF'in dilim seçimi (TM27–45), ölçek kutusu gibi formla aynı hizada */
.dilim-secimi label { display: flex; flex: 1 1 14rem; align-items: center; gap: 8px; color: var(--metin-1); }
.dilim-secimi select { flex: 1 1 auto; width: auto; min-width: 0; }
.nokta-listesi ol { flex-basis: 100%; margin: 6px 0 0; padding-left: 1.5em; color: var(--metin-2); font-size: var(--boy-kucuk); }
.nokta-listesi p { flex-basis: 100%; margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.nokta-listesi p.hata { color: var(--durum-sil); }   /* Ö11d-2: depo okunamadı ya da yok */
.harita-secimi { margin: 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.harita-secimi:not(:empty) { margin-top: 4px; padding: 6px 8px 2px; border-top: 1px solid var(--cizgi-ince); }
.harita-secimi p { margin: 0; }
/* «Aynı noktada» (Ö10b-2): zincirin objeleri düğme; gösterilen basılı */
.harita-secimi .secim-zinciri { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.secim-zinciri [aria-pressed="true"] { border-color: var(--vurgu); color: var(--vurgu); }
/* Ö10b-2b: basılı Ölç ve açık Tabakalar; tabaka listesi (onay kutuları, dokunmaya yeter boyda); Ölç'ün satırları, imleri ve çizgisi */
.harita-dugmeleri :is([aria-pressed="true"], [aria-expanded="true"]) { border-color: var(--vurgu); color: var(--vurgu); }
.tabaka-listesi { display: flex; flex-wrap: wrap; gap: 0 16px; margin: 0 4px 4px; color: var(--metin-2); font-size: var(--boy-kucuk); }
.tabaka-listesi label { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; }
.tabaka-listesi input { width: 20px; height: 20px; margin: 0; accent-color: var(--vurgu); }
.olcum-satirlari:empty { display: none; }
.olcum-satirlari p { margin: 4px 8px 0; color: var(--metin-2); font-size: var(--boy-kucuk); }
.bulgu-haritasi .olcum { pointer-events: none; }
.bulgu-haritasi .olcum-cizgisi { stroke: var(--vurgu); stroke-width: 2; }
.bulgu-haritasi .olcum-hale { stroke: var(--zemin-yuzey); stroke-width: 14; stroke-linecap: round; }
.bulgu-haritasi .olcum-imi { stroke: var(--vurgu); stroke-width: 8; stroke-linecap: round; }
.bulgu-haritasi-lejant { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--metin-2); font-size: var(--boy-kucuk); }
.bulgu-haritasi-lejant li { display: inline-flex; align-items: center; gap: 6px; }
.lejant-im { display: inline-block; width: 14px; height: 10px; border: 2px solid var(--metin-3); border-radius: 2px; }
.lejant-im.bulgu-hata { border-color: var(--durum-sil); background: var(--durum-sil-zemin); }
.lejant-im.bulgu-inceleme { border-color: var(--vurgu); background: var(--vurgu-zemin); }
.lejant-im.bulgu-not { border-style: dashed; }
/* Uygulama alanı sınır krokisi (Parsel Denetimi, yalnız kâğıtta): giren kadastro durumuyla, dışta soluk, bloklar kesikli, proje sınırı kalın */
.lejant-im.sinir-icte { border-color: var(--vurgu); background: var(--vurgu-zemin); }
.lejant-im.sinir-kesilen { border-color: var(--durum-uyari); background: var(--durum-uyari-zemin); }   /* kesilmek kusur değil: hata kırmızısı değil */
.bulgu-haritasi .sinir-icte { stroke: var(--vurgu); fill: var(--vurgu-zemin); fill-opacity: .7; }
.bulgu-haritasi .sinir-kesilen { stroke: var(--durum-uyari); fill: var(--durum-uyari-zemin); fill-opacity: .7; stroke-width: 1.5; }
.bulgu-haritasi .sinir-dista { stroke: var(--metin-3); opacity: .5; }   /* soluk, numarasız */
.bulgu-haritasi .sinir-blok { stroke: var(--metin-2); stroke-dasharray: 4 3; }
.bulgu-haritasi .sinir-proje { stroke: var(--metin-1); stroke-width: 3; }
.bulgu-haritasi .sinir-koy { stroke: var(--metin-1); stroke-width: 2; stroke-dasharray: 0 5; stroke-linecap: round; }   /* noktalı: köy sınırı (köy başına sayfada) */
.sinir-krokisi { display: grid; gap: 8px; margin-top: 16px; }
.sinir-krokisi :is(h3, p) { margin: 0; }
/* Rapor taslağı (Ö8a): ölçülen kutu salt okunur ve kaynaklı; elle alan metin kutusu (kâğıtta yerini metni alır); TASLAK damgası,
   kâğıtta ayrıca her sayfada soluk "TASLAK" filigranı */
.rapor-dugmeleri { display: flex; flex-wrap: wrap; gap: 8px; }
.taslak-damga { margin: 0; padding: 8px 12px; border: 2px solid var(--durum-sil); border-radius: var(--kose-dugme); color: var(--durum-sil); font-weight: 700; }
.rapor-kunyesi, .kaynak, .gereken, .hazirlayacak { color: var(--metin-3); font-size: var(--boy-kucuk); overflow-wrap: anywhere; }
.rapor-bolumu, .rapor-eki { display: grid; gap: 8px; }
.rapor-bolumu h4, .rapor-eki h4 { margin: 12px 0 0; }
.rapor-bolumu p, .rapor-eki p { margin: 0; }
.olculen { display: grid; gap: 6px; padding-left: 12px; border-left: 3px solid var(--vurgu); }
.elle-etiket { color: var(--metin-2); font-size: var(--boy-kucuk); }
.elle-etiket input { color: var(--metin-1); font-size: max(1rem, var(--boy-arayuz)); }   /* Ek C'nin sayı kutusu etiketin içinde: küçük yazı telefonda yakınlaştırır */
.rapor-blok-tablo { display: grid; gap: 8px; min-width: 0; }   /* Ek C: tablo ve notu; ızgara öğesi tablonun enine büyümesin, tablo kendi kabında kaysın */
textarea.elle { font-family: inherit; }
.elle-baski, .taslak-filigran { display: none; }
.elle-baski { white-space: pre-wrap; }
.kodsuz { margin: 0; padding-left: 20px; display: grid; gap: 6px; color: var(--metin-2); font-size: var(--boy-arayuz); }
.satirlar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; color: var(--metin-2); font-size: var(--boy-arayuz); }
.ozet-tam { font-family: var(--yazi-sayi); font-size: var(--boy-kucuk); overflow-wrap: anywhere; }

/* Eskiz (Ö10e): plan motorun DXF'inden çizilir. Katman rengi DXF renk numarasından (data-renk) belirteçle; çizgi kalınlığı yakınlaşmada
   değişmez. Bulgular sınıfıyla: HATA kırmızı, UYARI sarı, BILGI yansız. Beyan indirme düğmelerinin yanında. */
.eskiz-plani { color: var(--metin-1); }
.eskiz-plani :is(polygon, polyline, line, path, circle) { fill: none; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.eskiz-plani text { fill: currentColor; font-family: var(--yazi-govde); }
.eskiz-plani [data-renk="1"] { color: var(--harita-egri-ana); }   /* kapı: CAD'de kırmızı, ama bu sayfada kırmızı «Hata» demek */
.eskiz-plani :is([data-renk="2"], [data-renk="3"], [data-renk="6"]) { color: var(--metin-2); }
.eskiz-plani :is([data-renk="4"], [data-renk="5"]) { color: var(--vurgu); }
/* E2-3: sunum katmanı (yalnız ekranda; DXF, PNG ve kâğıtta yok), DXF öğelerinin altında. DXF öğeleri Eskiz planında dokunuşu odaya bırakır. */
#eskiz-plan .eskiz-plani > [data-katman] { pointer-events: none; }
.eskiz-sunum .eskiz-duvar-dolgu { fill: var(--eskiz-duvar); stroke: none; }   /* sunumun öğeleri planın DXF çizgi kuralını (1 piksel, ölçeksiz) almaz */
.eskiz-sunum .eskiz-pencere-dolgu { fill: var(--eskiz-pencere); stroke: none; }
.eskiz-plan-oda { cursor: pointer; }
.eskiz-oda-zemin { fill: var(--eskiz-notr); }
.eskiz-plan-oda.ton-yasam .eskiz-oda-zemin { fill: var(--eskiz-yasam); }
.eskiz-plan-oda.ton-mutfak .eskiz-oda-zemin { fill: var(--eskiz-mutfak); }
.eskiz-plan-oda.ton-yatak .eskiz-oda-zemin { fill: var(--eskiz-yatak); }
.eskiz-plan-oda.ton-islak .eskiz-oda-zemin { fill: var(--eskiz-islak); }
.eskiz-plan-oda.ton-dolasim .eskiz-oda-zemin { fill: var(--eskiz-dolasim); }
.eskiz-plan-oda.ton-depo .eskiz-oda-zemin { fill: var(--eskiz-depo); }
.eskiz-oda-desen, .eskiz-sinir-alti, .eskiz-secili { pointer-events: none; }
.eskiz-sunum .eskiz-desen-cizgi { fill: none; stroke: var(--eskiz-desen); stroke-width: .02; vector-effect: none; }
.eskiz-sinir-alti { fill: none; stroke: var(--durum-uyari); stroke-width: .05; stroke-dasharray: .18 .12; }
.eskiz-secili { fill: none; stroke: var(--vurgu); stroke-width: .08; }
.eskiz-plan-oda:focus { outline: none; }
.eskiz-plan-oda:focus-visible .eskiz-oda-zemin { stroke: var(--odak); stroke-width: .06; }   /* SVG öğesinde outline yok: odak çizgisi zeminde */
.eskiz-plan-oda { transform-box: view-box; transform-origin: 0 0; }   /* kayma: birim plan metresi */
/* E2-3: cümleyle değiştirme, Seçenekler ve Plan'ın altında yapışık bant; cevap en çok 38vh (320 piksellik ekranda planı örtmesin; goldy) */
.eskiz-komut { position: sticky; bottom: 0; display: grid; gap: 8px; padding: 12px 16px; background: var(--zemin-yuzey); border-top: 1px solid var(--cizgi-ince); }
.eskiz-komut input { flex: 1 1 12rem; min-width: 0; }
.eskiz-komut-cevap { max-height: 38vh; overflow: auto; }
.eskiz-komut-cevap:empty { display: none; }
.eskiz-oda-bilgi { margin: .5rem 0 0; color: var(--metin-2); }
.eskiz-plan-ozeti { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .5rem 0; }
.eskiz-plan-ozeti div { display: flex; gap: .35rem; }
.eskiz-plan-ozeti dt { color: var(--metin-2); }
.eskiz-plan-ozeti dd { margin: 0; font-variant-numeric: tabular-nums; }
.eskiz-plani [data-renk="8"] { color: var(--metin-3); }
.eskiz-dugmeleri { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.eskiz-beyan { margin: 0; color: var(--metin-2); font-size: var(--boy-not); }
.eskiz-bulgulari { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.eskiz-bulgulari li { padding: 10px 14px; border: 1px solid var(--cizgi-ince); border-left-width: 4px; border-radius: var(--kose-dugme); overflow-wrap: anywhere; }
.eskiz-bulgulari .eskiz-hata { border-color: var(--durum-sil); background: var(--durum-sil-zemin); }
.eskiz-bulgulari .eskiz-uyari { border-color: var(--durum-uyari); background: var(--durum-uyari-zemin); }
/* Eskiz'in oda programı (E2-1; goldy'nin eskiz-2 sürüm 3'ü): çipler, öğretme kartı, üst satır, oda listesi (ton, ad, adımlayıcı, kaldır), toplam
   çubuğu (türlerin istenen m²'si üst üste, sığan sınırı, taşan kısım taralı), istenen / çizilen tablosu. Dokunma hedefleri en az --hedef. */
.eskiz-cumle { justify-self: stretch; }
.eskiz-cipler { display: flex; flex-wrap: wrap; gap: 8px; }
.eskiz-cipler:empty, .eskiz-ogret:empty { display: none; }
.eskiz-cip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 12px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: 999px; color: var(--metin-2); font-size: var(--boy-not); }
.eskiz-cip .simge { width: 15px; height: 15px; }
button.eskiz-cip { min-height: var(--hedef); color: var(--metin-1); font: inherit; font-size: var(--boy-not); cursor: pointer; }
button.eskiz-cip:hover { border-color: var(--cizgi-belirgin); }
.eskiz-cip.notr { border-style: dashed; }
.eskiz-cip.uyari { background: var(--durum-uyari-zemin); border-color: transparent; color: var(--durum-uyari); font-weight: 600; }
.eskiz-cip.ogren { background: var(--vurgu-zemin); border-color: transparent; color: var(--vurgu); }
.eskiz-ogret { display: grid; gap: 10px; justify-self: stretch; }
.eskiz-ogret-karti { display: grid; gap: 10px; justify-items: start; padding: 14px 16px; background: var(--zemin-yuzey); border: 1px dashed var(--cizgi-belirgin); border-radius: var(--kose-kart); }
.eskiz-ogret-karti p { margin: 0; }
.eskiz-ogret-soz { font-weight: 600; font-size: var(--boy-okuma); overflow-wrap: anywhere; }
.eskiz-ogrendi { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 14px; background: var(--vurgu-zemin); border-radius: var(--kose-kart); color: var(--vurgu); font-weight: 600; }
.eskiz-ogrendi > span { flex: 1 1 14rem; }
.eskiz-program { justify-items: stretch; }
.eskiz-program-ust { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 20px; }
.eskiz-program-ust h3 { flex-basis: 100%; margin: 0; }
.eskiz-brut { flex: 0 1 12rem; }
.eskiz-odalar { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--cizgi-ince); }
.eskiz-odalar:empty { display: none; }
.eskiz-oda { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto var(--hedef); align-items: center; column-gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--cizgi-ince); }
.eskiz-ton { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--plaka-cizgi); }
.eskiz-ton-yasam { background: var(--eskiz-yasam); } .eskiz-ton-mutfak { background: var(--eskiz-mutfak); } .eskiz-ton-yatak { background: var(--eskiz-yatak); }
.eskiz-ton-islak { background: var(--eskiz-islak); } .eskiz-ton-dolasim { background: var(--eskiz-dolasim); } .eskiz-ton-depo { background: var(--eskiz-depo); }
.eskiz-oda-ad { display: grid; min-width: 0; }
.eskiz-oda-ad b { font-weight: 600; overflow-wrap: anywhere; }
.eskiz-oda-ad small { color: var(--metin-3); font-size: var(--boy-kucuk); }
.eskiz-oda-ad small.uyari { color: var(--durum-uyari); font-weight: 600; }
.eskiz-adimlayici { display: inline-grid; grid-template-columns: var(--hedef) auto var(--hedef); align-items: center; border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); background: var(--zemin-pafta); }
.eskiz-adimlayici button, .eskiz-sil { display: grid; place-items: center; width: var(--hedef); height: var(--hedef); padding: 0; background: none; border: 0; border-radius: var(--kose-dugme); color: var(--metin-1); cursor: pointer; }
.eskiz-sil { color: var(--metin-3); }
.eskiz-adimlayici .simge, .eskiz-sil .simge { width: 18px; height: 18px; }
.eskiz-adimlayici input[type="text"] { width: 4.4em; min-height: var(--hedef); padding: 0; background: none; border: 0; border-radius: 0; text-align: center; font-family: var(--yazi-sayi); font-variant-numeric: tabular-nums; font-size: max(1rem, var(--boy-arayuz)); }
.eskiz-toplam { display: grid; gap: 8px; justify-self: stretch; padding: 14px 16px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
/* E2-3 (Yönetici): dolu çubuğun yeri baştan ayrılır (iç pay, çubuk, aralık, iki satır yazı): kutudan çıkınca [N seçeneği gör] kaymasın; TOPLU 15'te
   WebKit'te tık bu kaymayla kayboldu. TOPLU 17: 390 pikselde Chromium ve Firefox'ta dolu çubuk 112 piksel (6rem'de düğme 16 piksel kayıyordu) */
.eskiz-toplam { min-height: 7rem; }
.eskiz-cubuk { position: relative; height: 16px; overflow: hidden; border-radius: 6px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); }
.eskiz-cubuk span { position: absolute; inset: 0; transform-origin: 0 50%; border-right: 1px solid var(--zemin-pafta); }
.eskiz-cubuk .fazla { background: repeating-linear-gradient(135deg, var(--durum-sil) 0 3px, transparent 3px 7px); opacity: .55; border: 0; }
.eskiz-cubuk .sinir { right: auto; width: 2px; margin-left: -1px; background: var(--metin-1); border: 0; }
.eskiz-toplam-yazi { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 0; font-size: var(--boy-arayuz); }
.eskiz-cizilen-kabi { display: grid; gap: 6px; }
/* Eskiz seçenekleri (E2-2; goldy'nin eskiz-2'si): sıra notu, izin sorusu, kilit çipi, kartlar (küçük plan, ad, ölçütler, artı / eksi, düğmeler) */
.eskiz-tercih { margin: 0; color: var(--metin-2); font-size: var(--boy-not); }
.eskiz-izin { display: grid; gap: 8px; padding: 12px 14px; background: var(--zemin-yuzey); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
.eskiz-izin p { margin: 0; }
.eskiz-kilit { display: flex; flex-wrap: wrap; align-items: center; justify-self: start; gap: 8px 12px; padding: 6px 6px 6px 14px; background: var(--vurgu-zemin); border-radius: var(--kose-kart); color: var(--vurgu); font-size: var(--boy-not); }
.eskiz-kilit .simge { width: 16px; height: 16px; }
.eskiz-kartlar { margin: 0; padding: 0; list-style: none; gap: 14px; }
@media (min-width: 640px) { .eskiz-kartlar { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); } }
.eskiz-secenek { display: grid; align-content: start; gap: 10px; padding: 12px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-kart); }
.eskiz-secenek[aria-current="true"] { border-color: var(--vurgu); box-shadow: inset 0 0 0 1px var(--vurgu); }
.eskiz-mini { display: grid; place-items: center; aspect-ratio: 4 / 3; padding: 8px; background: var(--zemin-yuzey); border-radius: 12px; }
.eskiz-mini svg { width: 100%; height: 100%; }
.eskiz-mini-zarf { fill: none; stroke: var(--metin-3); stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.eskiz-mini-oda { stroke: var(--zemin-yuzey); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.eskiz-mini-oda.ton-yasam { fill: var(--eskiz-yasam); } .eskiz-mini-oda.ton-mutfak { fill: var(--eskiz-mutfak); } .eskiz-mini-oda.ton-yatak { fill: var(--eskiz-yatak); }
.eskiz-mini-oda.ton-islak { fill: var(--eskiz-islak); } .eskiz-mini-oda.ton-dolasim { fill: var(--eskiz-dolasim); } .eskiz-mini-oda.ton-depo { fill: var(--eskiz-depo); }
.eskiz-secenek-ad { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 10px; }
.eskiz-secenek-ad h3 { margin: 0; }
.eskiz-secenek-ad .sira { color: var(--metin-3); font-size: var(--boy-kucuk); font-variant-numeric: tabular-nums; }
.eskiz-olcutler { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; }
.eskiz-olcutler div { display: grid; gap: 1px; padding: 6px 8px; background: var(--zemin-yuzey); border-radius: 10px; }
.eskiz-olcutler dt { color: var(--metin-3); font-size: var(--boy-kucuk); }
.eskiz-olcutler dd { margin: 0; font-variant-numeric: tabular-nums; }
.eskiz-artieksi { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; font-size: var(--boy-not); }
.eskiz-artieksi li { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 6px; }
.eskiz-artieksi li::before { font-weight: 600; }
.eskiz-artieksi .arti::before { content: "+" / ""; color: var(--vurgu); }
.eskiz-artieksi .eksi::before { content: "−" / ""; color: var(--durum-uyari); }
.eskiz-cizilen-kabi .not { margin: 0; }
.eskiz-cizilen caption { text-align: left; font-weight: 600; padding-bottom: 6px; }
.eskiz-cizilen td small { display: block; color: var(--metin-3); font-size: var(--boy-kucuk); }
.eskiz-ogrenilenler { justify-self: stretch; }

/* ---- bulgu paftası (Ö10g): ekranda kâğıt seçimi ve düğme; blok (.bulgu-paftasi) ekranda hiç görünmez, yalnız yazdırılırken
   (data-yazdir="pafta") basılır. Ölçüler kâğıtta mm ve pt; çerçeve çizgisi outline: çerçevenin mm ölçüsünü değiştirmesin. SVG'nin
   içindeki numara, çizgi ölçek ve kuzey okunun boyları öğenin kendisinde (metre); çizgi kalınlıkları ekrandan bağımsız. */
.pafta-secimi { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pafta-secimi label { display: inline-flex; align-items: center; gap: 8px; color: var(--metin-2); font-size: var(--boy-kucuk); }
.pafta-secimi select { width: auto; }
.pafta-secimi .not { flex-basis: 100%; margin: 0; }
.bulgu-paftasi { display: none; color: var(--metin-1); font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.pafta-anteti { display: flex; align-items: baseline; gap: 4mm; height: 9mm; margin-bottom: 2mm; border-bottom: .3mm solid var(--metin-1); }
.pafta-adi { margin: 0; font-family: var(--yazi-baslik); font-weight: 700; font-size: 13pt; letter-spacing: .08em; white-space: nowrap; }
.pafta-kunyesi { flex: 1; min-width: 0; margin: 0; overflow: hidden; color: var(--metin-2); font-size: 8pt; text-align: right; white-space: nowrap; text-overflow: ellipsis; }
.pafta-cercevesi { overflow: hidden; outline: .3mm solid var(--metin-1); outline-offset: -.3mm; }
.pafta-cercevesi .bulgu-haritasi { width: 100%; height: 100%; max-height: none; overflow: hidden; }
.bulgu-paftasi .bulgu-haritasi-lejant { margin-top: 2mm; gap: 1mm 6mm; font-size: 8pt; }
.pafta-satiri { margin: 1mm 0 0; color: var(--metin-2); font-size: 7.5pt; }
.pafta-listesi { break-before: page; }
.pafta-sayfasi:not(:first-child) { break-before: page; }   /* köy başına sınır krokisinde her köyün sayfası yeni kâğıtta */
.pafta-listesi h2 { margin: 0 0 3mm; font-size: 12pt; }
.pafta-listesi .tablo-kabi { overflow: visible; }
.pafta-listesi :is(th, td) { padding: 1.2mm 3mm 1.2mm 0; font-size: 8.5pt; }   /* kâğıtta sık satır */
.pafta-listesi thead th { font-size: 7.5pt; }
.pafta-listesi tr { break-inside: avoid; }
.pafta-kurallari { margin: 3mm 0 0; padding-left: 5mm; font-size: 8pt; }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) text { font-family: var(--yazi-govde); text-anchor: middle; fill: var(--metin-1); }
.bulgu-paftasi .pafta-no { font-weight: 700; stroke: var(--zemin-yuzey); stroke-linejoin: round; paint-order: stroke; dominant-baseline: central; }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) .pafta-kuzey-yazisi { font-weight: 700; }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) .pafta-zemin { fill: var(--zemin-yuzey); fill-opacity: .9; }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) :is(.pafta-dolu, .pafta-bos) { stroke: var(--metin-1); stroke-width: .75; vector-effect: non-scaling-stroke; }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) .pafta-dolu { fill: var(--metin-1); }
:is(.bulgu-paftasi, .yer-krokileri-baski, .olcu-cizim) .pafta-bos { fill: var(--zemin-yuzey); }
:is(.bulgu-haritasi, .kroki-cizimi, .olcu-cizim) .pafta-ok { fill: var(--metin-1); stroke: var(--zemin-yuzey); stroke-width: 1; vector-effect: non-scaling-stroke; }   /* krokide çizim metre biriminde: çizgi ölçekle büyümesin */

/* ---- Kübaj (14b): devreden değerler açılır ayrıntıda; rapor tablolu metindir, satırları bölünmez (kutunun içinde yana kayar); çıktılar düğme dizisi */
.kubaj-devreden { justify-self: stretch; }
.kubaj-rapor { white-space: pre; overflow-wrap: normal; overflow-x: auto; max-height: 32rem; }
.kubaj-dosyalar { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

/* ---- Kesinti Oranı (14c): kesinti kuralının dosyaları ve seçenekleri, tutarlılık satırları ve içe aktarma dosyaları açılır ayrıntıda; çıktılar düğme dizisi */
.kesinti-kural, .kesinti-ayrinti, .kesinti-parseller, .kesinti-okpo, .kesinti-etiket { justify-self: stretch; }
.kesinti-okpo h4, .kesinti-etiket h4 { margin: 12px 0 0; }   /* OKPO hesabının iki tablosunun, etiket sorunlarının gruplarının başlığı */
.kesinti-kural .dugme, #kubaj-kanal-ktb-kaldir { justify-self: start; }   /* [kaldır] düğmeleri dosya seçicinin altında, kendi eninde */
.kesinti-dosyalar { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
/* Oran karoları: her oran kendi satırında, dokuz hane bölünmeden; altında yüzde ve üst sınır, en altta nasıl hesaplandığı */
.sayim.kesinti-sayim .sayac { grid-column: 1 / -1; }
.sayim.kesinti-sayim .sayac .sayi { font-size: clamp(1.5rem, 7vw, 2rem); overflow-wrap: normal; }
#kesinti-sonuc, #kubaj-kse-sonuc, #kubaj-alim-sonuc, #kubaj-kanal-sonuc { scroll-margin: 12px 0 28px; }   /* görünür alana kaydırılınca ilerleme satırı kenara yapışmasın (sonucGorunsun) */
.kesinti-oran-durumu { margin-top: 4px; font-weight: 600; }
.kesinti-oran-durumu.asildi { color: var(--durum-sil); }   /* üst sınır aşıldı ya da oran 0 ile 1 dışında: olağan sonuçla aynı görünmesin */
.kesinti-oran-aciklama { color: var(--metin-3); font-size: var(--boy-kucuk); }
/* Tablolar: tanım sütunu dar ekranda sıkışmaz (tablo kendi kabında kayar), sayılar bölünmez; tutarlılık tablosunun son sütunu nottur */
.kesinti-tablosu tbody th { min-width: 14rem; font-weight: 400; }
.kesinti-tablosu td { white-space: nowrap; }
.kesinti-bloklar tbody th, .kesinti-parsel tbody th, .kesinti-etiket-satirlari tbody th { min-width: 0; }   /* ilk sütun blok ya da obje numarasıdır, tanım değil */
.kesinti-notlu td:last-child { white-space: normal; min-width: 14rem; }
.kesinti-etiket-satirlari thead th { white-space: nowrap; }   /* dar ekranda «Ad ya da yazı» dar sütunda dört satıra kırılıyordu; tablo kendi kabında kayar */

/* ---- Mühür (16): ilk cümle her zaman üstte; paket dosyaları liste, çıktılar düğme dizisi; QR dar ekranda da bütün; föy ve damga verisi kayan metin.
   Onay rengi yok: geçti/geçmedi yalnız sözle (ONAY MÜHRÜ v1 iç kontrol damgasıdır, resmî onay değildir) */
.muhur-ilk { font-weight: 600; }
.muhur-dosyalar { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.muhur-dosya { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.muhur-dosya .dosya-adi { overflow-wrap: anywhere; }
.muhur-durum { font-weight: 600; }
.muhur-dugmeler { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.muhur-qr-kabi { margin: 0; display: grid; gap: 6px; justify-items: start; }
.muhur-qr { width: min(100%, 16rem); height: auto; background: #fff; }
.muhur-adres, .muhur-foy { font-family: var(--yazi-sayi); font-size: var(--boy-kucuk); overflow-wrap: anywhere; }
.muhur-foy { white-space: pre-wrap; overflow-x: auto; max-height: 32rem; margin: 0; }
#muhur-sonuc { scroll-margin: 12px 0 28px; }
/* ---- yer kartları (Yer Teslimi): ekranda görünmez, yalnız yazdırılırken (data-yazdir="kart") basılır; her kart bir A6 sayfası */
.yer-kartlari-baski { display: none; color: var(--metin-1); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.yer-karti { display: grid; gap: 3mm; justify-items: start; break-after: page; font-size: 10pt; }
.yer-karti:last-child { break-after: auto; }
.yer-karti h2 { margin: 0; font-family: var(--yazi-baslik); font-size: 16pt; }
.yer-karti p { margin: 0; }
.yer-karti .muhur-qr { width: 55mm; }
.yer-karti-notu { color: var(--metin-2); font-size: 8pt; }

/* ---- imalat föyü (İmalat Fotoğrafları): ekranda görünmez, yalnız yazdırılırken (data-yazdir="foy") basılır; her ay bir ya da birkaç A4 sayfası,
   sayfada en çok 6 kutu (2 × 3): küçük resim, tarih, boş açıklama satırı */
.imalat-foy-secimi { display: grid; gap: 8px; justify-items: start; }   /* ekranda: not, düğme ve hazırlık satırı */
.imalat-foy-secimi p { margin: 0; }
.imalat-foy-durum:empty { display: none; }
.imalat-foy-baski { display: none; color: var(--metin-1); font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.imalat-foy-sayfa { break-after: page; }
.imalat-foy-sayfa:last-child { break-after: auto; }
.imalat-foy-sayfa h2 { margin: 0 0 3mm; font-family: var(--yazi-baslik); font-size: 13pt; }
.imalat-foy-izgara { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm; }
.imalat-foy-kutu { display: grid; grid-template-rows: 60mm auto auto; gap: 1.5mm; margin: 0; break-inside: avoid; }
.imalat-foy-kutu canvas { width: 100%; height: 60mm; object-fit: contain; }
.imalat-cizilemedi { display: grid; place-items: center; height: 60mm; border: .3mm dashed var(--metin-2); color: var(--metin-2); }
.imalat-foy-kutu figcaption { font-weight: 600; }
.imalat-aciklama { margin: 0; padding-bottom: 6mm; border-bottom: .2mm dotted var(--metin-2); }   /* elle yazılacak satır */
.imalat-foy-notu { margin: 3mm 0 0; color: var(--metin-2); font-size: 8pt; }

/* ---- alt bilgi */
.alt { color: var(--metin-3); font-size: var(--boy-kucuk); }

/* ---- krokiler (Yer Teslimi): ekranda görünmez, yalnız yazdırılırken (data-yazdir="kroki") basılır; her parsel bir A5 sayfası. Antet, çerçeve ve
   satırlar paftanın sınıflarıyla; çizgi ölçek ve kuzey okunun biçemi paftanınkiyle ortak (aşağıda «bulgu paftası») */
.yer-kroki-secimi { display: grid; gap: 8px; justify-items: start; }   /* ekranda: not ve düğme */
.yer-kroki-secimi .not { margin: 0; }
.yer-krokileri-baski { display: none; color: var(--metin-1); font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.yer-krokisi { break-after: page; }
.yer-krokisi:last-child { break-after: auto; }
.yer-krokisi h2 { margin: 0 0 1mm; font-family: var(--yazi-baslik); font-size: 14pt; }
.yer-krokisi > p { margin: 0 0 2mm; }
.yer-krokisi .kroki-cizimi { display: block; width: 100%; height: 100%; }
.kroki-parsel { fill: none; stroke: var(--metin-1); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.yer-krokisi .kroki-uyari { margin: 2mm 0 0; font-size: 8.5pt; }   /* elle yazılacak satırlardan önce, gövde renginde */
.yer-krokisi .kroki-elle { display: inline-block; width: 47%; margin: 4mm 0 0; padding-bottom: 5mm; border-bottom: .2mm dotted var(--metin-2); vertical-align: top; }   /* elle yazılacak satır; iki satır yan yana (kenar listesine yer) */
.yer-krokisi .kroki-elle + .kroki-elle { margin-left: 6%; }
.yer-krokisi .kroki-kenar-listesi { columns: 4; column-gap: 3mm; margin: 1mm 0 2mm; color: var(--metin-2); font-size: 7.5pt; line-height: 1.3; }   /* kenar listesi: dört sütunlu akış */
.kroki-kenar-listesi p { margin: 0; break-inside: avoid; font-variant-numeric: tabular-nums; }
.kroki-kenar-listesi .kroki-kenar-basligi { column-span: all; margin-bottom: .5mm; }
.yer-krokileri-baski .kroki-kose { font-weight: 700; }   /* köşe numarası: kenar uzunluğundan ayrılsın */
.yer-krokileri-baski :is(.kroki-kenar, .kroki-kose) { dominant-baseline: central; stroke: var(--zemin-yuzey); stroke-width: 3; stroke-linejoin: round; paint-order: stroke; vector-effect: non-scaling-stroke; }

/* ---- yazdırma. Araç açıkken kâğıda araç basılır; gövdede data-yazdir="ncz" varken ("Raporu yazdır") Çizim Özeti'nin dört alanı
   birlikte basılır, giriş alanları ve düğmeler çıkmaz. Öteki araçların sonuçları (müşterinin kendi metni de) kâğıda çıkmaz. */
.rapor-kunye, .rapor-not { display: none; color: var(--metin-2); font-size: var(--boy-not); }
@media print {
  body, body[data-acik] { overflow: visible; }
  .rihtim, .geri, .tutamak, .sekmeler, .bos, .arac-ara, .karsilik { display: none !important; }   /* .karsilik: Netcad karşılığı ekranındır */
  .ekran-ust .durum, .ekran-ust .rozetler { justify-self: start; }   /* geri düğmesi çıkınca rozet geniş sütuna düşer: yayılmasın */
  .ekran-alt-ad { grid-column: 2; }   /* geri düğmesi çıkınca başlık 2. sütunda */
  [data-acik] .masa { display: none; }
  .ekran { position: static; overflow: visible; }
  .ekran-ic { height: auto; max-width: none; }
  .arac { display: block; height: auto; }
  .govde { overflow: visible; }
  [data-yazdir="ncz"] #arac-ncz .govde { display: grid !important; }
  [data-yazdir="ncz"] .alanlar, [data-yazdir="ncz"] .dugme { display: none; }
  [data-yazdir="ncz"] .rapor-kunye, [data-yazdir="ncz"] .rapor-not { display: block; }
  /* rapor taslağı: metin kutusunun yerine metni (kutu kâğıtta kesilir); düğmeler çıkmaz; her sayfada filigran */
  #arac-rapor .rapor-dugmeleri, #arac-rapor textarea.elle, #arac-rapor .elle-etiket, #arac-rapor .elle-hata { display: none; }
  #arac-rapor .elle-baski { display: block; }
  /* eskiz: plan tek renk; düğmeler ve yakınlaştırma çıkmaz, beyan kalır */
  #arac-eskiz :is(.harita-dugmeleri, .eskiz-dugmeleri button) { display: none; }
  #arac-eskiz :is(.eskiz-sunum, .eskiz-renk-notu, .eskiz-oda-bilgi, .eskiz-komut) { display: none; }   /* E2-3: yalnız ekranda */
  #arac-eskiz .eskiz-plani [data-renk] { color: var(--metin-1); }
  #arac-rapor .elle-gerekli:empty::before { content: "(doldurulmadı)"; color: var(--metin-3); }   /* ölçülmeyen başlıkta; indirilen dosyadaki gibi */
  #arac-rapor .taslak-filigran { display: block; position: fixed; top: 40%; left: 0; right: 0; margin: 0; text-align: center; font-size: 6rem; font-weight: 700; color: var(--durum-sil); opacity: .12; transform: rotate(-30deg); }
  [data-yazdir="ncz"] .rapor-kunye::before { content: "KAKDO"; display: block; color: var(--metin-1); font-family: var(--yazi-baslik); font-weight: 700; font-size: 1.5rem; letter-spacing: .14em; }
  /* bulgu paftası (Ö10g): gövdenin öteki çocukları basılmaz */
  [data-yazdir="pafta"] > :not(.bulgu-paftasi) { display: none !important; }
  [data-yazdir="pafta"] > .bulgu-paftasi { display: block; }
  /* yer kartları: gövdenin öteki çocukları basılmaz */
  [data-yazdir="kart"] > :not(.yer-kartlari-baski) { display: none !important; }
  [data-yazdir="kart"] > .yer-kartlari-baski { display: block; }
  /* krokiler: gövdenin öteki çocukları basılmaz */
  [data-yazdir="kroki"] > :not(.yer-krokileri-baski) { display: none !important; }
  [data-yazdir="kroki"] > .yer-krokileri-baski { display: block; }
  /* imalat föyü: gövdenin öteki çocukları basılmaz */
  [data-yazdir="foy"] > :not(.imalat-foy-baski) { display: none !important; }
  [data-yazdir="foy"] > .imalat-foy-baski { display: block; }
  /* röleve ölçü krokileri: gövdenin öteki çocukları basılmaz */
  [data-yazdir="olcukroki"] > :not(.olcu-krokileri-baski) { display: none !important; }
  [data-yazdir="olcukroki"] > .olcu-krokileri-baski { display: block; }
  /* Saha Maketi'nin baskı föyü: araç ekranından yalnız föy (giriş, ayarlar, önizleme, parça tablosu ve düğmeler çıkmaz) */
  [data-yazdir="maket"] #arac-maket .govde > :not(#maket-sonuc), [data-yazdir="maket"] #maket-sonuc > :not(.maket-foy), [data-yazdir="maket"] .maket-foy .dugme { display: none !important; }
}
/* Saha Maketi (29.10.2026): 3B önizleme (tuval kabın boyunda; parmak yatayda döndürür, dikeyde sayfayı kaydırır), ayarlar, föyün parça haritası */
.maket-sahne { height: clamp(240px, 45vh, 420px); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); background: var(--sahne-ufuk); overflow: hidden; }
.maket-sahne canvas { display: block; width: 100%; height: 100%; }
.maket-ayarlar > .alanlar { margin-top: 12px; }
.maket-tabakalar { display: grid; gap: 8px; margin: 0; padding: 12px; border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.maket-foy { display: grid; gap: 12px; }
.maket-harita { width: 100%; max-width: 28rem; height: auto; }
.maket-harita path { fill: var(--ton-a); stroke: var(--harita-hat); stroke-width: 1; vector-effect: non-scaling-stroke; }
.maket-harita text { fill: var(--harita-yazi); font-family: var(--yazi-sayi); text-anchor: middle; dominant-baseline: central; }

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; }
}
/* Kendi YZ'nle bağlan (Ö2): pencere, bağlantı yolları, «YZ'ye ne gitti» kaydı; Eskiz'de bağlantısız (kopyala-yapıştır) kabı */
.yz-pencere { width: min(36rem, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; padding: 20px; border: 1px solid var(--cizgi-ince); border-radius: 12px; background: var(--zemin-pafta); color: var(--metin-1); box-shadow: var(--golge-pencere); }
.yz-pencere[open] { display: grid; gap: 14px; }
.yz-pencere::backdrop { background: color-mix(in srgb, var(--metin-1) 45%, transparent); }
.yz-pencere h2, .yz-pencere p { margin: 0; }
.yz-yol { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--cizgi-ince); }
.yz-yol input[type="password"] { flex: 1 1 12rem; min-width: 0; }
.yz-durum:empty { display: none; }
.yz-giden-liste { display: grid; gap: 10px; margin: 0; padding-left: 1.25rem; }
.yz-giden-liste pre { margin: 4px 0 0; max-height: 12rem; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .8125rem; }
.baglanti-dugmesi { font: inherit; color: var(--vurgu); background: none; border: 0; padding: 0; min-height: var(--hedef); text-decoration: underline; cursor: pointer; }
.eskiz-yz-bagsiz { display: grid; gap: 12px; }
.eskiz-yz-bagsiz[hidden] { display: none; }
/* zorunlu renkler: belirteçler sistem renklerine bağlanır (DESIGN.md) */
@media (forced-colors: active) {
  :root { --zemin-pafta: Canvas; --vurgu: Highlight; }
}
/* Eskiz › Çizim denetimi önizlemesi (26.10.2026): okunan odalar karşılaştırmanın renginde; sınıflar kat-cizim'in içinde (öteki haritalara sızmaz) */
.kat-cizim { width: 100%; height: auto; max-height: 360px; background: var(--zemin-pafta); border: 1px solid var(--cizgi-ince); border-radius: var(--kose-dugme); }
.kat-cizim path { stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.kat-cizim .obje { fill: none; stroke: var(--harita-hat); stroke-width: 1; }
.kat-cizim .alti { fill: var(--durum-sil-zemin); stroke: var(--durum-sil); }
.kat-cizim .olculmedi { fill: var(--durum-uyari-zemin); stroke: var(--durum-uyari); }
.kat-cizim .tutuyor { fill: var(--vurgu-zemin); stroke: var(--harita-hat); }
.kat-cizim .oda-adi { fill: var(--harita-yazi); font-family: var(--yazi-sayi); text-anchor: middle; }
