/* motorlar.css — soru-düzeyi etkileşim motorları (A.5.2). Renk/ölçü TOKEN'dan (hardcode YOK).
   Hata-güvenli amber (var(--amber)); kırmızı/mercan YOK. Sıfır dış istek. */

.motor { margin: .5rem 0 1rem; }

/* Kutular (bırakma alanı) */
.motor-kutular {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
  margin-bottom: var(--bosluk);
}
/* surukle_ayir: TIKLA-SEÇ-YERLEŞTİR yönergesi + "hepsi yerleşti" ipucu (dokunmatik dostu) */
.motor-surukle-yonerge { color: var(--metin-soluk); font-size: var(--punto-kucuk); margin-bottom: var(--bosluk); }
.motor-havuz-bos { color: var(--metin-soluk); font-size: var(--punto-kucuk); }
.motor-kutu {
  flex: 1 1 160px;
  border: 2px dashed var(--metin-soluk);
  border-radius: var(--radius);
  background: var(--kart);
  padding: .5rem;
  cursor: pointer;                 /* TÜM kutu tıklanabilir (seçili çipi yerleştirir) */
  transition: border-color .15s ease, background .15s ease;
}
.motor-kutu-bas {
  display: block;
  width: 100%;
  min-height: var(--dokunma-min);
  border: 0;
  border-radius: calc(var(--radius) - 4px);
  background: var(--bal-acik);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-kutu-yuva {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  min-height: var(--dokunma-min);
  padding-top: .4rem;
}

/* Havuz (sürüklenebilir/dokunulabilir çipler) */
.motor-havuz {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  min-height: var(--dokunma-min);
  margin-bottom: var(--bosluk);
}
.motor-cip {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  padding: 0;
  border: 2px solid var(--bal);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-cip:disabled { cursor: default; }

/* Havuz başlık butonu — kutu başlığıyla simetrik, klavye erişimli tap hedefi */
.motor-havuz-bas {
  min-height: var(--dokunma-min);
  padding: 0 1rem;
  border: 0;
  border-radius: calc(var(--radius) - 4px);
  background: var(--bal-acik);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-kucuk);
  cursor: pointer;
}

/* Seçili çip — nötr/ipucu vurgusu (mor; amber DEĞİL, kırmızı DEĞİL) */
.motor-cip.motor-secili {
  outline: 3px solid var(--yardimci-mor);
  outline-offset: 2px;
  background: var(--yardimci-acik);
}

/* Doğru yerleştirme — yeşil onay */
.motor-cip.motor-dogru {
  border-color: var(--yesil);
  background: var(--yesil);
  color: #fff;
}

/* Yanlış yerleştirme — anlık AMBER geri bildirim (asla kırmızı/coral) */
.motor-amber {
  animation: motor-amber-yanip .6s ease;
}
@keyframes motor-amber-yanip {
  0%, 100% { border-color: var(--bal); background: var(--kart); }
  30%, 70% { border-color: var(--amber); background: var(--amber-acik); }
}
.motor-kutu.motor-amber {
  border-color: var(--amber);
  background: var(--amber-acik);
}

.motor-kontrol { margin-top: .25rem; }

/* ── denetim_listesi (A.5.1.2) ───────────────────────────────────────────── */
.motor-capa { font-family: var(--font-baslik); font-weight: 600; margin-bottom: .25rem; }
.motor-yonerge { color: var(--metin-soluk); margin-bottom: .75rem; }
.motor-iddialar { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .6rem; }
.motor-iddia {
  border: 2px solid var(--bal-acik);
  border-radius: var(--radius);
  background: var(--kart);
  padding: .65rem .8rem;
}
.motor-iddia-metin { margin-bottom: .5rem; }
.motor-iddia-yargi { display: flex; flex-wrap: wrap; gap: .5rem; }
.motor-yargi-btn, .motor-sec-btn {
  min-height: var(--dokunma-min);
  padding: 0 1rem;
  border: 2px solid var(--bal);
  border-radius: calc(var(--radius) - 4px);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-kucuk);
  cursor: pointer;
}
.motor-yargi-btn:disabled, .motor-sec-btn:disabled { cursor: default; }

/* Commit ÖNCESİ seçim vurgusu — NÖTR/marka (coral); AMBER DEĞİL */
.motor-yargi-btn.motor-secili, .motor-sec-btn.motor-secili {
  border-color: var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
}

/* Commit SONRASI iddia geri bildirimi (statik — reduced-motion güvenli) */
.motor-iddia.motor-amber { border-color: var(--amber); background: var(--amber-acik); }
.motor-iddia.motor-dogru { border-color: var(--yesil); background: #F1FAF4; }
.motor-iddia-durum { display: inline-block; margin-top: .4rem; font-size: var(--punto-kucuk); color: var(--metin-soluk); }
.motor-iddia-aciklama { margin-top: .4rem; color: var(--metin); }

/* ── esit_dagit (A.5.1.3) — render-only manipülatif (ungraded; MC çekirdeği görünür kalır) ─── */
.motor-esit-dagit { margin-bottom: 1rem; }
.motor-ed-kontrol { display: flex; align-items: center; gap: .6rem; margin-bottom: .6rem; }
.motor-ed-btn {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  padding: 0 .9rem;
  border: 2px solid var(--bal);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-ed-btn:disabled { opacity: .5; cursor: default; }
.motor-ed-etiket { font-family: var(--font-baslik); font-weight: 600; }
.motor-ed-sahne { display: flex; flex-wrap: wrap; gap: var(--bosluk); margin-bottom: .5rem; }
.motor-ed-grup {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  padding: .5rem;
  border: 2px solid var(--bal-acik);
  border-radius: var(--radius);
  background: var(--kart);
}
/* kalan kutusu — nötr (kesik kenar); kalan HATA DEĞİL (A6 nötr eylem), amber DEĞİL */
.motor-ed-grup.motor-ed-kalan {
  border-style: dashed;
  border-color: var(--metin-soluk);
  background: transparent;
}
.motor-ed-birim {
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: var(--coral);             /* marka vurgusu (nötr birim) */
}
.motor-ed-kalan .motor-ed-birim { background: var(--metin-soluk); }
.motor-ed-durum { font-size: var(--punto-kucuk); color: var(--metin-soluk); }
/* "yetmez" — yumuşak amber MEKANİK sınır ipucu (teşhis DEĞİL; kırmızı/coral YOK) */
.motor-ed-durum.motor-ed-yetmez {
  color: var(--metin);
  background: var(--amber-acik);
  border-left: 3px solid var(--amber);
  padding: .4rem .6rem;
  border-radius: calc(var(--radius) - 6px);
  font-weight: 600;
}

/* ── kat_sayac (A.5.1.4) — render-only commit-gated; MC çekirdeği görünür kalır ─────── */
.motor-kat-sayac { margin-bottom: 1rem; }
.motor-ks-sahne { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .5rem; }
/* merdiven: katlar yukarı-tırmanan basamak hissi; zaman_cizgisi: yatay sıra; rozet: yumuşak çipler */
.motor-ks-merdiven .motor-ks-sahne { align-items: flex-end; }
.motor-ks-rozet .motor-ks-kat { border-radius: 999px; }
.motor-ks-kat {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 .7rem;
  border: 2px solid var(--bal-acik);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-kucuk);
}
.motor-ks-merdiven .motor-ks-kat:nth-child(2) { margin-bottom: .3rem; }
.motor-ks-merdiven .motor-ks-kat:nth-child(3) { margin-bottom: .6rem; }
.motor-ks-merdiven .motor-ks-kat:nth-child(n+4) { margin-bottom: .9rem; }
/* eşiği geçen ilk kat / pencere içi sayı vurgusu — marka (coral); AMBER/kırmızı DEĞİL */
.motor-ks-vurgu {
  border-color: var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
  font-weight: 600;
}
/* pencere/eşik dışı kat — yumuşak SOLUK MEKANİK sınır (teşhis DEĞİL; kırmızı YOK) */
.motor-ks-soluk {
  opacity: .45;
  border-style: dashed;
  border-color: var(--metin-soluk);
}
.motor-ks-durum { font-size: var(--punto-kucuk); color: var(--metin-soluk); }
.motor-ks-sayi {
  display: inline-block;
  min-width: 1.6rem;
  padding: 0 .4rem;
  border-radius: var(--radius);
  background: var(--coral-acik);
  color: var(--coral-koyu);
  font-family: var(--font-baslik);
  font-weight: 700;
  text-align: center;
}

/* ── merdiven (A.5.1.1) — etkilesimli/MC-yok motor (sunucu-puanlamalı) ──────────────── */
.motor-merdiven { margin-bottom: 1rem; }
.motor-mrd-izgara {
  display: grid;   /* eşit sütunlar: 1–9 ile 10–64 aynı genişlikte, satırlar düzenli (Tur 10 teknik) */
  grid-template-columns: repeat(auto-fill, minmax(3.25rem, 1fr));
  gap: .5rem;
  margin-bottom: var(--bosluk);
}
.motor-mrd-hucre {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  padding: 0 .9rem;
  border: 2px solid var(--bal);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-mrd-hucre:disabled { cursor: default; }
/* bulunan çarpan — yeşil onay (doğru eylem) */
.motor-mrd-hucre.motor-mrd-bulundu {
  border-color: var(--yesil);
  background: var(--yesil);
  color: #fff;
}
/* bulunan ikililerin merdiven basamakları (min × max = hedef) */
.motor-mrd-basamaklar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .3rem;
  margin-bottom: .6rem;
}
.motor-mrd-basamak {
  padding: .3rem .7rem;
  border-left: 3px solid var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
  border-radius: calc(var(--radius) - 6px);
  font-family: var(--font-baslik);
  font-size: var(--punto-kucuk);
}
.motor-mrd-bitir { margin-top: .25rem; }

/* merdiven VARYANT (Kova-3) — aday havuzlu çoklu-seçim çipleri (liste indeks | 0-9 rakam) */
.motor-mrd-varyant .motor-mrd-havuz {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: var(--bosluk);
}
.motor-mrd-sablon {
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  margin-bottom: .6rem;
  letter-spacing: 1px;
}
.motor-mrd-bilinmeyen { color: var(--coral-koyu); font-weight: 700; }
.motor-mrd-cip {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  padding: 0 .9rem;
  border: 2px solid var(--bal);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-mrd-cip:disabled { cursor: default; }
/* seçili çip — nötr/marka (mercan); doğruluk commit'e kadar GÖSTERİLMEZ */
.motor-mrd-cip.secili {
  border-color: var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
}

/* ── dogru_alet_sec (A.5.1.5 yolu) — etkilesimli/MC-yok (commit_sonrasi_toplu) ───────── */
.motor-alet-sec { margin-bottom: 1rem; }
.motor-alet-ipucu { color: var(--metin-soluk); margin-bottom: .6rem; font-size: var(--punto-kucuk); }
.motor-alet-senaryolar { display: flex; flex-direction: column; gap: .6rem; }
.motor-alet-senaryo {
  border: 2px solid var(--bal-acik);
  border-radius: var(--radius);
  background: var(--kart);
  padding: .65rem .8rem;
}
.motor-alet-metin { margin-bottom: .5rem; }
.motor-alet-secimler { display: flex; flex-wrap: wrap; gap: .5rem; }
.motor-alet-btn {
  min-height: var(--dokunma-min);
  padding: 0 1.1rem;
  border: 2px solid var(--bal);
  border-radius: calc(var(--radius) - 4px);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-kucuk);
  cursor: pointer;
}
.motor-alet-btn:disabled { cursor: default; }
/* commit ÖNCESİ seçim — nötr/marka (coral); doğruluk YOK */
.motor-alet-btn.motor-alet-secili {
  border-color: var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
}
/* commit SONRASI toplu açılış (statik) */
.motor-alet-senaryo.motor-alet-dogru { border-color: var(--yesil); background: #F1FAF4; }
.motor-alet-senaryo.motor-amber { border-color: var(--amber); background: var(--amber-acik); }
.motor-alet-aciklama { margin-top: .45rem; font-size: var(--punto-kucuk); color: var(--metin); }
.motor-alet-sayac { margin: .5rem 0; font-size: var(--punto-kucuk); color: var(--metin-soluk); }
.motor-alet-kapanis {
  margin-top: .6rem;
  padding: .4rem .7rem;
  border-left: 3px solid var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
  border-radius: calc(var(--radius) - 6px);
  font-weight: 600;
}

/* ── iki_katli (A.5.1.7) — MC-çekirdek + commit-gated 2. kat ─────────────────────────── */
.motor-iki-katli { margin-top: .75rem; padding-top: .6rem; border-top: 2px dashed var(--bal-acik); }
.motor-ik-soru { font-family: var(--font-baslik); font-weight: 600; margin-bottom: .5rem; }
.motor-ik-secenekler { display: flex; flex-direction: column; gap: .5rem; }
.motor-ik-btn {
  display: block;
  width: 100%;
  text-align: left;
  min-height: var(--dokunma-min);
  padding: .55rem .8rem;
  border: 2px solid var(--bal);
  border-radius: calc(var(--radius) - 4px);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-govde);
  font-size: var(--punto-kucuk);
  cursor: pointer;
}
.motor-ik-btn:disabled { cursor: default; }
.motor-ik-btn.motor-ik-dogru { border-color: var(--yesil); background: #F1FAF4; }
.motor-ik-btn.motor-amber { border-color: var(--amber); background: var(--amber-acik); }
.motor-ik-fb { margin-top: .5rem; font-size: var(--punto-kucuk); }
.motor-ik-fb.dogru { color: var(--metin); }
.motor-ik-fb.amber { color: var(--metin); }
.motor-ik-kapanis {
  margin-top: .5rem;
  padding: .4rem .7rem;
  border-left: 3px solid var(--coral);
  background: var(--coral-acik);
  color: var(--coral-koyu);
  border-radius: calc(var(--radius) - 6px);
  font-weight: 600;
}

/* ── kural_mercek (adım-keşif, TEŞHİSSİZ) — rakam kartları + bölen çipleri ──────────── */
.mercek { margin: 1rem 0 .5rem; }
.mercek-sayi {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .18rem;
  font-family: var(--font-baslik);
  font-size: 1.6rem;
  margin-bottom: .6rem;
}
.mercek-rakam {
  padding: .1rem .35rem;
  border-radius: calc(var(--radius) - 6px);
  transition: opacity .18s ease, background .18s ease, color .18s ease;
}
.mercek-ayrac { color: var(--metin-soluk); }
/* vurgulu hane — mercan (doğru/yanlış DEĞİL, "buraya bak") */
.mercek-rakam.hi { background: var(--coral-acik); color: var(--coral-koyu); }
/* ilgisiz hane — soluk (dikkat dağıtmaz); kırmızı YOK */
.mercek-rakam.dim { opacity: .35; }
.mercek-toplam {
  font-family: var(--font-baslik);
  color: var(--coral-koyu);
  margin-bottom: .5rem;
}
.mercek-cipler { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .6rem; }
.mercek-cip {
  min-width: var(--dokunma-min);
  min-height: var(--dokunma-min);
  padding: 0 .9rem;
  border: 2px solid var(--bal);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-baslik);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.mercek-cip.secili { border-color: var(--coral); background: var(--coral-acik); color: var(--coral-koyu); }
.mercek-hukum {
  padding: .5rem .8rem;
  border-left: 3px solid var(--coral);
  background: var(--coral-acik);
  border-radius: calc(var(--radius) - 6px);
}
.mercek-etiket { font-family: var(--font-baslik); color: var(--coral-koyu); margin-right: .4rem; }
.mercek-etiket:empty { margin-right: 0; }
.mercek-metin { color: var(--metin); }

/* === tahmin (adım): önce sen seç — doğru/yanlış rengi YOK, seçilen yalnız vurgulanır === */
.motor-tahmin-yonerge { color: var(--metin-soluk); font-size: var(--punto-kucuk); margin: 0 0 .5rem; }
.motor-tahmin-secenekler { display: flex; flex-direction: column; gap: .5rem; margin-bottom: var(--bosluk); }
.motor-tahmin-secenek {
  min-height: var(--dokunma-min);
  padding: .6rem 1rem;
  text-align: left;
  border: 2px solid var(--yardimci-mor);
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--metin);
  font-family: var(--font-govde);
  font-size: var(--punto-govde);
  cursor: pointer;
}
.motor-tahmin-secenek:disabled { cursor: default; opacity: .75; }
.motor-tahmin-secenek.motor-tahmin-secili { opacity: 1; background: var(--yardimci-acik); border-width: 3px; }
.motor-tahmin-karsilik {
  padding: .75rem 1rem;
  border-left: 4px solid var(--yardimci-mor);
  background: var(--yardimci-acik);
  border-radius: calc(var(--radius) - 6px);
  margin-bottom: .5rem;
}
.motor-tahmin-digerleri summary { cursor: pointer; color: var(--yardimci-mor); font-family: var(--font-baslik); }

/* === fırın keşfi (adım): motor ÖLÇER, hüküm yazmaz — nötr/sıcak renkler === */
.motor-firin-yonerge { color: var(--metin-soluk); font-size: var(--punto-kucuk); margin: 0 0 .5rem; }
.firin-cizim { display: block; width: 100%; max-width: 420px; margin: 0 auto .75rem; }
.fc-govde { fill: var(--nesne-tas); stroke: var(--nesne-tas-koyu); stroke-width: 3; }
.fc-yuva { fill: var(--nesne-tas-acik); stroke: var(--nesne-tas-koyu); stroke-width: 2; }
.fc-pencere { fill: var(--nesne-komur); opacity: .85; }
.fc-ates { opacity: 0; transition: opacity .3s; }
.firin-cizim.yaniyor .fc-ates { opacity: 1; animation: firin-titre .5s ease-in-out infinite alternate; transform-origin: 175px 100px; }
@keyframes firin-titre { from { transform: scaleY(.9); } to { transform: scaleY(1.08); } }
.fc-alev { fill: var(--nesne-ates); stroke: var(--nesne-ates-ic); stroke-width: 2; }
.fc-ok { fill: none; stroke: var(--metin-soluk); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fc-sayi { font-family: var(--font-baslik); font-size: 18px; font-weight: 600; fill: var(--metin); }
.fc-etiket { font-family: var(--font-govde); font-size: 13px; fill: var(--metin); }
.fs-metal { fill: var(--nesne-tas-acik); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.fs-lav { fill: var(--nesne-ates); }
.fs-sap { fill: none; stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.fs-yosun { fill: var(--nesne-yosun); }
.fs-cizgi { fill: none; stroke: var(--nesne-komur); stroke-width: 1; opacity: .35; }
.fs-blaze { fill: var(--bal); stroke: var(--nesne-ates); stroke-width: 1.5; }
.fs-komur { fill: var(--nesne-komur); }
.fs-parilti { fill: none; stroke: var(--nesne-tas-acik); stroke-width: 1.5; stroke-linecap: round; }
.fs-tahta { fill: var(--nesne-tahta); }
.fs-tas { fill: var(--nesne-tas); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.fs-cevher { fill: var(--nesne-cevher); }
.fs-kulce { fill: var(--nesne-kulce); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.motor-firin-yakitlar { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .5rem; margin-bottom: .75rem; }
.motor-firin-yakit {
  display: flex; align-items: center; gap: .5rem; min-height: var(--dokunma-min); padding: .4rem .6rem;
  background: var(--kart); border: 2px solid var(--bal); border-radius: var(--radius);
  font-family: var(--font-govde); font-size: var(--punto-kucuk); color: var(--metin); text-align: left; cursor: pointer;
}
.motor-firin-yakit-simge { flex: 0 0 auto; width: 2.2rem; height: 2.2rem; }
.motor-firin-yakit-alt { display: block; font-size: .85em; color: var(--metin-soluk); }
.motor-firin-yakit.motor-firin-secili { background: var(--bal-acik); border-width: 3px; }
.motor-firin-esya { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: .75rem; }
.motor-firin-sabit { font-family: var(--font-baslik); margin: 0 0 .75rem; }
.motor-firin-etiket { font-family: var(--font-baslik); }
.motor-firin-adim {
  min-width: var(--dokunma-min); min-height: var(--dokunma-min); border: 2px solid var(--bal); border-radius: var(--radius);
  background: var(--kart); font-size: 1.25rem; cursor: pointer;
}
.motor-firin-sayi { min-width: 2.5ch; text-align: center; font-family: var(--font-baslik); font-size: 1.5rem; }
.motor-firin-kaydir { flex: 1 1 10rem; min-width: 8rem; accent-color: var(--coral); }
.motor-firin-yak { margin-bottom: .75rem; }
.motor-firin-olcum { min-height: 1.6em; margin-bottom: .5rem; }
.motor-firin-bosa { color: var(--coral-koyu); }
.firin-serit { display: block; width: 100%; margin: 0 0 .75rem; }
.fsr-kutu { fill: var(--kart); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.fsr-dolu { fill: var(--nesne-demir); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.fsr-bosa { fill: var(--amber-acik); stroke: var(--nesne-ates); stroke-width: 1.5; stroke-dasharray: 4 3; }
.fsr-sinir { stroke: var(--metin); stroke-width: 2; stroke-dasharray: 5 4; }
.fsr-ozet { font-family: var(--font-baslik); font-size: 16px; font-weight: 600; fill: var(--metin); }
.motor-firin-tablo { border-collapse: collapse; width: 100%; font-size: var(--punto-kucuk); }
.motor-firin-tablo th, .motor-firin-tablo td { border-bottom: 1px solid var(--bal-acik); padding: .35rem .5rem; text-align: left; }
.motor-firin-tablo th { font-family: var(--font-baslik); color: var(--metin-soluk); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .firin-cizim.yaniyor .fc-ates { animation: none; } .fc-ates { transition: none; } }

/* Hareket azaltma: anlık amber yanıp-sönme (surukle çipleri) + mercek geçişleri kapatılır */
@media (prefers-reduced-motion: reduce) {
  .motor-amber { animation: none; }
  .mercek-rakam { transition: none; }
}

/* Merdiven keşif mesajı: ızgaranın üstünde, kaydırırken görünür (telefon). */
.merdiven-mesaj-yapiskan { position: sticky; top: .5rem; z-index: 2; box-shadow: var(--golge); }
.motor-tahmin-soru { font-family: var(--font-baslik); font-size: 1.1rem; margin: .25rem 0 .35rem; }
.fsr-kapasite { font-family: var(--font-baslik); font-size: 13px; font-weight: 600; fill: var(--metin); }
.fsr-bosa-yazi { font-family: var(--font-baslik); font-size: 15px; font-weight: 600; fill: var(--coral-koyu); }

/* Hesap cebi (A.3.3) */
.hesap-cebi { margin: .5rem 0 .75rem; border: 2px solid var(--yardimci-mor); border-radius: var(--radius); background: var(--yardimci-acik); }
.hesap-cebi > summary { cursor: pointer; padding: .5rem .75rem; font-family: var(--font-baslik); color: var(--metin); min-height: var(--dokunma-min); display: flex; align-items: center; gap: .4rem; }
.hesap-cebi-govde { padding: 0 .75rem .75rem; }
.hesap-ekle, .hesap-bol { margin-right: .5rem; }
.hesap-sifirla { background: var(--kart); border: 2px solid var(--yardimci-mor); border-radius: 999px; color: var(--metin); font-family: var(--font-baslik); font-size: var(--punto-kucuk); text-decoration: none; padding: 0 1rem; cursor: pointer; min-height: var(--dokunma-min); }
.hesap-sifirla:hover { background: var(--yardimci-acik); }
.hesap-serit { display: block; width: 100%; max-width: 480px; margin: .5rem 0; }
.hs-dogru { stroke: var(--metin-soluk); stroke-width: 2; }
.hs-nokta { fill: var(--coral); }
.hs-disari { fill: var(--nesne-tas); }
.hs-sinir { stroke: var(--metin); stroke-width: 2; stroke-dasharray: 5 4; }
.hs-etiket { font-family: var(--font-baslik); font-size: 14px; fill: var(--metin); }
.hesap-yazi { margin: .35rem 0 0; font-family: var(--font-baslik); }
.hesap-bolme-satir { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.hesap-sayi { width: 5.5rem; min-height: var(--dokunma-min); font-size: 1.2rem; text-align: center; border: 2px solid var(--bal); border-radius: var(--radius); background: var(--kart); }
.hesap-isaret { font-size: 1.4rem; font-family: var(--font-baslik); }

/* === tezgah (Y7 adım keşfi) — ölçer, hüküm yazmaz; doğru/yanlış rengi yok === */
.motor-tezgah { max-width: 100%; }
.motor-tezgah-tarifler { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)); gap: .5rem; margin-bottom: .75rem; }
.motor-tezgah-tarif {
  display: flex; align-items: center; gap: .5rem; min-height: var(--dokunma-min); padding: .4rem .6rem;
  background: var(--kart); border: 2px solid var(--bal); border-radius: var(--radius);
  font-family: var(--font-govde); font-size: var(--punto-kucuk); color: var(--metin); text-align: left; cursor: pointer;
}
.motor-tezgah-tarif:disabled { cursor: default; opacity: 1; }
.motor-tezgah-tarif.motor-tezgah-secili { background: var(--bal-acik); border-width: 3px; }
.motor-tezgah-tarif-simge { flex: 0 0 auto; width: 4.6rem; height: 1.7rem; }
.motor-tezgah-carklar { display: flex; justify-content: center; gap: .4rem; margin-bottom: .5rem; }
.motor-tezgah-cark { display: flex; flex-direction: column; align-items: center; gap: .2rem; }
.motor-tezgah-adim {
  min-width: var(--dokunma-min); min-height: var(--dokunma-min); border: 2px solid var(--bal); border-radius: var(--radius);
  background: var(--kart); color: var(--metin); font-size: 1rem; cursor: pointer;
}
.motor-tezgah-rakam { font-family: var(--font-baslik); font-size: 2rem; line-height: 1.1; min-width: 1.4ch; text-align: center; }
.motor-tezgah-rakam.motor-tezgah-bas-sifir { color: var(--metin-soluk); }
.motor-tezgah-basamak { font-size: .8rem; color: var(--metin-soluk); }
.motor-tezgah-sabit { font-family: var(--font-baslik); text-align: center; margin: 0 0 .5rem; }
.motor-tezgah-hazirlar { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; margin-bottom: .75rem; }
.motor-tezgah-hazir {
  min-height: var(--dokunma-min); padding: .2rem .8rem; border: 2px solid var(--yardimci-mor); border-radius: var(--radius);
  background: var(--kart); color: var(--metin); font-family: var(--font-baslik); cursor: pointer;
}
.motor-tezgah-cevir { margin-bottom: .75rem; }
.motor-tezgah-sonuc { min-height: 1.6em; }
.tezgah-sonuc { display: block; width: 100%; max-width: 360px; margin: 0 auto .5rem; }
.motor-tezgah-olcum { font-family: var(--font-baslik); margin: 0 0 .75rem; }
.motor-tezgah-dokum-baslik { font-family: var(--font-baslik); margin: .25rem 0; }
.motor-tezgah-ek { margin: .25rem 0 .75rem; }
.motor-tezgah-tablo { border-collapse: collapse; width: 100%; table-layout: fixed; font-size: var(--punto-kucuk); margin-bottom: .75rem; }
.motor-tezgah-tablo th, .motor-tezgah-tablo td { border-bottom: 1px solid var(--bal-acik); padding: .35rem .3rem; text-align: left; vertical-align: top; }
.motor-tezgah-tablo th { font-family: var(--font-baslik); color: var(--metin-soluk); font-weight: 600; }
.motor-tezgah-toplam td { font-family: var(--font-baslik); font-weight: 600; }
.ts-demir { fill: var(--nesne-demir); stroke: var(--nesne-tas-koyu); stroke-width: 1.5; }
.ts-sap { fill: none; stroke: var(--nesne-tahta); stroke-width: 2; }
.ts-bugday { fill: var(--bal); stroke: var(--nesne-tahta); stroke-width: 1.2; }
.ts-bag { fill: none; stroke: var(--nesne-tahta); stroke-width: 2; }
.ts-ekmek { fill: var(--nesne-tahta); stroke: var(--nesne-tas-koyu); stroke-width: 1.2; }
.ts-kar { fill: var(--gok-alt); stroke: var(--nesne-tas); stroke-width: 1.5; }
.ts-zumrut { fill: var(--yesil); stroke: var(--nesne-yosun); stroke-width: 1.5; }
.ts-kum { fill: var(--bal-acik); stroke: var(--nesne-tahta); stroke-width: 1.5; }
.ts-kisi { fill: var(--yardimci-mor); }
.tzs-sayi { font-family: var(--font-baslik); font-size: 22px; font-weight: 600; fill: var(--metin); }
.tzs-etiket { font-family: var(--font-govde); font-size: 16px; fill: var(--metin); }
.ts-kar-golge { fill: none; stroke: var(--gok-ust); stroke-width: 2; stroke-linecap: round; }
.mercek-karar { margin-top: .5rem; }
.mercek-ipucu { font-family: var(--font-baslik); margin: .25rem 0; }
.mercek-soru { margin: .5rem 0 .4rem; font-weight: 600; }
.mercek-dugmeler { display: flex; gap: .5rem; margin-bottom: .5rem; }
.mercek-evet-hayir {
  min-width: 6rem; min-height: var(--dokunma-min); border: 2px solid var(--yardimci-mor); border-radius: var(--radius);
  background: var(--kart); color: var(--metin); font-family: var(--font-baslik); cursor: pointer;
}
.mercek-sonuc { min-height: 1.4em; margin: 0; }
.mercek-sonuc.mercek-dogru { color: var(--metin); border-left: 4px solid var(--yesil); padding-left: .5rem; }
.mercek-sonuc.mercek-tekrar { color: var(--metin); border-left: 4px solid var(--amber); padding-left: .5rem; font-weight: 600; }
.mercek-cip.cevaplandi { border-style: dashed; }   /* denendi (doğru/yanlış değil) */

/* === carpan_agaci (asal_carpanlar adım keşfi) — hüküm yok; taş = asal uç (token renkleri) === */
.motor-carpan-agaci { max-width: 100%; }
.ca-cizim { overflow-x: auto; margin: .5rem 0; }
.ca-svg { display: block; width: 100%; margin: 0 auto; }
.ca-dal { stroke: var(--nesne-tahta); stroke-width: 2.5; }
.ca-dugum .ca-sekil { stroke-width: 2.5; }
.ca-acik .ca-sekil { fill: var(--kart); stroke: var(--coral); stroke-dasharray: 5 3; }
.ca-acik { cursor: pointer; }
.ca-acik:focus { outline: none; }
.ca-acik:focus .ca-sekil, .ca-acik:hover .ca-sekil { fill: var(--coral-acik); }
.ca-ayrildi .ca-sekil { fill: var(--bal-acik); stroke: var(--bal); }
.ca-tas .ca-sekil { fill: var(--nesne-tas-acik); stroke: var(--nesne-tas-koyu); }
.ca-yazi { font-family: var(--font-baslik); font-size: 17px; fill: var(--metin); pointer-events: none; }
.ca-secici-baslik { font-family: var(--font-baslik); margin: .5rem 0 .35rem; }
.ca-ikililer, .ca-asallar { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .75rem; }
.ca-ikili, .ca-asal {
  min-height: var(--dokunma-min); min-width: var(--dokunma-min); padding: .2rem .8rem; border: 2px solid var(--yardimci-mor);
  border-radius: var(--radius); background: var(--kart); color: var(--metin); font-family: var(--font-baslik); font-size: 1.05rem; cursor: pointer;
}
.ca-asal:disabled { cursor: default; opacity: .5; }
.ca-yeniden { margin: .25rem 0 .75rem; }
.ca-yollar { border-top: 2px solid var(--bal-acik); padding-top: .5rem; }
.ca-yollar-baslik { font-family: var(--font-baslik); color: var(--metin-soluk); margin: 0 0 .25rem; }
.ca-yol { font-family: var(--font-baslik); margin: 0 0 .5rem; }
.ca-yol-ilk, .ca-yol-satir { display: block; }
.ca-yol-ilk { color: var(--metin-soluk); font-size: var(--punto-kucuk); }
.motor-desen .motor-firin-etiket { flex-basis: 100%; }
.ca-algo { border-collapse: collapse; margin: .5rem auto .75rem; font-family: var(--font-baslik); font-size: 1.3rem; }
.ca-algo td { padding: .2rem .9rem; min-width: 3.5rem; text-align: right; }
.ca-algo-sayi { border-right: 3px solid var(--metin); }
.ca-algo-bolen { text-align: left !important; }
.ca-algo-bos { color: var(--metin-soluk); }

/* === merdiven desen kipi — çocuk satır genişliğini seçer, resim doğru genişlikte belirir === */
.motor-desen-olcum { font-family: var(--font-baslik); text-align: center; margin: .5rem 0; }
.motor-desen-cizim { display: flex; justify-content: center; }
.desen-svg { display: block; max-width: 100%; max-height: 24rem; width: auto; height: auto; min-height: 6rem; }
.md-dolu { fill: var(--nesne-gece); }
.md-bos { fill: var(--nesne-tas-acik); opacity: .45; }
.md-eksik { fill: none; stroke: var(--metin-soluk); stroke-width: 1.2; stroke-dasharray: 2 1.5; }

/* ortak_tablo (ortak_kat_bolen): iki düğme = iki boya; düğme zemini boyanın rengiyle aynı. İki renk alan hücre çapraz
   ikiye bölünür (aynı iki renk). Düğmeler + mesaj yapışkan şerit. Kırmızı yok. */
.motor-ot-ust { position: sticky; top: .5rem; z-index: 2; background: var(--kart); padding: .4rem 0; box-shadow: 0 6px 8px -8px var(--metin-soluk); }
.motor-ot-kalemler { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .5rem; }
.motor-ot-kalem {
  min-height: var(--dokunma-min); padding: 0 1rem; border-radius: var(--radius);
  font-family: var(--font-baslik); font-size: var(--punto-govde); cursor: pointer; color: var(--metin);
}
.motor-ot-kalem-a { background: var(--bal); border: 3px solid var(--bal); }
.motor-ot-kalem-b { background: var(--yardimci-acik); border: 3px solid var(--yardimci-mor); }
.motor-ot-kalem[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--metin); }
.motor-ot-izgara .motor-mrd-hucre { border-color: var(--nesne-tas); }
.motor-ot-izgara .motor-mrd-hucre.motor-ot-a { background: var(--bal); border-color: var(--bal); }
.motor-ot-izgara .motor-mrd-hucre.motor-ot-b { background: var(--yardimci-acik); border: 3px solid var(--yardimci-mor); color: var(--metin); }
.motor-ot-izgara .motor-mrd-hucre.motor-ot-ortak {
  background: linear-gradient(135deg, var(--bal) 50%, var(--yardimci-acik) 50%);
  border: 3px solid var(--yardimci-mor); color: var(--metin); font-weight: 700;
}

/* anket (veri_toplama, A.2.11): kime / ne düğmeleri, kişiler kişi kişi gelir (simge + cevap baloncuğu), çetele tablosu.
   Hüküm rengi yok: hiçbir satır ya da cevap vurgulanmaz. Önceki sonuçlar altta küçük kart. Kırmızı yok. */
.motor-an-secim { margin-bottom: .6rem; }
.motor-an-etiket { font-family: var(--font-baslik); margin: 0 0 .3rem; }
.motor-an-dugmeler { display: flex; flex-wrap: wrap; gap: .4rem; }
.motor-an-dugme {
  min-height: var(--dokunma-min); padding: .3rem .8rem; border-radius: var(--radius); cursor: pointer;
  background: var(--kart); color: var(--metin); border: 2px solid var(--nesne-tas); font-size: var(--punto-govde); text-align: left;
  font-family: var(--font-govde); line-height: 1.35;
}
.motor-an-dugme[aria-pressed="true"] { background: var(--yardimci-acik); border-color: var(--yardimci-mor); box-shadow: 0 0 0 2px var(--yardimci-mor); }
.motor-an-sor { margin: .3rem 0 .5rem; }
.motor-an-kart { border: 2px solid var(--nesne-tas-acik); border-radius: var(--radius); padding: .5rem .6rem; margin: .5rem 0; background: var(--kart); }
.motor-an-kart-baslik { font-family: var(--font-baslik); margin: 0; }
.motor-an-kart-soru { margin: .1rem 0 .4rem; color: var(--metin-soluk); }
.motor-an-kisiler { display: flex; flex-wrap: wrap; gap: .35rem .5rem; align-items: flex-end; }
.motor-an-kisi { display: flex; align-items: flex-end; gap: .15rem; }
.motor-an-simge .an-bas { fill: var(--nesne-cevher); }
.motor-an-simge .an-govde { fill: var(--nesne-gece); }
.motor-an-kucuk .an-govde { fill: var(--bal); }
.motor-an-genc .an-govde { fill: var(--yardimci-mor); }
.motor-an-yetiskin .an-govde { fill: var(--nesne-tas-koyu); }
.motor-an-balon { background: var(--bal-acik); border-radius: .6rem; padding: .1rem .45rem; font-size: .9em; margin-bottom: .6rem; }
.motor-an-cetele { border-collapse: collapse; margin-top: .6rem; width: 100%; }
.motor-an-cetele th, .motor-an-cetele td { border-bottom: 1px solid var(--nesne-tas-acik); padding: .25rem .4rem; text-align: left; }
.motor-an-cetele .motor-an-sayi { text-align: right; font-family: var(--font-baslik); width: 4rem; }
.motor-an-cizim line { stroke: var(--metin); stroke-width: 1.6; stroke-linecap: round; }
.motor-an-gecmis .motor-an-kart { font-size: .85em; opacity: .9; }
.motor-an-gecmis .motor-an-kisiler { display: none; }
.motor-an-lejant { display: flex; flex-wrap: wrap; gap: .3rem .9rem; margin: .4rem 0 0; font-size: var(--punto-kucuk); color: var(--metin-soluk); }
.motor-an-lejant > span { display: inline-flex; align-items: flex-end; gap: .25rem; }
.motor-an-cetele th { white-space: nowrap; }

/* olcu_tezgah (veri_ozetleme, A.2.13): sayı kartları ve sütunlar; seçili mercan, hüküm rengi yok, yanlış hamle amber (geri-bildirim). */
.motor-ot-kartlar, .motor-ot-sira, .motor-ot-sutunlar { display: flex; flex-wrap: wrap; gap: .4rem; margin: .3rem 0 .6rem; }
.motor-ot-sira { min-height: var(--dokunma-min); }
.motor-ot-sutunlar { flex-wrap: nowrap; align-items: flex-end; gap: .3rem; }
.motor-ot-kart, .motor-ot-sutun {
  display: inline-flex; flex-direction: column; align-items: center; min-width: var(--dokunma-min); min-height: var(--dokunma-min);
  padding: .25rem .4rem; background: var(--kart); color: var(--metin); border: 2px solid var(--nesne-tas-acik); border-radius: 8px; cursor: pointer; font: inherit;
}
.motor-ot-sutun { flex: 1 1 0; min-width: 0; padding: .25rem .1rem; justify-content: flex-end; gap: 2px; }
.motor-ot-blok { display: block; width: 70%; height: .55rem; border-radius: 2px; background: var(--coral); }
.motor-ot-kart.secili, .motor-ot-sutun.secili { background: var(--coral-acik); border-color: var(--coral); }
.motor-ot-kart.cikti { opacity: .45; border-style: dashed; }
.motor-ot-sayi { font-family: var(--font-baslik); font-size: 1.15em; }
.motor-ot-etiket { font-size: .68em; line-height: 1.1; color: var(--metin-soluk); text-align: center; overflow-wrap: anywhere; }
.motor-ot-dizili { display: inline-block; min-width: 2.2rem; padding: .2rem .35rem; text-align: center; background: var(--kart); border: 2px solid var(--nesne-tas-acik); border-radius: 6px; font-family: var(--font-baslik); }
.motor-ot-olcu { list-style: none; margin: .2rem 0; padding: .5rem .7rem; background: var(--kart); border-radius: 8px; border: 1px solid var(--nesne-tas-acik); }
.motor-ot-olcu li { padding: .1rem 0; }
.motor-ot-olcu li.motor-ot-bas { color: var(--metin-soluk); font-size: var(--punto-kucuk); }

/* gosterim (veri_gosterimi, A.2.12): kâğıtlar tek tek kök-yaprağa ya da nokta grafiğine konur; aynı veri birkaç görünümde.
   Hüküm rengi yok: hiçbir satır vurgulanmaz. Yalnız çocuğun kendi kâğıdı (sen) mercan. Yanlış yer amber (geri-bildirim). */
.motor-gs-sen-sec { margin-bottom: .6rem; }
.motor-gs-siradaki { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; min-height: 2.6rem; margin: .2rem 0 .5rem; }
.motor-gs-kagit {
  display: inline-block; min-width: 2.4rem; padding: .2rem .45rem; text-align: center; border-radius: 6px;
  background: var(--kart); border: 2px solid var(--nesne-tas-acik); font-family: var(--font-baslik); box-shadow: var(--golge);
}
.motor-gs-kagit.motor-gs-buyuk { font-size: 1.4em; min-width: 3.2rem; }
.motor-gs-kagit.motor-gs-sen { background: var(--coral-acik); border: 3px double var(--coral); position: relative; }
.motor-gs-sen-etiket { display: block; font-size: .6em; line-height: 1; font-family: var(--font-govde); color: var(--metin); }
.motor-gs-sigdir { width: 100%; height: auto; max-width: 100%; }
.motor-gs-kagitlar { display: flex; flex-wrap: wrap; gap: .35rem; }
.motor-gs-anahtar { margin: 0 0 .4rem; color: var(--metin-soluk); font-size: var(--punto-kucuk); }
.motor-gs-ky-tablo { display: flex; flex-direction: column; gap: .2rem; }
.motor-gs-satir {
  display: flex; align-items: center; gap: .4rem; min-height: var(--dokunma-min); padding: .1rem .5rem; text-align: left;
  background: var(--kart); color: var(--metin); border: 2px solid var(--nesne-tas-acik); border-radius: 8px;
  font-family: var(--font-baslik); font-size: 1.15em; cursor: pointer;
}
.motor-gs-salt .motor-gs-satir { cursor: default; border-color: transparent; min-height: 0; }
.motor-gs-kok { min-width: 2rem; text-align: right; }
.motor-gs-cizgi { color: var(--nesne-tas); }
.motor-gs-yapraklar { display: flex; flex-wrap: wrap; gap: .1rem .45rem; letter-spacing: .02em; }
.motor-gs-yaprak.motor-gs-sen { background: var(--coral-acik); border-radius: 4px; padding: 0 .2rem; box-shadow: 0 0 0 1px var(--coral); }
.motor-gs-sirala { margin-top: .5rem; }
.motor-gs-kaydir { overflow-x: auto; max-width: 100%; padding-bottom: .3rem; }
.motor-gs-ipucu { margin: .1rem 0 0; font-size: var(--punto-kucuk); color: var(--metin-soluk); text-align: center; }
.motor-gs-nk-sira { display: flex; align-items: flex-end; gap: 0; }
.motor-gs-nk-sutun {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end; flex: 1 0 var(--dokunma-min); min-width: var(--dokunma-min);
  min-height: 9rem; padding: .2rem 0; background: var(--kart); border: 0; cursor: pointer;
  font-family: var(--font-govde); color: var(--metin);
}
.motor-gs-nk-yigin { display: flex; flex-direction: column-reverse; align-items: center; gap: 3px; align-self: stretch; padding-bottom: 4px; border-bottom: 2px solid var(--metin); }
.motor-gs-nk-nokta { width: 14px; height: 14px; border-radius: 50%; background: var(--yardimci-mor); }
.motor-gs-nk-nokta.motor-gs-sen { background: var(--coral); box-shadow: 0 0 0 2px var(--metin); }
.motor-gs-nk-etiket { margin-top: .3rem; font-size: var(--punto-kucuk); }
.motor-gs-svg { display: block; }
.motor-gs-svg .gs-eksen { stroke: var(--metin); stroke-width: 1.5; }
.motor-gs-svg .gs-yazi { fill: var(--metin); font-size: 11px; font-family: var(--font-govde); }
.motor-gs-svg .gs-nokta { fill: var(--yardimci-mor); }
.motor-gs-svg .gs-nokta.gs-sen { fill: var(--coral); stroke: var(--metin); stroke-width: 2; }
.motor-gs-svg .gs-sutun { fill: var(--bal); }
.motor-gs-alan { margin-top: .5rem; }
