/* Ekranlar: açılış, giriş ve sayfa iskeletleri.
   Kaynak: 6-belgeler/tasarim.md · "Sayfa iskeletleri" ve Nizam Standardı */

/* ---------- Açılış ekranı · minimal, animasyonsuz ---------- */
.acilis {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 4);
  background: var(--zemin);
  /* Açılış ekranı da solarak gelmez (2026.748): logo ilk karede tam
     parlaklıkta durur. */
}

.acilis-logo {
  width: 224px;
  max-width: 100%;
  height: auto;
}

/* Açılış ekranı dekoratif şerit taşımaz (şablon): ortada logo, altında
   marka adı, en altta ilerleme çubuğu. Şerit yüksekliği sıfırdır ama
   değişken duruyor — ilerleme çubuğunun konumu ondan okunuyor. */
.acilis { --acilis-serit: 0px; }

/* Logo ile marka şeridin üstünde kalır. */
.acilis-logo,
.acilis-marka,
.acilis-alt { position: relative; z-index: 1; }

/* Marka adı · ALTIN HARF, SİYAH GÖLGE, İLK KAREDE (2026.500 ·
   kullanıcının bildirimi: "altta Merkez Efendi Köftecisi yazısı sonradan
   geliyor öyle olmasın · GOLD siyah gölgeli harflerle · Merkez Efendi Köftecisi
   Kübban yazsın · ve direk geliyor olsun").

   NİYE SONRADAN GELİYORDU: başlık yazı tipi (Playfair Display) Google
   Fonts'tan iniyor. Ad o yazıyla yazılınca tarayıcı önce yedekle çizip
   Playfair inince değiştiriyordu; göz o takası yakalıyordu. 2026.413'te
   çözüm "yazı inene kadar adı gizle" olmuştu — takas bitti ama bu sefer
   ad geç çıkıyordu.

   ŞİMDİKİ ÇÖZÜM: açılış adı İNEN YAZIYI HİÇ BEKLEMEZ. Yazı tipi olarak
   cihazda hazır duran Georgia/Times kullanılır; indirilecek bir şey
   olmadığı için ad ilk boyamada, logoyla aynı anda çıkar ve sonradan
   değişmez. Playfair yalnız uygulamanın içinde kullanılır — açılış
   ekranı bir saniye sürüyor, oraya ağdan yazı beklemek değmez.

   ALTIN HARF: düz altın taban renktir; destekleyen tarayıcıda üstüne
   yukarıdan aşağı açık→koyu altın geçişi bindirilir (harfin kendisi
   boyanır, background-clip: text). Gölge iki katmandır: harfin dibinde
   sert ince bir siyah çizgi (kabartma) ve altında yumuşak bir düşüm
   (derinlik). Gölge harfin GEOMETRİSİNDEN çizildiği için geçişli
   dolguyla da görünür. */
.acilis-marka {
  font-family: Georgia, "Times New Roman", "Times", serif;
  font-size: clamp(26px, 7.5vw, 40px);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: .01em;
  text-align: center;
  color: var(--ikinci);
  -webkit-text-stroke: .5px rgba(38, 24, 10, .7);
  text-shadow:
    0 2px 0 rgba(0, 0, 0, .35),
    0 5px 12px rgba(0, 0, 0, .28);
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
  .acilis-marka {
    /* Metalik altın: ortadaki açık şerit ışığın harfe vurduğu yerdir,
       üstü ve altı koyu altındır. Düz tek renk altın krem zeminde
       kahverengiye kaçıyordu. */
    background-image: linear-gradient(
      180deg,
      #C39236 0%,
      #E3BF63 20%,
      #FBEFC2 47%,
      #E0B94F 62%,
      #9C6C22 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

.acilis-alt {
  position: absolute;
  left: 0;
  right: 0;
  /* Çubuk şeridin üstünde durur: çizimin üstüne binince ne çubuk ne de
     "Hazırlanıyor…" okunuyordu (2026.183). */
  bottom: calc(var(--acilis-serit) + var(--bosluk) * 3);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--bosluk);
  padding: 0 calc(var(--bosluk) * 4);
}

/* İlerleme çubuğu (2026.500 · "dolma çubuğu da daha güzel olsun").
   Eskiden 3px'lik düz bir kenarlık rengiydi, dolgusu tek renk bordoydu
   ve genişliği sabit hızla (linear) atlıyordu — her adımda tekliyordu.

   Şimdi:
     · Oluk biraz daha kalın ve içine gömük durur (iç gölge), üstünde
       ince bir altın tel vardır — kâğıda oyulmuş gibi.
     · Dolgu bordodan altına geçer; sağ ucunda yumuşak bir parlaklık
       durur, çubuk ilerledikçe o parlaklık da taşınır.
     · Genişlik yumuşamayla büyür (cubic-bezier), sıçramaz.
     · Dolgunun üstünde soldan sağa geçen bir ışık vardır; çubuk aynı
       oranda beklerken bile bir şeyin sürdüğü anlaşılır. */
.acilis-cubuk {
  position: relative;
  width: min(260px, 100%);
  height: 6px;
  border-radius: 999px;
  background: var(--oyuk);
  box-shadow:
    inset 0 1px 2px rgba(74, 53, 36, .22),
    0 0 0 1px var(--altin-soluk);
  overflow: hidden;
}

.acilis-cubuk-dolu {
  position: relative;
  width: 0;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--vurgu-koyu) 0%, var(--vurgu) 70%, var(--altin) 100%);
  box-shadow: 0 0 8px rgba(194, 162, 104, .55);
  /* Kısa geçiş (2026.749): çubuk gerçek işi gösteriyor; uzun bir
     yumuşama onu gerçeğin gerisinde bırakırdı. */
  transition: width .2s ease-out;
}

/* Dolgunun üstünden geçen ışık. */
.acilis-cubuk-dolu::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: linear-gradient(
    100deg,
    rgba(255, 255, 255, 0) 30%,
    rgba(255, 255, 255, .45) 50%,
    rgba(255, 255, 255, 0) 70%
  );
  background-size: 220% 100%;
  animation: acilis-isik 1.6s ease-in-out infinite;
}

/* Hareket azaltılmışken ışık geçmez, çubuk yine de dolar: bilgi
   hareketle değil genişlikle veriliyor (6-belgeler/NIZAM.md). */
@media (prefers-reduced-motion: reduce) {
  .acilis-cubuk-dolu::after { animation: none !important; background: none; }
}

.acilis-durum {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

/* ---------- Sayfa iskeletleri ---------- */
.sayfa-icerik {
  padding: calc(var(--bosluk) * 2);
}

/* Liste iskeletinin 40px'lik arama ve filtre şeridi bir bileşendir:
   bkz. bilesenler.css · ".suzgec". Burada ikinci bir tanım açılmaz. */

/* Form: en fazla 720px, tek sütun, 24px bölüm aralığı. */
.iskelet-form {
  max-width: var(--form-en);
  margin: 0 auto;
}

/* ---------- Dashboard ----------
   Sayfa bir GÜNÜ anlatır: tepede şube ve tarih, altında o günün dört
   ölçüsü, yedi günlük satış çizgisi, yapılacaklar, paranın yeri ve dört
   kısayol.

   NİYE HER KUTU SABİT
     Veri gelmeden çizilen iskelet, dolu hâlin ta kendisidir: aynı kutu,
     aynı satır sayısı, aynı punto. Kartların yüksekliği içeriğe değil
     kendi ölçüsüne bağlıdır — grafik alanı boşken de aynı yeri kaplar,
     yapılacaklar hep dört satırdır, hesap kırılımına hep dört yer
     ayrılır. Böylece sayfa yüklenirken hiçbir şey büyüyüp küçülmez
     (6-belgeler/NIZAM.md · "gösterilen şey sonradan başka bir şeye dönüşmez"). */

/* ---------- Dashboard ----------
   İki kat: tepede paranın bugünkü durumunu gösteren dört kart, altta üç
   dik tablo (brüt satış · son ödemeler · yaklaşan ödemeler). Karta
   basınca dökümü panelde açılır.
   Kaynak: 4-ekranlar/4-yonetim/panel.js · 5-veritabani/046 */

/* ---- Tepe kuşağı ----
   Panelin kim olduğunu söyleyen şerit: solda sayfanın kimliği, sağda
   kullanıcı. Alttaki kartlarla aynı yüzeyi kullanır; süs taşımaz. */
.sayfa-kusak {
  position: relative;
  overflow: hidden;
  padding: calc(var(--bosluk) * 3) calc(var(--bosluk) * 3.5)
           calc(var(--bosluk) * 2.75);
  margin-bottom: calc(var(--bosluk) * 3);
  border-radius: var(--kose-kart);
  border: var(--kart-cerceve);
  /* Kuşak alttaki kartlarla AYNI yüzey. */
  background-color: var(--kart-zemin);
  box-shadow: var(--kart-golge);
  text-align: center;
}

/* Kuşak iki yana açılır: solda sayfanın kimliği, sağda kullanıcı.
   Dar ekranda alt alta iner ve ortalanır — yan yana sıkıştırmak iki
   tarafı da okunmaz yapıyordu. */
.sayfa-kusak-ic {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
}

.sayfa-kusak-sol {
  min-width: 0;
  text-align: left;
}

.sayfa-kusak-ust {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ikinci);
}

.sayfa-kusak-ad {
  margin: calc(var(--bosluk) * .75) 0 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--metin);
}

/* Ayraç · YALNIZ DAR EKRANDA görünür: geniş ekranda iki blok zaten
   kuşağın iki ucunda duruyor, aradaki boşluğun ortasına asılı bir çizgi
   yersiz kalıyordu. Alt alta inince araları ayıran bir şey gerekiyor. */
.sayfa-kusak-ayrac { display: none; }

/* Kullanıcı satırı · fotoğraf, selam ve ünvan. Kuşağın ortasında,
   ayraçla tarihin arasında durur. */
.kusak-selam {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  text-align: right;
}

/* Fotoğraf sağda, yazı solunda: kuşağın sağ ucunda yüz durur. */
.kusak-selam-yazi { order: -1; }

.kusak-selam-avatar {
  /* TAM KARE, HER GENİŞLİKTE (2026.524 · kullanıcının bildirimi:
     "fotoğraf genişlemiş öyle olmasın").

     ÖLÇÜ TEK DEĞİŞKENDEN gelir. Önce eni ile boyu ayrı ayrı
     yazılıyordu; dar ekran kuralı ikisini birden 44'e çekiyordu ama
     esneme tabanı 52'de kalınca kutu 52x44 oluyor ve daire yumurtaya
     dönüyordu. Artık tek sayı değişiyor, dördü birden ondan türüyor. */
  --avatar: 52px;
  flex: 0 0 var(--avatar);
  aspect-ratio: 1;
  min-width: var(--avatar);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--avatar);
  height: var(--avatar);
  border-radius: 50%;
  overflow: hidden;
  background: var(--kart-yuzey);
  box-shadow: 0 0 0 1px var(--kenar);
}

.kusak-selam-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kusak-selam-harf {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: 1;
  color: var(--metin);
}

.kusak-selam-yazi { min-width: 0; }

.kusak-selam-ad {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  color: var(--metin);
}

.kusak-selam-unvan {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--gri-vurgu);
}

.sayfa-kusak-alt {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--metin);
  opacity: .75;
}

@media (max-width: 700px) {
  .sayfa-kusak { padding: calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 2.5); }

  /* Dar ekranda tarih iki satıra düşüyordu; açıklama eki orada
     gereksiz — gün ve tarih yeter. */
  .sayfa-kusak-alt-ek { display: none; }

  .sayfa-kusak-ad { font-size: var(--h2-boy); line-height: var(--h2-satir); }
  .sayfa-kusak-ic { flex-direction: column; gap: calc(var(--bosluk) * 1.5); }
  .sayfa-kusak-sol { text-align: center; }
  .sayfa-kusak-ayrac {
    position: relative;
    display: block;
    align-self: center;
    width: 148px;
    max-width: 60%;
    height: 9px;
    background-image:
      linear-gradient(var(--ayirici), var(--ayirici)),
      linear-gradient(var(--ayirici), var(--ayirici));
    background-size: calc(50% - 9px) 1px, calc(50% - 9px) 1px;
    background-position: left center, right center;
    background-repeat: no-repeat;
  }
  .kusak-selam { text-align: left; }
  .kusak-selam-yazi { order: 0; }
  .kusak-selam-avatar { --avatar: 44px; }
  .kusak-selam-ad { font-size: var(--govde-boy); line-height: var(--govde-satir); }
}

/* Yazdırırken kuşak çıkmaz: kâğıda basılan şey raporun kendisidir,
   kimin baktığı değil. */
@media print {
  .sayfa-kusak,
  .sayfa-kusak-serit { display: none; }
}

/* ---- Dört kart ---- */
.pn-kartlar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 2);
  margin: 0 0 calc(var(--bosluk) * 3);
}

@media (min-width: 700px) {
  .pn-kartlar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
  .pn-kartlar { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.pn-kart {
  display: flex;
  flex-direction: column;
  gap: var(--bosluk);
  width: 100%;
  min-height: 150px;
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.25);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
  text-align: left;
  position: relative;
  transition: transform var(--gecis) ease-out;
}

.pn-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

@media (hover: hover) {
  .pn-kart:hover { transform: translateY(-1px); }
  .pn-kart:hover .pn-kart-ok { opacity: .85; }
}

.pn-kart-tepe {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
}

/* Simge kutusu · içindeki simge renkli settendir (3-cekirdek/2-arayuz/simgeler.js),
   rengini kendi taşır; kutu ona yalnız kağıt zemin verir. */
.pn-simge {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}

.pn-kart-ad {
  flex: 1;
  min-width: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .75;
}

.pn-kart-ok { flex: none; display: inline-flex; opacity: .4; }

.pn-tutar {
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.pn-alt {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Bankadaki para ikiye bölünür: üstte hesaptaki, altta blokedeki. */
.pn-ikili {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-top: calc(var(--bosluk) / 2);
  border-top: 1px solid var(--defter-tel-soluk);
}

.pn-ikili-satir {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Uzun satır adı ("Müşteriden alınan ön ödeme") iki satıra inebilsin;
   rakam hiç bölünmez, hep sağda tek parça durur. */
.pn-ikili-satir span {
  opacity: .7;
  min-width: 0;
  text-align: left;
}

.pn-ikili-satir b {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

/* ---- Üç sütun ---- */
.pn-sutunlar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 2);
  align-items: stretch;
}

@media (min-width: 1000px) {
  .pn-sutunlar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.pn-sutun {
  display: flex;
  flex-direction: column;
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
  position: relative;
  overflow: hidden;
}

.pn-sutun::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

.pn-sutun-basi {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.25);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.pn-sutun-simge {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}

.pn-sutun-yazi { min-width: 0; }

.pn-sutun-ad {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.pn-sutun-alt {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.pn-sutun-govde { flex: 1 1 auto; background: var(--kart-yuzey); }

.pn-tablo {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.pn-tablo td {
  padding-top: calc(var(--bosluk) * 1.1);
  padding-bottom: calc(var(--bosluk) * 1.1);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

.pn-tablo tr:last-child td { border-bottom: 0; }

.pn-gun,
.pn-tarih {
  width: 1%;
  padding-left: calc(var(--bosluk) * 2.25);
  padding-right: var(--bosluk);
  white-space: nowrap;
  opacity: .7;
  font-variant-numeric: tabular-nums;
}

/* AD SÜTUNU KALANI ALIR, UZUN AÇIKLAMA KISALIR (2026-10-24 · kullanıcının
   bildirimi: "son ödemelerde tutar yazmıyor"). Otomatik tablo düzeninde
   tek satırlık uzun açıklama sütunu kendi boyuna açıyor, tutar kartın
   dışına itiliyordu. width:100% + max-width:0 hücreyi kalan yere sığdırır,
   yazı "…" ile kesilir. */
.pn-ad { padding-right: var(--bosluk); min-width: 0; width: 100%; max-width: 0; }

.pn-ad-yazi {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pn-kaynak {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

/* Brüt satış çubuğu · sayıyı okumadan da hangi gün iyi geçmiş görünsün. */
.pn-cubuk {
  padding-right: var(--bosluk);
  width: auto;
}

.pn-cubuk-dolu {
  display: block;
  height: 8px;
  min-width: 2px;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--defter-tel), var(--defter-koyu));
}

.pn-sayi {
  width: 1%;
  padding-right: calc(var(--bosluk) * 2.25);
  text-align: right;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.pn-bos td {
  padding: calc(var(--bosluk) * 3) calc(var(--bosluk) * 2.25);
  text-align: center;
  opacity: .6;
}

/* Dar ekranda sütunlar sabitlensin · tarih ve tutar taşmasın, ad kısalsın. */
@media (max-width: 640px) {
  .pn-tablo { table-layout: fixed; }
  .pn-gun,
  .pn-tarih {
    width: 6.6em;
    padding-left: calc(var(--bosluk) * 1.25);
    padding-right: var(--bosluk);
    font-size: var(--etiket-boy);
  }
  /* "Cmt 3" kısa; çubuğa yer kalsın. Tarih ile ad birbirine değmesin. */
  .pn-gun { width: 4.4em; }
  .pn-tarih { width: 7.4em; }
  /* TUTAR TAŞMASIN (2026.973 · kullanıcının bildirimi: "bazı yerlerde
     taşmalar oluyor"). 7,6em "2.500.000,00 ₺"e yetmiyordu; milyonluk
     tutar sığacak genişlik ve biraz küçük punto. */
  .pn-sayi {
    width: 9.6em;
    padding-right: calc(var(--bosluk) * 1.25);
    font-size: 12.5px;
    letter-spacing: -.01em;
  }
}

.pn-sutun-dip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 2.25);
  border-top: 1px solid var(--defter-tel-soluk);
  background: var(--defter-acilis);
  font-size: var(--kucuk-boy);
}

.pn-sutun-dip b {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

/* ---- Kartın dökümü · panel (2026.974 · yeni görünüm) ----
   Tepede toplam kartı (simge · hesap sayısı · büyük toplam), altında
   sıfır olmayan hesaplar büyükten küçüğe: ad (ilk iki kelime) ve kod
   solda, tutar sağda, altında toplamdaki payını gösteren ince altın
   çubuk. Telefonda ve masaüstünde aynı. */
.pn-pan-pencere .pencere-govde { padding-top: 4px; }
.pn-pan-ozet {
  display: flex; align-items: center; gap: 14px; margin: 0 0 calc(var(--bosluk) * 2);
  padding: 14px 16px; border-radius: 16px;
  background-color: var(--kart-zemin); background-image: var(--kart-desen);
  border: var(--kart-cerceve); box-shadow: var(--kart-golge);
}
.pn-pan-simge { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--oyuk); }
.pn-pan-ozet-yazi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pn-pan-ozet-yazi span { font-size: var(--etiket-boy); letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.pn-pan-ozet-yazi b { font-family: var(--yazi-baslik); font-size: 24px; line-height: 1.15; font-variant-numeric: tabular-nums; }

.pn-pan-ara {
  display: flex; align-items: baseline; justify-content: space-between; gap: var(--bosluk);
  margin: calc(var(--bosluk) * 2.5) 0 calc(var(--bosluk) * .5);
  font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .12em; text-transform: uppercase; color: var(--ikinci);
}
.pn-pan-ara b { font-family: var(--yazi-metin); font-size: var(--kucuk-boy); letter-spacing: 0; text-transform: none; color: var(--metin); font-variant-numeric: tabular-nums; }
.pn-pan-ozet + .pn-pan-ara { margin-top: 0; }

.pn-pan-satir {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; row-gap: 6px;
  padding: 10px 2px; border-bottom: 1px solid var(--ayirici);
}
.pn-pan-liste .pn-pan-satir:last-child { border-bottom: 0; }
.pn-pan-sol { display: flex; flex-direction: column; min-width: 0; }
.pn-pan-ad { font-weight: 600; font-size: 14px; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pn-pan-kod { font-size: var(--etiket-boy); color: var(--ikinci); font-variant-numeric: tabular-nums; }
.pn-pan-tutar { font-weight: 700; font-size: 14px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pn-pan-eksi .pn-pan-tutar { color: var(--metin-hata, #B72C28); }
.pn-pan-pay { grid-column: 1 / -1; display: block; height: 4px; border-radius: 99px; background: var(--oyuk); overflow: hidden; }
.pn-pan-pay i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--defter-tel), var(--defter-koyu)); }
.pn-pan-eksi .pn-pan-pay i { background: color-mix(in srgb, var(--metin-hata, #B72C28) 55%, transparent); }

.pn-pan-bos { margin: 4px 2px 0; font-size: var(--kucuk-boy); opacity: .7; }

/* ---------- Ayarlar ekranı ---------- */
/* Ana ekran öbek kartlarıdır (2026.110): otuz satır alt alta değil, dört
   kapı. Her kapı kendi sayfasına götürür; sayfanın tepesinde geri
   düğmesi ve adı durur. Kart ölçüsü yan menüdeki satırın ölçüsüdür —
   plakalı simge, 16px kapsül, ince tel. */
.ayarlar-obekler {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 1.5);
}

@media (min-width: 900px) {
  .ayarlar-obekler { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ayarlar-obek {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.75);
  width: 100%;
  min-height: 76px;
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.25);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
  position: relative;
  text-align: left;
  color: var(--metin);
  transition: transform var(--gecis) ease-out;
}

/* Üstüne gelince kart bir tık daha kalkar; çerçeve değişmez. */
@media (hover: hover) {
  .ayarlar-obek:hover { transform: translateY(-1px); }
  .ayarlar-obek:hover .ayarlar-obek-ok { opacity: .8; }
}

.ayarlar-obek-simge {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  color: var(--defter-koyu);
}

.ayarlar-obek-yazi {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.ayarlar-obek-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.ayarlar-obek-tarif {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Kaç sayfa olduğunu söyleyen küçük sayı: kapıyı açmadan bilinsin. */
.ayarlar-obek-sayi {
  flex: none;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 12px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  font-size: var(--etiket-boy);
  line-height: 24px;
  text-align: center;
  opacity: .8;
}

.ayarlar-obek-ok {
  flex: none;
  display: inline-flex;
  opacity: .4;
  transition: opacity var(--gecis) ease-out;
}

/* Alt sayfanın tepesi: geri düğmesi üstte, sayfanın adı altında. */
.ayarlar-tepe {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--bosluk);
  margin-bottom: calc(var(--bosluk) * 2);
}

.ayarlar-geri {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  min-height: 32px;
  padding: 0 calc(var(--bosluk) * 1.5) 0 var(--bosluk);
  border: 1px solid var(--kart-kenar);
  border-radius: 16px;
  background: var(--kart-kagit);
  color: var(--vurgu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Ok simgesi ileriyi gösterir; geri düğmesinde ters çevrilir. */
.ayarlar-geri .simge { transform: rotate(180deg); }

@media (hover: hover) {
  .ayarlar-geri:hover { background: var(--kart-yuzey); }
}

.ayarlar-tepe-ad {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

/* Tek sütun, başlıklı bölümler; her bölüm bir kart, her satırda solda alan
   adı sağda değeri. 24px aralıklarla ayrılmış gruplar, 11px/16 büyük harf
   başlık, 56px ayar satırları.
   Kaynak: 6-belgeler/NIZAM.md · Tasarım · "Ayarlar" · 6-belgeler/tasarim.md · "Sayfa
   iskeletleri" — Tanımlar öbeğinin ayar kartlarından (.ayar-kart) ayrı bir
   bileşendir: orada kayıt listesi, burada bilgi satırı durur. */
.ayarlar-grup + .ayarlar-grup { margin-top: calc(var(--bosluk) * 3); }

.ayarlar-baslik {
  margin: 0 0 var(--bosluk);
  padding: 0 calc(var(--bosluk) / 2);
  color: var(--metin);
  opacity: .7;
  font-family: var(--yazi-metin);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.ayarlar-kart {
  padding: 0 calc(var(--bosluk) * 2);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  box-shadow: var(--golge);
}

.ayarlar-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  min-height: calc(var(--ust-cubuk));
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
}

.ayarlar-satir:last-child { border-bottom: 0; }

.ayarlar-ad {
  flex: 0 0 auto;
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
}

.ayarlar-deger {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--bosluk);
  min-width: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  text-align: right;
  overflow-wrap: anywhere;
}

.ayarlar-yardimci {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ayarlar-dugme {
  flex: 0 0 auto;
  padding: 0 calc(var(--bosluk) * 2);
}

/* Bir sayfaya götüren satır bilgi satırı değildir: solda ad, sağda yön
   işareti, satırın tamamı düğmedir. "Aç" düğmeli biçim burada yorardı —
   telefonda bilgi satırı alt alta iner ve yedi tanım sayfası on dört
   satıra çıkar, her birinin altında tek başına duran küçük bir düğmeyle.
   Bu satır dar ekranda da tek satır kalır. */
.ayarlar-git-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  width: 100%;
  min-height: var(--dokunma);
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
  color: var(--metin);
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  text-align: left;
}

.ayarlar-git-satir:last-child { border-bottom: 0; }

/* Adın altındaki yardımcı yazı: satır iki satırlık olur, ad üstte kalır. */
.ayarlar-git-yazi {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
}

.ayarlar-ana-ad { margin-bottom: calc(var(--bosluk) * 2); }

.ayarlar-git-satir .simge {
  flex: none;
  opacity: .55;
}

@media (hover: hover) {
  .ayarlar-git-satir:hover { color: var(--vurgu); }
}

/* Güncelleme satırı tek satırın istisnasıdır: düğme üstte, sürüm etiketi
   onun altında durur (6-belgeler/NIZAM.md · "Ayarlar · Güncelleme ayarlardaki
   düğmeyle yapılır"). */
.ayarlar-guncelleme {
  flex-direction: column;
  align-items: flex-end;
  gap: calc(var(--bosluk) / 2);
}

.ayarlar-aciklama {
  margin: calc(var(--bosluk) * 2) 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ayarlar-eylem {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2) 0;
}

/* Çıkış düğmesi en altta ve sade durur, kırmızı değildir. */
.ayarlar-cikis {
  display: flex;
  justify-content: center;
  padding: calc(var(--bosluk) * 4) 0 calc(var(--bosluk) * 2);
}

@media (max-width: 899.98px) {
  .ayarlar-satir {
    align-items: flex-start;
    flex-direction: column;
    gap: calc(var(--bosluk) / 2);
  }

  .ayarlar-deger {
    justify-content: flex-start;
    text-align: left;
  }

  .ayarlar-guncelleme { align-items: flex-start; }
}


/* ---------- İşlem geçmişi · Ayarlar ---------- */
/* Toplu iş tek satırdır: "Toplu fatura aktarımı · 180 fatura". Yapılan
   iş kalın, özeti soluk — göz önce ne olduğunu okur, ayrıntıyı sonra. */
.gecmis-zaman { font-variant-numeric: tabular-nums; }
.gecmis-is { font-weight: 500; }
.gecmis-ozet { opacity: .6; }

/* Geri alınmış işlem listeden silinmez, solar: ne yapıldığı kadar neyin
   geri alındığı da geçmişin bir parçasıdır. Düğmesi olmaz. */
.gecmis-geri { opacity: .55; }

.gecmis-dugme { min-height: 34px; }

/* ---- Geri alma paneli ---- */
.gecmis-pan-ust {
  display: flex;
  flex-wrap: wrap;
  gap: 2px calc(var(--bosluk) * 2);
  margin-bottom: calc(var(--bosluk) * 1.5);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.gecmis-sat {
  display: flex;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 1.5);
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
}

.gecmis-sat:last-of-type { border-bottom: 0; }
.gecmis-sat b { font-weight: 500; font-variant-numeric: tabular-nums; }

.gecmis-baslikcik {
  margin: calc(var(--bosluk) * 2) 0 0;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .5;
}

.gecmis-uyari {
  margin-top: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: rgba(184, 117, 3, .10);
  color: var(--metin-uyari);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}


/* ---------- Kontrol sihirbazı · Hareketler ----------
   TEK SATIRLIK ŞERİT (2026.592 · kullanıcının isteği: "gerçekten
   hesaplar sayfasındaki hesap defterini aratsın, oradaki ekrandan
   ilerlesin").

   Eskiden sihirbaz kendi tepesini (sayaç · hesap adı · bakiye ·
   ilerleme çubuğu) ve altta üç düğmelik bir sıra çiziyor, karşılığında
   defter ekranının başlığını, hesap seçicisini ve özetini kapatıyordu.
   Kullanıcı kontrol ederken tanıdığı ekranı değil kırpılmış bir
   kopyasını görüyordu.

   Şimdi ekran olduğu gibi duruyor; sihirbaz yalnız defterin üstüne
   yapışık bir şerit. Hesabın adı burada YAZMAZ — onu defterin kendi
   başlığı zaten yazıyor ve iki kez yazmak iki başlık demekti. */
.sihirbaz-serit {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  padding: var(--bosluk) calc(var(--bosluk) * 2);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-bottom: 0;
  border-radius: var(--kose-kart) var(--kose-kart) 0 0;
}

.sihirbaz-sayac {
  flex: 0 0 auto;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* İlerleme çubuğu artan yeri kaplar: sayı yanında yazdığı için ayrıca
   etiketlenmez. Şeridin içinde durur, altına ayrı bir çizgi olarak
   değil — şerit tek satır kalsın. */
.sihirbaz-cubuk {
  flex: 1;
  min-width: 40px;
  height: 4px;
  border-radius: 2px;
  background: var(--oyuk);
  overflow: hidden;
}

.sihirbaz-dolu {
  display: block;
  height: 100%;
  background: var(--vurgu);
  transition: width var(--gecis) ease-out;
}

/* "Çık" düğme değil bağlantı gibi durur: şeritteki asıl iş ilerlemek,
   çıkmak yan kapıdır ve üçüncü bir dolu düğme şeridi kalabalık
   gösteriyordu. */
.sihirbaz-cik {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: var(--kucuk-boy);
  color: var(--ikinci);
  text-decoration: underline;
  cursor: pointer;
}
.sihirbaz-cik:hover { color: var(--metin); }

/* Şeridin altındaki defter kartı ona yapışır: ikisi tek kart olur. */
.sihirbaz-serit + .tablo-sarmal {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Sihirbazda gezilecek hesap çıkmazsa boş durum ve altında tek düğme
   durur; boş durumun kendi düğmesi süzgeç temizlemeye bağlı, buradaki iş
   ekrandan çıkmak. */
.sihirbaz-bos-dugme {
  display: flex;
  justify-content: center;
  padding-bottom: calc(var(--bosluk) * 3);
}

/* Dar ekranda şerit iki sıraya iner: üstte sayaç ve çubuk, altta
   düğmeler — üçü de parmakla basılabilir kalsın. */
@media (max-width: 899.98px) {
  .sihirbaz-serit { flex-wrap: wrap; }
  .sihirbaz-cubuk { flex: 1 1 100%; order: -1; }
  .sihirbaz-serit .dugme-ikincil,
  .sihirbaz-serit .dugme-birincil { flex: 1 1 0; }
}


/* ---------- Hesap defteri · kayıt paneli ---------- */
/* Gözcünün baktığı nokta. Görünmez ama yüksekliği vardır: sıfır boyda bir
   öğe kaydırma sırasında kesişme üretmiyor. */
.defter-gozcu { height: 1px; }

.kayit-sat {
  display: flex;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 1.5);
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
}

.kayit-sat b { font-weight: 500; }

/* Çift kaydın iki bacağı bir arada durur: kaydın tek satır değil, iki
   bacak olduğu buradan görünür. */
.kayit-bacaklar {
  margin-top: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: var(--oyuk);
}

.kayit-bacak {
  display: flex;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * .5) 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kayit-bacak b { font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Panelde bölüm başlığı: "Muhasebe kaydı" iki bacağın üstünde durur ve
   o kutunun ne olduğunu söyler. */
.kayit-baslikcik {
  margin-top: calc(var(--bosluk) * 2);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .06em;
  opacity: .5;
}

.kayit-baslikcik + .kayit-bacaklar { margin-top: calc(var(--bosluk) * .75); }

/* Bacaklar gelene kadar kutunun yüksekliği hazır durur: veri gelince
   panel büyüyüp göze çarpmasın. */
.kayit-bekliyor {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  min-height: 68px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
}

.kayit-kilit {
  margin-top: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: rgba(184, 117, 3, .10);
  color: var(--metin-uyari);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Silme solda, kapat ve düzenle sağda: yıkıcı olan onaylayıcıdan uzakta
   dursun (6-belgeler/NIZAM.md · "Onay penceresi"). */
.kayit-dugmeler { align-items: center; }
.kayit-bosluk { flex: 1; }
.kayit-sil { color: var(--metin-hata); border-color: rgba(183, 44, 40, .35); }
.kayit-sil:disabled { opacity: .45; }


/* ---------- Hesap defteri · yukarı yükleme ---------- */
/* Kullanıcı yukarı kaydırınca önceki kayıtlar gelirken listenin tepesinde
   bu şerit durur. Eskiden tablo baştan çiziliyordu; liste bir an boşalıp
   ekran gidip geliyordu. Artık yalnız yeni satırlar üste giriyor ve
   bekleyiş burada görünüyor. */
.defter-yukleniyor {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.75);
  background: var(--oyuk);
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Şeridin çemberi programın tek çemberidir (2026.499 ·
   2-tasarim/bilesenler.css · .ns-daire); burada yalnız ölçüsü
   küçültülür. Hareket azaltılmışken ne olacağını da orası bilir. */
.defter-donen {
  width: 14px;
  height: 14px;
}

/* Tarih ve tutar yan yana: ikisi de kısa, alt alta yazmak paneli boşuna
   uzatıyordu. */
.kayit-ikili {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: calc(var(--bosluk) * 1.5);
}

@media (max-width: 420px) {
  .kayit-ikili { grid-template-columns: 1fr; }
}

/* Tarih kutusu artık maskeli bir metin kutusu; tarayıcının kendi tarih
   kutusundan kalan iç boşluklar temizlenir ki öteki alanlarla aynı
   hizada dursun. */
.alan-kutu-tarih {
  -webkit-appearance: none;
  appearance: none;
  text-align: left;
  font-variant-numeric: tabular-nums;
}

/* Fatura beş sütunlu bir kalem tablosu taşıyor; onay penceresi genişliği
   ona dar geliyor ve "Tutar" sütunu görüş dışında kalıyordu. Fatura
   görünümü taşıyan panel geniş ekranda açılır — telefonda zaten tam
   genişlik. Sınıf panel açılırken verilir (NS.pencere.ac · genis), içerik
   gelince değil: sonradan genişleyen panel bir anda büyüyüp göze
   çarpıyordu. */
@media (min-width: 720px) {
  .pencere-genis { max-width: 720px; }
}

/* Geniş ekranda daha da açılır (2026.230 · kullanıcının isteği: "açılan
   formu güzelleştir · pencere daha geniş olsun"). Kâr-Zarar dökümünde
   tarih · açıklama · pay · tutar yan yana durur; 640 piksele açıklama
   sığmıyor ve satırlar iki katına çıkıyordu. Telefonda değişen bir şey
   yok — orada pencere zaten tam genişlik. */
@media (min-width: 1100px) {
  .pencere-genis { max-width: 960px; }
}

/* Fatura belgesi geniş panelden de geniş (2026.540): dokuz sütunlu
   kalem tablosu 960px'e sığmıyor ve yatay kaydırma bir belgeyi okunmaz
   yapıyor. Telefonda değişen bir şey yok. */
@media (min-width: 900px) {
  /* Panel kâğıdın boyunda: dikey A4 (794px) artı panelin kendi payı. */
  .pencere-belge.pencere-genis { max-width: min(860px, 94vw); }
}


/* ---------- Gün Sonu Aktarımı · karşılaştırma kartı ----------
   Ekran bir form kâğıdı gibi durur: tepede başlık, tarih ve dosya adı,
   ortada Samba/Gerçekleşen/Fark karşılaştırması, altta Kaydet. Kullanıcının
   gönderdiği örnek tasarıma göre kuruldu (6-belgeler/kararlar.md).

   Üç sütun karşılaştırılıyor: dosyanın söylediği, gerçekte olan, aradaki
   fark. Rakamlar sağa yaslı ve eşit genişlikte (tabular-nums) — göz
   sütunu yukarıdan aşağı tarayacak, basamaklar kaymamalı.

   "Muhasebe Kaydı" ekranı (kayitCiz) da aynı .gs-kart/.gs-tepe kabuğunu
   kullanır — iki sayfa tek görsel dilin parçasıdır. */
.gs-kart {
  max-width: 900px;
  margin: 0 auto calc(var(--bosluk) * 3);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  box-shadow: var(--golge);
  overflow: hidden;
}

.gs-tepe {
  position: relative;
  padding: calc(var(--bosluk) * 3.5) calc(var(--bosluk) * 3) calc(var(--bosluk) * 2.5);
  text-align: center;
  border-bottom: 1px solid var(--ayirici);
}

.gs-tepe-baslik {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
}

/* ---- Gün ve şube · dosya okununca sorulan iki şey ----
   Tepedeki küçük gri tarih kutusunun yerini aldı. Sebebi: o kutu bir
   ayrıntı gibi duruyordu, oysa gün ve şube kaydın KİMLİĞİ — rapor
   mükerrer denetimini ikisiyle yapıyor (5-veritabani/020) ve bütün hareketler o
   şubeye yazılıyor. Karşılaştırma tablosunun hemen üstünde, adıyla ve
   altında ne olduğu yazılı olarak duruyorlar. */
/* ÜÇ ALAN OLDU (2026.381 · Gün · Şube · Gelir hesabı): dar ekranda
   yan yana sığmadıkları anda alt satıra insinler, sıkışıp okunmaz hâle
   gelmesinler. */
.gs-secim {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 3);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.gs-secim-alan {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 0 1 240px;
}

.gs-secim-ad {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .07em;
  text-transform: uppercase;
  font-weight: 700;
  opacity: .55;
}

/* Seçici artık sarmalayıcı bir öğedir (NS.form.aranan · 2026.319);
   yükseklik ve zemin içteki kutunun işi, sarmalayıcının değil. */
.gs-secim-kutu .sec-kutu {
  height: var(--form-alan);
  background: var(--yuzey);
}

.gs-secim-not {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .5;
}

/* Seçilmemiş şube kırmızı çerçeveyle bekler — kaydetmeden önce
   doldurulacağı satırın kendisinden okunsun, düğmeye basınca öğrenilmesin. */
.gs-secim-eksik .gs-secim-kutu .sec-kutu { border-color: var(--hata); }
.gs-secim-eksik .gs-secim-not { color: var(--metin-hata); opacity: .9; }

@media (max-width: 900px) {
  .gs-secim {
    flex-direction: column;
    gap: calc(var(--bosluk) * 1.5);
    padding: calc(var(--bosluk) * 2);
  }

  .gs-secim-alan { flex: none; }
}

.gs-tepe-dosya {
  display: block;
  margin-top: 2px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .45;
}

.gs-baska { position: absolute; right: calc(var(--bosluk) * 3); top: calc(var(--bosluk) * 3.5); }

/* Muhasebe kaydı ekranında "geri dön" sol üstte durur — sağ üst
   .gs-baska'nın aynası, örnek tasarımdaki gibi. */
.gs-geri { position: absolute; left: calc(var(--bosluk) * 3); top: calc(var(--bosluk) * 3.5); }

/* =====================================================================
   Gün Sonu kâğıdı · .gs-kagit
   ---------------------------------------------------------------------
   Gün sonu akışının üç sayfası — kontrol formu, nakit masraflar, muhasebe
   kaydı — İrsaliye Aktarımı'nın mal giriş kartıyla ve Fatura Aktarımı'nın
   detay kâğıdıyla aynı dili konuşur (2026.170 · kullanıcının kararı):
   oyuk zeminli tepede solda kırmızı başlık, altında künye satırı,
   sağda o sayfanın işleri; tablo kendi kutusunda, kâğıdın kenarından
   payla; en altta oyuk zeminli altlıkta solda not, sağda büyük rakam ve
   düğme.

   Sınıf yalnız bu üç sayfaya konur. .gs-kart kabuğunu ödünç alan öteki
   ekranlar (banka, kredi kartı, gider grupları, kullanıcılar, sıfırlama)
   eski ortalanmış tepesinde kalır — onlar bu akışın parçası değil.
   İşaretleme: 4-ekranlar/1-aktarimlar/gun-sonu-aktarimi.js
   ===================================================================== */

.gs-kagit .gs-tepe {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  text-align: left;
  background: var(--oyuk);
}

.gs-tepe-yazi { min-width: 0; }

.gs-kagit .gs-tepe-baslik {
  margin: 0;
  color: var(--defter-koyu);
  letter-spacing: normal;
  text-transform: none;
}

.gs-kagit .gs-tepe-dosya {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Sayfanın işleri sağ üstte, akışın içinde: eski .gs-baska/.gs-geri
   mutlak konumlu duruyordu ve sola yaslanan başlığın üstüne binerdi. */
.gs-tepe-sag {
  display: flex;
  flex: none;
  gap: var(--bosluk);
}

.gs-kagit .gs-baska,
.gs-kagit .gs-geri { position: static; }

/* Gün ve şube şeridi kâğıdın kendi zeminini kullanır: tepe artık oyuk,
   iki oyuk şerit üst üste gelirse ikisi de ayraç olmaktan çıkar. */
.gs-kagit .gs-secim { background: transparent; }

/* Tablo kâğıdın kenarına dayanmaz, irsaliyedeki gibi payla durur. */
.gs-kagit > .tablo-sarmal {
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
}

.gs-kagit .gsk-altlik {
  /* Not solda kalan payı alır; rakam ve düğmeler sağda toplanır. Notun
     olmadığı sayfada (muhasebe kaydı) düğmeler yine sağda durur. */
  justify-content: flex-end;
  gap: calc(var(--bosluk) * 2.5);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  border-top: 1px solid var(--kart-kenar);
  border-bottom: 0;
  background: var(--oyuk);
}

/* Not solda kalan payı alır, rakam ile düğme sağda toplanır. */
.gs-kagit .gsk-altlik-not { flex: 1 1 180px; }

.gs-altlik-toplam {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  flex: none;
  text-align: right;
}

.gs-altlik-toplam > span:first-child {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .6;
}

/* Toplam fark faturanın genel toplamıyla aynı boyda durur: sayfanın tek
   ana rakamı odur. Sıfırsa soluk kalır — "tuttu" demenin sessiz yolu. */
.gs-altlik-toplam .gs-fark {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
}

@media (max-width: 899.98px) {
  .gs-kagit .gs-tepe {
    flex-direction: column;
    gap: var(--bosluk);
    padding: calc(var(--bosluk) * 2);
  }

  /* Telefonda tablo kâğıdın kenarına yaklaşır: dört sütun 390px'e zaten
     zor sığıyor, yanlardan alınan her piksel satır adından gidiyor ve
     "Personel İkramı" hece hece kırılıyordu. */
  .gs-kagit > .tablo-sarmal { margin: var(--bosluk) calc(var(--bosluk) / 2); }

  .gs-kagit .gsk-altlik {
    flex-direction: column;
    align-items: stretch;
    gap: calc(var(--bosluk) * 1.5);
    padding: calc(var(--bosluk) * 2);
  }

  /* Alt alta dizilen sütunda "flex: 1 1 180px" YÜKSEKLİK temeli olur:
     not bloğu 180px'e uzayıp altına kocaman bir boşluk bırakıyordu. */
  .gs-kagit .gsk-altlik-not { flex: none; }

  .gs-altlik-toplam {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--bosluk);
    width: 100%;
  }

  .gs-kagit .gsk-altlik .dugme-birincil { width: 100%; }
}

.gs-tablo {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

/* Sütun başlıkları düz durur — büyük harf ve aralıklı değil, gönderilen
   örnek tasarımdaki gibi soluk gri ve normal ağırlıkta. */
.gs-tablo thead th {
  height: var(--tablo-baslik-satir);
  padding: 0 calc(var(--bosluk) * 2);
  text-align: left;
}

.gs-tablo td {
  height: var(--tablo-giris-satir);
  padding: 0 calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

.gs-tablo tbody tr:last-child td { border-bottom: 0; }

/* Parasal sütunlar sağa yaslı; başlık da öyle, yoksa göz iki ayrı yere
   bakar (bkz. 2-tasarim/bilesenler.css · aynı düzeltme tabloda da yapıldı). */
.gs-tablo th.gs-para,
.gs-tablo td.gs-para {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Sütun genişlikleri sabit: parasal üç sütun ölçüsünü korur, kalan bütün
   pay satır adına gider. Eskiden sütunlar içeriğe göre büyüyüp
   küçülüyordu — bir kutuya yazdıkça ad sütunu daralıp genişliyor ve
   tablo oynuyordu. */
.gs-tablo th.gs-para:nth-child(2),
.gs-tablo td.gs-para:nth-child(2) { width: 132px; }

.gs-tablo th:nth-child(3),
.gs-tablo td:nth-child(3) { width: 168px; }

.gs-tablo th:nth-child(4),
.gs-tablo td:nth-child(4) { width: 132px; }

/* =====================================================================
   Gün Sonu · ikili düzen
   ---------------------------------------------------------------------
   Solda o an yapılan iş, sağda işlenmiş gün sonları — İrsaliye
   Aktarımı'nın düzeninin aynısı (2026.172 · kullanıcının kararı).
   Kırılım orada olduğu gibi 1200'dür: dar ekranda iki sütun yan yana
   durmaz, liste tablonun altına iner.

   Oran 8/4: soldaki karşılaştırma tablosu dört sütun taşıyor (üçü sabit
   ölçülü parasal sütun), sağdaki liste ise tarih · rapor no · tutar —
   üçü de kısa. Eşit bölünseydi sol sütunda satır adına pay kalmazdı.

   Nakit masraflar, muhasebe kaydı ve "işlendi" sayfaları .gs-tek ile
   tek sütuna döner: onlar odaklanılan ara adımlardır, sekiz sütunlu
   defter blokları bütün genişliği ister.
   ===================================================================== */

.gs-ikili {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 3);
  align-items: start;
}

@media (min-width: 1200px) {
  .gs-ikili:not(.gs-tek) {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  }
}

.gs-tek .gs-sag { display: none; }

/* Sütunun içindeki kart ortalanmaz ve genişliğini sınırlamaz: kolon
   zaten ölçüyü veriyor. Tek sütunda eski 900px'lik ölçü geri gelir. */
.gs-sol > .gs-kart,
.gs-sag > .gs-kart {
  max-width: none;
  margin: 0;
}

.gs-tek .gs-sol > .gs-kart { max-width: 900px; margin: 0 auto; }

/* KONTROL FORMU BÜTÜN GENİŞLİĞİ KAPLAR (2026.576). Sağdaki "Gün Sonu
   Kayıtları" sütunu kalkınca gs-tek hep açık kaldı ve yukarıdaki 900px
   kapağı kontrol formuna da düştü — kart kuşak şeridinin yarısı kadar
   duruyordu. Kapak yalnız nakit masraflar ve muhasebe kaydı içindir;
   onlar odaklanılan ara adımlardır ve dar kutuda daha iyi okunur. */
/* A4 ORTALAMA KALKTI (2026.584). 2026.578'de kontrol formu tek bir kâğıt
   genişliğinde ortalanıyordu; form artık ÜÇ SÜTUN (kullanıcının isteği:
   "gün sonu formunu da 3'e bölelim") ve üçü yan yana bir A4'e sığmaz.
   Sayfanın tamamını kaplar. Kapak yine nakit masraflar ile muhasebe
   kaydında duruyor — onlar tek sütunluk ara adımlar. */

/* ===== GÜN SONU KONTROL FORMU · ÜÇ SÜTUN (2026.584) =====
   Kullanıcının tarifi: "3 tabloda aynı ölçüde olacak, boş olsa bile
   ölçüsü bozulmayacak" · "kartlar büyük bir kartın içinde olsun,
   premium" · "rengi iyi olmamış ve dokulu olmalı" · "puntolar biraz
   daha küçük" · "kutu yerine çizgi". */
/* KUŞAĞA YAPIŞIK VE KENARA HİZALI (2026.587 · kullanıcının isteği:
   "kartlarda yukarıya yapışık olsun" · "en sol sütunu sola hizala").

   Sayfa gövdesinin 16px'lik payı üç kartı hem aşağı itiyor hem içeri
   alıyordu: kuşak sayfanın kenarından başlıyor, kartlar 16px içeriden.
   Fatura Aktarımı'nın listesi de aynı yolu izliyor (.fatura-birlesik).
   Alt pay duruyor: sayfanın dibiyle içeriğin arasında boşluk kalsın. */
.sayfa-icerik:has(> .gs-ikili > .gs-sol > .gs-form) {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Kuşağın alt köşeleri de düzleşir: üç kart onun devamı gibi dursun. */
.sayfa-kusak-serit:has(.fatura-oz) + .sayfa-icerik .gsf-uclu { margin-top: 0; }

.gsf-uclu {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  /* ARALIK DAR (2026.584). Örnek tasarım 1500px'lik boş bir sayfada
     çizilmişti ve her kart 467px'ti; gerçek ekranda solda yan panel var,
     karta 375px kalıyor. Aradaki 90px'i dolgulardan geri alıyoruz —
     yoksa "128.450,75 ₺" hücresine sığmıyor. */
  gap: calc(var(--bosluk) * 1.75);
  /* ÜÇÜ DE EN UZUNU KADAR · biri boş kalsa da boyu tutar; kullanıcının
     asıl şartı buydu. */
  align-items: stretch;
  margin-bottom: calc(var(--bosluk) * 3);
}

/* ---- Büyük kart · parşömen ---- */
.gsf-kart {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--altin);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--kart-golge);
  /* DOKU · uygulamanın kendi krem motifi artı kâğıt greni. Uydurma bir
     desen değil: yan panelin deseni (--yan-desen · ana projede boş). */
  background-color: #F6EEDD;
  background-image:
    var(--yan-desen),
    radial-gradient(rgba(140, 110, 70, .13) .6px, transparent .6px);
  background-size: 190px auto, 3px 3px;
  background-blend-mode: multiply, normal;
}

/* İÇERİDE İKİNCİ TEL · kartı kâğıttan ayıran asıl işaret, gölge değil. */
.gsf-kart::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px solid var(--altin-soluk);
  border-radius: 13px;
  pointer-events: none;
  z-index: 2;
}

.gsf-tepe {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.6) calc(var(--bosluk) * 2.25) calc(var(--bosluk) * 1.4);
  border-bottom: 1px solid var(--altin-koyu);
  background: linear-gradient(180deg, #EFE2C6 0%, #E7D7B4 100%);
}

.gsf-ad {
  font-family: var(--yazi-baslik);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--defter-koyu);
}

.gsf-sira {
  margin-left: auto;
  font-size: 9.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #8A7048;
}

/* SÜTUN ADLARI BİR KEZ · her küçük kartta tekrarlansaydı bir sütunda
   dört kez yazılırdı. Izgara aşağıdaki tablo sütunlarıyla aynı oranda. */
.gsf-efsane {
  display: grid;
  grid-template-columns: 31% 22.5% 23% 23.5%;
  align-items: center;
  height: 24px;
  padding: 0 calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--altin-soluk);
  background: rgba(255, 253, 248, .55);
  font-size: 9px;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #8A7048;
}
.gsf-efsane span + span { text-align: right; }
/* Elle girişte satır iki sütundur; efsane de ona uyar. */
.gsf-efsane-elle { grid-template-columns: 55% 45%; }

.gsf-govde {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 1.25);
  padding: var(--bosluk);
}
/* Kısa sütunun altı boş kalır, kartın boyu yine komşusu kadardır. */
.gsf-bosluk { flex: 1; }

/* ---- Küçük kart · dokunun üstünde düz kâğıt ---- */
/* SATIRLAR BEYAZA YAKIN, ARALARINDA YALNIZ İNCE BİR ÇİZGİ (2026.596 ·
   kullanıcının seçtiği B seçeneği). Krem şerit kalktı: kâğıt dokusu
   zaten büyük kartın zeminindeydi, bir de her ikinci satırı boyayınca
   sayfa sararıyor ve rakamlar iki ayrı tonun üstünde okunuyordu.
   Ayrımı artık çizgi yapıyor, renk değil. */
.gsf-grup {
  background: #FFFDF9;
  border: 1px solid var(--kenar);
  border-radius: 11px;
  overflow: hidden;
  box-shadow: 0 1px 1px rgba(74, 53, 36, .05),
              0 4px 10px -6px rgba(74, 53, 36, .22);
}

.gsf-grup-tepe {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  /* SOL DOLGU SATIRLARINKİYLE AYNI (2026.588): grubun adı ile altındaki
     satır adları tek hizada başlasın. Sağ dolgu duruyor — oradaki
     "Toplam …" rakamı kenara yapışmasın. */
  padding: 7px 12px 6px 5px;
  border-bottom: 1px solid #EFE6D4;
  background: linear-gradient(180deg, #F7F0E1 0%, #F3EAD6 100%);
}

.gsf-grup-ad {
  font-size: 9.5px;
  letter-spacing: .07em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--defter-koyu);
}

/* ---- Grup başlığı: simge · ad · toplam · ok (2026.595) ----
   Kullanıcının gönderdiği tasarım. Simge adın solunda, ne olduğunu tek
   bakışta söyler; ok en sağda, grubun açılıp kapandığını. */
.gsf-grup-simge {
  display: inline-flex;
  align-items: center;
  flex: none;
  color: var(--ikinci);
  opacity: .8;
}

/* BAŞLIĞIN TAMAMI DÜĞMEDİR: yalnız oka basmak gerekseydi 13px'lik bir
   hedefe nişan almak gerekirdi. Ok nereye basılacağını söyler, basılan
   yer bütün satırdır. */
.gsf-grup-tepe[data-kart-grup] { cursor: pointer; }
.gsf-grup-tepe[data-kart-grup]:hover { background: linear-gradient(180deg, #F2E9D6 0%, #EEE3CB 100%); }
.gsf-grup-tepe[data-kart-grup]:focus-visible {
  outline: 2px solid var(--vurgu);
  outline-offset: -2px;
}

.gsf-grup-ok {
  flex: none;
  margin-left: 6px;
  width: 13px;
  text-align: center;
  font-size: 11px;
  line-height: 1;
  color: #8A7048;
}

/* Kapalı grupta başlık tek başına kalır; altındaki çizgi gereksiz. */
.gsf-grup-kapali .gsf-grup-tepe { border-bottom: 0; }

.gsf-grup-sag {
  margin-left: auto;
  font-size: 10px;
  color: #8A7048;
  font-variant-numeric: tabular-nums;
}
.gsf-grup-sag b { color: var(--metin); font-weight: 650; }

.gsf-dip {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  margin-top: auto;
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.25);
  border-top: 1px solid var(--altin-koyu);
  background: linear-gradient(180deg, #EFE2C6 0%, #E7D7B4 100%);
  font-size: 11px;
  color: #7A6038;
}
.gsf-dip b {
  margin-left: auto;
  font-size: 15.5px;
  color: var(--defter-koyu);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}

/* ---- Tablo · küçük kartın içinde ---- */
.gsf-tablo { table-layout: fixed; width: 100%; }
/* ADA DAHA ÇOK YER (2026.584). Üç sütun yan yanayken bir kartın eni
   ~350px kalıyor; ilk denemede "GARANTİ BANKASI" ve "Türkiye İş
   Bankası" üç noktayla kesiliyordu. Rakam sütunları daraldı, ad
   genişledi — rakam zaten ada göre kısa. */
/* ÖLÇÜ ORAN OLARAK VERİLİR, PİKSEL OLARAK DEĞİL. Ortak .gs-tablo
   kuralı sütunlara sabit piksel veriyor (132px / 168px / 132px); o
   ölçüler tek geniş tablo içindi. Üç sütunlu kartta toplamları taşıyor
   ve Genresman sütunu ada göre iki kat geniş kalıyordu. Seçiciler
   ".gs-form ... td.gs-para" ile yazıldı: ortak kural (.gs-tablo
   td.gs-para:nth-child(2)) aynı ağırlıkta, biri kazanmalı. */
/* RAKAM SÜTUNLARI BİRAZ GENİŞLEDİ (2026.587). Punto 12px'e çıkınca
   yedi haneli tutar ("1.231.372,92" · 95px) 91px'lik hücreye
   sığmıyordu. Pay ad sütunundan alındı: uzun ad zaten üç noktaya
   iniyor ve tamamı üstüne gelince okunuyor, kesilmiş bir RAKAM ise
   yanlış okunur. */
.gs-form .gsf-tablo tr > *:nth-child(1),
.gs-form .gsf-tablo td.gs-para:nth-child(1) { width: 29%; }
.gs-form .gsf-tablo tr > *:nth-child(2),
.gs-form .gsf-tablo td.gs-para:nth-child(2) { width: 25%; }
/* Gerçekleşen en geniş rakam sütunu: içinde KUTU var ve kutu, yazının
   üstüne bindirilen ₺ için de yer ayırıyor. */
.gs-form .gsf-tablo tr > *:nth-child(3),
.gs-form .gsf-tablo td.gs-para:nth-child(3) { width: 26%; }
/* Fark sütunu en dar olan: çoğu satırda "0,00" yazar. 18%'e kadar
   indirilip denendi; Net Satış gibi KALIN satırlarda "32.821,88"
   kesiliyordu, 20%'de kesilmiyor. */
.gs-form .gsf-tablo tr > *:nth-child(4),
.gs-form .gsf-tablo td.gs-para:nth-child(4) { width: 20%; }
.gs-form .gsf-tablo.gs-tablo-elle tr > *:nth-child(1),
.gs-form .gsf-tablo.gs-tablo-elle td.gs-para:nth-child(1) { width: 55%; }
.gs-form .gsf-tablo.gs-tablo-elle tr > *:nth-child(2),
.gs-form .gsf-tablo.gs-tablo-elle td.gs-para:nth-child(2) { width: 45%; }

/* PUNTOLAR KÜÇÜK (kullanıcının isteği: "puntolar biraz daha küçük
   olabilir"). Üç sütun yan yana durunca satır da kısalmalı. */
/* RAKAMLAR BÜYÜDÜ (2026.587 · kullanıcının isteği: "rakamlar daha
   büyük olsun"). 2026.584'te üç sütun dar kaldığı için puntolar 10px'e
   inmişti; kartlar kenara hizalanınca her birine 11px daha geldi ve
   ekranın asıl okunan şeyi bu rakamlar.

   Kart KENDİ ENİNİ ölçüyor (container): geniş kartta büyük, dar kartta
   eski puntosuna döner. Ekran genişliğine bakmak yanlış olurdu — yan
   panel açık mı kapalı mı, kaç sütun var, hepsi kartın enini değiştirir
   ve asıl soru rakamın hücresine sığıp sığmadığı. */
.gsf-kart { container-type: inline-size; container-name: gsf; }

.gsf-tablo td {
  height: 34px;
  padding: 0 4px;
  font-size: 12px;
  border-bottom: 1px solid #EFE6D4;
}
.gsf-tablo tr:last-child td { border-bottom: 0; }
/* RAKAM HÜCRESİ TAŞMAZ. "128.450,75 ₺" dar sütunda komşusunun üstüne
   biniyordu; rakam artık kendi hücresinde kalır ve sığmazsa kısalır —
   üst üste binmiş iki rakam okunmaz bir şeydir, kısalmış bir rakam ise
   hiç değilse yanlış okunmaz. */
.gsf-tablo .gs-para {
  font-size: 12px;
  letter-spacing: -.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* ₺ VERİ HÜCRESİNDEN KALKTI (2026.584). Örnek tasarım 467px'lik
   kartlarda çizilmişti; gerçek kartta 375px var ve "128.450,75 ₺"
   hücreye sığmayıp üç noktayla kesiliyordu. Kesilmiş bir rakam yanlış
   okunur, eksik bir simge okunmaz bile: tablodaki her rakam zaten
   liradır, küçük kartın başlığında ("Toplam 128.450,75 ₺"), sütun
   dibinde ve kuşak şeridinde simge duruyor. Kutunun içindeki ₺
   (.gs-kutu-tl) kalır — orası yazılacak yerdir, birimi söylemeli. */
.gsf-tablo td.gs-para .gs-tl { display: none; }
.gsf-tablo .gs-tl { font-size: 9px; margin-left: 1px; }
/* FARK SÜTUNU EN UZUN RAKAMI TAŞIR · işaretiyle birlikte
   "−128.700,75" on iki karakter. Bir punto küçüğü, kesilmiş bir
   rakamdan iyidir. */
/* Fark sütunu en uzun rakamı taşır ("−128.700,75"), bir punto küçük. */
.gsf-tablo td.gs-para:nth-child(4) { font-size: 11px; }
/* SOLA HİZALI (2026.588 · kullanıcının isteği: "en sol sütunlarda sola
   hizalansın, İskonto İkram X gibi").

   Ortak kural veri satırlarının adını 32px içeriden başlatıyor
   (.gs-satir .gs-ad) — tek uzun tabloda bu, grup başlıklarından ayırt
   etmeye yarıyordu. Üç sütunlu kartta grubun adı zaten küçük kartın
   kendi başlığında duruyor, girintinin anlatacağı bir şey kalmadı;
   yalnız 32px yiyor ve adları üç noktaya itiyordu. Satırlar kartın sol
   kenarından başlar. */
.gsf-tablo .gs-satir .gs-ad,
.gsf-tablo .gs-vurgu .gs-ad,
.gsf-tablo .gs-alt-toplam .gs-ad,
.gsf-tablo .gs-acilir .gs-ad { padding-left: 4px; }

.gsf-tablo .gs-ad {
  font-size: 12px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Bölüm ayraçları ve toplam satırları dokudan biraz koyu. */
.gsf-tablo .gs-vurgu td,
.gsf-tablo .gs-alt-toplam td { background: #F7F0E1 !important; }

/* KUTU YERİNE ÇİZGİ (kullanıcının isteği: "kutu yerine çizgi olsun").
   Deftere elle yazar gibi: rakamın altında ince altın bir satır. Boşken
   çizgi noktalıdır — nereye yazılacağı yine belli, ama sayfa kutu kutu
   görünmüyor. */
/* GİRİŞ HÜCRESİ · dar kartta dolgusu da dar olmalı, yoksa kutu
   sütununun yarısı boşluk oluyor. 2026.587'de 5px'ten 2px'e indi:
   punto 12px'e çıkınca "1.231.372,92" kutuya sığmıyor ve kesiliyordu;
   kesilmiş bir rakam yanlış okunur. */
.gsf-tablo .gs-giris { padding: 0 2px; }
.gsf-tablo .gs-kutu {
  height: 24px;
  min-height: 24px;
  /* Sağda ₺ için yer bırakılır: ₺ kutunun ÜSTÜNE bindirilen bir
     kaplamadır (.gs-kutu-tl) ve yer ayrılmazsa rakamın üzerine biner.
     Payı 11px'ten 9px'e indi (2026.587): simge 10px ve yedi haneli
     tutara her piksel lazım. */
  padding: 0 9px 0 1px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--altin-koyu);
  border-radius: 0;
  box-shadow: none;
}
.gsf-tablo .gs-kutu:placeholder-shown,
.gsf-tablo .gs-kutu:not(:focus):is([value=""], :invalid) { border-bottom-style: dotted; }
.gsf-tablo .gs-kutu {
  font-size: 12px;
}
.gsf-tablo .gs-kutu:focus {
  border-bottom-width: 2px;
  border-bottom-color: var(--vurgu);
  box-shadow: none;
  outline: none;
}
.gsf-tablo .gs-kutu-tl { right: 1px; font-size: 10px; }



/* ---- Açılır satır · Garanti Bankası ----
   Kullanıcının isteği: "Garanti Bankası normal gözüksün, altındakiler
   farklı satır olsun, alt satır ve gizli olsun, kullanıcı isterse
   açsın". Satır kalın değil, komşularıyla aynı; yalnız solundaki ok
   açılabildiğini söyler. Parçalar kapalı başlar (ağaçta kapaliBasla). */
/* "GARANTİ BANKASI NORMAL GÖZÜKSÜN" (kullanıcının isteği). Ortak
   .gs-acilir kuralı bu satıra üç işaret birden takıyordu: kalın yazı,
   koyu zemin, solda kırmızı şerit ve büyük harf. Burada üçü de kalkar —
   satır komşularıyla aynı; yalnız solundaki küçük ok açılabildiğini
   söyler. */
.gsf-tablo .gs-acilir td {
  font-weight: 400;
  background: transparent;
  border-top: 0;
}
.gsf-tablo .gs-acilir .gs-ad {
  font-size: 12px;
  line-height: normal;
  letter-spacing: 0;
  text-transform: none;
  color: var(--metin);
}
.gsf-tablo .gs-acilir .gs-ad::before { content: none; }
.gsf-tablo .gs-acilir td.gs-para { font-size: 12px; color: var(--metin); }

/* BRÜT SATIŞ VE NET SATIŞ · ortak kural bu iki satırı 54px yüksekliğe
   ve başlık puntosuna çıkarıyordu; dar kartta rakamları taşıyordu.
   Burada komşularıyla aynı boyda dururlar, ayrıcalıkları yalnız kalın
   yazı ve üstlerindeki çizgi. */
.gsf-tablo .gs-vurgu td {
  height: 38px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  border-top: 1px solid var(--altin-soluk);
}
/* Brüt Satış ile Net Satış sayfanın ANA rakamları; komşularından küçük
   kalmasınlar (2026.587). */
.gsf-tablo .gs-vurgu td.gs-para { font-size: 12px; }
.gsf-tablo .gs-vurgu .gs-ad { font-size: 12px; }

/* DAR KARTTA ESKİ PUNTOYA DÖNER · rakam kesilmektense küçülsün
   (2026.587). Sınır ölçülerek bulundu: 380px'in altında 12px'lik
   "1.231.372,92" hücresine sığmıyor. */
@container gsf (max-width: 379.98px) {
  .gsf-tablo td { font-size: 11px; }
  .gsf-tablo .gs-para { font-size: 10px; }
  .gsf-tablo td.gs-para:nth-child(4) { font-size: 9.5px; }
  .gsf-tablo .gs-ad { font-size: 11px; }
  .gsf-tablo .gs-kutu { font-size: 10px; }
  .gsf-tablo .gs-kutu-tl { font-size: 9px; }
  .gsf-tablo .gs-acilir .gs-ad { font-size: 11px; }
  .gsf-tablo .gs-acilir td.gs-para { font-size: 10px; }
  .gsf-tablo .gs-vurgu td { font-size: 11px; }
  .gsf-tablo .gs-vurgu td.gs-para { font-size: 10px; }
  .gsf-tablo .gs-vurgu .gs-ad { font-size: 11px; }
}

/* ÇOK DAR KARTTA BİR PUNTO DAHA (2026.587). 330px'in altında yedi
   haneli tutar 10px'te de kesiliyordu — bu, üç sütuna geçilirken de
   böyleydi. Rakam kesilmesin diye bir punto daha iner; ad zaten üç
   noktaya iniyor ve tamamı üstüne gelince okunuyor. */
@container gsf (max-width: 329.98px) {
  .gsf-tablo .gs-para,
  .gsf-tablo .gs-vurgu td.gs-para,
  .gsf-tablo .gs-acilir td.gs-para { font-size: 9px; }
  .gsf-tablo td.gs-para:nth-child(4) { font-size: 8.5px; }
  .gsf-tablo .gs-kutu { font-size: 9px; }
}
.gsf-tablo .gs-ok {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 13px;
  height: 13px;
  margin-right: 5px;
  border: 1px solid var(--altin-soluk);
  border-radius: 4px;
  background: rgba(255, 253, 248, .7);
  font-size: 8px;
  line-height: 1;
  color: #8A7048;
}

/* Parça satırları içeri kaymış, solunda ince bir bağlantı çizgisi:
   hangi satıra ait olduğu bakınca anlaşılsın. */
.gsf-tablo .gs-satir-parca td {
  height: 29px;
  font-size: 10.5px;
  color: #6B5942;
  background: #FAF5EA !important;
  border-bottom: 1px dotted var(--altin-soluk);
}
/* PARÇA SATIRI HÂLÂ İÇERİDEN BAŞLAR · o bir alt satır (Garanti'nin
   Kredi Kartı · Debit Kartı parçaları) ve solundaki çizgi bunu
   söylüyor. Girinti komşularıyla orantılı kaldı: onlar 4px'e inince
   bu da 30px'ten 16px'e indi (2026.588). */
.gsf-tablo .gs-satir-parca .gs-ad {
  position: relative;
  padding-left: 16px;
  font-size: 10.5px;
}
/* Boş hücrenin tiresi ortada durur, kendi zemini yoktur. */
.gsf-tablo .gs-bos-hucre { background: transparent; }
.gsf-tablo .gs-satir-parca .gs-ad::before {
  content: "";
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  border-left: 1px solid var(--altin-soluk);
}
.gsf-tablo .gs-satir-parca .gs-kutu { height: 21px; min-height: 21px; font-size: 10.5px; }

/* Garanti dosyası düğmesi satırın içinde küçük durur. Ortak düğme
   ölçüsü (min-height: var(--dugme) · 40px) 34px'lik satırı şişirirdi. */
.gsf-tablo .gs-grup-dugme {
  min-height: 0;
  font-size: 9.5px;
  padding: 1px 6px;
  line-height: 1.5;
}
/* ADIN YANINDAKİ HER ŞEY ADIN ALTINA İNER (2026.629 · Garanti dosyası
   düğmesi · 2026.630 · "Eşleşmedi" ve öteki rozetler).
   Kullanıcının bildirimleri: "Garanti bankası dosya aktarma düğmesi
   kaybolmuş" · "burada eşleşmeyen gözükmediği halde muhasebe
   önizlemesinde gözüküyor".
   Kaybolmamıştı: üç sütunlu kartta ad hücresi 107px ve düğme 86px;
   yan yana sığmayınca hücrenin `overflow: hidden` kuralı düğmeyi
   tamamen kesiyordu. Alt alta durunca ikisi de görünür — ad üç
   noktaya iner (tamamı üstüne gelince okunur), düğme tam kalır.
   POS kesinti notu da aynı yolda: o da kesiliyordu. */
/* Hücre TABLO HÜCRESİ kalır: `display: flex` verilince sütun ölçüsü
   dışına düşüyor ve 107px'lik hücre 31px'e iniyordu (ölçüldü). İçerik
   blok blok dizilerek alt alta iner. */
.gsf-tablo td.gs-ad-altli {
  white-space: normal;
  height: auto;
  min-height: 34px;
  padding-top: 5px;
  padding-bottom: 5px;
}
.gsf-tablo td.gs-ad-altli .gs-ad-metin {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gsf-tablo td.gs-ad-altli .gs-grup-dugme,
.gsf-tablo td.gs-ad-altli .gs-rozet {
  display: inline-block;
  margin: 2px 2px 0 0;
}
/* Uzun rozet ("Havale · banka gelince işlenecek") kendi içinde alt
   satıra iner; hücre onu artık kesmiyor. */
.gsf-tablo td.gs-ad-altli .gs-rozet { white-space: normal; text-align: left; }
.gsf-tablo .gs-rozet { font-size: 9px; }

@media (max-width: 1199.98px) {
  /* Dar ekranda üç sütun alt alta düşer; eşit ölçü kuralı yine geçerli,
     yalnız yan yana değil. */
  .gsf-uclu { grid-template-columns: minmax(0, 1fr); }
}
.gs-tek .gs-sol > .gsd-kart { max-width: 1160px; }

/* Sütunlar alt alta düştüğünde kart eski ölçüsüne döner: geniş ekranda
   tek başına uzayan bir form kâğıdı okunmuyor. */
@media (max-width: 1199.98px) {
  .gs-sol > .gs-kart,
  .gs-sag > .gs-kart { max-width: 900px; margin: 0 auto; }

  .gs-sol > .gsd-kart { max-width: 1160px; }
}

/* İşlenmiş günler · sağ sütunun kartı. Liste uzarsa kendi içinde kayar,
   sayfa aşağı uzamaz. */

.gs-kayit-liste {
  max-height: 60vh;
  overflow-y: auto;
  padding: 0 calc(var(--bosluk) * 2) calc(var(--bosluk) * 2);
}

.gs-kayitlar .gs-islenmis-satir:first-child { border-top: 0; }

.gs-kayit-bos {
  padding: calc(var(--bosluk) * 3) 0;
  text-align: center;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* ---- Elle giriş · karşılaştırma kapalı ----
   Samba dosyası olmadan girilen gün sonunda tablo iki sütuna iner: satır
   adı ve tutar. Dördüncü-sütun ölçüleri burada geçmez; tutar sütunu
   giriş kutusu taşıdığı için Gerçekleşen'in genişliğini alır.
   (2026.171 · kullanıcının kararı) */

.gs-tablo-elle th.gs-para:nth-child(2),
.gs-tablo-elle td.gs-para:nth-child(2),
.gs-tablo-elle th:nth-child(2),
.gs-tablo-elle td:nth-child(2) { width: 168px; }

/* "Satır ekle" tablonun içinde, ait olduğu grubun hemen altında durur:
   veresiye satırı veresiyelerin arkasına eklenir, listenin dışında bir
   düğme aranmaz. */

.gs-ekle-satir td {
  padding: var(--bosluk) calc(var(--bosluk) * 2);
  background: var(--oyuk);
}

@media (max-width: 899.98px) {
  .gs-tablo-elle th.gs-para:nth-child(2),
  .gs-tablo-elle td.gs-para:nth-child(2),
  .gs-tablo-elle th:nth-child(2),
  .gs-tablo-elle td:nth-child(2) { width: 132px; }
}

/* Muhasebe kaydı tablosu (kayitCiz) üç sütunlu: Hesap, Borç, Alacak.
   Genel dördüncü-sütun kuralı burada geçerli değil — Alacak, Borç ile
   aynı genişliği alır. */
.gsk-tablo th:nth-child(3),
.gsk-tablo td:nth-child(3) { width: 132px; }

.gs-ad {
  width: auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Tutarın yanında küçük soluk ₺: sayı kendi punto ve renginde kalır,
   sembol onu bastırmaz (bkz. 2-tasarim/bilesenler.css · ".hesap-tutar-birim" —
   aynı kural). currentColor'ı devralır: farkta kırmızı, vurguda koyu. */
.gs-tl {
  margin-left: 3px;
  font-size: var(--etiket-boy);
  opacity: .6;
  font-variant-numeric: normal;
}

/* Bant: bir bölüm ayracı — Satış İndirimleri, Fireler, Ödeme Yöntemleri,
   Yemek Platformları, Cari Hesap. Toplam taşımaz, yalnız başlığı; toplamı
   görmek isteyen altındaki satırları okur. Zemin rengi YALNIZ burada
   durur; tablodaki geri kalan her satır beyazdır.

   Zemin üst çubukla AYNI kırmızı (dolu var(--vurgu), soluk tint değil) —
   "belli olsun" dendi. Metin beyaz ve büyük durur, tıpkı üst çubuktaki
   gibi (aynı .gs-band'i Muhasebe Kaydı ekranı da paylaşır, bkz.
   bolumHtml()).

   BANT ÜST ÇUBUĞUN DİLİNİ KONUŞUR (kullanıcının kararı: "kırmızı şeritler
   kötü duruyor, desenli olsun"). Düz kırmızı bir dilim krem kâğıdın
   ortasında yamalı duruyordu; üst çubukta ne varsa bantta da o var —
   motif ve altındaki altın tel. Böylece bant sayfaya sonradan
   yapıştırılmış değil, kabuğun bir parçası gibi okunuyor. */
.gs-band td {
  position: relative;
  /* Kendi yığın bağlamını kurar ki motif katmanı (::before · z-index -1)
     zeminin ÜSTÜNDE, yazının ALTINDA kalsın. */
  z-index: 0;
  height: 44px;
  background-color: var(--vurgu);
  border-bottom: 2px solid var(--altin-koyu);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700;
  color: var(--yuzey);
}

/* Bandın motifi · üst çubuğun karosunun aynısı (--ust-desen · ana projede boş).
   Solukluğu üst çubuktakiyle aynı sayıdan okunmaz, burada bir tık daha
   sessizdir: bant 44px'lik ince bir şerit, aynı güçteki motif orada
   kalabalık görünüyor. */
.gs-band td::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: var(--ust-desen, none);
  background-size: 180px auto;
  opacity: .22;
  pointer-events: none;
}

/* Bütün alt satırlar (açılabilir grup başlığı, ara toplam, yaprak) aynı
   hizada durur — tek girinti, kademe yok. Kademelenme (kat kat girinti)
   merdiven gibi duruyordu ve iç içeliği anlatmıyordu, yalnız dağınık
   görünüyordu; hangi satırın hangi gruba ait olduğu artık bant başlığından
   ve kalınlıktan okunuyor. */
.gs-satir .gs-ad { padding-left: calc(var(--bosluk) * 4); }

/* GRUP BAŞLIĞI VERİ SATIRI GİBİ DURMAZ (kullanıcının kararı).
   Nakit Para · Bankalar · Yemek Kartları · Yemek Platformları · Tahsilat ·
   Veresiye — bunlar bir başlıktır, okunacak bir rakam değil. Eskiden
   yalnız kalın yazılıyordu ve alttaki satırlardan ayırt edilmiyordu;
   göz listeyi tararken nerede yeni bir grubun başladığını kaçırıyordu.

   Üç işaret birlikte çalışır: soluk zemin, solda vurgu renginde ince bir
   şerit ve küçük-büyük harfli etiket. Kırmızı bant (gs-band) bölüm
   ayracıdır ve bir üst kademedir; bu başlık onun altında, daha sessiz
   durur — iki kademe birbirine karışmasın. */
.gs-acilir td,
.gs-alt-toplam td {
  font-weight: 700;
  /* --defter-baslik zaten "başlık şeridi" için tanımlı gri; --oyuk bir
     tık açıktı ve başlık alttaki beyaz satırlardan yeterince ayrılmıyordu. */
  background: var(--defter-baslik);
  border-top: 1px solid var(--ayirici);
  border-bottom-color: var(--kenar);
}

/* Solda ince şerit: grubun nerede başladığını satırın en solundan söyler.
   Girintiyi bozmaz — şerit dolgunun içine, kenara yaslanır. */
.gs-acilir .gs-ad,
.gs-alt-toplam .gs-ad {
  position: relative;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .05em;
  text-transform: uppercase;
  /* Kalınlık 11px büyük harfte soluk griyle kayboluyordu; koyu gri
     yazıldığında ağırlık gerçekten görünüyor. */
  color: var(--defter-koyu);
}

.gs-acilir .gs-ad::before,
.gs-alt-toplam .gs-ad::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  border-radius: 2px;
  background: var(--vurgu);
}

/* Grubun tutarı başlıkla aynı sessizlikte durur: küçük harfe inmez,
   rakam okunaklı kalır ama veri satırının rakamı kadar öne çıkmaz. */
.gs-acilir td.gs-para,
.gs-alt-toplam td.gs-para {
  font-size: var(--kucuk-boy);
  color: var(--defter-koyu);
}

.gs-acilir[data-grup] { cursor: pointer; }

/* Ok grubun açık mı kapalı mı olduğunu söyler; kapalı satırda sağa,
   açıkken aşağı bakar (▸/▾ metin karakteri olarak kendisi döner, ok
   burada yalnız yerleşimini alır). */
.gs-ok {
  display: inline-block;
  width: 14px;
  margin-left: calc(var(--bosluk) * -2);
  margin-right: 2px;
  color: var(--gri-vurgu);
  font-size: 10px;
  opacity: .85;
}

/* Grubun gerçekleşen toplamı, girdi sütununun hizasında ama kutu değil:
   üst satıra elle yazılmaz, altındakilerden toplanır.

   SOLUK DEĞİL (kullanıcının kararı). Eskiden opacity .8 ile duruyordu:
   kutu olmadığını anlatmak için soluklaştırılmıştı ama rakam okunmaz
   oluyordu — grup başlığındaki toplam, satırlarındaki rakamların
   toplamıdır ve okunmak içindir. Kutu olmadığı zaten kutusuz
   durmasından belli. */
.gs-grup-ger { color: var(--defter-koyu); }

/* Brüt Satış ve Net Satış: sayfanın iki ana rakamı, ayrıntı değil —
   girintisiz, kalın, üstü çizgili. */
.gs-vurgu td {
  height: 54px;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 600;
  border-top: 2px solid var(--kenar);
}

/* Toplam Fark: sayfanın son satırı, beyaz zeminde kalın ve üstü çizgili
   durur — renk yalnız kırmızı bant başlıklarında, burada değil. */
.gs-toplam td {
  height: 56px;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 700;
  border-top: 2px solid var(--kenar);
  border-bottom: 0;
}

/* Girdi kutusu sütun başlığıyla aynı hizada bitmeli: hücre sağa
   yaslanır, yoksa "GERÇEKLEŞEN" başlığı kutunun sağından taşıyor ve göz
   iki ayrı yere bakıyordu. */
.gs-giris {
  padding: 0 calc(var(--bosluk) * 2);
  text-align: right;
}

.gs-kutu-sarma { position: relative; display: inline-block; }

/* ---- Genel İkram dökümü (2026.208) ----
   Tutarın solunda küçük bir "+" durur: satır kutusuz olduğu için tıkla-
   nacak bir yer lazım, ama rakamın kendisi ana bilgi olarak kalmalı.
   Bu yüzden düğme rakamın yerini almaz, önüne iliştirilir. */
.gs-dokum {
  margin-inline-end: calc(var(--bosluk) * .75);
  width: 22px;
  height: 22px;
  padding: 0;
  border: 1px solid var(--kenar);
  border-radius: 7px;
  background: var(--yuzey);
  color: var(--defter-koyu);
  font: inherit;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  vertical-align: middle;
}

.gs-dokum:hover { border-color: var(--defter-koyu); }

.gsi-not {
  margin: 0 0 calc(var(--bosluk) * 2);
  color: var(--ikinci);
  font-size: var(--etiket-boy);
}

/* Döküm penceresi · üstte TEK kayıtlık form, altında eklenenlerin
   listesi (2026.210 · kullanıcının kararı: "altta bir daha ikram ekli
   olmasın, tek kayıt kayıt olsun; gönderince bir daha gönderebilirsin").
   Alanlar alt alta durur: yan yana beş kutu sığmıyordu (2026.208). */
.gsi-form {
  display: flex;
  flex-direction: column;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kenar);
  border-radius: 12px;
  background: var(--yuzey);
}

.gsi-alan { display: flex; flex-direction: column; gap: calc(var(--bosluk) * .5); }

.gsi-etiket {
  font-size: var(--etiket-boy);
  color: var(--ikinci);
}

.gsi-alan .alan-kutu, .gsi-alan .trh { width: 100%; }

/* Tutar kutusu tek başına dar kalmasın: formun içinde tam genişlik alır,
   ₺ işareti sağ kenarda durur. */
.gsi-tutar { display: block; width: 100%; }
.gsi-tutar .gs-kutu { max-width: none; }

.gsi-uyari {
  margin-top: var(--bosluk);
  color: var(--metin-hata);
  font-size: var(--etiket-boy);
}

.gsi-ekle { margin-top: calc(var(--bosluk) * 1.5); width: 100%; }

/* Eklenenler · her biri tek satır: künye solda, tutar sağda, Sil sonda.
   Kutu değil yazı, çünkü artık düzeltilmiyor — silinip yeniden yazılır. */
.gsi-liste {
  list-style: none;
  margin: calc(var(--bosluk) * 2) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.gsi-kayit {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: var(--bosluk) 0;
}

.gsi-kayit + .gsi-kayit { border-top: 1px solid var(--kenar); }

.gsi-kayit-yazi {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--etiket-boy);
  overflow-wrap: anywhere;
}

.gsi-kayit-tutar {
  flex: 0 0 auto;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Toplam en altta, kalın ve tek satır: kaç lira yazıldığı pencereyi
   kapatmadan görünsün. */
.gsi-toplam {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
  margin-top: calc(var(--bosluk) * 2);
  padding-top: calc(var(--bosluk) * 1.5);
  border-top: 1px solid var(--kenar);
}

.gsi-toplam b {
  font-size: calc(var(--govde-boy) * 1.15);
  font-variant-numeric: tabular-nums;
}

/* ₺, kutunun İÇİNE yazılamayacağı için üstüne bindirilir: input tek
   başına aynı kalır, ₺ yalnız görsel bir kaplama. */
.gs-kutu-tl {
  position: absolute;
  right: calc(var(--bosluk) * 1.25);
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--etiket-boy);
  opacity: .4;
  pointer-events: none;
}

/* Gerçekleşen kutusu: yuvarlak kenarlı bir kutu, gönderilen örnek
   tasarımdaki gibi. Arkaplanı HER ZAMAN beyazdır — dosyadan gelen bir
   değer olsa da olmasa da, kullanıcı yazsa da yazmasa da kutu aynı
   kalır; renk "bunu ben mi doldurdum, dosya mı doldurdu" sorusuna cevap
   vermeye çalışmaz, o bilgi kenar rengindedir (gs-dolu). */
.gs-kutu {
  width: 100%;
  max-width: 150px;
  height: 34px;
  padding: 0 calc(var(--bosluk) * 3.25) 0 var(--bosluk);
  border: 1px solid var(--kenar);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  text-align: right;
  font: inherit;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.gs-kutu:focus {
  outline: none;
  border-color: var(--altin);
  box-shadow: 0 0 0 3px var(--altin-soluk);
}

/* Dosyadan dolu gelen satırda kenar soluktur: orada yapılacak bir iş
   kalmadı. Satır yine düzeltilebilir. Dolu (gs-dolu) kenarı koyulaşır:
   hangi satırın onaylandığı uzaktan görünür. */
.gs-kutu.gs-hazir { border-color: var(--ayirici); }
.gs-kutu.gs-dolu { border-color: var(--kenar); }
.gs-kutu.gs-hazir:hover { border-color: var(--kenar); }

/* Renk yalnız farkta ve tek anlamda: sıfır değilse bakılacak bir şey
   var. İki yön için iki ayrı renk kullanılmadı — eksik de fazla da
   açıklanması gereken bir farktır. */
.gs-fark-var { color: var(--metin-hata); }
.gs-fark-sifir { opacity: .4; }

.gs-toplam .gs-fark-var,
.gs-toplam .gs-fark-sifir {
  font-family: var(--yazi-baslik);
  font-weight: 700;
  font-size: var(--h2-boy);
}

.gs-rozet { border: 0; cursor: pointer; margin-left: var(--bosluk); }

/* Boş grup sessiz kalmaz: Kredi Kartı'na basınca ok dönüp altından hiçbir
   banka çıkmıyordu ve ekranın bozuk olduğu sanılıyordu — oysa 108'in
   altında hesap yoktu. */
.gs-bos-grup td {
  padding-left: calc(var(--bosluk) * 4);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .65;
  white-space: normal;
}

/* Cari adı bölünmeyen uzun bir dizgi olabilir ("ÖRNEKCARİ-0000000000") ve
   tek başına ad sütununu iki katına çıkarıyor. Yalnız o satırlarda
   kelime ortasından kırılmaya izin verilir; öteki satırlarda Türkçe
   kelimeler bütün kalır. */
.gs-satir-cari .gs-ad { overflow-wrap: anywhere; }

/* ---- Okunmayan satırlar ---- */
.gs-okunmayan {
  max-width: 900px;
  margin: 0 auto;
  padding: calc(var(--bosluk) * 1.75);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
}

.gs-okunmayan-baslik { font-weight: 500; }

.gs-okunmayan-not {
  margin: calc(var(--bosluk) * .5) 0 var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.gs-okunmayan-liste {
  margin: 0;
  padding-left: calc(var(--bosluk) * 2.5);
  font-size: var(--kucuk-boy);
  line-height: calc(var(--kucuk-satir) * 1.4);
  font-variant-numeric: tabular-nums;
}

/* ---------- Gider Grupları ----------
   Gün sonu ekranlarının .gs-kart kabuğunu ödünç alır: bu da bir A4
   yaprağıdır, yalnız içinde tablo değil açılır gruplar durur. Her grup
   bir başlık, altında o grubun gider adları — her biri 700 Giderler'in
   bir alt hesabı (5-veritabani/021). */
.gg-yukleme {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
  font-size: var(--kucuk-boy);
}

.gg-yukleme-metin { flex: 1; opacity: .7; }

.gg-grup { border-bottom: 1px solid var(--ayirici); }
.gg-grup:last-of-type { border-bottom: 0; }

.gg-baslik {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  width: 100%;
  min-height: 48px;
  padding: 0 calc(var(--bosluk) * 2);
  border: 0;
  border-radius: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gg-baslik:hover { background: var(--oyuk); }
.gg-acik > .gg-baslik { background: var(--oyuk); }

/* Önizlemede ve "Grubu olmayanlar" başlığında düğme yok: açılıp
   kapanmaz, yalnız başlıktır. */
.gg-baslik-duz { cursor: default; }
.gg-baslik-duz:hover { background: none; }
.gg-acik > .gg-baslik-duz { background: var(--oyuk); }

.gg-ok { width: 12px; opacity: .45; font-size: 11px; }
.gg-ad { flex: 1; font-weight: 600; overflow-wrap: anywhere; }
.gg-say { font-size: var(--kucuk-boy); opacity: .5; white-space: nowrap; }

.gg-icerik { padding: 0 calc(var(--bosluk) * 2) var(--bosluk); }

.gg-kalem {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  min-height: 38px;
  padding: 0 var(--bosluk) 0 calc(var(--bosluk) * 3);
  border-top: 1px solid var(--ayirici);
}

.gg-kalem-kod {
  min-width: 54px;
  font-size: var(--etiket-boy);
  font-weight: 700;
  opacity: .35;
  font-variant-numeric: tabular-nums;
}

.gg-kalem-ad { flex: 1; font-size: var(--kucuk-boy); overflow-wrap: anywhere; }

.gg-kalem-eylem {
  display: flex;
  gap: var(--bosluk);
  font-size: var(--etiket-boy);
  white-space: nowrap;
}

/* Satır içi metin düğmesi: listeyi kalabalıklaştırmasın diye çerçevesiz. */
.gg-bag {
  padding: 4px 6px;
  border: 0;
  border-radius: 6px;
  background: none;
  color: var(--vurgu);
  font: inherit;
  font-size: var(--etiket-boy);
  cursor: pointer;
}

.gg-bag:hover { background: var(--oyuk); text-decoration: underline; }

.gg-icerik-alt {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  margin-top: var(--bosluk);
  padding-left: calc(var(--bosluk) * 3);
}

.gg-ekle {
  padding: 6px calc(var(--bosluk) * 1.5);
  border: 1px dashed var(--kenar);
  border-radius: 8px;
  background: none;
  color: var(--vurgu);
  font: inherit;
  font-size: var(--kucuk-boy);
  cursor: pointer;
}

.gg-ekle:hover { border-color: var(--vurgu); background: var(--oyuk); }

.gg-form {
  display: flex;
  gap: var(--bosluk);
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--bosluk);
  padding-left: calc(var(--bosluk) * 3);
}

/* Grup formu satırın kendi yerinde açılır, girinti almaz. */
.gg-form-grup { margin: 0; padding: var(--bosluk) calc(var(--bosluk) * 2); }

.gg-kutu {
  flex: 1;
  min-width: 180px;
  height: 34px;
  padding: 0 var(--bosluk);
  border: 1px solid var(--vurgu);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  font: inherit;
  box-shadow: 0 0 0 3px var(--altin-soluk);
}

.gg-kutu:focus { outline: none; }

.gg-bos {
  padding: var(--bosluk) 0 var(--bosluk) calc(var(--bosluk) * 3);
  border-top: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  opacity: .55;
}

.gg-bos-buyuk {
  padding: calc(var(--bosluk) * 4) calc(var(--bosluk) * 2);
  border-top: 0;
  text-align: center;
}

.gg-devam {
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-top: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  opacity: .5;
}

.gg-altlik {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 2);
  border-top: 1px solid var(--kenar);
  background: var(--yuzey);
}

.gg-altlik-not {
  flex: 1;
  min-width: 200px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .65;
}

/* Excel önizlemesinin dört sayacı: ne okundu, ne yazılacak. */
.gg-ozet {
  display: flex;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
}

.gg-ozet-kutu {
  flex: 1;
  min-width: 120px;
  padding: calc(var(--bosluk) * 1.5);
  background: var(--oyuk);
  border-radius: var(--kose-kutu);
  text-align: center;
}

.gg-ozet-sayi {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.gg-ozet-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .55;
}

.gg-ozet-yeni .gg-ozet-sayi { color: var(--vurgu); }

@media (max-width: 899.98px) {
  .gg-yukleme { flex-wrap: wrap; }
  .gg-kalem { padding-left: calc(var(--bosluk) * 1.5); }
  .gg-kalem-kod { min-width: 46px; }
  .gg-icerik-alt,
  .gg-form { padding-left: calc(var(--bosluk) * 1.5); }
  .gg-ozet-kutu { min-width: 100px; }
}

/* ---------- Gün sonu · işlenmiş raporlar ----------
   Sağ sütunun kartında durur (2026.172 · "Gün Sonu Kayıtları"). Gün sonu
   fişi çok bacaklı olduğu için defterden düzeltilemiyor (bkz.
   5-veritabani/020); bir yanlış görülürse rapor buradan
   açılır, düzeltilir ve yeniden işlenir. */
.gs-islenmis-satir {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  width: 100%;
  min-height: 44px;
  padding: calc(var(--bosluk) / 2) var(--bosluk);
  border: 0;
  border-top: 1px solid var(--ayirici);
  border-radius: 0;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gs-islenmis-satir:hover { background: var(--oyuk); }

.gs-islenmis-tarih { font-weight: 600; font-variant-numeric: tabular-nums; }

.gs-islenmis-no {
  flex: 1;
  font-size: var(--kucuk-boy);
  opacity: .55;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gs-islenmis-tutar {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ---------- Gün sonu · Nakit Masraflar ----------
   Karşılaştırma ile Muhasebe Kaydı arasındaki adım. Aynı .gs-kart/.gs-tepe
   kabuğunu ve aynı tabloyu kullanır — üç ekran tek görsel dilin parçası.
   Kendine ait olan yalnız üç sütunlu düzeni ve yazarak arayan hesap
   kutusudur. */
/* Sütunlar: ikonlar · açıklama (esner) · nereye gitti · tutar.
   İkon sütunu 2026.345'te BAŞA eklendi, ölçüler bir kaydı; 2026.347'de
   yanına depo ikonu geldi ve genişledi. */
.gsm-tablo th:nth-child(1),
.gsm-tablo td:nth-child(1) { width: 84px; white-space: nowrap; }

.gsm-tablo td:nth-child(1) { display: table-cell; }

.gsm-tablo th:nth-child(3),
.gsm-tablo td:nth-child(3) { width: 268px; }

.gsm-tablo th:nth-child(4),
.gsm-tablo td:nth-child(4) { width: 168px; }

/* ---- Fatura ikonu (2026.345) ----
   Yeşil · faturası var, ödeme tedarikçinin borcunu kapatır.
   Kırmızı · faturası yok, alınanlar depoya girer.
   Renk tek başına anlam taşımasın diye ikonun kendisi de değişiyor:
   yeşilde dolu, kırmızıda soluk ve kesik çerçeveli. */
.gsm-fatura {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  cursor: pointer;
}

.gsm-fatura svg { display: block; }

.gsm-fatura-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--oyuk));
  color: var(--metin-basari);
}

.gsm-fatura-yok {
  border-style: dashed;
  border-color: var(--metin-hata);
  color: var(--metin-hata);
}

.gsm-fatura:focus-visible,
.gsm-depo:focus-visible {
  outline: none;
  border-color: var(--altin);
  box-shadow: 0 0 0 3px var(--altin-soluk);
}

/* ---- Depo ikonu (2026.347 · renkler 2026.348) ----
   Yeşil · Depoya Giriyor (150 · 153 · 255), ay sonu sayımında çıkar.
   Kırmızı · Depoya Girmiyor — doğrudan gider (700), depoda durmaz.

   Fatura ikonuyla AYNI renk dili kullanılır (kullanıcının kararı:
   "Depoya Giriyor yeşil, Depoya Girmiyor kırmızı"). Karışma olmaz:
   depo ikonu yalnız fatura KIRMIZIYKEN çıkıyor, yani iki yeşil yan yana
   düşmüyor. Renk tek başına anlam taşımasın diye kırmızı hâlde çerçeve
   de kesik. */
.gsm-depo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-left: 4px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  cursor: pointer;
  vertical-align: middle;
}

.gsm-depo svg { display: block; }

.gsm-depo-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--oyuk));
  color: var(--metin-basari);
}

.gsm-depo-yok {
  border-style: dashed;
  border-color: var(--metin-hata);
  color: var(--metin-hata);
}

/* Faturalı satırda depo ikonu çıkmaz; yeri boş durur ki satırlar
   birbirinden kaymasın. */
.gsm-depo-bos {
  display: inline-block;
  width: 34px;
  height: 34px;
  margin-left: 4px;
  vertical-align: middle;
}

.gsm-fatura { vertical-align: middle; }

/* "Nereye gitti" düğmesi iki satır yazar: üstte ne sorduğu (Tedarikçi ·
   Depoya giren · Ne alındı?), altta cevabı. Başlık satırın durumuna göre
   değişiyor — kullanıcının isteği: "başlıkları ona göre ayarlasın". */
.gsm-hesap .gsm-ust {
  display: block;
  font-size: var(--etiket-boy);
  line-height: 1.1;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
}

.gsm-hesap .gsm-alt {
  display: block;
  overflow: hidden;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Öneri listesi kartın dışına taşabilmeli. .gs-kart'ta overflow:hidden
   köşeleri kırpmak için var; bu sayfada tabloda taşan bir şey yok, listeyi
   kesmesin diye kapatılır. */
.gsm-kart { overflow: visible; }
.gsm-sarma { position: relative; display: block; }

/* Açıklama kutusu: kenarlığı yok, yalnız dolunca ya da odaklanınca belli
   olur. 15 satırın her birinde çerçeve dursaydı tablo kafese dönerdi. */
.gsm-ack {
  width: calc(100% - 26px);
  height: 34px;
  padding: 0 var(--bosluk);
  border: 1px solid transparent;
  border-radius: 10px;
  background: none;
  color: var(--metin);
  font: inherit;
}

.gsm-ack::placeholder { opacity: .32; }
.gsm-ack:hover { border-color: var(--ayirici); }
.gsm-ack.gsm-dolu { border-color: var(--ayirici); background: var(--yuzey); }

.gsm-hesap {
  width: 100%;
  /* İki satır yazdığı için sabit yükseklik yerine en az yükseklik
     (2026.345); tek satırlıyken eskisi kadar yer kaplar. */
  min-height: 34px;
  padding: 4px var(--bosluk);
  text-align: left;
  border: 1px solid var(--ayirici);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  font: inherit;
  font-size: var(--kucuk-boy);
}

.gsm-hesap::placeholder { opacity: .32; }
.gsm-hesap.gsm-dolu { border-color: var(--kenar); }

/* Tutarı yazılmış ama hesabı seçilmemiş satır: kayıt bu satırı yazamaz,
   kenar bunu söyler. */
.gsm-hesap.gsm-eksik { border-color: var(--metin-hata); }

.gsm-ack:focus,
.gsm-hesap:focus {
  outline: none;
  border-color: var(--altin);
  background: var(--yuzey);
  box-shadow: 0 0 0 3px var(--altin-soluk);
}

/* Yazarak arama listesi. Seçmek zorunlu değil: tek eşleşme kalınca
   odaktan çıkmak da onu alır (4-ekranlar/1-aktarimlar/gun-sonu-aktarimi.js · blur). */
.gsm-oneri {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  display: block;
  padding: calc(var(--bosluk) / 2) 0;
  border: 1px solid var(--kenar);
  border-radius: 10px;
  background: var(--yuzey);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  text-align: left;
}

.gsm-oneri-satir {
  display: block;
  padding: 7px calc(var(--bosluk) * 1.25);
  font-size: var(--kucuk-boy);
  line-height: 1.35;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gsm-oneri-satir + .gsm-oneri-satir { border-top: 1px solid var(--ayirici); }
.gsm-oneri-satir.gsm-secili { background: var(--oyuk); }
.gsm-oneri-kod { font-weight: 700; margin-right: 6px; }

.gsm-oneri-bos {
  display: block;
  padding: 7px calc(var(--bosluk) * 1.25);
  font-size: var(--kucuk-boy);
  line-height: 1.35;
  opacity: .6;
  white-space: normal;
}

/* Listenin dibindeki ekleme kapısı · öteki seçicilerdekiyle aynı
   görünür (2026.229): üstünde bir çizgi, hafif oyuk zemin. */
.gsm-oneri-ekle {
  border-top: 1px solid var(--kart-kenar);
  background: var(--oyuk);
  font-weight: 600;
}

.gsm-oneri-bos + .gsm-oneri-ekle { border-top: 1px solid var(--ayirici); }

/* Satır numarası: gözün kaçıncı satırda olduğunu kaybetmemesi için var,
   okunması için değil — bu yüzden çok soluk. */
.gsm-sira {
  display: inline-block;
  width: 18px;
  margin-right: var(--bosluk);
  text-align: right;
  font-size: var(--etiket-boy);
  opacity: .28;
  font-variant-numeric: tabular-nums;
}

/* ---------- Gün sonu · dar ekran ----------
   Kart kenara yaklaşır ama kaybolmaz — bir form telefonda da form gibi
   durur. Tablo telefonda da tablo kalır: dört sütun yan yana okunuyor,
   karşılaştırma ancak yan yana anlaşılıyor. Sığdırmak için boşluk, yazı
   ve girdi kutusu daraltılır. */
@media (max-width: 899.98px) {
  .gs-kart { margin-bottom: calc(var(--bosluk) * 2); border-radius: var(--kose-kutu); }

  .gs-tepe { padding: calc(var(--bosluk) * 4) calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2); }
  .gs-tepe-baslik { font-size: var(--govde-boy); line-height: var(--govde-satir); }
  .gs-baska,
  .gs-geri { position: static; display: block; margin: 0 auto calc(var(--bosluk) * 2); }

  .gs-tablo thead th,
  .gs-tablo td { padding: 0 3px; }

  /* Başlık satırı sütunu genişletmesin: "Gerçekleşen" tek satırda kalınca
     sütunu kutudan geniş yapıyordu, iki satıra inebilir. */
  .gs-tablo thead th { font-size: 10px; white-space: normal; line-height: 13px; }

  .gs-tablo td {
    height: auto;
    min-height: 48px;
    font-size: var(--kucuk-boy);
    line-height: var(--kucuk-satir);
  }

  .gs-tablo td.gs-para { font-size: 13px; }

  /* "anywhere" sütunu daraltıyordu ama sıradan kelimeleri de ortadan
     kesiyordu ("Yuvarla/ma"). "break-word" yalnız satıra sığmayan uzun bir
     kelimeyi kırar — cari adı gibi. */
  .gs-tablo th.gs-para:nth-child(2),
  .gs-tablo td.gs-para:nth-child(2) { width: 76px; }

  .gs-tablo th:nth-child(3),
  .gs-tablo td:nth-child(3) { width: 78px; }

  .gs-tablo th:nth-child(4),
  .gs-tablo td:nth-child(4) { width: 82px; }

  /* Muhasebe kaydı tablosu üç sütunlu: Alacak (3.) Borç'un mobil
     genişliğini alır, dört sütunluk karşılaştırma tablosunun 78px'lik
     üçüncü-sütun kuralı burada geçerli değil. */
  .gsk-tablo th:nth-child(3),
  .gsk-tablo td:nth-child(3) { width: 76px; }

  /* Nakit masraflarda üç sütunun üçü de yazı taşır: karşılaştırma
     tablosundaki 76-78px'lik parasal sütun ölçüleri buraya uymaz, hiçbir
     hesap adı o genişliğe sığmaz. Tablo ekrana sığmaya çalışmak yerine
     kendi ölçüsünde kalır ve yana kayar (.tablo-kutu) — açıklama sütunu
     ezilip "Ekmek a" diye kesilmesin. */
  .gsm-tablo { min-width: 560px; }

  .gsm-tablo th:nth-child(1),
  .gsm-tablo td:nth-child(1) { width: 70px; }

  .gsm-tablo th:nth-child(3),
  .gsm-tablo td:nth-child(3) { width: 176px; }

  .gsm-tablo th:nth-child(4),
  .gsm-tablo td:nth-child(4) { width: 104px; }

  .gsm-fatura { width: 30px; height: 30px; }
  .gsm-depo { width: 30px; height: 30px; margin-left: 2px; }
  .gsm-depo-bos { width: 30px; height: 30px; margin-left: 2px; }

  .gsm-ack { height: 30px; font-size: var(--kucuk-boy); }
  .gsm-hesap { min-height: 30px; font-size: var(--kucuk-boy); }
  .gsm-sira { width: 14px; margin-right: 4px; }
  .gsm-ack { width: calc(100% - 18px); }

  /* Masraf tutarı da yazı kutusu kadar yer ister: karşılaştırmadaki 74px
     burada "1.340,00"ı kırpıyordu. */
  .gsm-tablo .gs-kutu { max-width: 92px; }

  /* Düğmenin yanındaki açıklama telefonda dar bir sütuna sıkışıyordu;
     alta iner ve tam genişliği alır. */
  .gsk-altlik { flex-direction: column; align-items: stretch; }
  .gsk-altlik-not { flex: none; }

  .gs-ad { overflow-wrap: break-word; white-space: normal; }

  /* Dört sütun 390px'e sığmıyor: sabit ölçülü üç parasal sütundan sonra
     satır adına 55px kalıyor ve "Personel İkramı" harf harf, dikey bir
     şerit gibi kırılıyordu (kararlar.md · açık nokta). Tablo artık ekrana
     sığmaya çalışmıyor, kendi ölçüsünde kalıp KENDİ KUTUSUNDA yana kayıyor
     — nakit masraf tablosu da 899'un altında böyle davranıyor
     (.gsm-tablo · min-width). Dört sütun hâlâ yan yana okunur, yalnız
     hepsini görmek için parmakla kaydırılır. */
  .gs-tablo { min-width: 460px; }

  .gs-tablo-elle { min-width: 320px; }

  /* Telefonda girinti yarıya iner: 32px'lik pay satır adından gidiyor ve
     "Personel İkramı" hecesinden bölünüyordu. */
  .gs-kagit .gs-satir .gs-ad { padding-left: calc(var(--bosluk) * 2); }

  .gs-satir .gs-ad,
  .gs-bos-grup td { padding-left: calc(var(--bosluk) * 1.75); }

  .gs-ok { margin-left: 0; width: 12px; }

  /* ₺ girdi kutusunun içinde dar ekranda kalkar: ayrılan pay basamağı
     kırpıyordu ("3.740,00" son hanesi kutudan taşıyordu). Kutunun kendi
     kenarındaki değer zaten Samba ve Fark sütunlarında ₺'yle duruyor,
     girdi kutusunda tekrarına gerek yok — burada asıl olan rakamın tam
     okunmasıdır. */
  .gs-kutu { max-width: 74px; height: 26px; padding: 0 4px; font-size: 13px; }
  .gs-kutu-tl { display: none; }

  .gs-rozet { margin-left: 0; }

  .gs-toplam .gs-fark-var,
  .gs-toplam .gs-fark-sifir { font-size: var(--kucuk-boy); }
}

/* Telefonda parasal sütunlar bir tık daha küçülür ve payı ad sütununa
   bırakır: rakam zaten kısa, uzun olan satır adı. */
@media (max-width: 480px) {
  .gs-tablo td.gs-para { font-size: 12px; }
  .gs-kutu { max-width: 64px; font-size: 12px; }
  .gs-toplam .gs-fark-var,
  .gs-toplam .gs-fark-sifir { font-size: 13px; }
}

/* Dar telefonda (400px ve altı) son on beş piksel girdi kutusundan ve
   girintiden kısılır; tablo o zaman tam sığar. */
@media (max-width: 400px) {
  .gs-tablo thead th,
  .gs-tablo td { padding: 0 2px; }
  .gs-kutu { max-width: 72px; }
  .gs-satir .gs-ad,
  .gs-bos-grup td { padding-left: var(--bosluk); }
  .gs-ok { width: 11px; }
}


/* ---------- Gün Sonu · muhasebe kaydı önizlemesi ---------- */
/* "Kaydet"e basınca karşılaştırma tablosunun yerini bu ekran alır.
   Deftere hâlâ hiçbir şey yazılmaz: kullanıcı hangi paranın hangi hesaba
   gideceğini burada görür, yazma kararını ondan sonra verir
   (6-belgeler/sayfalar.md · "Gün Sonu Aktarımı"). */
.gsk-uyari {
  margin: 0;
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  background: rgba(184, 117, 3, .10);
  border-bottom: 1px solid var(--kenar);
  color: var(--metin-uyari);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* BURADA .gsk-uyari-bag VARDI, KALDIRILDI (2026.587). Gün sonu
   formunun tepesindeki "o raporu açıp düzeltin" bağlantısını
   biçimlendiriyordu; o kırmızı bant kalktı, işi kuşağın açıklama
   satırındaki nota geçti (.gs-oz-not-dugme) ve bu sınıfı kullanan
   kimse kalmadı. */


/* Engel uyarısı ayrı renkte: bunlar düzeltilmeden düğme çalışmaz. */
.gsk-uyari-engel {
  background: rgba(183, 44, 40, .09);
  color: var(--metin-hata);
}

/* Engelin ÇÖZÜMÜ de aynı şeridin içinde durur (2026.383): uyarı
   "hesabı yok" diyordu ama düzeltmek için başka bir ekrana gitmek
   gerekiyordu. Düğme uyarının hemen altında, aynı kırmızı zeminde. */
.gsk-uyari-islem {
  padding: 0 calc(var(--bosluk) * 2) calc(var(--bosluk) * 1.5);
  background: rgba(183, 44, 40, .09);
  border-bottom: 1px solid var(--kenar);
}

/* Teknik tablo artık BİRİNCİL görünüm — kapalı bir "muhasebe dilinde
   göster" anahtarının arkasında durmuyor, ekran açılır açılmaz görünür
   (6-belgeler/kararlar.md). Kendisi 2-tasarim/ekranlar.css'teki .gs-tablo/.gs-band'i
   aynen kullanır (sütun genişlikleri de dahil, bkz. ".gsk-tablo" satırları
   yukarıda); burada yalnız hesap-satırına özgü küçük parçalar (kod,
   açıklama) durur. */
.gsk-kod {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  font-weight: 600;
}

/* Bacağın hangi satırdan geldiği altında küçük yazıyla durur: "Toplam
   Nakit", "Garanti Bankası · kart". Kullanıcı rakamı önizlemedeki
   satıra buradan bağlar. */
.gsk-ack {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .65;
}

/* ---- Muhasebe kaydı · hesap blokları (gsd) ----
   Önizleme hesap hesap defterdir: her hesap kendi bloğunu alır, blok
   içindeki tablo Hesap Defteri'nin kendi bileşenidir (.tablo) — burada
   yalnız bloğun çerçevesi ve başlığı tanımlanır. Tablo stili
   tekrarlanmaz; iki ekranda aynı defter görünsün diye
   (4-ekranlar/1-aktarimlar/gun-sonu-aktarimi.js · blokHtml). */
/* Kayıt ekranı gün sonunun öteki sayfalarından geniştir: defter
   bloğunun sekiz sütunu 900px'e sığmıyordu. */
.gs-kart.gsd-kart { max-width: 1160px; }

.gsd-bloklar {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2);
  background: var(--oyuk);
  border-bottom: 1px solid var(--kenar);
}

/* Blok, Hesap Defteri'nin kartını olduğu gibi kullanır
   (.tablo-sarmal.hd-defter): kırmızı çerçeve, ince tel, köşe çentiği,
   zemin satırlar, ortalanmış sütunlar. Burada yalnız başlık şeridi
   tanımlanır — kart, tablo ve renkler defterin kendi kurallarından
   gelir, ikinci kez yazılmaz. */
.gsd-blok { overflow: hidden; }

/* Blok başlığı hesabın kendisidir: kod · ad, sağda bugünkü bakiye.
   Defterin başlık şeridiyle aynı gri tonu, aynı kırmızı mürekkep. */
.gsd-tepe {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  background: var(--defter-baslik);
  border-bottom: 1px solid var(--defter-koyu);
}

.gsd-tepe .gsk-kod { color: var(--defter-koyu); }

.gsd-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.gsd-bugun {
  margin-left: auto;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--defter-notr);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.gsd-bugun b { font-weight: 600; color: var(--metin); }

/* Bütün blokların sütunları AYNI ölçüde ve aynı hizada durur; esneyen
   tek sütun Açıklama'dır (kullanıcının isteği). Ölçü sabit olduğu için
   sütunu az olan blokta — kasada Şube tek, gelir hesabında hiç yok —
   artan yer açıklamaya gider ve sağdaki parasal sütunlar bütün
   bloklarda aynı çizgide kalır. Dar ekranda satır karta dönüştüğü için
   bu kurallar geçmez. */
@media (min-width: 900px) {
  .gsd-tablo { table-layout: fixed; width: 100%; }

  /* Uzun başlık ("Komisyon Oranı") kendi hücresinde iki satıra iner;
     nowrap kalsaydı yandaki sütunun üstüne taşıyordu. */
  .gsd-tablo th { white-space: normal; }

  .gsd-tablo th.tablo-yapisik-bir { width: 104px; }
  .gsd-tablo th.gsd-sut-kod { width: 92px; }
  .gsd-tablo th.gsd-sut { width: 124px; }
  .gsd-tablo th.tablo-para { width: 124px; }
  .gsd-tablo th.tablo-yapisik-sag { width: 140px; }

  /* Açıklama ölçü almaz: kalan bütün pay onundur. Uzun açıklama satır
     içinde sarar, kırpılmaz. */
  .gsd-tablo td.tablo-yardimci {
    white-space: normal;
    overflow-wrap: break-word;
  }
}

/* Bakiye gelmediyse sayı uydurulmaz, çizgi durur. */
.gsd-yok { opacity: .45; font-weight: 400; }

/* Toplam şeridi bloktan sonra gelir: fişin tamamı denk mi, oraya bakılır. */
.gsd-toplam {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--kenar);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  font-weight: 600;
}

/* Tek taraflı gider kaydı toplam şeridinde kendi yerinde durur: borç ve
   alacak sütunlarına karışmaz, denkliğe girmediği yanında yazar. */
.gsd-toplam-gider {
  margin-left: auto;
  font-weight: 500;
  opacity: .75;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.gsd-toplam-gider + .gsd-toplam-cift { margin-left: 0; }

.gsd-toplam-cift {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.gsd-toplam-cift:nth-of-type(2) { margin-left: auto; }

@media (max-width: 899.98px) {
  .gsd-bloklar { padding: var(--bosluk); gap: calc(var(--bosluk) * 1.5); }
  .gsd-tepe { padding: var(--bosluk) calc(var(--bosluk) * 1.5); }
  .gsd-bugun { margin-left: 0; width: 100%; }
}

/* Borç ile alacak yapı gereği hep denktir (muhasebeKaydi() farkı otomatik
   "Kasa farkı" bacağıyla kapatır) — bu yüzden şart değil, ONAY: kullanıcı
   kaydın dengede olduğunu görüp rahatlasın. */
.gsk-denge {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  background: rgba(47, 125, 83, .14);
  border-bottom: 1px solid var(--kenar);
  color: var(--metin-basari);
  font-size: var(--kucuk-boy);
  font-weight: 600;
}

.gsk-denge svg { flex: none; }

.gsk-not {
  margin: 0;
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
}

/* BURADA .gsk-alan VARDI, KALDIRILDI (2026.582). Muhasebe kaydının
   dibindeki "Fark Açıklaması" kutusunu sarıyordu; o kutu kuşağın
   şeridine, "Gün Sonu Farkı" gözüne taşındı (.gs-oz-sebep) ve bu
   sınıfı kullanan kimse kalmadı. */

.gsk-altlik {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2);
  background: var(--yuzey);
  border-bottom: 1px solid var(--kenar);
}

.gsk-altlik-not {
  flex: 1;
  min-width: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .65;
}

.gsk-bitti {
  padding: calc(var(--bosluk) * 5) calc(var(--bosluk) * 2);
  background: var(--yuzey);
  border-top: 1px solid var(--kenar);
  border-bottom: 1px solid var(--kenar);
  text-align: center;
}

.gsk-yuvarlak {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin: 0 auto calc(var(--bosluk) * 1.5);
  border-radius: 50%;
  background: rgba(47, 125, 83, .14);
  color: var(--metin-basari);
}

.gsk-bitti h3 {
  margin: 0 0 calc(var(--bosluk) * .5);
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
}

.gsk-bitti p {
  margin: 0 0 calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.gsk-bitti .gsk-altlik {
  justify-content: center;
  padding: 0;
  border-bottom: 0;
}

/* ---------- Banka Aktarımı ----------
   Üç adım, iki kabuk. Banka seçimi ve dosya bırakma sade bir sütundur;
   önizleme kendi geniş kartında durur; muhasebe kaydı Gün Sonu'nun
   .gs-kart kabuğunu olduğu gibi kullanır — iki ekran tek görsel dilin
   parçasıdır (4-ekranlar/1-aktarimlar/banka-aktarimi.js).

   Kaynak: 6-belgeler/sayfalar.md · "Banka Aktarımı" */

.ba-secim {
  max-width: var(--form-en);
  margin: 0 auto;
}

.ba-secim-baslik {
  margin: 0 0 2px;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  text-align: center;
}

.ba-secim-not {
  margin: 0 0 calc(var(--bosluk) * 3);
  text-align: center;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .55;
}

/* DÖRT BANKA OLDU (2026.399): üçe sabit ızgarada dördüncüsü tek başına
   alt satırda kalıyordu. Kart genişliği asgariden belirlenir; ekran
   kaça bölünebiliyorsa o kadar sütun olur. */
.ba-bankalar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
  gap: calc(var(--bosluk) * 2);
  margin-bottom: calc(var(--bosluk) * 3);
}

.ba-banka {
  display: block;
  padding: calc(var(--bosluk) * 3) calc(var(--bosluk) * 2);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  box-shadow: var(--golge);
  text-align: center;
  cursor: pointer;
  color: var(--metin);
  font: inherit;
}

/* Seçili banka kenarıyla belli olur, gölgeyle değil: kart havada durmaz
   (bkz. 2-tasarim/degiskenler.css · "Malzeme"). */
.ba-banka.ba-secili {
  border-color: var(--vurgu);
  box-shadow: 0 0 0 2px rgba(183, 44, 40, .16), var(--golge);
}


.ba-banka-plaka {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin: 0 auto calc(var(--bosluk) * 1.5);
  border-radius: 12px;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 700;
}

/* Plakalar bankaların kendi rengini taşımaz — uygulamanın paletinden üç
   ayrı ton alır; amaç marka taklidi değil, üçünü birbirinden ayırmak. */
.ba-p-garanti { background: rgba(47, 125, 83, .13); color: var(--metin-basari); }
.ba-p-kuveyt { background: rgba(47, 111, 176, .13); color: var(--metin-bilgi); }
.ba-p-ziraat { background: rgba(110, 116, 124, .14); color: var(--gri-vurgu); }
/* Türkiye Finans · kendi plakası (2026.391). */
.ba-p-turkiyeFinans { background: rgba(143, 45, 34, .11); color: var(--vurgu); }

/* ---- HESAP SEÇİCİLERİ · KENDİ KARTINDA (2026.399) ------------------
   2026.398'de seçiciler sayfanın çıplak zeminine konmuştu: arkadaki
   motif yazının altından geçiyor, etiketler okunmuyordu (kullanıcının
   bildirimi: "tasarım çok kötü olmuş, yazılar okunmuyor ve tasarım
   dilimize uygun değil"). Uygulamanın kart dili buydu: çift tel
   çerçeve, krem kâğıt, künye bandı — panel sütunlarındaki ve Ay Sonu
   Sayımı'ndaki kartın aynısı. */
.ba-hesap-kart {
  position: relative;
  overflow: hidden;
  margin-bottom: calc(var(--bosluk) * 3);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
  text-align: left;
}

.ba-hesap-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

.ba-hesap-basi {
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.25);
  border-bottom: 1px solid var(--defter-tel-soluk);
  background: var(--defter-acilis);
}

.ba-hesap-ad {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 600;
  color: var(--defter-koyu);
}

.ba-hesap-alt {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.ba-hesaplar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.25);
  background: var(--kart-yuzey);
}

.ba-hs-alan { display: flex; flex-direction: column; gap: 4px; min-width: 0; }

/* Etiket okunur dursun: sayfanın geri kalanındaki alan etiketiyle aynı
   ama soluk değil — seçim burada yapılıyor. */
.ba-hs-alan .alan-etiket { opacity: 1; color: var(--metin); }

.ba-hs-kutu .sec-kutu {
  height: var(--form-alan);
  background: var(--yuzey);
  border-color: var(--defter-tel);
}

.ba-hs-not {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--metin);
  opacity: .7;
}

/* Seçilmemiş hesap kırmızı bekler: dosya yüklenmeden önce görünsün. */
.ba-hs-eksik .sec-kutu { border-color: var(--hata); }
.ba-hs-eksik .ba-hs-not { color: var(--metin-hata); opacity: 1; }

.ba-hs-yok .alan-okunur { opacity: .6; }

.ba-banka-ad {
  display: block;
  font-weight: 600;
  font-size: var(--govde-boy);
}

.ba-banka-alt {
  display: block;
  margin-top: 3px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .04em;
  /* ARTIK HESABIN ADI YAZIYOR (2026.399), yalnız kod değil; büyük harfe
     çevrilince "102.01 · GARANTİ BANKASI" diye bağırıyor ve okunmuyordu. */
  opacity: .6;
}

.ba-hesap-not {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  margin: calc(var(--bosluk) * 2) 0 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
}

.ba-hesap-not svg { flex: none; }

/* ---- Önizleme kartı ----
   On sütunlu bir defter satırı 900px'e sığmaz; kart kendi genişliğini
   alır ve tablo .tablo-kutu içinde yana kayar (2-tasarim/bilesenler.css).
   Yeni bir kırılım noktası açılmadı — gövde yana kaymaz, yalnız tablo
   kayar. */
/* Tablo on sütunluydu, dokuz kaldı ama yine geniş: kart 1640px'e
   çıkarıldı (2026.187 · kullanıcının kararı) — geniş ekranda hesap adı
   ve banka açıklaması kırpılmadan okunsun. */
.ba-kart {
  max-width: 1640px;
  margin: 0 auto calc(var(--bosluk) * 3);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  box-shadow: var(--golge);
  overflow: hidden;
}

/* KÂĞIT GRENİ (2026.589). Kart artık bir "parşömen"; tablo ve bloke
   dökümü onun üstünde duran düz kâğıtlar. Motif --kart-desen'den,
   gren ikinci katman olarak gelir (İrsaliye ve Nakit Akış'takiyle
   aynı iki satır). */
.ba-kart {
  background-image:
    radial-gradient(var(--doku-gren) .5px, transparent .5px),
    var(--kart-desen);
  background-size: 3px 3px, auto;
}

/* Kuşağa yapışınca üst köşeler düzleşir ve üst çizgi tekrarlanmaz. */
.fatura-birlesik .ba-kart {
  margin-top: 0;
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* ---- Kâğıdın tepesi ve dibi (2026.589) ----
   Kartın kendi başlık şeridi (.ba-tepe) ve altlığı (.ba-altlik) kalktı;
   ikisi de kuşak şeridine taşındı. Burada duran yalnız "ne var bu
   kâğıtta" ve "açılış + hareketler = kapanış". */
.ba-kagit-tepe,
.ba-kagit-dip {
  position: relative;
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 3);
  background: linear-gradient(180deg, #EFE2C6 0%, #E7D7B4 100%);
}

.ba-kagit-tepe { border-bottom: 1px solid var(--altin-koyu); }

.ba-kagit-dip {
  border-top: 1px solid var(--altin-koyu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: #7A6038;
}
.ba-kagit-dip svg { flex: none; color: var(--metin-basari); }
.ba-kagit-dip-uyari { color: var(--metin-uyari); }
.ba-kagit-dip-uyari svg { color: var(--metin-uyari); }

.ba-kagit-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h3-boy);
  font-weight: 600;
  color: var(--defter-koyu);
}

.ba-kagit-sag {
  margin-left: auto;
  font-size: var(--etiket-boy);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #8A7048;
  white-space: nowrap;
}

.ba-kagit-dip b {
  margin-left: auto;
  font-size: var(--h3-boy);
  color: var(--defter-koyu);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.ba-kagit-govde {
  position: relative;
  padding: calc(var(--bosluk) * 2);
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 2);
}

/* ---- Bölüm · dokulu kâğıdın üstünde duran düz kâğıt ---- */
.ba-bolum {
  background: var(--kart-yuzey);
  border: 1px solid var(--kenar);
  border-radius: calc(var(--kose-kart) - 4px);
  overflow: hidden;
  box-shadow: 0 1px 1px rgba(74, 53, 36, .05),
              0 4px 10px -6px rgba(74, 53, 36, .22);
}

.ba-bolum-tepe {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: var(--bosluk) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  background: linear-gradient(180deg, #FBF4E6 0%, #F6EDDB 100%);
}

.ba-bolum-ad {
  font-size: var(--etiket-boy);
  letter-spacing: .07em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--defter-koyu);
}

.ba-bolum-sag {
  margin-left: auto;
  font-size: var(--etiket-boy);
  color: var(--ikinci);
}

/* BURADA .ba-tepe · .ba-oz · .ba-altlik VARDI, KALDIRILDI (2026.589).
   Kartın başlık şeridi, dört sayılı özeti ve alttaki düğme sırası
   kuşak şeridine taşındı; geride çizen kimse kalmadı. */

/* ---- Defter tablosu ---- */
/* min-width ölçülerek kondu, yuvarlak bir sayı değil: 1440px'lik bir
   ekranda yan panelden sonra sayfaya 1133px, .sayfa-icerik'in 16px'lik
   iki yanından sonra karta 1101px kalıyor (ölçüldü) — tablo oraya
   sığmalı, yoksa her satırda yatay kaydırma gerekir. Parasal üç sütun
   ile Tarih ve Gider Hesabı en uzun içeriklerinin ölçüsünü alır — bir
   tutarın kırpılması kabul edilemez. "No" sütunu da öyle: Kuveyt Türk'te
   bir günün POS satırları "535–554" gibi geniş bir aralık yazıyor ve
   yarım okunan bir aralık hiç okunmamış sayılır. İşlem Adı ve İlgili
   Hesap gerekirse
   üç noktayla biter. Artan payı İKİ sütun paylaşır: Açıklama ve Banka
   Açıklaması (ikisinin de col kuralında en yoktur). Tek başına banka
   açıklamasına verilseydi kullanıcının yazdığı açıklama dar ekranda
   okunamayacak kadar kısalıyordu. Daha dar
   ekranda tablo .tablo-kutu içinde kayar; sayfa gövdesi kaymaz. */
.ba-tablo {
  width: 100%;
  min-width: 1094px;
  border-collapse: collapse;
  table-layout: fixed;
}

/* Başlık sarar, kırpılmaz: on sütunlu bir tabloda "Banka Açıklaması"
   dar ekranda tek satıra sığmıyor ve nowrap onu sessizce kesiyordu —
   başlığı yarım okumak sütunu bilmemekle aynı şey. Sardığında satır
   yükselir, ölçü yerinde kalır. Rakamlar sarmaz (td.sag nowrap). */
.ba-tablo thead th {
  height: auto;
  padding: 7px var(--bosluk);
  text-align: left;
  vertical-align: bottom;
}

.ba-tablo td {
  height: 46px;
  padding: 0 var(--bosluk);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
  font-size: var(--kucuk-boy);
  /* table-layout:fixed tek başına kırpmaz; her hücre kendi taşmasını
     yutmalı, yoksa uzun banka açıklaması Borç sütununun üstüne biner. */
  overflow: hidden;
}

.ba-tablo td > * { max-width: 100%; }
.ba-tablo tbody tr:last-child td { border-bottom: 0; }

.ba-tablo th.sag,
.ba-tablo td.sag {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Sütun genişlikleri sabit: parasal üç sütun ile hesap kutuları ölçüsünü
   korur, artan pay banka açıklamasına gider — eşleştirmenin okunduğu yer
   orasıdır. */
/* İkon sütunu · en solda (2026.345); 2026.347'de yanına depo ikonu
   geldi ve genişledi. */
.ba-tablo col.c-fat { width: 88px; }
.ba-tablo col.c-tar { width: 104px; }
.ba-tablo col.c-isl { width: 132px; }
/* Numara kalktı, hücrede yalnız hesabın adı duruyor: pay adlara geçti. */
.ba-tablo col.c-hes { width: 190px; }
/* Gider Hesabı artık doldurulan bir sütun (para çıkan satırlarda
   zorunlu): ilgili hesapla aynı payı alır, kod + ad sığsın. */
.ba-tablo col.c-gid { width: 190px; }
.ba-tablo col.c-bor { width: 104px; }
.ba-tablo col.c-ala { width: 112px; }
.ba-tablo col.c-bak { width: 120px; }

.ba-islem {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-tl {
  margin-left: 2px;
  font-size: var(--etiket-boy);
  opacity: .55;
  font-variant-numeric: normal;
}

.ba-tablo .bos { opacity: .28; }

/* Birleşen satır bant başlığıyla değil kendi zemini ve rozetiyle belli
   olur: bant, ekstrenin kayıt sırasını bozuyordu ve yürüyen bakiye
   ancak o sırayla doğru okunuyor. */
.ba-birlesik { background: rgba(110, 116, 124, .07); }
.ba-birlesik td { height: 56px; }

.ba-rozet {
  display: inline-block;
  margin-top: 2px;
  padding: 1px 7px;
  border-radius: 8px;
  background: rgba(110, 116, 124, .14);
  color: var(--gri-vurgu);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* KARTTA KARŞILIĞI YOK (2026.627) · aynı rozet, uyarı renginde.
   "5→1" rozeti bir bilgidir, bu bir uyarıdır: satır kart borcuna
   yazılmayacak ve hesabını kullanıcı seçecek. */
.ba-rozet-uyari {
  background: rgba(183, 44, 40, .12);
  color: var(--metin-hata);
}

/* KART ÖDEMESİNİN SİMGESİ (2026.627 · kullanıcının isteği: "kart
   ödemelerinin yanında fatura simgesi veya depo olmamalı, onun yerine
   kart ikonu koy"). Düğme değil, işaret: basılacak bir şey yok, satırın
   ne olduğunu söylüyor. Ölçüsü fatura düğmesiyle aynı ki satırlar
   birbirinden kaymasın. */
.ba-kart-ikon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  vertical-align: middle;
  color: var(--ikinci);
  opacity: .75;
}

/* Hesap hücresi üç durumdadır: sabit (gün sonu, komisyon), seçili ve
   bulunamadı. Üçü de aynı kutuda durur, yalnız kenar rengi değişir —
   satır yüksekliği durumdan duruma oynamasın. */
.ba-sarma { position: relative; display: block; }

.ba-hesap {
  display: block;
  width: 100%;
  height: 30px;
  line-height: 28px;
  padding: 0 var(--bosluk);
  border: 1px solid var(--ayirici);
  border-radius: 8px;
  background: var(--oyuk);
  font: inherit;
  font-size: var(--kucuk-boy);
  color: var(--metin);
  text-align: left;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-hesap.dolu { background: var(--yuzey); border-color: var(--kenar); cursor: pointer; }
.ba-hesap.dolu:hover { border-color: var(--vurgu); }

.ba-hesap.yok {
  border-color: var(--hata);
  color: var(--metin-hata);
  background: rgba(183, 44, 40, .05);
  font-weight: 600;
  cursor: pointer;
}

.ba-hesap.ba-giris { background: var(--yuzey); border-color: var(--vurgu); cursor: text; }
.ba-hesap:focus { outline: none; border-color: var(--altin); }

/* ---- Faturalı / faturasız ödeme (2026.345) ----
   Yeşil · faturası var, ilgili hesabın borcu kapanır.
   Kırmızı · faturası yok, alınanlar depoya girer.
   Renk tek başına anlam taşımasın diye kırmızı ikonun çerçevesi kesik. */
/* İki ikon YAN YANA durmalı: hücre dar kalınca alt alta düşüp satırı
   uzatıyordu (2026.347). Hücrenin kendi payı da daraltılır. */
.ba-fat { text-align: center; white-space: nowrap; padding-left: 4px; padding-right: 4px; }

.ba-fatura {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 8px;
  background: var(--oyuk);
  color: var(--metin);
  cursor: pointer;
}

.ba-fatura svg { display: block; }

.ba-fatura-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--yuzey));
  color: var(--metin-basari);
}

.ba-fatura-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

.ba-fatura:focus-visible,
.ba-depo:focus-visible { outline: none; border-color: var(--altin); }

/* Depo ikonu (2026.347 · renkler 2026.348) · yeşil = Depoya Giriyor,
   kırmızı = Depoya Girmiyor. Kırmızı hâlde çerçeve de kesik: renk tek
   başına anlam taşımasın. */
.ba-depo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-left: 3px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 8px;
  background: var(--oyuk);
  color: var(--metin);
  cursor: pointer;
  vertical-align: middle;
}

.ba-depo svg { display: block; }

.ba-depo-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--yuzey));
  color: var(--metin-basari);
}

.ba-depo-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

.ba-depo-bos {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin-left: 3px;
  vertical-align: middle;
}

.ba-fatura { vertical-align: middle; }

/* Faturasız satırın "nereye gitti" düğmesi iki satır yazar: üstte ne
   sorduğu, altta cevabı. İki satır olduğu için sabit yükseklik kalkar. */
.ba-hesap .ba-ust {
  display: block;
  font-size: var(--etiket-boy);
  line-height: 1.1;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
}

.ba-hesap .ba-alt {
  display: block;
  overflow: hidden;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ba-hesap-iki { height: auto; line-height: 1.2; padding: 3px var(--bosluk); }

.ba-ack {
  display: block;
  width: 100%;
  height: 30px;
  line-height: 28px;
  padding: 0 var(--bosluk);
  border: 1px solid transparent;
  border-radius: 8px;
  background: none;
  font: inherit;
  font-size: var(--kucuk-boy);
  color: var(--metin);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ba-ack::placeholder { opacity: .32; }
.ba-ack:hover { border-color: var(--ayirici); }
.ba-ack.dolu { border-color: var(--ayirici); background: var(--yuzey); }
.ba-ack:focus { outline: none; border-color: var(--altin); background: var(--yuzey); }

/* ".ba-ack-bulunamadi" KALDIRILDI (2026.627). Kartta karşılığı
   bulunamayan satır artık kart satırı değil, sıradan bir banka
   ödemesidir; uyarıyı açıklama kutusu değil İşlem Adı'nın yanındaki
   rozet taşır (.ba-rozet-uyari). Açıklama kutusu yeniden yalnız
   açıklama içindir. */

/* Nakit çekim hücresi · gider hesabı yerine iki küçük tutar kutusu
   (2026.255 · göç 76). Firmanın aldığı komisyon ve faturanın KDV'si
   elle yazılır; altındaki satır kasaya girecek tutarı söyler. */
.ba-nakit { display: flex; flex-direction: column; gap: 3px; }

.ba-nakit-satir { display: flex; gap: 4px; }

.ba-nakit-satir label {
  display: flex;
  align-items: center;
  gap: 3px;
  flex: 1 1 0;
  min-width: 0;
  font-size: 10px;
  opacity: .6;
}

.ba-nakit-kutu {
  width: 100%;
  min-width: 0;
  height: 26px;
  padding: 0 5px;
  border: 1px solid var(--ayirici);
  border-radius: 7px;
  background: var(--yuzey);
  font: inherit;
  font-size: var(--kucuk-boy);
  color: var(--metin);
  text-align: right;
}

.ba-nakit-kutu:focus { outline: none; border-color: var(--altin); }

.ba-nakit-alt {
  font-size: 10px;
  opacity: .7;
  white-space: nowrap;
}

.ba-nakit-alt.uy { color: var(--uyari); opacity: 1; font-weight: 600; }

/* Banka açıklaması eşleştirmenin kaynağıdır — kırpmak yerine iki satıra
   sarar; satır yüksekliği zaten iki satırı taşıyor. */
.ba-banka-ack {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: var(--etiket-boy);
  line-height: 15px;
  opacity: .62;
  white-space: normal;
}

/* Hesap önerisi EKRANA göre konumlanır (position: fixed), hücreye göre
   değil. Sebebi ölçüldü: her hücre kendi taşmasını yutuyor
   (".ba-tablo td · overflow: hidden" — uzun banka açıklaması yan sütuna
   binmesin diye) ve mutlak konumlu liste 46px'lik hücrenin içinde
   kırpılıyordu. Liste açılıyor, DOM'da duruyor ama görünmüyordu; "hesap
   bulunamadı"ya basan kullanıcıya hiçbir şey olmuyormuş gibi geliyordu.
   Tablo kutusu (overflow-x: auto) ve kart (overflow: hidden) da aynı
   şeyi yapardı; fixed üçünü birden aşar.
   Yeri js tarafında veriliyor (4-ekranlar/1-aktarimlar/banka-aktarimi.js ·
   oneriYerlestir): kutunun altına, sığmıyorsa üstüne. */
.ba-oneri {
  position: fixed;
  z-index: 60;
  max-height: 208px;
  overflow-y: auto;
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  box-shadow: 0 4px 12px -6px rgba(58, 42, 29, .3);
}

.ba-oneri-satir {
  padding: 7px var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  cursor: pointer;
}

.ba-oneri-satir + .ba-oneri-satir { border-top: 1px solid var(--ayirici); }
.ba-oneri-satir:hover { background: var(--oyuk); }
.ba-oneri-kod { font-weight: 700; margin-right: 6px; }

/* Listenin sonundaki "yeni hesap aç" satırı: önerilerden bir çizgiyle
   ayrılır, artı işareti kırmızı durur — seçim değil, yeni bir şey açma. */
.ba-oneri-yeni {
  border-top: 1px solid var(--kenar);
  color: var(--vurgu);
  font-weight: 500;
}

.ba-oneri-yeni .ba-oneri-kod { color: var(--vurgu); }

.ba-panel-not {
  margin: 0 0 calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .65;
}

.ba-oneri-bos {
  padding: 7px var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .5;
}

.ba-toplam td {
  height: 50px;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 700;
  border-top: 2px solid var(--kenar);
  border-bottom: 0;
}

/* Kapanış denetimi: açılış + hareketler ekstrenin son bakiyesini
   vermeli. Dosya eksik okunmuşsa burada görünür — bu şerit süs değil,
   aktarımın tek nesnel ölçüsüdür. */
.ba-kontrol {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5);
  border-top: 1px solid var(--ayirici);
  background: rgba(47, 125, 83, .05);
  color: var(--metin-basari);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ba-kontrol svg { flex: none; }

.ba-uyari {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--ayirici);
  background: rgba(184, 117, 3, .08);
  color: var(--metin-uyari);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ba-uyari svg { flex: none; vertical-align: -3px; }

/* Muhasebe kaydı Gün Sonu'nun kabuğunu kullanır; tek fark başlıktaki
   dosya satırıdır. */
/* Banka aktarımının kayıt ekranı da defter blokları taşıyor: genişliği
   .gsd-kart veriyor (1160px), burada ayrıca daraltılmaz. */

@media (max-width: 900px) {
  .ba-bankalar { grid-template-columns: 1fr; gap: var(--bosluk); }

  .ba-banka {
    display: flex;
    align-items: center;
    gap: calc(var(--bosluk) * 1.5);
    text-align: left;
    padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  }

  .ba-banka-plaka { margin: 0; width: 38px; height: 38px; }
  .ba-banka-ad { flex: 1; }

  /* Dört özet sayısı ikişerli iki sıraya iner; alttaki iki kutunun
     üstünde ayırıcı olur, yoksa iki sıra tek yığın gibi durur. */
}

/* ---------- Sıfırlama ----------
   Ayarlar'ın içinden açılan tek amaçlı bir sayfa. Gün Sonu'nun .gs-kart
   kabuğunu kullanır — uygulamanın kâğıdı burada da aynıdır — ama iki
   şeyi başka türlü yapar: sayfa dar durur (bu bir tablo değil, bir
   karar) ve tek düğmesi yıkıcıdır.

   Renk tek yerde: uyarı şeridi ve kırmızı düğme. Silinecek satırlar
   kırmızıya boyanmaz — on satır kırmızı olsaydı hiçbiri okunmazdı,
   sayfanın tehlikesi tek bir şeritte toplanır.

   Kaynak: 6-belgeler/sayfalar.md · "Sıfırlama" */

.sf-kart { max-width: 640px; }

.sf-giris {
  margin: 0;
  padding: calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 3) 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

.sf-sarmal {
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  border-radius: var(--kose-kutu);
}

.sf-tablo { table-layout: auto; }

.sf-tablo th,
.sf-tablo td {
  padding: 0 calc(var(--bosluk) * 2);
}

.sf-tablo th.sf-sayi,
.sf-tablo td.sf-sayi {
  width: 96px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.sf-satir td { height: 44px; }

/* Sayısı sıfır olan satır soluk durur ama gizlenmez: "bunu da baktım,
   yoktu" demek, satırı hiç göstermemekten fazlasını söyler. */
.sf-bos td { opacity: .4; }

/* Açılış bakiyesi satırı silinmiyor, sıfırlanıyor: toplama girmez ve
   üstündeki çizgiyle listeden ayrılır — aynı sütunda ama aynı cinsten
   değil. */
.sf-sayilmaz td { border-top: 1px solid var(--kenar); }

.sf-ad { font-weight: 500; }

.sf-not {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 400;
  opacity: .55;
}

/* Kalacaklar listesi tabloya girmez: silinenlerle aynı biçimde
   dursaydı göz ikisini ayırmazdı. Oyuk zeminde, satır satır. */
.sf-kalan {
  margin: 0 calc(var(--bosluk) * 3) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  background: var(--oyuk);
  border-radius: var(--kose-kutu);
}

.sf-kalan-baslik {
  display: block;
  margin-bottom: var(--bosluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--metin-basari);
  font-weight: 700;
}

.sf-kalan ul { margin: 0; padding: 0; list-style: none; }

.sf-kalan-satir {
  font-size: var(--kucuk-boy);
  line-height: 22px;
}

.sf-kalan-sayi {
  display: inline-block;
  min-width: 34px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.sf-kalan-duz { margin-top: 4px; opacity: .7; }

.sf-uyari,
.sf-temiz {
  display: flex;
  align-items: flex-start;
  gap: var(--bosluk);
  margin: 0 calc(var(--bosluk) * 3) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-radius: var(--kose-kutu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.sf-uyari {
  background: rgba(183, 44, 40, .08);
  color: var(--metin-hata);
}

.sf-temiz {
  background: rgba(47, 125, 83, .07);
  color: var(--metin-basari);
  align-items: center;
}

.sf-uyari svg,
.sf-temiz svg { flex: none; margin-top: 1px; }

/* Onay kutusu · yanlışlıkla basılmasın diye tek engel budur. */
/* ÖĞRENİLMİŞ EŞLEŞMELERİ DE SİL (2026.614) · asıl silme listesinin
   dışında, kendi kutusunda duran AYRI bir karar. Varsayılanı kapalıdır:
   kullanıcının kararı hafızanın kalması yönünde, silmek isteyen açıkça
   işaretler. */
.sf-secim {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--bosluk) * 1.25);
  margin: 0 calc(var(--bosluk) * 3) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  cursor: pointer;
}

.sf-secim input {
  flex: none;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  accent-color: var(--vurgu);
  cursor: pointer;
}

/* Açıklama alt satıra iner: kutunun yanındaki cümle uzun olunca
   işaretin ne yaptığı tek bakışta okunmuyordu. */
.sf-secim small {
  display: block;
  margin-top: 2px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--ikinci);
}

@media (hover: hover) {
  .sf-secim:hover { background: var(--oyuk); }
}

.sf-onay {
  margin: 0 calc(var(--bosluk) * 3) calc(var(--bosluk) * 2);
}

.sf-onay label {
  display: block;
  margin-bottom: calc(var(--bosluk) * .75);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.sf-kutu {
  width: 100%;
  max-width: 240px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
}

@media (max-width: 900px) {
  .sf-giris,
  .sf-sarmal,
  .sf-kalan,
  .sf-uyari,
  .sf-temiz,
  .sf-onay {
    margin-left: calc(var(--bosluk) * 2);
    margin-right: calc(var(--bosluk) * 2);
  }

  .sf-giris { padding-left: 0; padding-right: 0; }
  .sf-kutu { max-width: none; }
}

/* ---------- Hareketler · Hesap Defteri ----------
   Kullanıcının gönderdiği referans tasarıma göre kuruldu. Bütün sınıflar
   hd- önekli ve YALNIZ bu ekranda geçerli: süzgeç şeridi (.suzgec) ve
   tablo (.tablo) paylaşılan bileşenlerdir — Cariler, İrsaliye Aktarımı
   ve Tekrarlayan Ödemeler de kullanır. Onların ortak stiline
   dokunulmadı; bu ekranın görünümü .hd-ekran ve .hd-defter
   niteleyicilerinin altında duruyor.

   Renkler hex olarak burada değil, 2-tasarim/degiskenler.css'te --defter-*
   adlarıyla duruyor.

   Kaynak: 6-belgeler/sayfalar.md · "Hareketler" */

/* ---- SAYFA KAYMAZ, DEFTER KAYAR (2026.593) ----
   Kullanıcının isteği: "hesap defterlerinde aşağı doğru kaydırınca
   başlıklar gidiyor, öyle olmasın; başlıklar sabit kalsın".

   Eskiden bütün sayfa kayıyordu: uzun bir defterde kullanıcı aşağı
   indiğinde sütun başlıkları da hesap seçici de ekrandan çıkıyor,
   hangi sütuna baktığını anlamak için yukarı dönmek gerekiyordu.

   NİYE BASİT BİR "position: sticky" YETMEDİ · tablo kutusu yatay
   kaydırıcıdır (.tablo-kutu · overflow-x: auto) — geniş tablo yana
   kaysın ve tanıtıcı sütunlar yerinde dursun diye. Bir eksende
   kaydırıcı olan kutu tarayıcıda öteki eksende de kaydırıcı sayılır;
   başlık o kutuya yapışır, pencereye değil. Kutu dikeyde hiç kaymadığı
   için de hiçbir şey değişmez. Çözüm başlığı yapıştırmak değil, KUTUYU
   KAYDIRICI YAPMAK.

   Düzen Fatura Aktarımı'ndan geliyor (2026.534): sayfa kendi boyunda
   durur, defter kartı artan yeri alır ve kendi içinde kayar.

   YALNIZ MASAÜSTÜNDE · 900px altında kural yok. Telefonda ekran zaten
   kısa; kuşak, süzgeç ve başlık çakılı kalsaydı listeye üç satırlık
   yer kalırdı. Orada eskisi gibi bütün sayfa kayar. */
@media (min-width: 900px) {
  body:has(.sayfa-icerik.hd-ekran) { overflow: hidden; }

  body:has(.sayfa-icerik.hd-ekran) .kabuk-govde {
    height: 100dvh;
    min-height: 0;
  }

  body:has(.sayfa-icerik.hd-ekran) .sayfa-alani {
    height: calc(100dvh - var(--ust-cubuk) - env(safe-area-inset-top, 0px));
    min-height: 0;
    padding-bottom: 0;
  }

  body:has(.sayfa-icerik.hd-ekran) .sayfa {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  /* Kuşak kendi boyunda kalır, artan yeri gövde alır. */
  body:has(.sayfa-icerik.hd-ekran) .sayfa-kusak,
  body:has(.sayfa-icerik.hd-ekran) .sayfa-kusak-serit { flex: none; }

  .sayfa-icerik.hd-ekran {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    /* Alt pay kalkar: defter kartı ekranın dibine kadar iner. */
    padding-bottom: 0;
  }

  /* Başlık, süzgeç ve özet kendi boylarında; kayan yalnız defter. */
  .hd-ekran > [data-tepe],
  .hd-ekran > [data-serit],
  .hd-ekran > [data-ozet] { flex: none; }

  .hd-ekran > [data-govde] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
  }

  /* Sihirbaz şeridi de kendi boyunda: kayan defterin üstünde durur. */
  .hd-ekran > [data-govde] > .sihirbaz-serit { flex: none; }

  .hd-ekran .tablo-sarmal.hd-defter {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    /* Kart ekranın dibinde bitiyor; alt köşeleri yuvarlatmak orada
       boşluk varmış gibi gösterirdi. */
    margin-bottom: 0;
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  /* ASIL KAYAN KUTU. Yatay kaydırma duruyor, dikey de açıldı. */
  .hd-ekran .hd-defter .tablo-kutu {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
  }

  /* Dip (kaç hareket · en yeni altta) kartın altında çakılı kalır:
     kayan şey satırlar, künye değil. */
  .hd-ekran .hd-defter .tablo-dip { flex: none; }

  /* SÜTUN BAŞLIKLARI KUTUNUN TEPESİNE ÇAKILI. Hücreler zaten yatayda
     yapışık (tablo-yapisik-*); buraya dikey de ekleniyor, yani köşe
     hücreleri iki eksende birden duruyor. Zemin şart: altından satır
     geçiyor. */
  .hd-ekran .hd-defter thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--kart-yuzey);
  }

  /* Köşe hücreleri (hem yatay hem dikey yapışık) en üstte kalmalı:
     yanlarından kayan başlıklar altlarından geçsin. */
  .hd-ekran .hd-defter thead .tablo-yapisik-bir,
  .hd-ekran .hd-defter thead .tablo-yapisik-iki,
  .hd-ekran .hd-defter thead .tablo-yapisik-sag { z-index: 4; }

  /* Kartın iç teli KAYAN KUTUDA ÇİZİLMEZ (2026.552'de fatura
     listesinde öğrenildi): tel mutlak konumlu bir kaplamadır, kap
     kayınca içerikle birlikte kayar ve satırların arasında boydan boya
     altın bir çizgi gibi durur. Kartın kendi kenarlığı ayırmaya yeter. */
  .hd-ekran .tablo-sarmal.hd-defter::after { display: none; }
}

/* ---- Sayfa kimliği ---- */
.hd-tepe {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 2);
  margin-bottom: calc(var(--bosluk) * 2.5);
}

.hd-tepe-simge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  border: 1px solid var(--defter-tel-soluk);
  background: var(--defter-zemin);
  color: var(--defter-koyu);
}

.hd-tepe-yazi { min-width: 0; }

.hd-tepe-baslik {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  font-family: var(--yazi-baslik);
  font-size: 30px;
  line-height: 38px;
  font-weight: 600;
  color: var(--defter-koyu);
}

/* Hareket sayısı başlığın yanında küçük bir rozet: sayfanın ne kadar
   defter taşıdığı başlıkla birlikte okunsun. */
.hd-rozet {
  flex: none;
  padding: 4px 12px;
  border-radius: 999px;
  border: 1px solid var(--defter-tel-soluk);
  background: var(--oyuk);
  font-family: var(--yazi-metin);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  font-weight: 600;
  color: var(--defter-notr);
}

.hd-tepe-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  color: var(--defter-notr);
  opacity: .8;
}

/* ---- Kontrol paneli ----
   .suzgec'in ortak kuralları duruyor; burada yalnız kabuk ve alan
   yükseklikleri eşitleniyor. */
.hd-suzgec {
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.5);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  background: var(--defter-zemin);
  box-shadow: 0 1px 2px -1px rgba(58, 42, 29, .18);
}

.hd-suzgec .suzgec-secici,
.hd-suzgec .arama,
.hd-suzgec .hd-disari {
  height: var(--form-alan);
}

.hd-suzgec .suzgec-secici,
.hd-suzgec .arama {
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
}

.hd-suzgec .suzgec-secici:focus,
.hd-suzgec .arama-odak {
  border-color: var(--defter-koyu);
  outline: none;
}

.hd-disari {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) * .75);
  background: var(--defter-koyu);
  color: var(--yuzey);
  border-color: var(--defter-koyu);
}

.hd-disari:disabled { opacity: .45; }
.hd-disari svg { flex: none; }

/* ---- Özet kartları ---- */
.hd-ozet {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: calc(var(--bosluk) * 2);
  margin: calc(var(--bosluk) * 2) 0 calc(var(--bosluk) * 2.5);
}

.hd-kart {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 2);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  background: var(--defter-zemin);
  box-shadow: 0 1px 2px -1px rgba(58, 42, 29, .16);
  min-width: 0;
}

.hd-kart-simge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: var(--oyuk);
  color: var(--defter-notr);
}

.hd-kart-yazi { min-width: 0; }

.hd-kart-etiket {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--defter-notr);
  opacity: .75;
}

.hd-kart-deger {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: 26px;
  line-height: 34px;
  font-weight: 600;
  color: var(--metin);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Bakiyenin yönü renkle VE kalınlıkla anlatılır: yalnız renge
   güvenilmez (6-belgeler/NIZAM.md · Erişilebilirlik). */
.hd-kart-deger.hd-arti { color: var(--defter-arti); font-weight: 700; }
.hd-kart-deger.hd-eksi { color: var(--defter-eksi); font-weight: 700; }
.hd-kart-deger.hd-notr { color: var(--defter-notr); }

.hd-kart-alt {
  display: block;
  margin-top: 1px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .5;
}

/* ---- Defter kartı ----
   Dışta ince kırmızı çerçeve, içinde bir ince tel çizgi. İkisi ayrı
   katman: çerçeve border, ince çizgi inset gölge — böylece köşe
   yuvarlaklığı ikisinde de aynı kalır. */
.tablo-sarmal.hd-defter {
  border: 1px solid var(--defter-koyu);
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk),
              0 2px 6px -4px rgba(58, 42, 29, .35);
  background: var(--defter-zemin);
  position: relative;
}

/* Köşe süsü: iki ince çizginin kesiştiği küçük bir işaret. Motif değil,
   kâğıdın köşesini işaretleyen bir çentik — okumayı hiç etkilemesin
   diye 10px ve soluk. */
.tablo-sarmal.hd-defter::before,
.tablo-sarmal.hd-defter::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border: 1px solid var(--defter-tel);
  opacity: .55;
  pointer-events: none;
  z-index: 1;
}

.tablo-sarmal.hd-defter::before {
  top: 5px; left: 5px;
  border-right: 0; border-bottom: 0;
}

.tablo-sarmal.hd-defter::after {
  bottom: 5px; right: 5px;
  border-left: 0; border-top: 0;
}

.hd-defter .tablo thead th {
  font-family: var(--yazi-baslik);
  font-size: var(--kucuk-boy);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--defter-koyu);
  background: var(--defter-baslik);
  border-bottom: 2px solid var(--defter-koyu);
}

/* Satır zemini: geniş ekranda HÜCREYE, dar ekranda SATIRA verilir.
   Sebebi iki düzenin farkı: geniş ekranda ilk iki sütun yapışkandır ve
   kaydırırken altından satır geçmesin diye kendi zeminini taşımak
   zorundadır; 900px altında satır karta dönüşüyor (2-tasarim/bilesenler.css ·
   "Tablo dar ekranda") ve her hücreye zemin vermek kartı kutucuklara
   bölüyordu. */
@media (min-width: 900px) {
  .hd-defter .tablo tbody tr:nth-child(even) td { background: var(--defter-satir-cift); }
  .hd-defter .tablo tbody tr:nth-child(odd) td { background: var(--defter-satir); }
  .hd-defter .tablo tbody tr:hover td { background: var(--defter-hover); }
  /* nth-child kuralıyla aynı özgüllükte olmalı, yoksa zebra bastırır;
     !important yerine seçici düzeltilir. */
  .hd-defter .tablo tbody tr.hd-acilis td { background: var(--defter-acilis); }

  /* Sütun ayracı: başlıkta ve gövdede aynı çizgi, aynı yerde. İlk
     sütunda çizgi yok — kartın kendi çerçevesi zaten orada. */
  .hd-defter .tablo th + th,
  .hd-defter .tablo td + td {
    border-left: 1px solid var(--defter-cizgi);
  }

  .hd-defter .tablo td {
    height: 52px;
    border-bottom: 1px solid var(--defter-tel-soluk);
  }

  .hd-defter .tablo tbody tr:last-child td { border-bottom: 0; }

  /* Hizalama · kullanıcı kararı: yalnız Açıklama sütunu soldan başlar,
     öbür sütunların hem başlığı hem verisi ortada durur. Ortak .tablo
     kurallarına dokunulmadı (Cariler, İrsaliye, Tekrarlayan Ödemeler
     aynı tabloyu kullanıyor); kural yalnız .hd-defter'in altında ve
     yalnız geniş ekranda — 900px altında satır karta dönüşüyor, orada
     ortalamanın anlamı yok.
     Özgüllük: ".tablo thead th.tablo-para" (0,2,2) sağa yaslıyor;
     aşağıdaki seçici onunla eşit ama bu dosya sonra yüklendiği için
     kazanır. !important'e gerek yok. */
  .hd-defter .tablo thead th,
  .hd-defter .tablo tbody td { text-align: center; }

  .hd-defter .tablo thead th.tablo-yapisik-iki,
  .hd-defter .tablo tbody td.tablo-yapisik-iki { text-align: left; }
}

@media (max-width: 899.98px) {
  .hd-defter .tablo tbody tr:nth-child(even) { background: var(--defter-satir-cift); }
  .hd-defter .tablo tbody tr:nth-child(odd) { background: var(--defter-satir); }
  .hd-defter .tablo tbody tr:hover { background: var(--defter-hover); }
  .hd-defter .tablo tbody tr.hd-acilis { background: var(--defter-acilis); }
  /* Yapışkan sütunların zemini kart düzeninde işe yaramaz; kalırsa
     satırın içinde ayrı kutular gibi durur. */
  .hd-defter .tablo tbody td { background: none; }
  .hd-defter .tablo tbody tr { border-bottom: 1px solid var(--defter-tel-soluk); }
}

/* ---- Telefonda banka kartı (2026.1465 · hareketler.js · mobKart) ----
   Masaüstünde gizli; 900px altında satırın tek hücresi o olur. Sağ sütun
   her kartta 132px: başlık ve açıklama bütün kartlarda aynı hizada. En
   yeni üstte: tbody ve kutu ters dizilir (gözcü ve yükleme şeridi altta). */
.hd-defter .tablo td.hd-mob { display: none; }
@media (max-width: 899.98px) {
  .hd-defter .tablo-kutu { display: flex; flex-direction: column-reverse; }
  .hd-defter .tablo tbody { display: flex; flex-direction: column-reverse; }
  .hd-defter .tablo tbody tr { display: block; padding: 13px 14px; }
  .hd-defter .tablo tbody tr::after { display: none; }
  .hd-defter .tablo tbody tr > td { display: none !important; }
  .hd-defter .tablo tbody tr > td.hd-mob { display: block !important; width: 100%; padding: 0; text-align: left; }
  .hd-m {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 132px;
    grid-template-areas: "t ad tt" "t bl bk" "t ack ack" "t ek ek";
    gap: 2px 10px;
    align-items: baseline;
  }
  .hd-m-t { grid-area: t; align-self: start; text-align: center; line-height: 1.05; color: var(--defter-notr); }
  .hd-m-t b { display: block; font-size: 24px; font-weight: 700; color: #5A5F6E; }
  .hd-m-t small { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; }
  .hd-m-ad { grid-area: ad; min-width: 0; font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--metin); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .hd-m-tt { grid-area: tt; min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--metin); }
  .hd-m-tt.hd-m-giren { color: var(--defter-arti); }
  .hd-m-bl { grid-area: bl; font-size: 13px; color: var(--defter-notr); }
  .hd-m-bk { grid-area: bk; min-width: 0; text-align: right; white-space: nowrap; overflow: hidden; font-size: 13.5px; font-variant-numeric: tabular-nums; color: var(--metin); }
  .hd-m-bk.tablo-eksi { color: var(--defter-eksi); }
  .hd-m-ack { grid-area: ack; margin-top: 4px; font-size: 13.5px; line-height: 1.35; color: var(--metin); opacity: .85; overflow-wrap: anywhere; }
  .hd-m-ek { grid-area: ek; margin-top: 3px; font-size: 12px; color: var(--defter-notr); }
  .hd-iptal .hd-m { opacity: .55; }
  .hd-kom-uyari .hd-m-ack { color: var(--metin-uyari); opacity: 1; }
}

/* Açılış satırı: defterin başlangıcı, hareket değil. Kalın yazı iki
   düzende de onu listeden ayırır. */
.hd-defter .hd-acilis td { font-weight: 600; }

.hd-acilis-rozet {
  display: inline-block;
  margin-right: var(--bosluk);
  padding: 2px 9px;
  border-radius: 8px;
  border: 1px solid var(--defter-tel-soluk);
  background: var(--defter-zemin);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--defter-notr);
  vertical-align: 1px;
}

.hd-acilis-ad { white-space: nowrap; }

/* Yön işareti · açıklamanın önünde, metni bastırmayacak kadar küçük. */
.hd-yon {
  display: inline-flex;
  vertical-align: -2px;
  margin-right: 6px;
}

.hd-yon-giren { color: var(--defter-arti); }
.hd-yon-cikan { color: var(--defter-eksi); }

.hd-ack { overflow-wrap: anywhere; }

/* Bakiye sütunu: yön renkle ve kalınlıkla. */
.hd-defter .tablo .tablo-tutar { font-weight: 600; color: var(--defter-arti); }
.hd-defter .tablo .tablo-tutar.tablo-eksi { color: var(--defter-eksi); font-weight: 700; }

/* ---- Dip ---- */
.hd-dip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  border-top: 1px solid var(--defter-tel-soluk);
  color: var(--defter-notr);
}

.hd-dip-sag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  opacity: .75;
}

.hd-dip-sag svg { flex: none; }

@media (max-width: 900px) {
  .hd-tepe { gap: calc(var(--bosluk) * 1.5); margin-bottom: calc(var(--bosluk) * 2); }
  .hd-tepe-simge { width: 44px; height: 44px; border-radius: 12px; }
  .hd-tepe-simge svg { width: 24px; height: 24px; }

  .hd-tepe-baslik {
    flex-wrap: wrap;
    gap: var(--bosluk);
    font-size: var(--h1-boy);
    line-height: var(--h1-satir);
  }

  .hd-tepe-alt { font-size: var(--kucuk-boy); line-height: var(--kucuk-satir); }

  /* Üç kart tek sütuna iner: yan yana sıkıştırmak tutarları kırpıyordu. */
  .hd-ozet {
    grid-template-columns: 1fr;
    gap: var(--bosluk);
    margin: calc(var(--bosluk) * 1.5) 0 calc(var(--bosluk) * 2);
  }

  .hd-kart { padding: calc(var(--bosluk) * 1.5); }
  .hd-kart-simge { width: 38px; height: 38px; }
  .hd-kart-deger { font-size: 22px; line-height: 30px; }

  .hd-suzgec { padding: var(--bosluk); border-radius: 12px; }
  .hd-defter .tablo td { height: 46px; }

  /* Kart satırında rozet kimliğin yanında durur, satırı taşırmaz. */
  .hd-acilis-rozet { margin-right: 6px; }
  .hd-acilis-ad { white-space: normal; }

  /* Köşe süsü kart satırlarının üstüne binmesin. */
  .tablo-sarmal.hd-defter::before,
  .tablo-sarmal.hd-defter::after { display: none; }
}

@media (min-width: 901px) and (max-width: 1200px) {
  .hd-kart { padding: calc(var(--bosluk) * 1.5); gap: var(--bosluk); }
  .hd-kart-simge { width: 40px; height: 40px; }
  .hd-kart-deger { font-size: 22px; line-height: 30px; }
}

/* Sonuç satırı ("İşlenince") defterin açılış satırıyla aynı gri
   zemini alır: bloğun cevabı odur, satırların arasında kaybolmasın.
   Kural defter renklerinden SONRA gelir — .hd-defter'in zebra kuralları
   aynı ağırlıkta, sonra yazılan kazanır (css cascade). */
.hd-defter .tablo tbody tr.gsd-sonuc td { background: var(--defter-acilis); }
.hd-defter .tablo tbody tr.gsd-sonuc { background: var(--defter-acilis); }
.hd-defter .tablo tbody tr.gsd-sonuc td { font-weight: 600; }

/* ---- Fatura Aktarımı · muhasebe kaydı tek tabloda ----
   Bir dosyada onlarca tedarikçi hesabı geçiyor; her hesaba ayrı kart
   verilseydi ekran kartlardan görünmezdi. Tek tablo, hesap sütunuyla
   (4-ekranlar/1-aktarimlar/fatura-aktarimi.js · fisTablosuHtml). */
@media (min-width: 900px) {
  .fa-tablo th.fa-sut-hesap { width: 210px; }

  /* Hesap adı sütuna sığmazsa sarar; kod hep başta ve okunur kalır. */
  .fa-tablo td.fa-hesap {
    white-space: normal;
    text-align: left;
    line-height: var(--kucuk-satir);
  }

  .fa-tablo th.fa-sut-hesap { text-align: left; }

  /* Fatura numarası sütunu: gün sonu tablosunun 124px'lik ölçüsü
     e-fatura numarasına yetmiyor, numara ikiye bölünüyordu. Burada
     156px alır ve tek satırda durur; artan yer açıklamadan gelir,
     çünkü açıklama ölçü almaz ve zaten sarar. */
  .fa-tablo th.fa-sut-fatura { width: 156px; }

  .fa-tablo td.fa-fatura-no {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  /* Bir faturanın iki bacağı birlikte okunur: ikinci satır üstündekine
     yapışır, aradaki çizgi silinir. */
  .hd-defter .fa-tablo tbody tr.fa-cift td { border-top: 0; }
  .hd-defter .fa-tablo tbody tr:not(.fa-cift) td { border-top: 1px solid var(--defter-tel-soluk); }
}

/* Hesap özeti · tablonun altında, bakiye burada durur. */
.fa-ozet {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) / 2);
  padding: calc(var(--bosluk) * 2);
  background: var(--defter-zemin);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kutu);
}

.fa-ozet-baslik {
  font-family: var(--yazi-baslik);
  font-size: var(--kucuk-boy);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--defter-koyu);
  margin-bottom: calc(var(--bosluk) / 2);
}

.fa-ozet-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--bosluk);
  padding: 4px 0;
  border-bottom: 1px solid var(--defter-tel-soluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fa-ozet-satir:last-child { border-bottom: 0; }

.fa-ozet-satir .gsk-kod { color: var(--defter-koyu); }

.fa-ozet-ad { flex: 1 1 auto; min-width: 0; }

.fa-ozet-bakiye {
  margin-left: auto;
  color: var(--defter-notr);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fa-ozet-bakiye b { color: var(--metin); font-weight: 600; }
.fa-ozet-ok { opacity: .5; margin: 0 2px; }

/* ---- İrsaliye · mal girişi ----
   Mal kapısında telefonla doldurulan ekran: künye üstte, ürünler alt
   alta, her satırda tek kutu (miktar). Muhasebe dili yok.
   Kaynak: 4-ekranlar/1-aktarimlar/irsaliye-aktarimi.js · girisiCiz */
/* ---- İki bölme · solda mal girişi, sağda irsaliyeler ----
   İkisi ayrı ekrandı, düğmeyle gidilip geliniyordu. Mal kapısındaki iş
   ikisini birlikte ister (2026.152 · kullanıcının kararı).

   1200px altında alt alta iner: önce giriş, altında liste. Yan yana
   sıkıştırmak iki tarafı da okunmaz yapıyordu. */
.ir-ikili {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 3);
  align-items: start;
}

@media (min-width: 1200px) {
  .ir-ikili {
    /* İKİ KART AYNI ÖLÇÜDE (2026.536 · kullanıcının kararı). Eskiden
       5/6'ydı; fiş kâğıda benzeyince eşitlik daha doğru okundu ve ürün
       adına da yer açtı. */
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: calc(var(--bosluk) * 3);
    /* İki kart da sayfayı boydan kaplar (2026.155 · kullanıcının
       kararı): ekranın kalanı kadar yükselir, sayfa aşağı uzamaz.
       232px = üst çubuğun altındaki kuşak (140) + sayfa payları. */
    height: calc(100vh - var(--ust-cubuk) - 232px);
    min-height: 520px;
  }

  .ir-sol,
  .ir-sag {
    display: flex;
    height: 100%;
    min-height: 0;
  }

  /* Kart kolonun tamamını doldurur; içindeki uzun bölüm (solda ürün
     tablosu, sağda irsaliye listesi) KENDİ İÇİNDE kayar. */
  .ir-sol > .ir-kart,
  .ir-sag > .ir-kart {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-bottom: 0;
  }

  .ir-liste-suzgec {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
  }
}

/* Liste de mal girişiyle AYNI KART: aynı başlık kuşağı, aynı kâğıt,
   aynı çerçeve (2026.154 · kullanıcının kararı). Süzgeç şeridi kartın
   içinde, başlığın hemen altında durur; tablo da onun altında. */
.ir-liste-suzgec { padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3); }

.ir-liste-suzgec .suzgec { margin-bottom: calc(var(--bosluk) * 2); }

/* Kartın içindeki tablonun çerçevesi dosyanın SONUNDA kaldırılır:
   zemin bloğu orada kart yüzeyini ve gri telini herkese veriyor,
   buradaki kural onun altında kalırdı. */

.ir-sag .suzgec { margin-bottom: calc(var(--bosluk) * 2); }

/* KART DEFTERİN KÂĞIDIDIR, DÜZ BİR KUTU DEĞİL (2026.404 · kullanıcının
   isteği: "buranın renklerini de tasarım dilimize göre ayarla, düz renk
   olmasın desenli olsun").

   Kural tek tek yazılmadı, uygulamanın kendi kart belirteçlerinden
   kuruldu — Ay Sonu Sayımı ile Giderler raporu da aynılarını kullanıyor:
   kart zemini, motif katmanı, altın çerçeve, kart gölgesi. Üstüne
   uygulamanın kâğıt greni biner (temel.css · .gren ile aynı doku) ve
   içeride ikinci bir soluk tel durur. Böylece kart tek bir renk lekesi
   olmaktan çıkıp defterin sayfası gibi görünür. */
.ir-kart {
  margin: 0 0 calc(var(--bosluk) * 3);
  border-radius: var(--kose-kart);
  overflow: hidden;
}

/* Tepe bandı · defterin açılış sıcaklığı (2026.404). Eskiden --oyuk
   ile boyanıyordu: o gri-bej, kâğıdın değil arayüzün rengi ve kartın
   üstünde soğuk bir şerit gibi duruyordu. Artık açılış satırının
   rengiyle kâğıt karıştırılıyor — dip bandıyla aynı aile — ve altındaki
   ayırıcı defterin teli oluyor. */
.ir-tepe {
  position: relative;
  /* Kart tepesi ince tutulur (2026.157 · kullanıcının kararı): ürün
     listesi asıl iştir, üstündeki kısım ona yer bırakmalı. */
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
  background-color: var(--defter-acilis);
  /* Bant kendi zeminini boyadığı için kartın greni altında kalıyordu;
     doku bandın üstünde de sürsün, kâğıt baştan sona aynı olsun. */
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.ir-tepe-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.ir-tepe-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
  max-width: 52ch;
}

/* Faturanın irsaliyelerine inince tepede geri düğmesi durur
   (2026.272). Başlığın üstünde, kendi satırında: kullanıcı nerede
   olduğunu görsün ve tek dokunuşla çıksın. */
.ir-geri {
  display: inline-flex;
  margin-bottom: calc(var(--bosluk) * 1.25);
}

.ir-buyutec { flex: none; }

.ir-kart .tablo-sarmal {
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  border-radius: var(--kose-kutu);
  box-shadow: none;
}

/* Sütun başlığının altındaki küçük not: "Son fiyat / KDV dahil".
   Başlığı uzatmadan fiyatın hangi tabanda olduğunu söyler
   (2026.244 · kullanıcının kararı · KDV sütunu istemedi, sade kalsın). */
.ir-bas-not {
  display: block;
  font-size: var(--etiket-boy);
  font-weight: 400;
  opacity: .6;
  letter-spacing: 0;
  text-transform: none;
}

/* Ürün adını düzeltme · satırın üstüne gelince belirir, dokunmatikte
   her zaman durur. */
.ir-ad-duzelt {
  margin-left: 6px;
  padding: 2px;
  border: 0;
  border-radius: 6px;
  background: none;
  color: inherit;
  opacity: 0;
  cursor: pointer;
  vertical-align: middle;
}

.fis-satir:hover .ir-ad-duzelt,
.ir-ad-duzelt:focus { opacity: .7; }
.ir-ad-duzelt:hover { opacity: 1; background: var(--oyuk); }

@media (hover: none) {
  .ir-ad-duzelt { opacity: .55; }
}

@media (max-width: 899.98px) {
  .ir-tepe { padding: calc(var(--bosluk) * 2); }
  .ir-kart .tablo-sarmal { margin: var(--bosluk) calc(var(--bosluk) * 2); }
}

/* ---- Fiş girişi ----  (2026.534 · kullanıcının kararı)
   "Mal Girişi" kartı bakkal fişine döndü: en üstte sağda tarih, altında
   solda tedarikçi sağda irsaliye no, altında on sekiz kalemlik çizgili
   alan. Giriş alanları kutu değil çizgidir — kâğıda yazar gibi.

   ÖLÇÜ VERİYE BAĞLI DEĞİLDİR. Fiş boşken ne kadar yer kaplıyorsa en
   dolu hâlinde de o kadar kaplar: satır sayısı (FIS_SATIR) ve satır
   boyu sabittir, ürün daha çoksa kutu kendi içinde kayar. Taşan yazı
   kesilir ve "…" ile biter; tamamı üstüne gelince görünür.
   Kaynak: 4-ekranlar/1-aktarimlar/irsaliye-aktarimi.js · girisiCiz */
.fis-kart {
  /* Fişin bütün ölçüleri buradan okunur; biri değişince satır, başlık
     ve kutu birlikte değişir. */
  --fis-satir: 26px;
  --fis-baslik: 26px;
  --fis-satir-adet: 18;
}

.fis-tepe { display: flex; align-items: center; gap: var(--bosluk); }

.fis-tepe .ir-tepe-baslik { flex: 1 1 auto; min-width: 0; }

.fis-tepe-sag {
  flex: none;
  display: flex;
  align-items: center;
  gap: var(--bosluk);
}

/* Künye · tarih tek başına sağ üstte, altında tedarikçi ile irsaliye no
   karşılıklı. Fişin başlığı budur. */
.fis-kunye {
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.fis-kunye-tarih { display: flex; justify-content: flex-end; }

.fis-kunye-tarih .alan { width: 148px; }

.fis-kunye-alt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: calc(var(--bosluk) * 2);
  align-items: end;
}

.fis-kunye .alan { margin: 0; }

.fis-kunye .alan-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

/* Tarih ve irsaliye no sağa yaslı: fişin sağ kenarı hizalı dursun. */
.fis-kunye-tarih .alan-etiket,
.fis-kunye-no .alan-etiket,
.fis-kunye-no .alan-kutu { text-align: right; }

.fis-kunye-tarih .alan-kutu-tarih { text-align: right; }

/* ---- Çizgi alanlar ----
   Fişin içinde kutu yoktur (2026.534 · kullanıcının kararı: "veri
   girişleri kutu değil çizgi olsun"). Yükseklik her alanda aynı kalır
   ki satırlar kaymasın. */
.fis-kart .alan-kutu,
.fis-a4 .alan-kutu,
.fis-cizgi {
  height: 32px;
  padding: 0 2px;
  border: 0;
  border-bottom: 1px solid var(--defter-tel);
  border-radius: 0;
  background: transparent;
}

.fis-kart .alan-kutu:focus,
.fis-a4 .alan-kutu:focus,
.fis-cizgi:focus {
  outline: none;
  border-bottom-color: var(--vurgu);
  box-shadow: 0 1px 0 0 var(--vurgu);
}

.fis-kart .sec-kutu { padding-right: calc(var(--bosluk) * 2.5); }
.fis-kart .sec-ok { right: 0; }
.fis-kart .trh .alan-kutu-tarih { padding-right: calc(var(--bosluk) * 4); }
.fis-kart .trh-dugme { right: 0; width: 28px; height: 28px; }

/* ---- Kalem alanı ----
   Yüksekliği satır sayısından gelir: başlık + --fis-satir-adet satır.
   Ürün daha
   çoksa burada kayar, fişin boyu değişmez. */
.fis-kutu {
  height: calc(var(--fis-baslik) + var(--fis-satir) * var(--fis-satir-adet));
  overflow: auto;
  padding: 0 calc(var(--bosluk) * 2.5);
}

/* Sabit düzen · sütun enleri veriye göre oynamaz, uzun ad hücreyi
   genişletemez; kesilir. */
.fis-tablo {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.fis-s-fiyat { width: 21%; }
.fis-s-miktar { width: 15%; }
.fis-s-tutar { width: 20%; }

.fis-tablo thead th {
  position: sticky;
  top: 0;
  z-index: 3;
  height: var(--fis-baslik);
  padding: 0 4px;
  text-align: left;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--defter-koyu);
  background: var(--kart-yuzey);
  box-shadow: inset 0 -1px 0 0 var(--defter-tel);
}

.fis-tablo thead th:nth-child(2),
.fis-tablo thead th:nth-child(3),
.fis-tablo thead th:nth-child(4) { text-align: right; }

.fis-tablo td {
  height: calc(var(--fis-satir) - 1px);
  padding: 0 4px;
  border-bottom: 1px dotted var(--defter-tel-soluk);
  font-size: var(--kucuk-boy);
  line-height: calc(var(--fis-satir) - 1px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fis-dolu td { background: rgba(47, 125, 83, .07); }

/* Ürün adı · kalem düğmesi yanında durur, ad taşarsa "…" ile biter. */
.fis-ad-kutu {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  min-width: 0;
}

.fis-ad-yazi {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fis-birim {
  flex: none;
  font-size: var(--etiket-boy);
  opacity: .6;
}

/* Kalem düğmesi satırı büyütmez: içindeki çizim satır kutusu açıyor ve
   o satır ötekilerden dört piksel uzun kalıyordu — satırlar kutuya
   sığmıyordu (2026.534). */
.fis-ad .ir-ad-duzelt {
  flex: none;
  display: flex;
  align-items: center;
  height: 18px;
  margin-left: 0;
  padding: 1px;
}

.fis-fiyat,
.fis-miktar,
.fis-tutar {
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fis-tutar { font-weight: 600; }

/* Satır içindeki çizgiler hücrenin kendi teliyle karışmasın: yalnız
   odaklanınca belli olur, boşken satırın kendi teli yeter. */
.fis-tablo .fis-cizgi {
  display: block;
  width: 100%;
  height: calc(var(--fis-satir) - 3px);
  line-height: normal;
  border-bottom: 0;
  text-align: right;
  font-size: var(--kucuk-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fis-tablo .fis-yeni-kutu { text-align: left; }

.fis-tablo .fis-cizgi:focus { box-shadow: 0 1px 0 0 var(--vurgu); }

.fis-tablo .fis-cizgi:disabled { background: transparent; }

/* ---- Fişin dibi · toplam ve kaydet ---- */
.fis-altlik {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--defter-tel);
  /* Dip bandı tepeyle aynı aileden (2026.404): kart üstte ve altta aynı
     sıcaklıkla kapanır, ortadaki kâğıt açık kalır. */
  background-color: var(--defter-acilis);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.fis-toplam-adi {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .7;
}

.fis-toplam {
  flex: 1 1 auto;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ---- Büyütülmüş fiş · A4 ----  (2026.534 · kullanıcının isteği)
   Büyüteç aynı fişi ortada kâğıt boyunda açar; arama yalnız buradadır.
   Kâğıdın boyu da sabittir, içindeki kalem alanı kendi içinde kayar. */
.fis-a4 {
  --fis-satir: 28px;
  --fis-baslik: 28px;
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 1.5);
  width: 100%;
  max-width: var(--kagit-en);
  margin: 0 auto;
}

.fis-a4-kunye { border-bottom: 1px solid var(--defter-tel); padding-bottom: var(--bosluk); }

.fis-a4-tarih {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.fis-a4-alt {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  margin-top: calc(var(--bosluk) / 2);
}

.fis-a4-cari {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  color: var(--defter-koyu);
}

.fis-a4-no {
  flex: none;
  font-variant-numeric: tabular-nums;
}

.fis-a4-arama { margin: 0; }

.fis-a4-kutu {
  height: calc(var(--fis-baslik) + var(--fis-satir) * 22);
  max-height: 58vh;
  padding: 0;
}

.fis-a4 .fis-altlik {
  margin: 0 calc(var(--bosluk) * -2);
  padding: var(--bosluk) calc(var(--bosluk) * 2);
  border-radius: var(--kose-kutu);
}

@media (min-width: 1200px) {
  /* Fiş kendi boyunu kendi belirler; iki bölmenin boyu artık ekrana
     değil fişe bağlıdır (2026.534). Liste kartı fişle aynı boya uzar ve
     kendi içinde kayar: mutlak konumlandığı için listenin uzunluğu
     ızgaranın boyunu büyütemez, yoksa sağdaki veri soldaki fişin boyunu
     değiştirirdi. */
  .ir-ikili { height: auto; min-height: 0; align-items: stretch; }

  .ir-sol { height: auto; }

  .ir-sag {
    position: relative;
    display: block;
    height: auto;
  }

  .ir-sag > .ir-kart {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    min-height: 0;
    margin-bottom: 0;
  }

  .fis-kart > .fis-tepe,
  .fis-kart > .fis-kunye,
  .fis-kart > .fis-kutu,
  .fis-kart > .fis-altlik { flex: none; }

  /* ---- Kuşağa yapışma (2026.536) ----
     Kullanıcının isteği: "tepedeki kartla fiziksel olarak birleşik
     olsun, yapısal değil." Fatura Aktarımı'ndaki ile aynı ele alış
     (2026.525): kartlar kuşağın İÇİNE girmez — ayrı kartlar olarak
     kalır, yalnız aralarındaki boşluk kalkar ve sınırda tek bir çizgi
     durur. Kuşak kendi boyunda kaldığı için arkasındaki çizim de kendi
     ölçüsünde kalır.

     Telefonda yapışma yok (kullanıcının kararı): dar ekranda kartlar
     alt alta iner, yapışık bir sütun okunmayı kolaylaştırmıyor. */
  .sayfa-kusak:has(+ .sayfa-kusak-serit + .ir-birlesik) {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  /* Sayfa payı da kalkar: kartlar kuşağın kenarlarıyla hizalanmazsa
     "birleşik" görünmez. Alt pay durur, sayfanın dibiyle arada boşluk
     kalsın. */
  .sayfa-icerik.ir-birlesik {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }

  /* Kartların üstü düzleşir ve kendi üst kenarlığını bırakır: sınırdaki
     tek çizgi kuşağın alt kenarıdır. Aradaki boşlukta da o çizgi
     sürer — iki ayrı kart olduğu oradan bellidir. */
  .ir-birlesik .ir-kart {
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

@media (max-width: 899.98px) {
  .fis-tepe { padding: calc(var(--bosluk) * 2); flex-wrap: wrap; }
  .fis-kunye { padding: var(--bosluk) calc(var(--bosluk) * 2); }
  .fis-kunye-alt { grid-template-columns: minmax(0, 1fr) 120px; gap: var(--bosluk); }
  .fis-kunye-tarih .alan { width: 132px; }
  .fis-kutu { padding: 0 calc(var(--bosluk) * 2); }
  .fis-altlik { padding: var(--bosluk) calc(var(--bosluk) * 2); }
  /* Telefonda rakam adın önüne geçer: fiş mal kapısında telefonla
     doldurulur, orada okunması gereken şey fiyat ve tutardır. Ad
     kısalır, tamamı dokunulunca ipucunda durur. Birim de gizlenir:
     sütunun her pikseli ada kalsın. */
  .fis-s-fiyat { width: 24%; }
  .fis-s-miktar { width: 15%; }
  .fis-s-tutar { width: 27%; }
  .fis-birim { display: none; }
  .fis-tablo thead th { font-size: 10px; }
}

/* ---- İrsaliye · faturayla eşleştirme ----
   Bekleyenler listesinde işaret kutusu, altında seçim şeridi; faturayı
   seçme paneli. Kaynak: 4-ekranlar/1-aktarimlar/irsaliye-aktarimi.js */
.ir-sec-sutun { width: 44px; text-align: center; }

.ir-sec { width: 18px; height: 18px; accent-color: var(--vurgu); cursor: pointer; }

.tablo-satir.ir-secili td { background: rgba(47, 125, 83, .10); }

.tablo-satir.ir-pasif { opacity: .45; }

.ir-not {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

/* Seçim şeridi tablonun altında durur: kaç irsaliye, hangi tedarikçi,
   toplam kaç lira — ve tek düğme. */
.ir-serit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2);
  border-top: 1px solid var(--kenar);
  background: var(--oyuk);
}

.ir-serit-yazi {
  flex: 1 1 auto;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ir-panel-ozet,
.ir-panel-bos,
.ir-panel-fark {
  margin: 0 0 calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ir-panel-bos { opacity: .7; }

/* Fatura listesi: her fatura bir düğme, seçilen kırmızı çerçeveyle
   işaretlenir. */
.ir-fatura-liste {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) / 2);
  max-height: 260px;
  overflow-y: auto;
  margin-bottom: calc(var(--bosluk) * 2);
}

.ir-fatura {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  width: 100%;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
}

.ir-fatura-secili {
  border-color: var(--vurgu);
  box-shadow: 0 0 0 2px rgba(183, 44, 40, .12);
}

.ir-fatura-no { font-weight: 600; }
.ir-fatura-tarih { opacity: .6; }

.ir-fatura-tutar {
  margin-left: auto;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  font-weight: 600;
}

/* Fark cümlesi: tutuyorsa yeşil, tutmuyorsa uyarı rengi. Fark olağandır
   (iskonto, eksik teslim) — engel değil, bilgi. */
.ir-panel-fark {
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: rgba(184, 117, 3, .12);
  color: var(--metin-uyari);
}

.ir-panel-fark.ir-fark-yok {
  background: rgba(47, 125, 83, .14);
  color: var(--metin-basari);
}

/* Farkın altındaki ipucu: fiyat tabanı değiştiği için eski kayıtlarda
   çıkabilecek farkı anlatır (2026.244). Uyarı değil, yol gösterir. */
.ir-panel-ipucu {
  margin-top: calc(var(--bosluk) * .5);
  padding: 0 calc(var(--bosluk) * 1.5);
  font-size: var(--etiket-boy);
  color: var(--metin);
  opacity: .6;
}

@media (max-width: 899.98px) {
  .ir-serit { padding: calc(var(--bosluk) * 1.5); }
  .ir-serit-yazi { width: 100%; }
}

/* ---- Nakit Akış ----
   Yatay tablo: solda satır başlıkları yapışık, sağa doğru günler.
   Dört öbek (devir · giren · çıkan · kalan) bant başlıklarıyla ayrılır.
   Öngörü sayıları SOLUK AMA BELİRGİN durur — kullanıcının isteği:
   "o gün yaşanınca gerçek rakamla değişecek".
   Kaynak: 4-ekranlar/2-raporlar/nakit-akis.js */
/* Kart kâğıttır (2026.405 · İrsaliye Aktarımı ile aynı ele alış).
   Çift tel çerçeve ve gölge ortak kart bloğundan geliyor; gren oradan
   SONRA yazılıyor, yoksa --kart-desen onu ezer. */
.na-kart {
  border-radius: var(--kose-kart);
  overflow: hidden;
}

/* Tepe, İrsaliye Aktarımı'nın mal giriş kartıyla ve Gün Sonu kâğıdıyla
   aynı: solda kırmızı başlık, altında künye satırı, sağda sayfanın
   işleri (2026.174 · kullanıcının kararı). Başlık ile künye eskiden aynı
   satırda yan yana duruyordu; ölçüler artık ".ir-tepe" ile birebir. */

.na-tepe {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
  background-color: var(--defter-acilis);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.na-tepe-yazi { min-width: 0; }

.na-tepe-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.na-tepe-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.na-tepe-sag {
  display: flex;
  align-items: center;
  flex: none;
  flex-wrap: wrap;
  gap: var(--bosluk);
}

/* GEZİNME ÖBEĞİ (2026.405) · ileri · bugün · geri tek şeritte.
   Üçü aynı işin yüzleri; ayrı ayrı çerçeveli düğme olunca şerit dört
   eşit ağırlıkta kutuya dönüyordu. Ölçüler süzgeç sekmesiyle birebir
   (.hesap-suzgec): uygulamada tek bir öbek görüntüsü var. */
.na-gezinme {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: none;
  padding: 3px;
}

.na-gez-dugme {
  flex: none;
  min-width: 34px;
  height: 32px;
  padding: 0 calc(var(--bosluk) * 1.25);
  font-size: var(--kucuk-boy);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--gecis) ease-out;
}

/* Oklar yazıdan büyük: dokunulacak asıl yer onlar. */
.na-gez-dugme:not(.na-gez-bugun) { font-size: var(--h2-boy); }

/* Aynı kusur burada da vardı (2026.510): .na-gez-dugme:hover seçiliyi
   dışlamıyor ve bilesenler.css'teki doğru kuralı eziyordu. Silindi;
   ortak kural .na-gez-dugme:hover:not([aria-pressed="true"]) ile
   seçiliye hiç uğramıyor. */

/* ÖNGÖRÜLENLER DÜĞMESİ (2026.409 · kullanıcının isteği: "düğmeyi
   güzelleştir").

   Eskiden ötekilerle aynı çerçeveli kutuydu: "＋ Beklenen ekle". Şeritte
   üç eşit ağırlıkta kutu vardı ve hangisinin ne olduğu ancak okununca
   anlaşılıyordu. Bu düğme bir EKLEME değil bir KAPI — tablodaki soluk
   sayıların nereden geldiğini açar. O yüzden dolgulu ve simgeli durur;
   şeritteki tek renkli şey odur, göz oraya gider. */
/* SINIFIN ADI "na-ongoru" OLAMAZ (2026.410 · kullanıcının bildirimi:
   "bir şeyleri bozmuşsun").

   O ad ZATEN ALINMIŞTI: tablodaki ÖNGÖRÜ HÜCRELERİ onu taşıyor
   (nakit-akis.js · hucreHtml → class="na-h na-ongoru"). Düğmeye de aynı
   adı verince buradaki kurallar bütün öngörü hücrelerine bindi:
   hücreler 38px yüksekliğinde, dolgulu, yuvarlak köşeli birer düğmeye
   döndü ve tablo düzeni dağıldı — sayılar sütunlara yayılmak yerine tek
   sütunda alt alta dizildi. */
.na-ongoru-dugme {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 1.5);
  flex: none;
  height: 38px;
  padding: 0 calc(var(--bosluk) * 1.75);
  /* Beyaz zemin, ince altın çerçeve · ikincil düğmenin dili
     (2026.411). Önce soluk kırmızı dolguluydu; tek renkli şey olsun
     diye öyle yapılmıştı ama uygulamada artık düğmelerin ortak bir
     yüzü var ve bu da ondan ayrılmıyor. */
  font-size: var(--kucuk-boy);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--gecis) ease-out, border-color var(--gecis) ease-out;
}

.na-ongoru-dugme .simge { color: currentColor; }

/* Üstüne gelince yalnız çerçeve kırmızıya döner — ikincil düğmenin
   aynısı (2026.411). Dolgu değişmiyor: beyaz zeminden pembeye atlamak
   düğmeyi "basıldı" gibi gösteriyordu. */
@media (hover: hover) {
  .na-ongoru-dugme:hover { border-color: var(--vurgu); }
}

/* Dişli yazısız durur; yanındaki iki düğme zaten yazılı. Çerçevesi de
   ötekilerle aynı altın (2026.411). */
.na-dis {
  flex: none;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
}

@media (hover: hover) {
  .na-dis:hover { border-color: var(--vurgu); color: var(--vurgu); }
}

@media (hover: hover) {
  .na-gezinme:hover { border-color: var(--vurgu); }
}

/* ---- Görünecek hesaplar paneli ---- */
.na-ayar-liste {
  display: flex;
  flex-direction: column;
  max-height: 340px;
  overflow-y: auto;
  margin-top: var(--bosluk);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
}

.na-ayar-satir {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  cursor: pointer;
}

.na-ayar-satir:last-child { border-bottom: 0; }

@media (hover: hover) {
  .na-ayar-satir:hover { background: var(--oyuk); }
}

/* Kutu · İrsaliye'nin seçim kutusuyla aynı ölçü ve renk (.ir-sec). */
.na-ayar-kutu {
  flex: none;
  width: 18px;
  height: 18px;
  accent-color: var(--vurgu);
  cursor: pointer;
}

.na-ayar-kod {
  flex: none;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
  font-variant-numeric: tabular-nums;
}

.na-ayar-ad { min-width: 0; font-weight: 500; overflow-wrap: anywhere; }

.na-ayar-alt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  flex-wrap: wrap;
  margin-top: calc(var(--bosluk) * 2);
}

.na-ayar-sayi {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.na-ayar-dugmeler { display: flex; gap: var(--bosluk); }

@media (max-width: 640px) {
  .na-ayar-alt { flex-direction: column; align-items: stretch; }
  .na-ayar-dugmeler > * { flex: 1; }
}

/* Tablo kâğıdın kenarına dayanmaz, kendi kutusunda payla durur ve orada
   yana kayar; sayfa gövdesi kaymaz. */
.na-kaydir {
  overflow-x: auto;
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  /* Kutunun çerçevesi düğmelerinkiyle ve kartınkiyle aynı altın
     (2026.412): uygulamada tek bir çerçeve rengi var. */
  border: 1px solid var(--altin);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
  /* Çubuk gizlenir, kaydırma durur (2026.198 · kullanıcının kararı):
     bu tablo kendiliğinden kaydırılan bir tablo — kenara gelince
     önceki/sonraki haftayı kendisi getiriyor (nakit-akis.js ·
     kaydirmayiIzle). Altta duran gri çubuk kâğıdın dibinde yabancı
     duruyordu. Fare tekerleği, dokunmatik ve klavye yine çalışır;
     haftalar arası gezinmenin asıl yolu zaten tepedeki düğmeler. */
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.na-kaydir::-webkit-scrollbar { width: 0; height: 0; }

/* Altlık · tablonun bittiğini söyleyen oyuk şerit. */
.na-altlik {
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 3);
  border-top: 1px solid var(--defter-tel-soluk);
  background-color: var(--defter-acilis);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.na-tablo {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 100%;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Sol sütun yapışık: gün gün kaydırırken hangi hesaba baktığı kaybolmaz. */
.na-tablo th.na-baslik {
  position: sticky;
  left: 0;
  z-index: 2;
  /* Kod sütunu kalkınca ad tek başına daha dar bir sütuna sığar; artan
     yer günlere gider (2026.175). */
  min-width: 158px;
  padding: 6px calc(var(--bosluk) * 1.5);
  background: var(--yuzey);
  text-align: left;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  font-weight: 600;
  border-bottom: 1px solid var(--defter-tel-soluk);
  /* Yapışık sütunun sağ kenarı yapısal bir ayraçtır — kâğıdın çerçevesi
     kadar belirgin durur (2026.412). */
  border-right: 1px solid var(--altin);
}

/* Yapışık köşe hücresi · tablo kâğıdının rengiyle (2026.405). --oyuk
   gri-bejdi ve tablonun sol üstünde yabancı bir kutu gibi duruyordu. */
.na-kose {
  z-index: 3;
  background: color-mix(in srgb, var(--defter-acilis) 70%, var(--kart-yuzey));
}

.na-hesap { font-weight: 400; }

/* Hesap adı satırın kimliğidir; kod yazılmaz (2026.175 · kullanıcının
   kararı) ve soluk da durmaz — artık bakılacak tek şey o. */
.na-ad { font-weight: 500; }

/* Gün başlığı üç satır: sayı · ay · haftanın günü. */
.na-gun {
  /* Gün başlığı ortalı ve tam yazılı: "5 · Eylül · Cumartesi". Sütun da
     onun kadar geniş (2026.177 · kullanıcının kararı). */
  min-width: 132px;
  padding: 6px calc(var(--bosluk) * 1.5);
  /* HER YERDE AYNI ÇİZGİ (2026.412 · kullanıcının isteği: "her yerde
     aynı çerçeve devam etsin"). Tabloda dört ayrı çizgi rengi vardı —
     --ayirici, --defter-cizgi, --kenar ve kutunun kendi teli; hangisinin
     nerede bittiği belirsizdi. Hepsi defterin teline indi. */
  border-bottom: 1px solid var(--defter-tel-soluk);
  border-right: 1px solid var(--defter-tel-soluk);
  text-align: center;
  font-size: var(--etiket-boy);
  line-height: 1.3;
  font-weight: 600;
  background: var(--oyuk);
  white-space: nowrap;
}

.na-gun-sayi { display: block; font-size: var(--govde-boy); }
.na-gun-ay { display: block; opacity: .65; font-weight: 400; }
.na-gun-hafta { display: block; opacity: .5; font-weight: 400; }

/* BUGÜN SÜTUNU · KOYU BEJ (2026.412 · kullanıcının bildirimi: "tepedeki
   bugün kırmızı falan kötü duruyor, koyu bej olsun").

   Kırmızı dolgu ve kırmızı alt çizgiydi. Kırmızı uygulamada "bas" ya da
   "dikkat" demek; bugünün sütunu ikisi de değil, yalnız NEREDE olduğunu
   söyleyen bir işaret. Şimdi kâğıdın kendi bejinin koyusuyla duruyor ve
   altındaki çizgi altın — tabloda kırmızı yalnız eksiye düşen rakamda
   kalıyor, göz oraya gidiyor. */
.na-bugun {
  background: color-mix(in srgb, var(--altin) 30%, var(--oyuk));
  color: var(--defter-koyu);
  box-shadow: inset 0 -2px 0 0 var(--altin);
}

.na-haftasonu .na-gun-hafta { color: var(--metin-hata); opacity: .7; }

/* Öbek bandı: dört grubu birbirinden ayırır. */
/* ---- Dört öbek, dört blok ----
   Devir · Giren · Çıkan · Kalan tek tablonun içinde ama ayrı bloklar gibi
   durur (2026.176 · kullanıcının kararı · "rakam yığını değil"): her
   öbeğin kendi rengi var ve o renk üç yerde birden görünür — dolu bant
   başlığında, satırların çok hafif zemininde ve toplam şeridinde. Sol
   yapışık sütunda ise öbeğin renginde bir tel durur; göz yukarıdan aşağı
   inerken bloğun nerede başlayıp bittiğini oradan okur.

   Renk anlamı taşır: giren yeşil, çıkan kırmızı, devir nötr
   gri (henüz bir şey olmadı, günün başındaki para), kalan kırmızı —
   günün sonucu ve uygulamanın kendi rengi. */

.na-obek th,
.na-obek td {
  border-bottom: 1px solid var(--defter-tel-soluk);
  border-top: 1px solid var(--defter-tel-soluk);
  font-family: var(--yazi-baslik);
  font-size: var(--kucuk-boy);
  letter-spacing: .02em;
  text-transform: uppercase;
  /* Bant ince bir ayraç şeridi: blokları ayırmaya yeter, satırların
     yerini almaz (2026.177 · kullanıcının kararı). */
  height: 24px;
  padding-top: 0;
  padding-bottom: 0;
  /* Başlık tek satırda kalır: "Kalan bakiyeler" ikiye bölününce bandın
     yüksekliği öteki üç bloktan farklı çıkıyordu. */
  white-space: nowrap;
}

/* Bant başlığı doludur, yazısı kâğıt rengi: blok orada başlar. Yapışık
   sol sütunun beyaz zemini (".na-tablo th.na-baslik") iki sınıf
   özgüllüğünde; bant ve toplam şeridi onu ancak aynı önekle geçer. */
.na-tablo .na-obek th.na-baslik,
.na-obek td {
  background: var(--obek-renk);
  color: var(--kart-yuzey);
  font-weight: 700;
}

/* Bloğun gövdesi renk taşımaz: bütün hücrelerin dolgusu aynı kâğıttır
   (2026.178 · kullanıcının kararı). Rengi bant başlığı ile sol sütundaki
   tel taşır; tabloda göze çarpan tek yer eksiye düşen gün olsun.

   Toplam şeridi de zeminle değil, kalın yazı ve üstündeki renkli ince
   çizgiyle ayrılır. */
.na-tablo .na-satir th.na-baslik,
.na-tablo .na-toplam th.na-baslik { border-left: 3px solid var(--obek-renk); }

.na-toplam td,
.na-tablo .na-toplam th.na-baslik { border-top: 1px solid var(--obek-renk); }

/* Son sütunun sağında çizgi olmaz: tablonun kendi kenarı orada. */
.na-gun:last-child,
.na-h:last-child { border-right: 0; }

/* Bant satırı dolu bir şerittir; içinde sütun ayracı görünmez. */
.na-obek td { border-right: 0; }

/* Bloklar arasındaki nefes. Yapışık sol sütun burada zemin taşımaz ki
   iki blok arasında gerçekten boşluk görünsün. */
.na-ara td {
  height: 10px;
  padding: 0;
  border: 0;
  background: var(--kart-yuzey);
}

/* Dört öbeğin paleti · her blok rengini buradan alır; renk yalnız bant
   başlığında, sol teldeki çizgide ve toplam şeridinin üst çizgisinde
   görünür. */
.na-g-devir {
  --obek-renk: var(--defter-notr);
}

.na-g-giren {
  --obek-renk: var(--defter-arti);
}

.na-g-cikan {
  --obek-renk: var(--defter-eksi);
}

.na-g-kalan {
  --obek-renk: var(--defter-koyu);
}

/* Kalan bakiyelerin toplam şeridi günün sonucudur: rakamın altında ince
   bir çubuk on dört günün seyrini rakam okumadan gösterir. */
.na-cubuk {
  display: block;
  height: 3px;
  margin-top: 4px;
  border-radius: 2px;
  background: rgba(183, 44, 40, .12);
  overflow: hidden;
}

/* Çubuk da rakamı gibi ortadan büyür: sola yaslı kalsaydı ortalanmış
   sayının altında kaymış dururdu. */
.na-cubuk-dolu {
  display: block;
  height: 100%;
  margin: 0 auto;
  border-radius: 2px;
  background: var(--defter-koyu);
}

/* Öngörü günlerinde çubuk da soluklaşır: rakamla aynı dili konuşur. */
.na-ongoru .na-cubuk-dolu { opacity: .45; }

.na-eksi .na-cubuk-dolu { background: var(--metin-hata); }

/* Sayı hücresi. */
.na-h {
  padding: 6px calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
  /* Günler ince bir telle ayrılır: on dört sütun yan yanayken göz hangi
     rakamın hangi güne ait olduğunu çizgiden okur (2026.179 ·
     kullanıcının kararı). Tel her yerde aynı (2026.412). */
  border-right: 1px solid var(--defter-tel-soluk);
  /* Tutarlar da başlıkları gibi ortalı durur (2026.177 · kullanıcının
     kararı): sütun geniş olduğu için sağa yaslı rakam başlığından
     kopuyordu. */
  text-align: center;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  white-space: nowrap;
}

/* SOLUKLUK OPACITY İLE DEĞİL RENKLE (2026.412 · kullanıcının
   bildirimi: "işlem olmayan yerlerde [çizgiler] yok ama öyle olmasın,
   çerçeveler hep olsun; işlem olmayan yerde − koyuyoruz zaten").

   Boş ve öngörü hücreleri opacity ile soluklaştırılıyordu. opacity
   hücrenin TAMAMINI soldurur — ÇERÇEVESİNİ DE. Tabloda işlem olmayan
   yerlerde ızgara kayboluyor, çizgiler orada kesiliyordu; on dört sütun
   yan yanayken hangi rakamın hangi güne ait olduğunu söyleyen tek şey o
   çizgilerdi.

   Artık yalnız YAZI soluklaşıyor, tel her hücrede tam güçte duruyor. */
.na-bos { color: color-mix(in srgb, var(--metin) 30%, transparent); }
/* Eksiye düşen gün tablonun tek uyarısıdır ama zeminiyle değil, yalnız
   METNİYLE: dolgu beyaz kalır, rakam kırmızı ve kalın yazılır
   (2026.179 · kullanıcının kararı). Soluk öngörü kuralı burada geçmez —
   uyarı soluklaşmaz. */
.na-eksi {
  color: var(--metin-hata);
  font-weight: 700;
}

.na-ongoru.na-eksi { color: var(--metin-hata); }

/* Gerçekleşmemiş gün yalnız bir tık soluk yazılır, başka hiçbir şey
   değişmez (2026.178 · kullanıcının kararı): eğik yazı da, ayrı zemin de
   kalktı — tablodaki tek vurgu eksiye düşen güne kalsın. */
.na-ongoru { color: color-mix(in srgb, var(--metin) 74%, transparent); }

.na-ongoru.na-bos { color: color-mix(in srgb, var(--metin) 24%, transparent); }

.na-tiklanir { cursor: pointer; text-decoration: underline dotted var(--defter-tel); }
.na-tiklanir:hover { background: var(--defter-hover); }
.na-tiklanir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }

.na-satir:hover .na-h { background: rgba(168, 174, 182, .08); }

/* RAPOR AL DÜĞMESİ (2026.599) · simgeli ama sade. Ölçüleri gezinme
   şeridininkiyle aynı; şeritteki tek dolgulu düğme "Öngörülenler"
   kalsın diye çerçeveli durur. */
.na-rapor-dugme {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 1.5);
  flex: none;
  height: 38px;
  padding: 0 calc(var(--bosluk) * 1.75);
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font-size: var(--kucuk-boy);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--gecis) ease-out;
}
.na-rapor-dugme .simge { color: var(--ikinci); }
@media (hover: hover) {
  .na-rapor-dugme:hover { background: var(--oyuk); }
}

/* ==================== DİKEY GÖRÜNÜM (2026.598) ====================
   Kullanıcının gönderdiği Excel raporunun düzeni: satırlar gün gün aşağı
   iner, sütunlar üç öbekte toplanır — Harcama · Gün sonu · Giren.

   Yatay tablonun bütün hücre kuralları (.na-h · .na-bos · .na-eksi ·
   .na-ongoru · .na-tiklanir) burada da geçerlidir; aşağıdakiler yalnız
   DİKEY düzenin kendi işidir. */

/* KUTU TABLOYA GÖRE DARALIR (kullanıcının isteği: "sütunlar daha dar
   olsun"). Ortak ".na-tablo { min-width: 100% }" sütunları kartın enine
   yayıyordu: üç hesapta rakamların arasında avuç içi kadar boşluk
   kalıyordu. Dikey tabloda tablo kendi enini alır, kutu da onu sarar;
   sığmazsa yatay kayar. */
.na-dikey { min-width: 0; }

/* Asıl kaydırma AŞAĞIDIR, o yüzden kutunun bir boyu olmak zorunda:
   yükseklik olmadan başlık yapışacak bir yer bulamaz ve sayfayla birlikte
   yukarı kaçar. */
/* KUTU BİR KARTTIR (2026.651 · kullanıcının isteği: "sadece tabloyu o
   şekilde yap" · bento örneği). Tablo sayfanın üstünde çıplak
   duruyordu; artık kendi yuvarlak kâğıdının içinde durur ve başlık
   bandı o kâğıdın parçası gibi okunur. */
.na-dikey-kutu {
  overflow: auto;
  max-height: min(72vh, 860px);
  width: max-content;
  max-width: calc(100% - var(--bosluk) * 6);
  /* KÂĞIT NEREDEYSE BEYAZ · defterdeki ile aynı ölçü: kırk beş satırlık
     bir listede krem zemin rakamın kontrastını düşürüyor. */
  background: var(--defter-zemin);
  border: 1px solid var(--kenar);
  border-radius: 18px;
  /* Ortak ".na-kaydir" çubuğu gizliyor — orada kaydırmanın asıl yolu
     tepedeki düğmelerdi. Kırk beş satırlık bir listede çubuk, kullanıcıya
     listenin neresinde olduğunu söyleyen tek şeydir; geri gelir. */
  scrollbar-width: thin;
}
.na-dikey-kutu::-webkit-scrollbar { width: 10px; height: 10px; }
.na-dikey-kutu::-webkit-scrollbar-thumb {
  background: var(--kenar);
  border-radius: 5px;
}

/* İki katlı yapışık başlık: üstte öbek bandı, altında hesap adları.
   Alt satırın "top" değeri üsttekinin BOYUNA eşit olmak zorunda, yoksa
   ikisi üst üste biner — o yüzden bandın yüksekliği sabittir. */
.na-dikey thead th { position: sticky; }

/* ÖBEK BANDI AÇILDI (2026.651). Koyu kahve bir bant, kâğıdın üstünde
   ağır duruyor ve gözü rakamlardan alıyordu; bant artık kâğıdın kendi
   tonunda, yazısı sakin. Öbeğin rengi kayboluyor değil: hesap adının
   altındaki ince tel olarak duruyor (aşağıda), hangi sütunun hangi
   öbeğe ait olduğu oradan okunuyor. */
.na-dikey .na-d-grup {
  top: 0;
  z-index: 4;
  height: 26px;
  padding: 0 calc(var(--bosluk) * 1.5);
  background: #EFE3C9;
  color: var(--ikinci);
  text-align: center;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .09em;
  text-transform: uppercase;
  white-space: nowrap;
}

.na-dikey .na-d-hesap {
  top: 26px;
  z-index: 4;
  min-width: 92px;
  padding: 7px var(--bosluk);
  background: #F3EAD6;
  color: var(--ikinci);
  text-align: center;
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .07em;
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 1px solid var(--altin-soluk);
  border-right: 1px solid var(--defter-tel-soluk);
  /* BAŞLIĞIN ALTI ALTIN BİR TEL (2026.651). Eskiden öbeğin kendi rengi
     çizilirdi ama dikey görünümde iki öbek de aynı koyu kahveyi taşıyor
     (--defter-koyu): çizgi hiçbir şey ayırmıyor, yalnız ağırlık
     yapıyordu. Hangi sütunun hangi öbeğe ait olduğunu üstteki bant ile
     aradaki altın ayraç zaten söylüyor. */
  box-shadow: inset 0 -2px 0 0 var(--altin-koyu);
}

/* Köşe hücresi iki satırı birden kaplar (rowspan) ve iki yönde birden
   yapışır; o yüzden herkesten üstte durur. */
.na-dikey th.na-d-kose {
  top: 0;
  left: 0;
  z-index: 6;
  min-width: 86px;
  background: #F3EAD6;
  color: var(--ikinci);
  font-size: 10px;
  font-weight: 650;
  letter-spacing: .07em;
  text-transform: uppercase;
  vertical-align: bottom;
  box-shadow: inset 0 -2px 0 0 var(--altin-koyu);
}

.na-dikey th.na-d-tarih {
  min-width: 86px;
  padding: 6px calc(var(--bosluk) * 1.25);
  font-size: 12px;
}
.na-dikey .na-d-gun { font-weight: 650; font-size: 12.5px; }

/* DAR SÜTUN · rakam sütunun kendisi kadar yer kaplar (kullanıcının
   isteği). Dolgu iki yana 6px'e indi, punto 12px oldu ve rakamlar sıkı
   dizildi; "2.830.392,84" hâlâ tek satırda ve kesilmeden sığıyor. */
.na-dikey td.na-h { padding: 7px 8px; font-size: 12px; letter-spacing: -.01em; }

.na-d-gun { display: block; }
.na-d-hafta {
  display: block;
  font-weight: 400;
  font-size: var(--etiket-boy);
  opacity: .55;
}
.na-dikey .na-d-haftasonu .na-d-hafta { color: var(--metin-hata); opacity: .7; }

/* Üç öbeğin arasındaki kalın ayraç · sütun teli ince, öbek teli kalın. */
.na-dikey .na-d-ayrac { border-left: 2px solid var(--altin); }

/* Gün sonu günün sonucudur: komşularından yalnız kalınlığıyla ayrılır,
   ayrı bir zemin almaz (tablonun geri kalanındaki kuralla aynı dil). */
.na-dikey td.na-d-sonu { font-weight: 600; }

/* ---- HAREKET SÜTUNU · çıkan ve giren tek hücrede (2026.600) ----
   Kullanıcının isteği: "Harcama ve Giren diye bir kısım var ya, onu teke
   indirelim; soldaki kalsın, üstünde kırmızı − çıkan olsun, + da yeşille
   yazsın, kullanıcı basınca görsün yine."

   Renk ve işaret artık sütunun YERİNDE değil rakamın KENDİSİNDE. İki
   öbek bandı da bu yüzden aynı nötr rengi taşır: bandın renkli olması,
   rakamların kendi renkleriyle çekişirdi. */
.na-g-hareket { --obek-renk: var(--defter-koyu); }

.na-dikey td.na-d-hareket { padding: 4px 6px; line-height: 1.25; }

/* İkisi de TAM GENİŞLİKTE BLOK: her biri kendi düğmesi olduğu için
   hedef dar olmamalı. Aynı gün ikisi de varsa alt alta dururlar —
   üstte çıkan, altında giren. */
.na-d-cik,
.na-d-gir {
  display: block;
  font-weight: 600;
  border-radius: 3px;
}
.na-d-cik { color: var(--defter-eksi); }
.na-d-gir { color: var(--defter-arti); }

/* Gerçekleşmemiş gün burada da bir tık soluk. Ortak ".na-ongoru" yalnız
   hücrenin kendi rengini soldururdu; rakamın rengini bu iki sınıf
   taşıyor, o yüzden soluğu da burada yazılır. */
.na-ongoru .na-d-cik { color: color-mix(in srgb, var(--defter-eksi) 76%, transparent); }
.na-ongoru .na-d-gir { color: color-mix(in srgb, var(--defter-arti) 76%, transparent); }

/* Tıklanabilirlik işareti hücrenin tamamına değil rakama takılır. Ortak
   ".na-tiklanir" noktalı alt çizgi koyuyor; iki rakam alt alta durduğunda
   iki çizgi satırı kalabalıklaştırıyordu. Burada işaret imleç ve
   üstüne gelince beliren zemindir. */
.na-dikey .na-d-hareket .na-tiklanir { text-decoration: none; }
@media (hover: hover) {
  .na-dikey .na-d-hareket .na-tiklanir:hover {
    background: color-mix(in srgb, var(--altin) 26%, transparent);
  }
}
.na-dikey .na-d-hareket .na-tiklanir:focus-visible {
  outline: 2px solid var(--altin-koyu);
  outline-offset: 1px;
}

/* KIRK BEŞ SATIR ALT ALTA · göz satırı çizgiyle değil hafif şeritle
   takip eder. Yapışık sol sütun da aynı şeridi alır; almasaydı kaydırma
   sırasında satırın başı ile gövdesi iki ayrı renkte görünürdü. */
.na-dikey tbody th.na-baslik { background: var(--defter-zemin); }
.na-dikey tbody tr:nth-child(even) td,
.na-dikey tbody tr:nth-child(even) th.na-baslik {
  background: color-mix(in srgb, var(--oyuk) 34%, var(--defter-zemin));
}
.na-dikey tbody tr:hover td {
  background: color-mix(in srgb, var(--altin) 14%, transparent);
}
.na-dikey tbody tr:hover th.na-baslik {
  background: color-mix(in srgb, var(--altin) 14%, var(--defter-zemin));
}

/* Bugünün satırı · yatay görünümdeki bugün sütunuyla aynı koyu bej,
   solunda uygulamanın kendi kırmızısından bir tel. */
.na-dikey .na-d-bugun td,
.na-dikey .na-d-bugun th.na-baslik {
  background: color-mix(in srgb, var(--altin) 30%, var(--oyuk));
}
.na-dikey .na-d-bugun th.na-baslik { box-shadow: inset 3px 0 0 0 var(--vurgu); }

/* Dar ekranda kutu kartın enini alır ve yatay kayar. */
@media (max-width: 720px) {
  .na-dikey-kutu { width: auto; max-width: none; max-height: min(66vh, 620px); }
  .na-dikey .na-d-hesap { min-width: 84px; }
}

/* ---- MİNİMAL DİKEY (2026.665) ----
   Kullanıcının isteği: "burayı minimal tasarım konseptiyle tekrar
   tasarla; sağdaki beyaz boşluk olmasın."

   1 · TAM GENİŞLİK · kutu kendi enine (max-content) daralıyordu ve
       sağında kartın yarısı boş kalıyordu. Artık kartın enini alır;
       sütunlar eşit paylaşır (table-layout: fixed). Dar ekranda yine
       yatay kayar.
   2 · ÇİZGİ AZ · dikey teller, zebra şerit, renkli başlık bantları ve
       altın gölge kalktı. Satırlar tek ince saç teliyle ayrılır; iki
       öbeğin arasında tek ince ayraç kalır.
   3 · YAZI HİYERARŞİSİ · başlıklar küçük ve soluk; gün sonu koyu ve
       tam boy; hareket bir boy küçük, işaretli ve renkli; boş gün
       neredeyse görünmez. Bugünün satırı yalnız hafif bir zeminle ve
       solda ince kırmızı çizgiyle ayrılır. */
/* A4 KÂĞIT, SOLDA (2026.666 · kullanıcının isteği: "genişletme yine,
   ama A4 şeklinde olsun, sola hizalanmış"). Kartın kendisi A4 enine
   (794px + pay) iner ve sola yaslanır: tablonun sağında kartın boş beyazı
   kalmaz, tablo da kâğıdın enini doldurur. Tepedeki düğmeler başlığın
   altına iner. */
.na-kart.na-kart-dikey { max-width: 844px; margin-right: auto; }

/* Beklerken tablo solar, tepe solmaz (2026.668 · "takılmış gibi
   oluyor"). "Yükleniyor…" hapı Yönetim Raporu'nunkiyle aynı
   (.yr-yukleniyor). */
/* SOLMA KALKTI (2026.935 · kullanıcının isteği: "ekranı soluklaştırıyor,
   öyle yapmasın"). Yükleme yalnız tepedeki hapta görünür. */

/* Gün ayrıntısı penceresi dar (2026.678 · "bu kadar geniş olmasına
   gerek yok"). Veri gelene kadar basılan tutarın yanında küçük bir
   dönen işaret durur; pencere veri gelince tek seferde açılır. */
.pencere.na-ayrinti-pencere { max-width: 560px; }
.na-hucre-bekliyor { position: relative; cursor: progress; opacity: .6; }
.na-hucre-bekliyor::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -16px;
  width: 11px;
  height: 11px;
  margin-top: -6px;
  border: 2px solid var(--altin);
  border-top-color: var(--vurgu);
  border-radius: 50%;
  animation: yr-don .7s linear infinite;
}

/* ---- ŞERİT VE AYARLAR (2026.672) ----
   Kullanıcının isteği: "tepede zaten bir başlık var, bir daha başlık
   çıkarmayalım; raporu yukarıdaki başlığa sabitle; sadece Dikey, Yatay
   ve Ayarlar olsun." Kartın kendi tepesi kalktı. Görünüm ve Ayarlar
   kuşağın altındaki şeritte; kuşak → şerit → tablo aralarında boşluk
   olmadan, tek çizgiyle birbirine yapışır (Fatura Aktarımı'nın dili). */
.na-serit {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px calc(var(--bosluk) * 2.5);
}
.na-serit-ic { border-bottom: 1px solid var(--defter-tel-soluk); }
.na-ayarlar-dugme {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}
@media (hover: hover) { .na-ayarlar-dugme:hover { border-color: var(--vurgu); color: var(--vurgu); } }

.sayfa-kusak-serit:has(.na-serit) {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.sayfa-icerik:has(.na-kart-serbest) {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}
.na-kart.na-kart-serbest {
  margin-top: 0;
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
/* Tablo kutusu kartın tepesine yaklaşır: üstünde artık tepe yok. */
.na-kart-serbest .na-kaydir { margin-top: calc(var(--bosluk) * 1.5); }

/* ---- AYARLAR PENCERESİ (2026.674 · "burayı daha güzel tasarla") ----
   Üstte tarih kartı, altta menü gibi liste satırları. */
.na-ay { display: grid; gap: 16px; }
.na-ay-kart {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--altin);
  border-radius: 14px;
  background: color-mix(in srgb, var(--altin) 8%, var(--yuzey));
}
.na-ay-bas { display: flex; align-items: center; justify-content: space-between; }
.na-ay-bas h3 {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--metin) 60%, transparent);
}
.na-ay-rozet {
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--vurgu);
  color: var(--yuzey);
  font-size: 12px;
  font-weight: 700;
}
.na-ay-tarihler { display: flex; align-items: flex-end; gap: 8px; }
.na-ay-alan { flex: 1 1 0; min-width: 0; display: grid; gap: 4px; }
.na-ay-alan > span {
  font-size: 11.5px;
  font-weight: 600;
  color: color-mix(in srgb, var(--metin) 65%, transparent);
}
.na-ay-alan .na-trh { width: auto; }
.na-ay-alan .na-trh .alan-kutu-tarih { height: 40px; min-height: 40px; font-size: 14px; background: var(--yuzey); }
.na-ay-arasi { padding-bottom: 10px; color: var(--ikinci); font-size: 16px; }
.na-ay-gez { display: flex; gap: 6px; }
/* KLAVYE TUŞU (2026.677 · kullanıcının isteği: "klavye düğmesi olsun
   düğmeler"). Aktarım şeridindeki tuşun aynısı: altında 3px kalınlık,
   üstüne gelince 1px kalkar ve renk değişmez, basınca iner. Seçili
   (varsayılan aralık) tuş bordo, kalınlığı bordo koyusu. */
.na-ay-cip {
  --tus-kalinlik: var(--altin-koyu);
  flex: 1 1 0;
  height: 34px;
  margin-bottom: 3px;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 3px 0 var(--tus-kalinlik), 0 4px 5px rgba(74, 52, 32, .16);
  transition: transform .12s ease-out, box-shadow .12s ease-out;
}
.na-ay-cip-vurgu { color: var(--vurgu); font-weight: 600; }
.na-ay-cip[aria-pressed="true"] {
  --tus-kalinlik: var(--vurgu-koyu);
  background: var(--vurgu);
  border-color: var(--vurgu);
  color: var(--yuzey);
}
@media (hover: hover) {
  .na-ay-cip:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--tus-kalinlik), 0 6px 9px rgba(74, 52, 32, .2);
  }
}
.na-ay-cip:active {
  transform: translateY(3px);
  box-shadow: 0 0 0 var(--tus-kalinlik), 0 1px 2px rgba(74, 52, 32, .18);
}
.na-ay-cip:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .na-ay-cip { transition: none; } }
.na-ay-not { margin: 0; font-size: 11.5px; color: color-mix(in srgb, var(--metin) 55%, transparent); }

.na-ay-liste {
  display: grid;
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  overflow: hidden;
  background: var(--yuzey);
}
.na-ay-satir {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--defter-tel-soluk);
  background: none;
  color: var(--metin);
  text-align: left;
  cursor: pointer;
}
.na-ay-satir:last-child { border-bottom: 0; }
@media (hover: hover) { .na-ay-satir:hover { background: color-mix(in srgb, var(--altin) 10%, var(--yuzey)); } }
.na-ay-satir:focus-visible { outline: 2px solid var(--vurgu); outline-offset: -2px; }
.na-ay-simge {
  flex: none;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--vurgu) 9%, var(--yuzey));
  color: var(--vurgu);
}
.na-ay-yazi { flex: 1 1 auto; min-width: 0; display: grid; gap: 1px; }
.na-ay-yazi b { font-size: 14px; font-weight: 600; }
.na-ay-yazi small { font-size: 12px; color: color-mix(in srgb, var(--metin) 58%, transparent); }
.na-ay-git { flex: none; font-size: 20px; color: var(--ikinci); }

/* ---- TEPE · B DÜZENİ, SADE (2026.670) ----
   Kullanıcının seçimi: "B · tarih seçici başlangıç ve bitiş olsun" ·
   "düğmeleri sadeleştirelim". Klavye tuşları (2026.667) kalktı.
     1. satır · solda başlık, sağda tarih aralığı: ‹ başlangıç – bitiş ›
     2. satır · görünüm seçimi (ortak şerit görünüşü), "Düne dön"
                bağlantısı, sağda çerçevesiz Rapor al · Öngörülenler ·
                dişli. */
.na-tepe { align-items: center; row-gap: 12px; }
.na-tepe-sag {
  flex: 1 1 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.na-esneyen { flex: 1 1 auto; }

.na-aralik {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.na-trh { width: 128px; }
.na-trh .alan-kutu-tarih {
  height: 34px;
  min-height: 34px;
  padding: 0 34px 0 10px;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.na-trh .trh-dugme { width: 28px; height: 28px; right: 3px; }
.na-aralik-tire { opacity: .5; }
.na-ok {
  width: 32px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
@media (hover: hover) { .na-ok:hover { border-color: var(--vurgu); color: var(--vurgu); } }
.na-aralik-gun {
  margin-left: 4px;
  font-size: 12px;
  opacity: .6;
  white-space: nowrap;
}

/* Telefonda aralık tek satır · kutular kalan yeri paylaşır. */
@media (max-width: 560px) {
  .na-aralik { flex: 1 1 100%; flex-wrap: nowrap; gap: 4px; }
  .na-ok { width: 28px; flex: none; }
  .na-trh { flex: 1 1 0; width: auto; min-width: 0; }
  .na-trh .alan-kutu-tarih { padding: 0 22px 0 6px; font-size: 12px; font-weight: 500; }
  .na-trh .trh-dugme { width: 20px; right: 1px; }
  .na-trh .trh-dugme .simge { width: 14px; height: 14px; }
  .na-aralik-gun { display: none; }
}

.na-baglanti {
  padding: 4px 2px;
  border: 0;
  background: none;
  color: var(--vurgu);
  font-size: 13px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.na-tepe-sag .na-rapor-dugme,
.na-tepe-sag .na-ongoru-dugme,
.na-tepe-sag .na-dis {
  height: 34px;
  min-height: 34px;
  padding: 0 10px;
  border: 0;
  background: none;
  color: var(--metin);
  font-weight: 500;
  box-shadow: none;
}
.na-tepe-sag .na-dis { width: 34px; padding: 0; }
@media (hover: hover) {
  .na-tepe-sag .na-rapor-dugme:hover,
  .na-tepe-sag .na-ongoru-dugme:hover,
  .na-tepe-sag .na-dis:hover { background: var(--oyuk); color: var(--metin); border: 0; }
}
.na-dikey-kutu {
  width: auto;
  max-width: none;
  background: var(--defter-zemin);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
}
.na-dikey {
  width: 100%;
  min-width: 720px;
  table-layout: fixed;
}
.na-dikey th.na-d-kose { width: 108px; }

.na-dikey .na-d-grup,
.na-dikey .na-d-hesap,
.na-dikey th.na-d-kose {
  background: var(--defter-zemin);
  color: color-mix(in srgb, var(--metin) 52%, transparent);
  font-weight: 600;
  box-shadow: none;
  border-right: 0;
}
.na-dikey .na-d-grup {
  height: 30px;
  font-size: 10px;
  letter-spacing: .14em;
  color: color-mix(in srgb, var(--metin) 38%, transparent);
}
.na-dikey .na-d-hesap {
  top: 30px;
  min-width: 0;
  padding: 6px 12px 10px;
  text-align: right;
  font-size: 10.5px;
  letter-spacing: .06em;
  overflow: hidden;
  text-overflow: ellipsis;
  border-bottom: 1px solid var(--defter-tel);
}
.na-dikey thead th.na-d-kose {
  padding: 0 16px 10px;
  text-align: left;
  border-bottom: 1px solid var(--defter-tel);
}

.na-dikey th.na-baslik,
.na-dikey td.na-h {
  border-right: 0;
  border-bottom: 1px solid var(--defter-tel-soluk);
}
.na-dikey tbody tr:last-child th.na-baslik,
.na-dikey tbody tr:last-child td.na-h { border-bottom: 0; }

.na-dikey th.na-d-tarih { padding: 10px 16px; border-right: 0; }
.na-dikey .na-d-gun { font-size: 13px; font-weight: 600; }
.na-dikey .na-d-hafta { margin-top: 1px; font-size: 11px; opacity: .45; }

.na-dikey td.na-h {
  padding: 10px 12px;
  text-align: right;
  font-size: 13px;
  letter-spacing: 0;
}
.na-dikey td.na-d-hareket { padding: 7px 12px; font-size: 12px; line-height: 1.45; }
.na-dikey .na-d-cik,
.na-dikey .na-d-gir { font-weight: 500; }
.na-dikey td.na-d-sonu { font-weight: 600; }
/* Gerçekleşen koyu, bekleyen soluk ve ince · eksi yine kırmızı. */
.na-dikey td.na-d-sonu.na-ongoru {
  font-weight: 500;
  color: color-mix(in srgb, var(--metin) 58%, transparent);
}
.na-dikey td.na-d-sonu.na-eksi { color: var(--metin-hata); }
.na-dikey td.na-d-sonu.na-ongoru.na-eksi {
  color: color-mix(in srgb, var(--metin-hata) 70%, transparent);
}
.na-dikey td.na-bos { color: color-mix(in srgb, var(--metin) 18%, transparent); }

/* Tek ayraç · iki öbeğin arası ve tarih sütununun sağı, ince. */
.na-dikey .na-d-ayrac { border-left: 1px solid var(--defter-tel); }
.na-dikey .na-d-hareket.na-d-ayrac,
.na-dikey .na-d-hesap.na-g-hareket.na-d-ayrac,
.na-dikey .na-d-grup.na-g-hareket.na-d-ayrac { border-left: 0; }

/* Zebra yok · bütün satırlar tek zemin; üstüne gelince hafif bir ton. */
.na-dikey tbody tr td,
.na-dikey tbody tr th.na-baslik,
.na-dikey tbody tr:nth-child(even) td,
.na-dikey tbody tr:nth-child(even) th.na-baslik { background: var(--defter-zemin); }
.na-dikey tbody tr:hover td,
.na-dikey tbody tr:hover th.na-baslik {
  background: color-mix(in srgb, var(--altin) 5%, var(--defter-zemin));
}
/* ÜSTÜNE GELİNCE (2026.680 · kullanıcının seçimi: "solda ince çizgi
   olsun, rakam kalınlaşsın"). Satırın başında ince altın çizgi belirir,
   zemin neredeyse değişmez; üstüne gelinen rakam kalınlaşır. Rakamın
   arkasındaki sarımsı kutu kalktı. */
.na-dikey tbody tr:hover th.na-baslik { box-shadow: inset 3px 0 0 0 var(--altin-koyu); }
@media (hover: hover) {
  .na-dikey .na-d-hareket .na-tiklanir:hover { background: none; font-weight: 700; }
}

.na-dikey tbody tr.na-d-bugun td,
.na-dikey tbody tr.na-d-bugun th.na-baslik {
  background: color-mix(in srgb, var(--altin) 16%, var(--defter-zemin));
}
.na-dikey tbody tr.na-d-bugun th.na-baslik { box-shadow: inset 2px 0 0 0 var(--vurgu); }

/* BUGÜN VE BAŞLIK BELİRGİN (2026.673 · kullanıcının isteği: "bulunduğumuz
   gün arka planla aynı neredeyse, onu değiştirelim; başlıklar daha iyi
   görünsün, başlık olduğu belli değil, bir tık daha koyu olsun").
   Bugünün satırı altın yerine hafif bordo zemin alır, solundaki çizgi
   kalınlaşır, tarihi bordo yazılır. Başlık bandı kâğıttan bir ton koyu
   zemin, yazısı koyu ve kalın. */
/* BUGÜN YEŞİL (2026.679 · kullanıcının seçimi: "C olsun, ama Bugün
   yazmasın"). Bordo zemin beğenilmedi; açık yeşil zemin, solda koyu
   yeşil çizgi, tarih koyu yeşil. Etiket yok. */
.na-dikey tbody tr.na-d-bugun td,
.na-dikey tbody tr.na-d-bugun th.na-baslik { background: #E7EEE3; }
.na-dikey tbody tr.na-d-bugun th.na-baslik { box-shadow: inset 4px 0 0 0 #3E7A4E; }
.na-dikey tbody tr.na-d-bugun .na-d-gun { color: #2E5E3B; }
.na-dikey tbody tr.na-d-bugun:hover td,
.na-dikey tbody tr.na-d-bugun:hover th.na-baslik { background: #DDE7D8; }

.na-dikey .na-d-grup,
.na-dikey .na-d-hesap,
.na-dikey thead th.na-d-kose {
  background: color-mix(in srgb, var(--altin) 22%, var(--defter-zemin));
  color: color-mix(in srgb, var(--metin) 82%, transparent);
  font-weight: 700;
}
.na-dikey .na-d-grup { color: color-mix(in srgb, var(--metin) 62%, transparent); }
.na-dikey .na-d-hesap,
.na-dikey thead th.na-d-kose { border-bottom: 1px solid var(--altin-koyu); }

@media (max-width: 720px) {
  .na-dikey { min-width: 560px; }
  .na-dikey th.na-d-kose { width: 92px; }
  .na-dikey th.na-d-tarih { padding: 9px 12px; }
  .na-dikey td.na-h { padding: 9px 8px; font-size: 12.5px; }
}

/* Zemini yukarıdaki öbek paleti veriyor; burada yalnız kalınlık ve alt
   çizgi kalır. */
.na-toplam th,
.na-toplam td {
  font-weight: 700;
  border-bottom: 1px solid var(--kenar);
}

/* Notun kendi payı ve çizgisi yok: ikisini de altlık şeridi taşıyor. */
.na-not {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* ---- Hücre ayrıntısı paneli ----
   Bir tutara basınca açılan gün dökümü. Kâğıdın öteki sayfalarıyla aynı
   dilde (2026.180 · kullanıcının kararı): oyuk zeminli tepede hesabın adı
   kırmızı başlık, altında günü ve türü; ortada işlem listesi kendi
   kutusunda; en altta oyuk altlıkta günün toplamı.

   Tepenin ve toplamın rengi öbekten gelir: giren yeşil, çıkan kırmızı —
   tablodaki bantla aynı renk, panel hangi bloktan açıldığını kendi
   söyler. */

.na-kagit {
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  overflow: hidden;
}

.na-kagit-tepe {
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
  border-left: 4px solid var(--obek-renk);
}

.na-kagit-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--obek-renk);
  overflow-wrap: anywhere;
}

.na-kagit-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.na-kagit-altlik {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--kenar);
  background: var(--oyuk);
}

.na-kagit-not {
  flex: 1 1 140px;
  min-width: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.na-kagit-toplam {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  flex: none;
  text-align: right;
}

.na-kagit-toplam > span {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .6;
}

.na-kagit-toplam > b {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--obek-renk);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Yükleme, boş durum ve hata da kâğıdın içinde, kendi payıyla durur. */
.na-kagit [data-ayrinti] { padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5); }

.na-panel-bos {
  margin: 0;
  padding: calc(var(--bosluk) * 2) 0;
  text-align: center;
  font-size: var(--kucuk-boy);
  opacity: .7;
}

.na-ayrinti {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  overflow: hidden;
}

.na-ayrinti-satir {
  display: flex;
  align-items: baseline;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.na-ayrinti-satir:last-child { border-bottom: 0; }

.na-ayrinti-ad { flex: 1 1 auto; min-width: 0; font-weight: 500; }

.na-ayrinti-kaynak {
  display: block;
  margin-top: 1px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 400;
  opacity: .6;
}

.na-ayrinti-tutar {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

@media (max-width: 899.98px) {
  .na-kagit-tepe,
  .na-kagit [data-ayrinti] { padding: calc(var(--bosluk) * 2); }

  .na-kagit-altlik {
    padding: calc(var(--bosluk) * 2);
    flex-direction: column;
    align-items: stretch;
    gap: var(--bosluk);
  }

  /* Alt alta dizilen sütunda "flex: 1 1 140px" YÜKSEKLİK temeli olur: not
     140px'e uzayıp altına kocaman bir boşluk bırakıyordu. */
  .na-kagit-not { flex: none; }

  .na-kagit-toplam {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--bosluk);
  }
}

@media (max-width: 899.98px) {
  .na-tepe { padding: calc(var(--bosluk) * 2); gap: var(--bosluk); }
  .na-tepe-sag { width: 100%; flex-wrap: wrap; }
  .na-tablo th.na-baslik { min-width: 124px; }
  /* Telefonda da tam ad yazılır, sütun biraz daralır; tablo zaten yana
     kayıyor. */
  .na-gun { min-width: 112px; }

  /* Tablonun payı telefonda yarıya iner: on dört sütun zaten yana
     kayıyor, yanlardan alınan her piksel hesap adından gidiyor. */
  .na-kaydir { margin: var(--bosluk) calc(var(--bosluk) * 1.5); }
  .na-altlik { padding: calc(var(--bosluk) * 2); }
}

/* ---------- Personel ----------
   Personel listesi ve künye formu. Liste satırında avatar, ad ve ünvan.
   Form aynı kartın içinde açılır — ayrı bir pencere açmak bu kadar alan
   için fazla. Aynı satır biçimi personel seçim penceresinde de kullanılır
   (3-cekirdek/2-arayuz/personel-secimi.js).
   Kaynak: 4-ekranlar/3-tanimlar/personel.js */
.ku-kart {
  --ku-pay: calc(var(--bosluk) * 3);
  max-width: 720px;
  margin: 0 auto calc(var(--bosluk) * 3);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  position: relative;
  overflow: hidden;
}

.ku-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

/* ---- Liste ---- */
.ku-liste { background: var(--kart-yuzey); }

.ku-satir {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.75);
  width: 100%;
  padding: calc(var(--bosluk) * 1.5) var(--ku-pay);
  border-bottom: 1px solid var(--ayirici);
  text-align: left;
}

.ku-satir:last-child { border-bottom: 0; }

@media (hover: hover) {
  .ku-satir:hover { background: var(--defter-hover); }
}

.ku-ara {
  padding: var(--bosluk) var(--ku-pay);
  background: var(--oyuk);
  border-bottom: 1px solid var(--defter-tel-soluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .7;
}

.ku-bos {
  padding: calc(var(--bosluk) * 4) var(--ku-pay);
  text-align: center;
  font-size: var(--kucuk-boy);
  opacity: .7;
}

/* Avatar · fotoğraf yoksa baş harfler. */
.ku-avatar {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 50%;
  background: var(--oyuk);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}

.ku-avatar img { width: 100%; height: 100%; object-fit: cover; }

.ku-avatar-harf {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  color: var(--defter-koyu);
}

.ku-yazi { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.ku-ad {
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  font-weight: 600;
}

.ku-alt {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
  overflow-wrap: anywhere;
}

.ku-sag { flex: none; display: flex; align-items: center; gap: var(--bosluk); }


.ku-pasif {
  padding: 2px calc(var(--bosluk) * 1.25);
  border-radius: 12px;
  background: rgba(183, 44, 40, .12);
  color: var(--metin-hata);
  font-size: var(--etiket-boy);
  line-height: 18px;
  font-weight: 600;
}

/* ---- Form ---- */
.ku-form {
  padding: calc(var(--bosluk) * 2.5) var(--ku-pay) var(--ku-pay);
  background: var(--kart-yuzey);
}

.ku-form .alan + .alan,
.ku-form .alan { margin-top: calc(var(--bosluk) * 2); }

.ku-foto-satir {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 2);
  padding-bottom: var(--bosluk);
}

.ku-foto-dugmeler {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
}

.ku-yardimci {
  display: block;
  flex: 1 1 100%;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ku-sifre-satir {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  margin-top: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: var(--oyuk);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}

.ku-bolum {
  margin: calc(var(--bosluk) * 3) 0 var(--bosluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .7;
}

/* ---- Durum ---- */
.ku-durum { display: flex; gap: var(--bosluk); }

.ku-durum-secim {
  flex: 1;
  min-height: var(--dugme);
  border: 1px solid var(--kart-kenar);
  border-radius: 14px;
  background: var(--kart-zemin);
  font-size: var(--govde-boy);
}

.ku-durum-secim.secili {
  border-color: var(--defter-koyu);
  background: var(--defter-acilis);
  font-weight: 600;
  color: var(--defter-koyu);
}

@media (max-width: 899.98px) {
  .ku-kart { --ku-pay: calc(var(--bosluk) * 2); }
  .ku-foto-satir { flex-direction: column; align-items: flex-start; }
}

/* ---------- Kredi Kartı Aktarımı ----------
   Banka aktarımının üç adımı: dosya → önizleme → muhasebe kaydı. Kart
   ekstresinde dekont yok, satırın izi tarih·açıklama·tutardan çıkar;
   ekranda da satır bunlarla tanınır. Kart ödemesi satırı gri durur,
   kayıt açılmaz (banka aktarımından işlenir).
   Kaynak: 4-ekranlar/1-aktarimlar/kredi-karti-aktarimi.js */
.kk-kart {
  /* Banka aktarımıyla aynı genişlik (2026.230 · kullanıcının isteği:
     "açılan aktarım alanı daha büyük olsun bankadaki gibi"). Dokuz
     sütun 1240 piksele sığmıyor, açıklama kutusu eziliyordu. */
  max-width: 1640px;
  margin: 0 auto calc(var(--bosluk) * 3);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  position: relative;
  overflow: hidden;
}

.kk-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

/* KÂĞIT GRENİ (2026.589). Kart artık bir "parşömen": blokları onun
   üstünde duran küçük kartlar. Motif zaten --kart-desen'den geliyor,
   gren onun üstüne ikinci katman olarak biniyor — İrsaliye ve Nakit
   Akış kartlarındaki ile aynı iki satır. */
.kk-kart {
  background-image:
    radial-gradient(var(--doku-gren) .5px, transparent .5px),
    var(--kart-desen);
  background-size: 3px 3px, auto;
}

/* Kuşağa yapışınca üst köşeler düzleşir ve üst çizgi tekrarlanmaz. */
.fatura-birlesik .kk-kart {
  margin-top: 0;
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* ---- Kâğıdın tepesi ve dibi (2026.589) ----
   Kartın kendi başlık şeridi kalktı (o iş kuşakta); burada duran
   yalnız "ne var bu kâğıtta" ve "toplam ne yazacak". Renkleri altın
   şerit: kâğıdın üstündeki mühür bandı gibi. */
.kk-kagit-tepe,
.kk-kagit-dip {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 3);
  background: linear-gradient(180deg, #EFE2C6 0%, #E7D7B4 100%);
}

.kk-kagit-tepe { border-bottom: 1px solid var(--altin-koyu); }
.kk-kagit-dip {
  border-top: 1px solid var(--altin-koyu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: #7A6038;
}

.kk-kagit-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h3-boy);
  font-weight: 600;
  color: var(--defter-koyu);
}

.kk-kagit-sag {
  margin-left: auto;
  font-size: var(--etiket-boy);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #8A7048;
  white-space: nowrap;
}

.kk-kagit-dip b {
  margin-left: auto;
  font-size: var(--h3-boy);
  color: var(--defter-koyu);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.kk-kagit-govde {
  position: relative;
  padding: calc(var(--bosluk) * 2);
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 2);
}

.kk-yukleme { padding: calc(var(--bosluk) * 3); }

.kk-yardimci {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kk-not {
  margin: 0;
  padding: 0 calc(var(--bosluk) * 3) calc(var(--bosluk) * 3);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

.kk-uyari { color: var(--metin-uyari); opacity: 1; }

/* ---- Kart bloğu · dosyada birden fazla kart olabilir ----
   KÜÇÜK KART (2026.589 · kullanıcının onayladığı tasarım: "kartlar
   büyük bir kartın içinde olsun"). Eskiden blok yalnız bir başlık ve
   altındaki tabloydu; iki kart arasında nerede bittiği belli olmuyordu.
   Şimdi her blok dokulu kâğıdın üstünde duran düz bir kâğıt. */
.kk-blok {
  margin: 0;
  background: var(--kart-yuzey);
  border: 1px solid var(--kenar);
  border-radius: calc(var(--kose-kart) - 4px);
  overflow: hidden;
  box-shadow: 0 1px 1px rgba(74, 53, 36, .05),
              0 4px 10px -6px rgba(74, 53, 36, .22);
}

.kk-blok-tepe {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  padding: var(--bosluk) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  background: linear-gradient(180deg, #FBF4E6 0%, #F6EDDB 100%);
}

.kk-blok-ad {
  font-size: var(--etiket-boy);
  letter-spacing: .07em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--defter-koyu);
  white-space: nowrap;
}

/* Harcama sayısı ile tutar sağ uca yaslanır: blok başlığının solu ad
   ve hesap seçicisi, sağı rakam. */
.kk-blok-say { margin-left: auto; }

.kk-blok-say {
  font-size: var(--kucuk-boy);
  opacity: .7;
}

.kk-eksik {
  padding: 2px calc(var(--bosluk) * 1.25);
  border-radius: 12px;
  background: rgba(183, 44, 40, .12);
  color: var(--metin-hata);
  font-size: var(--etiket-boy);
  line-height: 18px;
  font-weight: 600;
}

/* ---- Satır tablosu ---- */
.kk-tablo {
  width: 100%;
  border-collapse: collapse;
  background: var(--kart-yuzey);
  border-radius: 12px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kk-tablo thead th {
  height: var(--tablo-baslik-satir);
  padding: 0 var(--bosluk);
  text-align: left;
  white-space: nowrap;
}

.kk-tablo td {
  padding: calc(var(--bosluk) * 0.75) var(--bosluk);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

.kk-tablo tr:last-child td { border-bottom: 0; }

.kk-islem {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kk-gun, .kk-taksit { white-space: nowrap; opacity: .8; }

/* Hangi ekstreye düştüğü · tarihin altında tek kelime (2026.287).
   Tarih "30.10.2026" diyor ama bunun sonraki dönem olduğunu ancak
   kesim gününü ezberleyen biri anlar; yazı onu söyler. */
.kk-donem {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

/* Deftere yazılacak açıklama · boşken ekstrenin metnini soluk gösterir
   (2026.229). Tablonun içinde durduğu için kendi yüksekliğini
   büyütmez. */
.kk-aciklama {
  width: 100%;
  min-width: 0;
  padding: 6px 8px;
  font-size: var(--kucuk-boy);
}

/* Ekstrenin kendi metni · değiştirilemez, tek satırda kalır. */
.kk-kartack {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: .65;
}

/* Sabit sütun genişlikleri · banka aktarımındaki colgroup ile aynı
   mantık: metin uzayınca tablo kaymasın. */
.kk-tablo { table-layout: fixed; min-width: 1508px; }
/* İkon sütunu · en solda (2026.345); 2026.347'de yanına depo ikonu
   geldi ve genişledi. */
.kc-fat { width: 88px; }
.kc-tar { width: 96px; }
.kc-isl { width: 220px; }
.kc-gun { width: 110px; }
.kc-tak { width: 76px; }
.kc-ack { width: 230px; }
.kc-car { width: 200px; }
.kc-gid { width: 200px; }
.kc-kack { width: 220px; }
.kc-tut { width: 120px; }

.kk-tutar {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  font-weight: 600;
}

/* Kart ödemesi satırı: gri, kayıt açılmaz. */
.kk-odeme td { background: var(--oyuk); opacity: .75; }

.kk-atlandi {
  font-size: var(--etiket-boy);
  line-height: 18px;
  opacity: .8;
}

/* ---- Faturalı / faturasız harcama (2026.345) ----
   Yeşil · faturası var, tedarikçinin borcu kapanır.
   Kırmızı · faturası yok, alınanlar depoya girer. Renk tek başına anlam
   taşımasın diye kırmızı ikonun çerçevesi kesik. */
.kk-fat { text-align: center; white-space: nowrap; padding-left: 4px; padding-right: 4px; }

.kk-fatura {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 8px;
  background: var(--oyuk);
  color: var(--metin);
  cursor: pointer;
}

.kk-fatura svg { display: block; }

.kk-fatura-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--yuzey));
  color: var(--metin-basari);
}

.kk-fatura-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

.kk-fatura:focus-visible,
.kk-depo:focus-visible { outline: none; border-color: var(--altin); }

/* Depo ikonu (2026.347 · renkler 2026.348) · bankadakinin aynısı. */
.kk-depo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  margin-left: 3px;
  padding: 0;
  border: 1px solid var(--ayirici);
  border-radius: 8px;
  background: var(--oyuk);
  color: var(--metin);
  cursor: pointer;
  vertical-align: middle;
}

.kk-depo svg { display: block; }

.kk-depo-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--yuzey));
  color: var(--metin-basari);
}

.kk-depo-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

.kk-depo-bos {
  display: inline-block;
  width: 30px;
  height: 30px;
  margin-left: 3px;
  vertical-align: middle;
}

.kk-fatura { vertical-align: middle; }

/* Faturasız satırın düğmesi iki satır yazar: üstte ne sorduğu, altta
   cevabı. .gider-dugme bir flex satırı — iki yazı yan yana düşüp
   kırpılıyordu; burada blok'a dönüp alt alta yazıyorlar. */
/* Seçici .gider-dugme kadar belirgin olmalı: o kural dosyada DAHA
   SONRA geliyor ve eşit belirginlikte sonuncu kazanıyordu. */
.gider-dugme.kk-urun {
  display: block;
  height: auto;
  line-height: 1.2;
  padding: 3px 8px;
  text-align: left;
}

.gider-dugme.kk-urun .kk-ust {
  display: block;
  font-size: var(--etiket-boy);
  line-height: 1.1;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .6;
}

.gider-dugme.kk-urun .kk-alt {
  display: block;
  overflow: hidden;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* ---- Seçiciler ----
   Tarayıcının <select>'i değil, uygulamanın yazarak süzülen seçicisi
   (2026.185 · kullanıcının kararı). Kabuk ".sec", içindeki kutu
   ".sec-kutu"; ölçüler tabloya sığsın diye alan kutusundan küçüktür. */
.kk-secim {
  width: 100%;
  min-width: 150px;
  max-width: 220px;
}

.kk-secim .sec-kutu {
  height: 32px;
  padding: 0 calc(var(--bosluk) * 3.5) 0 var(--bosluk);
  border-radius: 10px;
  background: var(--kart-yuzey);
  font-size: var(--kucuk-boy);
  text-overflow: ellipsis;
}

.kk-secim.dolu .sec-kutu {
  border-color: var(--defter-tel);
  font-weight: 500;
}

@media (max-width: 899.98px) {
  .kk-blok { margin: calc(var(--bosluk) * 2); }
  .kk-secim { min-width: 130px; }
}

/* ---------- Rapor listesi · ortak bileşen ----------
   Giderler ve Gelirler raporlarının ikisi de aynı kabı kullanır: üstte
   dönem süzgeci ve toplam, altında satırlar, bir satıra basınca altında
   ayrıntısı. İki ekran için iki ayrı ad açmak yerine tek bileşen: aynı
   şey iki yerde iki türlü davranmasın (nizam · "Bileşenler").
   Kaynak: 4-ekranlar/2-raporlar/giderler.js · 4-ekranlar/2-raporlar/gelirler.js */
.rl-kart {
  --rl-pay: calc(var(--bosluk) * 3);
  max-width: 820px;
  margin: 0 auto calc(var(--bosluk) * 3);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  position: relative;
  overflow: hidden;
}

.rl-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

.rl-tepe {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2.5) var(--rl-pay) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.rl-tepe-yazi { min-width: 0; }

.rl-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.rl-tarih {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Toplam sağ üstte, tek bakışta okunur. */
.rl-toplam {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
}

.rl-toplam span {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .05em;
  text-transform: uppercase;
  opacity: .7;
}

.rl-toplam b {
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.rl-suzgec {
  padding: calc(var(--bosluk) * 1.5) var(--rl-pay);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.rl-aralik { display: flex; align-items: center; gap: var(--bosluk); }
.rl-aralik .alan-kutu { width: 160px; }
.rl-aralik-ok { opacity: .5; }

/* Liste kağıt üstünde durur. Dar ekranda sığmazsa kendi içinde yana
   kayar; kartın kenarında kesilmez. */
.rl-liste { background: var(--kart-yuzey); overflow-x: auto; }

.rl-tablo {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.rl-tablo td {
  padding-top: calc(var(--bosluk) * 1.25);
  padding-bottom: calc(var(--bosluk) * 1.25);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

.rl-tablo tr:last-child td { border-bottom: 0; }

.rl-td-simge {
  width: calc(var(--rl-pay) + 30px);
  padding-left: var(--rl-pay);
  color: var(--gri-vurgu);
  opacity: .8;
}

.rl-td-simge .simge { display: block; margin: 0 auto; }

.rl-td-ad {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  min-width: 0;
  overflow-wrap: anywhere;
}

.rl-td-tutar {
  width: 1%;
  padding-right: var(--rl-pay);
  text-align: right;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.rl-baslik-satir { cursor: pointer; }
.rl-baslik-satir .rl-td-ad { font-weight: 600; }
.rl-baslik-satir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }

/* Uzun başlık kelime kelime sarar. "anywhere" denendi ve dar ekranda
   künyeler yeri kapınca adı harf harf alt alta diziyordu; kırılım
   kelimeden olur, satır da aşağıda sarmalanır. */
.rl-ad,
.rl-islem-ad { min-width: 0; overflow-wrap: break-word; }

/* Hesap kodu ve ödeme sayısı küçük künyeler. */
.rl-kod,
.rl-adet {
  flex: none;
  padding: 1px calc(var(--bosluk) * 0.875);
  border-radius: 9px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  font-size: var(--etiket-boy);
  line-height: 17px;
  font-weight: 500;
  opacity: .75;
}

.rl-ok {
  flex: none;
  display: inline-flex;
  color: var(--gri-vurgu);
  opacity: .5;
  transition: transform var(--gecis) ease-out;
}

.rl-baslik-satir[aria-expanded="true"] .rl-ok { transform: rotate(90deg); opacity: .9; }

.rl-acik td { background: var(--defter-satir-cift); }

/* Ciro girmemiş gün listede kalır ama öne çıkmaz (Gelirler raporu). */
.rl-satir-bos .rl-td-ad,
.rl-satir-bos .rl-td-tutar { opacity: .45; }

/* Satıştan düşen kalem eksi yazılır. */
.rl-eksi { color: var(--metin-hata); }

/* İşlem satırı · başlıkla aynı hizada, soldan kılavuz çizgisiyle bağlı */
.rl-islem td {
  background: rgba(168, 174, 182, .10);
  border-bottom-color: rgba(168, 174, 182, .22);
}

.rl-islem .rl-td-ad { font-weight: 400; }
.rl-islem .rl-td-tutar { font-weight: 400; }

.rl-islem .rl-td-simge { position: relative; }

.rl-islem .rl-td-simge::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--rl-pay) + 9px);
  border-left: 1px solid var(--defter-tel);
  opacity: .45;
}

.rl-islem-son .rl-td-simge::before { bottom: 50%; }
.rl-islem-son td { border-bottom: 1px solid var(--defter-tel-soluk); }

.rl-islem-tarih {
  flex: none;
  width: 84px;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  opacity: .65;
}


@media (hover: hover) {
  .rl-baslik-satir:hover td { background: var(--defter-hover); }
  .rl-acik:hover td { background: var(--defter-satir-cift); }
  .rl-islem:hover td { background: rgba(168, 174, 182, .20); }
}

/* Dip toplamı · açık gri şerit, listenin altını kapatır. */
.rl-dip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) var(--rl-pay);
  border-top: 1px solid var(--defter-tel-soluk);
  background: var(--defter-acilis);
  font-size: var(--kucuk-boy);
}

.rl-dip b {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.rl-not {
  margin: 0;
  padding: calc(var(--bosluk) * 1.5) var(--rl-pay);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  text-align: center;
  opacity: .6;
}

/* Boş durum · kartın içinde durur, sayfa boş kalmaz. */
.rl-bos {
  padding: calc(var(--bosluk) * 5) var(--rl-pay);
  text-align: center;
}

.rl-bos-baslik {
  margin-top: calc(var(--bosluk) * 2);
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  color: var(--defter-koyu);
}

.rl-bos-yazi {
  margin: var(--bosluk) auto 0;
  max-width: 46ch;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

@media (max-width: 899.98px) {
  .rl-kart { --rl-pay: calc(var(--bosluk) * 2); }

  /* Dar ekranda başlık kendi satırında durur, künyeler altına iner:
     yan yana sığmayınca ad iyice daralıp okunmaz oluyordu. */
  .rl-baslik-satir .rl-td-ad { flex-wrap: wrap; row-gap: 2px; }
  .rl-baslik-satir .rl-ad { flex: 1 1 100%; }
  .rl-ok { margin-left: auto; }
  .rl-islem .rl-td-ad { flex-wrap: nowrap; }
  .rl-tepe { align-items: flex-start; flex-direction: column; }
  .rl-toplam { align-items: flex-start; text-align: left; }
  .rl-aralik { width: 100%; }
  .rl-aralik .alan-kutu { flex: 1 1 auto; width: auto; }
  .rl-islem-tarih { width: 76px; }
}

/* ---- Kâr-Zarar · iki A4 sayfası ----
   Muhasebe dili yok. Birinci sayfa dört kutu: tepede "Ne vardı", solda
   "Ne girdi", sağda "Ne çıktı", altta "Ne kaldı". İkinci sayfa
   harcamaların dökümü. Her kutunun kendi rengi var (--kz-renk); simge
   plakası ve başlık o rengi alır, satırlar hep kağıt üstünde kalır.
   Kaynak: 4-ekranlar/2-raporlar/kar-zarar.js */
.kz-suzgec {
  max-width: 820px;
  margin: 0 auto calc(var(--bosluk) * 2);
}

.kz-aralik { display: flex; align-items: center; gap: var(--bosluk); }
.kz-aralik .alan-kutu { width: 160px; }
.kz-aralik-ok { opacity: .5; }

/* Sayfa gerçekten A4 oranındadır: 210×297 → 1 / 1.414. İçerik sığmazsa
   sayfa uzar (min-height), kısalmaz. */
.kz-sayfa {
  max-width: 820px;
  margin: 0 auto calc(var(--bosluk) * 3);
  padding: calc(var(--bosluk) * 3);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  position: relative;
}

@media (min-width: 900px) {
  .kz-sayfa { min-height: 1160px; }
}

.kz-sayfa-tepe {
  display: flex;
  align-items: flex-start;
  gap: var(--bosluk);
  margin-bottom: calc(var(--bosluk) * 2.5);
  padding-bottom: calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.kz-sayfa-yazi { flex: 1; min-width: 0; }

.kz-sayfa-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.kz-sayfa-alt {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Sayfa numarası köşede küçük bir künye. */
.kz-sayfa-no {
  flex: none;
  padding: 2px calc(var(--bosluk) * 1.25);
  border: 1px solid var(--kart-kenar);
  border-radius: 12px;
  background: var(--kart-kagit);
  font-size: var(--etiket-boy);
  line-height: 20px;
  opacity: .8;
}

/* ---- Kutular ---- */
/* Kutu bir sütundur: tablo ortada esner, toplam ve alt not hep dipte
   durur. Yan yana iki kutunun toplam satırları böylece aynı hizaya
   gelir — rapor simetrik okunur. */
.kz-kutu {
  --kz-renk: var(--defter-koyu);
  /* Kutunun yan payı tek yerden: başlık, satır, toplam ve alt not hep
     bu paydan başlar. Simgeler kutunun kenarına, rakamlar sağ kenara
     yapışıyor ve taşmış gibi duruyordu. */
  --kz-pay: calc(var(--bosluk) * 3);
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--kart-yuzey);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  overflow: hidden;
}

.kz-kutu-govde { flex: 1 1 auto; }

.kz-girdi { --kz-renk: var(--metin-basari); }
.kz-cikti { --kz-renk: var(--gri-vurgu); }
.kz-kaldi { --kz-renk: var(--defter-koyu); }
/* Kâr kutusu · raporun vardığı yer (2026.293). Gri çizgi onu öteki
   kutulardan ayırır: bakılan sayı budur. */
.kz-kar {
  --kz-renk: var(--defter-tel);
  box-shadow: inset 0 0 0 1px var(--defter-tel);
}

/* Kutular alt alta ve numaralıdır. Tek istisna 2 ve 3'tür: para solda
   girer, sağda çıkar — göz soldan sağa okuduğu için sıra bozulmaz. */
.kz-kutu + .kz-kutu { margin-top: calc(var(--bosluk) * 2); }


/* Adım numarası başlığın önünde küçük bir künye. */
.kz-adim {
  flex: none;
  padding: 1px calc(var(--bosluk) * 0.875);
  border-radius: 10px;
  background: var(--oyuk);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  font-family: var(--yazi-metin);
  font-size: var(--etiket-boy);
  line-height: 18px;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--kz-renk);
  opacity: .85;
}

.kz-kutu-basi {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  margin: 0;
  padding: calc(var(--bosluk) * 1.5) var(--kz-pay);
  border-bottom: 1px solid var(--defter-tel-soluk);
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--kz-renk);
}

/* Simge plakası kutunun rengini soluk zeminle taşır. */
.kz-kutu-simge {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 11px;
  background: var(--oyuk);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  color: var(--kz-renk);
}

/* ---- Satırlar ---- */
.kz-tablo {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Satır yüksekliği burada, YAN PAY HÜCRENİN KENDİSİNDE verilir. Kısayol
   "padding: x 0" yazılırsa hücrelerin yan payını sıfırlıyor ve daha
   güçlü seçici olduğu için simge sola, tutar sağa yapışıyordu. */
.kz-tablo td {
  padding-top: calc(var(--bosluk) * 1.25);
  padding-bottom: calc(var(--bosluk) * 1.25);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

/* İki sütunlu kutuda satır bir tık sıkışır ama yan pay korunur: iki
   tablo yan yana sığsın, rakam ne ayraca ne kenara yapışsın. */
.kz-ciftli { --kz-pay: calc(var(--bosluk) * 2.5); }
.kz-ciftli .kz-tablo td {
  padding-top: var(--bosluk);
  padding-bottom: var(--bosluk);
}
.kz-ciftli .kz-td-simge { width: calc(var(--kz-pay) + 26px); }
.kz-ciftli .kz-td-ad { font-size: var(--kucuk-boy); padding-right: var(--bosluk); }
.kz-ciftli .kz-td-tutar { font-size: 14px; }

.kz-tablo tr:last-child td { border-bottom: 0; }

/* Simge hücresi: çizim satırın ortasına oturur, kendi satır yüksekliğini
   dayatmaz. line-height: 0 yerine blok svg — svg satır kutusunun altına
   inip satırı büyütüyordu. */
/* Simge kendi hücresinde ORTALANIR; sola yapışmaz. Hücre kutunun yan
   payı kadar içeriden başlar, simge de o alanın ortasında durur. */
.kz-td-simge {
  width: calc(var(--kz-pay) + 30px);
  padding-left: var(--kz-pay);
  color: var(--kz-renk);
  opacity: .75;
}

.kz-td-simge .simge { display: block; margin: 0 auto; }

/* Uzun hesap adı taşmaz, gerekirse alt satıra iner; rakam hiç kırılmaz. */
.kz-td-ad {
  width: auto;
  min-width: 0;
  overflow-wrap: anywhere;
}

.kz-td-tutar {
  width: 1%;
  padding-right: var(--kz-pay);
  text-align: right;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kz-satir-kalin .kz-td-ad,
.kz-satir-kalin .kz-td-tutar { font-weight: 600; }

.kz-satir-eksi .kz-td-tutar { color: var(--metin-hata); }
.kz-satir-eksi .kz-td-ad { opacity: .8; }

.kz-satir-bos .kz-td-ad { opacity: .55; }

/* ---- Varlıklar · Borçlar · iki sütun ----
   "Ne vardı" ve "Ne kaldı" kutusunun içi ikiye bölünür. Sütunlar eşit
   yükseklikte biter: tablo ortada esner, alt toplam dipte durur, iki
   toplam aynı hizaya gelir. Aradaki ayrım bir ince tel çizgidir. */
.kz-ciftli {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

@media (min-width: 640px) {
  .kz-ciftli { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .kz-sutun + .kz-sutun { border-left: 1px solid var(--defter-tel-soluk); }
}

@media (max-width: 639.98px) {
  .kz-sutun + .kz-sutun { border-top: 1px solid var(--defter-tel-soluk); }
}

.kz-sutun {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.kz-sutun-govde { flex: 1 1 auto; }

/* Sütun başlığı: küçük, seyrek harfli, kendi rengiyle. */
.kz-sutun-basi {
  padding: calc(var(--bosluk) * 1.25) var(--kz-pay) var(--bosluk);
  border-bottom: 1px solid var(--defter-tel-soluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.kz-sutun-varlik .kz-sutun-basi { color: var(--metin-basari); }
.kz-sutun-borc .kz-sutun-basi { color: var(--metin-hata); }

.kz-sutun-varlik { --kz-renk: var(--metin-basari); }
.kz-sutun-borc { --kz-renk: var(--metin-hata); }

/* Sütunun kendi toplamı · kutunun dibindeki büyük toplamdan sakin. */
.kz-sutun-toplam {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: var(--bosluk) var(--kz-pay);
  border-top: 1px solid var(--defter-tel-soluk);
  background: var(--oyuk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .85;
}

.kz-sutun-toplam b {
  flex: none;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  letter-spacing: 0;
  text-transform: none;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Kontrol kutusu · tuttuğunda yeşil, tutmadığında kırmızı konuşur. */
.kz-kontrol { --kz-renk: var(--bilgi); margin-top: calc(var(--bosluk) * 1.5); }

/* Kontrolü açan düğme · kapalıyken raporun tek fazlalığı budur. */
.kz-acar {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  width: 100%;
  min-height: 52px;
  margin-top: calc(var(--bosluk) * 2);
  padding: var(--bosluk) calc(var(--bosluk) * 3);
  background: var(--kart-kagit);
  border: 1px solid var(--kart-kenar);
  border-radius: 14px;
  text-align: left;
  color: var(--metin-bilgi);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  font-weight: 600;
}

.kz-acar-simge { flex: none; display: inline-flex; }
.kz-acar-ad { flex: 1 1 auto; min-width: 0; }

.kz-acar-ok {
  flex: none;
  display: inline-flex;
  opacity: .5;
  transition: transform var(--gecis) ease-out;
}

.kz-acar[aria-expanded="true"] .kz-acar-ok { transform: rotate(90deg); }

@media (hover: hover) {
  .kz-acar:hover { background: var(--kart-yuzey); border-color: var(--defter-tel); }
}

.kz-kontrol-ipucu {
  display: block;
  margin-top: calc(var(--bosluk) / 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

.kz-satir-acilir { cursor: pointer; }
.kz-satir-acilir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }

@media (hover: hover) {
  .kz-satir-acilir:hover td { background: var(--defter-hover); }
}

/* Kutunun altındaki toplam: açık gri zemin, kalın rakam. */
.kz-kutu-toplam {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) var(--kz-pay);
  border-top: 1px solid var(--defter-tel-soluk);
  background: var(--defter-acilis);
  font-size: var(--kucuk-boy);
}

.kz-kutu-toplam span { min-width: 0; }

.kz-kutu-toplam b {
  flex: none;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kz-kutu-not {
  margin: 0;
  padding: var(--bosluk) var(--kz-pay) calc(var(--bosluk) * 1.5);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

/* Arttı · azaldı rozeti. */
.kz-rozet {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  padding: 3px calc(var(--bosluk) * 1.25);
  border-radius: 14px;
  background: var(--oyuk);
  font-weight: 600;
}

.kz-rozet-artan  { background: rgba(47, 125, 83, .14); color: var(--metin-basari); }
.kz-rozet-azalan { background: rgba(183, 44, 40, .12); color: var(--metin-hata); }

.kz-artan { color: var(--metin-basari); }
.kz-azalan { color: var(--metin-hata); }

/* ---- Ne çıktı · açılır gruplar ----
   Grup satırına basılınca altında o grubun kalemleri açılır. Kalem adı
   grubun adıyla AYNI HİZADA başlar; alta ait olduğunu girinti değil,
   simge sütunundan geçen ince gri kılavuz çizgisi söyler. */
.kz-grup { cursor: pointer; }

.kz-grup .kz-td-ad {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  font-weight: 600;
}

.kz-grup-ad { min-width: 0; }

/* Kaç kalem olduğu küçük bir künye. */
.kz-grup-adet {
  flex: none;
  padding: 1px calc(var(--bosluk) * 0.875);
  border-radius: 9px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  font-size: var(--etiket-boy);
  line-height: 17px;
  font-weight: 500;
  opacity: .75;
}

.kz-grup-ok {
  flex: none;
  display: inline-flex;
  color: var(--kz-renk);
  opacity: .5;
  transition: transform var(--gecis) ease-out;
}

.kz-grup[aria-expanded="true"] .kz-grup-ok { transform: rotate(90deg); opacity: .9; }

/* Açık grup: zemin şeridi. Kutunun dibindeki "toplam" barı antik
   altındır; açık grup ondan bir ton açık kalsın ki ikisi karışmasın. */
.kz-grup-acik td {
  background: var(--defter-satir-cift);
  border-bottom-color: var(--defter-tel-soluk);
}

.kz-grup-acik .kz-td-ad,
.kz-grup-acik .kz-td-tutar { color: var(--defter-notr); }

.kz-grup-acik .kz-grup-adet { background: rgba(255, 255, 255, .75); }

/* Kalem satırı: sıcak kağıt tonu, girinti yok, hizası grupla aynı. */
.kz-kalem td {
  background: rgba(168, 174, 182, .10);
  border-bottom-color: rgba(168, 174, 182, .22);
}

.kz-kalem .kz-td-ad {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  font-size: var(--kucuk-boy);
}

/* İşlem satırı: solda tarih, yanında açıklama. */
.kz-islem-tarih {
  flex: none;
  width: 84px;
  font-variant-numeric: tabular-nums;
  opacity: .65;
}

.kz-islem-ad { min-width: 0; overflow-wrap: anywhere; }

/* Bu sürede parası çıkmamış başlık listede durur ama öne çıkmaz. */
.kz-grup-bos .kz-td-ad,
.kz-grup-bos .kz-td-tutar { opacity: .5; }
.kz-kalem .kz-td-tutar { font-weight: 400; }

/* Kılavuz çizgisi simge sütunundan geçer: kalemler grubun altında bir
   dal gibi durur ama hiçbir yazı sağa kaymaz. */
.kz-kalem .kz-td-simge { position: relative; }

.kz-kalem .kz-td-simge::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--kz-pay) + 9px);
  border-left: 1px solid var(--defter-tel);
  opacity: .45;
}

/* Son kalemde çizgi yarıda kalır ve blok gri telle kapanır. */
.kz-kalem-son .kz-td-simge::before { bottom: 50%; }

.kz-kalem-son td { border-bottom: 1px solid var(--defter-tel-soluk); }

@media (hover: hover) {
  .kz-grup:hover td { background: var(--defter-hover); }
  .kz-grup-acik:hover td { background: var(--defter-satir-cift); }
  .kz-kalem:hover td { background: rgba(168, 174, 182, .20); }
}

.kz-bos,
.kz-not {
  margin: 0;
  padding: calc(var(--bosluk) * 2) 0 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  text-align: center;
  opacity: .7;
}

.kz-not { border-top: 1px solid var(--defter-tel-soluk); opacity: .6; }

/* ---- Ayrıntı paneli ---- */
.kz-panel-bos { margin: 0; font-size: var(--kucuk-boy); opacity: .7; }

.kz-ayrinti { display: flex; flex-direction: column; }

.kz-ayrinti-satir {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kz-ayrinti-satir:last-child { border-bottom: 0; }

.kz-ayrinti-tarih {
  flex: none;
  width: 84px;
  opacity: .7;
}

.kz-ayrinti-ad { flex: 1 1 auto; min-width: 0; }

.kz-ayrinti-kaynak {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

.kz-ayrinti-tutar {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

/* ---- Döküm penceresi (2026.229) ----
   Eski panel yalnız hareket listesiydi ve künyesi yoktu. Yenisi tepede
   neye baktığını, altta kaç kalem ve toplam kaç lira olduğunu söyler;
   satırlar sol kod · orta ad · sağ tutar diye üç sütuna oturur. */
.kzp { display: flex; flex-direction: column; }

.kzp-basi {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-bottom: var(--bosluk);
  margin-bottom: calc(var(--bosluk) / 2);
  border-bottom: 1px solid var(--ayirici);
}

.kzp-basi-ad { font-weight: 600; }

.kzp-basi-alt {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .6;
}

.kzp-liste { list-style: none; margin: 0; padding: 0; }

.kzp-satir {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 0.9) calc(var(--bosluk) / 2);
  border-bottom: 1px solid var(--ayirici);
  border-radius: var(--kose-kucuk, 6px);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Büyüklük çubuğu satırın ARKASINDA durur: rakamları okumadan
   hangisinin ağır bastığı görünsün, ama yazıyı bastırmasın. */
.kzp-cubuk {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  border-radius: 2px;
  background: var(--defter-tel, currentColor);
  opacity: .55;
  pointer-events: none;
}

.kzp-cubuk-eksi { background: var(--metin-hata); opacity: .45; }

.kzp-pay {
  flex: none;
  width: 46px;
  text-align: right;
  font-size: var(--etiket-boy);
  opacity: .55;
  font-variant-numeric: tabular-nums;
}

.kzp-not {
  margin: 0 0 var(--bosluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.kz-fark-dugme { margin-top: var(--bosluk); }

/* ---- Kontrol · üç sütunlu tablo (2026.231) ----
   Solda ne bakıldığı, ortada defterin dediği, sağda olması gereken.
   Tutmayan satır kendini belli eder. */
.kzk-tablo {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kzk-tablo th {
  padding: 0 var(--bosluk) var(--bosluk);
  text-align: left;
  opacity: .6;
}

.kzk-tablo td {
  padding: calc(var(--bosluk) * 0.8) var(--bosluk);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: top;
}

.kzk-tablo tr:last-child td { border-bottom: 0; }

.kzk-ad { width: 46%; }

.kzk-not {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

.kzk-sayi {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kzk-kalin td, .kzk-kalin .kzk-ad { font-weight: 600; }
.kzk-kalin td { border-top: 1px solid var(--kart-kenar); }

/* Tutmayan satırın iki rakamı yan yana okunur; sağdaki beklenen
   vurgulanır ki gözle karşılaştırma kolay olsun. */
.kzk-vurgu .kzk-sayi:last-child { color: var(--metin-hata); }
.kzk-vurgu { background: var(--oyuk); }

/* ---- Kontrol · mizan tablosu (2026.233) ----
   Beş rakam sütunu yan yana; sağdaki fark sütunu tutmayan hesabı
   işaret eder. Kök satırlar tıklanır, altları açılır. */
.kzm-tablo {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.kzm-tablo th {
  padding: 0 var(--bosluk) var(--bosluk);
  text-align: left;
  white-space: nowrap;
  opacity: .6;
}

.kzm-tablo td {
  padding: calc(var(--bosluk) * 0.7) var(--bosluk);
  border-bottom: 1px solid var(--ayirici);
}

.kzm-tablo tr:last-child td { border-bottom: 0; }

.kzm-sayi {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kzm-ad { min-width: 200px; }

.kzm-kod {
  display: inline-block;
  min-width: 54px;
  margin-right: 8px;
  font-weight: 700;
  opacity: .7;
}

.kzm-kok { cursor: pointer; font-weight: 600; }
.kzm-kok:hover, .kzm-kok:focus-visible { background: var(--oyuk); }

.kzm-alt { cursor: pointer; }
.kzm-alt .kzm-ad { padding-left: calc(var(--bosluk) * 2); font-weight: 400; }
.kzm-alt td { opacity: .85; }
.kzm-alt:hover, .kzm-alt:focus-visible { background: var(--oyuk); }

.kzm-sonu { font-weight: 600; }

/* Denklik satırı tablonun dibinde durur, kalın çizgiyle ayrılır. */
.kzm-denklik td {
  border-top: 2px solid var(--kart-kenar);
  border-bottom: 0;
  font-weight: 600;
  padding-top: var(--bosluk);
}

.kzm-not {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 400;
  opacity: .55;
}

.kzm-araclar {
  display: flex;
  justify-content: flex-end;
  margin-top: var(--bosluk);
}

.kzm-fark { color: var(--metin-basari); }
.kzm-farkli .kzm-fark { color: var(--metin-hata); font-weight: 600; }
.kzm-farkli { background: var(--oyuk); }

/* Eksi bakiye kırmızı okunur (2026.259 · kullanıcının isteği). Sınıf
   ortaktır — hareketler ekranı ve defter de aynısını kullanıyor — ama
   kâr-zarar tablolarının kendi renkleri daha güçlü seçicilerle geliyor;
   burada onların üstüne yazılır. */
.kz-td-tutar.tablo-eksi,
.kz-grup-acik .kz-td-tutar.tablo-eksi,
.kz-satir-acilir .kz-td-tutar.tablo-eksi,
.kzm-sayi.tablo-eksi,
.kzm-sonu.tablo-eksi,
.kz-sutun-toplam b.tablo-eksi { color: var(--metin-hata); font-weight: 600; }

/* Fark teşhisi · kutu içinde küçük bir liste. */
.kz-teshis {
  margin: calc(var(--bosluk) / 2) 0 var(--bosluk);
  padding-left: calc(var(--bosluk) * 1.5);
}

.kz-teshis li { margin-bottom: 3px; }

.kzp-tiklanir { cursor: pointer; }
.kzp-tiklanir:hover,
.kzp-tiklanir:focus-visible { background: var(--oyuk); }

.kzp-satir:last-child { border-bottom: 0; }

/* Hesap satırı tıklanır, işlem satırı tıklanmaz. */
.kzp-satir[data-hesap] { cursor: pointer; }
.kzp-satir[data-hesap]:hover,
.kzp-satir[data-hesap]:focus-visible { background: var(--vurgu-zemin, rgba(0, 0, 0, .04)); }

.kzp-kod {
  flex: none;
  width: 84px;
  opacity: .7;
  font-variant-numeric: tabular-nums;
}

.kzp-ad { flex: 1 1 auto; min-width: 0; }

.kzp-kaynak {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

.kzp-tutar {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.kzp-eksi { color: var(--metin-hata); }

.kzp-toplam {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--bosluk);
  margin-top: var(--bosluk);
  padding-top: var(--bosluk);
  border-top: 1px solid var(--kart-kenar);
  font-size: var(--kucuk-boy);
}

.kzp-toplam span { opacity: .7; }
.kzp-toplam b { font-variant-numeric: tabular-nums; }

.kzp-bos { margin: 0; font-size: var(--kucuk-boy); opacity: .7; }

/* "En büyük 200 satır gösteriliyor" · uzun dökümün altındaki not
   (2026.432). Uyarı değil bilgi: altındaki toplam listenin tamamını
   kapsıyor, eksik bir şey yok. */
.kzp-kirpik {
  margin: calc(var(--bosluk) / 2) 0 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
}

@media (max-width: 899.98px) {
  .kz-sayfa { padding: calc(var(--bosluk) * 2); }
  .kzp-kod { width: 72px; }

  /* Gider başlığı dar ekranda kendi satırında durur, künyesi altına
     iner (Giderler raporundaki ile aynı sebep). */
  .kz-grup .kz-td-ad { flex-wrap: wrap; row-gap: 2px; }
  .kz-grup .kz-grup-ad { flex: 1 1 100%; }
  .kz-grup .kz-grup-ok { margin-left: auto; }
  .kz-aralik { width: 100%; }
  .kz-aralik .alan-kutu { flex: 1 1 auto; width: auto; }
  .kz-ayrinti-tarih { width: 72px; }
  .kz-islem-tarih { width: 76px; white-space: nowrap; }
  .kz-kutu { --kz-pay: calc(var(--bosluk) * 2); }
}

/* Yazdırınca gerçekten iki A4 sayfası çıkar: süzgeç basılmaz, her
   sayfa kendi kağıdında durur. */
@media print {
  .kz-suzgec { display: none; }
  .kz-sayfa {
    margin: 0;
    min-height: 0;
    border: 0;
    box-shadow: none;
    break-after: page;
    page-break-after: always;
  }
  .kz-sayfa:last-child { break-after: auto; page-break-after: auto; }
}

/* ---- Kâğıt hesap · akış tablosu · akış paneli (2026.601) ----------
   Kullanıcının isteği: "bir kişi kalem kâğıtla tabloya bakıp
   hesaplamalı, tüm veriler olmalı."

   Üç parça var:
     kz-kopru · raporun cevabı · en üstte, altı satır
     kz-akis  · varlık satırları · KAPALI başlar
     va-*     · panel · ekranı üçe böler, kat kat iner

   Panel sınıfları "kzp-" değil "va-" ile başlar: kzp- adları bu
   ekranda başka bir panele (döküm penceresi) ait ve ikisi çakışıyordu.
   ------------------------------------------------------------------ */

/* Kâğıt hesap */
.kz-kopru-tablo td { padding: 8px 10px; }
.kz-kopru-tablo .kz-td-tutar { text-align: right; font-variant-numeric: tabular-nums; }
.kz-kopru-cizgi td { border-top: 2px solid var(--defter-koyu); }
.kz-kopru-tablo tr.kz-acilir { cursor: pointer; }
.kz-kopru-tablo tr.kz-acilir:hover td { background: rgba(208, 135, 0, .10); }
.kz-kopru-tablo tr.kz-acilir:focus-visible {
  outline: 2px solid var(--vurgu); outline-offset: -2px;
}
.kz-kopru-tablo tr.kz-acilir:hover .kz-buyutec { opacity: 1; }
/* Fark yoksa rakam değil cümle yazar. */
/* Beklenen ile gerçekleşen aynıysa iki satır tek satır olur; tik o
   birleşmeyi anlatır (2026.609). */
.kz-kopru-onay {
  display: inline-flex; align-items: center; gap: 5px; margin-left: 10px;
  padding: 1px 9px 1px 6px; border-radius: 999px;
  background: rgba(45, 120, 70, .12); color: var(--basari);
  font-size: 11px; font-weight: 600; letter-spacing: .02em;
}
.kz-kopru-onay svg { width: 13px; height: 13px; }
.kz-kopru-fark td { background: rgba(170, 40, 40, .08); }
.kz-kopru-fark .kz-td-tutar { color: var(--hata); font-weight: 700; }
/* Dönem Farkı · raporun cevabı. Kâr dağıtımı düğmesi bu satırdadır
   (2026.603); kapalıyken de durur ve niye kapalı olduğunu söyler. */
.kz-kopru-kar td {
  background: rgba(226, 211, 176, .30);
  border-top: 1px solid var(--defter-koyu);
  font-weight: 700;
}
.kz-kopru-kar .kz-td-ad { display: flex; align-items: center; gap: 10px; }
/* Düğme satırın içinde durur, satırı taşımaz: normal düğme boyu bu
   tabloda fazla iri kaçıyordu (2026.604 · kullanıcının isteği:
   "kâr dağıt düğmesini de küçült"). */
.kz-kopru-dagit {
  flex: none;
  min-height: 0;
  padding: 3px 10px;
  font-size: var(--kucuk-boy);
  line-height: 1.5;
  font-weight: 600;
}
.kz-kopru-dagit:disabled { opacity: .45; cursor: default; }

/* Akış tablosu */
.kz-akis-tablo { width: 100%; }
.kz-akis-tablo thead th {
  padding: 7px 10px; border-bottom: 1px solid var(--kenar);
  font-size: var(--etiket-boy); letter-spacing: .04em; text-transform: uppercase;
  color: var(--ikinci); text-align: left; font-weight: 600;
}
.kz-akis-tablo thead th.sag { text-align: right; }
.kz-akis-tablo td { padding: 8px 10px; }
.kz-akis-tablo .kz-td-tutar { text-align: right; font-variant-numeric: tabular-nums; }
.kz-akis-band td {
  padding: 8px 10px 4px; font-size: var(--etiket-boy); letter-spacing: .06em;
  text-transform: uppercase; font-weight: 700; color: var(--defter-koyu);
  background: rgba(226, 211, 176, .35);
}
.kz-akis-toplam td {
  border-top: 1px solid var(--kenar); font-weight: 700;
  background: rgba(226, 211, 176, .18);
}
.kz-giren { color: #2F6B4A; }
.kz-cikan { color: #A42430; }
.kz-td-sonu { font-weight: 700; }
.kz-hucre-ac { cursor: pointer; white-space: nowrap; }
.kz-hucre-ac:hover { background: rgba(208, 135, 0, .12); }
.kz-hucre-ac:focus-visible { outline: 2px solid var(--vurgu); outline-offset: -2px; }
.kz-buyutec { display: inline-block; margin-left: 6px; opacity: .45; }
.kz-buyutec svg { vertical-align: -1px; }
.kz-hucre-ac:hover .kz-buyutec { opacity: 1; }

/* Kapalı başlayan kutu · başlık düğmedir */
.kz-kutu-ac { cursor: pointer; }
.kz-kutu-ac:hover { background: rgba(208, 135, 0, .06); }
.kz-kutu-ac:focus-visible { outline: 2px solid var(--vurgu); outline-offset: -2px; }
.kz-ac-ipucu {
  margin-left: auto; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--yazi-govde); font-size: var(--kucuk-boy);
  font-weight: 400; color: var(--ikinci);
}
.kz-ac-ok {
  width: 9px; height: 9px; margin-top: -4px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform .15s;
}
.kz-kutu:not(.kz-kapali) .kz-ac-ok { transform: rotate(-135deg); margin-top: 3px; }
.kz-kapali .kz-kutu-basi { border-bottom: 0; }
.kz-kapali .kz-kutu-ic { display: none; }
/* Eski dört kutu gizli bölümde duruyor · adım numaraları yeni
   sıralamayla çakışmasın diye orada yazmaz. */
.kz-eski .kz-adim { display: none; }
.kz-eski .kz-kutu { box-shadow: none; }

/* ---- Akış paneli ---- */
.va-ozet {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; margin: 0 0 14px; padding: 12px 16px;
  border-radius: var(--kose-kutu); background: var(--zemin);
}
.va-ozet b { font-size: var(--h3-boy, 17px); font-variant-numeric: tabular-nums; }
/* Özet şeridine düğme girebilir (fark raporu indirmesi · 2026.606):
   rakam sağda kalsın diye düğme ortaya alınır. */
.va-ozet { flex-wrap: wrap; }
.va-ozet > span:first-child { flex: 1 1 auto; min-width: 0; }
.va-indir { flex: none; min-height: 0; padding: 4px 12px; font-size: var(--kucuk-boy); }
.va-grup {
  border: 1px solid var(--kenar); border-radius: var(--kose-kutu);
  overflow: hidden; display: flex; flex-direction: column; min-height: 0;
}
.va-grup-basi {
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding: 10px 14px; border-bottom: 1px solid var(--kenar);
  background: rgba(226, 211, 176, .28);
  font-weight: 700; font-size: var(--govde-boy);
  position: sticky; top: 0; z-index: 1;
}
.va-grup-basi b { font-variant-numeric: tabular-nums; white-space: nowrap; flex: none; }
.va-satis .va-grup-basi { background: rgba(47, 107, 74, .12); color: #22553A; }
.va-disi  .va-grup-basi { background: rgba(44, 98, 143, .12); color: #22526F; }
.va-yer   .va-grup-basi { background: rgba(138, 116, 88, .14); color: #6B5942; }
.va-harc  .va-grup-basi { background: rgba(164, 36, 48, .10); color: #7E1A24; }
.va-tablo { width: 100%; font-size: var(--kucuk-boy); }
.va-tablo td { padding: 8px 14px; border-bottom: 1px solid var(--ayirici); }
.va-tablo tr:last-child td { border-bottom: 0; }
.va-tarih { width: 110px; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.va-tablo tr.va-tarihsiz .va-tarih { display: none; }
.va-tutar { text-align: right; width: 150px; font-variant-numeric: tabular-nums; }
.va-etiket {
  display: block; margin: 2px 0 0; padding: 1px 7px; border-radius: 999px;
  background: var(--zemin); font-size: 11px; color: var(--ikinci); width: fit-content;
}
.va-daha td { text-align: center; color: var(--ikinci); }
.va-bos { padding: 16px; color: var(--ikinci); text-align: center; }
.va-yukleniyor { padding: 12px; }
.va-dip {
  display: flex; justify-content: space-between; gap: 12px;
  padding: 12px 16px; border-top: 2px solid var(--defter-koyu);
  font-weight: 700; font-variant-numeric: tabular-nums;
}

/* Kalemin içi açılır · döküm SÜTUNUN İÇİNDE kalır */
.va-tablo tr.va-derin { cursor: pointer; }
.va-tablo tr.va-derin:hover td { background: rgba(208, 135, 0, .12); }
.va-tablo tr.va-derin:focus-visible {
  outline: 2px solid var(--vurgu); outline-offset: -2px;
}
.va-derin-isaret { margin-left: 7px; opacity: .4; vertical-align: -1px; }
.va-tablo tr.va-derin:hover .va-derin-isaret { opacity: 1; }
.va-basi-ad { display: flex; align-items: center; min-width: 0; }
.va-yol { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.va-ust-ad { font-weight: 400; opacity: .55; margin-right: 6px; }
.va-geri {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; margin-right: 8px; padding: 0; flex: none;
  border: 0; border-radius: 6px; background: rgba(0, 0, 0, .06);
  color: inherit; cursor: pointer;
}
.va-geri:hover { background: rgba(0, 0, 0, .14); }

/* Panel neredeyse tam ekran · BOYU SABİT.
   Kullanıcının isteği: "panel ilk başta hangi boyda açılırsa ona göre
   devam etsin, hiçbir şekilde tabloların boyu panelin boyu değişmesin."
   İçerik azalıp çoğalsa da pencere aynı yerde durur; kaleme basınca
   zıplamaz. Kayan yalnız sütunun içidir. */
.pencere-akis.pencere-panel {
  width: 96vw; max-width: 96vw; height: 92vh; max-height: 92vh;
  display: flex; flex-direction: column;
}
.pencere-akis .pencere-govde {
  flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden;
}
.pencere-akis .va-ozet,
.pencere-akis .va-dip,
.pencere-akis .va-sayfa { flex: none; }
.pencere-akis .va-uclu { flex: 1; min-height: 0; }
.pencere-akis .va-sar { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; }
.va-uclu {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px; align-items: stretch;
}
.va-ikili { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.va-tekli { grid-template-columns: minmax(0, 1fr) !important; }
/* Son sayfada üç grup dolmazsa yeri boş kalır, sütunlar genişlemez. */
.va-yer-tutucu { border: 0; background: none; }

/* Üçer üçer, oklarla gezilir */
.va-sayfa {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 12px;
}
.va-sayfa-yazi { font-size: var(--kucuk-boy); color: var(--ikinci); }
.va-sayfa-yazi b { color: var(--metin); }
.va-ok {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0; flex: none;
  border: 1px solid var(--kenar); border-radius: var(--kose-kutu);
  background: var(--yuzey); color: var(--metin); cursor: pointer;
}
.va-ok:hover:not(:disabled) { border-color: var(--vurgu); color: var(--vurgu); }
.va-ok:disabled { opacity: .3; cursor: default; }
.va-ok-geri svg { transform: rotate(180deg); }

/* Telefonda sütunlar alt alta */
@media (max-width: 900px) {
  .pencere-akis.pencere-panel { width: 96vw; height: 94vh; max-height: 94vh; }
  .va-uclu { grid-template-columns: minmax(0, 1fr); }
  .va-tarih { width: 84px; }
  .va-tutar { width: 118px; }
}

/* ---------- Yönetim Raporu · "bento" düzeni (2026.638) ------------------
   Kullanıcı üç tasarım örneği arasından bunu seçti. Ölçüler 390 pikselden
   başlar; 760'tan sonra dört sütunlu bir ızgaraya açılır ve döşemeler
   ikişer ya da dörder sütun kaplar.

   ÜÇ KADEME: açık tepe şeridi (günün cümlesi) · renkli noktalı öbek
   başlığı (sağında o öbeğin tek rakamı) · döşemeler.

   RENK ANLAM TAŞIDIĞI YERDE. Dolu bordo döşeme sayfada BİR tanedir —
   günün kasası. Yeşil ve kırmızı yalnız iyi/kötü durum için; artan
   harcamanın artan kısmı ayrı bir parçadır ve yanında ok ile kelime
   durur (renk körlüğünde de okunur).
   ------------------------------------------------------------------- */

/* ---- Tepe şeridi ---- */
.yr-tepe {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  padding: 2px 0 4px;
}
.yr-tepe-basi { flex: 1 1 auto; min-width: 0; }
.yr-tepe h2 {
  margin: 0; font-family: var(--yazi-baslik), Georgia, serif;
  font-size: 19px; font-weight: 700; letter-spacing: .2px; line-height: 1.15;
}
.yr-tepe-gun { margin-top: 2px; font-size: 12.5px; color: var(--ikinci); }
.yr-tepe-araclar { display: flex; align-items: center; gap: 7px; }
.yr-pil {
  border: 1px solid var(--kenar); background: var(--kart-kagit); color: var(--gri-koyu);
  border-radius: 999px; padding: 8px 15px; cursor: pointer; touch-action: manipulation;
  font: 500 12.5px var(--yazi-metin);
}
.yr-pil:hover { background: var(--oyuk); }
.yr-pil[aria-pressed="true"] {
  background: var(--metin); color: var(--kart-kagit); border-color: var(--metin); font-weight: 600;
}
.yr-ikon {
  width: 38px; height: 38px; padding: 0; display: grid; place-items: center; border-radius: 50%;
}
.yr-ikon svg { width: 17px; height: 17px; }
.yr-trh { position: relative; display: inline-flex; align-items: center; }
.yr-trh input {
  width: 132px; height: 38px; padding: 0 32px 0 13px; border-radius: 999px;
  border: 1px solid var(--kenar); background: var(--kart-kagit); color: var(--metin);
  font: 500 12.5px var(--yazi-metin);
}
.yr-trh button {
  position: absolute; right: 5px; width: 26px; height: 26px; border: 0; background: none;
  color: var(--ikinci); cursor: pointer; display: grid; place-items: center;
}
.yr-ozet {
  flex: 1 1 100%; margin: 10px 0 0; padding: 12px 15px; border-radius: 14px;
  background: var(--yuzey); border: 1px solid var(--ayirici);
  font-size: 14px; line-height: 1.5; color: var(--gri-koyu);
}
.yr-ozet b { font-weight: 600; color: var(--metin); }

/* ---- Öbek başlığı · altın kenarlı, ortalı kart (2026.641) ----
   Kullanıcının isteği: "günü gördük peki bu ay nasılız gibi yerler
   ortalı yazılsın ve kartın içinde dursun, geri dönme düğmesi de onun
   içinde olacak; kart premium olsun, gold kenarlıklı." */
.yr-obek {
  position: relative; display: flex; flex-direction: column; align-items: center;
  gap: 4px; margin: 14px 0 12px; padding: 16px 52px 14px; text-align: center;
  border: 1.5px solid transparent; border-radius: 22px;
  background:
    linear-gradient(180deg, #FFFDF8, var(--kart-kagit)) padding-box,
    var(--yr-altin-kenar) border-box;
  box-shadow: 0 1px 2px rgba(51, 36, 26, .05), 0 16px 30px -22px rgba(120, 86, 34, .55);
}
.yr-obek-simge {
  width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%;
  font-size: 22px; line-height: 1;
  background: radial-gradient(circle at 35% 30%, #FFF8E8, #F1E3C4);
  border: 1px solid var(--altin-soluk);
}
.yr-obek h2 {
  margin: 4px 0 0; font-family: var(--yazi-baslik), Georgia, serif;
  font-size: 18px; font-weight: 700; letter-spacing: .2px; line-height: 1.25;
  color: var(--defter-koyu);
}
.yr-obek p { margin: 0; font-size: 12.5px; line-height: 1.4; color: var(--ikinci); }
.yr-obek-rz {
  margin-top: 6px; padding: 5px 13px; border-radius: 999px;
  font: 600 12.5px var(--yazi-metin); font-variant-numeric: tabular-nums; white-space: nowrap;
  background: rgba(47, 107, 74, .1); color: var(--metin-basari);
  border: 1px solid rgba(47, 107, 74, .22);
}
.yr-obek-ay .yr-obek-rz { background: rgba(44, 98, 143, .1); color: var(--metin-bilgi);
  border-color: rgba(44, 98, 143, .22); }
.yr-obek-elde .yr-obek-rz { background: rgba(168, 133, 74, .16); color: var(--metin-uyari);
  border-color: var(--altin-soluk); }
/* ---- Önce gün sorulur (2026.653) ----
   Ekran açılınca tek kart: hızlı iki gün (dün, evvelsi gün) ve takvimli
   tarih kutusu. Adreste gün varsa bu kart hiç görünmez. */
.yr-sec { min-height: 60vh; display: grid; place-items: center; padding: 12px 0; }
.yr-obek.yr-sec-kart { width: 100%; max-width: 460px; padding: 22px 20px 20px; gap: 6px; }
.yr-sec-hizlar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; margin-top: 10px; }
.yr-pil.yr-sec-hizli {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 11px 10px; border-radius: 16px; border-color: var(--altin);
}
.yr-sec-hizli b { font-size: 14.5px; font-weight: 700; color: var(--defter-koyu); }
.yr-sec-hizli span { font-size: 11.5px; color: var(--ikinci); }
.yr-sec-el { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; margin-top: 8px; align-items: stretch; }
.yr-sec-el .trh { flex: 1 1 170px; min-width: 0; }
.yr-sec-el .dugme-birincil { flex: 1 1 150px; }

/* ---- Şube seçimi (2026.656) ----
   Tepede Tümü / Merkez / Vagon. Ortak rakamların (banka, kasa, ödeme,
   cari, varlık) üstünde şube seçiliyken küçük bir not durur. */
.yr-subeler { flex: 1 1 100%; margin-top: 10px; overflow-x: auto; }
.yr-subeler .secim-serit { flex-wrap: nowrap; }
/* Beklerken · kartlar solar, tepede "Yükleniyor…" (2026.668 ·
   kullanıcının bildirimi: "takılmış gibi oluyor"). Tepe (tarih ve şube
   düğmeleri) solmaz: basılan düğmenin seçili hâli hemen görünsün. */
.yr-bekliyor .yr-kapaklar,
.yr-bekliyor .yr-obek,
.yr-bekliyor .yr-bn,
.yr-bekliyor [data-gomulu-yer] {
  opacity: .45;
  pointer-events: none;
  transition: opacity .15s ease-out;
}
.yr-yukleniyor {
  position: fixed;
  top: 14px;
  left: 50%;
  z-index: 60;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 14px;
  border: 1px solid var(--altin);
  border-radius: 999px;
  background: var(--yuzey);
  color: var(--metin);
  font-size: 13px;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(74, 52, 32, .18);
}
.yr-donen {
  width: 14px;
  height: 14px;
  border: 2px solid var(--altin);
  border-top-color: var(--vurgu);
  border-radius: 50%;
  animation: yr-don .7s linear infinite;
}
@keyframes yr-don { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .yr-donen { animation-duration: 2s; } }
/* İndirilen dosyada şube şube gün (2026.662 · kullanıcının isteği:
   "WhatsApp'a attığım dosyada da gözüksün, ama sadece Dün ne oldu
   kısmında"). Dosyada betik çalışmıyor; seçim gizli radyo düğmeleriyle
   ve `:checked ~` ile yapılır. Uygulama ekranında bu yapı yoktur. */
.yr-sb-r { position: absolute; opacity: 0; pointer-events: none; }
.yr-sb-pillar {
  display: inline-flex; gap: 2px; padding: 3px; margin: 0 0 12px;
  background: var(--yuzey); border: 1px solid var(--altin);
  border-radius: var(--kose-dugme); max-width: 100%; overflow-x: auto;
}
.yr-sb-pil {
  flex: none; display: inline-flex; align-items: center; min-height: 34px;
  padding: 0 14px; border-radius: calc(var(--kose-dugme) - 3px);
  color: var(--metin); font-size: 13px; white-space: nowrap; cursor: pointer;
}
.yr-sb-v { display: none; }
#yr-sb-0:checked ~ .yr-sb-v0,
#yr-sb-1:checked ~ .yr-sb-v1,
#yr-sb-2:checked ~ .yr-sb-v2,
#yr-sb-3:checked ~ .yr-sb-v3,
#yr-sb-4:checked ~ .yr-sb-v4,
#yr-sb-5:checked ~ .yr-sb-v5,
#yr-sb-6:checked ~ .yr-sb-v6,
#yr-sb-7:checked ~ .yr-sb-v7 { display: grid; }
/* TELEFONDA TAŞMAZ (2026.925 · "telefon ekranında tam net gözükmüyor").
   Şube kutusu ızgaranın tek sütununa düşüyor, içindeki kartlar ve
   düğmeler sütunu ekrandan taşırıyordu. Kutu bütün satırı alır, içi de
   ana ızgaranın aynısıdır. */
.yr-sb { grid-column: 1 / -1; min-width: 0; }
.yr-sb-v { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.yr-sb-pillar { display: flex; }
#yr-sb-0:checked ~ .yr-sb-pillar label[for="yr-sb-0"],
#yr-sb-1:checked ~ .yr-sb-pillar label[for="yr-sb-1"],
#yr-sb-2:checked ~ .yr-sb-pillar label[for="yr-sb-2"],
#yr-sb-3:checked ~ .yr-sb-pillar label[for="yr-sb-3"],
#yr-sb-4:checked ~ .yr-sb-pillar label[for="yr-sb-4"],
#yr-sb-5:checked ~ .yr-sb-pillar label[for="yr-sb-5"],
#yr-sb-6:checked ~ .yr-sb-pillar label[for="yr-sb-6"],
#yr-sb-7:checked ~ .yr-sb-pillar label[for="yr-sb-7"] {
  background: var(--vurgu); color: var(--yuzey); font-weight: 600;
}
.yr-ortak {
  display: inline-block; margin-top: 6px; padding: 2px 9px; border-radius: 999px;
  background: rgba(44, 98, 143, .09); color: var(--metin-bilgi);
  font-size: 11px; font-weight: 600; font-style: normal;
}
.yr-ortak-sube { background: rgba(47, 107, 74, .1); color: var(--metin-basari); }
.yr-tl h3 + .yr-ortak { margin: 2px 0 4px; }

/* Gömülü ekran (Nakit Akış · Günlük Mizan · 2026.654) · ekranın kendi
   sayfa kabının iç boşluğu raporun boşluğuyla üst üste binmesin. */
.yr-gomulu > .sayfa-icerik { padding: 0; }

/* Geri düğmesi kartın İÇİNDE, sol üstte. */
.yr-obek .yr-geri { position: absolute; left: 10px; top: 10px; }
.yr-geri {
  width: 38px; height: 38px; flex: none; border-radius: 50%; cursor: pointer;
  touch-action: manipulation; display: grid; place-items: center;
  background: var(--kart-kagit); border: 1px solid var(--altin);
  color: var(--ikinci); font-size: 24px; line-height: 1; padding: 0 3px 3px 0;
  box-shadow: 0 4px 10px -6px rgba(120, 86, 34, .6);
}
.yr-geri:hover { background: #FBF3E2; }
.yr-geri:active { transform: scale(.94); }

/* ---- Kapak kartları ---- */
.yr-kapaklar { display: grid; gap: 10px; margin-top: 12px; }
.yr-kapak {
  position: relative; display: flex; align-items: center; gap: 13px; width: 100%;
  padding: 15px 16px; text-align: left; cursor: pointer; touch-action: manipulation;
  border: 1.5px solid transparent; border-radius: 20px;
  background: linear-gradient(var(--kart-kagit), var(--kart-kagit)) padding-box,
    var(--yr-altin-kenar) border-box;
  color: inherit; font: inherit;
  box-shadow: 0 1px 2px rgba(51, 36, 26, .04), 0 12px 26px -20px rgba(120, 86, 34, .55);
  transition: box-shadow .12s, transform .12s;
}
a.yr-kapak { text-decoration: none; }
.yr-kapak:hover, .yr-kapak:focus-visible {
  box-shadow: 0 2px 4px rgba(51, 36, 26, .06), 0 16px 30px -20px rgba(51, 36, 26, .6);
}
.yr-kapak:active { transform: scale(.985); }
.yr-kapak-simge {
  width: 48px; height: 48px; flex: none; display: grid; place-items: center;
  border-radius: 15px; font-size: 24px; line-height: 1;
  background: var(--oyuk); border: 1px solid var(--altin-soluk);
}
.yr-kapak-govde { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.yr-kapak-ad {
  font-family: var(--yazi-baslik), Georgia, serif; font-size: 16.5px; font-weight: 700;
  letter-spacing: .2px; line-height: 1.25; color: var(--defter-koyu);
}
.yr-kapak-alt { font-size: 12.5px; line-height: 1.4; color: var(--ikinci); }
.yr-kapak-oz {
  margin-top: 5px; font-size: 15px; font-weight: 600; color: var(--vurgu);
  font-variant-numeric: tabular-nums;
}
.yr-kapak-oz span { font-size: 12.5px; font-weight: 400; color: var(--ikinci); }
.yr-kapak-oz .yr-artan { color: var(--metin-basari); font-weight: 500; }
.yr-kapak-oz .yr-azalan { color: var(--metin-hata); font-weight: 500; }
.yr-kapak-ok { margin-left: auto; flex: none; font-size: 26px; line-height: 1; color: var(--ikinci); }

/* ---- Bento ızgarası ---- */
.yr-bn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.yr-t2, .yr-t4 { grid-column: span 2; }
/* ALTIN KENAR (2026.641 · "premium olsun, gold kenarlıklı"). Kenar
   bir degradedir; üç katman: döşemenin rengi (--yr-ic, yarı saydam
   olabilir) · kâğıt zemini · kenardaki altın. Kâğıt katmanı olmasa yarı
   saydam renkli döşemede altın degrade içten görünürdü. */
:root {
  --yr-altin-kenar: linear-gradient(135deg, #D9BE84, #B8955A 38%, #EBD6A6 62%, #A8854A);
}
.yr-tl {
  --yr-ic: linear-gradient(transparent, transparent);
  position: relative; min-width: 0; padding: 15px 16px; border-radius: 20px;
  border: 1.5px solid transparent;
  background: var(--yr-ic) padding-box,
    linear-gradient(var(--kart-kagit), var(--kart-kagit)) padding-box,
    var(--yr-altin-kenar) border-box;
  box-shadow: 0 1px 2px rgba(51, 36, 26, .04), 0 12px 26px -20px rgba(120, 86, 34, .5);
}
.yr-tl h3 {
  margin: 0 0 2px; font: 600 12px var(--yazi-metin);
  letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci);
}
/* Döşemedeki büyük rakam KURUŞSUZDUR (bkz. yonetim-raporu.js · tlTam):
   dar bir döşemede "46.905,50 ₺" iki satıra düşüyor ve kuruş o rakamda
   zaten bir şey söylemiyor. */
.yr-buyuk {
  margin: 6px 0 3px; font: 700 clamp(19px, 5.4vw, 28px)/1.15 var(--yazi-metin);
  letter-spacing: -.6px; font-variant-numeric: tabular-nums;
}
.yr-alt { font-size: 11.5px; line-height: 1.35; color: var(--ikinci); }
/* Sayfadaki TEK dolu döşeme · günün kasası. */
.yr-tl-dolu {
  background: linear-gradient(140deg, var(--vurgu), var(--vurgu-koyu));
  border-color: transparent; color: #F7EEDC;
}
.yr-tl-dolu h3 { color: rgba(247, 238, 220, .72); }
.yr-tl-dolu .yr-alt { color: rgba(247, 238, 220, .78); }
.yr-tl-iyi { --yr-ic: linear-gradient(rgba(47, 107, 74, .08), rgba(47, 107, 74, .08)); }
.yr-tl-iyi .yr-buyuk { color: var(--metin-basari); }
.yr-tl-kotu { --yr-ic: linear-gradient(rgba(164, 36, 48, .07), rgba(164, 36, 48, .07)); }
.yr-tl-kotu .yr-buyuk { color: var(--metin-hata); }
.yr-tl-mavi { --yr-ic: linear-gradient(rgba(44, 98, 143, .07), rgba(44, 98, 143, .07)); }
.yr-tl-mavi .yr-buyuk { color: var(--metin-bilgi); }
/* Tutmayan toplam · turuncu (2026.650): net satış + cari tahsilat ile
   ödeme yöntemlerinin toplamı eşit değil. */
.yr-tl-uyari { --yr-ic: linear-gradient(rgba(208, 135, 0, .09), rgba(208, 135, 0, .09)); }
.yr-tl-uyari .yr-alt { color: var(--metin-uyari); font-weight: 600; }
.yr-dahil-degil { margin-top: 4px; font-style: italic; }
/* Ödeme yöntemleri denkliği (2026.651) · iki toplam alt alta, ince. */
.yr-toplam.yr-toplam-ince { margin-top: 3px; padding-top: 0; border-top: 0; }
.yr-toplam.yr-toplam-ince b { font-size: 14px; }
.yr-denklik { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--ayirici); }
.yr-satir-bilgi td { color: var(--ikinci); font-style: italic; }
/* BRÜT SATIŞ YEŞİL (2026.641 · "brüt satış tepede yeşil"). */
.yr-tl-yesil { --yr-ic: linear-gradient(140deg, #3B8159, #1F5238); color: #F4F1E4; }
.yr-tl-yesil h3 { color: rgba(244, 241, 228, .78); }
.yr-tl-yesil .yr-alt { color: rgba(244, 241, 228, .85); }
/* İkram ile iskonto telefonda yan yana (birer sütun), genişte ikişer. */
.yr-t1 { grid-column: span 1; }

/* ---- Basılabilir döşeme (2026.641) ----
   Kullanıcının isteği: "tıklanabilir kartlar belli olsun basılabildiği."
   Sağ üstte altın halkalı bir ok, üstüne gelince kalkar, basınca çöker. */
.yr-tik {
  display: block; width: 100%; text-align: left; color: inherit; font: inherit;
  cursor: pointer; touch-action: manipulation; text-decoration: none;
  transition: transform .12s, box-shadow .12s;
}
.yr-tik:hover, .yr-tik:focus-visible {
  box-shadow: 0 2px 4px rgba(51, 36, 26, .06), 0 18px 30px -18px rgba(120, 86, 34, .7);
}
.yr-tik:active { transform: scale(.98); }
/* Ok yalnız başlık satırına biner; rakam döşemenin tüm enini kullanır. */
.yr-tik h3 { padding-right: 34px; }
.yr-t1 .yr-buyuk { font-size: clamp(17px, 5vw, 26px); white-space: nowrap; }
.yr-tik-ok {
  position: absolute; top: 12px; right: 12px; width: 28px; height: 28px;
  display: grid; place-items: center; border-radius: 50%;
  font-size: 20px; line-height: 1; padding-bottom: 2px; padding-left: 2px;
  color: var(--ikinci); background: rgba(255, 253, 248, .9);
  border: 1px solid var(--altin);
}
.yr-kasa-bilgi {
  margin-top: 9px; padding-top: 9px; border-top: 1px dashed var(--ayirici);
  font-size: 12.5px; line-height: 1.45; color: var(--gri-koyu);
}
.yr-kasa-sebep { font-style: italic; margin-bottom: 3px; }
.yr-kasa-kim b { font-weight: 600; color: var(--metin); }

/* ---- Tam ekran panel (2026.641) ----
   Ekranda betikle açılır (.yr-panel-acik); indirilen dosyada `:target`
   ile. İkisinde de sayfanın tamamını kaplar, tepede geri düğmesi. */
.yr-panel { display: none; }
.yr-panel-acik {
  display: block; position: fixed; inset: 0; z-index: 1200;
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  background: var(--zemin);
  padding: calc(env(safe-area-inset-top, 0px) + 14px) 14px 28px;
}
.yr-panel-ic { max-width: 860px; margin: 0 auto; }
.yr-panel .yr-obek { margin-top: 0; }
.yr-liste-baslikli th {
  padding: 0 0 7px; border-bottom: 1px solid var(--kenar); text-align: left;
  font: 600 11px var(--yazi-metin); letter-spacing: .04em; text-transform: uppercase;
  color: var(--ikinci);
}
.yr-liste-baslikli th.yr-t { text-align: right; padding-left: 12px; white-space: normal; }
.yr-liste-baslikli td + td { padding-left: 12px; }
.yr-yatis { font-weight: 500; }
.yr-yatis .yr-not { text-align: right; }
.yr-yatis-gecti { color: var(--ikinci); }
.yr-kim { font-weight: 500; }
.yr-imza { font-size: 12px; font-weight: 600; color: var(--ikinci); white-space: nowrap; }
.yr-imza-var { color: var(--metin-basari); }
.yr-imza-yok { color: var(--metin-hata); }
.yr-satir-kotu td { background: rgba(164, 36, 48, .07); color: var(--metin-hata); }
.yr-satir-kotu td:first-child { border-radius: 8px 0 0 8px; padding-left: 6px; }
.yr-satir-kotu td:last-child { border-radius: 0 8px 8px 0; padding-right: 6px; }

/* ---- Halka göstergesi ---- */
.yr-halka { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.yr-halka svg { flex: none; }
.yr-halka-yazi { min-width: 0; }
.yr-hk-iz { fill: none; stroke: var(--oyuk); stroke-width: 9; }
.yr-hk-dolu { fill: none; stroke-width: 9; stroke-linecap: round;
  transform: rotate(-90deg); transform-origin: 50% 50%; }
.yr-hk-orta {
  font: 700 15px var(--yazi-metin); fill: var(--metin); text-anchor: middle;
  font-variant-numeric: tabular-nums;
}

/* ---- Mini eğri (dolu döşemenin içinde) ---- */
.yr-spark { display: block; width: 100%; height: 44px; margin-top: 10px; overflow: visible; }

/* ---- Büyük grafik ---- */
.yr-grafik { position: relative; margin-top: 8px; touch-action: pan-y; }
.yr-grafik svg { display: block; width: 100%; height: auto; overflow: visible; }
.yr-eksen { stroke: var(--ayirici); stroke-width: 1; }
.yr-hedef-cizgi { stroke: var(--altin-koyu); stroke-width: 2; stroke-dasharray: 4 4; opacity: .9; }
.yr-bar { fill: var(--vurgu); }
.yr-bar-hs { fill: #C3868F; }
.yr-bar-bos { fill: var(--oyuk); }
.yr-sutun-secili .yr-bar { fill: var(--vurgu-koyu); }
.yr-sutun-secili .yr-bar-hs { fill: #A85B67; }
.yr-etiket { font: 400 9.5px var(--yazi-metin); fill: var(--ikinci); }
.yr-etiket-kalin { font: 700 10px var(--yazi-metin); fill: var(--metin); }
.yr-ipucu {
  position: absolute; z-index: 3; opacity: 0; pointer-events: none;
  transform: translate(-50%, -112%); transition: opacity .1s;
  padding: 7px 10px; border-radius: 9px; white-space: nowrap; font-size: 12px;
  background: var(--metin); color: var(--kart-kagit);
  box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .6);
}
.yr-ipucu b { margin-left: 5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.yr-lejant {
  display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px;
  font-size: 11.5px; color: var(--ikinci);
}
.yr-lejant i {
  display: inline-block; width: 10px; height: 10px; margin-right: 5px;
  border-radius: 3px; vertical-align: -1px;
}

/* ---- Satır listeleri ---- */
.yr-sr {
  display: flex; align-items: center; gap: 10px; padding: 8px 0;
  border-bottom: 1px solid var(--ayirici); font-size: 13.5px;
}
.yr-sr:last-of-type { border-bottom: 0; }
.yr-sr-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr-sr b {
  margin-left: auto; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.yr-nokta { width: 6px; height: 6px; flex: none; border-radius: 50%; }
.yr-cubuk {
  height: 5px; margin: -3px 0 5px; overflow: hidden;
  background: var(--oyuk); border-radius: 3px;
}
.yr-cubuk i { display: block; height: 100%; border-radius: 3px; }
.yr-toplam {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  margin-top: 11px; padding-top: 10px; border-top: 1px dashed var(--ayirici);
  font-size: 13px; color: var(--ikinci);
}
.yr-toplam b {
  font: 700 17px var(--yazi-metin); color: var(--metin); font-variant-numeric: tabular-nums;
}

/* ---- Harcama çubukları ---- */
.yr-h-satir { padding: 10px 0; border-bottom: 1px solid var(--ayirici); }
.yr-h-satir:last-of-type { border-bottom: 0; }
.yr-h-ust { display: flex; align-items: baseline; gap: 10px; font-size: 13.5px; }
.yr-h-ad { min-width: 0; }
.yr-h-tut {
  margin-left: auto; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.yr-h-hat {
  position: relative; height: 10px; margin: 7px 0 5px;
  background: var(--oyuk); border-radius: 5px;
}
.yr-h-olan {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: var(--altin-koyu); border-radius: 5px 0 0 5px;
}
.yr-h-asan {
  position: absolute; top: 0; bottom: 0; background: var(--vurgu);
  border-radius: 0 5px 5px 0; box-shadow: -2px 0 0 0 var(--kart-kagit);
}
.yr-h-olcu {
  position: absolute; top: -3px; bottom: -3px; width: 2px;
  background: var(--metin); border-radius: 2px;
}
.yr-h-dip { display: flex; gap: 10px; font-size: 11.5px; color: var(--ikinci); }
.yr-h-durum { margin-left: auto; font-weight: 600; white-space: nowrap; }
.yr-h-artti .yr-h-durum { color: var(--metin-hata); }
.yr-h-azaldi .yr-h-durum { color: var(--metin-basari); }
.yr-h-esit .yr-h-durum { color: var(--gri-koyu); }

/* ---- Tablolar ---- */
.yr-liste { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-top: 8px; }
.yr-liste td { padding: 8px 0; border-bottom: 1px solid var(--ayirici); vertical-align: top; }
.yr-liste tr:last-child td { border-bottom: 0; }
/* .yr-liste td'nin sıfır yan boşluğu .yr-t / .yr-adet'i eziyordu
   (seçici daha güçlü); "%100" ile tutar yapışıyordu (2026.642). */
.yr-liste td.yr-t, .yr-liste td.yr-adet { padding-left: 12px; }
.yr-t {
  text-align: right; padding-left: 10px; font-weight: 600; white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.yr-adet {
  text-align: right; padding-left: 12px; color: var(--ikinci); white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.yr-etiketcik {
  display: inline-block; margin-left: 6px; padding: 2px 7px; border-radius: 999px;
  background: var(--oyuk); color: var(--gri-koyu); font-size: 10.5px; vertical-align: 1px;
}
.yr-not { display: block; margin-top: 1px; font-size: 11.5px; color: var(--ikinci); }
.yr-bos { margin: 8px 0 0; font-size: 12.5px; color: var(--ikinci); }

/* ---- "Daha fazla" kutusu (2026.640) ----
   <details> betiksiz açılıp kapanır: indirilen dosya WhatsApp
   önizlemesinde de çalışır. Kapalıyken "25 ödeme daha", açıkken
   "Daha az göster" yazar. */
.yr-daha > summary {
  list-style: none; cursor: pointer; touch-action: manipulation;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  margin-top: 8px; padding: 9px 12px; border-radius: 999px;
  background: var(--yuzey); border: 1px dashed var(--kenar);
  font: 500 12.5px var(--yazi-metin); color: var(--gri-koyu);
}
.yr-daha > summary::-webkit-details-marker { display: none; }
.yr-daha > summary::after { content: "\25BE"; font-size: 12px; }
.yr-daha[open] > summary::after { content: "\25B4"; }
.yr-daha > summary:hover { background: var(--oyuk); }
.yr-daha-kapat { display: none; }
.yr-daha[open] .yr-daha-ac { display: none; }
.yr-daha[open] .yr-daha-kapat { display: inline; }
.yr-daha[open] > summary { margin-bottom: 4px; }
.yr-daha .yr-liste { margin-top: 0; }
.yr-daha-ic { margin-top: 2px; }
/* İki ayrı tabloda sütun kaymasın: adet sütunu sabit genişlikte. */
.yr-liste-adetli .yr-adet { width: 4.2em; }
.yr-yukle {
  border: 1px solid var(--kenar); background: var(--yuzey); color: var(--gri-koyu);
  border-radius: 999px; cursor: pointer; touch-action: manipulation;
  padding: 6px 11px; white-space: nowrap; font: 500 12px var(--yazi-metin);
}
.yr-yukle:hover { background: var(--oyuk); }
.yr-kart-not { margin-left: auto; font-size: 11.5px; color: var(--ikinci); }

/* ---- İndirilen dosyada betik yoktur (2026.651) ----
   WhatsApp'ın belge önizlemesi JavaScript çalıştırmıyor; açma işini
   `:target` yapıyor. Bu kurallar ekranda işe yaramaz (.yr-blok yoktur)
   ama dosya biçimi bu bölümden kopyalandığı için burada durur. */
.yr-blok { display: none; }
.yr-blok:target { display: block; }
html:has(.yr-blok:target) .yr-kapaklar { display: none; }
/* Paneller öbeklerin kardeşi; açıkken kapaklar ve başlık gizlenir. */
.yr-panel:target { display: block; }
html:has(.yr-panel:target) .yr-kapaklar,
html:has(.yr-panel:target) .yr-rapor-basi { display: none; }
/* DOSYA DA TEPEDEN AÇILIR (2026.641 · "sayfa açılınca tepeden başlamalı,
   biraz alttan başlıyor"). Tarayıcı çapaya atlarken öbeğin tepesini
   ekranın tepesine getiriyor ve üstündeki başlık görünmez oluyordu.
   Ekran boyu kadar pay bırakılınca atlama sayfanın başında durur. */
.yr-blok, .yr-panel, .yr-kapaklar { scroll-margin-top: 100vh; }
a.yr-geri { text-decoration: none; }
/* Dosyadaki grafik iki boy gider; seçimi CSS yapar. */
.yr-g-dar, .yr-g-genis { display: none; }
.yr-g-dar { display: block; }

/* ---- Rapor kâğıdı (2026.926) ----
   "Dün ne oldu" tek uzun kâğıt: logo ve künye, altında alt alta eşit
   sütunlu tablolar. Satırlar tek satır ve aynı boyda; uzun yazı üç
   noktayla kesilir, ayrıntısı panelde. Gün Sonu kâğıdının renkleri. */
.yr-kagit {
  --yk-cizgi: color-mix(in srgb, var(--altin) 38%, transparent);
  --yk-bas: #F3EADA; --yk-h: 34px;
  grid-column: 1 / -1; min-width: 0;
  background: var(--kart-kagit, #FDFAF4); border: 1px solid var(--altin-soluk, #DCC9A2);
  border-radius: 12px; padding: 18px 20px 14px;
  box-shadow: 0 18px 40px -26px rgba(90, 60, 20, .45);
  font-size: 13px; line-height: 1.2; color: var(--metin);
}
.yr-k-ust {
  display: grid; grid-template-columns: 1fr 2fr 1fr; align-items: center;
  height: 84px; border: 1px solid var(--yk-cizgi); background: #F7EFDF;
}
.yr-k-logo {
  justify-self: center; width: 100%; height: 56px;
  background: url("../1-gorseller/logo.png") center / contain no-repeat;
}
.yr-k-ad, .yr-k-tr { text-align: center; font-family: var(--yazi-baslik), Georgia, serif; font-weight: 700; color: var(--vurgu); }
.yr-k-ad { font-size: 20px; letter-spacing: .06em; text-transform: uppercase; }
.yr-k-tr { font-size: 16px; }
.yr-k-ad small, .yr-k-tr small {
  display: block; margin-top: 3px; font: 600 10.5px var(--yazi-metin, Inter), sans-serif;
  letter-spacing: .1em; color: var(--ikinci); text-transform: uppercase;
}
.yr-k-tr small { letter-spacing: .02em; text-transform: none; font-size: 11px; }
.yr-k-tablo { width: 100%; border-collapse: collapse; table-layout: fixed; margin-top: 12px; }
.yr-k-kunye { margin-top: 0; }
.yr-k-kunye tr:first-child td { border-top: 0; }
.yr-k-tablo td, .yr-k-tablo th {
  height: var(--yk-h); padding: 0 9px; border: 1px solid var(--yk-cizgi);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  text-align: right; font-variant-numeric: tabular-nums;
}
.yr-k-tablo td:first-child, .yr-k-tablo th:first-child { text-align: left; }
.yr-k-tablo th, .yr-k-tablo td.yr-k-e {
  background: var(--yk-bas); font: 700 10.5px var(--yazi-baslik), Georgia, serif;
  letter-spacing: .08em; text-transform: uppercase; color: #5B4632;
}
.yr-k-kunye td { font-weight: 600; }
.yr-k-kunye td.yr-k-e { text-align: left; }
.yr-k-tablo td[colspan] { text-align: left; }
.yr-k-kalin td, .yr-k-toplam td { font-weight: 700; background: #FBF4E6; }
.yr-k-vurgu td { background: #FBF0F0; }
.yr-k-yesil { color: var(--metin-basari, #2F6B4A); }
.yr-k-kirmizi { color: var(--metin-hata, #A8323E); }
.yr-k-soluk { color: var(--ikinci); font-weight: 400; }
.yr-k-rozet { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: 10.5px; font-weight: 600; }
.yr-k-iyi { background: #E5F0E8; color: var(--metin-basari, #2F6B4A); }
.yr-k-kotu { background: #F6E1E3; color: var(--metin-hata, #A8323E); }
.yr-k-tik { cursor: pointer; }
.yr-k-tik td:first-child::after { content: "›"; margin-left: 6px; font-weight: 700; color: var(--altin-koyu, #9C7A3F); }
.yr-k-tik:hover td, .yr-k-tik:focus-visible td { background: #F8EEDC; }
.yr-k-tik:focus-visible { outline: 2px solid var(--altin); outline-offset: -2px; }
a.yr-k-a { display: block; color: inherit; text-decoration: none; line-height: var(--yk-h); margin: 0 -9px; padding: 0 9px; overflow: hidden; text-overflow: ellipsis; }
.yr-k-tik td:first-child a.yr-k-a::after { content: "›"; margin-left: 6px; font-weight: 700; color: var(--altin-koyu, #9C7A3F); }
.yr-k-tik td:first-child:has(a.yr-k-a)::after { content: none; }
.yr-k-ipucu { margin-top: 10px; text-align: center; font-size: 11.5px; color: var(--ikinci); }
.yr-k-alt { display: block; font-size: 11px; color: var(--ikinci); font-weight: 400; white-space: normal; }

/* Panel · ortada pencere, telefonda alttan. Kâğıt yerinde durur. */
.yr-kp { display: none; }
.yr-kp-acik, .yr-kp:target {
  display: flex; position: fixed; inset: 0; z-index: 1200;
  align-items: center; justify-content: center; padding: 16px;
}
.yr-kp-perde { position: absolute; inset: 0; background: rgba(51, 36, 26, .42); cursor: pointer; }
.yr-kp-kutu {
  --yk-cizgi: color-mix(in srgb, var(--altin) 38%, transparent); --yk-bas: #F3EADA; --yk-h: 32px;
  position: relative; width: 100%; max-width: 620px; max-height: 82vh;
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--kart-kagit, #FDFAF4); border: 1px solid var(--altin-soluk, #DCC9A2);
  border-radius: 12px; box-shadow: 0 24px 60px -20px rgba(40, 25, 10, .55);
  font-size: 13px; line-height: 1.25; color: var(--metin);
}
.yr-kp-ust {
  display: flex; align-items: center; gap: 10px; padding: 11px 12px 11px 16px;
  background: #F7EFDF; border-bottom: 1px solid var(--yk-cizgi);
}
.yr-kp-baslik { flex: 1; min-width: 0; }
.yr-kp-baslik b { display: block; font: 700 16px var(--yazi-baslik), Georgia, serif; color: var(--vurgu); }
.yr-kp-baslik span { font-size: 11.5px; color: var(--ikinci); }
.yr-kp-x {
  flex: none; width: 34px; height: 34px; border: 0; border-radius: 8px; background: none;
  font-size: 17px; line-height: 34px; text-align: center; color: var(--ikinci);
  cursor: pointer; text-decoration: none;
}
.yr-kp-x:hover { background: rgba(0, 0, 0, .05); }
.yr-kp-ic { padding: 2px 14px 16px; overflow-y: auto; overscroll-behavior: contain; }
.yr-kp-ic .yr-bos { margin: 14px 0 4px; }
/* Panelde uzun yazı alt satıra iner (sebep, ürünler); boy en az satır boyu. */
.yr-kp .yr-k-tablo td { height: var(--yk-h); padding-top: 6px; padding-bottom: 6px; }
.yr-kp .yr-k-tablo td:first-child, .yr-kp .yr-k-tablo td[colspan],
.yr-kp .yr-k-y3 td:nth-child(3) { white-space: normal; }
.yr-k-metin td { line-height: 1.4; }
/* Dosyada panel açıkken gün öbeği altta görünür kalır. */
html:has(.yr-kp:target) #yr-b-gun { display: block; }
html:has(.yr-kp:target) .yr-kapaklar { display: none; }
@media (max-width: 640px) {
  .yr-kagit { --yk-h: 32px; padding: 10px 8px 12px; border-radius: 10px; font-size: 11.5px; }
  .yr-k-ust { height: 66px; }
  .yr-k-logo { height: 40px; }
  .yr-k-ad { font-size: 14.5px; letter-spacing: .03em; }
  .yr-k-ad small { font-size: 8.5px; }
  .yr-k-tr { font-size: 13px; }
  .yr-k-tablo td, .yr-k-tablo th { padding: 0 5px; }
  a.yr-k-a { margin: 0 -5px; padding: 0 5px; }
  .yr-k-tablo th, .yr-k-tablo td.yr-k-e { font-size: 9px; letter-spacing: .03em; }
  .yr-k-tik td:first-child::after, .yr-k-tik td:first-child a.yr-k-a::after { margin-left: 3px; }
  .yr-kp-acik, .yr-kp:target { align-items: flex-end; padding: 0; }
  .yr-kp-kutu { max-width: none; max-height: 78vh; border-radius: 14px 14px 0 0; font-size: 12px; }
  .yr-kp-ic { padding: 0 8px calc(env(safe-area-inset-bottom, 0px) + 16px); }
  .yr-kp .yr-k-tablo td { padding-left: 5px; padding-right: 5px; }
}
@media print {
  .yr-kagit { box-shadow: none; }
  .yr-k-tablo tr { break-inside: avoid; }
  .yr-k-ipucu, .yr-k-tik td:first-child::after { display: none; }
}

/* ---- Geniş ekran ---- */
@media (min-width: 760px) {
  .yr-tepe { padding: 4px 0 6px; }
  .yr-tepe h2 { font-size: 23px; }
  .yr-ozet { font-size: 15px; padding: 13px 18px; }
  .yr-obek { margin: 18px 0 14px; padding: 20px 64px 16px; }
  .yr-obek .yr-geri { left: 14px; top: 14px; }
  .yr-obek h2 { font-size: 21px; }
  .yr-obek p { font-size: 13.5px; }
  .yr-t1 { grid-column: span 2; }
  .yr-spark { height: 60px; }
  .yr-panel-acik { padding: 24px 22px 36px; }
  .yr-kapaklar { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .yr-kapak { flex-direction: column; align-items: flex-start; gap: 12px; padding: 20px 44px 20px 20px; }
  .yr-kapak-ok { position: absolute; top: 20px; right: 18px; margin: 0; }
  .yr-kapak-ad { font-size: 18px; }
  .yr-bn { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .yr-sb-v { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
  .yr-t4 { grid-column: span 4; }
  .yr-tl { padding: 17px 19px; }
  .yr-liste { font-size: 14px; }
  .yr-g-dar { display: none; }
  .yr-g-genis { display: block; }
}

/* ---- Yazdırma ---- */
@media print {
  .yr-tepe-araclar, .yr-yukle, .yr-kapaklar, .yr-geri, .yr-ipucu { display: none; }
  .yr-blok { display: block; }
  .yr-bn { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .yr-tl { break-inside: avoid; page-break-inside: avoid; box-shadow: none; }
  .yr-obek { break-after: avoid; page-break-after: avoid; }
  .yr-tl-dolu, .yr-tl-yesil { background: none; color: var(--metin); border: 1px solid var(--kenar); }
  .yr-tl-dolu h3, .yr-tl-dolu .yr-alt, .yr-tl-yesil h3, .yr-tl-yesil .yr-alt { color: var(--ikinci); }
  .yr-tik-ok { display: none; }
  /* Kâğıtta kapalı kutu da açık basılsın (destekleyen tarayıcıda). */
  .yr-daha > summary { display: none; }
  .yr-daha::details-content { content-visibility: visible; display: contents; }
}

/* ---------- Tekrarlayan Ödeme ve Gelirler · kural seçimleri ----------
   Form soruyu soruyor, kullanıcı düğmeye basıyor: haftanın günü, ayın
   günleri, kaçıncı hafta. Yazı kutusu yerine düğme, çünkü seçenek belli
   ve sayısı az; yazılan bir sayının doğru olup olmadığını kullanıcı
   ancak kaydettikten sonra anlardı. */
.tk-oyuk {
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 1.75);
  margin-bottom: calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
}

.tk-baslik {
  margin-bottom: var(--bosluk);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .7;
}

.tk-cipler {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * .75);
}

.tk-cipler .cip {
  border: 1px solid var(--kenar);
  background: var(--yuzey);
  cursor: pointer;
}

.tk-cipler .cip-secili {
  border-color: var(--vurgu);
  background: var(--vurgu);
  color: var(--yuzey);
}

/* Ayın günleri · 31 düğme, dar ekranda da tek ekrana sığsın. */
.tk-gun-agi {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(38px, 1fr));
  gap: calc(var(--bosluk) * .6);
}

.tk-gun {
  justify-content: center;
  padding: 0;
  font-variant-numeric: tabular-nums;
}

.tk-not {
  margin: var(--bosluk) 0 0;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.tk-onizleme {
  margin-top: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.75);
  border: 1px dashed var(--kart-kenar);
  border-radius: var(--kose-kutu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--metin);
}

.tk-satir-alt {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .6;
}

/* ---------- Tekrarlayan Ödeme ve Gelirler · tablonun aralıkları ------
   2026.492 · kullanıcının isteği: "satır aralıkları daha geniş, sütun
   aralıkları daha kısa olsun".

   Bu tablonun satırı çoğu zaman İKİ SATIRDIR: adın altında gider
   grubu yazar (.tk-satir-alt). Ortak ölçü (--tablo-satir · 36px) tek
   satırlık tablolara göre verilmiş; burada iki satır hücreye sığıyor
   ve yazılar birbirine değiyordu. Satır yükselir, yatay boşluk
   daralır — böylece genişleyen satır tabloyu yana taşırmaz.

   YALNIZ BU EKRAN · ortak .tablo kuralına dokunulmaz; sınıf tablonun
   sarmalına verilir (4-ekranlar/3-tanimlar/tekrarlayan-odeme-ve-gelirler.js).

   YALNIZ GENİŞ EKRAN · 900px altında tablo karta dönüşür ve hücrenin
   yüksekliği de boşluğu da oradaki kural belirler
   (2-tasarim/bilesenler.css). Media sorgusu olmadan buradaki ölçü
   oraya sızar ve kart bozulur. */
@media (min-width: 900px) {
  /* Tablo bir A4 sayfası kadar geniştir, daha fazla değil (kullanıcının
     kararı: "a4 gibi olsun"). Geniş ekranda beş sütun 1600px'e
     yayılıyor ve tutar ile tarih arasında avuç içi kadar boşluk
     kalıyordu; göz satırı soldan sağa takip edemiyordu. Ölçü tek
     yerden okunur: --kagit-en · 2-tasarim/degiskenler.css.

     ORTALI · 2026.492 · kullanıcının kararı: "hepsi ortala". Tablo
     önce sola yaslı bırakılmıştı; Hesaplar ile Depolar ortalanınca üç
     ekran iki ayrı yere bakar oldu. Üçü de aynı hizada durur. */
  .tk-tablo,
  /* Süzgeç şeridi tablonun üstünde durur ve onunla aynı eni almalıdır;
     yoksa "Gider · Gelir" solda, "Öngörülen ekle" sağda, tablo ortada
     kalıyor ve üçü ayrı sayfadan gelmiş gibi duruyor. */
  .iskelet-tekrarlayan .suzgec {
    width: 100%;
    max-width: var(--kagit-en);
    margin-left: auto;
    margin-right: auto;
  }

  .tk-tablo .tablo tbody td {
    height: calc(var(--tablo-satir) + var(--bosluk) * 2);
    padding: calc(var(--bosluk) * .75) var(--bosluk);
  }

  .tk-tablo .tablo thead th { padding: 0 var(--bosluk); }
}

/* ---- ÖNGÖRÜLENLER · NAKİT AKIŞ'LA AYNI DÜZEN (2026.675) ----
   Kullanıcının isteği: "dikey Nakit Akış'la aynı tarzda olmalı".
   Şerit kuşağın altında (.tk-serit · .na-serit'in görünüşü); tablo kartı
   ona yapışık, A4 eninde, sola yaslı. Tablo sade: başlık bandı kâğıttan
   bir ton koyu, yazısı koyu ve kalın; satırlar tek saç teliyle ayrılır,
   zebra yok. Dar ekranda satırlar kart olmaya devam eder. */
.tk-serit .secim-serit { flex: none; }
.tk-ekle { display: inline-flex; align-items: center; gap: 6px; }
@media (min-width: 900px) {
  .sayfa-kusak-serit:has(.tk-serit) {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .sayfa-icerik:has(.tk-serbest) { padding-top: 0; padding-left: 0; padding-right: 0; }
  .tk-tablo.tk-minimal {
    max-width: 844px;
    margin: 0 auto 0 0;
    padding: 14px 18px 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .tk-minimal .tablo-kutu {
    border: 1px solid var(--defter-tel-soluk);
    border-radius: 14px;
    background: var(--defter-zemin);
    overflow: hidden;
  }
  .tk-minimal .tablo { background: var(--defter-zemin); border-radius: 0; }
  .tk-tablo.tk-minimal .tablo thead th {
    height: 44px;
    padding: 0 12px;
    background: color-mix(in srgb, var(--altin) 22%, var(--defter-zemin));
    color: color-mix(in srgb, var(--metin) 82%, transparent);
    font-family: inherit;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    border-bottom: 1px solid var(--altin-koyu);
  }
  .tk-tablo.tk-minimal .tablo tbody td {
    height: auto;
    padding: 11px 12px;
    background: var(--defter-zemin);
    font-size: 13px;
    border-bottom: 1px solid var(--defter-tel-soluk);
  }
  .tk-tablo.tk-minimal .tablo tbody tr:last-child td { border-bottom: 0; }
  .tk-tablo.tk-minimal .tablo tbody tr:hover td {
    background: color-mix(in srgb, var(--altin) 10%, var(--defter-zemin));
  }
  .tk-minimal .tablo-tutar { font-weight: 600; }
  .tk-minimal .tablo-dip {
    border-top: 0;
    text-align: left;
    padding: 10px 2px 14px;
    font-size: 12px;
  }
}

/* =====================================================================
   GERİ GETİRİLEN KURALLAR · 2026.150
   ---------------------------------------------------------------------
   2026.133'te panel yeniden yazılırken bu dosyadan yanlışlıkla ~1000
   satır silinmiş: fatura önizlemesi, detay panelleri, künye satırları,
   özet kutuları ve FORM BÖLÜMLERİ. Formlar boşluksuz, fatura listesi
   ızgarasız kalmıştı.

   Buradaki her şey 2026.132'deki hâlinden alındı; yalnız eski panelin
   (.panel-*) kuralları dışarıda bırakıldı — o ekran yeniden yazıldı ve
   yerini .pn-* aldı.
   ===================================================================== */

/* Panel: 16px boşlukla başlayan tam genişlik alan; kaydırılmaz. */

.iskelet-panel {
  display: flex;
  flex-direction: column;
}

/* Masaüstü: dört ölçü tek şeritte, kartlar iki sütunda ve genişlik
   sınırlı. 1920px'lik bir ekranda kartlar iki metre uzamaz. */

@media (min-width: 900px) {
  /* Kapak var: 2560px'lik bir monitörde ölçü kartları ~560px'e gerilir ve
     yapılacak satırının solundaki nokta ile sağındaki rozet arası gözle
     taranamaz. Ortalama da var: kapaklı içerik sola yaslanınca artan pay
     hep sağda birikir ve boşluk kusur gibi durur. Form ekranı da aynı
     ikisini birlikte kullanır (bkz. .iskelet-form). */

  .iskelet-panel {
    max-width: 1640px;
    margin-inline: auto;
  }
}

/* Detay: künye bloğu iki sütun, 900px altında tek sütun. */

/* Künye · detay kartının gövdesi. Tepe kuşağıyla aynı kartın içinde
   durur; iki parça arasında yalnız ince bir ayırıcı vardır. */
.iskelet-detay-kunye {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
}

/* Tepe ve künye birlikte tek kart: ikisi kardeş olduğu için kabı
   sayfanın kendisi kurar — .detay-basi kartın üstü, künye altıdır. */
.detay-basi,
.iskelet-detay-kunye {
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border-left: var(--kart-cerceve);
  border-right: var(--kart-cerceve);
}

.detay-basi {
  border-top: var(--kart-cerceve);
  border-radius: var(--kose-kart) var(--kose-kart) 0 0;
}

.iskelet-detay-kunye {
  border-bottom: var(--kart-cerceve);
  border-radius: 0 0 var(--kose-kart) var(--kose-kart);
  box-shadow: var(--kart-golge);
  margin-bottom: calc(var(--bosluk) * 3);
}

.kunye-deger { color: var(--metin); }

/* Gri tel · kartlardaki iç çerçevenin aynısı, iki parçaya bölünmüş
   hâli: üst yarısı kuşakta, alt yarısı künyede. İkisi birleşince tek
   bir tel gibi görünür. */
.detay-basi,
.iskelet-detay-kunye { position: relative; }

.detay-basi::after,
.iskelet-detay-kunye::after {
  content: "";
  position: absolute;
  border: var(--kart-tel);
  pointer-events: none;
}

.detay-basi::after {
  inset: 3px 3px 0;
  border-bottom: 0;
  border-radius: calc(var(--kose-kart) - 3px) calc(var(--kose-kart) - 3px) 0 0;
}

.iskelet-detay-kunye::after {
  inset: 0 3px 3px;
  border-top: 0;
  border-radius: 0 0 calc(var(--kose-kart) - 3px) calc(var(--kose-kart) - 3px);
}

/* Ayarlar: 24px aralıklı gruplar. */

.iskelet-ayarlar {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 3);
}

@media (min-width: 900px) {
  .iskelet-detay-kunye {
    grid-template-columns: 1fr 1fr;
    column-gap: calc(var(--bosluk) * 4);
  }
}

/* Liste: içerik doğrudan akar; şerit ayrı sınıfla verilir. */

.iskelet-liste { display: block; }

/* Tek sütun, 24px bölüm aralığı; alan aralığı bileşen tarifinde durur. */

.form-bolum + .form-bolum { margin-top: calc(var(--bosluk) * 3); }

.form-bolum-baslik {
  margin-bottom: calc(var(--bosluk) * 1.5);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .75;
}

/* İki alan yan yana; dar ekranda alt alta iner. */

.form-ikili { display: grid; gap: 0 calc(var(--bosluk) * 1.5); }

/* Mobilde ekranın altında sabit kaydet çubuğu; geniş ekranda formun
   altında akar. Alt menü üstünde durur, son alan altında kalmaz. */

.form-dip {
  display: flex;
  gap: var(--bosluk);
  margin-top: calc(var(--bosluk) * 3);
}

.form-dip > * { flex: 1; }

@media (min-width: 900px) {
  .form-ikili { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 899.98px) {
  .form-dip {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(var(--alt-menu) + env(safe-area-inset-bottom, 0px));
    z-index: 20;
    margin: 0;
    height: var(--alt-menu);
    align-items: center;
    padding: 0 calc(var(--bosluk) * 2);
    background: var(--yuzey);
    border-top: 1px solid var(--kenar);
  }

  /* Kaydet çubuğu içeriğin üstünde durur; son alan altında kalmasın. */

  .iskelet-form-dipli { padding-bottom: calc(var(--alt-menu) + var(--bosluk) * 2); }
}

/* Üstte künye bloğu, 24px sonra kalem tablosu, en altta sağa hizalı
   toplam bloğu. */

/* Detay tepesi · belge no, durumu ve tutarı bir kuşakta (2026.151).
   Önce üçü sayfanın üstünde havada duruyordu: zeminin üstüne düşen
   çıplak yazı, altındaki tablo ise kartın içinde. Şimdi tepe de bir
   kart: künye onun içinde, kalemler tablosu altında. */
.detay-basi {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--bosluk) calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--kart-kenar);
}

.detay-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  margin: 0;
  color: var(--defter-koyu);
}

.detay-tutar {
  margin-left: auto;
  font-family: var(--yazi-baslik);
  font-size: var(--h1-boy);
  line-height: var(--h1-satir);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.detay-tutar-eksi { color: var(--metin-hata); }

/* Rakamın yanındaki tek kelime: yön yalnız renge bırakılmaz. */

.detay-tutar-yon {
  font-family: var(--yazi-metin);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

.detay-bolum { margin-top: calc(var(--bosluk) * 3); }

.detay-bolum-baslik {
  margin-bottom: calc(var(--bosluk) * 1.5);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .75;
}

.detay-eylem {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
  margin-top: calc(var(--bosluk) * 3);
}

.detay-toplam {
  display: flex;
  justify-content: flex-end;
  gap: calc(var(--bosluk) * 2);
  margin-top: calc(var(--bosluk) * 2);
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
}

.detay-toplam-tutar {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Künye çiftleri: solda etiket, altında değer. */

.kunye-cift {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) / 4);
}

.kunye-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .75;
}

.kunye-deger {
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
}

.kunye-deger-tutar {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kunye-bag {
  align-self: flex-start;
  min-height: var(--dokunma);
  display: flex;
  align-items: center;
  color: var(--vurgu);
  text-align: left;
  text-decoration: underline;
}

/* Özet kartının kendi kuralı yoktu: yalnız zemin zeminini alıyor,
   görselle metin üst üste biniyordu (2026.189). Kart bir satırdır:
   solda küçük görsel, sağda iki satırlık özet. */
.ozet-kart {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2);
  border-radius: var(--kose-kutu);
}

.ozet-gorsel {
  flex: 0 0 auto;
  width: var(--gorsel-ozet);
  height: var(--gorsel-ozet);
  color: var(--gri-vurgu);
}

.ozet-metin { flex: 1; min-width: 0; }

.ozet-satir {
  display: flex;
  gap: var(--bosluk);
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
}

.ozet-satir-ad {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ozet-satir-tutar {
  flex: 0 0 auto;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.ozet-bos {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

/* Izgaradaki her hücre daralabilir. Bunu yazmazsak uzun bir hesap adı
   ya da fatura numarası sütunu şişirir ve satır kabın dışına taşar —
   masaüstünde Detay düğmesi ekrandan çıkıyordu. */

.fatura-h { min-width: 0; }

/* Yüklenen dosyanın adı ve "başka dosya" düğmesi. */

.fatura-dosya {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  margin-bottom: calc(var(--bosluk) * 1.5);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fatura-dosya > span {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fatura-degistir { flex: 0 0 auto; }

.fatura-uzanti {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.fatura-oz-izgara {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.fatura-oz-hucre {
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2);
  border-right: 1px solid var(--ayirici);
  min-width: 0;
}

.fatura-oz-hucre:last-child { border-right: 0; }

/* TEK BOY · veriye göre değişmez (2026.527 · kullanıcının isteği:
   "fontlar ölçüler veriye göre değişiyor, öyle olsun istemiyorum,
   açılışta neyse o").

   Eskiden normal rakam h1, dokuz haneyi geçen tutar h2 boyundaydı;
   dosya gelince "0" ile "252.533,31 ₺" ayrı boyda yazılıyor ve kart
   gözle görülür biçimde oynuyordu. Boy h2'de sabitlendi: en uzun tutar
   (12.440.300,70 ₺) beş gözün en dar hâlinde de bu boyda sığıyor. */
.fatura-oz-sayi {
  display: block;
  font-family: var(--yazi-baslik);
  font-weight: 600;
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


.fatura-oz-ad {
  display: block;
  margin-top: 2px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .6;
}

.fatura-oz-alt {
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bosluk);
  /* BOŞKEN DE AYNI YÜKSEKLİK (2026.526 · kullanıcının isteği: "şu
     açıklama alanı da sabit olsun, boşsa boş olsun"). Satır artık her
     zaman çiziliyor; min-height olmasaydı içi boşken yalnız iki
     dolgudan ibaret kalır ve bir uyarı gelip gidince kart yine
     zıplardı. Ölçü tek satırlık metnin kapladığı yerdir. */
  /* 2026.534 · SABİT BOY, TEK SATIR. min-height boşken koruyordu ama
     iki not birden gelince satır sarıyor ve kart uzuyordu (ölçüldü:
     520px'te 38 → 65px). Yükseklik artık alt sınır değil, ölçünün
     kendisi; sığmayan yazı üç noktayla biter. */
  flex-wrap: nowrap;
  /* BOY 34px'lik tuşa, altındaki 3px kalınlığa VE üstüne gelince
     kalkan 1px'e göre (2026.546). Eskiden 50px'ti ve tuşun alt
     kalınlığı kartın kenarına değip kesiliyordu (kullanıcının
     bildirimi: "alta taşmış"). Sabit kalır; içindeki not uzayıp
     kısalsa da oynamaz. */
  height: 56px;
  min-height: 56px;
  /* IZGARA · üstteki beş gözün aynısı. Notlar ilk dördün altını,
     arşiv düğmesi beşincinin altını kaplar; gri düğme böylece tam
     üstündeki aktarım düğmesiyle aynı ende olur. Yan pay sıfır:
     payı, üstteki gözlerle hizalanmak için parçaların kendisi
     taşıyor. */
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  /* ARALIK SIFIR · üstteki gözlerin arasında boşluk yok, aralarını tek
     çizgi ayırıyor. Alt satırda 8px aralık kalsaydı beşinci sütun
     6px sağa kayar ve iki düğmenin sol kenarı tutmazdı (ölçüldü). */
  gap: 0;
  padding: 0;
  border-top: 1px solid var(--ayirici);
  background: var(--oyuk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  overflow: hidden;
}

/* Notlar · ilk dört gözün altı. Kendi içinde eskisi gibi esnek. */
.fatura-oz-notlar {
  grid-column: 1 / 5;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--bosluk);
  min-width: 0;
  padding: 0 calc(var(--bosluk) * 2);
  overflow: hidden;
}

/* Alt satırın her parçası tek satır kalır ve sırayla kısalır. */
.fatura-oz-notlar > span,
.fatura-oz-notlar > button {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* AÇILABİLİR NOT (2026.587) · "Bu gün zaten işlenmiş · aç". Formun
   tepesindeki kırmızı bant kalkınca "o raporu açıp düzeltin"
   bağlantısının işi bu nota geçti. Düğme gibi değil, satırdaki öteki
   notlar gibi durur; tıklanabildiğini yalnız altındaki çizgi söyler. */
.gs-oz-not-dugme {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  cursor: pointer;
}

.gs-oz-not-dugme:hover,
.gs-oz-not-dugme:focus-visible { text-decoration-thickness: 2px; }

/* ÖNCE DOSYA ADI KISALIR. Satıra sığmayan bir şey olduğunda feda
   edilecek ilk yazı dosyanın adıdır: uyarılar yapılacak iş söyler,
   dosya adı yalnız "ne okundu" der ve tamamı zaten title'da durur. */
.fatura-oz-dosyaadi { flex: 0 1 auto; }

.fatura-oz-notlar .fatura-oz-not { flex: 0 0 auto; }

.fatura-oz-notlar .fatura-oz-dugme { flex: none; }

.fatura-oz-not { opacity: .7; }

/* Hesabı belli olmayan kalem uyarısı · aktarımı durdurmaz, gözden de
   kaçmaz (göç 97). */
.fatura-oz-uyari { color: var(--metin-hata); opacity: 1; }

/* .fa-alim-kutu KALDIRILDI (2026.371): tek kutuluk "Ürünleri eşleştir"
   penceresi kalktı, yerini detay başlığındaki toplu seçici aldı. */

/* Toplu eşleştirme seçicisi · faturanın başlığında, tedarikçi adının
   sağ ucunda (2026.371 · kullanıcının isteği: "Resul Karakoca yazıyor
   ya en tepede, onun en sağında seçelim"). */
.fa-toplu-secici { width: 100%; }

.fa-toplu-yok {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--metin-hata);
}

.fatura-oz-bosluk { flex: 1; }

.fatura-oz-dugme {
  min-height: 34px;
  padding: 0 12px;
}

/* ---- Kuşağın şeridi · Fatura Aktarımı ----
   (2026.521 · kullanıcının isteği: "yukarı fatura aktarımı yazan kısımla
   aşağıdaki aktarılacak kalem toplam kartları birleşsin, düğmeler de
   5. kart olarak en sağda olsun")

   Kuşak zaten bir kart. İçine konan özet KENDİ ÇERÇEVESİNİ BIRAKIR —
   yoksa kart içinde kart görünür ve "birleşsin" denen şey olmaz.
   Ayıran tek şey ince bir çizgi. */
.sayfa-kusak-serit {
  /* KENDİ KARTI (2026.525). Kuşağın içinde bir bölmeyken kartı iki
     katına çıkarıyor ve arkadaki çizimi onunla birlikte devleştiriyordu
     (background-size: auto 100%). Artık ayrı bir kart: kuşak kendi
     boyunda kalır, çizim kendi ölçüsünde.

     KUŞAĞA YAPIŞIK · üst köşeleri düz, üst kenarlığı yok. Kuşağın alt
     kenarlığı ikisinin arasındaki tek çizgidir; boşluk yoktur ama iki
     ayrı kart oldukları o çizgiden bellidir. */
  position: relative;
  margin: 0 0 calc(var(--bosluk) * 3);
  border: var(--kart-cerceve);
  border-top: 0;
  border-radius: 0 0 var(--kose-kart) var(--kose-kart);
  background-color: var(--kart-zemin);
  box-shadow: var(--kart-golge);
  overflow: hidden;
  text-align: left;
}

.sayfa-kusak-serit[hidden] { display: none; }

.sayfa-kusak-serit .fatura-oz {
  margin: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background-color: transparent;
  background-image: none;
}

/* Dar ekranda şerit kuşakla aynı yan payları kullanır; negatif
   kenar boşluğu kalktı, ikisi zaten aynı genişlikte. */

/* Beşinci göz · ARAÇLAR (2026.523 · kullanıcının kararı: "5. kartta
   başka dosya, alış satış ve en alttaki aktar düğmesi", sonra "başka
   dosya düğmesi alış satışın yanında olsun, küçült").

   Üstte Alış/Satış ile Başka dosya yan yana, altta aktarım düğmesi.
   Aktarım düğmesi sayfanın en altından buraya taşındı: uzun listede
   kullanıcı onu görmek için sonuna kadar iniyordu.

   BEŞ GÖZ EŞİT GENİŞLİKTE (kullanıcının kararı: "kartların ölçüleri
   aynı olsun hepsinin"). Tutarın kırpılmaması bu yüzden sütun payıyla
   değil, aşağıdaki 1100px eşiğiyle çözülüyor. */
.fatura-oz-izgara-sekmeli { grid-template-columns: repeat(5, 1fr); }

.fatura-oz-hucre.fatura-oz-sekme {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 7px;
  border-right: 0;
  border-left: 1px solid var(--ayirici);
  padding: calc(var(--bosluk) * 1.4) calc(var(--bosluk) * 1.6);
}

.fatura-oz-arac {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* ---- TIKLANABİLİR GÖZ (2026.589) ----
   Bankanın bloke kontrolü hem bir rakam hem bir kapı: basınca gün gün
   döküm açılır. Öteki gözlerle aynı ölçüde durur; düğme olduğunu
   yalnız üstüne gelince aldığı soluk zemin ve altı çizili yazısı
   söyler — şeritte ikinci bir renkli düğme istemiyoruz. */
.fatura-oz-kapi {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  border-right: 1px solid var(--ayirici);
  cursor: pointer;
}

.fatura-oz-kapi:hover { background: rgba(237, 226, 204, .45); }

.fatura-oz-kapi-bag {
  margin-left: 5px;
  text-transform: none;
  letter-spacing: 0;
  text-decoration: underline;
}

/* Gözün rakamı duruma göre renk alır: uyarı turuncu, temiz yeşil. */
.fatura-oz-hucre-uyari .fatura-oz-sayi { color: var(--metin-uyari); }
.fatura-oz-hucre-iyi .fatura-oz-sayi { color: var(--metin-basari); }

/* İkisi de küçük ve AYNI BOYDA: yan yana duran iki düğmenin farklı
   yükseklikte olması şeridi eğri gösteriyordu. */
.fatura-oz-arac .fatura-sekme { flex: none; margin: 0; padding: 2px; }

.fatura-oz-arac .fatura-sekme-dugme {
  height: 28px;
  padding: 0 calc(var(--bosluk) * 1.25);
  font-size: var(--etiket-boy);
}

/* "Başka dosya" ile "Dosya Yükle" aynı uzunlukta değil; düğme
   yazısına göre ölçülünce sekmelerin yanındaki boşluk oynuyordu
   (ölçüldü: 84px ↔ 87px, 1024px'te). Eni SABİT. */
.fatura-oz-dosya {
  flex: 1 1 0;
  min-width: 0;
  height: 28px;
  padding: 0 var(--bosluk);
  font-size: var(--etiket-boy);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Aktarım düğmesi gözün tam eni VE HEP AYNI BOYDA (2026.534 ·
   kullanıcının isteği: "hiçbir düğme, hiçbir kart, hiçbir satır
   içindeki veriye göre genişleyip daralmasın; sığmıyorsa ya fontu
   küçültsün ya da ... koysun").

   Eskiden yazı uzayınca alt satıra iniyordu: düğme 38px'ten 52px'e
   çıkıyor, şerit onunla birlikte 150'den 165'e uzuyor ve altındaki
   liste aşağı kayıyordu (ölçüldü, 1340px). Artık tek satır: sığmayan
   yazı üç noktayla biter, tamamı title'da durur. */
.fatura-oz-sekme .fatura-aktar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  /* 34px (2026.543 · kullanıcının kararı: "muhasebe kaydına geç'i
     küçült"). Altına aynı boyda bir gri düğme daha giriyor; ikisi
     38'de kalsaydı açıklama satırı şeridi gözle görülür biçimde
     uzatırdı. */
  height: 34px;
  min-height: 34px;
  max-height: 34px;
  padding: 0 calc(var(--bosluk) * 1.25);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1;
}

/* ---- ŞERİDİN ÜÇ DÜĞMESİ · KLAVYE TUŞU (2026.538) ----
   Kullanıcının isteği: "alış satış düğmesini güncelleyelim, 3D fiziksel
   bir düğme gibi olsun, üstüne gelince renk değiştirmesin, hafif hareket
   etsin" · "başka dosya ve muhasebe kaydına geç düğmeleri de aynı
   tarzda olsun".

   Kullanıcının seçtikleri:
     · Klavye tuşu · altında 3px kalınlık, basınca gövde iner
     · Üstüne gelince 1px yukarı kalkar, RENK DEĞİŞMEZ
     · Alış/Satış'ta ikisi de kabarık durur; seçiliyi yalnız renk ayırır
     · Yalnız bu üç düğme (şeridin dışına taşmaz)

   ÖLÇÜ OYNAMAZ. Kalınlık box-shadow ile, hareket transform ile
   yapılıyor; ikisi de yerleşimi değiştirmez. 2026.535'te sabitlenen
   boylar (38px aktar, 28px öteki ikisi) olduğu gibi kalır.

   Tuşun altındaki kalınlık, düğmenin KENDİ renginin koyusudur: bordo
   tuş bordo koyusuna, krem tuş altın koyusuna basar. Gri bir gölge
   kâğıdın paletinin dışında kalırdı. */
.fatura-oz-arac .fatura-sekme-dugme,
.fatura-oz-dosya,
.fatura-oz-sekme .fatura-aktar {
  --tus-kalinlik: var(--altin-koyu);
  position: relative;
  border-radius: var(--kose-dugme);
  box-shadow: 0 3px 0 var(--tus-kalinlik), 0 4px 5px rgba(74, 52, 32, .16);
  transition: transform .12s ease-out, box-shadow .12s ease-out;
}

/* ÜÇÜ DE AYNI BOYDA. Tuşların boyu ayrı olsaydı yan yana duran üç
   tuştan biri ötekilerden alçak kalır ve şerit eğri görünürdü; eski
   kural da bunu söylüyordu ("ikisi de küçük ve AYNI BOYDA") ama
   ikincil düğmenin min-height'ı sessizce 44px'e çekiyordu. */
.fatura-oz-arac .fatura-sekme-dugme,
.fatura-oz-dosya {
  height: 40px;
  min-height: 40px;
}

/* Alış/Satış tuşlarının gövdesi · seçili olmayan sekme saydamdı ve
   saydam bir yüzey kabartılamaz. İkisi de artık birer tuş: seçili
   bordo, seçili olmayan krem. */
.fatura-oz-arac .fatura-sekme-dugme {
  background: var(--yuzey);
  border: 1px solid var(--altin);
  color: var(--vurgu);
  font-weight: 500;
}

/* Seçili sekme · kullanıcının kararı "ikisi de kabarık dursun", yani
   ayıran tek şey RENKTİR. Dolgusu bordo, yazısı krem — birincil
   düğmenin ta kendisi. Bu kural ekranlar.css'te olduğu için ortak
   kuralı (bilesenler.css) ezer; yazmasaydım seçili sekme yukarıdaki
   krem gövdeyi alır ve hangisinin açık olduğu belli olmazdı. */
.fatura-oz-arac .fatura-sekme-dugme[aria-selected="true"] {
  background: var(--vurgu);
  color: var(--yuzey);
  font-weight: 600;
}

.fatura-oz-arac .fatura-sekme-dugme[aria-selected="true"],
.fatura-oz-sekme .fatura-aktar {
  --tus-kalinlik: var(--vurgu-koyu);
}

/* SEKMELERİN KABI GÖRÜNMEZ (2026.539 · kullanıcının isteği: "alışla
   satışın arasındaki çizgiyi kaldır").

   Ortak şerit kuralı (bilesenler.css · .secim-serit ailesi) kaba altın
   bir çerçeve ve krem bir dolgu veriyor: iki seçenek tek bir kutunun
   içinde dursun diye. Tuşların kendi gövdesi olmadan bu doğruydu. Artık
   her tuş kendi başına bir gövde; kabın çerçevesi ikisinin arasından
   geçen boydan boya bir çizgi olarak görünüyordu. Kap yalnız hizalama
   için kaldı: çerçeve yok, dolgu yok, dolgu payı yok. */
.fatura-oz-arac .fatura-sekme {
  margin: 0;
  padding: 0;
  gap: var(--bosluk);
  border: 0;
  background: none;
}

/* ÜSTÜNE GELİNCE RENK DEĞİŞMEZ · yalnız 1px kalkar ve altındaki
   kalınlık bir tık büyür. Buradaki :hover kuralları ortak kuralları
   (bilesenler.css · sekmede --oyuk dolgu, ikincilde kırmızı çerçeve,
   birincilde koyu dolgu) bilerek geri alır: kullanıcının kuralı
   "üstüne gelince renk değiştirmesin". */
@media (hover: hover) {
  .fatura-oz-arac .fatura-sekme-dugme:hover:not(:disabled),
  .fatura-oz-dosya:hover:not(:disabled),
  .fatura-oz-sekme .fatura-aktar:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--tus-kalinlik), 0 6px 9px rgba(74, 52, 32, .2);
  }

  /* Renk sabit · ortak kuralların dolgu ve çerçeve değişimi iptal. */
  .fatura-oz-arac .fatura-sekme-dugme:hover:not([aria-selected="true"]) {
    background: var(--yuzey);
  }

  .fatura-oz-arac .fatura-sekme-dugme[aria-selected="true"]:hover {
    background: var(--vurgu);
  }

  .fatura-oz-dosya.dugme-ikincil:hover:not(:disabled) {
    border-color: var(--altin);
  }

  .fatura-oz-sekme .fatura-aktar.dugme-birincil:hover:not(:disabled) {
    background: var(--vurgu);
  }
}

/* BASINCA GÖVDE İNER · kalınlık kaybolur, tuş tabana oturur. Hareket
   kalınlıkla aynı ölçüde (3px) ki tuşun üst yüzü tam kalınlığın yerine
   gelsin; yarım inen bir tuş basılmış gibi durmaz. */
.fatura-oz-arac .fatura-sekme-dugme:active:not(:disabled),
.fatura-oz-dosya:active:not(:disabled),
.fatura-oz-sekme .fatura-aktar:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 0 0 var(--tus-kalinlik), 0 1px 2px rgba(74, 52, 32, .18);
}

/* Basılamayan tuş kabarmaz: kalınlık "basılabilir" demektir, kapalı
   düğmede yalan söylerdi. */
.fatura-oz-arac .fatura-sekme-dugme:disabled,
.fatura-oz-dosya:disabled,
.fatura-oz-sekme .fatura-aktar:disabled {
  box-shadow: none;
  transform: none;
}

/* Klavyeyle gezen de tuşu görür · odak halkası kalınlığın üstünde
   durur, ikisi tek box-shadow'da toplanır. */
.fatura-oz-arac .fatura-sekme-dugme:focus-visible,
.fatura-oz-dosya:focus-visible,
.fatura-oz-sekme .fatura-aktar:focus-visible {
  outline: 2px solid var(--vurgu);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .fatura-oz-arac .fatura-sekme-dugme,
  .fatura-oz-dosya,
  .fatura-oz-sekme .fatura-aktar {
    transition: none;
  }
}

/* ---- MUHASEBE KAYDI TABLOSU (2026.556) ----------------------------
   Kullanıcının isteği: "muhasebe önizlemesinde tablo yapısı fatura
   önizlemesindeki gibi olsun, sadece başlıkları uyarlayalım, aynı
   dilde yaz".

   Fatura önizleme listesinin dili buraya taşındı: tek yüzey, ince
   ayraçlar, yumuşak büyük harf başlıklar, kutu içinde kutu yok.
   Hesaplar ayrı kutular değil, aynı tablonun ara başlıkları.
   Çizimi: 3-cekirdek/3-isler/defter.js · kayitTablosuHtml */
.mk-liste {
  margin-top: calc(var(--bosluk) * 2);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  background-color: var(--kart-zemin);
  overflow: hidden;
}

/* KARTIN İÇİNDEYKEN KENDİ ÇERÇEVESİ YOK (2026.558). Muhasebe kaydı
   ekranında tablo artık sayfanın kartının KENDİSİDİR; ikinci bir
   çerçeve kutu içinde kutu olurdu. */
.mk-kart .mk-liste {
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

/* KAYAN ALAN GÖVDENİN TAMAMI (2026.561 · kullanıcının bildirimi:
   "muhasebe kayıtları gözükmüyor, hesaplara etkisi var sadece").

   Kaydıran kutu önce TABLONUN KENDİSİYDİ; altındaki "Hesaplara etkisi"
   özeti ise flex:none duruyordu. Özet hesap sayısı kadar uzuyor ve
   yirmi hesaplı bir dosyada kartın boyunu tek başına doldurunca
   tabloya sıfır yer kalıyor, tablo görünmez oluyordu.

   Artık ikisi BİRLİKTE kayıyor: kaydıran kutu gövde, içindekiler kendi
   boylarında. Tablonun sütun başlığı yine yapışık (thead · sticky);
   kuşak, uyarı ve düğmeler yerinde duruyor.

   Tablo kartın kenarına kadar iner: ortak kutunun 16px'lik payı ve
   krem zemini burada yok, kart zaten yüzeyin kendisi (2026.558). */
.fatura-birlesik > .mk-kart > .gsd-bloklar {
  display: block;
  flex: 1;
  min-height: 0;
  overflow: auto;
  gap: 0;
  padding: 0;
  background: transparent;
  border-bottom: 0;
}

/* Hesaplara etkisi özeti tablonun altında, kartın payıyla. */
.fatura-birlesik > .mk-kart > .gsd-bloklar > .fa-ozet {
  margin: 0;
  border-left: 0;
  border-right: 0;
  border-radius: 0;
}

.mk-tablo {
  width: 100%;
  border-collapse: collapse;
  /* SABİT DÜZEN (2026.558). Kendiliğinden ölçen düzende sütunlar
     içeriğe göre yarışıyor ve en uzun yazıyı taşıyan AÇIKLAMA
     sütunu eziliyordu — üç harfe düşüp "Y…" oluyordu. Sabit
     düzende her sütunun payı önceden bellidir; artan yeri açıklama
     alır ve sığmayan kısmı üç noktayla biter. */
  table-layout: fixed;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* BAŞLIK · fatura listesinin başlık satırının aynısı: yumuşak renk,
   büyük harf, seyreltilmiş. Soluğu YAZININ RENGİNDE, opacity'de
   değil — yapışık bir başlıkta opacity zemini de deler (2026.551'de
   bir kez yaşandı). */
.mk-tablo thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  background: var(--oyuk);
  color: var(--ikinci);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-align: left;
  white-space: nowrap;
  /* Alt çizgi kenarlık değil gölge: border-collapse'lı tabloda yapışık
     hücrenin kenarlığı hücreyle taşınmaz (2026.551). */
  box-shadow: inset 0 -1px 0 var(--kenar);
}

.mk-tablo tbody td {
  padding: 10px calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
}

/* BURADA ARA BAŞLIK KURALLARI VARDI, KALDIRILDI (2026.558 ·
   kullanıcının kararı: "ayırmana gerek yok, 108 Blokeler diye, 320
   falan; zaten hesap kodları var"). Hesabın kodu ve adı her satırın
   HESAP sütununda duruyor; aynı şeyi bir de ara başlıkta yazmak
   tabloyu bölüyor, okumayı kolaylaştırmıyordu.

   NOT · 2026.558'de bu yorum KAPATILMAMIŞTI ve altındaki .mk-tarih
   kuralını yutmuştu: tarih sütunu 92px yerine 187px kalıyor, hesap ve
   açıklama gereksiz yere sağa itiliyordu (2026.562'de bulundu). */

.mk-tarih {
  width: 92px;
  white-space: nowrap;
  color: var(--ikinci);
  font-variant-numeric: tabular-nums;
}

/* Hesap · kod kalın, ad normal. Uzun hesap adı da kırpılır ve tamamı
   title'da durur; sabit düzende her hücre kendi payıyla yetinir. */
.mk-hesap {
  /* 27'den 24'e (2026.562 · kullanıcının bildirimi: "hesabı daha sola
     kaldır, açıklamayı ve fatura numarasını da sola kaydır, baya
     boşluk kalmış"). Asıl boşluğu yutan şey tarih sütunuydu (yukarıda
     düzeldi); bu da kalanı bir tık topluyor. */
  width: 24%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
}

/* Açıklama · eni yazılmaz, ARTAN YERİ O ALIR. Tek satır kalır,
   tamamı title'da durur (2026.396 · "önizlemede banka açıklaması çok
   uzun, orayı ayarla"). */
/* AÇIKLAMA HÜCRESİ · yazı kendi kabında, büyüteç yanında (2026.585).
   Yazı taşarsa üç noktaya iner; düğme yalnız o zaman görünür
   (defter.js · tasanlariIsaretle ölçer ve hidden'ı kaldırır). */
.mk-ack {
  overflow: hidden;
  color: var(--ikinci);
}

.mk-ack-yazi {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Düğme yazının AKIŞINDAN ÇIKAR: satır yüksekliğini değiştirmesin ve
   büyüteci olan satır ötekilerle aynı boyda kalsın. Hücrenin sağ
   ucunda, üç noktanın üstünde durur. */
.mk-ack { position: relative; }

.mk-ack-buyut {
  position: absolute;
  top: 50%;
  right: 2px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kucuk, 6px);
  background: var(--yuzey);
  color: var(--ikinci);
  cursor: pointer;
}

.mk-ack-buyut[hidden] { display: none; }

.mk-ack-buyut:hover,
.mk-ack-buyut:focus-visible {
  border-color: var(--vurgu);
  color: var(--vurgu);
}

/* Düğmenin altında kalan yazı kesilsin; yoksa üç nokta düğmenin
   arkasına giriyordu. */
.mk-ack:has(> .mk-ack-buyut:not([hidden])) .mk-ack-yazi {
  padding-right: 26px;
}

/* Panelde tamamı · satır satır okunur, kesilmez. */
.mk-ack-tam {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: var(--govde-satir);
}

.mk-ek {
  width: 132px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ikinci);
}

.mk-para {
  width: 118px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.mk-tablo thead th.mk-para { text-align: right; }

/* BOŞ HÜCRE · yalnız YAZI solar. opacity kullanılmıyor: o, hücrenin
   ZEMİNİNİ de deliyor ve toplam satırında boş hücreler bandın içinde
   açık birer delik gibi duruyordu (aynı ders 2026.551'de başlık
   satırında öğrenilmişti). */
.mk-bos { color: var(--ikinci); }

.mk-eksi { color: var(--metin-hata); }

/* TOPLAM · yalnız en altta bir kez (kullanıcının kararı). Üstünde
   kalın bir kural, altında çizgi yok — tablonun sonu orası. */
.mk-toplam td {
  padding-top: calc(var(--bosluk) * 1.25);
  padding-bottom: calc(var(--bosluk) * 1.25);
  border-top: 2px solid var(--kenar);
  border-bottom: 0;
  background: var(--oyuk);
  font-weight: 600;
}

.mk-toplam .mk-ack { color: var(--metin); }

/* ÜSTÜNE GELİNCE RENK DEĞİŞMEZ (2026.562 · kullanıcının isteği:
   "üstüne geldiğimizde de renk değişmesin satırlarda"). Burada
   satırın tıklanacak bir işi yok — okunacak bir kayıt. Vurgu, işi
   olan yerlere ayrılmış olsun. */

/* Dar ekranda tablo yana kaymasın: önce ek sütunlar, sonra tarih
   bırakılır. Karar için gereken üçü — hesap, borç, alacak — hep
   kalır. */
@media (max-width: 900px) {
  .mk-tablo .mk-ek { display: none; }
  .mk-hesap { width: auto; min-width: 0; }
}

@media (max-width: 640px) {
  .mk-tablo .mk-tarih { display: none; }
  .mk-tablo thead th,
  .mk-tablo tbody td { padding: 8px var(--bosluk); }
  .mk-para { width: 96px; }
}

/* ---- ARŞİV PANELİ (2026.543) ----
   Ortak panel · 3-cekirdek/3-isler/arsiv.js. Altı aktarım ekranı da
   aynı pencereyi açacağı için kurallar ekrana değil panele bağlı. */
.pencere-arsiv .pencere-govde { padding: 0; }

/* Tepedeki aktarım seçici · hangi ekrandan açıldıysa o seçili gelir.
   Yapışık durur: liste uzayıp kayarken hangi türe baktığın kaybolmasın.

   PİL DEĞİL AÇILIR LİSTE (2026.545 · kullanıcının isteği). Altı pil
   dar panelde ikinci satıra düşüyor ve tepe iki kat uzuyordu; açılır
   liste hep tek satır, yükseklik sabit. */
.ars-tepe {
  position: sticky;
  top: 0;
  z-index: 3;
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2) var(--bosluk);
  /* TEN RENGİ BANT KALKTI (2026.548 · kullanıcının isteği: "seçicinin
     arkasındaki ten rengi alan var ya, o olmasın"). Krem bir şerit
     seçiciyi panelden ayrı bir bölüm gibi gösteriyordu; oysa o da
     panelin kendisi. Zemin panelin yüzeyiyle aynı — yine de bir zemini
     VAR, çünkü yapışık duruyor: saydam olsaydı altından kayan satırlar
     seçicinin içinden geçerdi. Ayıran şey ince çizgi. */
  background: var(--yuzey);
}

.ars-tepe .alan { margin: 0; }

/* TEK TÜRLÜ PANELİN BAŞLIĞI (2026.571) · seçici yerine türün adı.
   Açılır listenin yerini tuttuğu için onun hizasında durur; kutu
   çizilmez, çünkü tıklanacak bir şey yok — kutu kullanıcıyı boşuna
   davet ederdi. */
/* GÜN SONU · ÜÇÜNCÜ GÖZ İKİ RAKAM TAŞIR (2026.576 · kullanıcının
   kararı: "iki rakam, cari işlem üstte, tahsilat altta").

   Veresiye ile tahsilat ayrı şeyler — biri bugün satıldı parası
   alınmadı, öteki eski borçtan geldi; toplamak yanıltıcı olurdu. Göz
   yine tek hücre, içinde iki küçük satır. Ölçüsü kardeşleriyle aynı
   kalsın diye rakam küçülür, satırlar sıkışır. */
.gs-oz-cift { gap: 1px; }

.gs-oz-satir {
  display: flex;
  align-items: baseline;
  gap: calc(var(--bosluk) * .5);
  min-width: 0;
}

/* RAKAM BÜYÜDÜ (2026.581 · kullanıcının bildirimi: "brüt satış, cari
   işlem falan çok küçük olmuş").

   İki rakam tek göze sığsın diye 13px'e (--kucuk-boy) indirilmişti ve
   yanındaki tek rakamlı "Gün Sonu Farkı" gözünün 19px'i yanında
   silikleşiyordu; şeridin okunan rakamları bunlar. 17px başlık
   yazısıyla yazılıyor — farkla aynı aileden, iki satır hâlâ aynı göze
   sığıyor (ölçüldü: göz boyu değişmiyor). */
.gs-oz-satir .gs-oz-sayi {
  font-family: var(--yazi-baslik);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  font-size: calc(var(--h2-boy) - 2px);
  line-height: 1.2;
  color: var(--metin);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gs-oz-satir .gs-oz-ad {
  font-size: var(--etiket-boy);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.2;
  color: var(--ikinci);
  white-space: nowrap;
}

/* İKRAM VE İSKONTO RAPORU · ilk gözün altında iki düğme (2026.643 ·
   kullanıcının isteği: "brüt satış net satışın altında ilk kartta dosya
   yüklememizi istesin … onlar dolmadan diğer aşamaya geçilemesin").
   Boşken kesikli ve vurgulu ("Dosya yükle"), dolunca yalnız tutar. */
.gs-pos {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
  margin-top: calc(var(--bosluk) * .5);
  min-width: 0;
}
.gs-pos-cip {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: calc(var(--bosluk) * .75);
  min-width: 0;
  padding: 3px 8px;
  border: 1px dashed var(--vurgu);
  border-radius: var(--kose-kutu);
  background: rgba(143, 45, 34, .05);
  color: var(--vurgu);
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.gs-pos-cip:hover { background: rgba(143, 45, 34, .1); }
.gs-pos-ad {
  font-size: var(--etiket-boy);
  text-transform: uppercase;
  letter-spacing: .04em;
  line-height: 1.2;
  color: var(--ikinci);
}
.gs-pos-tutar {
  max-width: 100%;
  font-size: var(--kucuk-boy);
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gs-pos-dolu {
  border-style: solid;
  border-color: var(--kenar);
  background: var(--kart-kagit);
  color: var(--metin);
}
.gs-pos-dolu .gs-pos-tutar::before { content: "\2713  "; color: var(--basari); }
/* İKİ ŞUBE (2026.655) · düğmelerin üstünde şubenin adı; ikinci
   dosyanın adı alt satırda, yanında çıkarma düğmesi. */
.gs-pos-sube {
  margin-top: 2px;
  font-size: var(--etiket-boy);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ikinci);
}
.gs-ikinci-dosya { gap: 6px; }
/* Genresman sütununda ikinci şubenin payı · bilgi (2026.659). */
.gs-sube-pay {
  display: block; margin-top: 1px;
  font-size: var(--etiket-boy); font-weight: 500; line-height: 1.2;
  color: var(--ikinci); white-space: normal;
}
.gs-sube-pay-ad, .gs-sube-pay-tutar { white-space: nowrap; }
/* Kapalı liste · şube başına tek satır (2026.658). İkinci şubenin
   raporları isteğe bağlı olduğundan eksikken kesikli ama soluk. */
.gs-pos-ozet .gs-pos-tutar { font-variant-numeric: tabular-nums; }
.gs-pos-istege { border-color: var(--kenar); background: var(--kart-kagit); color: var(--ikinci); }
.gs-pos-gizle {
  justify-self: end; border: 0; background: none; cursor: pointer; padding: 2px 4px;
  font-size: var(--etiket-boy); color: var(--ikinci);
}
.gs-ikinci-kaldir {
  border: 0; background: none; cursor: pointer; padding: 0 2px;
  color: var(--ikinci); font-size: 12px; line-height: 1;
}
.gs-ikinci-kaldir:hover { color: var(--metin-hata); }

/* İptal yüklenmiş ama işaretsiz adisyon var · turuncu, dolu. */
.gs-pos-eksik {
  border-style: solid;
  border-color: var(--uyari-cizgi);
  background: rgba(208, 135, 0, .12);
  color: var(--metin-uyari);
}

/* ---- İPTAL · İMZA TABLOSU (2026.648) ----
   Satış faturası sihirbazının satır dili (.sfa-satir, .sfa-imlec,
   .sfa-sekme) ödünç alınır: iki ekranda aynı işaret aynı renkte. */
.gs-ipt-pencere .pencere-govde { padding-top: calc(var(--bosluk) * 1); }
.gs-ipt-ozet {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px;
  font-size: var(--govde-boy); color: var(--metin);
}
.gs-ipt-ozet b { font-weight: 700; font-variant-numeric: tabular-nums; }
.gs-ipt-uyari, .gs-ipt-tamam, .gs-ipt-imzasiz {
  padding: 3px 10px; border-radius: 999px; font-size: var(--kucuk-boy); font-weight: 600;
}
.gs-ipt-uyari { background: rgba(208, 135, 0, .14); color: var(--metin-uyari); }
.gs-ipt-tamam { background: rgba(47, 107, 74, .12); color: var(--metin-basari); }
.gs-ipt-imzasiz { background: rgba(164, 36, 48, .1); color: var(--metin-hata); }
.gs-ipt-ipucu { margin: 6px 0 10px; font-size: var(--kucuk-boy); color: var(--ikinci); }
.gs-ipt-kap { max-height: 62vh; overflow: auto; border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu); }
.gs-ipt-tablo { width: 100%; border-collapse: collapse; font-size: var(--kucuk-boy); }
.gs-ipt-tablo th {
  position: sticky; top: 0; z-index: 1; background: var(--kart-kagit);
  padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--kenar);
  font-size: var(--etiket-boy); letter-spacing: .04em; text-transform: uppercase;
  color: var(--ikinci);
}
.gs-ipt-tablo td {
  padding: 7px 10px; border-bottom: 1px solid var(--ayirici); vertical-align: top;
}
.gs-ipt-no { width: 2.5em; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.gs-ipt-ads { white-space: nowrap; }
.gs-ipt-not { display: block; margin-top: 1px; font-size: var(--etiket-boy); color: var(--ikinci); }
.gs-ipt-sonra {
  display: inline-block; margin-top: 3px; padding: 1px 7px; border-radius: 999px;
  background: rgba(164, 36, 48, .1); color: var(--metin-hata);
  font-size: var(--etiket-boy); font-weight: 600;
}
.gs-ipt-tablo .gs-ipt-tutar { text-align: right; white-space: nowrap; font-weight: 600;
  font-variant-numeric: tabular-nums; }
.gs-ipt-secim { width: 196px; white-space: nowrap; }
.gs-ipt-dip { display: flex; justify-content: space-between; align-items: center;
  gap: 10px; margin-top: 12px; }

/* DÖRDÜNCÜ GÖZ · GÜN VE GELİR HESABI (2026.578 · kullanıcının isteği:
   "4. karta gün ve gelir hesabı seçimini koy").

   Aynı HTML formun tepesinden buraya taşındı; sınıflar değişmedi ki
   dinleyiciler ve takvim olduğu gibi çalışsın. Değişen yalnız düzen:
   iki alan yan yana değil ALT ALTA, etiketleri küçük, altyazıları
   gizli — 239px'lik bir gözde "Ciro bu hesaba yazılır" cümlesine yer
   yok ve o cümle kutunun kendisinde zaten yazılı. */
.gs-oz-secim {
  align-items: stretch;
  justify-content: center;
  gap: calc(var(--bosluk) * .5);
  padding-top: calc(var(--bosluk) * .5);
  padding-bottom: calc(var(--bosluk) * .5);
}

.gs-oz-secim .gs-secim {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * .5);
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  min-width: 0;
}

.gs-oz-secim .gs-secim-alan {
  /* TEMELDEKİ flex-basis SIFIRLANIR. .gs-secim-alan "flex: 0 1 240px"
     taşıyor; formda kap YATAY olduğu için o 240px bir GENİŞLİKTİ.
     Burada kap dikey, aynı sayı BOYA dönüşüyor ve her alan 240px
     uzayarak şeridi 551px yapıyordu (ölçüldü). */
  flex: none;
  /* ETİKET ÜSTTE · yanda değil (ölçüldü: 62px'lik bir sütunda "GELİR
     HESABI" kırpılıyor, kalan yerde de hesabın adı sığmıyordu). Üstte
     durunca kutu gözün bütün enini kullanıyor. */
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  min-width: 0;
}

.gs-oz-secim .gs-secim-ad {
  margin: 0;
  font-size: var(--etiket-boy);
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--ikinci);
  white-space: nowrap;
}

/* Altyazı gizlenir ama SİLİNMEZ: dinleyiciler metnini güncelliyor ve
   olmayan bir düğüme yazmak hata verirdi. */
.gs-oz-secim .gs-secim-not { display: none; }

.gs-oz-secim .gs-secim-kutu,
.gs-oz-secim .sec-kutu {
  /* Dört satır bir göze sığsın: 12 + 28 + 12 + 28 artı aralıklar. */
  height: 28px;
  min-height: 28px;
  padding: 0 calc(var(--bosluk));
  font-size: var(--kucuk-boy);
}

.gs-oz-secim .trh-dugme { width: 28px; height: 28px; }

.gs-oz-secim .trh { min-width: 0; }

/* FARK SIFIR DEĞİLSE GÖZ UYARIR · gün sonunda bakılacak ilk rakam odur.
   Renk yalnız rakama girer, gözün zeminine değil: koyu bir bant beş
   gözün ritmini bozardı. */
.gs-oz-fark .fatura-oz-sayi { color: var(--vurgu); }

/* FARKIN SEBEBİ AYNI GÖZDE (2026.582 · kullanıcının isteği: "kasa fark
   açıklamasını da yukarıdaki gün sonu farkı kutusuna yazalım").

   Rakamın altına tek satırlık bir kutu iner. Yanındaki gün/gelir gözü
   zaten iki kutu taşıyor, şeridin boyu bundan değişmiyor. Kutu yalnız
   fark varken çizilir. */
.gs-oz-farkgoz { min-width: 0; }

.gs-oz-farkgoz .gs-oz-sebep {
  width: 100%;
  min-width: 0;
  height: 28px;
  margin-top: calc(var(--bosluk) * .5);
  padding: 0 calc(var(--bosluk) * .75);
  font-size: var(--kucuk-boy);
  line-height: 26px;
}

/* Sebep yazılmadıkça kutu uyarı rengini taşır: gözün rakamı zaten
   turuncu, kutu da onunla aynı dili konuşsun. Doldurulunca sakinleşir
   (:placeholder-shown yalnız boşken tutar). */
.gs-oz-farkgoz .gs-oz-sebep:placeholder-shown {
  border-color: var(--vurgu);
}

/* KAPANIŞÇI (2026.641) · farkın altında hep durur; boşken uyarı rengi
   taşımaz — zorunlu değil. */
.gs-oz-farkgoz .gs-oz-kapanisci:placeholder-shown {
  border-color: var(--kenar);
}

.ars-tek-tur {
  font-family: var(--baslik-yazi);
  font-size: var(--orta-boy);
  line-height: var(--orta-satir);
  color: var(--metin);
  letter-spacing: .01em;
}

.ars-liste { padding: calc(var(--bosluk) * .5) calc(var(--bosluk) * 2) calc(var(--bosluk) * 2); }

/* Bir aktarım · üstte ne olduğu, altında kimin yaptığı, sağda saati. */
.ars-satir {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2px var(--bosluk);
  width: 100%;
  margin-top: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  text-align: left;
  cursor: pointer;
}

.ars-satir-ad {
  grid-column: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}

.ars-satir-not {
  grid-column: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
}

.ars-satir-saat {
  grid-column: 2;
  grid-row: 1 / span 2;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
  font-variant-numeric: tabular-nums;
}

/* Açılamayan kayıt · kopyası olmayan eski aktarım ya da geri alınmış
   olan. Solar ve tıklanmaz; niye olduğunu alt satır söyler. */
.ars-satir:disabled {
  opacity: .5;
  cursor: default;
}

@media (hover: hover) {
  .ars-satir:hover:not(:disabled) { border-color: var(--altin); }
}

.ars-bos {
  padding: calc(var(--bosluk) * 3) 0;
  text-align: center;
  color: var(--ikinci);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.ars-daha { width: 100%; margin-top: calc(var(--bosluk) * 1.5); }

/* ---- GEÇMİŞ KAYITLAR · GRİ TUŞ (2026.543) ----
   Kullanıcının isteği: "Muhasebe Kaydına Geç düğmesinin birebir
   aynısı hemen altına, açıklama kısmına, sağ tarafa; ama rengi gri
   olacak ve arşiv ikonu olacak".

   Gövdesi aktarım düğmesinin aynısı: aynı boy, aynı tuş kalınlığı,
   aynı basılma hareketi. Ayıran tek şey RENK. Gri, çünkü aktarım
   düğmesi bu ekranın tek "yap" düğmesidir; arşiv bakılacak bir yerdir,
   yapılacak bir iş değil. İkisi aynı kırmızıda olsaydı hangisinin
   deftere yazdığı bir bakışta seçilmezdi. */
.dugme-arsiv {
  /* DOLGUSU GRİ (2026.546 · kullanıcının bildirimi: "gri olacaktı").
     Önce krem zeminli ve gri yazılıydı; o, aktarım düğmesinin "birebir
     aynısı ama gri" hâli değil, bambaşka bir düğmeydi. Artık gövdesi
     de doluyor — bordo tuşun gri kardeşi. Paletin gri'si --ikinci'dir;
     soğuk bir gri bu kâğıdın üstünde yabancı dururdu. */
  --tus-kalinlik: var(--gri-koyu);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex: none;
  height: 34px;
  padding: 0 calc(var(--bosluk) * 1.25);
  border: 1px solid var(--gri-koyu);
  border-radius: var(--kose-dugme);
  background: var(--ikinci);
  color: var(--yuzey);
  font-size: var(--kucuk-boy);
  line-height: 1;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 3px 0 var(--tus-kalinlik), 0 4px 5px rgba(74, 52, 32, .16);
  transition: transform .12s ease-out, box-shadow .12s ease-out;
}

.dugme-arsiv svg { flex: none; }

.dugme-arsiv > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (hover: hover) {
  .dugme-arsiv:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--tus-kalinlik), 0 6px 9px rgba(74, 52, 32, .2);
    background: var(--ikinci);
  }
}

.dugme-arsiv:active:not(:disabled) {
  transform: translateY(3px);
  box-shadow: 0 0 0 var(--tus-kalinlik), 0 1px 2px rgba(74, 52, 32, .18);
}

.dugme-arsiv:focus-visible {
  outline: 2px solid var(--vurgu);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .dugme-arsiv { transition: none; }
}

/* AÇIKLAMA SATIRINDAKİ YERİ · beşinci gözün altı, aktarım düğmesinin
   tam altı ve TAM ONUN ENİNDE (2026.546 · kullanıcının bildirimi:
   "ölçüsü Muhasebe Kaydına Geç ile aynı olacaktı").

   Yan payı beşinci gözün payıyla aynı (--bosluk * 1.6), o yüzden iki
   düğmenin sol ve sağ kenarı üst üste oturur. */
.fatura-oz-alt .fatura-arsiv {
  grid-column: 5;
  flex: none;
  width: auto;
  /* Sol payda 1px FAZLA: üstteki beşinci gözün sol kenarlığı da 1px
     yer yiyor, alt satırda kenarlık yok. Bu 1px olmadan iki düğmenin
     sol kenarı bir piksel kayıyordu (ölçüldü). */
  margin: 0 calc(var(--bosluk) * 1.6) 0 calc(var(--bosluk) * 1.6 + 1px);
}

/* Gözün başındaki simge · soluk ve küçük, rakamı gölgelemez. */
.fatura-oz-simge {
  display: flex;
  align-items: center;
  margin-bottom: 2px;
  opacity: .55;
}

.fatura-oz-simge svg { flex: none; }

.fatura-oz-hucre .fatura-oz-ad { margin-top: 0; }

/* BEŞ GÖZ DAR ŞERİTTE SIĞMIYOR. Dörtlü 2x2'ye iniyor, araçlar tam
   satır oluyor ve üçü rahat rahat yan yana duruyor.

   EŞİK 1100'DEN 1230'A ÇIKTI VE @media DEĞİL @container OLDU
   (2026.534). İkisi de ölçüldü:
     · @media yanlış şeyi ölçüyordu — yan panel 292px alıyor, şeridin
       eni ekranın eni değil. Panel açıkken 1200px'lik ekranda şerit
       900px oluyor ama kural "1100'ün üstündeyiz" deyip beş gözü
       zorluyordu.
     · Eşik ölçülerek kondu: şerit 1120px'in altına inince beşinci
       gözde "Başka dosya" ile "Muhasebe Kaydına Geç →" en küçük
       puntoyla bile kırpılıyor. 1120'nin üstünde beşi de temiz
       sığıyor, altında dörtlü 2x2'ye iner ve düğme tam satır olur.
       Eşik 2026.538'de 1070'ten 1120'ye çıktı: tuşlar birer gövde
       kazanınca (klavye tuşu) beşinci göz biraz daralmış oldu. */
@container fa-serit (max-width: 1120px) {
  .fatura-oz-izgara-sekmeli { grid-template-columns: repeat(2, 1fr); }

  /* ALT SATIR DA ALTA İNER (2026.546). Yukarıda aktarım düğmesi tam
     satır oluyor; arşiv düğmesi beşte bir sütunda kalsaydı 55px'e
     düşer ve yazısı kırpılırdı (ölçüldü, 420px). İkisi yine aynı
     ende: ikisi de tam satır. Boy yine sabit — iki satırın toplamı. */
  .fatura-oz-alt {
    grid-template-columns: 1fr;
    height: 100px;
    min-height: 100px;
    align-content: center;
    gap: calc(var(--bosluk) * .75);
  }

  .fatura-oz-notlar { grid-column: 1; }

  .fatura-oz-alt .fatura-arsiv {
    grid-column: 1;
    width: auto;
    /* Yan pay araçlar gözünün payıyla AYNI (1.6), notların payıyla
       (2) değil: düğme üstündeki aktarım düğmesiyle aynı ende olsun. */
    margin: 0 calc(var(--bosluk) * 1.6);
  }

  .fatura-oz-izgara-sekmeli .fatura-oz-hucre {
    border-bottom: 1px solid var(--ayirici);
  }

  .fatura-oz-izgara-sekmeli .fatura-oz-hucre:nth-child(2n) { border-right: 0; }

  .fatura-oz-hucre.fatura-oz-sekme {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    gap: calc(var(--bosluk) * 1.25);
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
  }

  .fatura-oz-arac { flex: none; }

  /* Eni SABİT · "Başka dosya" ile "Dosya Yükle" farklı uzunlukta ve
     flex:none ile düğme yazısına göre ölçülüyordu (2026.534). */
  .fatura-oz-dosya { flex: 1 1 auto; width: auto; min-width: 104px; }

  /* AKTARIM DÜĞMESİ KENDİ SATIRINDA (2026.546). Eskiden araçlarla aynı
     satırdaydı ve sekmelerle dosya düğmesinin artığını alıyordu; alt
     satırdaki arşiv düğmesi ise tam satırdı, ikisi gözle görülür
     biçimde farklı endeydi. Kullanıcının kuralı ikisinin aynı ölçüde
     olması. Şimdi ikisi de tam satır. */
  .fatura-oz-hucre.fatura-oz-sekme {
    flex-direction: column;
    align-items: stretch;
  }

  .fatura-oz-arac { display: flex; }

  .fatura-oz-sekme .fatura-aktar { flex: none; width: 100%; }
}


/* TUTAR KIRPILMAZ — AMA SATIR DA ATLAMAZ (2026.534).
   Kırpılmış bir ad okunur, kırpılmış bir tutar YANLIŞ okunur; o yüzden
   burada üç nokta son çaredir. Eskiden çözüm alt satıra inmekti, ama
   o da kutuyu uzatıyordu ve kullanıcının kuralı artık şu: "sığmıyorsa
   ya fontu küçültsün ya da ... koysun". Sıra bu: önce yazı küçülür.

   KÜÇÜLME VERİYE DEĞİL ŞERİDİN ENİNE BAĞLI. Aynı şeritteki beş gözün
   hepsi aynı puntoyu kullanır — "0" ile "12.440.300,70 ₺" hep aynı
   boydadır. Veriye göre punto değiştirmek 2026.527'de bilerek
   kaldırılmıştı; buradaki ölçü kabın kendi enidir.

   NEDEN @media DEĞİL @container: şeridin eni ekranın eni değildir.
   Yan panel 292px alıyor, gizlenince geri veriyor; aynı ekran eninde
   göz bir 160px bir 220px oluyordu. Kap sorgusu doğrudan şeridi
   ölçer, panel açık da olsa kapalı da olsa doğru puntoyu seçer. */
.sayfa-kusak-serit {
  container-type: inline-size;
  container-name: fa-serit;
}

@container fa-serit (max-width: 1345px) {
  /* Gün sonunun ikili gözü de aynı yolu izler (2026.581): rakamı
     büyütüldü, dar şeritte yanındaki tek rakamla birlikte küçülsün —
     yoksa dar ekranda ikili göz "Gün Sonu Farkı"ndan büyük kalıyordu. */
  .fatura-oz-izgara-sekmeli .fatura-oz-sayi,
  .fatura-oz-izgara-sekmeli .gs-oz-satir .gs-oz-sayi {
    font-size: var(--govde-boy);
    line-height: var(--govde-satir);
  }

}

/* Aktarım düğmesi de aynı yolu izler: dar şeritte yazı küçülür,
   düğmenin boyu değişmez. Sıralama kullanıcının koyduğu kuraldır —
   "sığmıyorsa ya fontu küçültsün ya da ... koysun".
   YALNIZ BEŞ GÖZLÜ DÜZENDE: daha darda düğme zaten tam satır oluyor,
   orada küçültmenin sebebi kalmıyor. */
@container fa-serit (min-width: 1121px) and (max-width: 1345px) {
  .fatura-oz-sekme .fatura-aktar { font-size: var(--kucuk-boy); }
}

@container fa-serit (max-width: 1060px) {
  .fatura-oz-izgara-sekmeli .fatura-oz-sayi,
  .fatura-oz-izgara-sekmeli .gs-oz-satir .gs-oz-sayi {
    font-size: var(--kucuk-boy);
    line-height: var(--kucuk-satir);
  }
}

/* ---- Üç kartın birbirine yapışması (2026.524 · 2026.525) ----
   Kullanıcının isteği: "aşağıdaki tablo da yukarıyla birleşsin",
   sonra "fiziksel olarak temas eden ama ayrı kartlar olarak yap".

   Üçü ayrı kart, aralarında boşluk yok: kuşak → şerit → liste.
   Her sınır tek bir çizgidir.

   :has() ile YALNIZ BU EKRANDA · kuşak her sayfada aynı bileşen;
   ardında dolu bir şerit yalnız Fatura Aktarımı'nda bulunur. Öteki
   sayfalar eskisi gibi kalır. */
.sayfa-kusak:has(+ .sayfa-kusak-serit:not([hidden]))  {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

/* Sayfa gövdesinin boşlukları da kalkar: 16px'lik payla iki kart yine
   ayrı görünüyor, üstelik alttaki kutu kartın kenarlarından içeride
   kalıyordu. Yalnız bu ekranı vurur — kapsayıcının doğrudan çocuğu
   birleşik gövde olduğunda. Alt boşluk duruyor: sayfanın dibiyle
   içeriğin arasında pay kalsın. */
.sayfa-icerik:has(> .fatura-birlesik) {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Şeridin altında liste varsa onun da alt köşeleri düzleşir: üç kart
   kesintisiz bir sütun olur. */
.sayfa-kusak-serit:has(.fatura-oz) {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.fatura-birlesik .fatura-liste,
.fatura-birlesik .yukleme-alani {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Yükleme alanı kartın devamı olunca kesik çerçevesi üstte
   gereksizleşir: kuşağın alt kenarı zaten oradadır. */
.fatura-birlesik .yukleme-alani { border-top-color: transparent; }

/* Kuşağın alt çizgisi ile listenin üst çizgisi üst üste binmesin. */
.fatura-birlesik .fatura-liste { border-top: 0; }


/* ---- SAYFA KAYMAZ, LİSTE KAYAR (2026.534) ----
   Kullanıcının isteği: "bir de sayfa kaymasın, tabloyu kaydıralım".

   Eskiden bütün sayfa kayıyordu: 60 faturalık bir dosyada kullanıcı
   aşağı indiğinde kuşak da özet de ekrandan çıkıyor, hangi dosyaya
   baktığını ve kaç fatura aktarılacağını görmek için yukarı dönmesi
   gerekiyordu. Şimdi kuşak ile özet ekranda çakılı durur, yalnız
   liste kayar; sütun başlıkları da listenin tepesine yapışık kalır.

   YALNIZ BU EKRANDA VE YALNIZ MASAÜSTÜNDE:
     · Kapı :has() ile dar tutuldu — kuşağın altında dolu bir şerit ve
       onun altında bir fatura listesi yalnız burada bulunur.
     · 900px altında kural yok. Telefonda ekran zaten kısa; kuşak,
       özet ve başlıklar çakılı kalsaydı listeye iki üç satırlık yer
       kalırdı. Orada eskisi gibi bütün sayfa kayar. */
@media (min-width: 900px) {
  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) {
    overflow: hidden;
  }

  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) .kabuk-govde {
    height: 100dvh;
    min-height: 0;
  }

  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) .sayfa-alani {
    height: calc(100dvh - var(--ust-cubuk) - env(safe-area-inset-top, 0px));
    min-height: 0;
    padding-bottom: 0;
  }

  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) .sayfa {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  /* Kuşak ve şerit kendi boylarında kalır, artan yeri gövde alır. */
  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) .sayfa-kusak,
  body:has(.sayfa-icerik > .fatura-birlesik > .fatura-liste) .sayfa-kusak-serit {
    flex: none;
  }

  .sayfa-icerik:has(> .fatura-birlesik > .fatura-liste) {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    /* Alt pay kalkar: liste kartı ekranın dibine kadar iner ve kendi
       içinde kayar. */
    padding-bottom: 0;
  }

  .sayfa-icerik:has(> .fatura-birlesik > .fatura-liste) > .fatura-birlesik {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
  }

  .fatura-birlesik:has(> .fatura-liste) > .fatura-liste {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    /* Kart ekranın dibinde bitiyor; alt köşeleri yuvarlatmak orada
       boşluk varmış gibi gösterirdi. */
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  /* KARTIN İÇ TELİ KAYAN LİSTEDE ÇİZİLMEZ (2026.552 · kullanıcının
     bildirimi: "bir de böyle bir çizgi var").

     Kartların içinde, kenardan 3px içeride ince altın bir tel var
     (.kart::after ailesi). O tel mutlak konumlu bir kaplama; kabı
     kaydıran bir kutu olunca İÇERİKLE BİRLİKTE KAYIYOR. Liste
     aşağı indikçe telin alt kenarı ekranın ortasına geliyor ve
     satırların arasında boydan boya bir altın çizgi gibi duruyordu;
     yan kenarları da listenin içinde kayboluyordu.

     Kayan bir bölgenin iç teli zaten çizilemez: nereye çizilse yanlış
     yerde olur. Kartın kendi 1px kenarlığı duruyor, ayıran o. */
  .fatura-birlesik:has(> .fatura-liste) > .fatura-liste::after {
    display: none;
  }

  /* Sütun adları listenin tepesinde çakılı · kayan satırların hangi
     sütuna denk geldiği hep belli olsun. */
  .fatura-birlesik:has(> .fatura-liste) > .fatura-liste .fatura-basliklar {
    position: sticky;
    top: 0;
    z-index: 2;
  }
}

/* Dosya adı · kuşağın alt satırında, notlardan önce. */
.fatura-oz-dosyaadi {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  opacity: .7;
}

.fatura-oz-dosyaadi > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fatura-oz-dosyaadi svg { flex: none; }

/* Yan yana duran notlar birbirine karışmasın: hepsi soluk ve aynı
   boyda, aralarındaki boşluk tek başına yetmiyordu. Uyarılar
   kısaldıkça (2026.534) satırda üç dört parça yan yana gelebiliyor;
   her birinin arasına ince bir çizgi girer. */
.fatura-oz-dosyaadi + .fatura-oz-not,
.fatura-oz-not + .fatura-oz-not {
  padding-left: var(--bosluk);
  border-left: 1px solid var(--ayirici);
}

/* BURADA .fatura-oz-yalin KURALLARI VARDI, KALDIRILDI (2026.524).
   Dosya seçilmeden önce şeritte yalnız iki düğme duruyordu; dosya
   gelince beş göz birden açılıyor ve sayfa zıplıyordu. Kullanıcının
   kararı: "kartlar varsayılan olsun, sayfanın içeriği aynı kalsın
   boşken bile, yükleyince de 0'lar veri alsın". Artık gözler her
   zaman çiziliyor, boşken içlerinde 0 yazıyor. */

@media (max-width: 560px) {
  .fatura-oz-izgara { grid-template-columns: repeat(2, 1fr); }

  .fatura-oz-hucre { border-bottom: 1px solid var(--ayirici); }

  .fatura-oz-hucre:nth-child(2n) { border-right: 0; }

  .fatura-oz-hucre:nth-last-child(-n+2) { border-bottom: 0; }

  /* Beşinci göz dar ekranda iki sütunu birden kaplar ve en alta iner.
     560'ın altında üç araç YAN YANA da sığmıyor (ölçüldü) — alt alta
     inerler ve her biri tam genişlik olur. */
  .fatura-oz-izgara-sekmeli { grid-template-columns: repeat(2, 1fr); }

  .fatura-oz-hucre.fatura-oz-sekme {
    grid-column: 1 / -1;
    flex-direction: column;
    align-items: stretch;
    border-left: 0;
    border-top: 1px solid var(--ayirici);
    border-bottom: 0;
  }

  .fatura-oz-arac { flex: none; }

  .fatura-oz-dosya { flex: 1; }

  .fatura-oz-sekme .fatura-aktar { flex: none; width: 100%; }



  /* Dar ekranda da tek boy: burada da uzun/kısa ayrımı yoktu. */
  .fatura-oz-sayi,
  .gs-oz-satir .gs-oz-sayi { font-size: var(--kucuk-boy); line-height: var(--kucuk-satir); }

  /* SÜTUNA DÖNMEZ (2026.534): alt alta inen notlar satırı iki üç kat
     uzatıyordu. Tek satır kalır, sığmayan kısım üç noktayla biter. */
  .fatura-oz-alt { align-items: center; flex-direction: row; }

  .fatura-oz-bosluk { display: none; }
}

@media (hover: hover) {
  .fatura-oz-dugme:hover { opacity: .75; }
}

/* Sütun başlıkları yalnız tablo düzeninde görünür. */

.fatura-basliklar { display: none; }

.fatura-kart + .fatura-kart { border-top: 1px solid var(--ayirici); }

/* Telefon düzeni (2026.456 · sütunlu satırın dar ekran hâli): üstte
   tarih ile tutar, altında ünvan, sonra dört hap yan yana, en altta
   açıklama ve fatura numarası. Masaüstündeki dokuz sütun telefona
   sığmıyor; sıra aynı kalıyor, yalnız satırlara bölünüyor. */

.fatura-satir {
  display: grid;
  align-items: center;
  gap: calc(var(--bosluk) / 2) var(--bosluk);
  padding: calc(var(--bosluk) * 1.5);
  grid-template-columns: repeat(4, 1fr);
  grid-template-areas:
    "tarih tarih alacak alacak"
    "cari  cari  cari   cari"
    "aciklama aciklama no kontrol";
}

/* ---- Kontrol sütunu (2026.527) ----
   Dört hap sütununun (tur · hesap · depo · fiyat) yerine tek hücre.
   Dördü de aynı paneli açıyordu; şimdi bir kapı var ve dördünün
   özetini söylüyor: hepsi tamamsa yeşil tik, biri eksikse turuncu X.

   ÖLÇÜSÜ SABİT · işaret değişiyor diye düğme büyüyüp küçülmesin,
   satırlar birbirinden kaymasın. */
.fatura-kontrol {
  grid-area: kontrol;
  display: flex;
  justify-content: center;
}

.fa-kontrol {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 26px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  font-size: var(--govde-boy);
  line-height: 1;
  cursor: pointer;
}

.fa-kontrol-tamam { color: var(--metin-basari); }

/* Eksik olan turuncu · "burada yapılacak iş var" demek. Çerçeve de
   alır: renk körlüğünde yalnız renk yetmez, şekil de ayırsın. */
.fa-kontrol-eksik {
  color: var(--metin-uyari);
  border-color: currentColor;
  font-weight: 600;
}

.fatura-tarih {
  grid-area: tarih;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
  font-variant-numeric: tabular-nums;
}

/* Ad üstte, rozetler ALTINDA — her satırda aynı (2026.338 ·
   kullanıcının isteği). Eskiden ikisi tek esnek kutudaydı ve sararak
   kimi satırda yan yana, kimi satırda alta düşüyordu; aynı listede iki
   ayrı düzen göze çarpıyordu. Sütun düzeni bunu tek biçime bağlar. */
.fatura-cari {
  grid-area: cari;
  min-width: 0;
  /* TEK SATIR (2026.456): haplar kendi sütunlarına taşındı, burada
     yalnız ünvan ve (varsa) durum rozeti kaldı. */
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--bosluk);
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  font-weight: 500;
}

.fatura-cari-ad {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fatura-no {
  grid-area: no;
  min-width: 0;
  /* 2026.534 · uzun e-fatura numarası alt satıra inip satırı iki katına
     çıkarıyordu. Tek satır; sığmazsa üç nokta (1200px üstünde bu kural
     zaten vardı, artık her ende geçerli). */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
  font-variant-numeric: tabular-nums;
}

/* Alış faturasında borç sütunu hep boştur; telefonda yer kaplamasın diye
   gizlenir, masaüstü tabloda sütun olarak durur. */

.fatura-borc { display: none; }

.fatura-alacak {
  grid-area: alacak;
  text-align: right;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fatura-birim {
  margin-left: 2px;
  font-size: var(--kucuk-boy);
  opacity: .65;
}

.fatura-aciklama {
  grid-area: aciklama;
  min-width: 0;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  color: var(--metin);
  font-size: var(--kucuk-boy);
}

.fatura-aciklama:focus {
  border: 2px solid var(--altin);
  padding: 0 9px;
  outline: none;
}

.fatura-detay {
  grid-area: detay;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  color: var(--metin);
  font-size: var(--kucuk-boy);
  white-space: nowrap;
}

/* Eşleştirme paneli · pencerenin içinde durur (js/pencere.js · ac). */

.fatura-eslestir-kunye { margin-bottom: calc(var(--bosluk) * 2); }

.fatura-eslestir-not {
  display: block;
  margin-top: calc(var(--bosluk) / 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

/* --- Toplu açılış bakiyesi paneli (2026.289) ---
   Üç sütun: hesap, şu anki bakiye, olacak bakiye. Liste uzun olabilir
   (bir dalın bütün hesapları), o yüzden tablo kendi içinde kayar. */
.hesap-acilis { display: flex; flex-direction: column; gap: var(--bosluk); }

.hesap-acilis-not {
  margin: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

.hesap-acilis-dugmeler {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
}

/* Dosya seçme düğmesi bir etikettir: içindeki input gizli durur. */
.hesap-acilis-sec { cursor: pointer; }

.hesap-acilis .tablo-kutu { max-height: 52vh; overflow: auto; }

/* Hesabın numarası ve satırın durumu adın altında, soluk. */
.hesap-acilis-kod,
.hesap-acilis-durum {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.hesap-acilis-bozuk td { color: var(--uyari); }

/* --- Toplu hesap açma paneli (2026.286) ---
   İki sütun: hesap adı ile ana hesap. Ad kutusu esner, ana hesap
   kutusu okunacak en uzun seçeneğe göre sabit durur — yan yana iki
   esneyen kutu satırdan satıra farklı genişlikte çıkıyordu. */
.fatura-toplu { display: flex; flex-direction: column; gap: var(--bosluk); }

.fatura-toplu-not,
.fatura-toplu-uyari {
  margin: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fatura-toplu-not { opacity: .8; }
.fatura-toplu-uyari { color: var(--uyari); }

/* Liste uzun olabilir (ilk aktarımda yetmiş satır): tablo kendi
   içinde kayar, panel ekrandan taşmaz. */
.fatura-toplu .tablo-kutu {
  max-height: 52vh;
  overflow: auto;
}

.fatura-toplu-tablo th:last-child,
.fatura-toplu-tablo td:last-child { width: 240px; }

.fatura-toplu-tablo .alan-kutu { width: 100%; }

@media (max-width: 900px) {
  .fatura-toplu-tablo th:last-child,
  .fatura-toplu-tablo td:last-child { width: auto; }
}

.fatura-secim {
  display: flex;
  gap: 2px;
  margin-bottom: calc(var(--bosluk) * 2);
  padding: 2px;
}

.fatura-secim-dugme {
  flex: 1;
  min-height: 38px;
  padding: 0 var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
  transition: background-color var(--gecis) ease-out, opacity var(--gecis) ease-out,
              transform var(--basma) ease-out;
}

.fatura-secim-secili {
  opacity: 1;
}

/* Detay paneli · fatura kâğıdındaki gibi: tepe, künye, kalemler, toplam.
   Kâğıdın dili İrsaliye Aktarımı'nın mal giriş kartından geldi
   (2026.169 · kullanıcının kararı): aynı oyuk zeminli tepe, aynı kırmızı
   başlık, aynı künye şeridi, aynı iç tablo kutusu, aynı altlık.
   İki ekranın kâğıdı birbirine benzesin diye ölçüler ".ir-kart" ile
   birebir aynı tutuldu. İşaretleme: 3-cekirdek/3-isler/fatura-gorunum.js */

.fatura-b-kagit {
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  overflow: hidden;
}

.fatura-b-tepe {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--bosluk) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.fatura-b-tepe-yazi { flex: 1; min-width: 0; }

/* Başlığın sağ ucu · toplu eşleştirme seçicisi oraya oturur
   (2026.371). Dar ekranda alta iner ve tam genişliği alır. */
.fatura-b-tepe-sag {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 248px;
}

.fatura-b-tepe-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .6;
}

@media (max-width: 719.98px) {
  .fatura-b-tepe-sag { min-width: 0; width: 100%; }
}

/* ÜNVAN ÜÇ NOKTAYA İNER, tamamı üzerine gelince görünür (2026.444 ·
   kullanıcının isteği: "uzun isimler olunca ... koy, kısalt, üstüne
   gelince görelim"). Eskiden sarıyordu ve uzun unvan kâğıdın tepesini
   iki üç satır büyütüp simetriyi bozuyordu. */
.fatura-b-tepe-baslik {
  display: block;
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fatura-b-tepe-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
  overflow-wrap: anywhere;
}

/* Künye şeridi: fatura no · fatura tarihi · vade yan yana, dar ekranda
   alt alta. Tedarikçi burada ikinci kez yazılmaz, başlıkta duruyor. */

.fatura-b-kunye {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--ayirici);
}

.fatura-b-alan {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.fatura-b-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .6;
}

.fatura-b-deger {
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  font-weight: 500;
  overflow-wrap: anywhere;
}

/* Kalem tablosu kâğıdın ortasında kendi kutusunda durur; dar ekranda
   kutu kendi içinde yana kayar, kâğıt taşmaz. */

.fatura-b-tablo-kutu {
  overflow-x: auto;
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
}

.fatura-b-tablo {
  width: 100%;
  border-collapse: collapse;
}

.fatura-b-tablo th {
  padding: var(--bosluk) calc(var(--bosluk) * 1.5);
  text-align: left;
  white-space: nowrap;
}

.fatura-b-tablo td {
  padding: 6px calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: middle;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fatura-b-tablo tbody tr:last-child td { border-bottom: 0; }

.fatura-b-tablo th.sag,
.fatura-b-tablo td.sag {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Ürün adı sütunu ezilmesin: kalan payın tamamı onundur, rakam
   sütunları kendi genişliğinde durur. */

.fatura-b-tablo th:first-child,
.fatura-b-tablo td:first-child { min-width: 160px; width: auto; font-weight: 500; }

/* Kalemin gideceği hesap · ürün adının ALTINDA kendi satırında durur.
   Altıncı sütun olarak konsaydı beş sütunluk tablo telefonda tümden
   ezilirdi (göç 97 · kalem kalem hesap). Seçicinin açılır listesi
   position: fixed olduğu için tablonun taşma kutusuna takılmaz. */
.fatura-b-hesap {
  display: block;
  margin-top: 4px;
  max-width: 280px;
  font-weight: 400;
}

/* ===================================================================
   FATURA DETAYI · TEK KÂĞIT (2026.444 · kullanıcının tarifi: "açılan
   ekran fatura ön izlemesi gibi olacak, A4 boyutunda ama öyle bir
   ayarla ki aşırı simetrik olsun; uzun isimler olunca ... koy, kısalt,
   üstüne gelince görelim")

   2026.442'nin iki sayfalı paneli (.fd-*) kaldırıldı: ürün listesi ile
   ürün sayfası ayrıydı ve fatura hiçbir zaman bütün hâlde
   görünmüyordu. Kâğıdın kendisi ortak bileşendir (.fatura-b-*);
   buradakiler yalnız Fatura Aktarımı'nın ona kattıkları.
   =================================================================== */

/* KÂĞIT · pencerenin ortasında, A4 gibi dik durur. Yüksekliği en az
   değer olarak verilir, sabit değil: iki kalemlik fatura da bir sayfa
   gibi görünsün, elli kalemlik fatura da aşağı uzayabilsin. Telefonda
   verilmez — orada ekranın kendisi zaten dar ve uzun. */
.fa-kagit-alan { display: block; }

@media (min-width: 720px) {
  .fa-kagit-alan .fatura-b-kagit {
    display: flex;
    flex-direction: column;
    /* EN AZ YÜKSEKLİK KALKTI (2026.446): 840px, panelin gövdesini
       kâğıt kadar uzatıyor ve Kaydet düğmesini ekranın altına
       itiyordu. A4 duruşu artık ölçüden değil, kâğıdın panelin boş
       payını doldurmasından geliyor (.fa-kagit-govde). */
    min-height: 0;
    box-shadow: 0 1px 3px rgba(60, 40, 15, .10);
  }

  /* Toplam şeridi gerçek faturada olduğu gibi sayfanın DİBİNE oturur;
     yoksa kalem tablosunun hemen altında asılı kalıp altında kocaman
     bir boşluk bırakıyordu. */
  .fa-kagit-alan .fatura-b-altlik { margin-top: auto; }
}

/* ---- PANELİN GÖVDESİ · KÂĞIT KAYAR, DÜĞMELER DURUR (2026.446) ----

   Kullanıcının isteği: "kaydet düğmesi için kaydırmamıza gerek
   kalmasın, ürün fazlaysa ürünler kaysın."

   Pencerenin gövdesi normalde tek parça kayar; elli kalemli faturada
   Vazgeç ile Kaydet ekranın çok altında kalıyordu. Sınıf gövdeyi üç
   parçaya böler: kâğıt kalan payı alır, KALEM TABLOSU kendi içinde
   kayar, düğmeler altta sabit durur. Sınıfı ekran kendi eliyle koyuyor
   (fatura-aktarimi.js · detayiAc · bagla) — gövde kabuğunu pencere
   kuruyor.

   Başlık satırı kayan kutunun tepesine yapışır: elli kalem kaydırılırken
   hangi sütunun ne olduğu görünmeye devam etsin. */
.fa-kagit-govde {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.fa-kagit-govde .fa-kagit-alan {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.fa-kagit-govde .fatura-b-kagit { flex: 1; min-height: 0; }

.fa-kagit-govde .fatura-b-tablo-kutu {
  flex: 1;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.fa-kagit-govde .fatura-b-tablo thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  /* ZEMİN BURADA DA YAZILIR (2026.549). Yapışık bir başlığın zemini
     olmak ZORUNDA; olmazsa altından kayan satırlar içinden görünür.
     Ortak kural (bilesenler.css) zaten dolu bir zemin veriyor ama o
     kural bir gün soluklaşırsa hata burada, kaydırırken ortaya
     çıkardı — yapışıklığı yazan yer zeminini de yazsın.

     ALT ÇİZGİ GÖLGEYE DÖNDÜ: border-collapse'lı bir tabloda yapışık
     hücrenin kenarlığı hücreyle birlikte taşınmıyor, tablonun kenarlık
     katmanında kalıp kayıp gidiyor. inset gölge hücrenin kendi
     boyasıdır, her zaman onunla gelir. */
  background: var(--defter-baslik);
  border-bottom-color: transparent;
  box-shadow: inset 0 -2px 0 var(--defter-koyu);
}

/* Belgede başlık şeridi beyazdır (yukarıdaki .fatura-belge kuralı);
   yapışık hâli de beyaz kalsın ve çizgisi belgenin kendi çizgisi
   olsun.

   Belgenin tablosu AYRIK çerçeve kullanır (2026.556): orada hücrenin
   zemini ve çizgisi kendi katmanındadır, yapışkan başlık altından
   kayan satırı olduğu gibi örter. Gölgeyle çizgi taklidine gerek
   kalmadı. */
.fa-kagit-govde .fatura-belge .fatura-b-tablo thead th {
  z-index: 3;
  background: #FFFFFF;
  box-shadow: none;
  /* ALT ÇİZGİ GERİ GELİR (2026.558 · kullanıcının bildirimi: "başlıklara
     alt çerçeve ekle, altları çerçevesiz olmuş"). Bir üstteki ORTAK
     kural (2026.551) alt kenarlığı saydamlaştırıp yerine gölge koyuyor;
     belgede gölgeye gerek kalmadı ama saydamlık kalmıştı ve başlığın
     altı çizgisiz görünüyordu. */
  border-bottom-color: var(--bl-cizgi);
}

.fa-kagit-govde .pencere-dugmeler { flex: none; }

/* TELEFONDA KÂĞIT ESNEMEZ, DÜĞMELER YAPIŞIR. Orada tepe şeridi, künye
   ve altlık ekranın yarısını yiyor; kalem tablosunu bir de kendi içinde
   kaydırmak, avuç içi kadar bir pencereye ikinci bir pencere koymak
   olurdu. Gövde eskisi gibi tek parça kayar, düğmeler dibe yapışır —
   kullanıcının istediği şey zaten Kaydet'e uzanmak için kaydırmamaktı. */
@media (max-width: 719.98px) {
  .fa-kagit-govde { overflow-y: auto; }
  .fa-kagit-govde .fa-kagit-alan,
  .fa-kagit-govde .fatura-b-kagit,
  .fa-kagit-govde .fatura-b-tablo-kutu { flex: none; overflow-x: auto; }
  .fa-kagit-govde .fatura-b-tablo thead th { position: static; }

  .fa-kagit-govde .pencere-dugmeler {
    position: sticky;
    bottom: 0;
    z-index: 4;
    margin-top: var(--bosluk);
    padding: var(--bosluk) 0;
    background: var(--yuzey);
  }
}

/* ---- Ünvan şeridi · kâğıdın en tepesi ----
   Eşleşmemişse turuncu, eşleşince yeşil (kullanıcının isteği).
   Rengin taşıdığı bilgi YAZIYLA DA söylenir — şeridin altındaki satır
   "Hesaba bağlanmadı · bağlamak için tıklayın" der; renk körü de
   siyah-beyaz çıktı da aynı şeyi okur. */
.fatura-b-tepe-dugme {
  width: 100%;
  text-align: left;
  border: 0;
  border-bottom: 1px solid var(--ayirici);
  cursor: pointer;
}

.fatura-b-tepe-tamam {
  background: rgba(47, 107, 74, .12);
  box-shadow: inset 4px 0 0 var(--basari);
}

.fatura-b-tepe-eksik {
  background: rgba(154, 101, 16, .14);
  box-shadow: inset 4px 0 0 var(--uyari);
}

.fatura-b-tepe-dugme:hover,
.fatura-b-tepe-dugme:focus-visible { filter: brightness(.97); }

.fatura-b-tepe-tamam .fatura-b-tepe-alt { color: var(--metin-basari); }
.fatura-b-tepe-eksik .fatura-b-tepe-alt { color: var(--metin-uyari); }

/* Sağ uçtaki durum yazısı · şeridin ne işe yaradığını tek kelimeyle
   söyler. Genişliği sabit: "Eşleştir" ile "✓ Eşleşti" arasında kâğıdın
   tepesi oynamasın. */
.fatura-b-tepe-dugme .fatura-b-tepe-sag { min-width: 0; }

.fa-tepe-durum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 96px;
  height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--altin);
  background: var(--yuzey);
  font-size: var(--kucuk-boy);
  line-height: 1;
  font-weight: 600;
}

.fatura-b-tepe-tamam .fa-tepe-durum { color: var(--metin-basari); }
.fatura-b-tepe-eksik .fa-tepe-durum { color: var(--metin-uyari); }

/* AÇIKLAMA İKİ SATIRDIR (2026.458 · kullanıcının tarifi: "Altın Çiftlik
   | Tavuk Alımı" ve altında fatura numarası; 2026.459 · "her türlü
   fatura no alt satırda dursun"). Metnin içindeki satır sonu korunur;
   fazla boşluk yine sadeleşir (pre-line).

   SEÇİCİ TABLO HÜCRESİ KADAR ÖZGÜL: dar ekranda tablo karta dönüşürken
   `.tablo tbody td` bütün hücrelere `white-space: normal` veriyor ve tek
   sınıflı bir kural ona yetişemiyordu — satır sonu yalnız geniş ekranda
   görünüyor, telefonda numara açıklamanın yanına yapışıyordu. Aynı
   sebeple kırpma da kapatılır: ikinci satır üç noktaya inmesin. */
.fa-ack,
.hd-ack,
.tablo tbody td.fa-ack,
.tablo tbody td.hd-ack {
  white-space: pre-line;
  overflow: visible;
  text-overflow: clip;
}

/* ---------------------------------------------------------------------
   FATURA BELGESİ · e-faturanın BİREBİR kopyası (2026.543)
   ---------------------------------------------------------------------
   Kullanıcının isteği: "birebir bunu yap, birebir aynısı olsun" ve
   "A4 gibi olsun burdaki gibi" — örnek olarak Uyumsoft'un e-fatura
   çıktısı verildi. 2026.540'ta düzen ondan alınmış ama renkler
   uygulamanın kremi kalmıştı; kullanıcı kâğıdın kendisini istedi.

   Artık beyaz kâğıt, ince siyah çerçeveler, mavi künye yazıları ve
   siyah kalın başlıklar. Kâğıt A4 ölçüsünde ve ortalanmış duruyor.

   YATAY A4 (--kagit-en-yatay · 1123px). Örnek dikey A4'tür ve yedi
   sütun taşır; bizim kâğıtta ikisi daha var — Son Alış ve Hangi Depo,
   kullanıcının kendi eklettiği çalışma sütunları (2026.444 · 2026.446).
   Dikey A4'te o dokuz sütunda ürün adına 90 piksel kalıyor ve ad üç
   harfe iniyordu. Aynı soru depo sayım kâğıdında da çıkmış, cevabı
   kullanıcının kendisi vermişti (2026.529: "burası büyük ekran olsun
   yatay A4 gibi, sığmamış çünkü").

   BİZDE OLMAYAN HİÇBİR ŞEY ÇİZİLMEZ (kullanıcının kararı): alıcı
   ("SAYIN") kutusu — firma tablosu yok, QR, bakanlık amblemi, logo,
   imza, MERSİS, ticaret sicil, Özelleştirme No, düzenleme saati, Kod
   sütunu, İskonto ve Diğer Vergiler sütunları, alttaki not metni.
   Değeri boş olan satır da hiç yazılmaz.

   Kaynak: 3-cekirdek/3-isler/fatura-gorunum.js · belge kipi */
.fatura-belge {
  /* Belgenin kendi paleti · uygulamanın değişkenlerinden bağımsızdır,
     çünkü burada taklit edilen şey resmî çıktının kâğıdıdır.

     MAVİ KALKTI (2026.549 · kullanıcının kararı: "metinler mavi
     olmasın, seçiciler kötü duruyor"). Örnekteki mavi künye yazıları
     bizim seçicilerimizin içinde tuhaf duruyordu: seçici uygulamanın
     bileşeni, kâğıdın değil. Belge artık düz siyah-beyaz. */
  --bl-cizgi: #2B2B2B;
  width: 100%;
  /* DİKEY A4 (2026.546 · kullanıcının kararı: "dikey bir form olsun A4
     gibi"). 2026.543'te yatay A4'tü, çünkü Son Alış ve Hangi Depo ayrı
     birer sütundu; ikisi de kalemin içine taşınınca yedi sütun dikey
     kâğıda sığdı. */
  max-width: var(--kagit-en);
  margin: 0 auto;
  padding: calc(var(--bosluk) * 2.5);
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
  background: #FFFFFF;
  background-image: none;
  color: #000000;
  font-size: 12px;
  line-height: 1.45;
}

/* Künye · solda satıcı kutusu, ortada belgenin adı, sağda fatura
   bilgileri kutusu. Örnekteki üç sütunun bizde karşılığı olanlar. */
.fatura-belge .fbl-tepe {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: calc(var(--bosluk) * 2);
  align-items: start;
  padding: 0 0 calc(var(--bosluk) * 2);
}

.fbl-satici {
  position: relative;
  display: block;
  width: 100%;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
  background: #FFFFFF;
  text-align: left;
  font: inherit;
  color: inherit;
}

button.fbl-satici { cursor: pointer; }
button.fbl-satici:hover,
button.fbl-satici:focus-visible { background: #F7F7F7; }

/* Eşleşme durumu belgenin kendi dilinde değil, kenarında durur: ince
   bir şerit ve kutunun dibindeki yazı. Kâğıdın beyazı bozulmaz. */
.fbl-satici-tamam { box-shadow: inset 4px 0 0 var(--basari); }
.fbl-satici-eksik { box-shadow: inset 4px 0 0 var(--uyari); }

/* Unvan SARAR, kırpılmaz · örnekte de iki satıra iniyor. Kâğıtta
   satıcının adı eksiksiz okunmalı. */
.fbl-unvan {
  display: block;
  margin-bottom: 3px;
  padding-right: 92px;
  font-family: var(--yazi-metin);
  font-size: 13px;
  line-height: 1.35;
  font-weight: 700;
  color: #000000;
}

.fbl-kimlik {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fbl-not {
  display: block;
  margin-top: calc(var(--bosluk) / 2);
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
}

.fbl-satici-tamam .fbl-not { color: var(--metin-basari); }
.fbl-satici-eksik .fbl-not { color: var(--metin-uyari); }

.fbl-satici-sag {
  position: absolute;
  top: calc(var(--bosluk) * 1.25);
  right: calc(var(--bosluk) * 1.25);
}

/* ETTN kutunun altında, örnekteki gibi kendi satırında. */
.fbl-ettn {
  grid-column: 1;
  margin-top: calc(var(--bosluk) * -1);
  font-weight: 700;
}

.fbl-ettn span {
  font-weight: 400;
  overflow-wrap: anywhere;
}

/* Fatura bilgileri kutusu · örnekteki iki sütunlu çizelge. */
.fbl-bilgi {
  border: 1px solid var(--bl-cizgi);
  border-bottom: 0;
}

.fbl-satir {
  display: grid;
  grid-template-columns: 46% minmax(0, 1fr);
  border-bottom: 1px solid var(--bl-cizgi);
}

.fbl-ad {
  padding: 3px calc(var(--bosluk) / 1.5);
  border-right: 1px solid var(--bl-cizgi);
  font-weight: 700;
  color: #000000;
}

.fbl-deger {
  padding: 3px calc(var(--bosluk) / 1.5);
  min-width: 0;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}

/* ---- Toplam kutusu · sağ altta, örnekteki gibi ---- */
.fbl-altlik {
  display: flex;
  justify-content: flex-end;
  padding: calc(var(--bosluk) * 2) 0 0;
}

.fbl-toplam {
  width: min(420px, 100%);
  border: 1px solid var(--bl-cizgi);
  border-bottom: 0;
}

.fbl-toplam-satir {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 130px;
  border-bottom: 1px solid var(--bl-cizgi);
}

.fbl-toplam-satir > span:first-child {
  padding: 3px calc(var(--bosluk) / 1.5);
  text-align: right;
  font-weight: 700;
}

.fbl-toplam-satir > span:last-child {
  padding: 3px calc(var(--bosluk) / 1.5);
  border-left: 1px solid var(--bl-cizgi);
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

.fbl-toplam-son > span { font-weight: 700; }

/* ---- Çalışma satırları · künye kutusunun içinde ----  (2026.546)
   Fatura Çeşidi · İlgili Depo · Fiyat Kontrolü. Belge bilgilerinden
   KALIN BİR ÇİZGİYLE ayrılırlar: üsttekiler faturanın kendi bilgisi,
   alttakiler bizim üzerine yazdığımız karar. */
/* Belge bilgileri ile çalışma satırlarının arasındaki KALIN ÇİZGİ
   kalktı (2026.550 · kullanıcının kararı). Sınırı zaten satırların
   solundaki durum işaretleri söylüyor; kalın çizgi çizelgeyi ikiye
   bölüp kâğıdı bozuyordu. */

/* Çalışma satırının solundaki durum işareti (2026.549): yapılan satırda
   yeşil tik, yapılmayanda turuncu ünlem. Genişliği sabit, yoksa
   etiketler satırdan satıra kayardı. */
.fbl-tik {
  display: inline-block;
  width: 12px;
  margin-right: 5px;
  text-align: center;
  font-weight: 700;
}

.fbl-tik-var { color: var(--basari); }
.fbl-tik-yok { color: var(--uyari); }

.fbl-is > .fbl-deger { padding: 3px 4px; }

/* ---- YAPILACAK İŞ TURUNCU DOLGUYLA BELLİ OLUR (2026.590) ----
   Kullanıcının bildirimi: "yapılması gerekenler belli olmuyor; turuncu
   dolgu olsun, Fatura Çeşidi ve İlgili Hesap'ın metin girişinde falan".

   Solda duran turuncu ünlem (2026.549) tek başına yetmiyordu: belge
   beyaz bir kâğıt, ünlem 12 piksellik bir işaret ve göz kalem tablosuna
   kayıyor. Bekleyen satırın tamamı hafif turuncuya döner, solunda kalın
   bir şerit durur ve İÇİNDEKİ KUTU da boyanır — kullanıcı nereye
   dokunacağını satırdan değil doğrudan kutudan görür. İş bitince satır
   kendiliğinden beyaza döner ve ünlem yeşil tike geçer.

   Renkler --uyari'dan türetilir (bkz. degiskenler.css · --uyari-cizgi):
   dolgu çok açık, çerçeve canlı, yazı koyu. */
.fatura-belge {
  --bl-bekle-dolgu: rgba(208, 135, 0, .13);
  --bl-bekle-kutu: rgba(208, 135, 0, .09);
  --bl-bekle-halka: rgba(208, 135, 0, .28);
  --bl-bekle-yazi: #8A4B06;
}

.fbl-is-bekliyor { background: var(--bl-bekle-dolgu); }

/* Şerit kenarlık değil GÖLGE: satırın ızgarası (46% + kalan) bozulmasın
   ve komşu satırların çizgileriyle üst üste binmesin. */
.fbl-is-bekliyor > .fbl-ad { box-shadow: inset 3px 0 0 0 var(--uyari-cizgi); }

/* .fatura-belge ÖNEKİ ŞART: aşağıdaki ".fatura-belge .sec-kutu" kuralı
   (2026.546) kutulara siyah çerçeve veriyor ve aynı ağırlıkta, üstelik
   sonra geliyor. Bir tık ağır selector olmadan turuncu tutmuyordu. */
.fatura-belge .fbl-is-bekliyor .sec-kutu,
.fatura-belge .fbl-is-bekliyor .alan-kutu,
.fatura-belge .fbl-is-bekliyor .fa-arac-dugme {
  border-color: var(--uyari-cizgi);
  background: var(--bl-bekle-kutu);
}

.fatura-belge .fbl-is-bekliyor .sec-kutu:focus,
.fatura-belge .fbl-is-bekliyor .alan-kutu:focus {
  border-color: var(--uyari-cizgi);
  box-shadow: 0 0 0 2px var(--bl-bekle-halka);
}

/* Kutu yerine yazı duruyorsa ("Önce fatura türünü seçin") o da
   turuncuya döner: orada da yapılacak bir iş var demektir. */
.fbl-is-bekliyor .fa-arac-yok { color: var(--bl-bekle-yazi); }

/* Belgenin içindeki seçiciler ve düğmeler kâğıdın dilinde: beyaz
   zemin, ince siyah çerçeve, mavi yazı (2026.546 · kullanıcının
   isteği: "düğmeleri de yeni tarza uygun hale getir, seçicileri vs"). */
/* min-width: 0 · kutunun kendi doğal eni dar bir tablo hücresini
   taşırıyordu (2026.546). */
.fatura-belge .sec-kutu,
.fatura-belge .alan-kutu {
  min-width: 0;
  width: 100%;
  min-height: 26px;
  height: 26px;
  padding: 0 22px 0 6px;
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
  background: #FFFFFF;
  color: #000000;
  font-size: 12px;
}

.fatura-belge .sec-kutu:focus,
.fatura-belge .alan-kutu:focus {
  border-color: #000000;
  box-shadow: inset 0 0 0 1px #000000;
}

.fatura-belge .sec-ok { right: 4px; opacity: .7; }

.fatura-belge .sec { display: block; width: 100%; }

.fatura-belge .dugme-ikincil {
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
  background: #FFFFFF;
  color: #000000;
  font-size: 11px;
  font-weight: 600;
}

.fatura-belge .dugme-ikincil:hover { background: #F0F0F0; }

.fatura-belge .rozet {
  display: inline-block;
  margin-left: 6px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--metin-basari);
  font-size: 11px;
  font-weight: 600;
}

/* Eşleşme hapı kâğıtta da kutunun köşesinde durur ama kâğıdın
   çizgisiyle çizilir. */
.fatura-belge .fa-tepe-durum {
  min-width: 0;
  height: 22px;
  padding: 0 8px;
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
  background: #FFFFFF;
  font-size: 11px;
}

.fatura-belge .fa-arac-yok,
.fatura-belge .fa-arac-goc {
  display: block;
  font-size: 11px;
  line-height: 1.35;
  text-align: left;
  color: var(--ikinci);
}

.fatura-belge .fa-arac-goc { color: var(--metin-uyari); }

.fatura-belge .fa-toplu-sabit,
.fatura-belge .fa-toplu-yok {
  display: block;
  min-height: 0;
  padding: 0;
  font-size: 11px;
  line-height: 1.4;
  color: var(--ikinci);
}

.fatura-belge .fa-kalem-uyari,
.fatura-belge .fa-kalem-yeni {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.35;
  color: var(--metin-uyari);
}

.fatura-belge .fatura-b-kalemsiz {
  border: 1px solid var(--bl-cizgi);
  border-top: 0;
  text-align: center;
}

@media (max-width: 899.98px) {
  .fatura-belge { padding: calc(var(--bosluk) * 1.5); }
  .fatura-belge .fbl-tepe {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--bosluk);
    padding-bottom: var(--bosluk);
  }
  .fbl-tur { text-align: left; }
  .fbl-unvan { padding-right: 0; }
  .fbl-satici-sag { position: static; display: block; margin-bottom: var(--bosluk); }
  .fbl-ettn { margin-top: 0; }
  .fbl-altlik { padding-top: var(--bosluk); }
  .fbl-toplam { width: 100%; }
}

/* ---- Çalışma araçlarının kalanı ----
   Araç şeridi 2026.546'te kalktı; üç iş belgenin künye kutusuna taşındı
   (Fatura Çeşidi · İlgili Depo · Fiyat Kontrolü). Şeridin yerleşim
   kuralları da onunla birlikte silindi; yalnız araçların kendi
   görünümü kaldı. */
/* Göç çalıştırılmadıysa şeridin altındaki not (2026.449). */
.fa-arac-goc {
  display: block;
  margin-top: 4px;
  text-align: left;
  color: var(--metin-uyari);
}

/* Seçilecek bir şey olmayan tür (iade) · hesabın adı düz yazı durur. */
.fa-toplu-sabit {
  display: block;
  min-height: 30px;
  padding: 6px 0 0;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  color: var(--metin-basari);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}


/* Düğme ile seçici şeritte KÜÇÜK durur: 44px'lik dokunma ölçüsü şeridi
   kâğıdın ortasında bir kuşağa çeviriyordu. İkisi de 30px ve
   aralarında pay var; buradaki iş asıl düğme değil, yardımcı araçtır. */
.fa-arac-dugme {
  width: 100%;
  min-height: 30px;
  padding: 0 8px;
  font-size: var(--etiket-boy);
  line-height: 1.2;
  white-space: normal;
}

.fa-arac-rozet { justify-content: center; text-align: center; }

/* Bakılamayan faturada düğme yerine sebebini söyleyen soluk bir yazı
   durur: geçmiş fiyat okunamamışsa onaylanacak bir karşılaştırma yok. */
.fa-arac-yok {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--ikinci);
  text-align: center;
}


/* ---- Kalem satırı · seçici ve yeni ürün işareti ---- */

/* Hesabı bekleyen seçici altın değil turuncu çerçeveli: kâğıtta hangi
   satıra dokunulacağı bir bakışta görünsün. */
.fa-kalem-secici-bekliyor .sec-kutu {
  border-color: var(--uyari);
  background: rgba(154, 101, 16, .06);
}

/* YENİ ÜRÜN · seçicinin üstünde tek satır (2026.444 · kullanıcının
   kuralı: "faturaya daha önce gelmeyen bir ürün geldi, o otomatik öyle
   başlamasın, tekrar eşleştirme istesin"). Seçim yapılınca kaybolur. */
.fa-kalem-yeni {
  display: block;
  margin-top: 4px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 600;
  color: var(--metin-uyari);
}

.fa-kalem-uyari {
  display: block;
  margin-top: 4px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--ikinci);
}

/* Son alışın rengi · yazı artık birim fiyatın altında tek satır
   (2026.546 · .fa-son-kisa), üç satırlı hücre kalktı. */
.fa-son-tamam { color: var(--metin-basari); }
.fa-son-eksik { color: var(--metin-uyari); }

.fatura-b-son-bas,
.fatura-b-son { width: 118px; }

.fatura-b-son { vertical-align: top; }

/* ALTI SÜTUNUN ÖLÇÜSÜ SABİTTİR (2026.444 · kullanıcının isteği:
   "aşırı simetrik olsun"). table-layout: fixed olmadan sütunlar
   içeriğe göre oynuyor ve iki fatura yan yana konsa hiçbir sütun aynı
   yerde durmuyordu. Rakam sütunları kendi ölçüsünü alır, ürün adı
   kalanı — uzun ad üç noktaya iner (.fatura-b-ad). */
.fatura-b-tablo-son { table-layout: fixed; }
.fatura-b-tablo-son th:nth-child(2) { width: 92px; }
.fatura-b-tablo-son th:nth-child(3) { width: 104px; }
.fatura-b-tablo-son th:nth-child(4) { width: 62px; }
.fatura-b-tablo-son th:nth-child(5) { width: 108px; }

/* ---- YEDİNCİ SÜTUN · HANGİ DEPO (2026.446) ----
   Kullanıcının kararı: "ürün hizmet iki satır ya, tek satır olsun
   sadece ürün; 150 hesabı seçtiğimiz kısım en sonda sütun olarak
   olsun." Seçici ürün adının altından kalkıp buraya geldi, ad tek
   satıra indi. Rakam sütunları biraz daralır ki yedi sütun kâğıda
   sığsın. */
.fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(2) { width: 84px; }
.fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(3) { width: 96px; }
.fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(4) { width: 54px; }
.fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(5) { width: 100px; }
.fatura-b-tablo-depo .fatura-b-son-bas,
.fatura-b-tablo-depo .fatura-b-son { width: 124px; }
.fatura-b-depo-bas,
.fatura-b-depo { width: 232px; }

.fatura-b-depo { vertical-align: middle; }

/* ---- Kalem tablosu · belge kipinde ----
   Örnekteki çizelge: her hücrenin kendi çerçevesi var, başlıklar siyah
   ve kalın, ürün adı mavi, rakamlar siyah. Yedi sütun: Sıra No ·
   Mal/Hizmet · Miktar · Birim Fiyat · KDV Oranı · KDV Tutarı ·
   Mal/Hizmet Tutarı.

   Son Alış ile Hangi Depo AYRI SÜTUN DEĞİL (2026.546): biri birim
   fiyatın, öteki ürün adının altında duruyor. Dikey A4 ancak böyle
   yetiyor ve göz her kalemi tek blokta okuyor. */
.fatura-belge .fatura-b-tablo-kutu {
  margin: 0;
  border: 1px solid var(--bl-cizgi);
  border-radius: 0;
}

/* ÇERÇEVE AYRIK ÇİZİLİR, BİRLEŞİK DEĞİL (2026.556 · kullanıcının
   bildirimi: "aşağı doğru kaydırınca başlık bozuluyor").

   `border-collapse: collapse` olan bir tabloda hücrenin ÇERÇEVESİ DE
   ZEMİNİ DE tablonun katmanında boyanır; yapışkan başlık yukarıda
   dururken altından kayan satırın yazısı o zeminin ÜSTÜNE düşüyor.
   2026.551 ve 553'te çizgiler gölgeye alınarak kurtarılmaya çalışıldı
   ama asıl sorun zemindi: gölge de çizgi de hücreyle geliyor, zemin
   gelmiyordu.

   Ayrık çerçevede (separate) her hücre kendi kutusudur: zemini de
   çizgisi de onunla taşınır. Izgara görüntüsü bozulmasın diye her
   hücre yalnız SAĞ ve ALT çizgisini çizer; en soldaki ile en üstteki
   çizgiyi tablo kutusunun kendi çerçevesi verir. */
.fatura-belge .fatura-b-tablo {
  border-collapse: separate;
  border-spacing: 0;
}

.fatura-belge .fatura-b-tablo th,
.fatura-belge .fatura-b-tablo td {
  border: 0;
  border-right: 1px solid var(--bl-cizgi);
  border-bottom: 1px solid var(--bl-cizgi);
}

.fatura-belge .fatura-b-tablo th:last-child,
.fatura-belge .fatura-b-tablo td:last-child { border-right: 0; }

.fatura-belge .fatura-b-tablo tbody tr:last-child td { border-bottom: 0; }

.fatura-belge .fatura-b-tablo thead th {
  padding: 4px 6px;
  background: #FFFFFF;
  color: #000000;
  font-size: 11px;
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
  text-transform: none;
  letter-spacing: 0;
  white-space: normal;
  vertical-align: middle;
}

.fatura-belge .fatura-b-tablo td {
  padding: 4px 6px;
  font-size: 12px;
  line-height: 1.35;
  color: #000000;
  vertical-align: top;
}

/* Fiyatı geçmişinden farklı satır soluna ince bir şerit alır: çalışma
   işareti, belgenin değil ekranın parçası (2026.444). */
.fatura-belge .fatura-b-tablo .fatura-b-fiyat-farkli td:first-child {
  box-shadow: inset 3px 0 0 var(--uyari);
}

.fbl-sira-bas,
.fbl-sira { text-align: center; font-variant-numeric: tabular-nums; }

/* YEDİ SÜTUNUN ÖLÇÜSÜ SABİT · dikey A4'te ürün adına kalan pay
   yaklaşık 300px, ad ile altındaki depo satırı oraya sığar. */
.fbl-tablo { table-layout: fixed; }

.fatura-belge .fatura-b-tablo th:first-child,
.fatura-belge .fatura-b-tablo td:first-child {
  min-width: 0;
  width: 34px;
  text-align: center;
  font-weight: 400;
}

.fatura-belge .fatura-b-tablo th:nth-child(2),
.fatura-belge .fatura-b-tablo td:nth-child(2) {
  min-width: 0;
  width: auto;
  font-weight: 400;
}

/* Miktar birimiyle birlikte tek satırda dursun: "50.000 Adet". */
.fbl-tablo th:nth-child(3) { width: 88px; }
/* Birim fiyat sütunu geniş: altında son alış satırı yazıyor. */
.fbl-tablo th:nth-child(4) { width: 108px; }
.fbl-tablo th:nth-child(5) { width: 52px; }
.fbl-tablo th:nth-child(6) { width: 78px; }
.fbl-tablo th:nth-child(7) { width: 92px; }

/* ---- Kalemin gideceği yer · ürün adının altında ----  (2026.546)
   Kullanıcının kararı: "Sarf Malzemeleri'ne gidecek yazsın, basınca
   değiştirebilsin." Yazı bir düğmedir; basınca yerinde seçiciye döner. */
.fa-yer { display: block; margin-top: 2px; }

.fa-yer-yazi {
  display: inline-block;
  max-width: 100%;
  padding: 0;
  border: 0;
  /* Renk değil, NOKTALI ALTI ÇİZGİ tıklanabilirliği söyler: belgede
     mavi yok (2026.549). */
  border-bottom: 1px dotted var(--bl-cizgi);
  background: none;
  color: #000000;
  font: inherit;
  font-size: 11px;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fa-yer-yazi:hover,
.fa-yer-yazi:focus-visible { background: #F0F0F0; }

.fa-yer-bos {
  color: var(--metin-uyari);
  border-bottom-color: var(--metin-uyari);
  font-weight: 600;
}

.fa-yer-secici { display: block; margin-top: 2px; }

/* ---- Son alış · birim fiyatın altında, tek satır ----  (2026.546) */
.fa-son-kisa {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  line-height: 1.35;
  white-space: normal;
  color: var(--ikinci);
}

.fa-son-kisa b { font-weight: 700; }
.fa-son-kisa.fa-son-tamam { color: var(--metin-basari); }
.fa-son-kisa.fa-son-eksik { color: var(--metin-uyari); }

/* Başlıklar dibe oturur, araçlı iki sütunun başlığı ortalıdır
   (kullanıcının kararı: "başlıkları ortala ve alta al"). */
.fatura-b-tablo-depo thead th { vertical-align: bottom; }
.fatura-b-tablo-depo thead .fatura-b-bas-ort { text-align: center; }

/* Depo hücresi TEK SATIR: kutuda kod değil ad yazar (2026.446 ·
   seçicinin "gosterim" alanı) ve sığmazsa üç noktaya iner. */
.fatura-b-depo .sec { display: block; width: 100%; }
.fatura-b-depo .sec-kutu {
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Adın altındaki hesap yazısı da üç noktaya iner (Hesap Defteri).
   Fatura Aktarımı'nın SEÇİCİSİ 2026.446'da "Hangi Depo" sütununa
   taşındı; onun kuralı yukarıda. */
.fatura-b-hesap,
.fatura-b-hesap-yazi {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* TELEFONDA MİKTAR SÜTUNU DA DÜŞER (yalnız son alış sütunu olan
   tabloda). Birim fiyat ile KDV zaten düşüyordu; altıncı sütun gelince
   ürün adına 90px kalıyor ve ad da hesap seçicisi de üç harfe iniyordu.
   Kalan üç sütun sorunun cevabıdır: hangi ürün, ne kadar tuttu, en son
   kaça alınmıştı. Miktar geniş ekranda yerinde duruyor. */
@media (max-width: 719.98px) {
  .fatura-b-tablo-son th:nth-child(2),
  .fatura-b-tablo-son td:nth-child(2) { display: none; }

  .fatura-b-son-bas,
  .fatura-b-son { width: 86px; }

  .fatura-b-tablo-son th:nth-child(5) { width: 92px; }

  /* Yeni ürün uyarısı dar sütunda kelime kelime alt alta iniyordu. */
  .fa-kalem-yeni { overflow-wrap: anywhere; }

  /* YEDİ SÜTUNLU TABLODA TELEFONDA ÜÇ SÜTUN KALIR (2026.446):
     Ürün · Son alış · Hangi Depo. Miktar, birim fiyat, KDV ve tutar
     düşer.

     TUTAR DA DÜŞER, çünkü depo sütunu artık SEÇİLEN bir sütun: dört
     sütun 390px'lik ekrana sığmıyor ve seçici kutunun sağında görüş
     dışında kalıyordu. Rakam okunmazsa fatura yine kâğıdın altındaki
     toplamdan okunur, ama ekrandan kayan bir seçiciye dokunulamaz.

     ÜRÜN SÜTUNUNA DA ÖLÇÜ VERİLİR. table-layout: fixed'de ölçüsüz
     kalan sütun, ötekilerin toplamı tabloyu aşınca sıfıra iniyor ve
     ürün adı ekrandan tümden kayboluyordu (başlıklar bile üst üste
     biniyordu). */
  .fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(2),
  .fatura-b-tablo-depo.fatura-b-tablo-son td:nth-child(2),
  .fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(3),
  .fatura-b-tablo-depo.fatura-b-tablo-son td:nth-child(3),
  .fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(4),
  .fatura-b-tablo-depo.fatura-b-tablo-son td:nth-child(4),
  .fatura-b-tablo-depo.fatura-b-tablo-son th:nth-child(5),
  .fatura-b-tablo-depo.fatura-b-tablo-son td:nth-child(5) { display: none; }
  .fatura-b-tablo-depo.fatura-b-tablo-son th:first-child { width: 96px; }
  .fatura-b-tablo-depo .fatura-b-son-bas,
  .fatura-b-tablo-depo .fatura-b-son { width: 80px; }
  .fatura-b-depo-bas,
  .fatura-b-depo { width: 108px; }

  /* Kâğıdın yan payı kısılır: tablo kutusu panelin içinde duruyor ve
     panelin kendi payı da var; üç sütun ancak böyle sığıyor. */
  .fa-kagit-alan .fatura-b-tablo-kutu { margin-left: var(--bosluk); margin-right: var(--bosluk); }

  /* Dar sütunda hücrenin yan payı kısılır: üç sütun ancak böyle
     kaydırmasız sığıyor. */
  .fatura-b-tablo-depo td,
  .fatura-b-tablo-depo th { padding-left: var(--bosluk); padding-right: var(--bosluk); }
}

/* Belge kipi telefonda (2026.546) · yedi sütun 390px'e sığmaz. Kalanlar
   kalemin üç sorusuna cevap verir: hangi ürün (altında gideceği yer),
   kaç tane, ne kadar tuttu. Birim fiyat da kalır, çünkü son alış
   karşılaştırması onun altında yazıyor. Sıra numarası ile KDV'nin iki
   sütunu düşer — KDV toplam kutusunda zaten var. */
@media (max-width: 719.98px) {
  .fatura-belge .fatura-b-tablo th:first-child,
  .fatura-belge .fatura-b-tablo td:first-child,
  .fatura-belge .fatura-b-tablo th:nth-child(3),
  .fatura-belge .fatura-b-tablo td:nth-child(3),
  .fatura-belge .fatura-b-tablo th:nth-child(5),
  .fatura-belge .fatura-b-tablo td:nth-child(5),
  .fatura-belge .fatura-b-tablo th:nth-child(6),
  .fatura-belge .fatura-b-tablo td:nth-child(6) { display: none; }

  /* Klasik kâğıdın telefon kuralı dördüncü sütunu da gizliyordu; belge
     kipinde orası BİRİM FİYAT ve altında son alış yazıyor — kalması
     gereken sütun o. Daha özgül bir kuralla geri gelir. */
  .fatura-belge .fatura-b-tablo th:nth-child(2),
  .fatura-belge .fatura-b-tablo td:nth-child(2),
  .fatura-belge .fatura-b-tablo th:nth-child(4),
  .fatura-belge .fatura-b-tablo td:nth-child(4),
  .fatura-belge .fatura-b-tablo th:nth-child(7),
  .fatura-belge .fatura-b-tablo td:nth-child(7) { display: table-cell; }

  .fbl-tablo th:nth-child(4) { width: 76px; }
  .fbl-tablo th:nth-child(7) { width: 80px; }

  .fatura-belge .fatura-b-tablo td,
  .fatura-belge .fatura-b-tablo th { padding-left: 4px; padding-right: 4px; }
}

/* ===================================================================
   DURUM HAPLARI · önizleme satırının dört sütununda

   2026.444'te ünvanın altında üç eşit hap olarak doğdular, 2026.448'de
   dörde çıktılar, 2026.456'da kendi SÜTUNLARINA taşındılar (kullanıcının
   isteği: "pilleri sütuna çevirelim"). Artık saran bir kutuları yok:
   hap hücreyi doldurur, başlığı sütunun tepesinde durur ve yazısı
   sütunun adını değil DURUMU söyler — "Eşleşti", seçilen hesabın adı,
   "Aynı · Kontrol et · —".
   =================================================================== */

/* HAP DOLGULU DEĞİL, ALTI ÇİZGİLİ (2026.445 · kullanıcının bildirimi:
   "renkler çok kötü, fontlar da; daha iyi bir tasarım yap piller").

   Dolgu hâli üç koyu bloğu yan yana diziyordu: bordo başlıklı, krem
   zeminli bir sayfada üç dolu kutu satırın kendisinden daha çok göze
   çarpıyor, liste okunmuyordu. Şimdi kutu yok — renkli yazı ve
   altında kalın renkli bir çizgi. Aynı bilgiyi veriyor, sayfanın
   sesini yükseltmiyor.

   Yazı 11px yerine --kucuk-boy (13px): 11px kalın turuncu, krem zemin
   üstünde okunmuyordu. */
.fa-hap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  height: 28px;
  padding: 0 4px;
  border: 0;
  border-bottom: 2.5px solid currentColor;
  border-radius: 0;
  background: none;
  /* YAZI KÜÇÜLDÜ (2026.455 · kullanıcının isteği: "tüm piller eşit ve
     daha küçük fontlu metne sahip olsun"). 2026.445'te 11'den 13'e
     çıkmıştı; dört hap yan yana gelince satır kalabalıklaştı ve hesap
     adları iki heceye iniyordu. Kalın ve renkli olduğu için 12px'te de
     okunuyor. */
  font-size: 12px;
  line-height: 1;
  font-weight: 600;
  letter-spacing: .01em;
  cursor: pointer;
}

/* Tik yalnız tamam olanda var; boşsa hiç yer kaplamaz. Yazı ortalı
   olduğu için kayma da olmuyor. */
.fa-hap-tik { flex: none; font-weight: 700; }
.fa-hap-tik:empty { display: none; }

.fa-hap-ad {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* BAKILACAK BİR ŞEY OLMAYAN HAP TIKLANMAZ (2026.455 · kullanıcının
   isteği: "fiyat düğmesi pasif olsun, girilemesin"). Hizmet, komisyon
   ve iade faturasında fiyat karşılaştırması yapılmıyor; oraya basınca
   açılan kâğıtta da yapılacak bir şey yok. */
.fa-hap:disabled {
  cursor: default;
  opacity: .75;
}

/* ÇİZGİ YAZIDAN BİR TON CANLI · currentColor çizgiyi de yazı kadar
   koyulaştırıyor ve renk uzaktan seçilmiyordu. Yazı okunaklı koyu,
   çizgi işaret rengi. */
.fa-hap-tamam {
  color: var(--metin-basari);
  border-bottom-color: var(--basari);
}

.fa-hap-eksik {
  color: var(--metin-uyari);
  border-bottom-color: var(--uyari-cizgi);
}

/* BAKILAMADI · üçüncü bir hâl. Kalemi olmayan faturada fiyat
   karşılaştırması yoktur, geçmiş fiyatlar okunamamış olabilir. Oraya
   yeşil koymak yalan olurdu; sessiz durur. */
.fa-hap-yok {
  color: var(--ikinci);
  border-bottom-color: var(--kenar);
  font-weight: 500;
}

/* Kutusu olmadığı için tıklanabilirliği DOKUNUNCA belli olur: üstüne
   gelince soluk bir zemin beliriyor ve çizgi kalınlaşıyor. */
.fa-hap:hover,
.fa-hap:focus-visible {
  background: rgba(138, 116, 88, .10);
  border-bottom-width: 3px;
  padding-bottom: 0;
}

/* ===================================================================
   FİYAT KONTROLÜ (2026.441 · kullanıcının isteği: "alış faturaları
   aktarılırken faturadaki ürün fiyatları geçmiştekilerle kontrol
   edilsin ... detaya basınca o ürün gösterilsin, faturada belli olsun")
   =================================================================== */

/* FİYAT TİKİ DOLGULUDUR (kullanıcının isteği: "tutuyorsa güzel dolgulu
   yeşil tik olsun"). Öteki rozetler soluk zeminli; bu biri dolu yeşil,
   beyaz yazı — çünkü kullanıcının listeye bakarken aradığı tek şey bu:
   "bu faturaya bakmama gerek var mı?" */
/* Panelin başındaki özet · künye ile kalem tablosunun arasında. */
.fatura-fiyat-ozet {
  display: flex;
  align-items: flex-start;
  gap: var(--bosluk);
  margin: 0 0 calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fatura-fiyat-ozet .simge { flex: none; margin-top: 1px; }

.fatura-fiyat-tutar {
  background: rgba(47, 107, 74, .08);
  color: var(--metin-basari);
}

.fatura-fiyat-farkli {
  background: rgba(154, 101, 16, .10);
  color: var(--metin-uyari);
}

/* Farklı olan kalem · soluna ince bir şerit, zemini bir tık sıcak.
   İşaret RENKTEN İBARET DEĞİL: satırın içinde ne olduğunu yazan bir
   metin de var (renk körü için ve siyah-beyaz çıktıda). */
.fatura-b-fiyat-farkli > td {
  background: rgba(154, 101, 16, .06);
}

.fatura-b-fiyat-farkli > td:first-child {
  box-shadow: inset 3px 0 0 var(--uyari);
}

/* Ürün adı da üç noktaya iner (2026.444). Altındaki hesap seçicisi ve
   yeni ürün işareti kısalmaz — onlar kendi satırlarında. */
.fatura-b-ad {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fatura-b-hesap-yazi {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Tablo içindeki seçici kendi satırından küçük durur: ürün adı asıl
   bilgidir, hesap onun altındaki not. */
.fatura-b-hesap .sec-kutu {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fatura-b-kalemsiz {
  padding: calc(var(--bosluk) * 3) calc(var(--bosluk) * 2.5);
  text-align: center;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Altlık: solda matrah ile KDV küçük, sağda genel toplam büyük —
   irsaliye kartının altlığıyla aynı şerit. */

.fatura-b-altlik {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--kenar);
  background: var(--oyuk);
}

/* Matrah ile KDV iki sütunlu bir ızgaradır: etiketler solda, rakamlar
   sağda alt alta hizalı. Düz akışta bıraksaydık "12.450,75" ile
   "2.490,15" birbirinin altında kaymış dururdu. */

.fatura-b-kirim {
  display: grid;
  grid-template-columns: auto auto;
  justify-content: start;
  gap: 3px calc(var(--bosluk) * 1.5);
  min-width: 0;
}

.fatura-b-kirim-satir {
  display: contents;
  font-size: var(--kucuk-boy);
}

.fatura-b-kirim-satir > span {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

.fatura-b-kirim-satir > span:last-child {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.fatura-b-genel {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  text-align: right;
}

.fatura-b-genel > span {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  text-transform: uppercase;
  letter-spacing: .04em;
  opacity: .6;
}

.fatura-b-genel > b {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Telefonda kâğıdın payları daralır ve altlık alt alta iner; irsaliye
   kartı da 900'ün altında böyle davranıyor. */

@media (max-width: 899.98px) {
  .fatura-b-tepe,
  .fatura-b-kunye { padding: calc(var(--bosluk) * 2); }
  /* Künye telefonda iki katlı olur: numara tek başına üstte, iki tarih
     altında yan yana. Üçü birden yan yana konsaydı sütun 120px'e
     düşüyor ve numara ikiye bölünüyordu. */
  .fatura-b-kunye {
    gap: var(--bosluk) calc(var(--bosluk) * 1.5);
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  }

  .fatura-b-genis { grid-column: 1 / -1; }
  .fatura-b-tablo-kutu { margin: var(--bosluk) calc(var(--bosluk) * 2); }

  /* Beş sütun telefona sığmıyor ve tablo yana kayınca "Tutar" görüş
     dışında kalıyordu. Birim fiyat ile KDV oranı burada düşer; kalan üç
     sütun asıl sorunun cevabıdır: hangi üründen kaç tane, ne kadar.
     İrsaliye kartı da telefonda ikinci sütununu böyle düşürüyor. */
  .fatura-b-tablo th:nth-child(3),
  .fatura-b-tablo td:nth-child(3),
  .fatura-b-tablo th:nth-child(4),
  .fatura-b-tablo td:nth-child(4) { display: none; }

  /* Üç sütun telefon genişliğine sabitlenir: rakam sütunları kendi
     ölçüsünü alır, ürün adı kalanı alır ve sararak sığar. Serbest
     bırakılsaydı tablo birkaç piksel taşıyor, "Tutar" yarım kalıyordu. */
  .fatura-b-tablo { table-layout: fixed; }

  .fatura-b-tablo th,
  .fatura-b-tablo td { padding: 6px var(--bosluk); }

  /* "Ürün / Hizmet" başlığı dar sütunda iki satıra iner; nowrap kalsaydı
     yanındaki "Miktar" başlığının üstüne biniyordu. */
  .fatura-b-tablo th { white-space: normal; }

  .fatura-b-tablo th:first-child,
  .fatura-b-tablo td:first-child { min-width: 0; }

  .fatura-b-tablo th:nth-child(2) { width: 54px; }

  /* Birim ("Kilogram") 54px'lik miktar sütununa sığmıyor ve yanındaki
     tutarın üstüne biniyordu. Telefonda rakam kalır, birim düşer. */
  .fatura-b-birim { display: none; }
  .fatura-b-tablo th:nth-child(5) { width: 98px; }
  /* Son alış sütunu telefonda da kalır: kullanıcının aradığı bilgi o
     (2026.444). Sığması için tutar sütunu bir tık daralır. */
  .fatura-b-tablo-son th:nth-child(5) { width: 84px; }
  .fatura-b-kalemsiz { padding: calc(var(--bosluk) * 2); }
  .fatura-b-altlik {
    padding: calc(var(--bosluk) * 2);
    flex-direction: column;
    align-items: stretch;
  }
  .fatura-b-genel {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--bosluk);
  }
}

.fatura-aktar { margin-top: calc(var(--bosluk) * 2); }

/* Masaüstü: aynı hücreler tek satıra dizilir ve tablo görünümünü alır.
   Ayrı bir <table> yazılmaz; ızgara zaten sütunları hizalar.

   Kırılım burada 900 değil 1200'dür ve bu, uygulamanın tek kırılım
   kuralının bilerek konmuş istisnasıdır (css/degiskenler.css). Sebebi
   ölçülebilir: 900px'te yan panel 240px alır, satıra 594px kalır ve sekiz
   sütun oraya sığmaz — fatura numarası kesilir, Detay düğmesi ekrandan
   taşar. 1200px'te satıra ~894px kalır ve sekizi de sığar. Kırılımı
   şablona değil, içeriğin gerçekten sığdığı yere koyduk.

   Fatura numarası sütunu 116px'ti ve e-fatura numarası oraya sığmıyordu:
   üç harf + dört haneli yıl + dokuz hane = on altı karakter, 13px yazıyla
   ~120px yer ister. Sütun 152px'e çıkarıldı; aradaki fark açıklama
   (98→80) ile fatura çeşidi (94→88) sütunlarından alındı, çünkü çeşit
   hep "Alış Faturası" yazar ve açıklama zaten kalan payı da alır. Yeni
   toplam ~866px, satıra kalan ~894px'in içinde. */

@media (min-width: 1200px) {
  .fatura-basliklar {
    display: grid;
    gap: var(--bosluk);
    padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
    background: var(--oyuk);
    border-bottom: 1px solid var(--kenar);
    /* Cari sütunu geniş, açıklama dar (2026.339 · kullanıcının kararı:
       "açıklama sütununu biraz daraltabilirsin"). Cari sütunu iki
       eşleştirme rozetini yan yana taşıyor; dar kaldığında ikincisi alt
       satıra düşüyor ve satır iki kat uzuyordu. Açıklama bir cümlelik
       nottur, kısalması bir şey götürmez. BAŞLIK SATIRI DA AYNI ÖLÇÜYÜ
       kullanır; biri değişip öteki kalırsa sütun adları kayar. */
    /* ALTI SÜTUN (2026.527): Tarih · Hesap Adı · Açıklama · Tutar ·
       Fatura No · Kontrol. Dört hap sütunu teke düştü; dördü de aynı
       paneli açıyordu. SATIRLA BİREBİR AYNI ÖLÇÜ olmalı — biri değişip
       öteki kalırsa sütun adları kayar (bu hata 2026.527'de bir kez
       yapıldı: satır güncellendi, başlık unutuldu). */
    grid-template-columns: 86px minmax(240px, 2.4fr) minmax(200px, 1.6fr)
                           104px 72px 96px;
    font-size: var(--etiket-boy);
    line-height: var(--etiket-satir);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    /* SOLUKLUK YAZIDA, ÖĞENİN KENDİSİNDE DEĞİL (2026.549 · kullanıcının
       bildirimi: "başlık şeffaf olmasın, kaydırınca kötü duruyor").

       Eskiden `opacity: .6` vardı ve başlık yerinde dururken kimse fark
       etmiyordu. 2026.535'te başlık yapışık hâle gelince altından kayan
       satırlar başlığın İÇİNDEN görünmeye başladı: opacity öğenin
       zeminini de soluklaştırıyor, arkası görünür oluyor.

       Aynı soluk görüntü yazının kendi rengiyle veriliyor; zemin tam
       dolu kalıyor. */
    color: var(--ikinci);
    white-space: nowrap;
  }

  .fatura-baslik-sag { text-align: right; }
  /* Hap sütunlarının başlığı ortalı: hap hücreyi dolduruyor ve yazısı
     ortada duruyor (kullanıcının bildirimi: "başlık satır hizalaması
     kötüydü ... aynı hizada olsun hepsi"). */
  .fatura-baslik-orta { text-align: center; }

  .fatura-satir {
    /* Cari sütunu geniş, açıklama dar (2026.339 · kullanıcının kararı:
       "açıklama sütununu biraz daraltabilirsin"). Cari sütunu iki
       eşleştirme rozetini yan yana taşıyor; dar kaldığında ikincisi alt
       satıra düşüyor ve satır iki kat uzuyordu. Açıklama bir cümlelik
       nottur, kısalması bir şey götürmez. BAŞLIK SATIRI DA AYNI ÖLÇÜYÜ
       kullanır; biri değişip öteki kalırsa sütun adları kayar. */
    /* DÖRT HAP SÜTUNU KALKTI, KONTROL GELDİ (2026.527). Boşalan
       ~450px ünvan ile açıklamaya verildi: ikisi de dardı, ünvan
       kırpılıyor açıklamaya bir cümle sığmıyordu. */
    grid-template-columns: 86px minmax(240px, 2.4fr) minmax(200px, 1.6fr)
                           104px 72px 96px;
    grid-template-areas: "tarih cari aciklama alacak no kontrol";
    gap: var(--bosluk);
    /* Satır sıkıştı: dokuz sütun tek hizada duruyor, ünvanın altında
       ikinci bir kutu yok. */
    padding: 8px calc(var(--bosluk) * 1.5);
  }

  .fatura-alacak {
    font-size: var(--govde-boy);
    line-height: var(--govde-satir);
  }

  .fatura-no {
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .fatura-eslestir,
  .fatura-kalem {
    padding-left: calc(var(--bosluk) * 1.5);
    padding-right: calc(var(--bosluk) * 1.5);
  }
}

/* =====================================================================
   Zemin yüzey · bütün kartlar ve tablolar
   ---------------------------------------------------------------------
   Kartlar düz beyaz kutulardır: desen, doku ya da çift çerçeve taşımaz;
   kartı ayıran şey 1px kenarıdır.
   Renkler 2-tasarim/degiskenler.css · "Kart yüzeyi".

   Blok neden dosyanın SONUNDA: yukarıdaki ekran kuralları da tek sınıf
   özgüllüğünde ve kendi zeminlerini veriyor. Aynı özgüllükte sonra
   gelen kazanır; bu blok yukarı taşınırsa .na-kart, .ba-kart gibi
   ekran kartları yeniden beyaza döner.

   Hesap Defteri'nin kartı (.hd-defter) listede yok: kırmızı çerçevesi ve
   köşe çentiğiyle zaten bu dilin kendisidir.
   (2026.109 · "Zemin" · 2026.111 · çift çerçeve ve gölge)
   ===================================================================== */
/* =====================================================================
   Form kâğıdı · .fk-kagit — PAYLAŞILAN
   ---------------------------------------------------------------------
   Form ekranları başlıksız, kabuksuz duruyordu; alanlar sayfanın
   ortasında asılıydı (2026.189 · kullanıcının kararı). Artık İrsaliye,
   Gün Sonu ve Hesaplar ile aynı kâğıdın üstündeler: oyuk zeminli tepede
   kırmızı başlık ve künye satırı, ortada alanlar, altta oyuk
   şeritte not ve düğmeler.

   Sınıf tek ekranın değil (2026.191): ikinci form ekranı da aynı kabuğu
   isteyince "ek-" (Elle Kayıt) öneki "fk-" (form kâğıdı) oldu.
   Kullananlar: 4-ekranlar/1-aktarimlar/elle-kayit.js
                4-ekranlar/3-tanimlar/tekrarlayan-odeme-ve-gelirler.js
   ===================================================================== */

.fk-sarmal {
  max-width: 820px;
  margin: 0 auto;
}

/* Üç bölümü yan yana taşıyan formlar geniş kâğıt ister (2026.406). */
.fk-sarmal.fk-genis { max-width: 1180px; }

.fk-kagit {
  border-radius: var(--kose-kart);
  overflow: hidden;
}

.fk-tepe {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.fk-tepe-yazi { min-width: 0; }

.fk-tepe-sag { display: flex; flex: none; gap: var(--bosluk); }

.fk-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.fk-kunye {
  display: block;
  margin-top: calc(var(--bosluk) / 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .72;
}

.fk-govde { padding: calc(var(--bosluk) * 2.5); }

/* Alanların üstünde duran kağıt: rakamın yazıldığı yüzey zeminin
   deseni üstünde durmasın. */
.fk-govde .alan-kutu,
.fk-govde .sec-kutu { background-color: var(--kart-yuzey); }

.fk-altlik {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.fk-altlik-not {
  flex: 1 1 240px;
  min-width: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .78;
}

.fk-dugmeler { display: flex; flex: none; gap: var(--bosluk); }

@media (max-width: 899.98px) {
  .fk-govde { padding: calc(var(--bosluk) * 2); }
  .fk-tepe,
  .fk-altlik { padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2); }
  /* Telefonda altlık alt alta iner. "flex: none" tek başına yetmiyor:
     not kısalmıyor ama satır da sarmıyordu, cümlenin sonu kırpılıyordu —
     tam genişlik verilir. */
  .fk-altlik {
    flex-direction: column;
    align-items: stretch;
  }
  .fk-altlik-not { flex: none; width: 100%; }
  .fk-dugmeler { width: 100%; }
  .fk-dugmeler > * { flex: 1; }
}

.ozet-kart,
.fk-kagit,
.fatura-oz,
.fatura-liste,
.ayarlar-kart,
.sihirbaz-serit,
.gs-kart,
.ba-banka,
.ba-kart,
.ir-kart,
.hesap-kagit,
.na-kart {
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  box-shadow: var(--kart-golge);
  position: relative;
}

/* KÂĞIT GRENİ · İrsaliye Aktarımı (2026.404 · kullanıcının isteği:
   "buranın renklerini de tasarım dilimize göre ayarla, düz renk olmasın
   desenli olsun").

   Ekran düz krem bir kutu gibi duruyordu. Uygulamanın kendi dokusu
   var ve Mizan'ın kâğıdı onu kullanıyor (.mz-kagit · temel.css ·
   .gren): 3px'te bir çok soluk bir nokta. Kâğıt gibi görünmesini o
   sağlıyor, üstündeki yazıyı hiç zorlamadan.

   KURAL BURAYA YAZILIR, YUKARIDAKİ .ir-kart'a DEĞİL: hemen üstteki
   ortak kart bloğu background-image'i --kart-desen ile ezerdi ve gren
   hiç görünmezdi. Kartın kendi deseni de (bir firma kopyasında
   tanımlanmışsa) ikinci katman olarak duruyor.

   İSTENİRSE BÜTÜN KARTLARA AÇILIR: aynı iki satır yukarıdaki listeye
   taşınınca on üç kart birden kâğıda döner. Şimdilik yalnız bu ekran,
   kullanıcı önce burada görsün diye. */
.ir-kart,
.na-kart {
  background-image:
    radial-gradient(var(--doku-gren) .5px, transparent .5px),
    var(--kart-desen);
  background-size: 3px 3px, auto;
}

/* ---- Çift çerçevenin içteki ince teli ----
   Kutu gölgesiyle değil kaplama katmanıyla çizilir: içeriği kartın
   kenarına dayanan kartlarda (nakit akış tablosu, fatura listesi) satır
   zemini inset gölgeyi örtüyordu — çocuk öğe kendi zeminini gölgenin
   üstüne boyar. ::after içeriğin üstünde durur ve tıklamayı geçirir. */
.kart::after,
.tablo-sarmal:not(.hd-defter)::after,
.ozet-kart::after,
.fk-kagit::after,
.fatura-oz::after,
.fatura-liste::after,
.ayarlar-kart::after,
.ayarlar-obek::after,
.gs-kart::after,
.ba-banka::after,
.ba-kart::after,
.ir-kart::after,
.hesap-kagit::after,
.na-kart::after,
.kz-sayfa::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

/* Defter kartı listede yok: köşe çentiklerini kendi ::before/::after'ı
   çiziyor, üstüne ikinci bir tel gelmez. */

/* Parşömenin üstünde duran kağıtlar: rakamın okunduğu her yüzey. */
.na-tablo,
.gsd-tablo {
  background-color: var(--kart-yuzey);
}

/* Kartın içindeki alt şeritler kendi zeminlerini taşımaz; zemin
   altlarından geçer, ayraçları da gri tele döner. */
.gsk-altlik,
.gsk-bitti,
.gg-altlik {
  background: transparent;
  border-color: var(--kart-kenar);
}

/* İrsaliye listesi kartın İÇİNDE: tablo ikinci bir kart çizmesin.
   Zemin bloğundan SONRA gelir, yoksa ince tel geri gelir. */
.ir-liste-suzgec .tablo-sarmal {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.ir-liste-suzgec .tablo-sarmal::after { content: none; }

.ir-liste-suzgec .tablo,
.ir-liste-suzgec .tablo-kutu { background: transparent; }

.ir-liste-suzgec .tablo-dip {
  padding-left: 0;
  padding-right: 0;
}


/* ---------------------------------------------------------------------
   İrsaliye detay paneli · TEK PARÇA, DİKEY FİŞ (2026.162)
   ---------------------------------------------------------------------
   Önce üç ayrı kutu vardı: künye kartı, kalemler kartı, altta toplam.
   Üst üste üç çerçeve bir belge gibi değil, bir arayüz yığını gibi
   duruyordu. Şimdi hepsi tek kâğıt ve kâğıt DİK: gerçek bir irsaliye
   fişi gibi dar ve uzun, künye satırları alt alta.

   Düzenleme de bu kâğıdın içinde açılır; kullanıcı fişten ayrılmaz.

   Kurallar dosyanın SONUNDA durur: zemin bloğu daha yukarıda her
   karta yüzey ve ince tel veriyor, buradaki kaldırmalar onun altında
   kalırdı. */
.ir-fis {
  position: relative;
  /* Fiş dar ve dik ama sıkışık değil: 380px'te kalem satırları
     birbirine giriyordu (2026.163). */
  max-width: 460px;
  margin: 0 auto;
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2)
           calc(var(--bosluk) * 1.5);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  box-shadow: var(--kart-golge);
}

.ir-fis::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
}

/* Fişin başı: belge no ve durumu üstte, tutarı altında sağda. */
.ir-fis .detay-basi {
  padding: 0 0 var(--bosluk);
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--kart-kenar);
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.ir-fis .detay-basi::after { content: none; }

.ir-fis .detay-ad {
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
}

.ir-fis .detay-tutar {
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
}

/* Künye TEK SÜTUN: fiş dar, iki sütun sığmaz ve okunmaz. */
.ir-fis .iskelet-detay-kunye {
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * .75);
  padding: var(--bosluk) 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.ir-fis .iskelet-detay-kunye::after { content: none; }

/* Etiket solda, değer sağda: fişlerdeki gibi tek satırda okunur. */
.ir-fis .kunye-cift {
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
}

.ir-fis .kunye-etiket {
  flex: none;
  font-size: 10px;
  line-height: 16px;
}

.ir-fis .kunye-deger,
.ir-fis .kunye-bag {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  text-align: right;
}

/* Kalemler · fişin gövdesi. Üstünde kesik çizgi durur. */
.ir-fis .detay-bolum {
  margin-top: 0;
  padding-top: var(--bosluk);
  border-top: 1px dashed var(--kart-kenar);
}

.ir-fis .detay-bolum-baslik { margin-bottom: calc(var(--bosluk) / 2); }

.ir-fis .tablo-sarmal {
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.ir-fis .tablo-sarmal::after { content: none; }

.ir-fis .tablo,
.ir-fis .tablo-kutu { background: transparent; }

.ir-fis .tablo thead th {
  height: auto;
  padding: 0 4px 4px;
  border-bottom: 1px solid var(--kart-kenar);
  background: none;
  font-size: 10px;
}

.ir-fis .tablo tbody td {
  height: auto;
  padding: 6px 4px;
  border-bottom: 1px dotted var(--kart-kenar);
  font-size: var(--kucuk-boy);
}

.ir-fis .tablo tbody tr:last-child td { border-bottom: 0; }

.ir-fis .detay-toplam {
  margin-top: var(--bosluk);
  padding-top: var(--bosluk);
  border-top: 1px solid var(--defter-koyu);
  font-family: var(--yazi-baslik);
  color: var(--defter-koyu);
}

/* Düğmeler fişin dibinde, alt alta sığacak şekilde. */
.ir-fis .detay-eylem,
.ir-fis .form-dip {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
  margin: calc(var(--bosluk) * 1.5) 0 0;
  padding-top: calc(var(--bosluk) * 1.5);
  border-top: 1px solid var(--kart-kenar);
}

.ir-fis .detay-eylem .dugme-birincil,
.ir-fis .detay-eylem .dugme-ikincil,
.ir-fis .form-dip .dugme-birincil,
.ir-fis .form-dip .dugme-ikincil { flex: 1 1 auto; }

/* ---- Fişin düzenleme yüzü ----
   Aynı kâğıt, alanlar yazılabilir. Bölümler kutu açmaz, aralarında
   yalnız kesik çizgi durur. */
.ir-fis-form .form-bolum {
  padding-top: var(--bosluk);
  border-top: 1px dashed var(--kart-kenar);
}

.ir-fis-form .form-bolum:first-child {
  padding-top: 0;
  border-top: 0;
}

.ir-fis-form .form-bolum + .form-bolum { margin-top: var(--bosluk); }

.ir-fis-form .form-ikili { grid-template-columns: minmax(0, 1fr); }

.ir-fis-form .alan-kutu { font-size: var(--kucuk-boy); }

.ir-fis-form .tablo-giris-kutu { font-size: var(--kucuk-boy); }

/* ---- İrsaliye · seçili satır (2026.164) ----
   Detay paneli kaldırıldı: satıra tıklayınca kayıt soldaki mal
   girişine düşer. Sağdaki listede hangi satırın düzenlendiği kırmızı bir
   şeritle ve koyu zeminle belli olur; işaretleme (yeşil) ile
   karışmasın diye ayrı renk kullanılır.
   Kaynak: 4-ekranlar/1-aktarimlar/irsaliye-aktarimi.js */
.tablo-satir.ir-duzenlenen td {
  background: rgba(183, 44, 40, .12);
  font-weight: 600;
}

.tablo-satir.ir-duzenlenen td:first-child {
  box-shadow: inset 3px 0 0 0 var(--vurgu);
}


/* ---------- Gider Seçici · kademeli hesap seçimi (2026.236) ----------
   Panel iki yolu birden taşır: boş kutuda kademe kademe gezinme, dolu
   kutuda bütün dalda arama. */
.gsc { display: flex; flex-direction: column; gap: var(--bosluk); }

.gsc-arama { width: 100%; }

.gsc-tepe {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  padding-bottom: calc(var(--bosluk) / 2);
  border-bottom: 1px solid var(--ayirici);
}

.gsc-yol { font-weight: 600; font-size: var(--kucuk-boy); }

.gsc-geri { flex: none; }

.gsc-liste {
  display: flex;
  flex-direction: column;
  max-height: 46vh;
  overflow-y: auto;
}

.gsc-satir {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  width: 100%;
  padding: calc(var(--bosluk) * 0.8) calc(var(--bosluk) / 2);
  border: 0;
  border-bottom: 1px solid var(--ayirici);
  border-radius: 6px;
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
}

.gsc-satir:last-child { border-bottom: 0; }
.gsc-satir:hover, .gsc-satir:focus-visible { background: var(--oyuk); }

.gsc-kod {
  flex: none;
  width: 92px;
  font-weight: 700;
  opacity: .7;
  font-variant-numeric: tabular-nums;
}

.gsc-ad { flex: 1 1 auto; min-width: 0; }

.gsc-yolcuk {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

.gsc-ok { flex: none; opacity: .5; }

.gsc-buraya {
  width: 100%;
  padding: calc(var(--bosluk) * 0.8);
  border: 1px dashed var(--kart-kenar);
  border-radius: var(--kose-kucuk, 8px);
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--kucuk-boy);
  cursor: pointer;
}

.gsc-buraya:hover { background: var(--oyuk); }

.gsc-dip { display: flex; justify-content: flex-end; }

.gsc-bos { margin: 0; padding: var(--bosluk) 0; font-size: var(--kucuk-boy); opacity: .65; }

.gsc-soru { margin: 0; font-weight: 600; }

.gsc-secenekler { display: flex; flex-direction: column; gap: var(--bosluk); }

.gsc-secenek {
  display: block;
  width: 100%;
  padding: var(--bosluk);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--kose-kucuk, 8px);
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.gsc-secenek:hover, .gsc-secenek:focus-visible {
  border-color: var(--defter-tel, currentColor);
  background: var(--oyuk);
}

.gsc-secenek b { display: block; margin-bottom: 3px; }

.gsc-secenek span {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

.gsc-not {
  margin: 0;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

/* Ekranlardaki gider alanı · seçiciyi açan düğme. */
.gider-dugme {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--yuzey);
  color: inherit;
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
}

.gider-dugme:hover { border-color: var(--defter-tel, currentColor); }
.gider-dugme-bos { color: var(--metin-hata); }
.gider-dugme .gsc-kod { width: auto; margin-right: 4px; }


/* ---------- Gideri Böl (2026.237) ----------
   Her satır: gider hesabı · tutar · açıklama · sil. Kalan sürekli
   görünür; sıfırlanmadan Kaydet açılmaz. */
.gbl { display: flex; flex-direction: column; gap: var(--bosluk); }

.gbl-tepe {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: var(--bosluk);
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
}

.gbl-tepe b { font-size: var(--h3-boy, 18px); font-variant-numeric: tabular-nums; }

.gbl-liste { display: flex; flex-direction: column; gap: calc(var(--bosluk) / 2); }

.gbl-satir {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) 120px minmax(0, 1fr) 32px;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
}

.gbl-tutar { text-align: right; font-variant-numeric: tabular-nums; }

.gbl-sil { justify-self: center; opacity: .6; }
.gbl-sil:hover { opacity: 1; }

/* "Kalanı buraya yaz" satırın altına, tutar sütununun hizasına düşer. */
.gbl-kalan {
  grid-column: 2 / 4;
  justify-self: start;
  padding: 2px 6px;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--etiket-boy);
  text-decoration: underline;
  opacity: .7;
  cursor: pointer;
}

.gbl-kalan:hover { opacity: 1; }

.gbl-ekle { align-self: flex-start; }

.gbl-durum {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: calc(var(--bosluk) * 0.75) var(--bosluk);
  border-radius: var(--kose-kucuk, 8px);
  font-size: var(--kucuk-boy);
}

.gbl-tam { background: var(--basari-zemin, var(--oyuk)); color: var(--metin-basari); }
.gbl-eksik { background: var(--oyuk); }
.gbl-eksik b { font-variant-numeric: tabular-nums; }

.gbl-uyari { margin: 0; font-size: var(--kucuk-boy); color: var(--metin-hata); }

@media (max-width: 719.98px) {
  .gbl-satir { grid-template-columns: minmax(0, 1fr) 100px 32px; }
  .gbl-ack { grid-column: 1 / 3; }
  .gbl-kalan { grid-column: 1 / 4; }
}

/* Kart satırındaki küçük "Böl" düğmesi · gider düğmesinin altında. */
.kk-bol {
  display: block;
  margin-top: 3px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--etiket-boy);
  text-decoration: underline;
  opacity: .6;
  cursor: pointer;
}

.kk-bol:hover { opacity: 1; }

/* Bölünmüş nakit masraf satırı · hesap kutusunun yerine düğme. */
.gsm-bolunmus {
  width: 100%;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--yuzey);
  color: inherit;
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
}

/* Elle Kayıt'ta gider kutusunun altındaki bölme bağlantısı. */
.elk-bol { margin: -6px 0 var(--bosluk); }

/* Gün sonu nakit masrafında hesap hücresi · kutu değil düğme (2026.239). */
.gsm-secdugme {
  width: 100%;
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gsm-secdugme:hover { border-color: var(--defter-tel, currentColor); }

/* Elle Kayıt'ta seçilmemiş gider düğmesi uyarı rengi taşımaz: alan
   isteğe bağlı. */
.gider-dugme-sade { color: inherit; opacity: .6; }


/* ---------- Gider Seçici · yeni gider paneli (2026.242) ----------
   Üç kademe alt alta: 700 sabit, alt grup, en alt gider. Her kutunun
   altında yazdıkça süzülen öneri listesi durur. */
.gsc-sabit {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--oyuk);
  font-size: var(--kucuk-boy);
}

.gsc-kademe { position: relative; }

.gsc-kapali { opacity: .5; }

.gsc-kademe-kod {
  position: absolute;
  top: 0;
  right: 0;
  font-size: var(--etiket-boy);
  font-weight: 700;
  opacity: .6;
}

.gsc-secili { border-color: var(--defter-tel, currentColor); }

.gsc-oneri-kutu {
  margin-top: 4px;
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--yuzey);
}

.gsc-oneri-satir {
  display: flex;
  align-items: baseline;
  gap: 8px;
  width: 100%;
  padding: 7px 10px;
  border: 0;
  border-bottom: 1px solid var(--ayirici);
  background: none;
  color: inherit;
  font: inherit;
  font-size: var(--kucuk-boy);
  text-align: left;
  cursor: pointer;
}

.gsc-oneri-satir:last-child { border-bottom: 0; }
.gsc-oneri-satir:hover,
.gsc-oneri-satir:focus-visible { background: var(--oyuk); }

/* "Yeni açılacak" satırı listenin başında, ayrı görünür. */
.gsc-oneri-yeni {
  padding: 7px 10px;
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
  font-size: var(--kucuk-boy);
  font-weight: 600;
}

.gsc-oneri-bos {
  padding: 7px 10px;
  font-size: var(--kucuk-boy);
  opacity: .6;
}

/* ---- Bloke denetimi ----  (2026.250)
   Blokeye giren ile çözülen tutmuyorsa çıkan şerit. Aktarımı
   engellemediği için ENGEL rengi (gsk-uyari-engel) kullanılmaz: bu bir
   bilgi, bir durdurma değil. */

.ba-bloke-dokum { margin-top: calc(var(--bosluk) * .75); }

/* Satır durumu renkle de anlatılır ama YALNIZ renkle değil: "Durum"
   sütununda yazısı da var (6-belgeler/NIZAM.md · erişilebilirlik). */
.ba-bloke-fazla td,
.ba-bloke-gecikmis td,
.ba-bloke-gunSonuYok td { background: rgba(184, 117, 3, .10); }

.ba-bloke-bekliyor td { opacity: .7; }

.ba-bloke-tamam td { background: rgba(47, 125, 83, .07); }


/* ---------------------------------------------------------------------
   KÂR DAĞITIMI · 2026.293 · 4-ekranlar/2-raporlar/kar-zarar.js
   Kutunun dibindeki düğme ve dağıtım paneli.
   --------------------------------------------------------------------- */
.kz-dagit-dugme { margin-top: calc(var(--bosluk) / 2); }
.kz-dagit-gecmis { margin-left: var(--bosluk); }

.kzd { display: flex; flex-direction: column; gap: calc(var(--bosluk) * 1.5); }

/* Dönem · kâr · dağıtılabilir · üç künye yan yana, dar ekranda alt alta. */
.kzd-ozet {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
}

.kzd-ozet > div {
  flex: 1 1 140px;
  min-width: 0;
  padding: var(--bosluk) calc(var(--bosluk) * 1.25);
  border-radius: 12px;
  background: var(--oyuk);
}

.kzd-ozet span {
  display: block;
  font-size: var(--kucuk-boy);
  opacity: .7;
}

.kzd-ozet b {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

.kzd-tablo { width: 100%; border-collapse: collapse; }

.kzd-tablo th {
  padding: 0 calc(var(--bosluk) / 2) calc(var(--bosluk) / 2);
  text-align: left;
  opacity: .7;
}

.kzd-tablo th:not(:first-child) { text-align: right; }

.kzd-satir > td {
  padding: calc(var(--bosluk) / 2);
  border-top: 1px solid var(--ayirici);
  vertical-align: middle;
}

.kzd-ad { line-height: 1.3; }

.kzd-kod {
  display: block;
  font-size: var(--kucuk-boy);
  opacity: .6;
  font-variant-numeric: tabular-nums;
}

/* Kutu ile birimi yan yana: yüzde ve lira işareti kutunun dışında
   durur, kutuya yazılan sayıyı daraltmaz. Hizalama td'ye DEĞİL içindeki
   span'e verilir; flex olan bir td tablo hücresi olmaktan çıkar ve satır
   alt alta dağılır. */
.kzd-oran,
.kzd-tutar { text-align: right; white-space: nowrap; }

.kzd-kutu {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: calc(var(--bosluk) / 2);
}

.kzd-oran .alan-kutu { width: 5.5rem; text-align: right; }
.kzd-tutar .alan-kutu { width: 9rem; text-align: right; }
.kzd-kutu i { font-style: normal; opacity: .6; }

.kzd-toplam {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: var(--bosluk) calc(var(--bosluk) * 1.25);
  border-radius: 12px;
  background: var(--oyuk);
  font-weight: 600;
}

.kzd-toplam b {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Kalanı aşan toplam kırmızı okunur: kaydet düğmesine basmadan görünür. */
.kzd-asiyor {
  background: rgba(183, 44, 40, .12);
  color: var(--metin-hata);
}

.kzd-araclar,
.kzd-ekle {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
  justify-content: flex-end;
}

.kzd-ekle { justify-content: flex-start; }

.kzd-gecmis {
  padding-top: var(--bosluk);
  border-top: 1px solid var(--ayirici);
}

.kzd-gecmis-basi {
  margin-bottom: calc(var(--bosluk) / 2);
  font-size: var(--kucuk-boy);
  font-weight: 600;
  opacity: .7;
}

.kzd-gecmis-satir {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) / 2) 0;
  border-top: 1px solid var(--ayirici);
}

.kzd-gecmis-ad { flex: 1 1 auto; min-width: 0; line-height: 1.3; }

.kzd-gecmis-not {
  display: block;
  font-size: var(--kucuk-boy);
  opacity: .6;
}

.kzd-gecmis-tutar {
  flex: none;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* Telefonda tablo sıkışmasın: kutular kendi satırına iner. */
@media (max-width: 560px) {
  .kzd-tablo thead { display: none; }
  .kzd-satir { display: block; padding: calc(var(--bosluk) / 2) 0; }
  .kzd-satir > td { display: block; border-top: 0; padding: 2px 0; }
  .kzd-satir > td.kzd-ad {
    border-top: 1px solid var(--ayirici);
    padding-top: calc(var(--bosluk) / 2);
    font-weight: 600;
  }
  .kzd-kutu { display: flex; justify-content: space-between; }
  .kzd-oran .alan-kutu,
  .kzd-tutar .alan-kutu { flex: 1 1 auto; width: auto; }
}

/* ---------------------------------------------------------------------
   Giriş ekranı · 3-cekirdek/1-altyapi/giris.js

   Açılış ekranıyla aynı zemin ve aynı marka hizası: kullanıcı açılıştan
   girişe geçerken sayfa değişmiş gibi olmasın. Kart tek sütun, telefonda
   kenardan 16px boşluk bırakır ve masaüstünde 380px'te durur — daha
   geniş bir form alanı boş yere göz gezdiriyor.
   -------------------------------------------------------------------- */
.giris {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--bosluk) * 3);
  background: var(--zemin);
  overflow-y: auto;
}

.giris-kart {
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--bosluk);
  background: var(--kart-zemin);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  padding: calc(var(--bosluk) * 3);
}

.giris-logo {
  width: 132px;
  height: auto;
  object-fit: contain;
}

.giris-marka {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  text-align: center;
}

.giris-urun {
  color: var(--ikinci);
  font-size: var(--kucuk-boy);
  margin-bottom: var(--bosluk);
}

.giris-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 1.5);
}

/* Bilgi satırı · hata değil, ne olduğunu söyler. */
.giris-not {
  background: rgba(47, 111, 176, .10);
  color: var(--metin-bilgi);
  border-radius: var(--kose-kutu);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  font-size: var(--kucuk-boy);
  line-height: 1.45;
}

.giris-yardimci {
  font-size: var(--kucuk-boy);
  line-height: 1.45;
  margin: 0;
  text-align: center;
}

/* Kullanıcılar ekranının yönetim satırı · 4-ekranlar/4-yonetim/kullanicilar.js
   Personel ekranının satırıyla aynı biçimi kullanır; farkı, sağdaki
   seçim kutusu ve iki düğmenin dar ekranda alt satıra inmesidir.
   --ku-pay .ku-kart'ta tanımlı; bu satırlar Ayarlar kartının içinde
   durduğu için burada kendi karşılığı verilir. */
.ku-satir-yonetim {
  --ku-pay: 0px;
  flex-wrap: wrap;
  row-gap: var(--bosluk);
}

.ku-satir-yonetim .ku-sag { flex-wrap: wrap; }

.ku-satir-pasif .ku-yazi { opacity: .6; }

/* Katman seçicisi · sarmalayıcı öğe (NS.form.aranan · 2026.319).
   Genişlik sarmalayıcının, dolgu içteki kutunun işi. */
.ku-katman {
  width: auto;
  min-width: 118px;
}

.ku-katman .sec-kutu { padding-block: 6px; }

@media (max-width: 560px) {
  .ku-satir-yonetim .ku-yazi { flex: 1 1 100%; }
  .ku-satir-yonetim .ku-sag { flex: 1 1 100%; }
  .ku-katman { flex: 1 1 100%; min-width: 0; }
}

/* Giriş ekranındaki ince bağlantı düğmesi · "İlk kurulum".
   Birincil düğmenin yanında ikinci bir düğme gibi durmasın diye
   çerçevesiz ve zeminsiz; bir bağlantı gibi okunur. */
.giris-baglanti {
  display: block;
  width: 100%;
  border: 0;
  background: none;
  color: var(--vurgu);
  font: inherit;
  font-size: var(--kucuk-boy);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  padding: var(--bosluk);
}

/* =====================================================================
   REFERANS GÖRSELE UYARLAMA · 2026.308
   Bu blok EN SONDA durur: eşit ağırlıktaki kuralları o yüzden yener ve
   ekran dosyalarında tek tek arama yapmak gerekmez.
   ===================================================================== */

/* ---------------------------------------------------------------------
   PARA SERİFE ALINMAZ
   Başlık ailesi klasik bir serif (Playfair Display) ve rakamları
   orantılı: alt alta duran tutarlar sütunda kaymaya başlıyor, virgüller
   hizasını kaybediyor. Muhasebe tablosunda bu okunaklığı doğrudan
   bozar.

   Bu yüzden ADI serif, RAKAMI Inter: aşağıdaki kalıplar tutar, para,
   sayı ve bakiye taşıyan bütün hücreleri metin ailesine geri çeker.
   Sınıf adları "-tutar", "-para" gibi bitiyor (örn. .hesap-tutar,
   .gs-para, .kz-td-tutar); kalıp bunu yakalar, yeni bir ekran aynı adı
   kullandığında kendiliğinden kapsanır.
   --------------------------------------------------------------------- */
td[class*="-para"],
td[class*="-tutar"],
[class*="-para"],
[class*="-tutar"],
[class*="-sayi"],
[class*="-bakiye"],
.gs-kutu,
.alan-kutu,
.tablo-tutar {
  font-family: var(--yazi-metin);
}

/* ---------------------------------------------------------------------
   TEPE KUŞAĞI · sayfanın künyesi
   Referans görselde kuşak bir kartvizit gibi: altın çerçeve, solda
   sayfanın kimliği, sağda kullanıcı, arkada soluk bir İstanbul çizimi.

   Çizim kuşağın KENDİ zeminine değil, altındaki ayrı bir katmana biner:
   solukluğu tek bir sayıdan ayarlanabilsin diye. Doğrudan .sayfa-kusak
   üstünde opacity kullanılsaydı kuşağın yazısı da solardı.
   --------------------------------------------------------------------- */
.sayfa-kusak::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--kusak-gorsel, none);
  background-repeat: no-repeat;
  background-position: center right;
  background-size: auto 100%;
  opacity: .30;
  pointer-events: none;
}

/* Çizim yazının altında kalır. */
.sayfa-kusak-ic { position: relative; z-index: 1; }

/* Sayfa adının altındaki altın tel · referans görseldeki ayracın
   kuşaktaki karşılığı. Sola yaslı başlığın altında sola yaslı durur;
   dar ekranda başlık ortalandığı için o da ortalanır. */
.sayfa-kusak-ad::after {
  content: "";
  display: block;
  width: 64px;
  height: 1px;
  margin-top: calc(var(--bosluk) * .75);
  background: linear-gradient(90deg, var(--altin), transparent);
}

@media (max-width: 900px) {
  .sayfa-kusak-ad::after { margin-left: auto; margin-right: auto;
    background: linear-gradient(90deg, transparent, var(--altin), transparent); }
}

/* Markanın adı kuşakta altın renkte durur: referans görselde sayfa
   adının üstündeki küçük büyük harfli satır bu renkte. */
.sayfa-kusak-ust { color: var(--ikinci); }

/* Giriş ekranının silueti · giriş perdesi tam sayfayı kaplayan ayrı bir
   katmandır (.giris · position: fixed · z-index 60) ve arkasındaki
   .zemin-doku'yu tümden örter. Siluet uygulamanın her sayfasında
   durduğuna göre ilk açılan ekranda da durmalı; o yüzden perde kendi
   siluetini taşır. Solukluk .zemin-doku ile aynı sayıdır. */
.giris::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  background-image: var(--zemin-gorsel, none);
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: 100% auto;
  opacity: .45;
  pointer-events: none;
}

/* Giriş kartı siluetin üstünde kalır. */
.giris-kart { position: relative; z-index: 1; }

/* Dar ekranda kuşak alçalır ve başlık ortalanır: çizim tam yazının
   altına denk gelir. Orada daha da soluk durur, yoksa başlığı okumak
   zorlaşıyor. */
@media (max-width: 900px) {
  .sayfa-kusak::before { opacity: .16; }
}

/* =====================================================================
   GARANTİ POS EKSTRESİ · 2026.311
   Genresman Garanti'yi tek rakam verir, banka parayı üç ayrı valörde
   yatırır. Satır bu yüzden açılır bir gruptur ve ekstre Bankalar
   başlığındaki düğmeden yüklenir.
   ===================================================================== */

/* Grup başlığındaki küçük düğme · başlığın kendisi gibi sessiz durur,
   satırın ağırlığını bozmaz. Başlık büyük harfli ve aralıklı; düğme
   normal yazıyla yazılır ki etiket değil düğme olduğu anlaşılsın. */
.gs-grup-dugme {
  margin-left: calc(var(--bosluk) * 1.5);
  padding: 2px calc(var(--bosluk) * 1.25);
  font-size: var(--kucuk-boy);
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
}

/* Üstüne gelince NÖTR bir tona oturur (2026.509). Eskiden tam bordoya
   dönüp beyaz yazıyordu: sessiz bir grup düğmesi, fare değdiği an
   sayfanın en baskın öğesi oluyor ve seçilmiş gibi duruyordu. Bordo
   dolgu bu programda seçili olanın işaretidir. */
@media (hover: hover) {
  .gs-grup-dugme:hover:not(:disabled) {
    background: var(--oyuk);
    border-color: var(--vurgu);
  }
}

/* POS ekstresindeki kaynakta kesilen tutarın notu (2026.492).
   Garanti satırının adının yanında, düğmenin ardında durur: kutularda
   brüt yazılı, blokeye bu kadar eksik gidiyor. İkinci satıra iner —
   grup adının yanında yer kalmıyor. */
.gs-pos-kesinti {
  display: block;
  margin-top: 3px;
  font: 400 var(--kucuk-boy) / 1.4 var(--yazi-metin);
  color: var(--metin-uyari);
  text-transform: none;
  letter-spacing: 0;
}

.gs-pos-kesinti b { font-weight: 700; }

/* Parçanın raporda karşılığı yok: hücrede rakam değil tire durur.
   Soluk gri, çünkü okunacak bir şey değil — "burada bir şey yok"un
   kendisi. */
.gs-bos-hucre { color: var(--ikinci); opacity: .55; }

/* Parça satırı bir kademe daha içeride durur: hangi grubun altında
   olduğu girintiden okunur. */
.gs-satir-parca .gs-ad { padding-left: calc(var(--bosluk) * 6); }

@media (max-width: 900px) {
  .gs-satir-parca .gs-ad { padding-left: calc(var(--bosluk) * 3); }
}

/* ---- Yükleme penceresi · tek iş yapar, döküm göstermez ---- */
.gs-garanti-kucuk {
  margin: calc(var(--bosluk) * .5) 0 calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  color: var(--ikinci);
}

.gs-garanti-uyari {
  margin: var(--bosluk) 0 0;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-left: 3px solid var(--uyari);
  border-radius: var(--kose-kutu);
  background: rgba(154, 101, 16, .10);
  font-size: var(--kucuk-boy);
  color: var(--metin);
}

.gs-garanti-uyari ul {
  margin: calc(var(--bosluk) * .75) 0;
  padding-left: calc(var(--bosluk) * 2.5);
  font-variant-numeric: tabular-nums;
}

/* ---- Gün sonu · hesap eşleştirmesi penceresi ----
   Her satır bir ödeme yöntemi ve karşısında hangi bloke hesabına
   yazılacağı. Ad solda, hesap sağda; dar ekranda alt alta iner. */
.gs-ayar-liste {
  display: flex;
  flex-direction: column;
  gap: calc(var(--bosluk) * 1.5);
  margin: calc(var(--bosluk) * 2) 0;
}

.gs-ayar-satir {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 2);
}

.gs-ayar-ad {
  flex: 0 0 200px;
  display: flex;
  flex-direction: column;
  font-weight: 600;
}

/* Satırın hangi grupta olduğu adın altında, sessizce durur: aynı adı
   taşıyan iki satır olsaydı ayırt edilsin. */
.gs-ayar-grup {
  font-size: var(--kucuk-boy);
  font-weight: 400;
  color: var(--ikinci);
}

.gs-ayar-kutu { flex: 1 1 auto; min-width: 0; }

@media (max-width: 720px) {
  .gs-ayar-satir { flex-direction: column; align-items: stretch; gap: calc(var(--bosluk) * .75); }
  .gs-ayar-ad { flex: none; }
}

/* ---- KART · panel sütunlarının aynısı (2026.377 · kullanıcının kararı:
   "tasarımı beğenmedim, referans renkleri ve tasarımı buradan
   alabilirsin" · gösterge panelindeki "Son ödemeler" sütunu) ------------
   Kural tek tek kopyalanmadı, aynı belirteçlerden kuruldu: kart zemini,
   çift tel çerçeve (dışta altın, içeride soluk ikinci tel), 20px köşe.
   Üstte künye bandı · ortada BEYAZ kâğıt · altta altın dip bandı.
   Sayım tablosu böylece tek başına duran bir ızgara olmaktan çıkıyor. */
.sy-kart {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
}

.sy-kart::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

.sy-kart-basi {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.75) calc(var(--bosluk) * 2.25);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.sy-kart-simge {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}

.sy-kart-yazi { min-width: 0; }

.sy-kart-ad {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.sy-kart-alt {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .7;
}

/* Gövde beyaz kâğıttır; kaydırma kutusunun köşesi kartın içinde yuvarlak
   durmaz, kart zaten yuvarlak. */
.sy-kart-govde { flex: 1 1 auto; background: var(--kart-yuzey); }
.sy-kart-govde .tablo-kutu { border-radius: 0; background: transparent; }

/* Depo çoksa şerit taşmaz, KAYAR: telefonda dört depo yan yana sığmıyor
   ve şerit sayfayı yana açıyordu. */
.sy-depo-serit .secim-serit {
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}

.sy-depo-serit .secim-serit::-webkit-scrollbar { display: none; }

.secim-sekme[aria-selected="true"] .sy-depo-tik { color: inherit; }

.sy-uyari {
  margin: 0 0 var(--bosluk);
  padding: var(--bosluk) calc(var(--bosluk) * 1.5);
  border-left: 3px solid var(--uyari);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--uyari-zemin, var(--oyuk));
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* KUTU DEĞİL, METİN GİRİŞİ (2026.375 · kullanıcının isteği: "kutular
   yerine metin girişleri olsun"). Çerçeveli kutular tabloyu form
   yığınına çeviriyordu; sayfa bir sayım kâğıdı, her hücre zaten bir
   doldurma yeri. Kutu ancak imleç içine girince altını çizdirir. */
.sy-giris {
  width: 100%;
  height: 30px;
  padding: 0 2px;
  border: 0;
  /* YAZIM ÇİZGİSİ HER ZAMAN DURUR (2026.376 · kullanıcının bildirimi:
     "metin girişi yapamıyorum, giriş kalsın yine ama kutu olmasın").
     Çizgi yalnız imleç üstüne gelince çıkıyordu; hücre bomboş
     görününce kullanıcı oraya yazılabildiğini anlamıyordu. Artık
     defterdeki gibi ince bir yazım çizgisi hep durur — kutu değil,
     çizgi: nereye yazılacağını söyler, tabloyu forma çevirmez. */
  border-bottom: 1px solid var(--defter-tel);
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: right;
  font-variant-numeric: tabular-nums;
  transition: border-color .12s ease, background-color .12s ease;
}

.sy-giris::placeholder { opacity: .35; }

.sy-giris:hover:not(:read-only) {
  border-bottom-color: var(--vurgu);
  background: color-mix(in srgb, var(--vurgu) 5%, transparent);
}

.sy-giris:focus {
  outline: none;
  border-bottom: 2px solid var(--vurgu);
  background: color-mix(in srgb, var(--vurgu) 7%, transparent);
}

.sy-giris.alan-hatali { border-bottom: 1px solid var(--hata); }

.sy-yazim .sy-giris { flex: 1 1 auto; min-width: 0; width: auto; }

/* ---- Özet · çıkarma işlemi ---- */
/* ÖZET KARTIN DİP BANDIDIR (2026.377), altta duran ayrı bir kutu değil:
   referanstaki "Listedekilerin toplamı · 298.586,59 ₺" bandının yerini
   tutar. Tablo ile toplam arasında boşluk kalmayınca üçü — başlık,
   kâğıt, toplam — tek bir belge gibi duruyor. */
.sy-ozet {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--bosluk) calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 2.25);
  border-top: 1px solid var(--defter-tel-soluk);
  background: var(--defter-acilis);
}

.sy-ozet-hucre { display: flex; flex-direction: column; gap: 3px; min-width: 0; }

.sy-ozet-ad {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .05em;
  text-transform: uppercase;
  opacity: .6;
}

.sy-ozet-sayi {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-variant-numeric: tabular-nums;
}

/* İşaretler sayıların arasında durur: üç kutu değil, bir işlem. */
.sy-ozet-isaret {
  flex: none;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  opacity: .45;
}

/* Sonuç işlemin sağında durur ama ondan KOPMAZ: margin-left:auto
   denendi, "=" ile sonuç arasında kocaman bir boşluk kalıyor ve işlem
   üç ayrı kutuya bölünmüş gibi görünüyordu (2026.373). */
.sy-ozet-vurgu { padding-left: calc(var(--bosluk) / 2); }

.sy-ozet-vurgu .sy-ozet-sayi {
  font-weight: 700;
  color: var(--defter-koyu);
}

.sy-ozet-not {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .55;
}

@media (max-width: 899.98px) {
  .sy-ozet { flex-direction: column; align-items: stretch; }
  .sy-ozet-isaret { display: none; }
  .sy-ozet-vurgu { padding-left: 0; padding-top: var(--bosluk);
    border-top: 1px solid var(--defter-tel-soluk); }
}


/* ---------- Faturasız Alım · "Ne alındı?" paneli (2026.345) ----------
   Faturası olmayan bir ödemenin tutarı ürünlere dağıtılır. Düzen
   Gideri Böl ile aynı ailedendir (aynı durum şeridi, aynı "kalanı yaz"
   düğmesi) — kullanıcı iki panelde iki ayrı şey öğrenmesin. */
/* ---- Panel bir FATURA ÖNİZLEMESİ gibi durur (2026.369) ----
   Kullanıcının isteği: "bu ekran çok daha iyi olsun tasarım olarak ve
   fatura önizlemesi gibi dursun."

   Dili Fatura Görünümü'nden alındı (.fatura-b-*): tepede oyuk zeminli
   başlık bandı, altında künye şeridi, ortada kendi kutusundaki kalem
   tablosu, en altta kırım ve genel toplam. Kullanıcı burada elinde
   OLMAYAN faturayı yazıyor; ekran o faturaya benzeyince ne yaptığı
   kendiliğinden anlaşılıyor. */
.fzs { display: flex; flex-direction: column; gap: calc(var(--bosluk) * 1.5); }

.fzs-kagit {
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  overflow: hidden;
}

.fzs-tepe {
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.fzs-tepe-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.fzs-tepe-alt {
  display: block;
  margin-top: 2px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
  overflow-wrap: anywhere;
}

/* Künye şeridi · tarih ve ödenen yan yana, dar ekranda alt alta. */
.fzs-kunye {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--bosluk) calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
}

/* Ekstredeki açıklama uzundur: yarım sütuna sıkıştırmak yerine kendi
   satırını alır (fatura künyesindeki "Fatura No" ile aynı kural). */
.fzs-kunye-genis { grid-column: 1 / -1; }

.fzs-kunye-alan { display: flex; flex-direction: column; gap: 1px; min-width: 0; }

.fzs-kunye-etiket {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .6;
}

.fzs-kunye-deger {
  font-size: var(--govde-boy);
  line-height: var(--govde-satir);
  font-weight: 600;
  overflow-wrap: anywhere;
}

/* Kalem tablosu kendi kutusunda durur: faturanın orta bölümü. */
.fzs-tablo-kutu {
  overflow-x: auto;
  margin: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2) 0;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
}

/* Tablo DARALMAZ, KUTUSUNDA KAYAR: width:100% tek başına verilince
   tarayıcı sütunları belirtilen genişliğin altına sıkıştırıyor ve
   telefonda "12,00" ile "Kilogram" kutuya sığmıyordu. Alt sınır konunca
   kutu yana kaydırılır, yazı bütün kalır. */
.fzs-tablo {
  width: 100%;
  /* Sütunların toplamı: 150 + 96 + 136 + 136 + 220 + 38 = 776.
     Altına inince tarayıcı sütunları kendi arasında sıkıştırıyor ve
     "12,00" ile "Kilogram" kutulara sığmıyor. */
  min-width: 780px;
  border-collapse: collapse;
}

/* Gider kipinde Miktar ve Birim sütunları hiç çizilmiyor (2026.348):
   150 + 136 + 220 + 38 = 544. */
.fzs-tablo.fzs-gider { min-width: 560px; }

.fzs-tablo th {
  padding: var(--bosluk) calc(var(--bosluk) * 1.25);
  border-bottom: 1px solid var(--ayirici);
  background: var(--oyuk);
  text-align: left;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.fzs-tablo td {
  padding: 8px calc(var(--bosluk) * 1.25);
  border-bottom: 1px solid var(--ayirici);
  vertical-align: top;
}

.fzs-tablo tbody tr:last-child td { border-bottom: 0; }

.fzs-tablo th.sag { text-align: right; }

.fzs-tablo .fzs-h-ad  { width: auto; min-width: 150px; }
/* Kutular yazıyı kırpmasın: "12,00" ve "Kilogram" sığacak kadar.
   Eskiden 84/118px'ti ve ikisi de üç noktaya iniyordu. */
.fzs-tablo .fzs-h-mik { width: 96px; }
.fzs-tablo .fzs-h-brm { width: 136px; }
.fzs-tablo .fzs-h-tut { width: 136px; text-align: right; }
.fzs-tablo .fzs-h-hes { width: 220px; }
.fzs-tablo .fzs-h-sil { width: 38px; }

.fzs-mik, .fzs-tutar { text-align: right; font-variant-numeric: tabular-nums; }

.fzs-tutar-sarma { display: flex; flex-direction: column; align-items: stretch; }

.fzs-kalan {
  align-self: flex-end;
  margin-top: 2px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--vurgu);
  font: inherit;
  font-size: var(--etiket-boy);
  text-decoration: underline;
  cursor: pointer;
  opacity: .8;
}

.fzs-kalan:hover { opacity: 1; }

.fzs-sil { opacity: .55; }
.fzs-sil:hover { opacity: 1; }

.fzs-ekle-satir { padding: var(--bosluk) calc(var(--bosluk) * 2) 0; }
.fzs-ekle { align-self: flex-start; }

/* ---- Altlık · faturanın toplam şeridi ----
   Dağıtılan üstte küçük, ödenen altta kalın; kullanıcı iki sayıyı alt
   alta görüp farkı kendisi okur. */
.fzs-altlik {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: flex-end;
  gap: var(--bosluk) calc(var(--bosluk) * 3);
  margin-top: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 2);
  border-top: 1px solid var(--ayirici);
  background: var(--oyuk);
}

.fzs-kirim {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 200px;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.fzs-kirim-satir { display: flex; justify-content: space-between; gap: var(--bosluk); }
.fzs-kirim-satir b { font-variant-numeric: tabular-nums; }

/* Eksik ya da fazla dağıtım kırmızı durur: kayıt o hâlde yazılamaz. */
.fzs-kirim-eksik { color: var(--metin-hata); font-weight: 600; }

.fzs-kirim-tam {
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  color: var(--metin-basari);
  font-weight: 600;
}

.fzs-kirim-tam svg { display: block; flex: none; }

.fzs-genel {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  flex: none;
}

.fzs-genel span {
  font-size: var(--etiket-boy);
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .65;
}

.fzs-genel b {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-variant-numeric: tabular-nums;
  color: var(--defter-koyu);
}

.fzs-uyari {
  margin: 0;
  padding: var(--bosluk) calc(var(--bosluk) * 2);
  border-top: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  color: var(--metin-hata);
}

.fzs-not { margin: 0; font-size: var(--kucuk-boy); opacity: .75; }

/* Telefonda kâğıdın payları daralır; tablo kendi içinde yana kayar. */
@media (max-width: 719.98px) {
  .fzs-tepe, .fzs-kunye { padding: var(--bosluk) calc(var(--bosluk) * 1.25); }
  .fzs-tablo-kutu { margin: var(--bosluk) calc(var(--bosluk) * 1.25) 0; }
  .fzs-ekle-satir { padding: var(--bosluk) calc(var(--bosluk) * 1.25) 0; }
  .fzs-altlik, .fzs-uyari { padding: var(--bosluk) calc(var(--bosluk) * 1.25); }
  .fzs-genel b { font-size: var(--govde-boy); line-height: var(--govde-satir); }
}

/* Dar ekranda tablo kendi kutusunda yana kayar; kutular daralmaz ki
   rakam yazılamaz hâle gelmesin. ÖLÇÜ MASAÜSTÜYLE AYNI (2026.369):
   telefonda 640px'e indirilince kazanılan şey biraz daha az yana
   kaydırmaktı, kaybedilen şey ise rakamın kendisi — "12,00" kutuya
   sığmıyordu. Kaydırmak okunamamaktan iyidir. */
@media (max-width: 719.98px) {
  .fzs-tablo { min-width: 780px; }
}


/* ---------- Elle Kayıt · fatura ikonu (2026.345) ----------
   Formun tepesinde tek bir düğme: yeşilse faturalı (ilgili hesap
   sorulur), kırmızıysa faturasız ("ne alındı?" paneli açılır). Tablo
   ekranlarındaki ikonun form hâli — orada yalnız ikon sığıyor, burada
   yanına ne demek olduğu da yazılıyor. */
.elk-fatura-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(var(--bosluk) / 2) var(--bosluk);
  margin-bottom: calc(var(--bosluk) * .75);
}

.elk-fatura {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 var(--bosluk);
  border: 1px solid var(--ayirici);
  border-radius: 10px;
  background: var(--yuzey);
  color: var(--metin);
  font: inherit;
  font-size: var(--kucuk-boy);
  cursor: pointer;
}

.elk-fatura svg { display: block; flex: none; }

.elk-fatura-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--oyuk));
  color: var(--metin-basari);
}

/* Renk tek başına anlam taşımasın: kırmızı hâlde çerçeve de kesik. */
.elk-fatura-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

.elk-fatura:focus-visible { outline: none; border-color: var(--altin); }

/* 2026.360 · açıklama artık şeridin içinde değil, altında kendi
   satırında. Eski kural (flex: 1) düğmelerin sağında kalan boşluğa
   sıkışıyordu; sınıf adı da kalktı, yerini .elk-not aldı. */

/* Özette dağıtılmayı bekleyen tutar · kayıt bu hâlde yazılamaz. */
.ozet-satir-uyari { color: var(--metin-hata); font-weight: 600; }

/* Tutarı yazılmamış masraf satırı · henüz sorulacak bir şey yok. */
.gsm-hesap.gsm-bos {
  border-style: dashed;
  border-color: var(--ayirici);
  color: inherit;
  opacity: .45;
}

/* ---------- Elle Kayıt · depo düğmesi (2026.347) ----------
   Fatura düğmesinin yanında durur, aynı kabuğu kullanır. Açıkken mal
   depoya girer (150 · 153 · 255), kapalıyken doğrudan gider (700).
   Kapalı hâlde kesik çerçeve: renk tek başına anlam taşımasın. */
.elk-depo-var {
  border-color: var(--metin-basari);
  background: var(--basari-zemin, var(--oyuk));
  color: var(--metin-basari);
}

.elk-depo-yok {
  border-style: dashed;
  border-color: var(--hata);
  color: var(--metin-hata);
}

/* Gider kipinde Miktar ve Birim sütunları hiç çizilmiyor (2026.348 ·
   kullanıcının bildirimi: "doğrudan gider olunca buna gerek yok").
   Kalan dört sütun dar ekranda da rahat sığar. */
@media (max-width: 719.98px) {
  .fzs-tablo.fzs-gider { min-width: 560px; }
}


/* ---------- Mizan (2026.354 · defter kâğıdı 2026.355) ----------
   Kullanıcının isteği: "tablo renkleri desenli ve daha güzel olsun."

   Mizan artık Hesap Defteri'nin (.hd-defter) kâğıdını kullanıyor — aynı
   uygulamada iki ayrı tablo dili olmasın diye. O dilin dört işareti var:

     ÇİFT ÇERÇEVE · dışta koyu kahve tel, içeride soluk altın ikinci tel
     KÖŞE ÇENTİĞİ · dört köşede iki ince çizginin kesiştiği küçük işaret
     BAŞLIK ŞERİDİ · en koyu krem zemin, altında 2px koyu kural
     DÖNÜŞÜMLÜ SATIR · tek satır fildişi, çift satır krem

   Renkler degiskenler.css'teki --defter-* takımından gelir; burada yeni
   renk tanımlanmaz. */

/* Kâğıt · çift çerçeve ve köşe çentikleri. */
.mz-kagit {
  position: relative;
  border: 1px solid var(--defter-koyu);
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk),
              0 2px 6px -4px rgba(58, 42, 29, .35);
  /* Kâğıt greni · uygulamanın kendi dokusu (temel.css · .gren). Kartın
     kendisine verilir; satır zeminleri hafif saydam olduğu için gren
     altlarından sızar ve tablo düz boya gibi durmaz. */
  background-color: var(--defter-zemin);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.mz-kagit::before,
.mz-kagit::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border: 1px solid var(--defter-tel);
  opacity: .55;
  pointer-events: none;
  z-index: 1;
}

.mz-kagit::before { top: 5px; left: 5px; border-right: 0; border-bottom: 0; }
.mz-kagit::after { bottom: 5px; right: 5px; border-left: 0; border-top: 0; }

.mz-tablo {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  min-width: 720px;
}

/* Başlık şeridi · defterin kendi başlığı: koyu krem zemin, başlık
   yazı tipi, altında kalın kural. */
.mz-tablo thead th {
  padding: 10px;
  text-align: left;
  white-space: nowrap;
}

/* Köşe çentiği başlığın altında kalmasın. */
.mz-tablo thead th:first-child { border-top-left-radius: 11px; }
.mz-tablo thead th:last-child { border-top-right-radius: 11px; }

.mz-tablo th.mz-td-para { text-align: right; }

.mz-tablo td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--defter-tel-soluk);
}

/* Sütun ayracı · başlıkta ve gövdede aynı çizgi, aynı yerde. İlk
   sütunda yok: kâğıdın kendi çerçevesi zaten orada. */
.mz-tablo th + th,
.mz-tablo td + td { border-left: 1px solid var(--defter-cizgi); }

/* DÖNÜŞÜMLÜ SATIR · hesap satırlarında. Grup satırının kendi zemini
   var, o sırayı bozmasın diye yalnız .mz-satir sayılır. */
/* Satır zeminleri hafif saydam: altındaki gren sızsın, renk yine
   defterin kendi tonunda kalsın. */
.mz-satir:nth-of-type(even) {
  background: color-mix(in srgb, var(--defter-satir-cift) 88%, transparent);
}

.mz-satir:nth-of-type(odd) {
  background: color-mix(in srgb, var(--defter-satir) 80%, transparent);
}

.mz-satir:hover { background: var(--defter-hover); }

.mz-td-para {
  width: 124px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  white-space: nowrap;
}

/* Dönem sonu · defterin asıl cevabı. Artı yeşil, eksi bordo; renge tek
   başına güvenilmesin diye ikisi de kalın (NIZAM.md · Erişilebilirlik). */
.mz-td-sonu {
  font-family: var(--yazi-baslik);
  font-weight: 700;
  color: var(--defter-notr);
}

.mz-td-sonu.rl-eksi { color: var(--defter-eksi); }
.mz-bos { opacity: .3; }

/* "… hesap daha var · göster" · uzun grubun dibindeki sayfa düğmesi
   (2026.432). Hesap satırı gibi durmasın diye zemini yok, yazısı soluk:
   burası bir hesap değil, listenin devamıdır. */
.mz-daha > td { padding: 0; }

.mz-daha-dugme {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 0 calc(var(--bosluk) * 2);
  color: var(--ikinci);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  text-align: left;
}

@media (hover: hover) {
  .mz-daha-dugme:hover { color: var(--vurgu); background: rgba(183, 44, 40, .05); }
}

/* Grup satırı · açılış satırının zeminini alır, üstünde ince bir tel
   ile öncekinden ayrılır. */
.mz-grup {
  background: var(--defter-acilis);
  cursor: pointer;
}

.mz-grup td { border-top: 1px solid var(--defter-tel); }
.mz-grup:hover { background: var(--defter-acilis); filter: brightness(.985); }

.mz-grup .mz-td-para {
  font-family: var(--yazi-baslik);
  font-weight: 700;
  color: var(--defter-koyu);
}

.mz-grup:focus-visible {
  outline: 2px solid var(--altin-koyu);
  outline-offset: -2px;
}

/* Grup adı TEK SATIRDA kalır: "2 hesap" alta kayınca satır iki katına
   çıkıyor ve tablo zıplıyordu. */
.mz-grup .mz-td-ad {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Ok kapalıyken sağa, açıkken aşağı bakar. */
/* Ok KAPALIYKEN SAĞA, AÇIKKEN AŞAĞI bakar (2026.370). Eskiden tersiydi:
   kapalı satırın oku yukarı, açık satırınki sağa dönüyordu — ok
   "buradan devam" değil "yukarıya dön" diyordu. Simgenin kendisi sağa
   bakıyor, o yüzden kapalı hâl hiç döndürülmez. */
.mz-ok {
  display: inline-block;
  margin-right: 6px;
  transform: rotate(0deg);
  transition: transform .12s ease;
  opacity: .55;
  vertical-align: middle;
}

.mz-acik .mz-ok { transform: rotate(90deg); }

.mz-grup-kod {
  display: inline-block;
  min-width: 34px;
  font-size: var(--kucuk-boy);
  opacity: .6;
}

.mz-grup-ad {
  font-family: var(--yazi-baslik);
  font-weight: 700;
  color: var(--defter-koyu);
}

.mz-grup-say {
  margin-left: 8px;
  font-size: var(--etiket-boy);
  opacity: .5;
}

.mz-satir .mz-td-ad {
  padding-left: 22px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Kodla ad arası dar (2026.1465 · kullanıcı: "hesabın adı tam görünmüyor,
   kodla arasındaki boşluğu azalt"); tam ad üstüne gelince (title). */
.mz-kod {
  display: inline-block;
  min-width: 50px;
  margin-right: 5px;
  font-size: var(--kucuk-boy);
  opacity: .55;
}

/* Genel toplam · defterin kapanış satırı: koyu kural üstte, başlık
   şeridinin zemini. */
.mz-toplam td {
  border-top: 2px solid var(--defter-koyu);
  border-bottom: 0;
  background: var(--defter-baslik);
  color: var(--defter-koyu);
  font-family: var(--yazi-baslik);
  font-weight: 700;
}

.mz-toplam td:first-child { border-bottom-left-radius: 11px; }
.mz-toplam td:last-child { border-bottom-right-radius: 11px; }

/* Denklik şeridi · tablonun altında. Denkse yeşil, değilse bordo. */
.mz-denklik {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: var(--bosluk);
  padding: calc(var(--bosluk) * 0.8) var(--bosluk);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kucuk, 8px);
  background: var(--defter-acilis);
  font-size: var(--kucuk-boy);
}

.mz-denk { color: var(--defter-arti); }
.mz-denksiz { border-color: var(--defter-eksi); color: var(--defter-eksi); }

.mz-denklik svg { flex: none; }
.mz-disi { width: 100%; opacity: .65; color: var(--defter-notr); }

/* ---------- Mizan · hesabın hareketleri (2026.370) ----------
   Kullanıcının isteği: "mizanda alt hesaba basınca hareketleri gözüksün
   tarih sırası ile."

   Hesap satırı da açılıp kapanır; altına o hesabın dönem içindeki
   defteri tarih sırasıyla iner. Hareket satırı MİZANIN SATIRI DEĞİLDİR:
   bir kademe daha içeride durur, zemini soluktur ve sol kenarında ince
   bir tel vardır — "bunlar yukarıdaki satırın ayrıntısı" demenin
   defterdeki karşılığı. */
.mz-satir { cursor: pointer; }

.mz-satir-ok {
  display: inline-block;
  margin-right: 6px;
  transform: rotate(0deg);
  transition: transform .12s ease;
  opacity: .4;
  vertical-align: middle;
}

.mz-satir-acik .mz-satir-ok { transform: rotate(90deg); opacity: .75; }

.mz-satir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }

.mz-hrk { background: color-mix(in srgb, var(--defter-acilis) 45%, transparent); }

.mz-hrk .mz-td-ad {
  padding-left: calc(var(--bosluk) * 4);
  border-left: 2px solid var(--defter-tel-soluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.mz-hrk .mz-td-para {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* ---- İKİ SATIRLI HAREKET (2026.389 · kullanıcının isteği: "tarihi
   küçült ve üste al, satır olacak; altında açıklama dursun") ----------
   Üstte künye (tarih · kayıt no), altında açıklama. Eskiden üçü yan
   yanaydı: tarih 88px'lik sabit bir sütun kaplıyor, açıklama sağa
   kayıyor ve uzun adlar iki satıra sarıyordu. Aranan şey açıklamadır;
   artık satırın başında ve tam genişlikte duruyor. */
.mz-hrk-ust {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 1px;
}

.mz-hrk-tarih {
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  opacity: .5;
}

.mz-hrk-aciklama { display: block; overflow-wrap: anywhere; }

/* Kayıt numarası tarihin yanında, soluk: kaydın nereden geldiğini
   söyler (G · gün sonu, B · banka …) ve üzerine gelince açılır. */
.mz-hrk-fis {
  padding: 0 5px;
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 999px;
  font-size: var(--etiket-boy);
  line-height: calc(var(--etiket-satir) + 2px);
  opacity: .55;
  white-space: nowrap;
  cursor: help;
}

.mz-hrk-not .mz-td-ad {
  padding-top: calc(var(--bosluk) * 1.25);
  padding-bottom: calc(var(--bosluk) * 1.25);
  opacity: .7;
}

.mz-hrk-uyari .mz-td-ad { color: var(--metin-uyari); opacity: 1; }

@media (max-width: 719.98px) {
  .mz-td-para { width: 108px; }
  .mz-kod { min-width: 0; margin-right: 6px; }
  .mz-satir .mz-td-ad { padding-left: 14px; }
  .mz-tablo td, .mz-tablo thead th { padding-left: 8px; padding-right: 8px; }
}

/* ---------- Formlar seçimle birlikte BÜYÜYÜP KÜÇÜLMEZ (2026.356) ----------
   Kullanıcının kuralı: "faturası var veya yok diyince form büyüyüp
   küçülüyor ya, öyle olmasın; en geniş gerekli olduğu hâliyle yap…
   bunu genel kural yap, formlar içindeki seçimlere göre değişmesin."

   Bir kutu o an sorulmuyorsa KALDIRILMAZ, pasifleştirilir; yalnız
   basılamayan bir düğme yer tutmuyorsa `elk-gizli` ile görünmez olur —
   `hidden` ya da `display:none` değil, çünkü ikisi de yeri kapatır ve
   altındaki Kaydet düğmesi parmağın altından kaçar. */
.elk-pasif {
  border-style: solid;
  border-color: var(--ayirici);
  background: var(--oyuk);
  color: var(--metin);
  opacity: .5;
  cursor: default;
}

.elk-gizli { visibility: hidden; }

/* Pasif "aranan" kutusu · seçilemeyeceği görünsün ama yer değişmesin. */
.sec .sec-kutu:disabled {
  background: var(--oyuk);
  opacity: .55;
  cursor: default;
}

.sec:has(.sec-kutu:disabled) .sec-ok { opacity: .35; }

/* ---------- Elle Kayıt · türün açıklaması (2026.360) ----------
   Kullanıcının bildirimi: "buradaki açıklama kötü duruyor, çok emanet."

   Düğmelerin yanında dururken iki düğmenin sağında kalan boşluğa
   sıkışıyor, ne düğmelere ne alanlara hizalanıyordu. Artık kendi
   satırında, alanlarla aynı soldan başlayan bir KENAR NOTU: defterin
   kenarındaki ince çizgiye yaslanmış, sayfanın kendi diliyle yazılmış
   bir açıklama.

   İki satırlık yeri baştan ayrılır ve metin ne kadar uzarsa uzasın o
   yeri AŞAMAZ (2026.357 · kullanıcının bildirimi: "metinler değişince,
   mesela uzun metin olunca da genişliyor form, yine öyle olmamalı"). */
.elk-not {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  height: calc(var(--kucuk-satir) * 2);
  margin: 0 0 var(--bosluk);
  padding-left: calc(var(--bosluk) * 1.25);
  border-left: 2px solid var(--defter-tel-soluk);
  overflow: hidden;
  color: var(--metin);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .72;
}

/* Elle Kayıt'ta üçüncü kutu bazen düğme (gider seçicisi), bazen yazarak
   aranan kutudur. İkisi aynı boyda olmazsa tür değiştikçe form iki
   piksel oynuyordu.

   Düğmenin yazısı TEK SATIRDA kalır: uzun bir hesap adı ya da
   "Domates, Salatalık, Biber…" gibi bir ürün özeti eskiden ikinci
   satıra taşıp formu bir satır uzatıyordu. Sığmayan yazı üç noktayla
   kesilir; tamamı zaten düğmeye basınca açılan panelde duruyor. */
.fk-govde .gider-dugme {
  display: block;
  min-height: 44px;
  line-height: 30px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* ---------- Elle Kayıt · işlem türü şeridi (2026.357 · 2026.358) ----------
   Kullanıcının isteği: "elle kayıt şu an sadece gider yazmaya yarıyor
   ama bir çok şey yapılabilir olmalı… tepede gelir - gider diye iki
   seçenek olsun, bir de düzeltme; başlıklar ona göre ayarlansın."
   Sonra: "en tepeden seçilsin gelir gider ve düzeltme, formun en
   tepesini 3'e bölerek, ve vurgulu olmalı."

   Kağıdın EN TEPESİNDE, başlığın da üstünde, tam genişlikte üç eşit
   parça. Açılır liste değil sekme şeridi: hangi işi yaptığın forma
   bakar bakmaz görünür, tür değiştirmek tek dokunuştur. */
.elk-tur-satir {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--ayirici);
}

.elk-tur {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  height: 56px;
  padding: 0 var(--bosluk);
  font: inherit;
  /* Başlık ile gövde arasında bir boy: şerit vurgulu dursun ama
     kağıdın kendi başlığını (19px) bastırmasın. */
  white-space: nowrap;
  cursor: pointer;
}

.elk-tur svg { display: block; flex: none; opacity: .55; }

/* Fare üstüne gelince SEÇİLECEK HÂLİN ÖNİZLEMESİ görünür: zemin bordoya
   doğru bir tık kararır, yazı bordoya döner ve altta ince bir şerit
   belirir — basınca o şerit kalınlaşıp zemin doluyor. Eskiden beyaza
   dönüyordu (2026.359 · kullanıcının bildirimi: "mouse ile üstüne
   gidince beyaz oluyor, daha iyi bir şey olsun"): beyaz, şeridi
   kağıttan koparıyor ve hangi parçanın seçili olduğunu bir an
   belirsizleştiriyordu. */
.elk-tur {
  transition: background var(--gecis), color var(--gecis),
              box-shadow var(--gecis);
}


.elk-tur:hover svg { opacity: .9; }

/* Seçili parça VURGULU: kırmızı zemin, açık yazı ve altında kalın bir
   şerit. Renk tek başına anlam taşımasın diye yazı da koyulaşır ve
   alttaki şerit seçimi ikinci kez söyler. */


/* Seçili parçanın üstüne gelmek onu söndürmez, bir tık koyulaştırır:
   "buraya zaten basılı" demek olur. */


.elk-tur-secili svg { opacity: 1; }

.elk-tur:focus-visible {
  outline: 2px solid var(--altin-koyu);
  outline-offset: -3px;
}

/* Telefonda simge düşer, üç ad yan yana rahat sığsın. */
@media (max-width: 559.98px) {
  .elk-tur { height: 48px; padding: 0 6px; font-size: var(--govde-boy); }
  .elk-tur svg { display: none; }
}

/* Düzeltmede fatura düğmesinin yerini yön düğmesi alır: basılıyken
   hesap ARTAR (yeşil), basılı değilken AZALIR (kırmızı, kesik çerçeve).
   Renkleri .elk-fatura-var / .elk-fatura-yok veriyor. */
.elk-yon { min-width: 148px; }

/* ---------- Elle Kayıt çekmecesi (2026.361) ----------
   Kullanıcının isteği: "elle kayıt formunu açılır ve hareket edebilir
   yapıda kurmamız mümkün olur mu, diyelim kasa defterindeyken açtık ve o
   an oradayken işlem yaptık."

   Sayfanın sağından kayar, PERDESİ YOKTUR: arkadaki defter okunabilir ve
   kullanılabilir kalır — kayıt girerken deftere bakabilmek bu işin
   bütün sebebi. Günlük İş Akışı panelinin (kabuk.css · .akis-panel)
   kabuğu ile aynı kurallar; farkı genişliği: formda iki sütunlu bir
   satır var, 360px'e sığmıyor. */
.ekc {
  position: fixed;
  top: calc(var(--ust-cubuk) + env(safe-area-inset-top, 0px));
  right: 0;
  bottom: 0;
  z-index: 37;
  display: flex;
  flex-direction: column;
  width: min(var(--ekc-en), 94vw);
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border-left: 2px solid var(--defter-tel);
  box-shadow: -18px 0 34px -26px rgba(58, 42, 29, .8);
  transform: translateX(100%);
  transition: transform var(--gecis) ease-out;
  /* will-change: transform YAZILMAZ (2026.366 · kullanıcının bildirimi:
     "elle kayıtta satırlara basınca hesapları getirmiyor").

     SEBEP: will-change: transform, öğeyi position: fixed torunlar için
     KAPSAYAN BLOK yapar. Açılan hesap listesi (.sec-liste) fixed'tir ve
     yerini pencereye göre hesaplar (seciciler.js · secYerlestir); çekmece
     kapsayan blok olunca aynı sayılar çekmecenin sol kenarından
     başlıyor, liste 600px sağa kayıp ekranın dışına düşüyordu. Liste
     açılıyordu — yalnız görünmüyordu.

     Kaydırma yine yumuşak: transform'un kendisi zaten kendi katmanını
     alıyor, ipucu vermeye gerek yok. */
}

body.ekc-acik .ekc { transform: none; }

/* Kapalıyken klavye çekmeceye takılmasın: ekranın dışında duran bir
   forma sekmeyle girilebiliyordu. */
body:not(.ekc-acik) .ekc { visibility: hidden; }

.ekc-tepe {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  flex: none;
  padding: var(--bosluk) calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.ekc-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.ekc-kapat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 36px;
  height: 36px;
  border: 1px solid var(--ayirici);
  border-radius: 50%;
  background: var(--yuzey);
  color: inherit;
  cursor: pointer;
}

.ekc-kapat:hover { border-color: var(--defter-tel); }
.ekc-kapat:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: 2px; }

/* Gövde kendi içinde kayar; tekerlek sonuna gelince arkadaki sayfaya
   devredilmez (pencere.js'teki kuralın aynısı). */
.ekc-govde {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: calc(var(--bosluk) * 1.5);
}

/* Çekmecede kağıt zaten çekmecenin kendisi: ikinci bir çerçeve ve
   ortalama payı dar alanı boşa yerdi. */
.ekc .fk-sarmal { max-width: none; }
.ekc .fk-govde { padding: calc(var(--bosluk) * 1.5); }
.ekc .elk-tur-satir { border-radius: 0; }

/* Telefonda çekmece tam eni kaplar ve alt menünün üstünde biter. */
@media (max-width: 899.98px) {
  .ekc { width: 100%; }
  .ekc-govde {
    padding-bottom: calc(var(--alt-menu) + env(safe-area-inset-bottom, 0px)
                         + var(--bosluk));
  }
}

/* ---------- Çekmece · sağa gizleme (2026.362 · 2026.364) ----------
   Kullanıcının isteği: "bir ok olsun, ona basınca sağa doğru gizlensin
   ve okun yönü sol olsun, sonra ona basınca geri açılsın".

   GİZLEMEK KAPATMAK DEĞİLDİR: çekmece sağa kayar ama içindeki form
   yerinde durur; yarım kalmış bir kayıt kaybolmaz. Ekranda yalnız sol
   kenarına yapışık tutamak kalır, oku sola döner.

   GENİŞLİK DÜĞMESİ YOKTUR (2026.364 · kullanıcının kararı: "boyutu
   büyütüp küçültmek için düğmeler koymuşsun, onu istemiyorum").
   Çekmece tek genişlikte durur. */
body.ekc-acik.ekc-gizli .ekc { transform: translateX(100%); }

.ekc-tepe { position: relative; }

/* Başlıktaki gizleme oku · bastığın yer, gideceği yön. */
.ekc-ok {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 32px;
  height: 32px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.ekc-ok:hover { border-color: var(--ayirici); background: var(--oyuk); }
.ekc-ok:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: 1px; }

.ekc-araclar { display: flex; align-items: center; gap: 4px; flex: none; }

/* Başlık ortada kalan yeri alır, uzun olsa da düğmeleri itmez. */
.ekc-baslik { flex: 1; min-width: 0; overflow: hidden;
  white-space: nowrap; text-overflow: ellipsis; }

/* ---- Tutamak · ÜST ÇUBUĞUN DİLİ (2026.364)
   Kullanıcının isteği: "gizledikten sonra açmak için olan düğmelerin de
   tasarımı ve rengi üst çubuk gibi olsun."

   Aynı bordo iniş, aynı altın tel, aynı motif ve aynı sıcak gölge:
   tutamak sayfanın bir parçası değil, kabuğun parçasıdır — üst çubuğun
   kenardan sarkan ucu gibi durur.

   Çekmecenin İÇİNDE ama sol kenarının dışında; çekmece sağa kayınca
   ekranda kalan tek parça odur. Açıkken görünmez: o hâlde başlıktaki ok
   zaten elinin altında. */
.ekc-tutamak {
  position: absolute;
  top: 50%;
  left: -36px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  width: 36px;
  height: 72px;
  margin-top: -36px;
  padding: 0;
  border: 0;
  border-left: 2px solid var(--altin-koyu);
  border-radius: 12px 0 0 12px;
  background: linear-gradient(180deg, var(--vurgu) 0%, var(--yan-vurgu-koyu) 100%);
  color: var(--yuzey);
  box-shadow: -10px 0 22px -14px rgba(58, 42, 29, .75),
              -2px 0 6px -3px rgba(58, 42, 29, .45);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
}

/* Üst çubuktaki motifin aynısı, aynı soluklukta. */
.ekc-tutamak::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--ust-desen, none);
  background-size: 180px auto;
  opacity: .28;
  pointer-events: none;
}

/* Ok motifin üstünde kalır ve sola çevrilir: "geri aç" demenin en kısa
   yolu. */
.ekc-tutamak svg {
  display: block;
  position: relative;
  z-index: 1;
  transform: scaleX(-1);
}

.ekc-tutamak:hover { filter: brightness(1.08); }
.ekc-tutamak:focus-visible { outline: 2px solid var(--yuzey); outline-offset: -4px; }

/* Tutamak yalnız GİZLİYKEN görünür; kapalıyken de yok. */
body.ekc-acik.ekc-gizli .ekc-tutamak { opacity: 1; pointer-events: auto; }

/* Gizliyken çekmecenin kendisi ekranın dışında ama tutamak içeride:
   ana kural (görünürlük) yalnız KAPALI hâlde uygulanır. */
body.ekc-acik .ekc { visibility: visible; }

/* =====================================================================
   GÜNLÜK İŞLEMLER · Raporlar (2026.401)
   Kullanıcının isteği: "en üstte günlük yapılan işlemler raporu olsun,
   hani muhasebe ön izlemeleri var ya, seçili tarihte o gün için yapılan
   tüm işlemleri o şekilde göstersin."

   Ekranın gövdesi Gün Sonu önizlemesinin bloklarıdır (.gsd-bloklar);
   burada yalnız üstteki tek günlük süzgeç tanımlanır. Aralık süzgeci
   (.rl-suzgec) iki tarih kutusu taşır, bu ekran tek kutu ve iki ok
   taşıyor — ölçüler oradan alındı ki iki rapor aynı yükseklikte dursun.
   ===================================================================== */
.gi-suzgec {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 1.5) var(--rl-pay);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.gi-gun-secim { display: flex; align-items: center; gap: var(--bosluk); }
.gi-gun-secim .alan-kutu { width: 160px; }

/* Ok düğmeleri kare durur: içindeki tek işaret ortalanır, yanındaki
   tarih kutusuyla aynı yükseklikte kalır. */
.gi-gun-secim .suzgec-cip {
  min-width: var(--dokunma);
  justify-content: center;
  font-size: var(--h2-boy);
  line-height: 1;
}

/* Defter bloğunun sekiz sütunu 820px'e sığmıyor; kart Gün Sonu kayıt
   ekranıyla aynı genişliğe açılır (.gs-kart.gsd-kart). */
.rl-kart.gi-kart { max-width: 1160px; }

/* =====================================================================
   GÜNÜN HİKÂYESİ · Günlük İşlemler'in ikinci görünümü (2026.483)
   Kullanıcının isteği: "günlük işlemler raporu iki yönlü olsun; 1.si
   mizan, şu anki hâli, ikincisi günlük samimi dil … tüm kalemleri
   görelim ve hangi depoya attığını, faturasız faturalı falan olanlarda
   yazsın … daha emojili ve samimi anlatsın."
   Kaynak: 4-ekranlar/2-raporlar/gunluk-islemler.js
   ===================================================================== */

/* Süzgeçte günü seçen kısımla görünüm seçici arasını açan boşluk. */
.gi-ara { flex: 1 1 auto; }

/* Görünüm seçici · iki düğme tek kapsülde */
.gi-kip {
  display: flex;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  overflow: hidden;
  background: var(--yuzey);
}

.gi-kip button {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) * .75);
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: calc(var(--bosluk)) calc(var(--bosluk) * 2);
  min-height: var(--dokunma);
  font: 600 var(--kucuk-boy) / 1 var(--yazi-metin);
  color: var(--ikinci);
}

.gi-kip button + button { border-left: 1px solid var(--altin-soluk); }
/* Seçili kip fareyle değişmez. Eskiden aynı sonuç ":hover'ı da aynı
   renge boya" diye yazılmıştı; doğru yazılışı vurgunun seçiliye hiç
   uğramamasıdır (2026.509 · programdaki bütün seçili durumlar aynı
   kalıbı kullanır). */
.gi-kip button:hover:not(.gi-kip-secili) { background: var(--oyuk); }
.gi-kip .gi-kip-secili { background: var(--vurgu); color: #fff; }

/* Hikâye kartı mizandan dar: burada sekiz sütunlu tablo yok, okunan
   şey cümle. Uzun satır göz yorar. */
.rl-kart.gi-kart-hikaye { max-width: 980px; }
.gi-govde { padding: calc(var(--bosluk) * 2.5) var(--rl-pay) calc(var(--bosluk) * 3); }

/* ---- Günün açılışı ---- */
.gh-giris {
  margin: 0 0 calc(var(--bosluk) * 2.5);
  padding: calc(var(--bosluk) * 2);
  border: 1px solid var(--altin-soluk);
  border-left: 3px solid var(--vurgu);
  border-radius: var(--kose-kutu);
  background-color: var(--defter-acilis);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
}

.gh-giris p { margin: 0; line-height: 1.6; }
.gh-giris-alt { margin-top: 4px !important; font-size: var(--kucuk-boy); color: var(--ikinci); }

/* Sonraki işler inerken duran şerit (2026.520). Defterdeki şeritten
   ayrı duruyor: orada çizgi tablonun üstünü kapatıyor, burada liste
   akışının içinde bir ara durak. Çemberi programın tek çemberidir
   (2-tasarim/bilesenler.css · .ns-daire). */
.gh-yukleniyor {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2) 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
}

/* ---- Zaman çizgisi ---- */
.gh-akis {
  position: relative;
  margin: 0;
  padding: 0 0 0 78px;
  list-style: none;
}

.gh-akis::before {
  content: "";
  position: absolute;
  left: 63px;
  top: 6px;
  bottom: 26px;
  width: 1px;
  background: var(--altin-soluk);
}

.gh-adim { position: relative; margin: 0 0 calc(var(--bosluk) * 2); }

.gh-saat {
  position: absolute;
  left: -78px;
  top: 12px;
  width: 48px;
  text-align: right;
  font: 600 var(--kucuk-boy) / 1 var(--yazi-metin);
  color: var(--vurgu);
  font-variant-numeric: tabular-nums;
}

.gh-nokta {
  position: absolute;
  left: -20px;
  top: 12px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--yuzey);
  border: 2px solid var(--altin-koyu);
}

.gh-adim-duzelt .gh-nokta { border-color: var(--uyari-cizgi); background: var(--uyari-cizgi); }
.gh-adim-sil .gh-nokta { border-color: var(--hata); background: var(--hata); }

.gh-kart {
  border: 1px solid var(--altin-soluk);
  border-radius: var(--kose-kutu);
  background: var(--kart-kagit);
  overflow: hidden;
}

.gh-bas {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2);
  background-color: var(--defter-baslik);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
  border-bottom: 1px solid var(--altin-soluk);
}

.gh-ikon { display: inline-flex; color: var(--vurgu); flex: 0 0 auto; }
.gh-ikon .simge { display: block; }
.gh-bas h3 { margin: 0; font: 600 var(--govde-boy) / 1.4 var(--yazi-metin); color: var(--metin); }

.gh-etiket {
  font: 600 10px / 1 var(--yazi-metin);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ikinci);
  border: 1px solid var(--altin-soluk);
  border-radius: 999px;
  padding: 4px 9px;
  background: var(--yuzey);
  white-space: nowrap;
}

.gh-kim {
  margin-left: auto;
  font: 500 var(--kucuk-boy) / 1 var(--yazi-metin);
  color: var(--ikinci);
  white-space: nowrap;
}

.gh-govde { padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2) calc(var(--bosluk) * 2); }
.gh-cumle { margin: 0 0 calc(var(--bosluk) * 1.25); line-height: 1.65; }
.gh-cumle:last-child { margin-bottom: 0; }

/* ---- Belge · bir fiş ---- */
.gh-belge {
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kutu);
  margin-top: calc(var(--bosluk) * 1.25);
  overflow: hidden;
  background: var(--defter-satir);
}

.gh-belge-bas {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  background: var(--defter-satir-cift);
  border-bottom: 1px solid var(--defter-cizgi);
}

.gh-belge-ad { font-weight: 600; }
.gh-belge-no { font-size: var(--kucuk-boy); color: var(--ikinci); }

.gh-belge-tutar {
  margin-left: auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.gh-rozet {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: 600 10px / 1 var(--yazi-metin);
  letter-spacing: .04em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 4px 8px;
  white-space: nowrap;
  border: 1px solid var(--kenar);
  background: var(--yuzey);
  color: var(--ikinci);
}

.gh-rozet .simge { width: 12px; height: 12px; }

.gh-r-depo {
  border-color: rgba(47, 107, 74, .35);
  background: rgba(47, 107, 74, .10);
  color: var(--metin-basari);
}

.gh-r-gider {
  border-color: rgba(44, 98, 143, .32);
  background: rgba(44, 98, 143, .09);
  color: var(--metin-bilgi);
}

.gh-r-faturali {
  border-color: var(--altin);
  background: var(--defter-acilis);
  color: var(--metin);
}

.gh-r-faturasiz {
  border-color: rgba(208, 135, 0, .45);
  background: rgba(208, 135, 0, .12);
  color: var(--metin-uyari);
}

.gh-r-kapali {
  border-color: rgba(47, 107, 74, .35);
  background: rgba(47, 107, 74, .10);
  color: var(--metin-basari);
}

.gh-r-acik {
  border-color: rgba(164, 36, 48, .32);
  background: rgba(164, 36, 48, .08);
  color: var(--metin-hata);
}

/* GERİ ALINMIŞ İŞ (2026.496 · kullanıcının bildirimi: "işlemi geri almış
   olmama rağmen günün hikâyesinde gözüküyor"). Kart şeritte durur ama
   defterde bir izi kalmadığı belli olsun: başlığın üstü çizili, kâğıt
   soluk, nokta gri. */
.gh-r-geri {
  border-color: var(--kenar);
  background: var(--oyuk);
  color: var(--ikinci);
}

.gh-adim-geri .gh-nokta {
  border-color: var(--kenar);
  background: var(--kenar);
}

.gh-adim-geri .gh-saat { color: var(--ikinci); }

.gh-adim-geri .gh-kart {
  background: var(--oyuk);
  border-style: dashed;
}

.gh-adim-geri .gh-bas {
  background-color: var(--oyuk);
  background-image: none;
}

.gh-adim-geri .gh-bas h3 {
  text-decoration: line-through;
  color: var(--ikinci);
}

.gh-adim-geri .gh-ikon { color: var(--ikinci); }
.gh-adim-geri .gh-cumle { color: var(--ikinci); }

/* ---- Kalem ve bacak tabloları ---- */
.gh-kalem {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: 1.4;
}

.gh-kalem th {
  text-align: left;
  padding: calc(var(--bosluk) * .9) calc(var(--bosluk) * 1.5);
  font-size: 11px;
  font-weight: 600;
  color: var(--ikinci);
  border-bottom: 1px solid var(--defter-cizgi);
  white-space: nowrap;
}

.gh-kalem + .gh-kalem th { border-top: 1px solid var(--defter-tel-soluk); }

.gh-kalem td {
  padding: calc(var(--bosluk) * .9) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-cizgi);
  color: var(--metin);
}

.gh-kalem tr:last-child td { border-bottom: 0; }

.gh-kalem .gh-sag {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.gh-kalem .gh-nereye { color: var(--ikinci); white-space: nowrap; }
.gh-kod { font-weight: 600; color: var(--ikinci); }

.gh-daha {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--bosluk) * 1.25);
  width: 100%;
  margin-top: var(--bosluk);
  padding: var(--bosluk);
  border: 0;
  border-top: 1px dashed var(--altin-soluk);
  background: transparent;
  cursor: pointer;
  font: 600 var(--kucuk-boy) / 1 var(--yazi-metin);
  color: var(--vurgu);
}

.gh-daha-not {
  font-weight: 400;
  font-size: 11px;
  color: var(--ikinci);
  border-left: 1px solid var(--altin-soluk);
  padding-left: calc(var(--bosluk) * 1.25);
}

/* ---- Sonuç şeridi · işlem neyi değiştirdi ---- */
.gh-sonuc {
  margin-top: calc(var(--bosluk) * 1.25);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  background: rgba(47, 107, 74, .08);
  border: 1px solid rgba(47, 107, 74, .22);
  font-size: var(--kucuk-boy);
  line-height: 1.5;
  color: var(--metin-basari);
}

.gh-sonuc b { font-weight: 700; font-variant-numeric: tabular-nums; }

.gh-sonuc-eksi {
  background: rgba(164, 36, 48, .07);
  border-color: rgba(164, 36, 48, .22);
  color: var(--metin-hata);
}

.gh-sonuc-notr {
  background: var(--oyuk);
  border-color: var(--kenar);
  color: var(--ikinci);
}

/* ---- Düzeltme · eski → yeni ---- */
.gh-fark {
  display: flex;
  gap: calc(var(--bosluk) * 1.25);
  align-items: center;
  flex-wrap: wrap;
  margin-top: var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: 1.5;
}

.gh-etiket-kucuk {
  font: 600 10px / 1 var(--yazi-metin);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ikinci);
  min-width: 84px;
}

.gh-eski { text-decoration: line-through; color: var(--ikinci); }
.gh-yeni { font-weight: 600; color: var(--metin); }
.gh-ok { color: var(--ikinci); font-weight: 700; }

/* ---- Günün özeti ---- */
.gh-ozet {
  margin-top: calc(var(--bosluk) * 3);
  border: 1px solid var(--altin);
  border-radius: var(--kose-kart);
  overflow: hidden;
  background: var(--kart-kagit);
}

.gh-ozet-bas {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
  background-color: var(--defter-koyu);
  background-image: radial-gradient(rgba(255, 255, 255, .06) .5px, transparent .5px);
  background-size: 3px 3px;
  color: #F3E9D6;
}

.gh-ozet-ikon { color: var(--ikinci); display: inline-flex; }
.gh-ozet-bas h3 { margin: 0; font: 600 var(--h2-boy) / 1.3 var(--yazi-baslik); }

.gh-ozet-bas span {
  display: block;
  margin-top: 3px;
  font-size: var(--kucuk-boy);
  color: rgba(243, 233, 214, .72);
}

.gh-ozet-govde { padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 2.5); }
.gh-ozet-cumle { margin: 0 0 calc(var(--bosluk) * 2); line-height: 1.7; }

.gh-haplar {
  display: flex;
  gap: calc(var(--bosluk) * 1.25);
  flex-wrap: wrap;
  margin-bottom: calc(var(--bosluk) * 2);
}

.gh-hap {
  flex: 1 1 130px;
  min-width: 120px;
  border: 1px solid var(--altin-soluk);
  border-radius: var(--kose-kutu);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  background: var(--defter-satir);
}

.gh-hap span {
  display: block;
  font: 600 10px / 1 var(--yazi-metin);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--ikinci);
  margin-bottom: 6px;
}

.gh-hap b {
  display: block;
  font: 700 var(--h2-boy) / 1.1 var(--yazi-metin);
  color: var(--metin);
  font-variant-numeric: tabular-nums;
}

.gh-hap-arti b { color: var(--defter-arti); }
.gh-hap-eksi b { color: var(--defter-eksi); }

.gh-kz {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
}

.gh-kz th {
  text-align: left;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  font-size: 11px;
  font-weight: 600;
  color: var(--ikinci);
  background: var(--defter-satir-cift);
  border-top: 1px solid var(--defter-cizgi);
  border-bottom: 1px solid var(--defter-cizgi);
}

.gh-kz td {
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-cizgi);
}

.gh-kz .gh-sag { text-align: right; font-variant-numeric: tabular-nums; }

.gh-kz .gh-kz-sonuc td {
  border-top: 2px solid var(--defter-tel);
  border-bottom: 0;
  font-weight: 700;
  background: var(--defter-acilis);
}

.gh-ozet-not { margin: calc(var(--bosluk) * 1.5) 0 0; font-size: 11px; color: var(--ikinci); }

/* ---- Telefon ----
   Çizgi kalkar, saat kartın üstüne geçer. Tablolar SÜTUN GİZLEMEZ, yana
   kayar: hangi faturanın hangi depoya gittiği telefonda da eksiksiz
   okunmalı. */
@media (max-width: 640px) {
  .gi-ara { display: none; }
  .gi-kip { flex: 1 1 100%; }
  .gi-kip button { flex: 1; justify-content: center; }

  .gh-akis { padding-left: 0; }
  .gh-akis::before { display: none; }
  .gh-nokta { display: none; }

  .gh-saat {
    position: static;
    width: auto;
    text-align: left;
    display: inline-block;
    margin-bottom: 5px;
  }

  .gh-kim { margin-left: 0; width: 100%; }
  .gh-kalem { display: block; overflow-x: auto; white-space: nowrap; }
  .gh-hap { flex: 1 1 100%; }
}

/* =====================================================================
   FATURA AKTARIMI · İKİ SEKME VE SATIŞ SİHİRBAZI (2026.403)
   Kullanıcının isteği: "faturalar yükleme ekranında iki kısım olsun,
   biri alış biri satış … sihirbaz gibi yapamaz mıyız, klavyeden basıp
   geçelim direk."
   Kaynak: 4-ekranlar/1-aktarimlar/satis-fatura-aktarimi.js
   ===================================================================== */

/* Sekme şeridi · Hesaplar'daki Basit/Detaylı ile aynı dil. Uygulamada
   tek bir sekme görüntüsü vardır. */
.fatura-sekme {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin: 0 0 calc(var(--bosluk) * 2);
  padding: 3px;
}

.fatura-sekme-dugme {
  flex: none;
  height: 34px;
  padding: 0 calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--gecis) ease-out;
}

/* BURADA BİR KURAL VARDI, KALDIRILDI (2026.510 · kullanıcının bildirimi:
   "fatura aktarımdaki seçiciye bastığımızda seçili olanın üstüne gelince
   dolgu değişiyor" · sonra: "hiçbir şey değişmedi").

       .fatura-sekme-dugme:hover { background: rgba(0, 0, 0, .04); }

   İki kusuru vardı. Birincisi SEÇİLİYİ DIŞLAMIYORDU: seçili sekme
   bordodur, üstüne gelince bordonun üstüne %4 siyah biniyor ve dolgu
   değişiyordu. İkincisi bu dosya bilesenler.css'ten SONRA yükleniyor ve
   oradaki doğru kuralı eziyordu:

       .fatura-sekme-dugme:hover:not([aria-selected="true"]) {
         background: var(--oyuk);
       }

   2026.509'da o doğru kuralı bulup onaylamıştım ama ezildiğini
   görmemiştim — denetimim yalnız seçicisinde "secili" geçen kuralları
   tarıyordu, oysa asıl tehlike HERKESE vuran ve seçiliyi dışlamayan
   kurallar. Denetim düzeltildi (bkz. 6-belgeler/kararlar.md · 2026.510).

   Silindi; ortak kural zaten doğrusunu yapıyor. Siyah ton da paletin
   dışındaydı, vurgu rengi --oyuk'tur. */


/* ---- Satış kartı ---- */
.sf-kart { max-width: 820px; margin: 0 auto; }
.sf-kart.gsd-kart { max-width: 1160px; }

.sf-tepe {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--kart-kenar);
}

.sf-baslik {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
}

.sf-alt {
  display: block;
  margin-top: calc(var(--bosluk) / 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

.sf-yardim { max-width: 520px; margin: var(--bosluk) auto 0; text-align: center; }

.sf-not {
  padding: 0 calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 1.5);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* BURADA İLERLEME ÇUBUĞU KURALLARI VARDI, KALDIRILDI (2026.555 ·
   kullanıcının isteği: "kırmızı barı da kaldır, aradaki boşluğu
   kapat"). Tablonun üstündeki bordo çubuk ve "4 / 4 işaretlendi"
   yazısı kalktı; kaç faturanın beklediğini alttaki not ve şeritteki
   düğme zaten söylüyor. Çizimi de gitti
   (satis-fatura-aktarimi.js · ilerlemeHtml).

/* ---- Sıradaki fatura · ekranın ortasındaki tek şey ----
   Kart SABİT YÜKSEKLİKTE durur: fatura değişince altındaki iki düğme
   yer değiştirmesin, kullanıcı aynı noktaya basmaya devam etsin. */
/* ---- İŞARETLEME TABLOSU (2026.474 · kullanıcının kararı: "10 fatura
   varsa 10'u da tabloda gelsin açık kapalı olarak; o satırın dolgusunu
   turuncu yapsın, onda olduğumuzu anlayalım")

   Önce faturalar tek tek büyük bir kartta çıkıyordu; bütün liste
   görünmediği için kaç tane kaldığı ancak ilerleme çubuğundan
   anlaşılıyordu. Tablo hepsini bir arada gösterir, imleç satırı turuncu
   durur ve klavye akışı aynen sürer.

   Sınıf öneki "sfa-": ".sf-" önekini Sıfırlama ekranı da kullanıyor
   (.sf-tablo · .sf-satir), aynı adı ikinci kez almak iki ekranı
   birbirine karıştırırdı. */
/* İşaretleme kartı geniş durur: sekiz sütunlu tablo 820px'e sığmıyor. */
.sf-kart.sfa-kart { max-width: 1160px; }

/* ---- Satış tablosu · alış listesiyle aynı kart (2026.540) ----
   Kullanıcının isteği: "alışlar böyle ya, satışlarda da aynı tarzda
   görünsün ... tablo yapısı aynı, bir de sona kontrol ekle".

   Kart artık .fatura-liste; çerçevesini, zeminini ve kuşakla
   birleşmesini oradan alıyor (yukarıdaki .fatura-birlesik kuralları).
   Burada yalnız ortalama ve pay sıfırlanıyor: liste sayfanın tam
   enidir, ortada duran bir kutu değil. */
.fatura-birlesik > .sfa-kart,
.fatura-birlesik > .mk-kart {
  max-width: none;
  margin: 0;
}

/* SAYFA KAYMAZ, TABLO KAYAR · alış tarafındaki kuralın satış
   karşılığı. Kartın başlığı ("Parası alındı mı?" · Vazgeç), ilerleme
   çubuğu ve alttaki ipucu yerinde durur; yalnız satırlar kayar ve
   sütun adları tablonun tepesine yapışık kalır.

   Kaydıran kap .tablo-kutu'dur: overflow-x zaten orada tanımlı
   (bilesenler.css) ve bir eksende auto verilen kutu öteki eksende de
   kaydırıcı olur. */
.fatura-birlesik > .sfa-kart,
.fatura-birlesik > .mk-kart {
  display: flex;
  flex-direction: column;
  min-height: 0;
  container-type: inline-size;
  container-name: sf-liste;
}

/* Tablo kartın kenarına kadar iner; kartın kendi payı zaten var. */
.fatura-birlesik > .sfa-kart > .tablo-kutu,
.fatura-birlesik > .mk-kart > .gsd-bloklar {
  flex: 1;
  min-height: 0;
  margin: 0;
  overflow-y: auto;
  border-radius: 0;
}

.fatura-birlesik > .sfa-kart .sfa-tablo thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--oyuk);
}

/* Alt notlar kartın payını kullanır. */
.fatura-birlesik > .sfa-kart > .sf-ipucu,
.fatura-birlesik > .sfa-kart > .sf-not,
.fatura-birlesik > .sfa-kart > .sf-bitir,
.fatura-birlesik > .mk-kart > .gsk-uyari,
.fatura-birlesik > .mk-kart > .gsk-denge,
.fatura-birlesik > .mk-kart > .gsk-not,
.fatura-birlesik > .mk-kart > .gsk-altlik {
  padding-left: calc(var(--bosluk) * 2.5);
  padding-right: calc(var(--bosluk) * 2.5);
}

/* Tablonun altındaki kuşak · kendi zemini ve üst çizgisi olur.
   Olmasaydı kayan satırlardan sonuncusu tam burada kesiliyor ve
   ipucu yazısı onun üstüne binmiş gibi duruyordu; tablonun nerede
   bittiği belli olsun. */
.fatura-birlesik > .sfa-kart > .sf-ipucu,
.fatura-birlesik > .sfa-kart > .sf-not,
.fatura-birlesik > .sfa-kart > .sf-bitir {
  flex: none;
  margin: 0;
  padding-top: calc(var(--bosluk) * 1.25);
  padding-bottom: calc(var(--bosluk) * 1.25);
  background: var(--oyuk);
}

.fatura-birlesik > .sfa-kart > .tablo-kutu + .sf-ipucu,
.fatura-birlesik > .sfa-kart > .tablo-kutu + .sf-not,
.fatura-birlesik > .sfa-kart > .tablo-kutu + .sf-bitir {
  border-top: 1px solid var(--ayirici);
}

.fatura-birlesik > .sfa-kart > .sf-ipucu + .sf-not,
.fatura-birlesik > .sfa-kart > .sf-ipucu + .sf-bitir {
  padding-top: 0;
}

/* KONTROL sütunu · alış tablosundakiyle aynı ölçü ve aynı hizada.
   İşaretin kendi görünüşü .fa-kontrol'den gelir; iki tabloda tek
   tanım vardır, biri değişirse öteki de değişir. */
.sfa-tablo .sfa-kontrol {
  width: 96px;
  text-align: center;
}

.sfa-tablo { table-layout: auto; width: 100%; min-width: 0; }

.sfa-tablo thead th,
.sfa-tablo tbody td { padding: 0 12px; }
.sfa-tablo thead tr:first-child th:first-child,
.sfa-tablo tbody td:first-child { padding-left: 20px; }
.sfa-tablo thead th:last-child,
.sfa-tablo tbody td:last-child { padding-right: 20px; }

.sfa-tablo .sfa-no { width: 48px; color: var(--ikinci); }
.sfa-tablo .sfa-tarih { width: 104px; white-space: nowrap; }
.sfa-tablo .sfa-fno {
  width: 136px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ikinci);
}
.sfa-tablo .sfa-musteri {
  min-width: 180px;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}
.sfa-tablo .sfa-tutar,
.sfa-tablo .sfa-borc,
.sfa-tablo .sfa-alacak {
  width: 132px;
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.sfa-tablo .sfa-borc,
.sfa-tablo .sfa-alacak { color: var(--ikinci); }
.sfa-tablo .sfa-secim { width: 196px; }

/* İMLEÇ SATIRI TURUNCU: üzerinde olunan fatura budur; klavyeden basılan
   tuş bu satıra işler. Sol kenardaki kalın çizgi, satır işaretlenip
   rengi değişse de imlecin yerini söyler. */
.sfa-imlec td {
  background: var(--uyari-zemin, rgba(208, 135, 0, .14));
  box-shadow: inset 0 0 0 9999px rgba(208, 135, 0, .10);
}

.sfa-imlec td:first-child { box-shadow: inset 3px 0 0 0 var(--uyari-cizgi); }

/* İşaretlenmiş satırlar sönük bir renk alır: açık borç bırakır, kapalı
   bırakmaz — hangisinin ne olduğu listeye bakınca okunur. */
.sfa-satir-acik td { background: rgba(154, 101, 16, .06); }
.sfa-satir-kapali td { background: rgba(47, 107, 74, .07); }

.sfa-satir { cursor: pointer; }
.sfa-satir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }

/* Satır içindeki iki yönlü seçim · uygulamanın ortak şeridi
   (.secim-serit + .secim-sekme), yalnız ölçüsü küçültüldü. */
.sfa-serit { padding: 2px; }

.sfa-sekme {
  min-height: 28px;
  gap: 4px;
  padding: 0 10px;
  font-size: var(--kucuk-boy);
}

.sfa-isaret { font-weight: 700; font-size: 15px; line-height: 1; }

.sfa-sekme[aria-pressed="true"].sfa-sekme-kapali {
  background: var(--metin-basari);
  color: #fff;
}

.sfa-sekme[aria-pressed="true"].sfa-sekme-acik {
  background: var(--uyari);
  color: #fff;
}

/* TABLO YANA KAYMAZ, SÜTUN BIRAKIR (2026.540).
   Dokuz sütunun en dar hâli ~1150px. Altında kalan her ende tablo
   kendi içinde yana kayıyordu: kullanıcı KONTROL sütununu görmek için
   sağa sürüklemek zorundaydı. Alış listesi bunu sütun bırakarak
   çözüyor, satış da öyle yapsın.

   Ölçü kabın kendi enidir (@container), ekranın eni değil: yan panel
   292px alıyor ve açık/kapalı olmasına göre aynı ekranda tabloya kalan
   yer değişiyor.

   BIRAKMA SIRASI · önce BORÇ ve ALACAK: ikisi de bu tablonun kararını
   değiştirmez, defterde ne olacağını bir sonraki adımdaki muhasebe
   kaydı zaten satır satır gösterir. Sonra S.NO ile FATURA NO: biri
   sıra sayacı, öteki faturanın üstünde yazılı. En sona kalan dördü
   karar için gerekli olanlardır — tarih, müşteri, tutar, parası
   alındı mı — ve KONTROL. */
@container sf-liste (max-width: 1160px) {
  .sfa-tablo .sfa-borc,
  .sfa-tablo .sfa-alacak { display: none; }
}

@container sf-liste (max-width: 980px) {
  .sfa-tablo .sfa-no,
  .sfa-tablo .sfa-fno { display: none; }
}

@container sf-liste (max-width: 800px) {
  .sfa-tablo .sfa-tarih { display: none; }
  .sfa-sekme-ad { display: none; }
  .sfa-tablo .sfa-secim { width: 92px; }
  .sfa-tablo thead th,
  .sfa-tablo tbody td { padding: 0 8px; }
}

/* Telefon · bırakacak sütun kalmadı, kalan dördü de karar için
   gerekli. Sıkışan tek şey müşteri adıdır: sabit ölçüye oturur ve
   sığmayan kısmı üç noktayla biter. Tamamı satırın title'ında. */
@container sf-liste (max-width: 600px) {
  .sfa-tablo { table-layout: fixed; }

  .sfa-tablo .sfa-musteri {
    width: auto;
    max-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .sfa-tablo .sfa-tutar { width: 104px; }
  .sfa-tablo .sfa-kontrol { width: 56px; }
}


/* ---- Gezinme ve ipucu ---- */
.sf-ipucu {
  margin: 0;
  padding: var(--bosluk) calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 2);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
  text-align: center;
}

.sf-ipucu b {
  padding: 1px 6px;
  border: 1px solid var(--kenar);
  border-radius: 4px;
  background: var(--oyuk);
  font-weight: 600;
}

.sf-bitir {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) * 2.5);
  border-top: 1px solid var(--kart-kenar);
  background: var(--oyuk);
}

/* ---- Eşleşmeyen müşteriler ---- */
.sf-firma-liste {
  display: flex;
  flex-direction: column;
  padding: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5) calc(var(--bosluk) * 2.5);
  gap: var(--bosluk);
}

.sf-firma {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5);
  border: 1px solid var(--kart-kenar);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
  text-align: left;
  cursor: pointer;
}

@media (hover: hover) {
  .sf-firma:hover { border-color: var(--vurgu); }
}

.sf-firma-ad { flex: 1; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }

.sf-firma-not {
  flex: none;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .6;
}

@media (max-width: 640px) {
  .sf-tepe, .sf-firma-liste, .sf-bitir {
    padding-left: calc(var(--bosluk) * 2);
    padding-right: calc(var(--bosluk) * 2);
  }
  /* Telefonda tarih ve fatura no iner: ürün, tutar, seçim ve iki defter
     sütunu kalır. */
  .sfa-tablo .sfa-tarih,
  .sfa-tablo .sfa-fno,
  .sfa-tablo .sfa-no,
  /* Borç ve alacak da iner: ikisi de işaretin türevidir (açık → borç,
     kapalı → ikisi birden) ve satırın rengiyle basılı düğme zaten
     söylüyor. Telefonda tablo yana kaymasın. */
  .sfa-tablo .sfa-borc,
  .sfa-tablo .sfa-alacak { display: none; }
  .sfa-tablo thead th,
  .sfa-tablo tbody td { padding: 0 8px; }
  .sfa-tablo tbody td:first-child { padding-left: 12px; }
  .sfa-sekme-ad { display: none; }
  .sfa-tablo .sfa-secim { width: 92px; }
}

/* =====================================================================
   BEKLENEN EKLE · üç bölümlü tek liste (2026.406)
   Kullanıcının isteği: "orayı gruplandıralım, tek liste içinde güzel
   güzel ikonlu gruplar olsun; liste dikdörtgen olsun ve 3 bölüme ayır
   çizgilerle."

   Form üç iş soruyordu — ne · ne zaman · para nereden — ama üçü tek
   akışta iniyordu: bölüm adları alanların arasında küçük birer yazıydı
   ve ilk bölümün adı hiç yoktu. Nerede bitip nerede başladığı ancak
   okuyarak anlaşılıyordu.
   Kaynak: 4-ekranlar/3-tanimlar/tekrarlayan-odeme-ve-gelirler.js
   ===================================================================== */

/* Tek dikdörtgen. Köşe yumuşak ama kutu belli: kâğıdın içinde duran bir
   form, kâğıdın kendisi değil. */
.tk-liste {
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
  overflow: hidden;
}

/* Bölümler aralarındaki telle ayrılır; sonuncuda çizgi olmaz.
   DAR EKRANDA ALT ALTA, GENİŞ EKRANDA YAN YANA — aşağıdaki ölçüye bak.
   Burada dar ekranın hâli tanımlanır: ayraç alttaki teldir. */
.tk-bolum {
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.25)
           calc(var(--bosluk) * 2.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
}

.tk-bolum:last-child { border-bottom: 0; }

/* ÜÇ BÖLÜM YAN YANA (2026.406 · kullanıcının isteği: "yatay bir liste
   yapacaktın, 3'e bölüp").

   Dikdörtgen üç eşit sütuna bölünür ve ayraç dikey tele döner. Üç sütun
   ancak yer varsa açılır: 900px'in altında alt alta kalır, çünkü bir
   sütuna düşen 260px'e tarih kutusu ile çip sırası sığmıyor.

   SÜTUNLAR AYNI BOYDA: grid'in kendi davranışı, "Ne zaman" bölümü
   tekrarlı seçilince uzayınca öteki iki sütunun teli de onunla uzar ve
   dikdörtgen bozulmaz. */
@media (min-width: 900px) {
  .tk-liste {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .tk-bolum {
    border-bottom: 0;
    border-right: 1px solid var(--defter-tel-soluk);
  }

  .tk-bolum:last-child { border-right: 0; }

  /* Yan yana dururken alanlar daralıyor: ikili satır (Cari · Şube) tek
     sütuna iner, yoksa iki kutu da okunmaz hâle geliyor. */
  .tk-bolum .form-ikili { grid-template-columns: minmax(0, 1fr); }
}

/* Başlık · solda renkli plaka, sağında ad ve tek cümlelik tarif.
   Plaka Hesaplar ekranındaki kart plakasıyla aynı dil (.hk-plaka):
   renk anlam taşır ama tek başına taşımaz, yanındaki yazı da söyler. */
.tk-bolum-basi {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.25);
  margin-bottom: calc(var(--bosluk) * 1.75);
}

.tk-bolum-plaka {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: var(--kose-kutu);
}

.tk-bolum-yazi { min-width: 0; }

.tk-bolum-ad {
  display: block;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
  color: var(--defter-koyu);
}

.tk-bolum-not {
  display: block;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .7;
}

/* Bölümün ilk alanı başlığa yapışmasın; alanların kendi üst payı
   başlıkla çakışıyordu. */
.tk-bolum > .alan:first-of-type { margin-top: 0; }

/* Tür ve zamanlama çipleri artık kendi etiketli kutusunda değil,
   doğrudan başlığın altında durur. İkincisi bir kap içinde
   ([data-zaman]) olduğu için iki ayrı süzgeç gerekiyor. */
.tk-bolum > .tk-cipler,
.tk-bolum > [data-zaman] > .tk-cipler:first-child {
  margin-bottom: calc(var(--bosluk) * 1.5);
}

@media (max-width: 640px) {
  .tk-bolum { padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 1.75); }
  .tk-bolum-plaka { width: 30px; height: 30px; }
}

/* =====================================================================
   Kuruluş Aktarımı (2026.416)
   Ekran bir kez çalışır ve tek bir şey sorar: hangi hesap, hangi kod,
   ne bakiye. O yüzden süs yok — iki dosya kutusu, dört sayı ve bir
   tablo. Tablo öteki aktarım ekranlarının dilini kullanır: krem
   başlık şeridi, ince tel çizgiler, dönüşümlü satır.
   ===================================================================== */

.kur-anlat { padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5) 0; }
.kur-anlat h2 { margin: 0 0 calc(var(--bosluk) / 2); }
.kur-anlat p { margin: 0; color: var(--gri-vurgu); }

/* İki kutu yan yana; dar ekranda alt alta iner. */
.kur-kutular {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: calc(var(--bosluk) * 1.5);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
}

.kur-kutu {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(var(--bosluk) / 2);
  padding: calc(var(--bosluk) * 2);
  background: var(--oyuk);
  border: 1px dashed var(--kenar);
  border-radius: var(--kose-kart);
}

/* Dosya seçilince kutu kesik çerçeveyi bırakır: "burası doldu" der. */
.kur-kutu-dolu {
  background: var(--kart-yuzey);
  border-style: solid;
  border-color: var(--altin);
  box-shadow: var(--golge);
}

.kur-kutu-baslik { font-weight: 600; }

.kur-kutu-alt {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--gri-vurgu);
  overflow-wrap: anywhere;
}

.kur-kutu button { margin-top: calc(var(--bosluk) / 2); }

/* Dört sayı · fatura aktarımının özet kartıyla aynı dil. */
.kur-ozet {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1px;
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5) 0;
  background: var(--ayirici);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  overflow: hidden;
}

.kur-ozet-kutu {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: calc(var(--bosluk) * 1.75);
  background: var(--kart-yuzey);
}

.kur-ozet-sayi {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-variant-numeric: tabular-nums;
}

.kur-ozet-etiket {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--gri-vurgu);
}

.kur-not {
  margin: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 2.5) 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--gri-vurgu);
}

.kur-devam {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5);
}

/* Tablo · binlerce satır olabilir, sarıcı kendi içinde kayar. */
.kur-tablo-sar {
  margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5) 0;
  max-height: 60vh;
  overflow: auto;
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  background: var(--defter-zemin);
}

.kur-tablo {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Başlık kayarken yerinde durur: yüz satır aşağıda hangi sütuna
   baktığını hatırlamak gerekmesin. */
.kur-tablo thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  text-align: left;
  white-space: nowrap;
}

.kur-tablo td {
  padding: calc(var(--bosluk) / 2) calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--defter-tel-soluk);
  vertical-align: middle;
}

.kur-sag { text-align: right; }

.kur-ad {
  min-width: 220px;
  overflow-wrap: anywhere;
}

.kur-durum {
  color: var(--gri-vurgu);
  font-size: var(--etiket-boy);
  overflow-wrap: anywhere;
}

/* Kodu bekleyen satır kırmızı şeritle durur: listenin üstündedir ve
   kullanıcının yapacağı iş odur. */
.kur-sorun { background: rgba(164, 36, 48, .06); }
.kur-sorun td:first-child { box-shadow: inset 3px 0 0 var(--hata); }
.kur-guncelle { background: rgba(44, 98, 143, .05); }

.kur-giris {
  width: 100%;
  min-width: 96px;
  padding: calc(var(--bosluk) / 2) calc(var(--bosluk) * .75);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-dugme);
  font: inherit;
  color: inherit;
  font-variant-numeric: tabular-nums;
}

.kur-giris:focus-visible { border-color: var(--altin); outline: none; }
.kur-giris-sag { text-align: right; }

.kur-bitti { padding-bottom: calc(var(--bosluk) * 2); }
.kur-bitti h2 { margin: calc(var(--bosluk) * 2) calc(var(--bosluk) * 2.5) 0; }

@media (max-width: 640px) {
  .kur-anlat, .kur-kutular, .kur-devam { padding-inline: calc(var(--bosluk) * 1.5); }
  .kur-ozet, .kur-not, .kur-tablo-sar { margin-inline: calc(var(--bosluk) * 1.5); }
  .kur-ad { min-width: 150px; }
}

/* Tutar kutusu ve birimi yan yana · kartlardaki "12.150,00 ₺" ile aynı
   dil. Kutu maskesizdir (data-maskesiz): ortak binlik maskesi eksi
   işaretini siliyor, açılış bakiyesi ise eksi olabiliyor. Biçimlendirme
   odaktan çıkınca NS.bicim.para ile yapılır. */
.kur-tutar-kutu {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
}

.kur-birim {
  flex: none;
  font-size: var(--etiket-boy);
  color: var(--gri-vurgu);
}

.kur-giris-eksi { color: var(--defter-eksi); }

/* Kod kutusu ve yanındaki hesap seçme düğmesi (2026.418). Düğme küçük
   durur: satırın işi kodu yazmak, seçici yalnız gerektiğinde açılır. */
.kur-kod-kutu {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  width: 100%;
}

.kur-esle {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-dugme);
  color: var(--gri-vurgu);
  cursor: pointer;
}

@media (hover: hover) {
  .kur-esle:hover { border-color: var(--vurgu); color: var(--vurgu); }
}

.kur-not-panel { margin: 0 0 var(--bosluk); }

/* =====================================================================
   DEPOLAR · Stok Yönetimi (2026.462)

   Deponun kartında "bu depoda sayılan hesaplar" listesi durur: her satır
   bir onay kutusu ve hesabın kodu ile adı. Kutu işaretlenince eşleştirme
   ANINDA yazılır — ayrı bir Kaydet düğmesi yok.

   AYNI HESAP BİRDEN ÇOK DEPODA OLABİLİR (kullanıcının kararı: poşet hem
   tezgahta hem mutfakta sayılır). Satırın sağındaki küçük yazı bunu
   söyler: "2 depoda daha". Üzerine gelince hangileri olduğu görünür.
   ===================================================================== */
.depo-hesaplar { display: block; margin-top: var(--bosluk); }

.depo-hesap-liste {
  max-height: 320px;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin-top: var(--bosluk);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
}

.depo-hesap {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  min-height: 40px;
  padding: 6px calc(var(--bosluk) * 1.5);
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  cursor: pointer;
}

.depo-hesap-dal:last-child .depo-hesap { border-bottom: 0; }
.depo-hesap:last-child { border-bottom: 0; }

/* ---- ÜRÜN ÜRÜN SEÇİM (2026.469 · göç 127)
   Hesabın oku basılınca altındaki ürünler açılır; hepsi tiklidir ve
   sayılmayacak olanın tiki kaldırılır. Excel'deki ağaç seçiminin
   karşılığı: üst tik alttakileri kapsar, yarım tik "bir kısmı hariç"
   demektir. */
.depo-hesap-yardim { margin: 0 0 var(--bosluk); }

.depo-urun-ac {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: none;
  color: var(--ikinci);
  cursor: pointer;
  transition: transform .15s ease;
}

.depo-urun-ac:hover { background: var(--oyuk); }
.depo-urun-ac[aria-expanded="true"] { transform: rotate(90deg); }

/* Hesabın kaç ürününün hariç bırakıldığı · yarım tikin yazısı. */
.depo-hesap-disi {
  flex: none;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--uyari-zemin, var(--oyuk));
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--ikinci);
}

/* Ürünler hesabın altında bir kademe içeriden durur: hangi hesabın
   ürünü olduğu çizgiden değil, girintiden okunur. */
.depo-urun-liste {
  padding: 4px 0 8px calc(var(--bosluk) * 4);
  border-bottom: 1px solid var(--ayirici);
  background: var(--yuzey);
}

.depo-urun-bekle {
  padding-top: 8px;
  font-size: var(--kucuk-boy);
  color: var(--ikinci);
}

.depo-urun {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  min-height: 32px;
  padding: 2px calc(var(--bosluk) * 1.5) 2px 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  cursor: pointer;
}

.depo-urun input { flex: none; width: 16px; height: 16px; accent-color: var(--vurgu); }

.depo-urun-ad {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Tiki kaldırılmış ürün sönük durur: listede kalır ama bu depoda
   sayılmayacağı bir bakışta görünür. */
.depo-urun:not(.depo-urun-secili) .depo-urun-ad { color: var(--ikinci); }

.depo-urun-marka {
  flex: none;
  font-size: var(--etiket-boy);
  color: var(--ikinci);
}

/* ---- Depoya girmemiş ürünler ---- */
.dp-arac-sag { display: flex; align-items: center; gap: var(--bosluk); }

.dp-girmemis-kutu {
  padding: var(--bosluk) 16px calc(var(--bosluk) * 1.5);
  border-top: 1px solid var(--uyari);
  background: var(--uyari-zemin, var(--oyuk));
}

.dp-girmemis-yazi {
  margin: 0 0 var(--bosluk);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.dp-girmemis-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px var(--bosluk);
  padding: 6px 0;
  border-top: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.dp-girmemis-hesap { flex: none; font-weight: 650; }
.dp-girmemis-urun { flex: 1; min-width: 200px; }
.dp-girmemis-sebep { flex: none; font-size: var(--etiket-boy); color: var(--ikinci); }

@media (max-width: 860px) {
  .dp-arac-sag { flex-wrap: wrap; }
  .depo-urun-liste { padding-left: calc(var(--bosluk) * 2.5); }
}

/* Seçili satır dolgu almaz, soluk yeşil bir zemin alır: liste uzun ve
   yirmi dolu satır yan yana okunmuyordu. */
.depo-hesap-secili { background: rgba(47, 107, 74, .10); }

.depo-hesap input { flex: none; width: 18px; height: 18px; accent-color: var(--vurgu); }

.depo-hesap-ad {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Başka depolarda da sayılan hesabın işareti · tamamı üzerine gelince. */
.depo-hesap-oteki {
  flex: none;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  color: var(--metin-uyari);
  cursor: help;
}

.ayar-yardimci {
  margin: var(--bosluk) 0 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
}

/* =====================================================================
   DEPOLAR · depo sayımı (2026.464 · göç 124/125/126)

   İKİ KATLI EKRAN: üstte depolar listesi (S.NO · departman · durum ·
   sayımda kalan · TOPLAM), depoya basınca o deponun hesapları bant bant
   açılır ve altlarında ürünler kalem kalem durur. Kullanıcının
   gönderdiği Excel'in düzeni; kâğıt yerine uygulamanın kart dili.

   Kart, özet bandı ve giriş kutuları Ay Sonu Sayımı'ndan gelir
   (.sy-kart · .sy-ozet · .sy-giris): iki ekran aynı işi yapıyor, iki
   ayrı dil konuşmamalı.
   ===================================================================== */

/* TABLO KENDİ ÖLÇÜSÜNÜ VERİR (table-layout: auto): telefonda sütun
   gizlenince "fixed" düzende colgroup ölçüleri kayıyor ve ürün adı sıfır
   genişliğe düşüyordu. Sayı sütunlarına ölçü verilir, ürün adı kalanı
   alır. */
.dp-tablo { table-layout: auto; width: 100%; }

/* DOLGU TEK ELDEN · BAŞLIK VE GÖVDE AYNI RİTİMDE (2026.465 ·
   kullanıcının bildirimi: "S.NO dolgusu başka olmuş; dolgular, fontlar,
   hizalama hepsi aynı olmalı").

   Başlık hücresi dolgusunu .gs-tablo'dan alıyordu (16px), gövde hücresi
   buradan (10px): rakam başlığın altına DÜŞMÜYORDU. Seçici artık
   ".gs-tablo thead th" ile aynı ağırlıkta yazılır ("thead th" ·
   "tbody td") ve ikisi aynı ölçüyü alır.

   Ritim: hücreler 12px, kartın kenarına bakan ilk ve son hücre 16px —
   bant, şerit ve not satırları da 16px'ten başlar. */
.dp-tablo thead th,
.dp-tablo tbody td { padding: 0 12px; }
/* Kenar dolgusu yalnız GERÇEK ilk sütuna: iki katlı başlıkta alt satırın
   ilk hücresi tablonun kenarında değil, ortasındadır. */
.dp-tablo thead tr:first-child th:first-child,
.dp-tablo tbody td:first-child { padding-left: 16px; }
.dp-tablo thead th:last-child,
.dp-tablo tbody td:last-child { padding-right: 16px; }

/* Başlık, altındaki hücreyle AYNI YÖNE yaslanır: S.NO ortada, rakam
   sütunları sağda. Yoksa göz iki ayrı yere bakar. */
.dp-tablo thead th.dp-no { text-align: left; }
.dp-tablo thead th.dp-sayi,
.dp-tablo thead th.dp-para,
.dp-tablo thead th.dp-fiyat,
.dp-tablo thead th.dp-tutar,
.dp-tablo thead th.dp-giris-bas { text-align: right; }

/* Rakam sütunları SAĞA yaslı ve eşit genişlikli rakamlarla; başlığı da
   sağda durur, yoksa göz iki ayrı yere bakar. */
.dp-tablo .dp-sayi,
.dp-tablo .dp-para,
.dp-tablo .dp-fiyat,
.dp-tablo .dp-tutar,
.dp-tablo .dp-giris,
.dp-tablo .dp-giris-bas {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.dp-tablo .dp-sayi,
.dp-tablo .dp-giris,
.dp-tablo .dp-giris-bas { width: 84px; }
.dp-tablo .dp-para { width: 116px; }
.dp-tablo .dp-fiyat { width: 92px; }
.dp-tablo .dp-marka {
  width: 118px;
  font-size: var(--kucuk-boy);
  color: var(--ikinci);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
 /* SIRA NUMARASI SOLA YASLI (2026.466 · kullanıcının bildirimi:
   "S.NO dolgusu başka olmuş"). Ortalıyken sayı sütunun içinde
   yüzüyordu: üstündeki grup bandı, alttaki not ve özet kartın 16px
   içinden başlarken sıra numarası 31px'ten başlıyor, kartın sol
   kenarında tek bir dikey çizgi oluşmuyordu. Sola yaslanınca hepsi aynı
   hizaya gelir. */
 /* SÖNÜKLÜK RENKLE VERİLİR, SAYDAMLIKLA DEĞİL (2026.467 · kullanıcının
   bildirimi: "başlıkların arkasındaki dolguları alttakileri görmüyor
   musun · tablo varsayılanlarımıza bak").

   opacity hücrenin yalnız YAZISINI değil ZEMİNİNİ de soluklaştırıyor:
   defter başlığının kremi S.NO ve MARKA sütunlarında açılıyor, band üç
   tonlu bir yamaya dönüyordu (ölçüldü: 242,233,213 · 234,220,192 ·
   239,228,206). Tablonun varsayılanı tek tondur; sönük yazı için
   ikincil mürekkep kullanılır. */
.dp-tablo .dp-no {
  width: 44px;
  text-align: left;
  color: var(--ikinci);
  font-variant-numeric: tabular-nums;
}
.dp-tablo .dp-durum { width: 118px; }
.dp-tablo .dp-tutar { width: 180px; font-weight: 650; }
.dp-tablo .dp-ok {
  width: 34px;
  padding-left: 0;
  text-align: right;
  color: var(--ikinci);
}

/* ÜRÜN ADI SÜTUNUN ASIL İŞİDİR: kalan yeri o alır, iki kelimelik bir ad
   üç satıra bölünmez. */
.dp-tablo-urun .dp-urun-ad { min-width: 200px; }
.dp-tablo-urun .dp-urun-baslik {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-toplam-ad { white-space: nowrap; }

/* İKİ KATLI BAŞLIK: üstte bölüm adı (MİKTAR · TUTAR), altta sütunlar.
   Bölümler arasına ince bir tel çekilir; hangi rakamın hangi bölüme ait
   olduğu göz ucuyla okunur. */
.dp-bolum-satir th { height: 34px; color: var(--defter-koyu); }
.dp-alt-satir th {
  height: 30px;
  font-size: var(--etiket-boy);
  color: var(--ikinci);
}
.dp-bolum-satir th.dp-bolum { text-align: center; letter-spacing: .08em; }
.dp-tablo .dp-bolum { border-left: 1px solid var(--ayirici); }

.dp-tablo .dp-kullanilan { font-weight: 650; }
.dp-tablo .dp-kalan-tutar { font-weight: 650; }
.dp-eksi { color: var(--hata); }

/* DEVİRDEN GELEN RAKAM SÖNÜK DURUR (2026.472 · kullanıcının kararı: "bir
   kalan yazılmamışsa aynen yazsın devir bakiyeyi"). Sayılmamış satırda
   kalan, dönem başı miktarıdır; rakam yerinde durur ama kullanıcının
   yazdığı değil — koyu yazılsaydı sayılmış gibi görünürdü. */
.dp-tablo .dp-devir { color: var(--ikinci); font-weight: 400; }

/* Giriş kutusu · çerçevesiz, sayfa bir sayım kâğıdı (Ay Sonu Sayımı'nın
   .sy-giris kutusu). Birim sağında sönük bir sonektir. */
.dp-yazim {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 4px;
}
/* KUTU DAR TUTULUR: kendi haline bırakılan bir metin kutusu yirmi
   karakterlik yer istiyor ve sütunu iki katına çıkarıyordu. Miktar en
   çok birkaç hane. */
.dp-yazim .sy-giris { flex: 1 1 auto; min-width: 0; width: 56px; }
.dp-birim {
  flex: none;
  font-size: var(--etiket-boy);
  line-height: 1;
  opacity: .5;
  pointer-events: none;
}

/* ---- Depolar listesi ---- */
/* TIKLANABİLİR TABLO SATIRI · YENİ KURAL, TABLOYA UYARLANMIŞ
   (2026.514 · kullanıcının isteği: "burası da yeni kuralımız gibi
   olsun").

   Menüdeki kural şuydu: yüzey ve gölge yok, satır sağa kayar ve solunda
   altın çubuk belirir. Tabloda İKİ PARÇASI ALINIR, BİRİ ALINMAZ:

     alınır   · yüzey yok (eskiden nötr bir zemine oturuyordu)
     alınır   · solda altın çubuk
     ALINMAZ  · sağa kayma

   Kayma tabloda sütun hizasını bozuyor: satırın tamamı kaydığı için
   tutar sütunu da kayıyor ve rakamlar alt alta tutmuyor. Tablonun ilk
   işi hizadır; menüde hiza diye bir şey yok, orada kayma serbest.

   Çubuk ilk hücreye konur (satırın kendisi konumlandırılamaz: tablo
   satırında position: relative tarayıcıya göre değişir). */
.dp-satir { cursor: pointer; }

@media (hover: hover) {
  .dp-satir:hover td:first-child { position: relative; }

  .dp-satir:hover td:first-child::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 50%;
    width: 3px;
    height: 22px;
    margin-top: -11px;
    border-radius: 2px;
    background: var(--altin-koyu);
  }
}
.dp-satir:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }
.dp-ad-yazi { display: block; font-weight: 650; }
.dp-ad-alt {
  display: block;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  opacity: .6;
  letter-spacing: .02em;
}

.dp-toplam td {
  background: var(--oyuk);
  font-weight: 700;
  color: var(--vurgu);
  border-top: 1.5px solid var(--altin-soluk);
}

.dp-bas-rozet { margin-left: auto; }
.dp-ayar-dugme { margin-left: var(--bosluk); }

.dp-arac-serit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.25) 16px;
}

/* Depo ekle · hesap planındaki "Yeni Hesap" düğmesinin aynısı (2026.468
   · kullanıcının isteği). Sayfanın asıl işini açan düğme birincildir;
   ikincil kalınca listenin bir parçası gibi duruyordu. */
.dp-yeni { flex: none; }

/* DİP BANDI · DAHA KOYU VE DOKULU (2026.468 · kullanıcının isteği:
   "alttaki kısımda daha iyi bir rengi olsun ve dokulu"). Kartın dibi
   defterin kapak rengini alır ve üstüne sayfanın kâğıt greni biner
   (.gren · 2-tasarim/temel.css · --doku-gren); düz boya bir şerit
   olmaktan çıkıp kâğıdın devamı gibi durur. Üstünde altın bir tel:
   tablonun bittiği yer belli olsun. */
.dp-kart .sy-ozet {
  background-color: var(--defter-baslik);
  background-image: radial-gradient(var(--doku-gren) .5px, transparent .5px);
  background-size: 3px 3px;
  border-top: 1px solid var(--altin-soluk);
}

.dp-kart .sy-ozet-ad { opacity: .75; }
/* DÖNEM OKLARLA GEZİLİR (2026.468): görünüş ortak şerittir
   (.na-gezinme · Nakit Akış'taki gezinme); burada yalnız ortadaki ay
   adının ölçüsü var — ay adı değişince şerit oynamasın diye alt sınırı
   sabittir. */
.dp-donem-ad {
  min-width: 128px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.dp-geri-serit {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  margin-bottom: calc(var(--bosluk) * 1.5);
}
.dp-yol { font-size: var(--kucuk-boy); opacity: .7; }

/* Depo ayarları kartın içinde açılır; formun kendi iskeleti Şubeler
   ekranınınkiyle aynıdır (.ayar-acilan). */
.dp-form { padding: 0 16px calc(var(--bosluk) * 1.5); }

/* ---- Hesap bandı ----
   Tablonun dolgusuyla aynı hizada başlar; grubun toplamı sağda durur. */
.dp-grup-bant {
  display: flex;
  align-items: baseline;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.1) 16px;
  background: var(--oyuk);
  border-top: 1px solid var(--altin-soluk);
  border-bottom: 1px solid var(--altin-soluk);
  cursor: pointer;
}
.dp-grup-bant:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }
.dp-grup-ad { font-weight: 700; letter-spacing: .03em; }
.dp-grup-sayi { font-size: var(--etiket-boy); opacity: .65; }
.dp-grup-tutar {
  margin-left: auto;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.dp-grup-elle {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5) 16px;
}
.dp-grup-elle-yazi { flex: 1 1 auto; font-size: var(--kucuk-boy); opacity: .65; }
.dp-grup-elle .dp-yazim { flex: none; width: 160px; }

.dp-kapali {
  padding: calc(var(--bosluk) * 1.5) 16px;
  font-size: var(--kucuk-boy);
  opacity: .6;
}

/* SAYILDI İŞARETİ KENDİ OLUĞUNDA DURUR (2026.466): metnin içine
   yazıldığında sayılan ürünün adı bir karakter sağa kayıyor, sayılmayanla
   aynı hizada durmuyordu. İşaret ada ayrılmış 18px'lik boşluğa oturur;
   ad her satırda aynı yerden başlar. Grup toplamının etiketi de aynı
   boşluğu alır. */
.dp-tablo-urun .dp-urun-baslik { padding-left: 18px; }
/* Toplam etiketi hücrenin kendisidir: hücre dolgusu (12px) ile işaret
   oluğu (18px) toplanır. */
.dp-tablo-urun .dp-toplam-ad { padding-left: 30px; }
/* Başlık da o boşluğu alır ki "ÜRÜN" yazısı adların tam üstünde dursun. */
.dp-tablo-urun thead th.dp-urun-bas { padding-left: 30px; }
.dp-tablo-urun .dp-urun-baslik { position: relative; }

.dp-urun-sayildi .dp-urun-baslik::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--metin-basari);
}

/* Telefonda ürün adının altına inen bilgiler · geniş ekranda sütunları
   var, orada tekrarlanmaz. */
.dp-alt-bilgi { display: none; }

@media (max-width: 860px) {
  /* Telefonda üç sütun kalır: ÜRÜN · KULLANILAN · KALAN. Marka, birim
     fiyat, dönem başı ve giren ürün adının altına iner; tutarlar grup
     bandındaki toplamdan okunur. Tablonun 460px'lik alt sınırı kalkar,
     yoksa tablo kartın dışına taşardı. */
  .dp-tablo { min-width: 0; }
  .dp-tablo .dp-no,
  .dp-tablo .dp-ok,
  .dp-tablo .dp-durum,
  .dp-tablo .dp-marka,
  .dp-tablo .dp-fiyat,
  .dp-tablo-urun .dp-sayi:not(.dp-kullanilan),
  .dp-tablo-urun .dp-alt-satir th.dp-sayi:not(.dp-kullanilan),
  .dp-tablo-urun .dp-para,
  .dp-tablo-urun .dp-bolum-satir th.dp-bolum { display: none; }

  .dp-tablo th,
  .dp-tablo td { padding: 0 8px; }
  .dp-tablo th:first-child,
  .dp-tablo td:first-child { padding-left: 12px; }
  .dp-tablo th:last-child,
  .dp-tablo td:last-child { padding-right: 12px; }

  .dp-tablo .dp-sayi,
  .dp-tablo .dp-giris,
  .dp-tablo .dp-giris-bas { width: 70px; }
  .dp-tablo .dp-tutar { width: 132px; }

  .dp-tablo-urun .dp-urun-ad { min-width: 0; }
  .dp-tablo-urun .dp-urun-baslik { white-space: normal; }
  .dp-alt-bilgi {
    display: block;
    font-size: var(--etiket-boy);
    line-height: var(--etiket-satir);
    opacity: .6;
  }

  /* Kart künyesi telefonda sarılır: ad, rozet ve ayar düğmesi tek satıra
     sığmıyor ve birbirinin üstüne biniyordu. */
  .dp-kart .sy-kart-basi { flex-wrap: wrap; }
  .dp-kart .sy-kart-yazi { flex: 1 1 100%; }

  .dp-grup-bant { flex-wrap: wrap; padding-left: 12px; padding-right: 12px; }
  .dp-grup-tutar { width: 100%; margin-left: 0; }
  .dp-arac-serit { flex-wrap: wrap; padding-left: 12px; padding-right: 12px; }
  .dp-form { padding-left: 12px; padding-right: 12px; }
  .dp-grup-elle,
  .dp-kapali { padding-left: 12px; padding-right: 12px; }
  .dp-ayar-dugme { margin-left: 0; }
}

/* =====================================================================
   HESAPLAR VE DEPOLAR · KÂĞIT ENİ VE ORTALAMA · 2026.492
   ---------------------------------------------------------------------
   Kullanıcının isteği: "hesaplar, stok yönetimi depolar sayfaları da
   böyle olsun ama ortala".

   "Böyle" olan, Tekrarlayan Ödeme ve Gelirler'de yapılan şey: sayfa bir
   A4 eninden geniş olmaz, satırlar ferahlar. Fark ORTALAMADIR — orada
   kâğıt sola yaslı durur, burada ekranın ortasında.

   NEDEN İKİSİNDE ORTALI: bu iki ekranın kendisi bir KARTTIR (.hesap-kagit ·
   .dp-kart) ve kartın üstünde sola yaslanacak bir başlık kuşağı yoktur;
   sayfanın tamamı o karttır. Sola yaslanınca geniş ekranda kart sol
   kenara yapışıp sağında bir ekran boyu boşluk kalıyordu.

   YALNIZ GENİŞ EKRAN · 900px altında kart zaten ekran genişliğindedir
   ve A4 sınırı ona değmez; media sorgusu olmadan "margin: auto" dar
   ekranda da çalışır ama ölçü gereksiz yere hesaplanır.

   Kaynak: 4-ekranlar/3-tanimlar/hesaplar.js · 4-ekranlar/3-tanimlar/depolar.js
   ===================================================================== */
@media (min-width: 900px) {
  .iskelet-hesaplar .hesap-kagit,
  .dp-kart {
    /* width OLMADAN KÂĞIT İÇERİĞİ KADAR DARALIR: Hesaplar'ın kabı bir
       sütun flex'tir (.iskelet-hesaplar) ve yanları "auto" olan bir
       flex öğesi artık gerilmez — genişliği içeriğinden hesaplanır.
       Kâğıt 794px yerine 494px kalıyordu. Önce tam genişlik alınır,
       sonra max-width onu A4'te keser. */
    width: 100%;
    max-width: var(--kagit-en);
    margin-left: auto;
    margin-right: auto;
  }

  /* SAYIM KÂĞIDI YATAY DURUR (2026.516). Depo LİSTESİ dikey A4'te kalır
     — orada dört sütun var, ferah duruyor. Sayım ekranında on sütun var
     ve dikey A4'e sığmıyordu; o kart yatay A4 enini alır. Kâğıt fikri
     bozulmaz, yalnız çevrilir. */
  .dp-kart.dpg-kart { max-width: var(--kagit-en-yatay); }

  /* Depo listesinin satırı ferahlar · Tekrarlayan'daki ölçünün aynısı.
     Giriş satırı (--tablo-giris-satir · 44px) iki satırlık hücre için
     dardı: departman adının altında hesaplar ve "Sayıldı" bilgisi de
     yazıyor. Yalnız LİSTE tablosuna verilir; sayım ekranındaki giriş
     tablosu (.dp-tablo-urun) kendi ölçüsünde kalır, oradaki hücrede
     yazı kutusu var ve yüksekliği ona göre verilmiş. */
  .dp-tablo-liste tbody td {
    height: calc(var(--tablo-giris-satir) + var(--bosluk) * 1.5);
  }
}

/* ---------- Günün Hikâyesi · fiyatı değişen kalemler · 2026.489 ------
   Kullanıcının isteği: "fiyatı farklı olan varsa günün hikâyesinde
   faturada gözüksün". Rozet kapalı kartta sayıyı söyler, tablo belge
   açılınca hangi ürün olduğunu yazar (göç 135).

   ROZET UYARI RENGİNDE DEĞİL: zam da indirim de "fark"tır ve ikisi de
   kötü haber değildir. Amber, "bak" der; kırmızı "hata var" derdi.
   Ekranın kendi kapalı/açık rozetleri de aynı ölçüde duruyor. */
.gh-r-fiyat {
  border-color: rgba(176, 122, 26, .34);
  background: rgba(176, 122, 26, .10);
  color: var(--metin-uyari);
}

/* Yüzde sütunu iki yöne de bakar; renk YÖNÜ söyler, büyüklüğü değil. */
.gh-fiyat-artti  { color: var(--metin-hata); font-weight: 600; }
.gh-fiyat-azaldi { color: var(--metin-basari); font-weight: 600; }

/* Birim ürünün yanında soluk durur: ayrı sütun açmak tabloyu
   genişletiyordu, oysa "KG" adın bir parçası gibi okunur. */
.gh-fiyat-birim {
  font-size: var(--etiket-boy);
  color: var(--ikinci);
}


/* ---------- Tasarım kütüphanesi (2026.505) ----------
   Vitrin sayfasının KENDİ görünümü. Buradaki kurallar yalnız sayfanın
   iskeletini kurar — örneklerin içindeki düğme, seçici ve kartlar
   programın kendi sınıflarını kullanır, burada hiçbir şeyle
   değiştirilmez. Örneği biçimlendiren bir satır yazılırsa kütüphane
   yalan söylemeye başlar; o yüzden aşağıda yalnız .td-* vardır.
   Kaynak: 4-ekranlar/4-yonetim/tasarim.js */
.td { display: flex; flex-direction: column; gap: calc(var(--bosluk) * 3); }

.td-giris { display: flex; flex-direction: column; gap: var(--bosluk); }

.td-giris-yazi {
  margin: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

.td-giris-kural {
  padding-left: calc(var(--bosluk) * 1.5);
  border-left: 2px solid var(--altin);
  opacity: .85;
}

/* Bölüm listesi · uzun sayfada aranan başlığa atlatır. */
.td-gezinme {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bosluk);
}

.td-gez-bag {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--bosluk) / 1.5);
  padding: calc(var(--bosluk) / 1.5) calc(var(--bosluk) * 1.25);
  background: var(--kart-yuzey);
  border: 1px solid var(--altin-soluk);
  border-radius: 999px;
  color: var(--metin);
  text-decoration: none;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

@media (hover: hover) {
  .td-gez-bag:hover:not(.td-gez-acik) { border-color: var(--vurgu); }
}

/* Seçili bölüm düğmesi · basılı kaldığı belli olur. */
.td-gez-acik {
  background: var(--vurgu);
  border-color: var(--vurgu);
  color: #fff;
}

.td-gez-acik .td-gez-sira {
  background: rgba(255, 255, 255, .22);
  color: #fff;
}

/* Açık olan bölüm düğmesi fareyle değişmez (2026.509 · aynı kural).
   Burada da bir ihlal vardı: açıkken üstüne gelince çerçevesi
   koyulaşıyordu. Denetimde kendi yazdığım satır çıktı. */

.td-gez-sira {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--oyuk);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

/* ---- Bölüm ---- */
.td-bolum {
  background-color: var(--kart-zemin);
  background-image: var(--kart-desen);
  border: var(--kart-cerceve);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  padding: calc(var(--bosluk) * 2.5);
  /* Başlığa atlarken üst çubuğun altına girmesin. */
  scroll-margin-top: calc(var(--bosluk) * 10);
}

.td-bolum-tepe {
  padding-bottom: calc(var(--bosluk) * 1.5);
  margin-bottom: calc(var(--bosluk) * 2);
  border-bottom: 1px solid var(--ayirici);
}

.td-baslik {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
}

.td-sira {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  background: var(--vurgu);
  color: #fff;
  font-family: var(--yazi-metin);
  font-size: var(--kucuk-boy);
  font-variant-numeric: tabular-nums;
}

.td-tarif {
  margin: var(--bosluk) 0 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* Her bölümün kaynağı · "bu değişecekse nereye dokunulacak" satırı. */
.td-kaynak {
  margin: calc(var(--bosluk) / 2) 0 0;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.5;
  color: var(--ikinci);
  word-break: break-word;
}

.td-govde { display: flex; flex-direction: column; gap: calc(var(--bosluk) * 2); }

/* ---- Örnek kutusu ---- */
.td-sira-kutu {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: calc(var(--bosluk) * 1.5);
}

@media (min-width: 760px) {
  .td-sira-kutu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.td-ornek {
  display: flex;
  flex-direction: column;
  gap: var(--bosluk);
  padding: calc(var(--bosluk) * 1.5);
  background: var(--kart-yuzey);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kutu);
}

.td-ornek-etiket {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .7;
}

/* Örneklerin kendisi · yan yana duranlar sarar, birbirine yapışmaz. */
.td-ornek-ic {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--bosluk);
}

.td-ornek-ic > * { max-width: 100%; }

.td-kod,
.td-not code,
.td-alt-tarif code {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  line-height: 1.6;
  color: var(--ikinci);
  word-break: break-word;
}

.td-not {
  margin: 0;
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  background: var(--oyuk);
  border-radius: var(--kose-kutu);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}

/* ---- Alt başlık ---- */
.td-alt { display: flex; flex-direction: column; gap: var(--bosluk); }

.td-alt-ad {
  margin: 0;
  font-size: var(--h3-boy, 15px);
  line-height: 1.4;
  font-weight: 600;
}

.td-alt-tarif {
  margin: 0;
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .8;
}

/* ---- Renkler ---- */
.td-renkler {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: var(--bosluk);
}

.td-renk {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  min-width: 0;
}

.td-renk-kutu {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: var(--kose-kutu);
  border: 1px solid var(--defter-tel-soluk);
}

.td-renk-yazi { display: flex; flex-direction: column; min-width: 0; }

.td-renk-deger {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 11px;
  color: var(--ikinci);
}

.td-renk-tarif {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  opacity: .75;
}

/* ---- Yazı ---- */
.td-aile {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
}

.td-aile-ornek { font-size: 20px; line-height: 1.4; }

.td-yazi-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--bosluk);
  padding: var(--bosluk) 0;
  border-bottom: 1px solid var(--ayirici);
}

.td-yazi-kunye { display: flex; flex-direction: column; text-align: right; }

/* ---- Ölçüler ---- */
.td-olcu {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  flex-wrap: wrap;
  padding: calc(var(--bosluk) / 1.5) 0;
  border-bottom: 1px solid var(--ayirici);
}

.td-olcu-cubuk {
  flex: none;
  height: 12px;
  min-width: 4px;
  background: var(--vurgu);
  border-radius: 2px;
}

.td-golgeler {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.5) 0;
}

.td-golge {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 150px;
  padding: calc(var(--bosluk) * 1.5);
  background: var(--kart-kagit);
  border-radius: var(--kose-kart);
}

/* ---- Simge ve illüstrasyon ızgaraları ---- */
.td-simgeler {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: var(--bosluk);
}

.td-simge,
.td-gorsel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(var(--bosluk) / 2);
  padding: var(--bosluk);
  background: var(--kart-yuzey);
  border: 1px solid var(--defter-tel-soluk);
  border-radius: var(--kose-kutu);
  text-align: center;
}

.td-simge code,
.td-gorsel code {
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: 10px;
  line-height: 1.4;
  color: var(--ikinci);
  word-break: break-word;
}

.td-gorseller {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: var(--bosluk);
}

.td-gorsel-cizim { width: 64px; height: 64px; color: var(--ikinci); }

.td-daireler { display: inline-flex; align-items: center; gap: var(--bosluk); }

/* ---- Kabuk parçalarının vitrindeki kabı ----
   Yan menü satırı, alt menü sekmesi ve çevrimdışı şeridi normalde
   kendi kabında durur (yan panel, alt çubuk, üst çubuğun altı) ve o
   kap onlara zeminini verir. Vitrinde o kap yok; burada yalnız aynı
   zemin taklit edilir, parçanın KENDİ görünüşüne dokunulmaz. */
.td-yan-kutu {
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 100%;
  padding: var(--bosluk);
  background: var(--yan-zemin);
  border-radius: var(--kose-kutu);
}

/* Yüksekliği gerçek çubuğunkidir (--alt-menu): aktif sekmenin altındaki
   kırmızı çizgi "bottom: 6px" ile konumlanıyor ve kap kısa olunca çizgi
   yazının içinden geçip üstü çizili gibi görünüyordu. */
.td-alt-menu {
  display: flex;
  width: 100%;
  min-height: var(--alt-menu);
  background: var(--yuzey);
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kutu);
  overflow: hidden;
}

/* Şerit normalde ekranın tepesine yapışıktır (position: fixed);
   vitrinde akışın içinde dursun diye o tek satır geri alınır. */
.td-serit { width: 100%; }

.td-serit .cevrimdisi-serit {
  position: static;
  border-radius: var(--kose-kutu);
}

/* Davranış bölümü · tek kartlık ızgara ve geçiş hedefi. */
.td-tek-kart { grid-template-columns: minmax(0, 1fr) !important; margin: 0 !important; }

/* Seçili durum örnekleri · liste normalde açılır kutunun altında
   durur, vitrinde akışın içindedir. */
.td-secili-kutu {
  display: flex;
  flex-direction: column;
  gap: var(--bosluk);
  width: 100%;
}

.td-sec-liste {
  position: static;
  width: 100%;
  max-height: none;
}

.td-gecis-hedef {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
}

.td-zil {
  display: flex;
  flex-direction: column;
  width: 100%;
  background: var(--yuzey);
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kutu);
  overflow: hidden;
}


/* ---------- Geniş sayım kâğıdı (2026.516) ----------
   Kullanıcının isteği: "burası büyük ekran olsun yatay A4 gibi, sığmamış
   çünkü; sadece liste olsun, tepedeki ve alttakiler olmasın" ve
   "iki ayrı tablo, sol ürün bilgileri sağ miktar bilgileri, aralarında
   ufak boşluk olsun ama".
   Çizim: 4-ekranlar/3-tanimlar/depolar.js · cizDetay · grupHtml */

/* Tek satırlık şerit · eski depo kartının yerine geçti. */
.dpg-serit {
  display: flex;
  align-items: center;
  gap: calc(var(--bosluk) * 1.5);
  flex-wrap: wrap;
  margin-bottom: calc(var(--bosluk) * 1.5);
}

.dpg-ad {
  font-family: var(--yazi-baslik);
  font-size: var(--h2-boy);
  line-height: var(--h2-satir);
  font-weight: 600;
}

.dpg-yol {
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
  color: var(--ikinci);
}

.dpg-sag-grup {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: var(--bosluk);
}

/* Kartın kendi payı kalkar: içinde artık yalnız tablolar var. */
.dpg-kart .sy-kart-govde { padding: 0; }

/* ---- İki tablo yan yana ----
   ORTADAKİ BOŞLUK göze iki öbeği ayırtır: soldaki ürünü tanıtır,
   sağdaki sayılır.

   DAR EKRANDA ikisi birlikte yatay kayar (overflow-x) — alt alta
   inselerdi satırlar birbirinden kopardı. Sol tablo kayarken YERİNDE
   DURUR (position: sticky): elinizdeki ürünün adını görmeden miktar
   yazamazsınız. */
.dpg-ikili {
  display: flex;
  align-items: flex-start;
  gap: calc(var(--bosluk) * 1.75);
  overflow-x: auto;
  padding: calc(var(--bosluk) * 1.5);
}

/* ÖLÇÜ YATAY A4'E GÖRE BÖLÜNDÜ: kâğıt 1123px, iki yanından 12'şer
   piksel pay ve aradaki 14px boşluk düşünce 1085px kalıyor. Sağ tablo
   sabit 560px alır (altı sayı sütunu ve bir yazı kutusu bu kadar
   istiyor), kalanı sol tablo alır. Sabit vermeseydik sağ tablo
   içeriğince genişleyip kâğıdı taşırıyordu. */
.dpg-sol {
  position: sticky;
  left: calc(var(--bosluk) * 1.5);
  z-index: 1;
  flex: 1 1 auto;
  min-width: 0;
}

/* 84·3 + 104 + 118·2 = 592 */
.dpg-sag { flex: 0 0 592px; }

.dpg-sag .dpg-tablo { width: 100%; }

/* ---- ÇERÇEVE (2026.517 · kullanıcının isteği: "tablolar daha iyi
   çerçevede olsun") ----
   İki tablo kartın içinde çerçevesiz duruyordu: aralarındaki boşluk
   dışında onları ayıran bir şey yoktu, "iki ayrı tablo" olduğu
   okunmuyordu. Artık her biri kendi kâğıdında durur — altın tel, yumuşak
   köşe ve kartın kendi gölgesi. Programın kart dili burada da geçerli:
   çerçeve ayırır, gölge derinlik verir. */
.dpg-ikili .tablo-kutu {
  background: var(--kart-yuzey);
  border: 1px solid var(--altin-soluk);
  border-radius: var(--kose-kutu);
  box-shadow: var(--kart-golge);
  overflow: hidden;
}

/* Sol tablo kayarken arkasındaki sağ tabloyu örtmeli; kendi içinde
   KAYMAZ. Kutusu kayabilseydi ürün adı sütunu kendi kabının içinde
   kaybolur, sağdaki miktar hangi ürüne ait bilinmezdi. Ad sütunu
   daralınca üç nokta ile kısalır. */

/* SOL TABLONUN SÜTUNLARI SABİT: kalan yer ÜRÜN adına verilir, öbür üçü
   ölçüsünü korur. "auto" bırakılsaydı marka adı uzadıkça birim fiyat
   sütununu dışarı iter ve kesilirdi — nitekim ilk denemede kesildi. */
.dpg-sol .dpg-tablo,
.dpg-sag .dpg-tablo { width: 100%; table-layout: fixed; }

/* TUTAR SÜTUNU KIRPILMAZ. İlk ölçüde para sütunları 100px'ti ve
   "40.000,00 ₺" üç noktaya düşüyordu — kırpılmış bir ad okunur, kırpılmış
   bir tutar yanlış okunur. Para ve fiyat sütunları büyütüldü, aradaki
   fark marka sütunundan alındı; marka zaten ikincil bilgidir ve tam adı
   hücrenin title'ında durur. */
.dpg-c-no    { width: 48px; }
.dpg-c-marka { width: 130px; }
.dpg-c-fiyat { width: 106px; }
.dpg-c-adet  { width: 84px; }
.dpg-c-giris { width: 104px; }
.dpg-c-para  { width: 118px; }

/* İki başlık da İKİ SATIRDIR; yoksa gövdeler bir başlık boyu kayar. */
.dpg-tablo { table-layout: auto; }

.dpg-ust {
  text-align: center !important;
  letter-spacing: .08em;
}

/* BAŞLIK SATIRI İKİ SATIRA İNEBİLİR ama yüksekliği sabittir. "Dönem
   Başı" ve "Kullanılan" 84px'lik sütuna tek satırda sığmıyordu; tek
   satırda zorlansaydı ya kesilir ya sütunlar şişerdi. Yükseklik iki
   tabloda da aynı verildiği için hiza bozulmaz. */
/* ---- BAŞLIK HİZASI (2026.517 · "birde başlıklar daha iyi hizalansın")
   Üç kusur vardı:
     1 · "DÖNEM BAŞI" iki satıra iniyordu. Sağa yaslı iki satırın sol
         kenarı tırtıklı olur ve başlık ortalanmış gibi görünür; komşu
         başlıklar tek satırken o biri iki satır olunca sıra bozuluyordu.
         Harf aralığı bu iki tabloda kapatıldı ve ölçü bir tık küçüldü —
         etiket 84px'e tek satırda sığıyor.
     2 · Başlığın payı ile hücrenin payı ayrı ayrı yazılmıştı; sağa
         yaslı bir sütunda iki pay eşit değilse başlık ile rakam aynı
         çizgide durmaz. Artık TEK kuralla ikisine birden veriliyor.
     3 · Başlıklar dibe yaslıydı ama satır yüksekliği yazıdan büyük;
         alt pay da eşitlendi. */
.dpg-tablo thead tr.dp-alt-satir th {
  height: 38px;
  white-space: nowrap;
  letter-spacing: 0;
  font-size: 10.5px;
  line-height: 1.2;
  vertical-align: bottom;
}

/* Başlık ve hücre AYNI payı alır: sağa yaslı sütunda tek piksellik bir
   fark bile rakamı başlığından kaydırır. */
.dpg-tablo thead th,
.dpg-tablo tbody td {
  padding-left: 8px;
  padding-right: 8px;
}

.dpg-tablo thead tr.dp-alt-satir th { padding-bottom: 7px; }

/* ---- HER ŞEY ORTALI (2026.518 · kullanıcının kararı: "metinleri ve
   başlıkları ortala" · iki hâli çizilip gösterildi, "her şey ortalı"
   seçildi) ----

   BU EKRANA ÖZELDİR ve programın genel kuralının dışındadır: tablolarda
   tutar sağa yaslanır, rakamlar alt alta tutsun diye (6-belgeler/
   tasarim.md · Tablolar). Burada bilerek ayrılındı, sebebi şu: sayım
   kâğıdı sütun sütun OKUNAN bir tablo değil, satır satır DOLDURULAN bir
   form. Gözün işi "şu ürünün kalanı ne" — aşağı doğru rakam toplamak
   değil. Ortalı düzende başlık ile değeri aynı eksende durur ve
   doldurulacak kutu sütunun ortasında görünür.

   AĞIRLIK: .dp-tablo .dp-sayi gibi kurallar iki sınıf eder; buradaki
   üç sınıflık seçici onları yener. !important gerekmez. */
.dpg-ikili .dpg-tablo thead th,
.dpg-ikili .dpg-tablo tbody td,
.dpg-tek .dpg-tablo thead th,
.dpg-tek .dpg-tablo tbody td { text-align: center; }

/* Yazı kutusu ve birimi de ortada durur. */
.dpg-ikili .dpg-tablo .dp-yazim,
.dpg-tek .dpg-tablo .dp-yazim { justify-content: center; }
.dpg-ikili .dpg-tablo .sy-giris,
.dpg-tek .dpg-tablo .sy-giris { text-align: center; }

/* Satır yükseklikleri sabit: iki tablonun aynı satırı aynı hizada
   durmak zorunda, metin sarması hizayı bozamaz. */
.dpg-tablo tbody td {
  height: 46px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dpg-tablo tbody tr.dp-toplam td { height: 40px; }

/* Ürün adı tek satıra iner: alttaki yardımcı yazılar dar ekran içindi,
   geniş kâğıtta sütunların kendisi zaten var. */
.dpg-sol .dp-urun-ad .dp-alt-bilgi,
.dpg-tek .dp-urun-ad .dp-alt-bilgi { display: none; }

@media (max-width: 900px) {
  /* Dar ekranda yardımcı yazılar geri gelir ve sağ tablo kayar. */
  .dpg-sol .dp-urun-ad .dp-alt-bilgi,
  .dpg-tek .dp-urun-ad .dp-alt-bilgi { display: block; }
  .dpg-tablo tbody td { height: auto; white-space: normal; }
  .dpg-sol { position: static; }
}

/* ==================================================================
   KASA FARK RAPORU (2026.633)
   ------------------------------------------------------------------
   KULLANICININ KENDİ EXCEL KÂĞIDIDIR (isteği: "attığım raporun tasarım
   ve renk dili olarak aynısı olsun"). Uygulamanın krem/altın dili bu
   ekranda BİLEREK kullanılmaz: ekip yıllardır bu kâğıda bakıyor ve
   rakamı orada aradığı yerde bulmalı. Beyaz zemin, ince siyah çizgi,
   kırmızı başlık (#C00000 · kâğıdın kendi kırmızısı), sarı vurgu
   hücresi (#FFFF00) ve Calibri — hepsi PDF'ten ölçülerek alındı.

   Kâğıt A4'tür (kullanıcının isteği: "A4 boyutunda olsun"): ekranda da
   210 mm eninde durur, yazdırınca tek sayfaya oturur.
   ================================================================== */
.kfr-kagit {
  width: 190mm;
  max-width: 100%;
  margin: 0 auto;
  padding: 10mm;
  background: #FFFFFF;
  color: #000000;
  font-family: Calibri, Carlito, "Segoe UI", system-ui, sans-serif;
  font-size: 10.2pt;
  line-height: 1.22;
  border: 1px solid var(--kenar);
  box-shadow: var(--kart-golge);
}

.kfr-kagit table { border-collapse: collapse; width: 100%; }
.kfr-kagit td { border: 1px solid #000; padding: 3px 7px; white-space: nowrap; }

/* ---- Künye · kâğıdın başlığı ---- */
.kfr-kunye .kfr-sol {
  width: 52%;
  text-align: center;
  color: #C00000;
  font-weight: 700;
  font-size: 1.42em;
  padding: 6px 7px;
  white-space: normal;
}
.kfr-rapor { display: block; font-size: .86em; line-height: 1.15; }
.kfr-no {
  display: block;
  color: #000;
  font-weight: 600;
  font-size: .38em;
  letter-spacing: .02em;
  margin-top: 3px;
}
.kfr-kunye .kfr-etiket { width: 24%; color: #C00000; font-weight: 700; }
.kfr-kunye .kfr-etiket.kfr-kucuk { font-size: .86em; }
.kfr-kunye .kfr-deger { font-weight: 700; text-align: center; }
.kfr-kunye .kfr-deger.kfr-duz { font-weight: 600; font-size: .88em; }
.kfr-kunye .kfr-sari { background: #FFFF00; padding: 0; }

/* Kapanışı yapanın adı ELLE YAZILIR ve hücrenin kendisi kutudur:
   ayrı bir form alanı, kâğıdın düzenini bozardı. */
.kfr-giris {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 3px 7px;
  font: inherit;
  font-weight: 700;
  color: #000;
  text-align: center;
  text-transform: uppercase;
}
.kfr-giris:focus { outline: 2px solid #C00000; outline-offset: -2px; }
.kfr-giris::placeholder { color: #8A8A6A; font-weight: 400; text-transform: none; }

/* ---- Veri tablosu ---- */
.kfr-veri { margin-top: 10px; }
.kfr-veri .kfr-ad { text-align: left; width: 34%; }
.kfr-veri .kfr-iki { width: 14px; text-align: center; padding: 3px 2px; }
.kfr-veri .kfr-p {
  text-align: right;
  width: 19%;
  font-variant-numeric: tabular-nums;
}
.kfr-veri .kfr-bos { color: #808080; text-align: center; }
.kfr-veri tr.kfr-obek td { font-weight: 700; text-align: center; }
.kfr-veri tr.kfr-obek td.kfr-ad { text-align: left; }
.kfr-veri tr.kfr-kalin td { font-weight: 700; }
/* Bölüm arası boşluk · Excel'de de bir satır boş bırakılıyor. */
.kfr-veri tr.kfr-ayrac td { border: 0; height: 9px; padding: 0; }
.kfr-veri tr.kfr-dip td { font-weight: 700; font-size: .88em; }

.kfr-sebep {
  margin: 10px 0 0;
  font-size: .88em;
  border: 1px solid #000;
  padding: 6px 9px;
}
/* Madde madde (2026.898) */
.kfr-sebep-baslik { display: block; margin-bottom: 4px; }
.kfr-sebep ul { margin: 0; padding-left: 18px; }
.kfr-sebep li { margin: 3px 0; line-height: 1.4; }
.kfr-sebep-tutar { white-space: nowrap; }

.kfr-suzgec { align-items: center; }
/* Tarih kutusu içeriği kadar durur: süzgeç tek satır ve gün seçimi
   yanındaki oklarla birlikte tek bir öbek gibi okunmalı. */
.kfr-suzgec .trh .alan-kutu-tarih { width: 11em; }
.kfr-dugmeler {
  display: flex;
  gap: var(--bosluk);
  margin-left: auto;
  flex-wrap: wrap;
}

@media (max-width: 820px) {
  .kfr-kagit { width: auto; padding: 6mm 4mm; }
}
@media (max-width: 520px) {
  .kfr-kagit { font-size: 9.6px; padding: 4mm 3mm; }
  .kfr-kagit td { padding: 2px 3px; }
  .kfr-veri .kfr-ad { white-space: normal; width: 30%; }
  .kfr-veri .kfr-iki { width: 8px; }
  .kfr-veri .kfr-p { width: 23%; }
}

/* YAZDIRINCA KÂĞIDIN KENDİSİ ÇIKAR: süzgeç, çerçeve ve gölge basılmaz;
   kenar boşluğunu yazıcı verir (@page), kâğıt kendi payını bırakmaz. */
@page { size: A4 portrait; margin: 10mm; }
@media print {
  .kfr-suzgec { display: none; }
  /* Kâğıdın kendisi A4'ün tamamını kullanır: sayfanın payı ve kremi
     kâğıda çıkmaz. :has ile yalnız BU ekranda geçerli — öteki
     ekranların baskısı olduğu gibi kalır. */
  body:has(.kfr-kagit),
  body:has(.kfr-kagit) .sayfa { background: #FFFFFF; }
  .sayfa-icerik:has(.kfr-kagit) { padding: 0; margin: 0; }
  .kfr-kagit {
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
    font-size: 10.2pt;
  }
  .kfr-giris { outline: 0; }
}

/* =====================================================================
   RAPORLAR · NAKİT AKIŞ GÖRÜNÜŞÜ (2026.682)
   ---------------------------------------------------------------------
   Kullanıcının isteği: "bir sürü raporumuz var, hepsinin Nakit Akış'ta
   kurduğumuz gibi aynı yapıda olmasını istiyorum" · seçimi: "sadece
   görünüş · A4'ten devam, hepsi". Davranışa dokunulmaz; yalnız görünüş:
     1 · Kart sayfa kuşağına yapışık (aralarında tek çizgi), A4 eninde
         (844px) ve sola yaslı.
     2 · Tablo sade: başlık bandı kâğıttan bir ton koyu, yazısı koyu ve
         kalın; satırlar tek saç teliyle ayrılır, zebra yok.
     3 · Üstüne gelince satırın başında ince altın çizgi, tutar kalın.
   Birinci parti: Gelirler · Giderler · Mizan · Günlük İşlemler (.rl-kart
   ailesi) ve Mizan'ın .mz-tablo'su (Günlük İşlemler de kullanır).
   Yönetim Raporu'nun içindeki gömülü Mizan kuşağa yapışmaz.
   ===================================================================== */

/* 1 · Kuşağa yapışık, A4, solda */
body:has(.sayfa-icerik > [data-govde] > .rl-kart:first-child):not(:has(.yr-gomulu))
  .sayfa-kusak:not(:has(+ .sayfa-kusak-serit:not([hidden]))) {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.sayfa-icerik:has(> [data-govde] > .rl-kart:first-child):not(.yr-gomulu .sayfa-icerik) {
  padding-top: 0;
  padding-left: 0;
  padding-right: 0;
}
.sayfa-icerik > [data-govde] > .rl-kart:first-child,
.sayfa-icerik > [data-govde] > .rl-kart.gi-kart:first-child {
  max-width: 844px;
  margin: 0 auto calc(var(--bosluk) * 3) 0;
  border-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.yr-gomulu .sayfa-icerik > [data-govde] > .rl-kart:first-child {
  max-width: none;
  margin: 0;
  border-top: var(--kart-cerceve);
  border-radius: var(--kose-kart);
}

/* 2 · Liste kâğıdı · Nakit Akış'ın tablo kutusu gibi kendi çerçevesinde */
.rl-kart .rl-liste {
  --rl-pay: 16px;
  margin: 14px 18px;
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  background: var(--defter-zemin);
}
.rl-kart .rl-tablo td { border-bottom-color: var(--defter-tel-soluk); }
.rl-kart .rl-acik td { background: color-mix(in srgb, var(--altin) 8%, var(--defter-zemin)); }

/* 3 · Üstüne gelince */
@media (hover: hover) {
  .rl-kart .rl-baslik-satir:hover td {
    background: color-mix(in srgb, var(--altin) 5%, var(--defter-zemin));
  }
  .rl-kart .rl-baslik-satir:hover td:first-child {
    box-shadow: inset 3px 0 0 0 var(--altin-koyu);
  }
  .rl-kart .rl-baslik-satir:hover .rl-td-tutar { font-weight: 700; }
}

/* Mizan tablosu · aynı sade dil (çift çerçeve, köşe çentiği ve zebra
   kalkar; kâğıt Nakit Akış'ınki gibi tek ince çerçeve) */
.rl-kart .mz-kagit {
  margin: 14px 18px;
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  box-shadow: none;
  background: var(--defter-zemin);
  background-image: none;
  padding: 0;
  overflow: hidden;
}
.rl-kart .mz-kagit::before,
.rl-kart .mz-kagit::after { display: none; }
.rl-kart .mz-kagit .tablo-kutu { background: var(--defter-zemin); border-radius: 0; }
.rl-kart .mz-tablo thead th {
  background: color-mix(in srgb, var(--altin) 22%, var(--defter-zemin));
  color: color-mix(in srgb, var(--metin) 82%, transparent);
  font-family: inherit;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--altin-koyu);
  border-radius: 0;
}
.rl-kart .mz-tablo th + th,
.rl-kart .mz-tablo td + td { border-left: 0; }
.rl-kart .mz-satir:nth-of-type(even),
.rl-kart .mz-satir:nth-of-type(odd) { background: var(--defter-zemin); }
@media (hover: hover) {
  .rl-kart .mz-satir:hover { background: color-mix(in srgb, var(--altin) 5%, var(--defter-zemin)); }
  .rl-kart .mz-satir:hover td:first-child { box-shadow: inset 3px 0 0 0 var(--altin-koyu); }
  .rl-kart .mz-satir:hover .mz-td-para { font-weight: 700; }
}

/* ---- RAPORLAR · 2. PARTİ (2026.683) ----
   Genel İkram Raporları artık .rl-kart'ın içinde (yukarıdaki kurallar
   ona da işler); günleri Nakit Akış tablosunun diliyle. Kasa Fark
   Raporu ve Kâr-Zarar'da süzgeç şeridi kuşağın altına yapışık bir şerit
   olur, kâğıt onun altına yapışık ve solda durur. Kasa Fark'ın kâğıdı
   kullanıcının Excel raporunun birebir kopyasıdır (siyah çizgi, sarı
   hücre): tablosuna dokunulmaz, yalnız yeri değişir. Yönetim Raporu bir
   panodur: yalnız A4 eninde solda durur. */

/* Genel İkram · günler */
.gik-liste { padding: 6px 18px 16px; }
.gik-gun {
  margin-top: 12px;
  border: 1px solid var(--defter-tel-soluk);
  border-radius: 14px;
  overflow: hidden;
  background: var(--defter-zemin);
}
.gik-gun-tepe {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  background: color-mix(in srgb, var(--altin) 12%, var(--defter-zemin));
  border-bottom: 1px solid var(--defter-tel-soluk);
  font-weight: 700;
}
.gik-gun-tutar { font-variant-numeric: tabular-nums; }
.gik-tablo { width: 100%; border-collapse: collapse; font-size: 13px; }
.gik-tablo thead th {
  padding: 9px 14px;
  text-align: left;
  background: color-mix(in srgb, var(--altin) 22%, var(--defter-zemin));
  color: color-mix(in srgb, var(--metin) 82%, transparent);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--altin-koyu);
}
.gik-tablo td { padding: 9px 14px; border-bottom: 1px solid var(--defter-tel-soluk); }
.gik-tablo tr:last-child td { border-bottom: 0; }
.gik-tablo .gik-tutar { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gik-tablo td.gik-tutar { font-weight: 600; }
@media (hover: hover) {
  .gik-tablo tbody tr:hover td { background: color-mix(in srgb, var(--altin) 5%, var(--defter-zemin)); }
  .gik-tablo tbody tr:hover td:first-child { box-shadow: inset 3px 0 0 0 var(--altin-koyu); }
  .gik-tablo tbody tr:hover td.gik-tutar { font-weight: 700; }
}

/* Kasa Fark · Kâr-Zarar · şerit + kâğıt, kuşağa yapışık, solda */
@media (min-width: 900px) {
  body:has(.sayfa-icerik > [data-govde] > .suzgec:first-child + :is(.kfr-kagit, .kz-sayfa))
    .sayfa-kusak:not(:has(+ .sayfa-kusak-serit:not([hidden]))) {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .sayfa-icerik:has(> [data-govde] > .suzgec:first-child + :is(.kfr-kagit, .kz-sayfa)) {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .sayfa-icerik > [data-govde] > .suzgec:first-child:has(+ :is(.kfr-kagit, .kz-sayfa)) {
    max-width: 844px;
    margin: 0;
    padding: 8px 20px;
    background-color: var(--kart-zemin);
    border: var(--kart-cerceve);
    border-top: 0;
    border-radius: 0;
  }
  .sayfa-icerik > [data-govde] > .suzgec:first-child:has(+ .kfr-kagit) { max-width: 190mm; }
  .sayfa-icerik > [data-govde] > .suzgec + .kz-sayfa {
    max-width: 844px;
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .sayfa-icerik > [data-govde] > .suzgec + .kfr-kagit {
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
  }
}

/* Yönetim Raporu · A4 eninde, solda */
@media (min-width: 900px) {
  .sayfa-icerik > [data-govde]:has(> .yr-tepe) { max-width: 844px; }
}

/* =====================================================================
   RAPOR ŞERİDİ · ORTAK TEPE (2026.684 · 3-cekirdek/2-arayuz/rapor-serit.js)
   ---------------------------------------------------------------------
   Kullanıcının isteği: "Nakit Akış'ta başlığı kaldırıp düğmeleri teke
   düşürüp kalanını Ayarlar'a aldık ya, öyle olsun · hepsi · düğmelerde
   klavye olacak." Şeridin düğmeleri klavye tuşudur (aktarım şeridindeki
   tuşun aynısı): altında 3px kalınlık, üstüne gelince 1px kalkar ve
   renk değişmez, basınca iner; seçili tuş bordo. Nakit Akış ile
   Öngörülenler'in şerit düğmeleri de aynı tuşa geçer.
   ===================================================================== */
.rs-secim { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.rs-tus,
.na-serit .secim-sekme,
.na-serit .na-ayarlar-dugme {
  --tus-kalinlik: var(--altin-koyu);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 34px;
  min-height: 34px;
  padding: 0 12px;
  margin-bottom: 3px;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
  box-shadow: 0 3px 0 var(--tus-kalinlik), 0 4px 5px rgba(74, 52, 32, .16);
  transition: transform .12s ease-out, box-shadow .12s ease-out;
}
.rs-tus[aria-pressed="true"],
.na-serit .secim-sekme[aria-pressed="true"] {
  --tus-kalinlik: var(--vurgu-koyu);
  background: var(--vurgu);
  border-color: var(--vurgu);
  color: var(--yuzey);
  font-weight: 600;
}
@media (hover: hover) {
  .rs-tus:hover,
  .na-serit .secim-sekme:hover,
  .na-serit .na-ayarlar-dugme:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--tus-kalinlik), 0 6px 9px rgba(74, 52, 32, .2);
    border-color: var(--altin);
    color: var(--metin);
    background: var(--yuzey);
  }
  .rs-tus[aria-pressed="true"]:hover,
  .na-serit .secim-sekme[aria-pressed="true"]:hover {
    border-color: var(--vurgu);
    background: var(--vurgu);
    color: var(--yuzey);
  }
}
.rs-tus:active,
.na-serit .secim-sekme:active,
.na-serit .na-ayarlar-dugme:active {
  transform: translateY(3px);
  box-shadow: 0 0 0 var(--tus-kalinlik), 0 1px 2px rgba(74, 52, 32, .18);
}
.rs-tus:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  .rs-tus, .na-serit .secim-sekme, .na-serit .na-ayarlar-dugme { transition: none; }
}
/* Nakit Akış'ın görünüm şeridi · kabı görünmez, her seçenek kendi tuşu. */
.na-serit .secim-serit { gap: 6px; padding: 0; border: 0; background: none; }

.rs-ozet {
  font-size: 13px;
  color: color-mix(in srgb, var(--metin) 70%, transparent);
  white-space: nowrap;
}
.rs-ozet b { color: var(--metin); font-weight: 700; font-variant-numeric: tabular-nums; }

.sayfa-kusak-serit:has(.rs-serit) {
  margin-bottom: 0;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.pencere.rs-pencere { max-width: 560px; }
.rs-secenekler { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 560px) {
  .rs-serit { flex-wrap: wrap; }
  .rs-ozet { order: 3; flex: 1 1 100%; }
}
/* Kasa Fark · şeritteki gün yazısı iki tuşun arasında */
.rs-gun {
  align-self: center;
  padding: 0 6px 3px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Başlığı kalkan kâğıtlar da şeridin altına yapışık, solda
   (Kâr-Zarar · Kasa Fark · 2026.684). */
@media (min-width: 900px) {
  .sayfa-icerik:has(> [data-govde] > :is(.kz-sayfa, .kfr-kagit):first-child) {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .sayfa-icerik > [data-govde] > .kz-sayfa:first-child {
    max-width: 844px;
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .sayfa-icerik > [data-govde] > .kfr-kagit:first-child {
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
  }
}

/* ---- HESAPLAR · ŞERİT VE AYARLAR (2026.686) ----
   Kullanıcının isteği: "burayı da öyle yapalım · solda arama, yanında
   Basit/Detaylı, sağda Ayarlar." Kâğıdın tepesi, görünüm sekmesi, arama
   şeridi ve boş hesap anahtarı gizlenir (DOM'da durur, şeritteki
   tuşlar onları sürer). Kâğıt şeridin altına yapışık, A4 eninde, solda. */
.iskelet-hesaplar .hesap-tepe,
.iskelet-hesaplar .hesap-gorunum-serit,
.iskelet-hesaplar .hesap-serit,
.iskelet-hesaplar .hesap-bos-anahtar { display: none !important; }
.rs-arama { flex: 0 1 260px; min-width: 150px; margin: 0 4px 3px 0; }
.rs-arama .arama-kutu { height: 34px; }
@media (min-width: 900px) {
  .sayfa-icerik.iskelet-hesaplar { padding-top: 0; padding-left: 0; padding-right: 0; }
  .iskelet-hesaplar .hesap-kagit {
    max-width: 844px;
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

/* ---- DEPOLAR (STOK YÖNETİMİ) · ŞERİT VE AYARLAR (2026.689) ----
   Kullanıcının isteği: "stok yönetimi sayfasını da aynı tarzda yap ·
   ay solda, Ayarlar sağda · sayım ekranında şerit aynı, genişlik
   kalsın." Kartın araç şeridi ve sayım ekranının şeridi kuşağa çıktı
   (4-ekranlar/3-tanimlar/depolar.js · seritListe · seritDetay). Kâğıt
   şeridin altına yapışık, solda; liste dikey A4, sayım yatay A4. */
.rs-tus.rs-tus-vurgu {
  --tus-kalinlik: var(--vurgu-koyu);
  background: var(--vurgu);
  border-color: var(--vurgu);
  color: var(--yuzey);
  font-weight: 600;
}
@media (hover: hover) {
  .rs-tus.rs-tus-vurgu:hover { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); }
}
.rs-tus:disabled,
.rs-tus:disabled:hover {
  opacity: .45;
  cursor: default;
  transform: none;
  box-shadow: 0 3px 0 var(--tus-kalinlik), 0 4px 5px rgba(74, 52, 32, .16);
}
.rs-serit .dpg-yol { align-self: center; padding-bottom: 3px; white-space: nowrap; }
.rs-serit .rozet { align-self: center; margin: 0 6px 3px 0; }
.rs-serit .rs-ozet:has(.rs-tus) { display: inline-flex; align-items: center; gap: 6px; }
@media (min-width: 900px) {
  .sayfa-icerik:has(> [data-govde] > .dp-kart:first-child) {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .sayfa-icerik > [data-govde] > .dp-kart:first-child {
    max-width: 844px;
    margin: 0 auto calc(var(--bosluk) * 3) 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
  .sayfa-icerik > [data-govde] > .dp-kart.dpg-kart:first-child { max-width: var(--kagit-en-yatay); }
}

/* ---- HESAP DEFTERİ (HAREKETLER) · ŞERİT VE AYARLAR (2026.690) ----
   Kullanıcının isteği: "hesap defteri kısmı da aynı tarzda olsun".
   Seçimleri: solda hesap + arama · Dışa aktar Ayarlar'da gri · tablo
   ekran genişliğinde. Seçici ve arama kuşaktaki şeride taşınır
   (4-ekranlar/2-raporlar/hareketler.js); eski süzgeç kabı yalnız hata
   yazısı taşırken görünür. Defter kartı şeridin altına yapışık. */
.hd-serit-sol {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 560px;
  min-width: 0;
  margin-bottom: 3px;
}
.hd-serit-sol > [data-hesap-kap] { flex: 1 1 380px; max-width: 460px; min-width: 0; }
.hd-serit-sol .suzgec-secici { width: 100%; }
.hd-serit-sol .suzgec-secici .sec-kutu { height: 34px; }
.hd-serit-sol .arama { flex: 0 1 280px; min-width: 150px; }
/* Henüz çalışmayan satır (Dışa aktar) gri durur, basılmaz. */
.na-ay-satir:disabled { opacity: .5; cursor: default; pointer-events: none; }
.hd-serit-sol .arama-kutu { height: 34px; }
.hd-ekran > [data-serit]:not(:has(.suzgec-hata)) { display: none; }
@media (max-width: 560px) {
  .hd-serit-sol { flex-wrap: wrap; flex-basis: 100%; }
  .hd-serit-sol > [data-hesap-kap],
  .hd-serit-sol .arama { flex: 1 1 100%; max-width: none; }
}
@media (min-width: 900px) {
  .sayfa-icerik.hd-ekran { padding-top: 0; padding-left: 0; padding-right: 0; }
  .hd-ekran .tablo-sarmal.hd-defter {
    margin-top: 0;
    border-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
  }
}

/* ---- DEPO SAYIMI · TAM EN (2026.693 · 2026.695) ----
   Kullanıcının isteği: "burası da hesap defteri gibi tam ekran olsun".
   Sayım kâğıdı yatay A4 sınırından çıkar, ekranın enini alır.
   BOYU İÇERİĞİ KADAR (2026.695 · "arkadaki beyazlık olmasın, tablo
   küçükse o beyazlık da küçük olsun, arka planda duvar kâğıdını
   görelim"): 693'te kâğıt ekranın dibine kadar uzatılmıştı, kısa bir
   listede altında boş beyaz bir alan kalıyordu. */
@media (min-width: 900px) {
  .sayfa-icerik > [data-govde] > .dp-kart.dpg-kart:first-child {
    max-width: none;
    width: 100%;
    margin: 0 0 calc(var(--bosluk) * 3);
  }
}

/* ---- DEPO SAYIMI · TEK TABLO (2026.694) ----
   Kullanıcının isteği: "ikiye bölmüşüz ya, ona gerek yok". İki tablo
   (.dpg-ikili) teke indi: aynı çerçeve, aynı ortalı düzen, öbekler
   arasında ince dikey tel (.dp-bolum). Dar ekranda tablo yana kayar. */
.dpg-tek { padding: calc(var(--bosluk) * 1.5); }
.dpg-tek .tablo-kutu {
  background: var(--kart-yuzey);
  border: 1px solid var(--altin-soluk);
  border-radius: var(--kose-kutu);
  box-shadow: var(--kart-golge);
  overflow-x: auto;
}
.dpg-tek .dpg-tablo { width: 100%; min-width: 1000px; table-layout: fixed; }
/* Sayıldı işareti ürün hücresinin solunda durur; konumlu kap olmadan
   kâğıdın kenarına kaçıyordu. */
.dpg-tek .dp-urun-ad { position: relative; }
.dpg-tek .dp-urun-sayildi .dp-urun-baslik::before { left: 8px; }

/* ---- DEPO SAYIMI · HİZA VE BAŞLIK (2026.695) ----
   Kullanıcının isteği: "ürün adları sola hizalansın · markanın ilk iki
   kelimesi görünsün, sütunu ona göre genişlet · adet de gr da yazsa
   hepsi aynı hizada · başlık yapısı hesap defterindeki gibi". */
.dpg-tek .dpg-tablo thead th {
  height: 40px;
  padding-bottom: 0;
  vertical-align: middle;
  white-space: nowrap;
  font-family: var(--yazi-baslik);
  font-size: var(--kucuk-boy);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--defter-koyu);
  background: var(--defter-baslik);
  border-bottom: 2px solid var(--defter-koyu);
}
.dpg-tek .dpg-tablo thead th.dp-urun-bas,
.dpg-tek .dpg-tablo tbody td.dp-urun-ad { text-align: left; padding-left: 28px; }
.dpg-tek .dpg-tablo tbody td.dp-toplam-ad { text-align: left; padding-left: 28px; }
.dpg-tek .dp-urun-sayildi .dp-urun-baslik::before { left: 10px; }
.dpg-tek .dpg-c-marka { width: 190px; }
.dpg-tek .dpg-c-adet  { width: 108px; }
.dpg-tek .dpg-c-giris { width: 124px; }
.dpg-tek .dpg-c-para  { width: 160px; }
.dpg-tek .dpg-c-fiyat { width: 118px; }
.dpg-tek .dpg-tablo { min-width: 1150px; }
.dpg-tek .dp-birim { width: 32px; text-align: left; }
/* Birim fiyatın altında fiyatın tarihi · çok küçük (2026.696). */
.dp-fiyat-tarih {
  display: block;
  margin-top: 1px;
  font-size: 10px;
  line-height: 1.1;
  font-weight: 400;
  color: var(--ikinci);
  opacity: .7;
}

/* ---- DEPOLAR · ÜSTÜNE GELİNCE KALINLAŞIR (2026.696) ----
   Kullanıcının isteği: "depolarda üstüne gelince kalınlaşma olsun".
   Hesaplar'daki gibi renk değişmez, yazı kalınlaşır: depo listesinde ad
   ve tutar, sayım kâğıdında ürünün adı. */
@media (hover: hover) {
  .dp-satir:hover .dp-ad-yazi { font-weight: 800; }
  .dp-satir:hover .dp-tutar { font-weight: 700; }
  /* Sayım kâğıdında ürün adı artık kalınlaşmaz (2026.730 · kullanıcının
     isteği: "üstüne gelince sol tarafın kalınlaşmasına gerek yok"). */
}

/* ---- DEPO SAYIMI · ÜRÜNÜN ÖZEL ADI (2026.697 · göç 188) ----
   Kullanıcının isteği: "ürünlerin yanında bir düğme olsun, özel isim
   kaydet · adı güncellenenler belli olsun, küçük bir * koy · 3D kalem
   olsun". Kalem hücrenin sağında küçük bir klavye tuşudur (şeritteki
   tuşların dili); adı değişen ürünün adının yanında küçük bir yıldız. */
.dpg-tek .dpg-tablo tbody td.dp-urun-ad-kalemli { padding-right: 40px; }
.dp-ad-kalem {
  --tus-kalinlik: var(--altin-koyu);
  position: absolute;
  right: 8px;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 24px;
  margin-top: -14px;
  padding: 0;
  border: 1px solid var(--altin);
  border-radius: 6px;
  background: var(--yuzey);
  color: var(--ikinci);
  cursor: pointer;
  box-shadow: 0 2px 0 var(--tus-kalinlik), 0 3px 4px rgba(74, 52, 32, .16);
  transition: transform .12s ease-out, box-shadow .12s ease-out;
}
@media (hover: hover) {
  .dp-ad-kalem:hover {
    transform: translateY(-1px);
    color: var(--vurgu);
    box-shadow: 0 3px 0 var(--tus-kalinlik), 0 5px 7px rgba(74, 52, 32, .2);
  }
}
.dp-ad-kalem:active {
  transform: translateY(2px);
  box-shadow: 0 0 0 var(--tus-kalinlik), 0 1px 2px rgba(74, 52, 32, .18);
}
.dp-ad-kalem:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.dp-ozel-isaret {
  margin-left: 2px;
  font-size: 11px;
  font-weight: 700;
  color: var(--vurgu);
  vertical-align: super;
  line-height: 0;
}
.pencere.dp-ozel-pencere { max-width: 460px; }
.dp-ozel-form { display: grid; gap: calc(var(--bosluk) * 1.5); }
.dp-ozel-fatura {
  display: block;
  padding: 8px 12px;
  border: 1px dashed var(--altin-soluk);
  border-radius: var(--kose-kutu);
  font-variant-numeric: tabular-nums;
  color: var(--ikinci);
}
.dp-ozel-not { margin: 0; font-size: var(--kucuk-boy); color: var(--ikinci); }
@media print { .dp-ad-kalem { display: none; } }
/* Kullanılanın altında geçen ayın kullanılanı · çok küçük (2026.700). */
.dp-onceki {
  display: block;
  margin-top: 1px;
  font-size: 10px;
  line-height: 1.1;
  font-weight: 400;
  color: var(--ikinci);
  opacity: .75;
}
.dp-kullanilan.dp-eksi .dp-onceki,
.dp-kullanilan.dp-devir .dp-onceki { color: var(--ikinci); }

/* ---- HESAP DEFTERİ · BOYU İÇERİĞİ KADAR (2026.704) ----
   Kullanıcının isteği: "hesaplarda da böyle gözüküyor ya, bunu da
   depolardaki gibi yapalım, beyaz gözükmesin". Defter kartı ekranın
   dibine kadar uzuyordu; iki satırlık bir hesapta altı boş beyaz bir
   alan kalıyordu. Artık kart içeriği kadar uzar, ekranı geçerse ekran
   boyunda durur ve içi kayar (yukarı kaydırınca önceki kayıtların
   gelmesi aynen çalışır). Altında duvar kâğıdı görünür. */
@media (min-width: 900px) {
  .hd-ekran .tablo-sarmal.hd-defter {
    flex: 0 1 auto;
    margin-bottom: calc(var(--bosluk) * 2);
    border-bottom: 1px solid var(--defter-koyu);
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
  }
  .hd-ekran .hd-defter .tablo-kutu { flex: 0 1 auto; }
}

/* ---- DEPO SAYIMI · ÜRÜNÜ TAŞIMA (2026.705) ----
   Kalem penceresinde "Başka depoya taşı" bölümü; taşınan ürünün adının
   altında küçük "→ Bakliyat Deposu · yeni faturalar". */
.dp-tasi {
  display: grid;
  gap: calc(var(--bosluk) * 1.25);
  padding-top: calc(var(--bosluk) * 1.5);
  border-top: 1px dashed var(--altin-soluk);
}
.dp-tasindi {
  display: block;
  margin-top: 1px;
  font-size: 10px;
  line-height: 1.1;
  color: var(--vurgu);
  opacity: .85;
}
/* Bu ayın faturalarını da taşı · işaret kutusu (2026.706). */
.dp-tasi-eski {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--altin);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
  font-weight: 600;
  cursor: pointer;
}
.dp-tasi-eski input { width: 18px; height: 18px; accent-color: var(--vurgu); }

/* ---- DEPOLAR · ÜRÜN ARAMA VE FİYAT GEÇMİŞİ (2026.711) ---- */
.dp-ara-kap { position: relative; display: inline-flex; margin-left: 8px; }
.dp-ara { flex: none; width: 240px; margin: 0 0 3px; }
.dp-ara .arama-kutu { height: 34px; }
.dp-ara-sonuc {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 30;
  width: 340px;
  max-height: 360px;
  overflow-y: auto;
  padding: 6px;
  background: var(--yuzey);
  border: 1px solid var(--altin);
  border-radius: var(--kose-kutu);
  box-shadow: 0 10px 28px rgba(58, 42, 29, .18);
}
.dp-ara-satir {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 8px;
  background: none;
  text-align: left;
  cursor: pointer;
  color: var(--metin);
}
.dp-ara-satir b { font-weight: 600; }
.dp-ara-satir small { display: block; font-size: 12px; color: var(--ikinci); margin-top: 1px; }
@media (hover: hover) { .dp-ara-satir:hover { background: var(--defter-hover, #F3EAD8); } }
.dp-ara-bos { margin: 6px 8px; font-size: 13px; color: var(--ikinci); }

/* Bulunan ürün satırı bir an yanar. */
@keyframes dp-bulundu { 0%, 60% { background: #F6E7B8; } 100% { background: transparent; } }
.dpg-tek tr.dp-bulundu td { animation: dp-bulundu 1.8s ease-out; }

/* Fiyat düğmesi · kalemin solunda (özel ad yoksa tek başına). */
.dpg-tek .dpg-tablo tbody td.dp-urun-ad-iki { padding-right: 72px; }
.dp-ad-fiyat { right: 8px; font-weight: 700; font-size: 13px; }
.dp-urun-ad-iki .dp-ad-fiyat { right: 40px; }

.pencere.dp-fiyat-pencere { max-width: 760px; width: calc(100vw - 32px); }
.dp-fg-bekle { min-height: 520px; display: grid; place-items: center; }
.dp-fg-ic { display: grid; gap: calc(var(--bosluk) * 2); }
.dp-fiyat-ozet { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.dp-fiyat-kutu {
  display: grid;
  gap: 2px;
  padding: 10px 12px;
  border: 1px solid var(--altin-soluk);
  border-radius: var(--kose-kutu);
  background: var(--yuzey);
}
.dp-fiyat-kutu > span { font-size: 12px; color: var(--ikinci); }
.dp-fiyat-kutu b { font-size: 18px; font-variant-numeric: tabular-nums; color: var(--metin); }
.dp-fiyat-kutu small { font-size: 11px; color: var(--ikinci); }
@media (max-width: 560px) { .dp-fiyat-ozet { grid-template-columns: repeat(2, 1fr); } }
.dp-fiyat-grafik { position: relative; }
.dp-fg { display: block; width: 100%; height: auto; }
.dp-fg-izgara { stroke: var(--ayirici); stroke-width: 1; }
.dp-fg-eksen { font-size: 11px; fill: var(--ikinci); font-variant-numeric: tabular-nums; }
.dp-fg-cizgi { fill: none; stroke: var(--vurgu); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.dp-fg-nokta { fill: var(--vurgu); stroke: var(--yuzey); stroke-width: 2; }
.dp-fg-hedef { fill: transparent; cursor: pointer; }
.dp-fiyat-ipucu {
  position: absolute;
  z-index: 2;
  width: 180px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--metin);
  color: var(--yuzey);
  font-size: 12px;
  pointer-events: none;
}
.dp-fiyat-ipucu b { display: block; font-size: 14px; }
.dp-fiyat-ipucu span { opacity: .8; }
.dp-fiyat-tablo td, .dp-fiyat-tablo th { white-space: nowrap; }
.dp-fiyat-tablo .dp-para, .dp-fiyat-tablo .dp-sayi { text-align: right; }
/* Arama sonuçları şeridin dışına taşar, kâğıdın üstünde durur. */
.sayfa-kusak-serit:has(.dp-ara-kap) { overflow: visible; position: relative; z-index: 20; }
.rs-serit:has(.dp-ara-kap) { overflow: visible; }
/* Fiyat tablosu · sabit sütunlar, firma taşarsa üç nokta (2026.712). */
.dp-fiyat-tablo { width: 100%; table-layout: fixed; }
.dp-fiyat-tablo th:nth-child(1), .dp-fiyat-tablo td:nth-child(1) { width: 124px; }
.dp-fiyat-tablo th:nth-child(3), .dp-fiyat-tablo td:nth-child(3) { width: 150px; }
.dp-fiyat-tablo th:nth-child(4), .dp-fiyat-tablo td:nth-child(4) { width: 90px; }
.dp-fiyat-tablo th:nth-child(5), .dp-fiyat-tablo td:nth-child(5) { width: 196px; }
.dp-fiyat-tablo td { overflow: hidden; text-overflow: ellipsis; }
/* Fiyat arttıysa kırmızı, azaldıysa yeşil · yanında ▲ ▼ (renk tek başına
   anlam taşımasın). */
.dp-fiyat-artti { color: #B3261E; font-weight: 600; }
.dp-fiyat-azaldi { color: #2E7D4F; font-weight: 600; }
.dp-fg-nokta.dp-fg-artti { fill: #B3261E; }
.dp-fg-nokta.dp-fg-azaldi { fill: #2E7D4F; }
/* ₺ tuşu · bu ay fiyat arttıysa kırmızı ▲, azaldıysa yeşil ▼ (2026.713). */
.dp-ad-fiyat.dp-ad-fiyat-artti { --tus-kalinlik: #8E1F18; background: #FBE4E2; border-color: #D9837C; color: #B3261E; }
.dp-ad-fiyat.dp-ad-fiyat-azaldi { --tus-kalinlik: #1F5E3A; background: #E1F2E7; border-color: #7FB894; color: #2E7D4F; }
@media (hover: hover) {
  .dp-ad-fiyat.dp-ad-fiyat-artti:hover { color: #B3261E; }
  .dp-ad-fiyat.dp-ad-fiyat-azaldi:hover { color: #2E7D4F; }
}

/* Fatura no tam yazar, basınca fatura açılır (2026.714). */
.dp-fiyat-tablo td.dp-fiyat-fno { overflow: visible; text-overflow: clip; }
.dp-fatura-ac {
  padding: 0;
  border: 0;
  background: none;
  color: var(--vurgu);
  font: inherit;
  font-variant-numeric: tabular-nums;
  text-decoration: underline;
  text-decoration-color: var(--altin);
  text-underline-offset: 3px;
  cursor: pointer;
}
@media (hover: hover) { .dp-fatura-ac:hover { text-decoration-color: var(--vurgu); } }
.dp-fatura-geri { margin-bottom: calc(var(--bosluk) * 1.5); }

/* ==================================================================
   NAKİT AKIŞ · ÖDEME MODU (2026.715)
   Ön görü alanı: 320'ler satır, seçilen 100/102 hesapları sütun; her
   ödeme yerinin küçük kartı kendi sütununun üstünde. Başlık ve veriler
   ortalı, yalnız ilk sütun (hesap) sola. Kaynak: nakit-akis.js · om*.
   ================================================================== */
.om-bant {
  padding: 7px 16px;
  background: #FFF6DA;
  border-bottom: 1px solid #E8D59A;
  color: #7A5D12;
  font-size: 12.5px;
}
.om-kutu { overflow: auto; overscroll-behavior: contain; }
/* Tepe sabit (2026.935): kartlar ve sütun başlıkları kutunun tepesine
   yapışık; satırlar altlarından kayar. Yapışık satırın zemini dolu. */
.om-tablo thead { position: sticky; top: 0; z-index: 6; }
.om-tablo thead .om-kartlar td { background: var(--kart-kagit, #FDFAF4); }
.na-yukleme-adim { margin-left: 6px; font-weight: 400; opacity: .85; }
.na-yukleme-adim:not(:empty)::before { content: "· "; }
.om-tablo { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.om-c-ad { width: auto; }
.om-c-borc { width: 190px; }
.om-c-son { width: 140px; }
.om-c-kaynak { width: 200px; }
.om-tablo thead th {
  padding: 10px 12px;
  background: var(--defter-baslik);
  border-bottom: 2px solid var(--defter-koyu);
  color: var(--defter-koyu);
  font-family: var(--yazi-baslik);
  font-size: var(--kucuk-boy);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.om-tablo td { padding: 8px 12px; border-bottom: 1px solid var(--ayirici); text-align: center; vertical-align: middle; }
.om-tablo th.om-ilk, .om-tablo td.om-ilk { text-align: left; }
.om-tablo tbody tr:nth-child(even) td { background: var(--defter-satir-cift, #FAF4E8); }
@media (hover: hover) { .om-tablo tbody tr:hover td { background: var(--defter-hover, #F3EAD8); } }
.om-tablo tfoot td { padding: 10px 12px; background: var(--defter-baslik); border-top: 2px solid var(--defter-koyu); font-weight: 700; font-variant-numeric: tabular-nums; }

/* Ödeme yeri kartları · sütunun üstünde, hep aynı boyda. */
.om-kartlar td { padding: 12px 8px 10px; background: transparent; border: 0; }
/* Ödeme Modu · boş köşede logo, ad ve tema renginde fotoğraf (2026.933). */
.om-kartlar td.om-ust-hucre { padding: 12px 8px 10px 0; }
.om-ust {
  position: relative; display: flex; align-items: center; gap: 16px; height: 100%; min-height: 104px;
  padding: 0 18px; overflow: hidden;
  border: 1px solid var(--altin-soluk); border-radius: 12px;
  background: linear-gradient(90deg, var(--kart-kagit, #FDFAF4) 0%, #F7EFDF 100%);
}
.om-ust-logo { position: relative; z-index: 1; width: 92px; height: auto; flex: none; }
.om-ust-ad {
  position: relative; z-index: 1;
  font: 700 26px var(--yazi-baslik), Georgia, serif; color: var(--vurgu); letter-spacing: .02em; line-height: 1.1;
}
.om-ust-ad small {
  display: block; margin-top: 5px; font: 500 12.5px var(--yazi-metin, Inter), sans-serif;
  color: var(--ikinci); letter-spacing: 0;
}
.om-ust-resim {
  /* FOTOĞRAFIN TAMAMI (2026.934 · kullanıcının bildirimi: "kötü durmuş,
     resmi biraz küçült ki hem daha HD dursun hem daha çok görünsün" ·
     "direkt öyle karede olmasın, ikisinin ortası"). Kutuyu doldurmak için
     büyütülüp kırpılıyordu; artık ortası: başından ellerine kadar görünür,
     sağa yaslanır, sol kenarı zemine erir. */
  position: absolute; top: 0; right: 0; height: 100%; aspect-ratio: 2.6 / 1;
  background-repeat: no-repeat; background-size: cover; background-position: center 8%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 34%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 34%);
  opacity: .92;
}
.om-ust-resim::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(143, 45, 34, 0) 40%, rgba(143, 45, 34, .14) 100%);
}
@media (max-width: 760px) {
  .om-ust { min-height: 84px; gap: 10px; padding: 0 12px; }
  .om-ust-logo { width: 64px; }
  .om-ust-ad { font-size: 19px; }
  .om-ust-ad small { display: none; }
}
.om-banka { width: 100%; padding: 8px 10px; border: 1px solid var(--altin-soluk); border-radius: 10px; background: var(--yuzey); text-align: left; }
.om-banka h3 { margin: 0 0 4px; font: 600 12.5px var(--yazi-baslik); color: var(--vurgu); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.om-banka-satir { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; font-size: 11px; color: var(--ikinci); white-space: nowrap; padding: 1px 0; }
.om-banka-satir b { font-size: 12.5px; color: var(--metin); font-variant-numeric: tabular-nums; }
.om-banka-sonra { border-top: 1px dashed var(--altin-soluk); margin-top: 3px; padding-top: 3px; }
.om-banka-sonra b { font-size: 13.5px; }
.om-banka-uyari { visibility: hidden; margin-top: 2px; font-size: 11px; font-weight: 600; color: #B3261E; text-align: center; }
.om-banka.om-eksi { border-color: #B3261E; background: #FBE4E2; }
.om-banka.om-eksi .om-banka-sonra b { color: #B3261E; }
.om-banka.om-eksi .om-banka-uyari { visibility: visible; }

.om-hesap { padding: 0; border: 0; background: none; font: inherit; color: var(--metin); text-align: left; cursor: pointer; max-width: 100%; }
.om-hesap b { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.om-hesap small { color: var(--ikinci); font-size: 12px; }
@media (hover: hover) { .om-hesap:hover b { text-decoration: underline; text-decoration-color: var(--altin); text-underline-offset: 3px; } }
.om-borc { font-variant-numeric: tabular-nums; white-space: nowrap; }
.om-borc-simdi { font-weight: 600; }
.om-borc-sonra { font-size: 12px; font-weight: 600; color: #2E7D4F; }
.om-son { font-size: 12.5px; color: var(--ikinci); white-space: nowrap; }
.om-son b { color: var(--metin); font-variant-numeric: tabular-nums; }
.om-giris-kutu {
  width: 100%;
  max-width: 160px;
  height: 36px;
  padding: 0 10px;
  border: 1.5px solid var(--altin);
  border-radius: 8px;
  background: #fff;
  color: var(--metin);
  font-size: 15px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.om-giris-kutu:focus { outline: none; border-color: var(--vurgu); box-shadow: 0 0 0 3px rgba(143, 45, 34, .12); }
.om-giris-kutu.om-hata { border-color: #B3261E; background: #FBE4E2; color: #B3261E; }
/* TAMAMI (2026.936) · kutunun solunda küçük düğme: borcun kalanını o
   bankaya yazar. Masaüstünde kutuyla aynı satırda. */
.om-giris { white-space: nowrap; }
/* ALT ÇİZGİLİ KUTU (2026.937 · kullanıcının isteği: "beyaz kutu yerine
   altta bir çizgi olsun, yazınca dolgu yeşil olsun, tasarıma uydur ve
   yazdıktan sonra 14.000 ₺ sembolü olsun"). Kutu zeminsiz, altın alt
   çizgi; yazılınca açık yeşil dolgu ve yeşil çizgi, sağında ₺. */
.om-tutar-sar { position: relative; display: inline-block; vertical-align: middle; }
.om-tutar-sar .om-giris-kutu {
  border: 0; border-bottom: 1.5px solid var(--altin); border-radius: 6px 6px 0 0;
  background: transparent; box-shadow: none; padding-right: 22px;
  transition: background .15s ease-out, border-color .15s ease-out;
}
.om-tutar-sar .om-giris-kutu:focus {
  border-bottom-color: var(--vurgu); background: rgba(194, 162, 104, .10); box-shadow: none;
}
.om-tutar-sar .om-tl {
  position: absolute; right: 7px; top: 50%; transform: translateY(-50%);
  font-size: 13px; font-weight: 600; color: #2F6B4A; pointer-events: none; visibility: hidden;
}
/* Yazıldı · MAVİ (ödeme bekliyor) → ödendi · YEŞİL (2026.938). */
.om-tutar-sar.om-dolu .om-giris-kutu {
  background: #E3ECF4; border-bottom-color: #2C628F; color: #1F4A70; font-weight: 600;
}
.om-tutar-sar.om-dolu .om-tl { visibility: visible; color: #2C628F; }
.om-tutar-sar.om-dolu.om-odendi .om-giris-kutu {
  background: #E5F0E8; border-bottom-color: #2F6B4A; color: #1F4D34;
}
.om-tutar-sar.om-dolu.om-odendi .om-tl { color: #2F6B4A; }
.om-tamami[data-om-durum="bekliyor"] { background: #E3ECF4; border-color: #2C628F; color: #2C628F; }
.om-tamami[data-om-durum="bekliyor"]:hover { background: #2C628F; color: #fff; }
.om-tamami[data-om-durum="odendi"] { background: #2F6B4A; border-color: #2F6B4A; color: #fff; }
.om-tamami[data-om-durum="odendi"]:hover { background: #1F4D34; }
.om-tutar-sar .om-giris-kutu.om-hata { background: #FBE4E2; border-bottom-color: #B3261E; color: #B3261E; }
.om-tutar-sar.om-dolu .om-giris-kutu.om-hata + .om-tl { color: #B3261E; }
.om-tamami {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; padding: 0; margin-right: 4px;
  border: 1px solid rgba(194, 162, 104, .55); border-radius: 50%; background: #F7EFDF; color: var(--vurgu);
  cursor: pointer; vertical-align: middle; transition: background .15s, color .15s;
}
.om-tamami:hover { background: var(--vurgu); color: #fff; border-color: var(--vurgu); }
.om-giris .om-giris-kutu { width: 130px; max-width: 130px; vertical-align: middle; }

/* ---- Telefon (2026.936 · sütun sütun · küsuratlı) ---- */
.om-tablo.om-tablo-dar { min-width: 0 !important; table-layout: fixed; }
.om-tablo-dar col.om-d1 { width: 24%; } .om-tablo-dar col.om-d2 { width: 25%; }
.om-tablo-dar col.om-d3 { width: 17%; } .om-tablo-dar col.om-d4 { width: 34%; }
.om-tablo-dar thead th { padding: 6px 4px; font-size: 9px; letter-spacing: .03em; white-space: normal; text-align: right; }
.om-tablo-dar thead th.om-ilk { text-align: left; }
.om-tablo-dar td { padding: 6px 4px; vertical-align: top; text-align: right; font-size: 11px; }
.om-tablo-dar td.om-ilk { text-align: left; }
.om-tablo-dar .om-kartlar td.om-ust-hucre { padding: 0; }
.om-dar .om-ust { min-height: 54px; border-radius: 0; border-width: 0 0 1px; padding: 0 10px; }
.om-dar .om-ust-logo { width: 54px; }
.om-dar .om-ust-ad { font-size: 18px; }
.om-dar-bankalar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; padding: 6px 6px 8px; background: var(--kart-kagit, #FDFAF4); }
.om-dar .om-banka { padding: 4px 5px; border-radius: 8px; }
.om-dar .om-banka h3 { font-size: 10.5px; margin: 0 0 1px; text-align: left; }
.om-dar .om-banka-satir { font-size: 8.5px; gap: 2px; padding: 0; }
.om-dar .om-banka-satir b { font-size: 9.5px; letter-spacing: -.02em; }
.om-dar-hesap b { white-space: normal !important; word-break: break-word; font-size: 10.5px; line-height: 1.2; }
.om-dar-ack { display: block; margin-top: 2px; font-size: 9.5px; font-style: italic; color: #7A5D12; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.om-tablo-dar .om-borc { white-space: nowrap; }
.om-tablo-dar .om-borc-simdi { font-size: 11px; letter-spacing: -.01em; overflow: hidden; text-overflow: ellipsis; }
.om-tablo-dar .om-borc-sonra { font-size: 9.5px; overflow: hidden; text-overflow: ellipsis; }
.om-tablo-dar .om-son { font-size: 11px; white-space: nowrap; }
.om-tablo-dar .om-son small { display: block; font-size: 9.5px; color: var(--ikinci); overflow: hidden; text-overflow: ellipsis; }
.om-dar-giris { display: flex; gap: 3px; }
.om-dar-giris { align-items: center; }
.om-dar-giris .om-tamami { width: 24px; height: 24px; margin: 0; flex: none; }
.om-dar-giris .om-tamami svg { width: 13px; height: 13px; }
.om-dar-giris .om-tutar-sar { flex: 1; min-width: 0; }
.om-dar-giris .om-giris-kutu { width: 100%; max-width: none; min-width: 0; height: 28px; padding: 0 16px 0 4px; font-size: 11px; letter-spacing: -.02em; }
.om-dar-giris .om-tl { right: 4px; font-size: 10px; }
.om-dar-yol { display: flex; gap: 3px; margin-top: 3px; justify-content: flex-end; }
.om-dar-yol button { border: 1px solid #D7C49D; background: #fff; border-radius: 999px; padding: 0 5px; font: 600 8.5px/1.6 var(--yazi-metin, Inter), sans-serif; color: var(--defter-koyu, #4A3524); white-space: nowrap; cursor: pointer; }
.om-dar-yol button[aria-pressed="true"] { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.om-dar-yol button.om-yol-dolu { border-color: var(--vurgu); color: var(--vurgu); }
.om-tablo-dar tfoot td { font-size: 11px; padding: 8px 4px; }
.om-satir-uyari { display: block; font-size: 11px; color: #B3261E; margin-top: 2px; }
.om-satir-uyari:empty { display: none; }
.om-bos { padding: 14px 16px; color: var(--ikinci); font-size: 13px; text-align: center; }

/* Süzgeç penceresi */
.om-suzgec { display: grid; gap: 12px; }
.om-ara { width: 100%; margin-top: 8px; }
.om-tik-liste { max-height: 240px; overflow-y: auto; margin-top: 8px; border: 1px solid var(--altin-soluk); border-radius: 8px; background: var(--yuzey); }
.om-tik { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-bottom: 1px solid var(--ayirici); cursor: pointer; font-size: 13px; }
.om-tik:last-child { border-bottom: 0; }
.om-tik input { width: 16px; height: 16px; accent-color: var(--vurgu); }
.om-tik span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.om-tik b { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }

/* ==== NAKİT AKIŞ · DOLAN ÇUBUK, ÖDEME MODU AÇIKLAMA (2026.716) ==== */

.yr-yukleniyor.na-yukleme { flex-wrap: wrap; row-gap: 6px; min-width: 190px; transition: opacity .25s ease-out;
  /* Tepe çubuğunun altında görünür (2026.935): kabuk gövdesi kendi
     katmanında, z-index çubuğun üstüne çıkaramıyor. */
  top: calc(env(safe-area-inset-top, 0px) + 72px); }
.na-yukleme-baslik { font-weight: 700; color: var(--defter-koyu, #4A3524); }
.yr-yukleniyor.na-yukleme[data-gidiyor] { opacity: 0; }
.na-yukleme b { margin-left: auto; font-variant-numeric: tabular-nums; color: var(--vurgu); }
.na-yukleme-yol { flex-basis: 100%; height: 4px; border-radius: 999px; background: var(--defter-baslik, #EFE3CC); overflow: hidden; }
.na-yukleme-yol i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--altin), var(--vurgu)); transition: width .18s ease-out; }
.om-ilk-ic { display: flex; align-items: center; gap: 12px; min-width: 0; }
/* AÇIKLAMA YARIYA, ARTANI HESAP ADINA (2026.917 · kullanıcının isteği:
   "açıklama satırının genişliğini yarıya düşür, onun yerine soldaki hesap
   adı sütununa ver"). Boş yer ikisine eşit bölünür: açıklama eskisinin
   yarısı kadar kalır, ad 220px'in üstüne öteki yarıyı alır. */
.om-ilk-ic .om-hesap { flex: 1 1 220px; width: auto; min-width: 0; }
.om-aciklama {
  flex: 1 1 0; min-width: 0; height: 32px; padding: 0 10px;
  border: 1px dashed var(--kenar, #D9C9A8); border-radius: 8px;
  background: transparent; color: var(--metin); font: inherit; font-size: 13px;
}
.om-aciklama::placeholder { color: var(--ikinci); opacity: .6; }
.om-aciklama:hover { border-color: var(--altin); }
.om-aciklama:focus { outline: none; border-style: solid; border-color: var(--vurgu); background: var(--yuzey, #fff); }
.om-aciklama:not(:placeholder-shown) { border-style: solid; background: var(--yuzey, #fff); }

/* ==== ALIŞ FATURASI AKTARIMI · BU SEFERLİK HESAP (2026.717) ==== */
.pencere.fa-bs-pencere { max-width: 560px; }
.fa-bs-secim { display: grid; gap: 10px; }
.fa-bs-yol {
  display: grid; gap: 3px; width: 100%; padding: 14px 16px; text-align: left;
  border: 1.5px solid var(--altin-soluk, #E6D5B0); border-radius: 12px;
  background: var(--yuzey); color: var(--metin); font: inherit; cursor: pointer;
}
.fa-bs-yol b { font-size: 15px; }
.fa-bs-yol span { font-size: 12.5px; color: var(--ikinci); }
@media (hover: hover) { .fa-bs-yol:hover { border-color: var(--altin); } }
.fa-bs-yol-vurgu { border-color: var(--altin); background: var(--defter-baslik, #F6ECD8); }
.fa-bs-kaldir { justify-self: start; }
.fa-bs-kunye { margin: 0 0 10px; font-size: 13px; color: var(--ikinci); line-height: 1.5; }
.fa-bs-kunye b { color: var(--metin); }
.fa-bs-ara { margin-bottom: 8px; }
.fa-bs-liste {
  max-height: 52vh; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 10px; background: var(--yuzey);
}
.fa-bs-hesap {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px;
  border: 0; border-bottom: 1px solid var(--ayirici, #EFE6D4); background: none;
  color: var(--metin); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer;
}
.fa-bs-hesap:last-child { border-bottom: 0; }
@media (hover: hover) { .fa-bs-hesap:hover { background: var(--defter-hover, #F3EAD8); font-weight: 600; } }
.fa-bs-hesap-secili { background: var(--defter-baslik, #F6ECD8); font-weight: 700; }
.fa-bs-kod { flex: 0 0 auto; min-width: 84px; font-variant-numeric: tabular-nums; color: var(--ikinci); }
.fa-bs-ad { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fa-bs-not { font-size: 11px; color: var(--altin-koyu, #8A6A2E); white-space: nowrap; }
.fa-bs-bos { padding: 14px; color: var(--ikinci); font-size: 13px; text-align: center; margin: 0; }
.fa-bu-sefer-rozet {
  flex: 0 0 auto; margin-left: 8px; padding: 1px 8px; max-width: 180px;
  border: 1px solid var(--altin); border-radius: 999px; background: var(--defter-baslik, #F6ECD8);
  color: var(--altin-koyu, #8A6A2E); font-size: 11.5px; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: middle;
}

/* ==== HESAPLAR · ŞERİTTEN BİRLEŞTİRME (2026.720) ==== */
.pencere.hb-pencere { max-width: 560px; }
.hb-kunye { margin: 0 0 10px; font-size: 13px; color: var(--ikinci); line-height: 1.5; }
.hb-kunye b { color: var(--metin); }
.hb-ara { margin-bottom: 8px; }
.hb-liste {
  max-height: 52vh; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 10px; background: var(--yuzey);
}
.hb-hesap {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 12px;
  border: 0; border-bottom: 1px solid var(--ayirici, #EFE6D4); background: none;
  color: var(--metin); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer;
}
.hb-hesap:last-child { border-bottom: 0; }
@media (hover: hover) { .hb-hesap:hover { background: var(--defter-hover, #F3EAD8); font-weight: 600; } }
.hb-kod { flex: 0 0 auto; min-width: 84px; font-variant-numeric: tabular-nums; color: var(--ikinci); }
.hb-ad { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hb-not { font-size: 11px; color: var(--ikinci); white-space: nowrap; }
.hb-bos { padding: 14px; color: var(--ikinci); font-size: 13px; text-align: center; margin: 0; }

/* ==== GÜN SONU · MASRAF DOSYASI (2026.721) ==== */
.gsm-dosya { margin: 0 0 8px; font-size: 12.5px; color: var(--ikinci); }

/* ==== GÜN SONU · YÜKLEME LİSTESİ (2026.722) ==== */
.gsh-kart { padding: 18px 20px; }
.gsh-tepe { display: grid; gap: 4px; margin-bottom: 12px; }
.gsh-alt { font-size: 13px; color: var(--ikinci); }
.gsh-liste { list-style: none; margin: 0 0 14px; padding: 0; border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 12px; background: var(--yuzey); overflow: hidden; }
.gsh-satir { display: grid; grid-template-columns: 28px 170px 1fr auto; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--ayirici, #EFE6D4); }
.gsh-satir:last-child { border-bottom: 0; }
.gsh-isaret { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--altin); display: grid; place-items: center; font-size: 13px; font-weight: 700; color: #fff; }
.gsh-tamam .gsh-isaret { background: #2E7D4F; border-color: #2E7D4F; }
.gsh-yok .gsh-isaret { background: var(--ikinci); border-color: var(--ikinci); }
.gsh-hata .gsh-isaret { background: #B3261E; border-color: #B3261E; }
.gsh-ad { font-weight: 700; }
.gsh-durum { display: grid; min-width: 0; font-size: 13px; color: var(--ikinci); }
.gsh-durum b { color: var(--metin); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gsh-durum small { font-size: 12px; }
.gsh-hata .gsh-durum small { color: #B3261E; font-weight: 600; }
.gsh-dugmeler { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.gsh-kaldir { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: var(--ikinci); font-size: 18px; cursor: pointer; }
@media (hover: hover) { .gsh-kaldir:hover { background: var(--defter-hover, #F3EAD8); color: var(--metin); } }
.gsh-yok-kutu { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--ikinci); cursor: pointer; }
.gsh-yok-kutu input { accent-color: var(--vurgu); width: 15px; height: 15px; }
.gsh-birak { margin-bottom: 12px; }
.gsh-altlik { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 12px; }
.gsh-not { font-size: 13px; color: var(--ikinci); }
@media (max-width: 700px) {
  .gsh-satir { grid-template-columns: 24px 1fr; }
  .gsh-durum, .gsh-dugmeler { grid-column: 2; }
}
.gsh-yok-bos { visibility: hidden; }
.gsh-dugmeler .dugme-ikincil { min-height: 30px; padding: 4px 14px; font-size: 13px; }

/* ==== GÜN SONU · VERESİYENİN FATURASI (2026.724) ==== */
.gsf-rozet { cursor: pointer; }
.pencere.gsf-pencere { max-width: 560px; }
.gsf-kunye { margin: 0 0 10px; font-size: 13px; color: var(--ikinci); line-height: 1.5; }
.gsf-kunye b { color: var(--metin); }
.gsf-liste { max-height: 50vh; overflow-y: auto; border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 10px; background: var(--yuzey); margin-bottom: 10px; }
.gsf-fatura { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--ayirici, #EFE6D4); background: none; color: var(--metin); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer; }
.gsf-fatura:last-child { border-bottom: 0; }
.gsf-fatura:disabled { opacity: .45; cursor: default; }
@media (hover: hover) { .gsf-fatura:not(:disabled):hover { background: var(--defter-hover, #F3EAD8); font-weight: 600; } }
.gsf-secili { background: var(--defter-baslik, #F6ECD8); font-weight: 700; }
.gsf-ad small, .gsf-tutar small { color: var(--ikinci); font-weight: 400; }
.gsf-tutar { white-space: nowrap; font-variant-numeric: tabular-nums; }
.gsf-bos { padding: 12px; color: var(--ikinci); font-size: 13px; }

/* ==== DEPO İÇİ GRUPLAR (2026.726 · göç 198) ====
   A görünümü: ince altın ayraçlı küçük başlık. Her grup ayrı kart,
   aralarında boşluk, arkada dokulu zemin (kullanıcının kararları). */
.dpk { padding: 12px 12px 16px; background-color: #EFE4CF;
  background-image:
    repeating-linear-gradient(45deg, rgba(184,146,74,.18) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(184,146,74,.18) 0 1px, transparent 1px 22px),
    radial-gradient(rgba(138,106,46,.10) 1px, transparent 1.5px);
  background-size: auto, auto, 11px 11px; }
.dpk .tablo-kutu { background: transparent; border: 0; box-shadow: none; overflow: visible; }
.dpk .dpg-tablo { table-layout: fixed; width: 100%; background: var(--yuzey, #FBF7F0);
  border-radius: 10px; box-shadow: 0 3px 10px rgba(74,52,32,.14); overflow: hidden; margin-top: 14px; }
.dpk tr.dpk-bas td { height: auto; padding-top: 12px; padding-bottom: 6px; background: var(--yuzey, #FBF7F0);
  border-bottom: 1px solid var(--altin, #B8924A); }
.dpk tr.dpk-bas td.dpk-bas-ad { text-align: left; }
.dpk .dpk-ad { font: 700 11.5px/1.2 var(--baslik-font, Georgia, serif); letter-spacing: .14em; text-transform: uppercase;
  color: var(--altin-koyu, #8A6A2E); }
.dpk .dpk-say { margin-left: 8px; font-size: 11px; color: var(--ikinci); }
.dpk .dpk-diger .dpk-ad { font-style: italic; color: var(--ikinci); }
.dpk tr.dpk-bas td.dpk-ara { font-size: 12px; font-weight: 600; color: var(--altin-koyu, #8A6A2E); }
.dpk-islem { display: inline-flex; gap: 6px; margin-left: 12px; vertical-align: middle; }
/* Şerit tuşu (.rs-tus) · başlık satırına sığsın diye bir tık alçak (2026.735). */
.dpk-islem .rs-tus { height: 28px; min-height: 28px; padding: 0 10px; font-size: 12px; gap: 5px; margin-bottom: 3px; }
.dpk-tutamak { border: 0; background: none; color: var(--altin, #B8924A); font-size: 15px; letter-spacing: -2px;
  cursor: grab; padding: 0 6px 0 0; vertical-align: middle; }
.dpk-duzen tr.dp-urun[draggable] { cursor: grab; }
.dpk tr.dpk-surukleniyor { opacity: .4; }
.dpk tr.dpk-hedef td { box-shadow: inset 0 -3px 0 var(--vurgu); }
.dpk tr.dpk-bos td { text-align: center; color: var(--ikinci); font-size: 12.5px; font-style: italic; height: 38px; }
.dpk-ipucu { margin: 0 0 10px 4px; font-size: 12.5px; color: var(--ikinci); }
.dpk-ekle { margin-top: 12px; }
.pencere.dpk-pencere { max-width: 460px; }
.dpk-kunye { margin: 0 0 8px; font-size: 13px; color: var(--ikinci); }
.dpk-secenekler { display: grid; gap: 6px; margin-bottom: 10px; }
.dpk-secenek { text-align: left; padding: 9px 12px; border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 8px;
  background: var(--yuzey); font: inherit; color: var(--metin); cursor: pointer; }
.dpk-secenek.dpk-secili { background: var(--defter-baslik, #F6ECD8); font-weight: 700; border-color: var(--altin); }

/* ==== DEPO ŞERİDİ SADE (2026.727) ====
   Solda geri · arama (depo adı ve bilgisi kuşağın başlığında); sağda Sayım
   İşlemleri ve küçük ⚙ · ikisi de açılır menü (.dpg-menu). */
.dpg-durum { font-weight: 600; color: var(--altin-koyu, #8A6A2E); }
.dpg-durum-tamam { color: var(--basari, #2F7A46); }
.dpg-durum svg { vertical-align: -1px; }
.rs-serit .dpg-ok { font-size: 11px; margin-left: 2px; }
/* ⚙ yalnız simge · yazı ekran okuyucuya kalır. */
.rs-serit:has([data-sayim-menu], .rs-tus-vurgu[data-kume-duzen]) .rs-ayarlar { padding-left: 10px; padding-right: 10px; }
.rs-serit:has([data-sayim-menu], .rs-tus-vurgu[data-kume-duzen]) .rs-ayarlar > span {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.dpg-menu {
  position: fixed; z-index: 60; min-width: 270px; max-width: calc(100vw - 16px);
  background: var(--yuzey, #fff); border: 1px solid color-mix(in srgb, var(--altin, #B8924A) 45%, transparent);
  border-radius: 12px; box-shadow: 0 10px 28px rgba(40, 25, 10, .18); padding: 6px;
  animation: dpg-menu-ac .12s ease-out;
}
.dpg-menu .na-ay-liste { margin: 0; }
.dpg-menu .na-ay-satir[disabled] { opacity: .5; cursor: not-allowed; }
.dpg-menu-bilgi {
  margin: 6px 4px 2px; padding: 8px 10px 4px; font-size: 12px; text-align: center;
  color: color-mix(in srgb, var(--metin) 62%, transparent);
  border-top: 1px dashed color-mix(in srgb, var(--altin, #B8924A) 45%, transparent);
}
/* Renkli simge (2026.728) · temanın krem-altın kutusunda. */
.dpg-menu .na-ay-simge {
  width: 42px; height: 42px; border-radius: 11px;
  background: color-mix(in srgb, var(--altin, #B8924A) 12%, var(--yuzey, #FFFDF8));
  border: 1px solid color-mix(in srgb, var(--altin, #B8924A) 30%, transparent);
}
@keyframes dpg-menu-ac { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ==== DEPO SAYIMI · SAKİN SATIR (2026.730) ====
   Kullanıcının isteği: "kalanın üstüne gelince kırmızı yanıyor, o kötü,
   daha uyumlu bir renk olsun · dikey olarak da çok göz yormayan çizgiler
   olabilir". Kalan kutusu üstüne gelince ve yazarken altın olur (öbür
   ekranların kutuları bordo kaldı). Sütunlar arasında çok soluk altın
   tel; eski bölüm telleri (.dp-bolum) bir ton koyu kalır. */
.dpg-tek .dpg-tablo .sy-giris:hover:not(:read-only) {
  border-bottom-color: var(--altin-koyu);
  background: color-mix(in srgb, var(--altin) 10%, transparent);
}
.dpg-tek .dpg-tablo .sy-giris:focus {
  border-bottom: 2px solid var(--altin-koyu);
  background: color-mix(in srgb, var(--altin) 14%, transparent);
}
.dpg-tek .dpg-tablo .sy-giris.alan-hatali,
.dpg-tek .dpg-tablo .sy-giris.alan-hatali:hover:not(:read-only) { border-bottom-color: var(--hata); }
.dpg-tek .dpg-tablo thead th + th,
.dpg-tek .dpg-tablo tbody tr.dp-urun td + td {
  border-left: 1px solid color-mix(in srgb, var(--altin) 18%, transparent);
}
.dpg-tek .dpg-tablo thead th.dp-bolum,
.dpg-tek .dpg-tablo tbody tr.dp-urun td.dp-bolum { border-left-color: var(--ayirici); }

/* ==== DEPOLAR · ARAMA BÜYÜTEÇTE (2026.731) ====
   Şeridin en sağında, ⚙'nin yanında büyüteç; basınca altında panel:
   arama kutusu ve Ara düğmesi, sonuçlar onların altında. */
.dp-ara-kap { margin-left: 0; }
.rs-serit .dp-ara-ac { padding-left: 10px; padding-right: 10px; }
.dp-ara-panel {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 30;
  width: 400px; max-width: calc(100vw - 32px); padding: 10px;
  background: var(--yuzey); border: 1px solid var(--altin); border-radius: var(--kose-kutu);
  box-shadow: 0 10px 28px rgba(58, 42, 29, .18);
  animation: dpg-menu-ac .12s ease-out;
}
.dp-ara-panel[hidden] { display: none; }
.dp-ara-form { display: flex; align-items: center; gap: 8px; }
.dp-ara-panel .dp-ara { flex: 1 1 auto; width: auto; min-width: 0; margin: 0; }
.dp-ara-panel .dp-ara-sonuc {
  position: static; width: auto; max-height: 340px; margin-top: 8px; padding: 6px 0 0;
  border: 0; border-top: 1px solid var(--ayirici); border-radius: 0; box-shadow: none;
}

/* ==== ŞERİT DÜĞMELERİ · BASILINCA RENK (2026.732) ====
   Kullanıcının bildirimi: "düğmelere basılınca renk değişmiyor". Menüsü
   ya da paneli açık düğme (Sayım İşlemleri · ⚙ · büyüteç · aria-expanded)
   seçili tuş gibi bordo durur; her tuş basıldığı an hafif altın olur. */
.rs-tus[aria-expanded="true"] {
  --tus-kalinlik: var(--vurgu-koyu);
  background: var(--vurgu);
  border-color: var(--vurgu);
  color: var(--yuzey);
}
@media (hover: hover) {
  .rs-tus[aria-expanded="true"]:hover { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); }
}
.rs-tus:not(.rs-tus-vurgu):not([aria-pressed="true"]):not([aria-expanded="true"]):active {
  background: color-mix(in srgb, var(--altin) 22%, var(--yuzey));
}
.rs-tus.rs-tus-vurgu:active,
.rs-tus[aria-pressed="true"]:active,
.rs-tus[aria-expanded="true"]:active { background: var(--vurgu-koyu); border-color: var(--vurgu-koyu); }

/* ==== DEPO SAYIMI · SADE SÜTUN BAŞLIKLARI (2026.733) ====
   Kullanıcının isteği: "şu kısmın desenli metinleri ortalanmış ve normal
   fontta yap". Başlık satırı süslü yazı (Playfair, büyük harf, aralıklı)
   yerine uygulamanın düz yazısıyla ve hepsi ortalı; Ürün başlığı da. */
.dpg-tek .dpg-tablo thead th {
  font-family: var(--yazi-metin);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  text-align: center;
}
.dpg-tek .dpg-tablo thead th.dp-urun-bas { text-align: center; padding-left: 0; }

/* ==== DEPO SAYIMI · PANO GİBİ KARTLAR (2026.734) ====
   Kullanıcının isteği: "biraz daha büyüt, kalınlaştır · başlık kısmının
   arkası dekorlu · tüm grup kartları dashboard'daki kartlar gibi
   çerçeveli olsun". Pano kartının dili (.pn-sutun): altın kenar, içeride
   3px içeriden soluk tel, kart gölgesi. (Başlık satırı 2026.736'dan
   beri her kartın içinde · .dpk-sutunlar.) Kenarın yuvarlanması
   için bu tablolar "separate" çizilir; hücre telleri tek yönlü (alt /
   sol) olduğu için çift çizgi çıkmaz. Bütün kartlar aynı kenarı taşır,
   sütunlar hizalı kalır. */
.dpg-tek .dpg-tablo thead th { font-size: 13.5px; font-weight: 700; }
.dpk .dpg-tablo {
  border-collapse: separate;
  border-spacing: 0;
  position: relative;
  border: var(--kart-cerceve);
  border-radius: 16px;
  box-shadow: var(--kart-golge);
  background-color: var(--kart-zemin);
}
.dpk .dpg-tablo::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: var(--kart-tel);
  border-radius: 13px;
  pointer-events: none;
}
.dpk .dpk-kart { margin-top: 12px; }
.dpk tr.dpk-bas td { background: transparent; }

/* ==== DEPO GRUPLARI · HER KARTTA SÜTUN BAŞLIKLARI (2026.736) ====
   Kullanıcının isteği: "her kartın üstünde bu başlıklar olsun, Beyaz
   Etler yazısının altında · başlıktaki metinleri ortala, hem dikey hem
   yatay · metin de BEYAZ ETLER yazısındaki gibi olsun, rengi, fontu".
   Grup adının yazısı (.dpk-ad): kalın, büyük harf, aralıklı, altın-koyu;
   arkada krem motif (--yan-desen). */
.dpk .tablo-kutu > .dpk-kart:first-child { margin-top: 0; }
.dpk tr.dpk-sutunlar th {
  height: 38px;
  padding: 0 4px;
  vertical-align: middle;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font: 700 11.5px/1.2 var(--baslik-font, Georgia, serif);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--altin-koyu, #8A6A2E);
  background-color: color-mix(in srgb, var(--defter-baslik) 55%, var(--yuzey));
  background-image: var(--yan-desen);
  background-size: 160px auto;
  border-bottom: 1px solid var(--altin-soluk);
}
.dpk tr.dpk-sutunlar th + th { border-left: 1px solid color-mix(in srgb, var(--altin) 18%, transparent); }
.dpk tr.dpk-sutunlar th.dp-bolum { border-left-color: var(--ayirici); }
.dpk tr.dpk-bas td { border-bottom: 0; }

/* ==== DEPO GRUPLARI · ALTIN, KAFESLİ BAŞLIK SATIRI (2026.737) ====
   Kullanıcının bildirimi: "şeffaf olduğu için gözükmüyor · farklı renkler
   dene · metin fontunu biraz düşür". Dört renk ve üç desen gösterildi;
   seçimi: "D'yi desenli dene" → "3'ü bir deneyelim". Altın degrade
   zemin, üstünde ince beyaz çapraz kafes (arka zeminin kafesi), krem-beyaz
   yazı. Zemin satıra verilir: hücre hücre verilseydi desen her sütunda
   baştan başlar, sütun sınırında kırılırdı. */
.dpk tr.dpk-sutunlar {
  background-color: #BD9A5F;
  background-image:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, .16) 0 1px, transparent 1px 12px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, .16) 0 1px, transparent 1px 12px),
    linear-gradient(180deg, #C9A96E, #B08D52);
}
.dpk tr.dpk-sutunlar th {
  height: 34px;
  font-size: 10.5px;
  color: #FFFDF8;
  /* Hafif siyah gölge (2026.738 · "başlık harfleri siyah gölge olsun, hafif"). */
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
  background: transparent;
  border-bottom: 1px solid #9A7A44;
}
.dpk tr.dpk-sutunlar th + th,
.dpk tr.dpk-sutunlar th.dp-bolum { border-left: 1px solid rgba(255, 255, 255, .22); }

/* ==== DEPO GRUPLARI · TEPEDE SABİT TEK BAŞLIK (2026.739) ====
   Kullanıcının isteği: "renk çok göz yoruyor, çok parlak · başlık tepeye
   sabitli, altta da kartlar, kaydırdıkça göreceğiz". Sütun başlıkları tek
   bir kartta, üst çubuğun hemen altına yapışır (sticky); gruplar altından
   kayar. Kabı arka zeminin rengini taşır ki kayan kartlar başlığın
   kenarından görünmesin. Sayım kartı "overflow: clip" olur: "hidden"
   kaydırma kabı sayılır ve yapışmayı bozar, "clip" köşeyi yine kırpar. */
.sy-kart.dpg-kart:has(.dpk) { overflow: clip; }
.dpk .dpk-bas-kap {
  position: sticky;
  top: calc(var(--ust-cubuk) + env(safe-area-inset-top, 0px));
  z-index: 6;
  margin: -12px 0 0;
  padding: 12px 0 10px;
  background-color: #EFE4CF;
}
.dpk .dpk-bas-kap .dpk-bas-tablo { margin: 0; }
.dpk .tablo-kutu > .dpk-bas-kap + .dpk-kart { margin-top: 0; }
/* Sakin renk · soluk altın, koyu kahve yazı. */
.dpk .dpk-bas-tablo tr.dpk-sutunlar {
  background-color: #D6C197;
  background-image:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, .14) 0 1px, transparent 1px 12px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, .14) 0 1px, transparent 1px 12px),
    linear-gradient(180deg, #DDCAA3, #CFB88B);
}
.dpk .dpk-bas-tablo tr.dpk-sutunlar th {
  height: 38px;
  color: var(--defter-koyu);
  text-shadow: 0 1px 0 rgba(255, 255, 255, .45);
  border-bottom: 0;
}
.dpk .dpk-bas-tablo tr.dpk-sutunlar th + th,
.dpk .dpk-bas-tablo tr.dpk-sutunlar th.dp-bolum { border-left: 1px solid rgba(255, 255, 255, .3); }
.dpk tr.dpk-sutunlar th.dp-no { letter-spacing: .02em; padding: 0; text-overflow: clip; }
.dpk .dpk-bas-kap {
  background-image:
    repeating-linear-gradient(45deg, rgba(184,146,74,.18) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(184,146,74,.18) 0 1px, transparent 1px 22px),
    radial-gradient(rgba(138,106,46,.10) 1px, transparent 1.5px);
  background-size: auto, auto, 11px 11px;
}

/* ==== DEPO GRUPLARI · TABLO GİBİ BİTİŞİK (2026.740) ====
   Kullanıcının isteği: "direk tepeye yapışık olsun başlık, alt kısımlarda
   birbirine yapışık olsun tablo gibi, kartlar da az oval olsun".
   Başlık kayınca üst çubuğa boşluksuz yapışır. Başlık, grup kartları ve
   toplam arasında boşluk yok: tek bir tablo gibi alt alta, aralarında
   tek altın tel (kartın üst kenarı yok, bir öncekinin alt kenarı ayırır).
   Yalnız dış köşeler hafif yuvarlak (8px); içteki ikinci tel ve kart
   başına gölge kalktı, gölge bütünün altında. */
.dpk .dpk-bas-kap { margin: 0; padding: 0; }
.dpk .tablo-kutu { border-radius: 8px; box-shadow: var(--kart-golge); }
.dpk .dpg-tablo { margin-top: 0; border-radius: 0; box-shadow: none; }
.dpk .dpg-tablo::after { display: none; }
.dpk .dpk-kart { margin-top: 0; border-top: 0; }
.dpk .dpk-bas-tablo { border-radius: 8px 8px 0 0; }
.dpk .dpk-toplam-kart { border-radius: 0 0 8px 8px; }

/* ==== DEPO GRUPLARI · DAR GRUP SATIRI, ARA TOPLAMSIZ (2026.741) ====
   Kullanıcının isteği: "burada toplamlar olmasına gerek yok ve daha dar
   olsun". Grup adının satırı tek hücre, alçak; düzenlemedeki tuşlar da
   bu boya sığar. */
.dpk tr.dpk-bas td { height: 30px; padding-top: 4px; padding-bottom: 4px; line-height: 1.2; }
.dpk-duzen tr.dpk-bas td { padding-top: 5px; padding-bottom: 2px; }

/* ==== DEPO GRUPLARI · BAŞLIK RENGİ #EDE2CC (2026.742) ====
   Kullanıcının isteği: "tepedeki başlığın rengini bu renk yap" (ekran
   görüntüsünden okundu: düz #EDE2CC, sütun teli #E7DAC0 · --ayirici).
   Degrade ve kafes kalktı; yazı koyu kahve kaldı. */
.dpk .dpk-bas-tablo tr.dpk-sutunlar { background: #EDE2CC; }
.dpk .dpk-bas-tablo tr.dpk-sutunlar th + th,
.dpk .dpk-bas-tablo tr.dpk-sutunlar th.dp-bolum { border-left: 1px solid var(--ayirici); }

/* ==== DEPOLAR · ⚙ MENÜSÜ SAYFA SAYFA (2026.743) ====
   Depo ayarları → kimlik (menünün içinde küçük form) ve içerik (panel);
   Grup ayarları → grup ekle (menünün içinde), grupları düzenle. Alt
   sayfalarda başlık yok, tepede küçük "‹ Geri". Menünün ölçüsü aynı. */
.dpg-menu { width: 330px; }
.dpg-menu-geri {
  display: inline-flex; align-items: center; gap: 4px;
  margin: 2px 0 4px 2px; padding: 4px 10px;
  border: 0; border-radius: 8px; background: transparent;
  font: 600 12.5px var(--yazi-metin); color: var(--ikinci); cursor: pointer;
}
@media (hover: hover) { .dpg-menu-geri:hover { background: color-mix(in srgb, var(--altin) 14%, transparent); } }
.dpg-menu-geri:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 1px; }
.dpg-menu-form { display: grid; gap: 12px; padding: 6px 8px 8px; }
.dpg-menu-alan { display: grid; gap: 5px; }
.dpg-menu-alan > span:first-child {
  font: 700 10.5px/1.2 var(--baslik-font, Georgia, serif); letter-spacing: .12em;
  text-transform: uppercase; color: var(--ikinci);
}
.dpg-menu-alan .alan-kutu { height: 36px; }
.dpg-menu-alan .rs-secim .rs-tus { height: 30px; min-height: 30px; }
.dpg-menu-dugmeler { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.dpg-menu-dugmeler .rs-tus { height: 32px; min-height: 32px; }
.dpg-menu-sil { color: var(--vurgu); font-size: 12px; }

/* İçerik paneli · hesap ve ürün tikleri. */
.pencere.dpi-pencere { max-width: 720px; }
.dpi .depo-hesaplar { margin: 0; }

/* ==== DEPOLAR · MENÜ ÖLÇÜSÜ, GERİ, İÇERİK SEÇİMİ (2026.744) ====
   Kullanıcının bildirimleri: "ölçüleri farklı, aynı olsun" · "geri
   düğmesinde satır böyle renk değiştirmesin" · "seçim düğmeleri depo
   içerik ayarlarında daha iyi olsun, hiçbir depoya atanmayanlarda DEPOYA
   ATANMADI yazsın". Menü kutusu .na-ay'ın ızgarasını (16px aralık, tam
   genişlik öğe) taşıyordu: Geri tuşu satır boyu uzuyor ve altına boşluk
   ekliyordu. Kutu düz blok oldu; kök sayfada Geri'nin yerinde aynı boyda
   "Ayarlar" yazısı. Geri'nin üstüne gelince yalnız yazı koyulaşır. */
.dpg-menu.na-ay { display: block; }
.dpg-menu .dpg-menu-geri,
.dpg-menu .dpg-menu-ust {
  display: inline-flex; align-items: center; width: auto; height: 26px;
  margin: 0 0 6px 4px; padding: 0 6px; background: none;
  font: 600 12.5px var(--yazi-metin); color: var(--ikinci);
}
.dpg-menu .dpg-menu-ust { color: var(--ikinci); cursor: default; }
@media (hover: hover) { .dpg-menu .dpg-menu-geri:hover { background: none; color: var(--vurgu); } }

/* İçerik paneli · seçim kutuları: kendi çizimi, bordo dolu, beyaz tik;
   yarım tik (bir kısmı hariç) beyaz çizgi. Seçili hesap satırı altın
   tonunda. */
.dpi input[type="checkbox"] {
  -webkit-appearance: none; appearance: none; flex: none;
  width: 20px; height: 20px; margin: 0;
  border: 1.5px solid var(--altin-koyu); border-radius: 6px;
  background: #fff center / 14px 14px no-repeat;
  box-shadow: 0 1px 0 rgba(74, 52, 32, .12);
  cursor: pointer; transition: background-color .12s ease, border-color .12s ease;
}
.dpi .depo-urun input[type="checkbox"] { width: 18px; height: 18px; background-size: 12px 12px; }
.dpi input[type="checkbox"]:checked {
  border-color: var(--vurgu); background-color: var(--vurgu);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.4 6.6 11.4 12.6 4.8' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.dpi input[type="checkbox"]:indeterminate {
  border-color: var(--vurgu); background-color: var(--vurgu);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
@media (hover: hover) { .dpi input[type="checkbox"]:not(:checked):not(:indeterminate):hover { border-color: var(--vurgu); } }
.dpi input[type="checkbox"]:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.dpi .depo-hesap-secili { background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); }
.dpi .depo-hesap-oteki {
  flex: none; padding: 1px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--altin) 18%, transparent);
  font-size: 11px; color: var(--ikinci);
}
.dpi-atanmadi {
  flex: none; margin-left: auto; padding: 2px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--vurgu) 10%, transparent);
  font: 700 10px/1.3 var(--yazi-metin); letter-spacing: .06em; text-transform: uppercase;
  color: var(--vurgu);
}
.dpi .depo-hesap .dpi-atanmadi + .depo-urun-ac,
.dpi .depo-urun .dpi-atanmadi { margin-left: 0; }
.dpi .depo-urun .dpi-atanmadi { margin-right: 4px; }

/* ==== YAKINDA EKLENECEK SAYFALAR (2026.745) ====
   Stok Yönetimi'nin henüz boş dört sayfası · pano kartının dilinde tek
   kart, ortasında görsel, "Yakında" rozeti, başlık ve açıklama. */
.yakinda-kart {
  position: relative;
  margin-top: calc(var(--bosluk) * 1.5);
  background-color: var(--kart-zemin);
  border: var(--kart-cerceve);
  border-radius: 20px;
  box-shadow: var(--kart-golge);
}
.yakinda-kart::after {
  content: ""; position: absolute; inset: 3px;
  border: var(--kart-tel); border-radius: 17px; pointer-events: none;
}
.yakinda-rozet {
  display: inline-block; margin: 4px 0 2px; padding: 3px 12px; border-radius: 999px;
  background: color-mix(in srgb, var(--altin) 20%, transparent);
  font: 700 10.5px/1.3 var(--yazi-metin); letter-spacing: .1em; text-transform: uppercase;
  color: var(--ikinci);
}

/* ==== DEMİRBAŞLAR (2026.746 · göç 199) ====
   Görünüşün neredeyse tamamı Hammaddeler'in sınıflarıdır (liste
   .dp-tablo-liste, kâğıt .dpg-tek .dpk, menü .dpg-menu, arama .dp-ara-*):
   biri değişince öbürü de değişir. Burada yalnız bu ekrana özgü parçalar:
   sorumlu seçim düğmesi ve açılır seçici, eksik sütunu, ⚙ listeleri. */
.dmb .dpg-tablo tbody td.dmb-ad { text-align: left; padding-left: 14px; font-weight: 500; }
/* Ürün adı hücresi · adını değiştir kalemi sağda (Hammaddeler'deki
   .dp-ad-kalem), düzenlemede solda tutamak (2026.750). Uzun ad
   kırpılmaz, iki satıra iner. */
.dmb .dpg-tablo tbody td.dmb-ad { position: relative; white-space: normal; line-height: 1.3; overflow-wrap: anywhere; }
.dmb .dpg-tablo tbody td.dmb-ad.dp-urun-ad-kalemli { padding-right: 40px; }
.dmb .dpk-say { white-space: nowrap; }
.dmb .dpg-tablo tbody td.dmb-ted { font-size: 12.5px; color: var(--ikinci); }
.dmb .dmb-eksik b { color: var(--vurgu); font-weight: 700; }
.dmb .dmb-tamam { color: var(--basari); display: inline-flex; }
.dmb-sec {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 6px;
  width: 100%; max-width: 136px; height: 30px; padding: 0 6px;
  border: 0; border-bottom: 1px solid var(--altin); border-radius: 0; background: transparent;
  font: inherit; font-size: 13px; color: var(--metin); cursor: pointer;
  transition: background-color .12s ease, border-color .12s ease;
}
.dmb-sec-yazi { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dmb-sec::after { content: "\25be"; flex: none; font-size: 10px; color: var(--ikinci); }
.dmb-sec.dmb-bos { color: var(--ikinci); font-style: italic; }
@media (hover: hover) {
  .dmb-sec:hover { border-bottom-color: var(--altin-koyu); background: color-mix(in srgb, var(--altin) 10%, transparent); }
}
.dmb-sec:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 1px; }
.dpg-menu.dmb-secici { width: 250px; padding: 8px; }
.dmb-secici .alan-kutu { width: 100%; height: 34px; margin-bottom: 6px; }
.dmb-secenekler { display: grid; gap: 2px; max-height: 230px; overflow-y: auto; }
.dmb-secenek {
  display: block; width: 100%; padding: 7px 9px; border: 0; border-radius: 7px; background: none;
  font: inherit; font-size: 13px; text-align: left; color: var(--metin); cursor: pointer;
}
@media (hover: hover) { .dmb-secenek:hover { background: color-mix(in srgb, var(--altin) 12%, transparent); } }
.dmb-secenek[aria-selected="true"] { background: color-mix(in srgb, var(--altin) 18%, transparent); font-weight: 600; }
.dmb-secenek-yeni { color: var(--vurgu); font-weight: 600; border-top: 1px dashed var(--ayirici); border-radius: 0 0 7px 7px; }
.dmb-secenek-bosalt { color: var(--ikinci); font-size: 12px; }
.dmb-liste { max-height: 240px; overflow-y: auto; border: 1px solid var(--ayirici); border-radius: 10px; background: #fff; }
.dmb-liste-satir {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  min-height: 38px; padding: 5px 8px 5px 12px; border-top: 1px solid var(--ayirici); font-size: 13.5px;
}
.dmb-liste-satir:first-child { border-top: 0; }
.dmb-liste-satir .alan-kutu { flex: 1; height: 30px; }
.dmb-liste-satir .rs-tus { height: 30px; min-height: 30px; }
.dmb-liste-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dmb-liste-tuslar { display: inline-flex; gap: 2px; flex: none; }
.dmb-mini {
  display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0;
  border: 0; border-radius: 7px; background: none; color: var(--ikinci); cursor: pointer;
}
@media (hover: hover) { .dmb-mini:hover { background: color-mix(in srgb, var(--altin) 14%, transparent); color: var(--vurgu); } }
.dmb-liste-bos { margin: 0; padding: 10px 12px; font-size: 13px; color: var(--ikinci); }
.dmb-ekle-satir { display: flex; gap: 8px; }
.dmb-ekle-satir .alan-kutu { flex: 1; height: 34px; }
.dmb-ekle-satir .rs-tus { height: 34px; min-height: 34px; }

/* ==== DEMİRBAŞIN SORUMLUSU · KİŞİ SİMGESİ VE KÜÇÜK PENCERE (2026.747) ====
   Kullanıcının isteği: "orada kişi ikonu çıksın, ona basınca o ikonun
   altında küçük bir pencere açılsın · biraz daha küçült". Faturasız alım
   paneli ve fatura detayı aynı parçayı kullanır (demirbas-sorumlu.js).
   Eksikken bordo ve ünlemli, tamamken altın ve yeşil tikli. */
.dmb-kisi {
  position: relative; flex: none; display: inline-grid; place-items: center;
  width: 24px; height: 24px; padding: 0; vertical-align: middle;
  border: 1px solid var(--altin); border-radius: 7px; background: var(--yuzey);
  color: var(--ikinci); box-shadow: 0 2px 0 var(--altin-koyu); cursor: pointer;
  transition: transform .1s ease-out, box-shadow .1s ease-out;
}
.dmb-kisi:active { transform: translateY(2px); box-shadow: 0 0 0 var(--altin-koyu); }
.dmb-kisi:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.dmb-kisi-eksik { border-color: var(--vurgu); color: var(--vurgu); box-shadow: 0 2px 0 var(--vurgu-koyu); }
.dmb-kisi-acik { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); }
.dmb-kisi-nokta {
  position: absolute; top: -5px; right: -5px; width: 12px; height: 12px; border-radius: 999px;
  border: 1.5px solid var(--yuzey); background: var(--basari); color: #fff;
  font: 700 8px/9px var(--yazi-metin); text-align: center;
}
.dmb-kisi-eksik .dmb-kisi-nokta { background: var(--vurgu); }
.dmb-kisi-pencere {
  position: fixed; z-index: 1200; width: 270px; max-width: calc(100vw - 16px);
  display: grid; gap: 10px; padding: 12px;
  background: var(--yuzey); border: 1px solid color-mix(in srgb, var(--altin) 55%, transparent);
  border-radius: 12px; box-shadow: 0 10px 28px rgba(40, 25, 10, .22);
  animation: dpg-menu-ac .12s ease-out;
}
.dmb-kisi-pencere::before {
  content: ""; position: absolute; top: -7px; right: var(--ok-sag, 10px); width: 12px; height: 12px;
  background: var(--yuzey); transform: rotate(45deg);
  border-left: 1px solid color-mix(in srgb, var(--altin) 55%, transparent);
  border-top: 1px solid color-mix(in srgb, var(--altin) 55%, transparent);
}
.dmb-kp-baslik {
  font: 700 10.5px/1.2 var(--baslik-font, Georgia, serif); letter-spacing: .12em;
  text-transform: uppercase; color: var(--ikinci);
}
.dmb-kp-alan { position: relative; display: grid; gap: 4px; }
.dmb-kp-et { font-size: 12px; color: var(--ikinci); }
.dmb-kp-et b { color: var(--vurgu); }
.dmb-kp-kutu { height: 34px; }
.dmb-kp-liste {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 2; margin-top: 4px; padding: 5px;
  display: grid; gap: 2px; max-height: 190px; overflow-y: auto;
  background: #fff; border: 1px solid color-mix(in srgb, var(--altin) 55%, transparent);
  border-radius: 10px; box-shadow: 0 8px 20px rgba(40, 25, 10, .16);
}
.dmb-kp-not { margin: 0; font-size: 12px; font-weight: 600; color: var(--vurgu); }
.dmb-kp-alt { display: flex; justify-content: flex-end; }
.dmb-kp-alt .rs-tus { height: 30px; min-height: 30px; }

/* Faturasız alım · demirbaş satırında hesap seçici ile kişi simgesi yan yana. */
.fzs-hes-sar { display: flex; align-items: center; gap: 8px; }
.fzs-hes-sar > :first-child { flex: 1 1 auto; min-width: 0; }
/* Fatura detayı · "… gidecek" yazısının yanında kişi simgesi. */
.fa-yer .dmb-kisi { margin-left: 8px; }

/* ==== STOK YÖNETİMİ · DEPOLAR VE TÜR SAYFALARI (2026.751) ====
   Kullanıcının isteği: "Stok Yönetimi'nin en üstüne Depolar · depoya
   basınca hammadde, yarı mamul, mamul hepsi · Hammaddelere basınca sadece
   hammaddeler · hepsinin ekranları, tabloları, tarzları birebir aynı".
   Görünüşün tamamı sayım kâğıdının sınıflarıdır (.dpg-tek .dpk); burada
   yalnız yeni parçalar: listenin kartı (.dpl), tür etiketleri, tür bandı,
   boş tür satırı, salt okunur kalan, filtre menüsü. */

/* Depo listesi · sayım kâğıdının kartı */
.dpl .dpg-tablo thead th.dpl-sol,
.dpl .dpg-tablo tbody td.dp-ad { text-align: left; padding-left: 28px; }
.dpl .dpg-tablo { min-width: 0; }
.dpl .dp-satir td { height: 62px; }
.dps-cipler { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.dps-cip {
  font-size: 10.5px; line-height: 16px; padding: 0 7px; border-radius: 999px;
  border: 1px solid var(--altin); color: var(--ikinci); font-weight: 600;
  background: color-mix(in srgb, var(--altin) 12%, transparent);
}
.dps-cip-yok {
  border-color: var(--ayirici); font-weight: 400; background: none;
  color: color-mix(in srgb, var(--ikinci) 55%, transparent);
}

/* Depo içi · türün bandı (simge · ad · kök kodu · bilgi) */
.dps > .dps-tur { margin: 0 calc(var(--bosluk) * 1.5); padding-top: calc(var(--bosluk) * 1.5); }
.dps > .dps-tur:not(:first-child) { padding-top: calc(var(--bosluk) * 2.5); }
.dps > .dps-tur + .dpg-tek { padding-top: calc(var(--bosluk) * .75); }
.dps-tur {
  display: flex; align-items: center; gap: 10px; padding-bottom: 8px;
  border-bottom: 1px solid color-mix(in srgb, var(--altin) 45%, transparent);
}
.dps-tur-simge { display: inline-flex; }
.dps-tur-ad {
  font: 700 15px/1.2 var(--yazi-baslik); letter-spacing: .14em; text-transform: uppercase;
  color: var(--vurgu); text-shadow: 0 1px 1px rgba(0, 0, 0, .12);
}
.dps-tur-kod {
  font: 600 11.5px/18px var(--yazi-metin); padding: 0 8px; border-radius: 999px;
  border: 1px solid var(--altin); color: var(--ikinci);
}
.dps-tur-bilgi { margin-left: auto; font-size: 12.5px; color: var(--ikinci); text-align: right; }
@media (max-width: 700px) {
  .dps-tur { flex-wrap: wrap; }
  .dps-tur-bilgi { margin-left: 0; width: 100%; text-align: left; }
}

/* Boş tür · "henüz giriş yok" satırı */
.dpk tr.dps-bos td { height: auto; padding: 26px 20px; text-align: center; background: var(--yuzey, #FBF7F0); }
.dps-bos-simge { display: inline-flex; vertical-align: middle; margin-right: 14px; opacity: .8; }
.dps-bos-yazi { display: inline-flex; flex-direction: column; vertical-align: middle; text-align: left; gap: 3px; max-width: 560px; }
.dps-bos-yazi b { font: 700 14px/1.3 var(--yazi-baslik); color: var(--metin); }
.dps-bos-yazi small { font-size: 12.5px; color: var(--ikinci); line-height: 1.45; white-space: normal; }

/* Tür sayfası · salt okunur kalan, depo sütunu, üstteki not */
.dpg-tek .dpg-tablo tbody td.dps-salt b { font-weight: 700; color: var(--metin); }
.dpg-tek .dpg-tablo tbody td.dps-salt small { font-size: 11px; color: var(--ikinci); }
.dpg-tek .dpg-tablo tbody td.dps-salt.dp-devir b { font-weight: 500; color: var(--ikinci); }
.dpg-tek .dpg-tablo tbody td.dps-depo { font-size: 12.5px; color: var(--ikinci); white-space: normal; line-height: 1.3; }
.dps-depo-yok { font-style: italic; color: color-mix(in srgb, var(--ikinci) 70%, transparent); }
.dps-not { display: flex; align-items: center; gap: 6px; margin: 0 4px 10px; font-size: 12.5px; color: var(--ikinci); }
.dps-not-git {
  border: 0; padding: 0; background: none; font: inherit; font-weight: 700;
  color: var(--vurgu); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
}
.dps-filtre-yazi { font-size: 12.5px; }

/* ⚙ Filtrele menüsü */
.dpg-menu.na-ay .dps-secenekler { display: flex; flex-wrap: wrap; gap: 6px; }
.dps-secenekler .rs-tus { height: 30px; min-height: 30px; padding: 0 10px; font-size: 12.5px; }
.dpg-menu.na-ay:has(.dps-secenekler) { width: 380px; max-width: calc(100vw - 16px); }

/* DAR EKRANDA KÂĞIT YANA KAYAR (2026.751). Sayım kâğıdının sütunları
   geniş ekrana göre (~1160px); başlık tepede sabit dursun diye kutu
   taşmaya açıktı ve 1440px'ten dar ekranda sağ uç kesiliyordu. Orada kutu
   yana kayar; sabit başlık yalnız geniş ekranda kalır (kayan kutunun
   içinde sabitlenemez). */
@media (max-width: 1440px) {
  .dpk .tablo-kutu { overflow-x: auto; }
  .dpk .dpk-bas-kap { position: static; }
  /* Ürün adına yer kalsın: kâğıt daralmaz, kutu kayar. */
  .dpk:not(.dpl) .dpg-tablo { min-width: 1420px; }
  .dpl .tablo-kutu { overflow-x: visible; }
}
/* Telefonda da kâğıt tam hâliyle durur ve yana kayar: sütun gizleme
   (.dp-tablo · 860px) sabit enli sütunlarla çakışıp hücreleri
   daraltıyordu. */
@media (max-width: 860px) {
  .dpk:not(.dpl) .dp-tablo .dp-no,
  .dpk:not(.dpl) .dp-tablo .dp-marka,
  .dpk:not(.dpl) .dp-tablo .dp-fiyat { display: table-cell; }
  .dpk:not(.dpl) .dp-urun-ad .dp-alt-bilgi { display: none !important; }
  .dpk:not(.dpl) .dp-tablo th,
  .dpk:not(.dpl) .dp-tablo td { padding: 0 10px; }
}

/* Telefonda depo listesi · eski liste gibi: ad ve tutar kalır, ayrı
   başlık tablosu gizlenir, sütun enleri serbest (gizlenen hücreler
   sabit enli sütunlarda boşluk bırakmasın). */
@media (max-width: 860px) {
  .dpl .dpk-bas-kap { display: none; }
  .dpl .dpg-tablo { table-layout: auto; }
  .dpl colgroup col { width: auto !important; }
  .dpl .dpg-tablo tbody td.dp-ad { padding-left: 12px; }
  .dpl .dp-satir td { height: auto; padding-top: 10px; padding-bottom: 10px; }
}

/* ==== GÜN SONU · KASA FARK KÂĞIDINDA GİRİŞ (2026.754) ====================
   Kullanıcının isteği: "Kasa Fark Raporu varya aynı onun gibi olsun".
   Veri girilecek hücre krem, dosya bekleyen hücrede "Dosya yükle".
   Her satır aynı boyda: dosya yüklense de yüklenmese de kâğıt kıpırdamaz.
   ===================================================================== */
/* ==== GÜN SONU · KASA FARK KÂĞIDINDA GİRİŞ (örnek · programın dili) ==== */
.sayfa-icerik > [data-govde]:has(> .kfr-kagit.gsy) { display: flex; justify-content: center; padding-top: 18px; padding-bottom: 90px; }
.sayfa-icerik > [data-govde] > .kfr-kagit.gsy { margin-left: auto !important; margin-right: auto !important; }
.kfr-kagit.gsy {
  width: 205mm; background: var(--yuzey); color: var(--metin);
  font-family: var(--yazi-metin); font-size: 13px; line-height: 1.3;
  border: 1px solid var(--altin-soluk); border-radius: 12px; box-shadow: var(--kart-golge);
}
.kfr-kagit.gsy td { border: 1px solid color-mix(in srgb, var(--altin) 42%, transparent); padding: 5px 9px; }
.kfr-kagit.gsy .kfr-kunye .kfr-sol { color: var(--vurgu); font-family: var(--yazi-baslik); background: #F7EFDF; }
.kfr-kagit.gsy .kfr-rapor {
  display: inline-block; font-size: .5em; font-weight: 700; letter-spacing: .14em; color: var(--vurgu);
  margin-top: 6px; padding-top: 5px; border-top: 1.5px solid color-mix(in srgb, var(--altin) 70%, transparent);
}
.kfr-kagit.gsy .kfr-no { color: var(--ikinci); font-family: var(--yazi-metin); font-size: .42em; font-weight: 500; }
.kfr-kagit.gsy .kfr-kunye .kfr-etiket { color: var(--kahve); font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; background: #F7EFDF; }
.kfr-kagit.gsy .kfr-kunye .kfr-deger { font-weight: 600; }
.gsy-tarih { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.gsy-tarih:hover { text-decoration: underline; text-decoration-color: var(--altin); text-underline-offset: 4px; }
.gsy-tarih-simge { font-size: .7em; color: var(--ikinci); }
/* Veri girilecek hücre · zemin normal, çizgi yok (2026.764) */
.kfr-kagit.gsy .gsy-krem, .kfr-kagit.gsy .gsy-gir-hucre { background: transparent; padding: 0; box-shadow: none; }
.gsy-secim { width: 100%; border: 0; background: transparent; font: inherit; font-weight: 600; text-align: center; padding: 5px 9px; cursor: pointer; color: var(--metin); }
.kfr-kagit.gsy .kfr-giris { font-weight: 600; color: var(--metin); padding: 5px 9px; }
.kfr-kagit.gsy .kfr-giris:focus, .gsy-gir:focus { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }
.gsy-gir { width: 100%; border: 0; background: transparent; font: inherit; text-align: right; padding: 5px 9px; font-variant-numeric: tabular-nums; color: var(--metin); }
.gsy-gir:disabled { background: transparent; }
.gsy-gir::placeholder, .kfr-kagit.gsy .kfr-giris::placeholder { color: color-mix(in srgb, var(--ikinci) 70%, transparent); font-weight: 400; }
/* Dosya yükle / aç düğmeleri · şeridin tuşları */
.gsy-orta { text-align: center !important; }
.rs-tus.gsy-tus { height: 26px; min-height: 26px; padding: 0 10px; font-size: 12px; gap: 5px; margin: 1px 0; }
.rs-tus.gsy-tus-vurgu { height: 28px; min-height: 28px; }
.gsy-degis { margin-left: 6px; border: 0; background: none; padding: 0; font-size: .86em; color: var(--ikinci); text-decoration: underline; cursor: pointer; }
.gsy-ok { color: var(--basari); font-weight: 800; }
.gsy-alt { display: block; font-size: .78em; color: var(--ikinci); font-weight: 400; line-height: 1.15; }
.gsy-not { margin-left: 6px; font-size: .8em; color: var(--ikinci); font-weight: 400; }
/* Satır başlıkları · sayım kâğıdının bej başlığı */
.kfr-kagit.gsy .kfr-veri tr.kfr-obek td { background: #EDE2CC; color: var(--kahve); font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; padding-top: 7px; padding-bottom: 7px; }
.kfr-kagit.gsy .kfr-veri tr.kfr-kalin td { font-weight: 700; background: #F7EFDF; }
.kfr-kagit.gsy .kfr-veri tr.kfr-dip td { background: #EDE2CC; color: var(--vurgu); font-size: 13px; }
.gsy-veri tr.gsy-tikla { cursor: pointer; }
@media (hover: hover) { .gsy-veri tr.gsy-tikla:hover td:not(.gsy-gir-hucre) { background: color-mix(in srgb, var(--altin) 10%, var(--yuzey)); } }
.gsy-veri tr.gsy-acik td { background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); }
.gsy-oto { color: var(--ikinci); font-style: italic; }
.kfr-kagit.gsy .gsy-fark-var { color: var(--vurgu); font-weight: 700; }
.kfr-kagit.gsy .gsy-fark-yok { color: var(--ikinci); }
/* Cari hesaplar · kalem kalem, açılır */
.gsy-veri tr.gsy-cari-bas { cursor: pointer; }
.gsy-veri tr.gsy-cari-bas td { font-weight: 700; background: color-mix(in srgb, var(--altin) 7%, var(--yuzey)); }
.gsy-ac-kapa { display: inline-block; width: 16px; color: var(--ikinci); }
.gsy-veri tr.gsy-alt-satir td { font-size: 12.5px; }
.gsy-veri tr.gsy-alt-satir td.kfr-ad { padding-left: 26px; }
.gsy-cip { margin-left: 8px; font-size: 10.5px; line-height: 16px; padding: 0 7px; border-radius: 999px; border: 1px solid var(--altin); color: var(--ikinci); font-weight: 600; vertical-align: 1px; }
.gsy-cip-fatura { border-color: color-mix(in srgb, var(--basari) 55%, transparent); color: var(--basari); }
.gsy-cip-yok { border-color: var(--vurgu); color: var(--vurgu); cursor: pointer; }
.gsy-sebep { margin-top: 10px; }
.gsy-sebep .kfr-etiket { width: 24%; color: var(--vurgu); font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; background: #F7EFDF; }
.gsy-sebep-giris { text-align: left !important; }
.dpg-menu.gsy-pop { position: absolute; width: 300px; z-index: 50; }
.gsy-pop-satir { display: grid; grid-template-columns: 1fr 130px; align-items: center; gap: 8px; }
.gsy-pop-satir .alan-kutu { height: 32px; text-align: right; }
.gsy-pop-toplam { display: flex; justify-content: space-between; padding: 6px 2px; border-top: 1px solid var(--ayirici); font-size: 13px; }
/* SABİT ÖLÇÜ · her satır aynı yükseklikte, sütunlar sabit enli; dosya
   yüklense de yüklenmese de kâğıt kıpırdamaz. */
.kfr-kagit.gsy .gsy-veri { table-layout: fixed; }
.kfr-kagit.gsy .gsy-veri .kfr-ad { width: 46%; }
.kfr-kagit.gsy .gsy-veri .kfr-iki { width: 16px; }
.kfr-kagit.gsy .gsy-veri .kfr-p { width: 18%; }
.kfr-kagit.gsy .gsy-veri tr:not(.kfr-ayrac) td { height: 34px; padding-top: 0; padding-bottom: 0; vertical-align: middle; }
.kfr-kagit.gsy .gsy-veri td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kfr-kagit.gsy .gsy-veri .gsy-gir { height: 33px; }
.kfr-kagit.gsy .kfr-kunye td { height: 34px; padding-top: 0; padding-bottom: 0; }
.kfr-kagit.gsy .kfr-kunye .kfr-deger { width: 34%; }
.kfr-kagit.gsy .gsy-sebep td { height: 34px; padding-top: 0; padding-bottom: 0; }
.kfr-kagit.gsy { position: relative; }
/* Ad hücresi · ad kısalır, not ve çip hep görünür */
.gsy-ad-ic { display: flex; align-items: center; gap: 0; min-width: 0; }
.gsy-ad-metin { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.gsy-ad-ic > .gsy-not, .gsy-ad-ic > .gsy-cip { flex: none; }
.gsy-cip { background: transparent; cursor: pointer; font-family: inherit; }
.gsy-cip-soru { border-style: dashed; color: var(--ikinci); border-color: var(--altin-soluk); }
/* Bekleyen fatura · tek simge (2026.868) */
.gsy-bf-simge { flex: none; margin-left: 8px; width: 20px; height: 20px; padding: 0; border-radius: 50%; border: 1.5px solid currentColor; background: transparent; font-family: inherit; font-size: 11px; font-weight: 800; line-height: 17px; text-align: center; cursor: pointer; }
.gsy-bf-tamam { color: var(--basari); background: color-mix(in srgb, var(--basari) 10%, transparent); }
.gsy-bf-kismi { color: var(--uyari); background: color-mix(in srgb, var(--uyari) 10%, transparent); }
.gsy-bf-acik { color: var(--ikinci); }
.gsy-bf-yok { color: var(--hata); background: color-mix(in srgb, var(--hata) 8%, transparent); }
.gsy-ad-ic > .gsy-bf-simge + .gsy-not { margin-left: 8px; }
.gsf-detay { margin: 0 0 12px; padding: 8px 12px; border: 1px solid var(--altin-soluk); border-radius: 8px; font-size: 13px; }
.gsf-detay-satir { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; font-variant-numeric: tabular-nums; }
.gsf-detay-durum { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--altin-soluk); font-weight: 700; }
.gsf-d-tamam { color: var(--basari); }
.gsf-d-kismi { color: var(--uyari); }
.gsf-d-acik { color: var(--ikinci); }
.gsf-d-yok { color: var(--hata); }
/* Künyedeki gün · yazılır ya da takvimden seçilir */
.gsy-trh { display: inline-flex; align-items: center; gap: 4px; padding-left: 30px; }
.kfr-kagit.gsy .gsy-tarih-kutu {
  width: 7.2em; border: 0; background: transparent; padding: 0; text-align: center;
  font: inherit; font-weight: 700; color: var(--vurgu);
  border-bottom: 1px dashed color-mix(in srgb, var(--altin) 70%, transparent);
}
.kfr-kagit.gsy .gsy-tarih-kutu:focus { outline: 2px solid var(--altin-koyu); outline-offset: 2px; }
.gsy-trh .trh-dugme { position: static; transform: none; width: 26px; height: 26px; color: var(--ikinci); }
.gsy-gun-adi { display: block; font: 600 .5em/1.3 var(--yazi-metin); color: var(--kahve); letter-spacing: .02em; }
.gsy-dosya-ad { display: inline-block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.gsy-pos-hucre { white-space: nowrap; }
.gsy-yok { margin-left: 6px; }
.gsy-serit-sebep { width: 260px; height: 34px; }
.kfr-kagit.gsy [data-hata]:not(:empty) { margin-top: 10px; }
@media (max-width: 900px) {
  .kfr-kagit.gsy { width: auto; max-width: none; min-width: 640px; padding: 6mm 4mm; }
  .sayfa-icerik > [data-govde]:has(> .kfr-kagit.gsy) { overflow-x: auto; justify-content: flex-start; }
}
@media print {
  .gsy-tus, .gsy-degis, .gsy-pop, .trh-dugme { display: none !important; }
  .kfr-kagit.gsy .gsy-krem, .kfr-kagit.gsy .gsy-gir-hucre { background: none; box-shadow: none; }
}
/* Gelir hesabı · uygulamanın seçicisi krem hücrenin içinde (2026.755) */
.kfr-kagit.gsy .gsy-aranan { display: block; width: 100%; }
.kfr-kagit.gsy .gsy-aranan .sec-kutu {
  width: 100%; height: 33px; min-height: 0; border: 0; border-radius: 0; background: transparent;
  box-shadow: none; font: inherit; font-weight: 600; color: var(--metin); text-align: center;
  padding: 0 28px 0 9px; text-overflow: ellipsis;
}
.kfr-kagit.gsy .gsy-aranan .sec-kutu:focus { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }
.kfr-kagit.gsy .gsy-aranan .sec-ok { right: 6px; color: var(--ikinci); }
.kfr-kagit.gsy .gsy-aranan .sec-liste { text-align: left; font-weight: 400; }
/* Adı kısalmayan satır (Nakit Masraf) · yer daralırsa not kısalır */
.kfr-kagit.gsy .gsy-ad-tam .gsy-ad-metin { flex: none; }
.kfr-kagit.gsy .gsy-ad-tam .gsy-not { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
/* Künyede firmanın logosu sol üstte · dosya yükle yazı gibi (2026.756) */
.kfr-kagit.gsy .kfr-kunye .kfr-sol { padding: 8px 9px 7px; vertical-align: middle; }
.kfr-kagit.gsy .gsy-logo { display: block; width: 104px; height: auto; margin: 0 auto 4px; }
.gsy-gelir-adi { display: block; margin-top: 4px; font: 700 .86em/1.2 var(--yazi-baslik); color: var(--metin); letter-spacing: .01em; }
.gsy-gelir-adi.gsy-gelir-yok { color: var(--ikinci); font-weight: 500; }
.gsy-degis.gsy-yukle { margin-left: 0; font-size: .9em; }
@media print { .gsy-degis.gsy-yukle { display: none !important; } }
/* Gün sonu · terminal numaraları penceresi (2026.760) */
.gsy-terminal-not { font-size: 13px; color: var(--ikinci); margin: 0 0 12px; }
.gsy-terminal-liste { display: grid; gap: 8px; }
.gsy-terminal-satir { display: grid; grid-template-columns: 1fr 1.3fr 0.9fr; gap: 10px; align-items: center; }
.gsy-terminal-satir span { font-weight: 600; }
.gsy-terminal-satir small { display: block; font-weight: 400; color: var(--ikinci); font-size: 11.5px; }
.gsy-terminal-dip { display: flex; justify-content: flex-end; margin-top: 14px; }
/* Gün sonu · muhasebe kaydından önceki eksikler (2026.763) */
.rs-tus.gsy-eksik-tus { color: var(--vurgu); border-color: color-mix(in srgb, var(--vurgu) 45%, transparent); font-weight: 700; }
.gsy-eksik-liste { margin: 0; padding-left: 20px; display: grid; gap: 8px; font-size: 13.5px; line-height: 1.4; }
.gsy-eksik-liste li::marker { color: var(--vurgu); font-weight: 700; }
/* Gün sonu · satır satır fark açıklaması (2026.769) */
.gsy-fark-tik { cursor: pointer; }
.gsy-fark-tik.gsy-aciklamasiz { text-decoration: underline dotted; text-decoration-color: var(--vurgu); text-underline-offset: 3px; }
.gsy-kalem { color: var(--basari); font-size: .9em; }
.kfr-kagit.gsy .gsy-sebep td.gsy-sebep-satir { text-align: left; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 0; }
@media (hover: hover) { .kfr-kagit.gsy .gsy-sebep td.gsy-sebep-satir:hover { background: color-mix(in srgb, var(--altin) 10%, var(--yuzey)); } }
.gsy-sebep-ad { font-weight: 700; color: var(--kahve); }
.gsy-sebep-yazi { color: var(--metin); }
.gsy-sebep-bekliyor { color: var(--vurgu); font-weight: 600; }
.kfr-kagit.gsy .gsy-sebep td.gsy-sebep-bos { color: var(--ikinci); text-align: left; }
.kfr-kagit.gsy .gsy-sebep .kfr-etiket { vertical-align: top; padding-top: 10px; }
.dpg-menu.gsy-aciklama-pop { width: 340px; }
.gsy-terminal-pencere .pencere { width: min(720px, calc(100vw - 32px)); }
.gsy-aciklama-pop .alan-kutu { width: 100%; height: 36px; }
.kfr-kagit.gsy .gsy-sebep { table-layout: fixed; }
/* Terminal numaraları · hesap başına kart (2026.781) */
.gsy-terminal-liste { gap: 10px; }
.gsy-tr-kart { border: 1px solid color-mix(in srgb, var(--altin) 40%, transparent); border-radius: 12px; padding: 12px 14px; background: var(--yuzey); }
.gsy-tr-bas { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.gsy-tr-bas b { font: 700 15px/1.25 var(--yazi-baslik); color: var(--metin); }
.gsy-tr-bas span { font-size: 12px; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.gsy-tr-alanlar { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; }
.gsy-tr-alanlar.gsy-tr-tek { grid-template-columns: 1fr; }
.gsy-tr-alan { display: grid; gap: 4px; }
.gsy-tr-alan > span { font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--kahve); }
.gsy-tr-alan .alan-kutu { height: 38px; width: 100%; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .gsy-tr-alanlar { grid-template-columns: 1fr; } }

/* ---------- Yarı Mamul Reçeteleri (2026.782 · göç 204) ----------
   Gün Sonu kâğıdının dili (kfr-kagit gsy): künye, malzeme tablosu,
   toplam ve 1 kg / adet maliyeti. Hesaplanan hücreler yerinde tazelenir. */
.kfr-kagit.rc-kagit { width: 255mm; max-width: 100%; }
.kfr-kagit.gsy .rc-veri, .kfr-kagit.gsy .rc-liste { table-layout: fixed; margin-top: 10px; }
.kfr-kagit.gsy .rc-veri td, .kfr-kagit.gsy .rc-liste td { height: 36px; padding-top: 0; padding-bottom: 0; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kfr-kagit.gsy .rc-veri tr.kfr-obek td, .kfr-kagit.gsy .rc-liste tr.kfr-obek td { white-space: normal; font-size: 10.5px; letter-spacing: .02em; line-height: 1.25; padding-top: 6px; padding-bottom: 6px; }
.rc-veri .rc-no, .rc-liste .rc-no { width: 34px; text-align: center; color: var(--ikinci); }
.rc-veri .rc-ad, .rc-veri .kfr-ad { width: 24%; text-align: left; }
.rc-veri .kfr-p { width: 11%; text-align: right; }
.rc-veri .rc-bir { width: 40px; color: var(--ikinci); font-size: 12px; }
.rc-liste .kfr-ad { width: 30%; text-align: left; }
.rc-liste td:nth-child(3), .rc-liste td:nth-child(4) { width: 18%; text-align: left; }
.rc-liste .kfr-p { text-align: right; }
.rc-urun { font-weight: 600; }
.rc-soluk { color: var(--ikinci); }
.rc-kagit small { color: var(--ikinci); }
.rc-fsf { font-weight: 600; color: var(--vurgu); background: color-mix(in srgb, var(--altin) 10%, transparent); }
.rc-formul { text-align: right !important; color: var(--ikinci); font-size: 12px !important; }
.kfr-kagit.gsy .rc-veri tr.kfr-dip td { font-size: 14px; }
.rc-eksik { color: var(--vurgu); font-size: 12px; }
.rc-uyari { display: inline-grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; background: var(--vurgu); color: #fff; font-size: 11px; font-weight: 700; }
.rc-dip-not { margin: 10px 2px 0; }
.rc-veri td.rc-ad { position: relative; padding-right: 26px; }
.rc-sil { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; border: 0; border-radius: 50%; background: none; color: var(--ikinci); font-size: 16px; line-height: 1; cursor: pointer; opacity: 0; }
.rc-veri tr:hover .rc-sil, .rc-sil:focus-visible { opacity: 1; }
.rc-sil:hover { background: color-mix(in srgb, var(--vurgu) 12%, transparent); color: var(--vurgu); }
@media (hover: none) { .rc-sil { opacity: 1; } }
.rc-gir-hucre { position: relative; }
.rc-gir { width: 100%; border: 0; background: transparent; font: inherit; text-align: right; color: inherit; padding: 0; outline: none; }
.rc-gir:focus { background: color-mix(in srgb, var(--altin) 14%, transparent); border-radius: 4px; }
.rc-fire { padding-left: 14px; }
.rc-yuzde { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--ikinci); font-size: 12px; }
.rc-gram { display: block; margin-left: auto; border: 0; background: none; padding: 0; font: inherit; font-size: 10.5px; color: var(--ikinci); text-decoration: underline; cursor: pointer; line-height: 1.15; white-space: normal; text-align: right; }
.kfr-kagit.gsy .rc-veri tr:has(.rc-gram) td { height: 46px; }
.kfr-kagit.gsy .rc-veri td:has(.rc-gram) { white-space: normal; }
.rc-giris { text-transform: none !important; }
.rc-secim-hucre .sec { width: 100%; }
.rc-secim-hucre .sec-kutu { border: 0; background: transparent; text-align: center; font-weight: 600; box-shadow: none; }
.rc-birimler { display: inline-flex; gap: 6px; }
.rc-cip { display: inline-block; padding: 2px 12px; border: 1px solid var(--altin-soluk); border-radius: 999px; font: inherit; font-size: 12px; font-weight: 600; color: var(--metin); background: var(--yuzey); cursor: pointer; }
.rc-cip[aria-pressed="true"] { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.rc-cikan-hucre { white-space: nowrap; }
.rc-cikan { width: 90px !important; display: inline-block; border-bottom: 1px dashed var(--altin) !important; }
.rc-cikan-birim { margin: 0 8px 0 4px; font-weight: 600; }
.kfr-kagit.gsy .rc-veri tr.rc-yeni td { height: auto; overflow: visible; white-space: normal; padding-top: 6px; padding-bottom: 6px; }
.rc-ara { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rc-ara-kutu { flex: 1 1 260px; height: 36px; }
/* Malzeme grupları (2026.791) · önce gruplar, gruba basınca ürünleri. */
.rc-grup-satir { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--ayirici); background: none; padding: 10px 12px; font: inherit; color: inherit; cursor: pointer; }
.rc-grup-satir:last-child { border-bottom: 0; }
.rc-grup-satir b { flex: 1; font-weight: 600; }
.rc-grup-satir span { font-size: 12px; color: var(--ikinci); }
.rc-grup-satir i { font-style: normal; color: var(--ikinci); font-size: 18px; line-height: 1; }
.rc-grup-satir:hover, .rc-grup-satir:focus-visible { background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); border-radius: 8px; }
.rc-grup-recete b { color: var(--vurgu); }
.rc-grup-geri { display: flex; align-items: baseline; gap: 10px; width: 100%; border: 0; border-bottom: 1px solid var(--ayirici); background: none; padding: 8px 10px 10px; margin-bottom: 4px; font: inherit; font-size: 12.5px; color: var(--ikinci); cursor: pointer; text-align: left; }
.rc-grup-geri b { color: var(--metin); font-size: 14px; }
.rc-liste-kutu { flex-basis: 100%; max-width: 640px; border: 1px solid color-mix(in srgb, var(--altin) 45%, transparent); border-radius: 12px; background: var(--yuzey); box-shadow: 0 10px 28px rgba(40,25,10,.16); padding: 6px; }
[data-rc-sonuc] { max-height: 300px; overflow-y: auto; }
.rc-sec { display: grid; grid-template-columns: 1fr auto; width: 100%; text-align: left; border: 0; background: none; padding: 7px 10px; border-radius: 8px; font: inherit; color: inherit; cursor: pointer; }
.rc-sec b { font-weight: 600; }
.rc-sec span { font-size: 11.5px; color: var(--ikinci); grid-column: 1; }
.rc-sec em { font-style: normal; grid-row: 1 / 3; grid-column: 2; align-self: center; color: var(--metin); font-weight: 600; }
.rc-sec:hover, .rc-sec:focus-visible { background: color-mix(in srgb, var(--altin) 16%, var(--yuzey)); }
.rc-sec:disabled { opacity: .5; cursor: default; background: none; }
.rc-sonuc-bos { padding: 8px 10px; margin: 0; }
.rc-liste-satir { cursor: pointer; }
.rc-liste-satir:hover td, .rc-liste-satir:focus-visible td { background: color-mix(in srgb, var(--altin) 10%, transparent); }
.rc-bos { display: grid; justify-items: center; gap: 10px; text-align: center; padding: 30px 20px; }
.rc-bos-baslik { font-family: "Playfair Display", serif; font-size: 20px; margin: 0; }
.rc-bos .gsy-not { max-width: 460px; }
.rc-gram-kutu { display: inline-flex; align-items: center; gap: 8px; }
.rc-gram-kutu .alan-kutu { width: 140px; }
.rc-gram-liste { display: grid; gap: 4px; }
.rc-gram-satir { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--ayirici); border-radius: 10px; background: var(--yuzey); font: inherit; color: inherit; cursor: pointer; text-align: left; }
.rc-gram-satir span { color: var(--ikinci); }
@media (max-width: 900px) {
  .kfr-kagit.rc-kagit { overflow-x: auto; }
  .kfr-kagit.gsy .rc-veri { min-width: 820px; }
}
/* Birimin içeriği (2026.783) · fiyat hücresine basınca "1 palet içinde ne var". */
.rc-fiyat-dugme { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.rc-fiyat-dugme:hover { color: var(--vurgu); text-decoration: underline dotted; }
.rc-icerik { display: grid; gap: 12px; }
.rc-icerik .rc-gram-kutu { flex-wrap: wrap; }
.rc-icerik-sonuc { margin: 14px 0 4px; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); font-size: 14px; }
.rc-goc-uyari { max-width: 255mm; margin: 0 auto 14px; }
/* Zam işareti ve maliyet geçmişi (2026.794 · göç 209). */
.rc-yon { display: inline-block; margin-right: 4px; font-size: 10px; vertical-align: 1px; cursor: help; }
.rc-yon-artti { color: var(--hata); }
.rc-yon-azaldi { color: var(--basari); }
.rc-gecmis { margin-top: 14px; overflow-x: auto; }
.kfr-kagit.gsy .rc-gecmis-tablo { table-layout: fixed; width: 100%; }
.kfr-kagit.gsy .rc-gecmis-tablo td { text-align: center; white-space: nowrap; font-size: 11.5px; padding: 6px 2px; }
.kfr-kagit.gsy .rc-gecmis-tablo tr.kfr-obek td { font-size: 10px; letter-spacing: .02em; }
.kfr-kagit.gsy .rc-gecmis-tablo td.rc-gecmis-ad { width: 88px; font-weight: 700; line-height: 1.2; }
.rc-gecmis-ad small { display: block; font-weight: 400; color: var(--ikinci); letter-spacing: 0; margin-top: 2px; }
.kfr-kagit.gsy .rc-gecmis-tablo td.rc-gecmis-bugun { font-weight: 700; color: var(--vurgu); }
/* Reçete sürümleri (2026.795 · göç 210). */
.rc-v { display: inline-grid; place-items: center; min-width: 19px; height: 19px; padding: 0 3px; margin-left: 5px; border-radius: 999px; background: var(--vurgu); color: #fff; font-family: Inter, sans-serif; font-size: 9px; font-weight: 700; line-height: 1; letter-spacing: 0; vertical-align: 2px; box-shadow: 0 1px 2px rgba(60,20,20,.25); }
.gsy-gelir-adi .rc-v { min-width: 22px; height: 22px; font-size: 10px; vertical-align: 4px; }
.rc-surumler { display: block; margin-top: 6px; font-size: 11px; color: var(--ikinci); }
.rc-surumler .gsy-degis { font-size: 11px; }
.rc-arsiv-rozet { display: inline-block; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--altin-soluk); color: var(--ikinci); font-size: 11px; font-weight: 600; }
.rc-arsiv-satir td { color: var(--ikinci); }
.rc-salt input, .rc-salt .sec-kutu { pointer-events: none; }
.rc-salt .rc-sil { display: none; }
/* Reçeteler tek sayfa (2026.797) · grup bandı ve "Yeni reçete" tür seçimi. */
.kfr-kagit.gsy .rc-liste tr.rc-grup-bant td { height: auto; padding: 12px 10px 6px; background: color-mix(in srgb, var(--altin) 10%, transparent); border-left: 0; border-right: 0; }
.rc-grup-bant b { font-family: "Playfair Display", serif; font-size: 14px; color: var(--vurgu); }
.rc-grup-bant span { margin-left: 10px; font-size: 11px; color: var(--ikinci); }
.rc-liste .kfr-ad { width: 34%; }
.rc-tur-sec { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 6px; }
.rc-tur-kart { display: grid; justify-items: center; gap: 6px; padding: 18px 12px; border: 1px solid var(--altin-soluk); border-radius: 14px; background: var(--yuzey); font: inherit; color: inherit; cursor: pointer; text-align: center; }
.rc-tur-kart b { font-family: "Playfair Display", serif; font-size: 17px; }
.rc-tur-kart span { font-size: 12px; color: var(--ikinci); }
.rc-tur-kart:hover, .rc-tur-kart:focus-visible { border-color: var(--vurgu); background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); }
@media (max-width: 560px) { .rc-tur-sec { grid-template-columns: 1fr; } }
/* Türe göre listele · arama panelinde (2026.798). */
.dp-ara-turler { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--ayirici); }
.dp-ara-turler-bas { display: flex; align-items: baseline; gap: 8px; margin: 0 2px 8px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.dp-ara-turler-bas small { font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ikinci); }
.dp-ara-tur-izgara { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.dp-ara-tur { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 10px 12px; text-align: left; border: 1px solid var(--altin-soluk); border-radius: 12px; background: linear-gradient(180deg, var(--yuzey), color-mix(in srgb, var(--altin) 6%, var(--yuzey))); font: inherit; color: inherit; cursor: pointer; transition: border-color .12s, transform .12s, box-shadow .12s; }
.dp-ara-tur:hover, .dp-ara-tur:focus-visible { border-color: var(--altin); transform: translateY(-1px); box-shadow: 0 6px 14px rgba(58, 42, 29, .12); }
.dp-ara-tur b { font-size: 13px; font-weight: 600; line-height: 1.2; }
.dp-ara-tur-simge { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: color-mix(in srgb, var(--altin) 16%, var(--yuzey)); }
.dp-ara-tur-kod { position: absolute; top: 6px; right: 8px; font-size: 10px; font-weight: 700; color: var(--ikinci); opacity: .8; }
.dp-ara-tur[aria-current="page"] { border-color: var(--vurgu); box-shadow: inset 0 0 0 1px var(--vurgu); }
.dp-ara-tur[aria-current="page"] b { color: var(--vurgu); }

/* ---------- Şube ve Franchise Yönetimi (2026.800 · göç 211) ---------- */
.fr-alt { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin: 0 0 20px; }
.fr-alt-kart { display: grid; justify-items: center; gap: 4px; padding: 14px 8px; border: 1px solid var(--altin-soluk); border-radius: 14px; background: var(--yuzey); font: inherit; color: inherit; cursor: pointer; text-align: center; transition: border-color .12s, transform .12s; }
.fr-alt-kart b { font-size: 13.5px; font-weight: 600; }
.fr-alt-kart span { font-size: 11.5px; color: var(--ikinci); }
.fr-alt-kart:hover, .fr-alt-kart:focus-visible { border-color: var(--altin); transform: translateY(-1px); }
.fr-alt-yakinda { opacity: .6; }
.fr-bas { margin: 8px 2px 10px; font-family: "Playfair Display", serif; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.fr-bas small { font-family: Inter, sans-serif; font-size: 11.5px; letter-spacing: 0; text-transform: none; color: var(--ikinci); }
.fr-kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-bottom: 22px; }
.fr-kart { display: block; width: 100%; text-align: left; padding: 16px 18px; border: 1px solid var(--altin-soluk); border-radius: 16px; background: var(--yuzey); font: inherit; color: inherit; cursor: pointer; box-shadow: 0 4px 14px rgba(58, 42, 29, .07); transition: border-color .12s, box-shadow .12s; }
.fr-kart:hover, .fr-kart:focus-visible { border-color: var(--altin); box-shadow: 0 8px 20px rgba(58, 42, 29, .12); }
.fr-kart-sube { cursor: default; }
.fr-kart-sube:hover { border-color: var(--altin-soluk); box-shadow: 0 4px 14px rgba(58, 42, 29, .07); }
.fr-kart-kapali { opacity: .6; }
.fr-kart h3 { margin: 0; font-family: "Playfair Display", serif; font-size: 19px; }
.fr-tur { display: inline-block; margin-bottom: 8px; padding: 2px 8px; border-radius: 999px; background: color-mix(in srgb, var(--altin) 18%, var(--yuzey)); color: var(--ikinci); font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.fr-tur-sube { background: color-mix(in srgb, var(--vurgu) 12%, var(--yuzey)); color: var(--vurgu); }
.fr-hesaplar { display: block; margin: 6px 0 12px; font-size: 12px; line-height: 1.6; color: var(--ikinci); }
.fr-hesaplar b { color: var(--metin); font-weight: 600; }
.fr-rakam { display: flex; justify-content: space-between; gap: 12px; padding-top: 10px; border-top: 1px solid var(--ayirici); font-size: 12px; color: var(--ikinci); }
.fr-rakam strong { display: block; margin-top: 2px; font-size: 17px; color: var(--metin); }
.fr-rakam .fr-sag { text-align: right; }
.fr-eksi { color: var(--hata) !important; }
.fr-bos { padding: 28px; text-align: center; border: 1px dashed var(--altin-soluk); border-radius: 16px; background: var(--yuzey); margin-bottom: 22px; }
.fr-onizleme { margin: 10px 0; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); font-size: 13px; line-height: 1.6; }
@media (max-width: 900px) { .fr-alt { grid-template-columns: repeat(2, 1fr); } }

/* Satış listesi */
.kfr-kagit.sl-kagit { width: auto; max-width: 1180px; }
.sl-liste .kfr-ad { width: 30%; }
.sl-ozel { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--altin); color: var(--ikinci); font-size: 10.5px; font-weight: 600; vertical-align: 1px; }
.sl-kdv { color: var(--ikinci); }
.kfr-kagit.gsy .sl-liste tr.sl-zam td { height: auto; padding: 7px 10px; white-space: normal; font-size: 12px; background: color-mix(in srgb, var(--hata) 7%, var(--yuzey)); }
.sl-zam b { color: var(--hata); }
.sl-zam-ozet { color: var(--hata); font-weight: 600; }
.sl-ekle-pencere .alan-kutu { width: 100%; }
.sl-ekle-liste { max-width: none; margin-top: 10px; max-height: 420px; overflow-y: auto; box-shadow: none; }
.sl-kartlar { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 4px 0 14px; }
.sl-kart { padding: 10px 12px; border: 1px solid var(--ayirici); border-radius: 12px; font-size: 11.5px; color: var(--ikinci); }
.sl-kart span { display: block; }
.sl-kart strong { display: block; margin: 2px 0; font-size: 18px; color: var(--metin); }
.sl-kart-vurgu { border-color: var(--vurgu); }
.sl-kart-vurgu strong { color: var(--vurgu); }
.sl-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; }
.sl-satir .alan-etiket { min-width: 150px; margin: 0; }
.sl-kutu { width: 130px !important; }
.sl-bas { margin: 16px 0 6px; font-family: "Playfair Display", serif; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.sl-gecmis { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.sl-gecmis td { padding: 6px 8px; border: 1px solid var(--ayirici); text-align: right; }
.sl-gecmis td:first-child { text-align: left; }
.sl-gecmis tr:first-child td { background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); font-size: 11px; font-weight: 700; }
.sl-ozel-tablo .sl-kutu { width: 120px !important; height: 34px; text-align: right; }
.sl-eksi { color: var(--basari); }
.sl-arti { color: var(--hata); }
.kfr-kagit.gsy .sl-liste td.kfr-ad { white-space: normal; line-height: 1.35; padding-top: 6px; padding-bottom: 6px; }

/* ---- Ürün Satışları (2026.801 · göç 212) · us-* ---- */
.us-liste .kfr-ad { width: 34%; }
.us-tutar { font-weight: 700; }
.us-iptal td { color: var(--ikinci); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--ikinci) 50%, transparent); }
.us-iptal .us-rozet { text-decoration: none; }
.us-rozet { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; vertical-align: 1px; }
.us-rozet-iptal { background: color-mix(in srgb, var(--hata) 12%, var(--yuzey)); color: var(--hata); }
.kfr-kagit.gsy.us-kagit { width: 265mm; max-width: 100%; min-width: 0; box-sizing: border-box; padding: 8mm; }
.us-tablo-kutu { overflow-x: auto; }
.us-tablo-kutu .us-tablo { min-width: 820px; }
.kfr-kagit.gsy .us-tablo td.kfr-ad { white-space: normal; line-height: 1.35; min-width: 180px; }
.us-kunye { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.us-kart { display: grid; align-content: start; gap: 3px; min-width: 0; padding: 12px 14px; border: 1px solid var(--altin-soluk); border-radius: 12px; background: var(--yuzey); font: inherit; color: inherit; text-align: left; }
button.us-kart { cursor: pointer; transition: border-color .12s; }
button.us-kart:hover, button.us-kart:focus-visible { border-color: var(--altin); }
.us-etiket { font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--ikinci); }
.us-kart strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
.us-kart strong i { font-style: normal; font-size: 11px; color: var(--ikinci); }
.us-kart small { font-size: 11.5px; color: var(--ikinci); }
.us-trh { display: flex; align-items: center; gap: 4px; }
.us-trh .us-tarih { width: 120px; height: 30px; padding: 0 8px; font-size: 15px; font-weight: 600; }
.us-vade { width: 34px; border: 0; border-bottom: 1px dashed var(--altin); background: transparent; font: inherit; text-align: center; color: var(--metin); }
.kfr-kagit.gsy .us-tablo td { vertical-align: middle; }
.us-tablo .kfr-obek small { font-weight: 500; color: var(--ikinci); }
.us-gir-hucre { position: relative; width: 84px; }
.us-gir { width: 72px; height: 30px; border: 1px solid var(--altin-soluk); border-radius: 8px; background: var(--yuzey); font: inherit; text-align: right; padding: 0 8px; color: inherit; }
.us-gir:focus { outline: none; border-color: var(--vurgu); }
.us-isk { padding-left: 20px; }
.us-yuzde { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); font-size: 12px; color: var(--ikinci); pointer-events: none; }
.us-sil-hucre { width: 26px; text-align: center; }
.kfr-kagit.gsy .us-tablo td.us-sil-hucre { border-left: 0; border-right: 0; padding: 0; }
.us-sil { width: 22px; height: 22px; border: 0; border-radius: 50%; background: none; color: var(--ikinci); font-size: 16px; line-height: 1; cursor: pointer; }
.us-sil:hover { background: color-mix(in srgb, var(--hata) 12%, transparent); color: var(--hata); }
.us-hata { display: block; margin-top: 2px; font-size: 11px; color: var(--hata); }
.us-ekle { margin-left: 0; font-size: 13px; }
.us-ekle-satir td { padding: 10px 9px !important; }
.us-alt { display: grid; grid-template-columns: 1.6fr 1fr; gap: 22px; margin-top: 18px; align-items: start; }
.us-onizleme { padding: 12px 16px; border: 1px dashed var(--altin); border-radius: 12px; font-size: 13px; }
.us-o-bas { margin-bottom: 6px; font: 700 11px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--ikinci); }
.us-o-satir { display: grid; grid-template-columns: 1fr 110px 110px; gap: 8px; padding: 4px 0; }
.us-o-satir b { font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }
.us-o-ara { margin-top: 8px; font-size: 12px; color: var(--ikinci); }
.us-o-hata { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: color-mix(in srgb, var(--hata) 10%, var(--yuzey)); color: var(--hata); font-size: 12px; }
.us-toplam { font-size: 14px; }
.us-t-satir, .us-t-genel, .us-t-kar { display: flex; justify-content: space-between; gap: 12px; padding: 6px 2px; }
.us-t-satir b { font-weight: 500; font-variant-numeric: tabular-nums; }
.us-t-genel { margin-top: 6px; padding-top: 10px; border-top: 2px solid var(--vurgu); font-size: 20px; font-weight: 700; color: var(--vurgu); }
.us-t-kar { font-size: 12px; color: var(--ikinci); }
.us-arti { color: var(--basari); font-weight: 600; }
.us-eksi { color: var(--hata); font-weight: 600; }
.us-sec-liste { max-width: none; max-height: 420px; overflow-y: auto; box-shadow: none; }
.us-detay td:nth-child(n+2) { white-space: nowrap; }
.us-detay-toplam { margin: 12px 0 4px; font-size: 13px; line-height: 1.7; text-align: right; }
.sfa-franchise { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 999px; border: 1px solid var(--altin); color: var(--ikinci); font-size: 10.5px; font-weight: 600; vertical-align: 1px; }
@media (max-width: 900px) {
  .us-kunye { grid-template-columns: 1fr 1fr; }
  .us-alt { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .kfr-kagit.gsy.us-kagit { padding: 12px; }
  .us-kunye { grid-template-columns: 1fr; }
  .us-o-satir { grid-template-columns: 1fr 86px 86px; font-size: 12px; }
}

/* ---- Geçmiş Kayıt Aktarımı (2026.803 · göç 213) · ga-* ---- */
.mz-aktarim { border-color: var(--altin); color: var(--ikinci); background: color-mix(in srgb, var(--altin) 8%, var(--yuzey)); }
.kfr-kagit.gsy.ga-kagit { width: 245mm; max-width: 100%; min-width: 0; box-sizing: border-box; padding: 8mm; }
.ga-anlat h2 { margin: 0 0 6px; font-family: "Playfair Display", serif; font-size: 22px; }
.ga-anlat p { margin: 0; line-height: 1.55; }
.ga-adimlar { margin: 14px 0; padding-left: 22px; line-height: 1.8; }
.kfr-kagit.gsy .ga-ornek { width: 100%; margin: 6px 0; font-size: 12px; }
.kfr-kagit.gsy .ga-ornek td { padding: 5px 8px; }
.kfr-kagit.gsy .ga-ornek tr:first-child td { background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); font-weight: 700; font-size: 10.5px; letter-spacing: .05em; }
.ga-not { display: block; margin: 8px 2px 0 !important; }
.ga-dugmeler { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 18px; }
.ga-kartlar { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.ga-kart { min-width: 0; padding: 10px 14px; border: 1px solid var(--altin-soluk); border-radius: 12px; }
.ga-kart span { display: block; font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--ikinci); }
.ga-kart b { display: block; margin: 3px 0 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 17px; }
.ga-kart small { font-size: 11.5px; color: var(--ikinci); }
.ga-kart-uyari { border-color: var(--hata); }
.ga-kart-uyari b { color: var(--hata); }
.ga-uyari { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--hata) 9%, var(--yuzey)); color: var(--hata); font-size: 12.5px; }
.ga-kirmizi { color: var(--hata); font-weight: 600; }
.ga-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.ga-arac .rc-birimler { flex-wrap: wrap; }
.ga-ara { flex: 1 1 220px; height: 34px; }
.ga-tablo-kutu { overflow-x: auto; }
.ga-tablo-kutu .ga-tablo { min-width: 720px; }
.kfr-kagit.gsy .ga-tablo td.kfr-ad { white-space: normal; line-height: 1.35; width: 32%; }
.ga-kod { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 6px; background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); font-size: 11px; color: var(--ikinci); }
.ga-neden { display: block; margin-top: 1px; font-size: 11px; color: var(--ikinci); }
.ga-secim { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; padding: 4px 10px; border: 1px solid var(--altin-soluk); border-radius: 8px; background: var(--yuzey); font: inherit; font-size: 12.5px; color: inherit; text-align: left; cursor: pointer; }
.ga-secim:hover { border-color: var(--altin); }
.ga-secim span { padding: 0 6px; border-radius: 999px; background: color-mix(in srgb, var(--basari) 14%, var(--yuzey)); color: var(--basari); font-size: 10.5px; font-weight: 700; }
.ga-secim-yok { border-color: var(--hata); color: var(--hata); font-weight: 600; }
.ga-ilerleme { display: grid; justify-items: center; gap: 10px; padding: 30px 10px; text-align: center; }
.ga-cubuk { width: min(420px, 100%); height: 10px; border-radius: 99px; background: var(--altin-soluk); overflow: hidden; }
.ga-cubuk i { display: block; height: 100%; background: var(--vurgu); transition: width .3s; }
.ga-pencere-iki { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ga-pencere .alan-kutu { width: 100%; }
.ga-h-liste { max-width: none; max-height: 260px; margin-top: 8px; overflow-y: auto; box-shadow: none; }
.ga-u-liste { max-height: 170px; }
.ga-h-liste .rc-sec[aria-pressed="true"] { background: color-mix(in srgb, var(--vurgu) 10%, var(--yuzey)); }
@media (max-width: 700px) {
  .ga-kartlar { grid-template-columns: 1fr 1fr; }
  .ga-pencere-iki { grid-template-columns: 1fr; }
  .kfr-kagit.gsy.ga-kagit { padding: 12px; }
}
.ga-bilgi { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--altin) 10%, var(--yuzey)); color: var(--ikinci); font-size: 12.5px; }
.sl-gecmis.ga-hata-tablo td:nth-child(2) { text-align: left; font-size: 12px; }
.sl-gecmis.ga-hata-tablo td:nth-child(3) { white-space: nowrap; }
.ga-hata-ust { margin: 0 0 10px; justify-content: flex-start; }
.ga-secim-atla { color: var(--ikinci); border-style: dashed; text-decoration: line-through; }

/* ---- Düzeltilecek hesaplar (2026.813 · göç 219) · sarı işaret ---- */
.hesap-satir.hesap-duzeltilecek { background: #FFF1B8; box-shadow: inset 4px 0 0 #E0B000; }
.hesap-satir.hesap-duzeltilecek .hesap-ad { font-weight: 600; }
/* Düzeltilecek hesap satırı · Ayarlar listesinin satırı; sarı zeminli,
   solda tiklenecek kutu, sağda deftere giden ad (2026.815). */
.dz-satir { padding: 8px 14px; cursor: default; background: #FFF6CF; }
@media (hover: hover) { .dz-satir:hover { background: #FFEFA8; } }
.dz-kutu { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border: 2px solid #C99A00; border-radius: 10px; background: #fff; cursor: pointer; }
@media (hover: hover) {
  .dz-kutu:hover { background: #E8F5E9; border-color: var(--basari); }
  .dz-kutu:hover::after { content: "✓"; font-size: 18px; font-weight: 700; color: var(--basari); }
}
.dz-kutu:focus-visible, .dz-ad:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.dz-ad { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 4px 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.dz-ad .na-ay-yazi b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.na-ay-kart .na-ay-liste:has(.dz-satir) { max-height: 340px; overflow-y: auto; }
.hesap-satir.hesap-duzeltme-icinde { box-shadow: inset 4px 0 0 #E0B000; }

/* ---------------------------------------------------------------------
   Satış Faturası Aktarımı · yemek kartı faturası (göç 221 · 2026.817)
   Açık/Kapalı yerine "Kontrol et"; sonuç düğmenin yanında durur.
   --------------------------------------------------------------------- */
.sfa-satir-yemek td { background: color-mix(in srgb, var(--altin) 8%, transparent); }
.sfa-yemek { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sfa-yemek-dugme { min-height: 30px; padding: 0 10px; font-size: 12.5px; }
.sfa-yemek-sonuc { padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.sfa-yemek-tamam { background: color-mix(in srgb, var(--basari) 14%, transparent); color: var(--basari); }
.sfa-yemek-fark { background: color-mix(in srgb, var(--hata, #b42318) 12%, transparent); color: var(--hata, #b42318); }
.sfa-yemek-rozet { background: color-mix(in srgb, var(--altin) 22%, transparent); }
.sfa-yk-ozet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.sfa-yk-ozet > div { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--defter-tel-soluk); border-radius: 12px; background: var(--yuzey); min-width: 0; }
.sfa-yk-ozet span { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: color-mix(in srgb, var(--metin) 60%, transparent); }
.sfa-yk-ozet b { font-size: 16px; font-variant-numeric: tabular-nums; }
.sfa-yk-ozet small { font-size: 11.5px; color: color-mix(in srgb, var(--metin) 58%, transparent); }
.sfa-yk-tamam b { color: var(--basari); }
.sfa-yk-fark b { color: var(--hata, #b42318); }
.sfa-yk-liste { max-height: 300px; overflow-y: auto; border: 1px solid var(--defter-tel-soluk); border-radius: 12px; }
.sfa-yk-liste table { width: 100%; }
.sfa-yk-liste .sayi { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .sfa-yk-ozet { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------
   Hareketler · Siteyle karşılaştır (göç 223 · 2026.819)
   --------------------------------------------------------------------- */
.hd-site-alanlar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.hd-site-ozet { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0 4px; }
.hd-site-ozet > div { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--defter-tel-soluk); border-radius: 12px; background: var(--yuzey); min-width: 0; }
.hd-site-ozet span { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: color-mix(in srgb, var(--metin) 60%, transparent); }
.hd-site-ozet b { font-size: 16px; font-variant-numeric: tabular-nums; }
.hd-site-ozet-tamam > div:last-child b { color: var(--basari); }
.hd-site-ozet-fark > div:last-child b { color: var(--hata); }
.hd-site-gecmis { margin-top: 14px; }
.hd-site-bas { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, var(--metin) 60%, transparent); margin-bottom: 6px; }
.hd-site-satir { display: grid; grid-template-columns: 1fr 1fr auto; gap: 8px; padding: 6px 0; border-top: 1px solid var(--defter-tel-soluk); font-size: 13px; font-variant-numeric: tabular-nums; }
.hd-site-tamam { color: var(--basari); font-weight: 700; }
.hd-site-fark { color: var(--hata); font-weight: 700; }
@media (max-width: 560px) { .hd-site-alanlar, .hd-site-ozet { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------
   Satış Faturası Aktarımı · fatura türü (göç 224 · 2026.824)
   Satış · Diğer gelir · İade · Fiyat farkı. Satış dışında Açık/Kapalı
   yerine karşı hesap düğmesi durur.
   --------------------------------------------------------------------- */
.sfa-tablo .sfa-tur { width: 128px; }
.sfa-tur-dugme { max-width: 100%; padding: 4px 8px; border: 1px solid var(--defter-tel-soluk); border-radius: 999px; background: var(--yuzey); color: color-mix(in srgb, var(--metin) 70%, transparent); font: inherit; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.sfa-tur-farkli { border-color: var(--altin); background: color-mix(in srgb, var(--altin) 18%, var(--yuzey)); color: var(--metin); font-weight: 600; }
.sfa-satir-disi td { background: color-mix(in srgb, var(--altin) 7%, transparent); }
.sfa-karsi { max-width: 100%; padding: 5px 10px; border: 1px solid var(--altin); border-radius: 8px; background: var(--yuzey); font: inherit; font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.sfa-karsi-eksik { border-color: var(--hata); color: var(--hata); font-weight: 600; }
.sfa-tur-secenek { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; }
.sfa-tur-kart { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid var(--defter-tel-soluk); border-radius: 12px; background: var(--yuzey); text-align: left; font: inherit; cursor: pointer; }
.sfa-tur-kart b { font-size: 14px; }
.sfa-tur-kart small { font-size: 11.5px; color: color-mix(in srgb, var(--metin) 60%, transparent); }
.sfa-tur-kart[aria-pressed="true"] { border-color: var(--vurgu); box-shadow: inset 0 0 0 1px var(--vurgu); background: color-mix(in srgb, var(--vurgu) 6%, var(--yuzey)); }
.sfa-karsi-secili { margin: 4px 0 8px; font-weight: 600; color: var(--basari); }
.sfa-karsi-liste { max-height: 240px; overflow-y: auto; margin-top: 6px; }
@media (max-width: 560px) { .sfa-tur-secenek { grid-template-columns: 1fr; } }

/* Kontrol sihirbazı · bu adımın faturaları öne çıkar (2026.828 · göç 227). */
.tablo-satir.hd-odak > td { background-image: linear-gradient(rgba(194, 162, 104, .24), rgba(194, 162, 104, .24)); }
.tablo-satir.hd-odak > td:first-child { box-shadow: inset 3px 0 0 var(--altin); }

/* ---- Depo kutusu · kalemin gideceği yerin önünde ----  (2026.829)
   Kullanıcının isteği: "ürünün yanında depo kutusu olsun, o pasif
   edilince giderler açılsın". Belgenin siyah-beyaz dilinde küçük bir
   onay kutusu; kapalıyken soluk durur ve liste 700 giderlerine döner. */
.fa-depo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-right: 6px;
  padding: 0 5px 0 3px;
  border: 1px solid var(--bl-cizgi);
  border-radius: 3px;
  background: #FFFFFF;
  color: #000000;
  font: inherit;
  font-size: 10.5px;
  line-height: 16px;
  vertical-align: middle;
  cursor: pointer;
}
.fa-depo:hover,
.fa-depo:focus-visible { background: #F0F0F0; }
.fa-depo-kutu {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 10px;
  height: 10px;
  border: 1px solid #000000;
  font-size: 9px;
  line-height: 1;
}
.fa-depo-kapali { color: #777777; border-style: dashed; }
.fa-depo-kapali .fa-depo-kutu { border-color: #999999; }
.fa-yer .fa-yer-yazi { max-width: calc(100% - 64px); vertical-align: middle; }

/* ---- İlgili Depo · Karışık ----  (2026.829 · döküm 2026.831de kalktı, üzerine gelince) */
.fa-karisik {
  display: block;
  margin-bottom: 4px;
  font-size: 12px;
  line-height: 1.4;
}
.fa-karisik b { font-weight: 700; }
.fa-karisik { cursor: help; }

/* KALEM TABLOSU EN AZ BEŞ SATIR (2026.831 · kullanıcının bildirimi:
   "ürünler gözükmüyor, 2 satır kalmış"). Tablo kâğıtta kalan payı
   alıyordu; künye uzayınca ya da pencere alçakken iki satıra
   iniyordu. Artık en az ~beş kalem görünür; yer yetmezse tablo değil
   kâğıdın tamamı kayar, Kaydet yine altta sabit durur. */
@media (min-width: 720px) {
  /* Pencere boyuna açılır ki tablo kalan payın tamamını alabilsin. */
  .pencere-panel:has(.fa-kagit-govde) { height: calc(100vh - var(--bosluk) * 8); }
  .pencere-panel .fa-kagit-govde { flex: 1 1 auto; }
  .fa-kagit-govde .fa-kagit-alan { overflow-y: auto; }
  .fa-kagit-govde .fatura-b-kagit { flex: 1 0 auto; overflow: visible; }
  .fa-kagit-govde .fatura-b-tablo-kutu { flex: 1 1 0px; min-height: 300px; }
}

/* ---- Fatura detayı · taşma yok, satırlar eşit boyda ----  (2026.836)
   Kullanıcının bildirimi: "bazı sütunlarda taşma olmuş, TL alta geçmiş
   birim fiyatta · tüm satırlar aynı genişlikte olsun, ilk kez gelenlerle
   fiyat farkı olanların satırı farklı oluyor; satırı geniş olana göre
   ayarla".
   · Miktarın birimi kendi satırına iner ("9,155" / "Kilogram"); sütuna
     sığmayıp yandaki birim fiyatın üstüne taşıyordu.
   · Son alış iki satırdır (tarih · eski fiyat ve fark), satırlar
     kırılmaz; birim fiyat sütunu buna göre genişledi.
   · Kalem satırları en uzun satır (fiyat + iki satır son alış) boyunda
     durur; "ilk kez geliyor" ile "fark var" satırları aynı yükseklikte. */
.fatura-belge .fatura-b-tablo .fatura-b-birim {
  display: block;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.3;
}
.fbl-tablo th:nth-child(4) { width: 124px; }
.fa-son-s {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fa-son-kisa b { white-space: nowrap; }
.fa-kagit-alan .fatura-belge .fatura-b-tablo tbody td { height: 58px; }
/* Büyük tutarlar ("167.483,76 TL", elektrik faturası) sığsın. */
.fbl-tablo th:nth-child(6) { width: 86px; }
.fbl-tablo th:nth-child(7) { width: 112px; }
.fatura-belge .fatura-b-tablo td:nth-child(6),
.fatura-belge .fatura-b-tablo td:nth-child(7) { white-space: nowrap; }

/* TEK KALEMLİ FATURA (2026.837 · kullanıcının bildirimi: "tek ürün
   olanlar da kötü durmuş"). Kalem kutusu kâğıtta kalan payı alıyor ve
   çerçeve kutuya çiziliyordu: tek satırın altında boş, çerçeveli koca
   bir alan kalıyordu. Çerçeve artık tablonun kendisinde; satırlar
   bitince altı düz kâğıttır, gerçek faturadaki gibi. */
.fa-kagit-alan .fatura-belge .fatura-b-tablo-kutu { border: 0; }
.fa-kagit-alan .fatura-belge .fatura-b-tablo { border: 1px solid var(--bl-cizgi); }

/* ---- Komisyon kontrolü ----  (2026.838 · göç 229) */
.fa-kom-sonuc { display: block; font-size: 12px; font-weight: 700; }
.fa-kom-tutuyor { color: var(--metin-basari); }
.fa-kom-tutmadi { color: var(--metin-uyari); }
.fa-kom-detay { display: block; font-size: 11px; font-weight: 400; color: #333333; line-height: 1.35; }
/* Hesap Defteri · komisyon faturası tutmayan satır sarı. */
.tablo-satir.hd-kom-uyari > td { background-image: linear-gradient(rgba(242, 201, 76, .30), rgba(242, 201, 76, .30)); }
.fa-kom-dugme { margin-top: 4px; margin-right: 6px; }

/* Geçmiş Kayıtlar · satırın yanında "Kontrol et" (2026.849). */
.ars-satir-kap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: stretch;
  gap: var(--bosluk);
  margin-top: var(--bosluk);
}
.ars-satir-kap .ars-satir { margin-top: 0; }
.ars-kontrol { align-self: center; white-space: nowrap; }

/* ---------- Elle Kayıt · defter usulü (2026.852) ----------
   Kullanıcının isteği: "muhasebe defteri gibi 2-4-6 kayıt seçeneği
   olsun, borç hesabı alacak hesabı seçilsin". Üç satır kartı hep
   çizilir; seçilmeyenler soluk durur, form boyu değişmez. */
.elk-defter .elk-tur { flex-direction: column; gap: 2px; line-height: 1.15; }
.elk-tur-not { font-size: var(--kucuk-boy); opacity: .7; font-weight: 400; }
.elk-cift {
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kutu);
  padding: var(--bosluk) var(--bosluk) 0;
  margin-bottom: var(--bosluk);
  background: var(--yuzey);
  transition: opacity var(--gecis);
}
.elk-cift-kapali { opacity: .5; background: var(--oyuk); }
.elk-cift-baslik {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-weight: 600;
}
.elk-cift-kapali .elk-cift-baslik { font-weight: 400; }
.elk-cift-no {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--vurgu);
  color: #fff;
  font-size: var(--kucuk-boy);
}
.elk-cift-kapali .elk-cift-no { background: var(--gri-koyu); }
.elk-ozet .elk-ozet-bos td { border-bottom-color: transparent; color: var(--metin); opacity: .6; }
.elk-ozet { width: 100%; border-collapse: collapse; font-size: var(--kucuk-boy); }
.elk-ozet th,
.elk-ozet td { padding: 4px 6px; border-bottom: 1px solid var(--ayirici); text-align: left; }
.elk-ozet th:nth-child(n+2),
.elk-ozet td:nth-child(n+2) { text-align: right; white-space: nowrap; width: 120px; }
.elk-ozet tfoot td { font-weight: 600; border-bottom: 0; }

/* Banka Aktarımı · programdaki bakiye satırı (2026.854). Tablonun ilk
   satırı; Güncel Bakiye sütunu buradan yürür. Toplam satırının
   aynasıdır: kalın, altında çizgi. */
.ba-tablo .ba-devir td {
  height: 44px;
  font-family: var(--yazi-baslik);
  font-size: var(--govde-boy);
  font-weight: 700;
  background: var(--oyuk);
  border-bottom: 2px solid var(--kenar);
}

/* Kredi Kartı Aktarımı · programdaki kart borcu ve dönem karşılaştırması
   (2026.855). Borç bloğun tepesinde, karşılaştırma dibinde: Banka
   Aktarımı'ndaki "Programdaki bakiye" satırı ile kapanış denetiminin
   kart karşılığı. */
.kk-borc {
  display: flex;
  flex-wrap: wrap;
  gap: 6px var(--bosluk);
  padding: 8px var(--bosluk);
  background: var(--oyuk);
  border-bottom: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
}
.kk-borc b { font-family: var(--yazi-baslik); font-size: var(--govde-boy); }
.kk-donem {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px var(--bosluk);
  border-top: 1px solid var(--ayirici);
  font-size: var(--kucuk-boy);
  color: var(--metin-basari);
}
.kk-donem svg { flex: none; }
.kk-donem-uyari { color: var(--metin-uyari); background: var(--uyari); }

/* Banka Aktarımı · platform ödeme kontrolü (2026.856). "Nereye gitti"
   hücresi platform ödemesinde kontrolün sonucunu gösterir; basınca
   hesap tablosu açılır. */
.ba-hesap.ba-pk-iyi { background: var(--yuzey); border-color: var(--basari); color: var(--metin-basari); cursor: pointer; }
.ba-hesap.ba-pk-uyari { background: var(--yuzey); border: 2px solid var(--uyari-cizgi); color: var(--metin-uyari); cursor: pointer; }
.ba-pk { font-size: var(--kucuk-boy); }
.ba-pk-bekle { opacity: .6; }
span.ba-pk-uyari { color: var(--metin-uyari); }

/* Nakit akış · telefonda tek hesap (2026.885) */
.na-mobil-hesaplar { display: flex; gap: 6px; overflow-x: auto; padding: 8px 2px 10px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.na-mobil-hesaplar::-webkit-scrollbar { display: none; }
.na-mobil-hesap { flex: none; height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--altin-soluk); background: var(--kart, #fff); color: var(--metin); font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.na-mobil-hesap[aria-pressed="true"] { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.na-dikey-tek .na-tablo.na-dikey { width: 100%; min-width: 0; table-layout: fixed; }
.na-dikey-tek .na-dikey th.na-d-kose, .na-dikey-tek .na-dikey th.na-d-tarih { width: 30%; min-width: 0; }
.na-dikey-tek .na-dikey td.na-h { white-space: nowrap; }
.na-dikey-tek .na-d-alt { display: none; }

/* Nakit akış · tepedeki kuşak kartı yok (2026.886 · kullanıcının isteği:
   "tepedeki kart olmasın, tablonun çoğunu kapamış"). Sayfanın adı zaten
   üst çubukta yazıyor; şerit (Yatay · Dikey · Ödeme modu · Ayarlar)
   kendi kartı olarak en üste çıkar ve üst köşeleri yuvarlanır. */
.sayfa:has(.na-kart-serbest) > .sayfa-kusak { display: none; }
.sayfa:has(.na-kart-serbest) > .sayfa-kusak-serit {
  border-top: var(--kart-cerceve);
  border-radius: var(--kose-kart) var(--kose-kart) 0 0;
}
.na-mobil-toplam { margin: -4px 4px 8px; font-size: 12px; color: var(--ikinci); }

/* ---- FATURA AKTARIMI · ZAM RAPORU ve FİYAT ONAYI BEKLEYENLER TUŞLARI ----
   (2026.891 · kullanıcının isteği: "zam raporu da klavye düğmesi gibi
   olsun · fiyat onayı bekleyenler diye düğme yap"). Geçmiş Kayıtlar'ın
   gri tuşu; açıklama satırında notların sağında durur. Notlar kutusu
   taşanı kırptığı için tuşun gölgesine alttan pay bırakılır. */
.fatura-oz-notlar > .fa-tus {
  flex: none;
  height: 30px;
  margin-bottom: 3px;
  overflow: hidden;
}

.fa-onay-bekliyor { color: var(--uyari); font-weight: 600; }

/* Fiyat onayı bekleyenler penceresi */
.fob-not { margin: 0 0 12px; color: var(--ikinci); font-size: var(--kucuk-boy); }
.fob-kutu { display: grid; gap: 10px; }
.fob-satir {
  border: 1px solid var(--ayirici);
  border-radius: var(--kose-kart);
  padding: 10px 12px;
  background: var(--yuzey);
}
.fob-ust { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.fob-ust b { display: block; }
.fob-ust small { display: block; color: var(--ikinci); font-size: var(--kucuk-boy); margin-top: 2px; }
.fob-liste { list-style: none; margin: 8px 0 0; padding: 8px 0 0; border-top: 1px dashed var(--ayirici); display: grid; gap: 4px; }
.fob-liste li { display: flex; justify-content: space-between; gap: 10px; font-size: var(--kucuk-boy); }
.fob-liste li span { min-width: 0; overflow-wrap: anywhere; }
.fob-liste li b { white-space: nowrap; }
.fob-art { color: var(--hata); }
.fob-dus { color: var(--basari); }
.fob-yeni { color: var(--ikinci); }

/* ---- BANKA · KREDİ KARTI · GEÇMİŞ KAYITLAR (2026.892) ----
   Seçim ekranında (dosya yokken şerit çizilmez) düğme başlığın hemen
   altında, ortada durur; dosya gelince şeridin alt satırına geçer. */
.ba-arsiv-yer {
  display: flex;
  justify-content: center;
  margin: calc(var(--bosluk) * .5) 0 calc(var(--bosluk) * 1.5);
}
.fob-baslik { margin: 18px 0 4px; font-size: var(--govde-boy, 15px); color: var(--vurgu, #8F2D22); }

/* ---- KREDİ KARTI · DÖVİZLİ HARCAMA (2026.897) ----
   "108,00 USD" yazar, altında TL karşılığı kutusu; boşken turuncu. */
.kk-doviz { white-space: nowrap; }
.kk-doviz-tutar { display: block; font-size: var(--kucuk-boy); color: var(--ikinci); }
.kk-tl { width: 112px; margin-top: 4px; text-align: right; }
.kk-tl.kk-tl-eksik { border-color: var(--uyari-cizgi); background: #FFF7E6; }

/* ---- KASA FARK RAPORU · AYIN KASA AÇIKLAMALARI (2026.900) ----
   Kâğıt solda, sağdaki boşlukta ayın tablosu. Dar ekranda alt alta.
   Yazdırırken tablo çıkmaz (kâğıt yalnız). */
.kfr-duzen {
  display: grid;
  grid-template-columns: minmax(0, 190mm) minmax(0, 1fr);
  gap: calc(var(--bosluk) * 1.5);
  align-items: start;
}
.kfr-duzen > .kfr-kagit { margin: 0; }
@media (max-width: 1280px) {
  .kfr-duzen { grid-template-columns: minmax(0, 1fr); }
  .kfr-duzen > .kfr-kagit { margin: 0 auto; }
}
@media print { .kfr-ay { display: none !important; } .kfr-duzen { display: block; } }

.kfr-ay {
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kart);
  box-shadow: var(--kart-golge);
  padding: 12px 12px 14px;
  min-width: 0;
}
.kfr-ay-baslik { margin: 0; font-family: 'Playfair Display', Georgia, serif; color: var(--vurgu); font-size: 17px; }
.kfr-ay-ozet { margin: 2px 0 10px; font-size: var(--kucuk-boy); color: var(--ikinci); }
.kfr-ay-bos { margin: 8px 0; font-size: var(--kucuk-boy); color: var(--ikinci); }
.kfr-ay-kutu { overflow-x: auto; }
.kfr-ay-tablo { width: 100%; border-collapse: collapse; font-size: 12.5px; table-layout: fixed; }
.kfr-c-tarih { width: 46px; } .kfr-c-sube { width: 84px; } .kfr-c-fark { width: 82px; }
.kfr-c-kap { width: 78px; } .kfr-c-puan { width: 40px; } .kfr-c-durum { width: 28px; }
/* Tek satır (2026.902) · tamamı açıklama penceresinde. */
.kfr-ay-kisa, .kfr-ay-tek { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kfr-ay-tek { overflow-wrap: normal; }
.kfr-ay-tablo th {
  text-align: left; font-size: 10.5px; letter-spacing: .03em; text-transform: uppercase;
  color: var(--ikinci); font-weight: 600; padding: 6px 6px; border-bottom: 1px solid var(--kenar);
  white-space: normal; line-height: 1.2;
}
.kfr-ay-tablo td { padding: 7px 6px; border-bottom: 1px solid var(--ayirici); vertical-align: top; overflow-wrap: anywhere; }
.kfr-ay-sag { text-align: right !important; white-space: nowrap; }
.kfr-ay-satir { cursor: pointer; }
.kfr-ay-satir td:first-child { white-space: nowrap; }
@media (hover: hover) { .kfr-ay-satir:hover td { background: var(--oyuk); } }
.kfr-ay-secili td { background: #F6EBD7; }
.kfr-ay-secili td:first-child { box-shadow: inset 3px 0 0 var(--vurgu, #8F2D22); }
.kfr-ay-ack { color: var(--metin); text-decoration: underline dotted var(--altin, #C2A268); text-underline-offset: 3px; }
td.kfr-ay-tek { display: table-cell; }
.kfr-ay-durum { text-align: center; font-weight: 700; font-size: 15px; width: 28px; }
.kfr-ay-d-var { color: var(--basari); }
.kfr-ay-d-yok { color: var(--hata); }
.kfr-ay-d-bos { color: var(--ikinci); font-weight: 400; }
/* Puan dökümü (2026.901) */
.kfr-puan-eksi { color: #C00000; font-weight: 700; }
.kfr-puan-not, .kfr-puan-kural { color: #555; }
.kfr-puan-kural { margin: 4px 0 0; font-size: .92em; }

/* Açıklama penceresi (2026.902) · raporun "Farkın sebebi" kutusunun dili:
   beyaz kâğıt, ince siyah çizgi, Calibri. Her maddenin altında kasanın
   cevabı. */
.kfr-ack-pencere { max-width: 720px; }
.kfr-ack {
  background: #FFFFFF; color: #000; border: 1px solid var(--kenar); padding: 12px 14px;
  font-family: Calibri, Carlito, "Segoe UI", system-ui, sans-serif; font-size: 15px; line-height: 1.35;
}
.kfr-ack .kfr-sebep { font-size: 14px; }
.kfr-ack-ust { display: grid; gap: 2px; margin-bottom: 4px; }
.kfr-ack-ust > b { color: #C00000; font-size: 17px; }
.kfr-ack-ust span { color: #333; }
.kfr-ack ol { margin: 0; padding-left: 22px; }
.kfr-ack ol li { margin: 6px 0 9px; line-height: 1.4; }
.kfr-ack-kasa { margin-top: 3px; padding: 4px 8px; border-left: 3px solid #2F6B4A; background: #EEF4EC; }
.kfr-ack-kasa.kfr-ack-bos { border-left-color: #C00000; background: #FFF5F5; color: #777; font-style: italic; }
.kfr-ack-muh.kfr-ack-bos { color: #777; font-style: italic; }
.kfr-ack-kim { margin: 10px 0 0; font-size: 13px; color: #555; }
.kfr-ack-dugmeler { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
/* Kasa cevabını yükle (2026.904) */
/* Başlık solda, gelir hesabı seçici sağda (2026.939). */
.kfr-ay-ust { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.kfr-ay-ust .kfr-ay-gelir { width: 240px; max-width: 100%; }
.kfr-ay-ust .kfr-ay-gelir .sec-kutu { min-height: 34px; padding-top: 6px; padding-bottom: 6px; font-size: var(--kucuk-boy); }
.kfr-cevap-metin { display: block; width: 100%; margin-top: 12px; min-height: 90px; resize: vertical; }

/* Depo kutusu renkli (2026.908 · kullanıcının isteği: "faturada depo
   kısmı tikliyse yeşil, değilse kırmızı olsun"). Belgenin siyah-beyaz
   dilinde tek renkli işaret: deponun hesabına mı gidiyor, gidere mi,
   bakınca anlaşılsın. */
.fa-depo { background: #E7F3EA; border-color: #2F7A45; color: #1F5A31; font-weight: 600; }
.fa-depo .fa-depo-kutu { background: #2F7A45; border-color: #2F7A45; color: #FFFFFF; }
.fa-depo:hover, .fa-depo:focus-visible { background: #D6EBDC; }
.fa-depo.fa-depo-kapali { background: #FBE9EA; border: 1px solid #B3261E; color: #8E1F18; }
.fa-depo.fa-depo-kapali .fa-depo-kutu { background: #FFFFFF; border-color: #B3261E; }
.fa-depo.fa-depo-kapali:hover, .fa-depo.fa-depo-kapali:focus-visible { background: #F6D7D9; }

/* Gün sonu · Genresman kendi içinde tutmuyor uyarısı (2026.911) */
.kfr-kagit.gsy tr.gsy-ic-satir td { border: 0; padding: 0; white-space: normal; }
.gsy-ic-uyari {
  display: flex; gap: 8px; align-items: flex-start; margin-top: 8px; padding: 8px 10px;
  background: #FFF3CD; border: 1px solid #E0C878; border-radius: 6px;
  font-size: .9em; line-height: 1.4; color: #5C4300; white-space: normal;
}
.gsy-ic-uyari.gsy-ic-onay { background: #EEF4EC; border-color: #9FBF95; color: #2F5A2A; }
.gsy-ic-uyari .gsy-degis { margin-left: 4px; }

/* POS gün sonları elle (2026.913 · göç 250) */
.gsy-tr-elle { display: flex; gap: 8px; align-items: baseline; margin-top: 8px; font-size: 13px; color: var(--metin); }
.gsy-tr-elle small { color: var(--ikinci); }
.gsy-pgs-tablo { width: 100%; border-collapse: collapse; margin: 6px 0 8px; }
.gsy-pgs-tablo th { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--ikinci); text-align: left; padding: 4px 6px; }
.gsy-pgs-tablo th.sag { text-align: right; }
.gsy-pgs-tablo td { padding: 4px 6px; vertical-align: top; }
.gsy-pgs-tablo input.alan-kutu { width: 100%; min-width: 96px; }
.gsy-pgs-tablo input.sag { text-align: right; }
.gsy-pgs-tablo input.gsy-pgs-kendi { background: transparent; border-style: dashed; color: var(--metin); font-weight: 600; cursor: default; }
.gsy-pgs-uyari { display: block; min-height: 16px; margin-top: 3px; font-size: 12px; line-height: 16px; color: #9A5B00; }
.gsy-pgs-toplam { margin: 10px 0 4px; font-size: 14px; }

/* ---- Nakit akış · Hesap seçici ve dört sütun (2026.915) ----
   Kullanıcının isteği: "HESAP SEÇİCİ diye bir düğme koy … tikledikçe
   üstüne toplansın · sütunlar Tarih, Giren, Çıkan, Bakiye · hem mobilde
   hem PC'de aynı." Düğme tablonun üstünde; panel altına açılır, tik
   atıldıkça tablo arkada toplamı yazar. */
.na-hs {
  position: relative;
  z-index: 20;   /* tablonun yapışkan başlığının (6) üstünde */
  margin: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 3) 0;
}
.na-hs + .na-kaydir,
.na-kart-serbest .na-hs + .na-kaydir { margin-top: 10px; }
.na-hs-dugme {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
  height: 38px;
  padding: 0 12px;
  border: 1px solid var(--altin);
  border-radius: var(--kose-dugme);
  background: var(--yuzey);
  color: var(--metin);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.na-hs-dugme b { font-weight: 600; white-space: nowrap; }
.na-hs-ozet {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--vurgu);
  font-weight: 600;
}
.na-hs-ok { opacity: .55; font-size: 11px; }
.na-hs-dugme[aria-expanded="true"] { border-color: var(--vurgu); }
.na-hs-dugme[aria-expanded="true"] .na-hs-ok { transform: rotate(180deg); }
@media (hover: hover) { .na-hs-dugme:hover { border-color: var(--vurgu); } }

.na-hs-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  width: 320px;
  max-width: calc(100vw - 32px);
  padding: 4px 0;
  border: 1px solid var(--altin);
  border-radius: var(--kose-kutu);
  background: var(--kart-yuzey);
  box-shadow: 0 12px 28px -12px rgba(74, 53, 36, .35);
}
.na-hs-satir {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--ayirici);
  cursor: pointer;
}
.na-hs-satir:has(input:disabled) { cursor: default; }
@media (hover: hover) { .na-hs-satir:hover { background: var(--oyuk); } }
.na-hs-ad { flex: 1; min-width: 0; font-weight: 500; overflow-wrap: anywhere; }
.na-hs-bakiye {
  flex: none;
  font-size: 12.5px;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--metin) 60%, transparent);
}
.na-hs-bakiye.na-eksi { color: var(--metin-hata); }
.na-hs-not {
  margin: 0;
  padding: 9px 14px 6px;
  font-size: 12px;
  color: color-mix(in srgb, var(--metin) 60%, transparent);
}
.na-hs-not b { color: var(--metin); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Dört sütun · hesap hesap sütun yok, seçilenlerin toplamı. */
.na-dikey.na-d4 { min-width: 0; width: 100%; table-layout: fixed; }
.na-dikey.na-d4 th.na-d-kose { width: 28%; }
.na-dikey.na-d4 .na-d-hesap { top: 0; padding: 10px 12px; text-align: right; }
.na-dikey.na-d4 td.na-h { white-space: nowrap; }
.na-dikey.na-d4 .na-d-cik,
.na-dikey.na-d4 .na-d-gir { display: inline; font-weight: 500; }
@media (max-width: 720px) {
  .na-hs { margin-left: 12px; margin-right: 12px; }
  .na-hs-dugme { width: 100%; }
  .na-hs-panel { width: 100%; max-width: none; }
  .na-dikey.na-d4 th.na-d-tarih { padding: 8px 8px; }
  .na-dikey.na-d4 th.na-d-kose { width: 25%; padding-left: 8px; padding-right: 8px; }
  .na-dikey.na-d4 td.na-h,
  .na-dikey.na-d4 .na-d-hesap { padding: 8px 6px; font-size: 11.5px; }
  /* Başlık kesilmez, iki satıra iner: "Giren / tutar". */
  .na-dikey.na-d4 thead .na-d-hesap { white-space: normal; text-overflow: clip; font-size: 10px; letter-spacing: .04em; line-height: 1.25; }
  .na-dikey.na-d4 .na-d-hafta { font-size: 10px; }
}

/* ---- Nakit akış · tepede logo ve ad, ekrana sığan tablo (2026.916) ---- */
.na-ust {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: calc(var(--bosluk) * 1.5) calc(var(--bosluk) * 3) 0;
  position: relative;
  z-index: 20;
}
.na-ust .na-hs { margin: 0; margin-left: auto; }
.na-ust .na-hs-panel { left: auto; right: 0; }
.na-ust + .na-kaydir,
.na-kart-serbest .na-ust + .na-kaydir { margin-top: 10px; }
.na-ust-kimlik { display: flex; align-items: center; gap: 12px; min-width: 0; }
.na-ust-logo { width: 74px; height: auto; flex: none; }
.na-ust-yazi { display: grid; gap: 1px; min-width: 0; }
.na-ust-baslik {
  margin: 0;
  font-family: var(--yazi-baslik);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.15;
  color: var(--vurgu);
}
.na-ust-alt {
  font-size: 12px;
  color: color-mix(in srgb, var(--metin) 55%, transparent);
  font-variant-numeric: tabular-nums;
}
/* TELEFONDA DA AYNI (2026.917 · "mobilde de bu sistem, PC'dekiyle aynı
   olsun"): logo ve ad görünür, seçici altında tam genişlik; tablo alt
   menünün üstüne kadar iner, yirmi beş gün sığar. */
@media (max-width: 720px) {
  .na-ust { margin-left: 12px; margin-right: 12px; gap: 8px; }
  .na-ust-logo { width: 54px; }
  .na-ust-baslik { font-size: 18px; }
  .na-ust-alt { font-size: 11px; }
  .na-ust .na-hs { margin-left: 0; width: 100%; }
  .na-ust .na-hs-dugme { height: 34px; }
  .na-ust .na-hs-panel { left: 0; right: auto; }
  .na-dikey.na-d4 tbody th.na-d-tarih { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; }
  .na-dikey.na-d4 tbody .na-d-gun { font-size: 11.5px; }
  .na-dikey.na-d4 tbody .na-d-hafta { margin-left: 4px; }
}
@media all {
  /* Kart ekranın altına kadar iner; altında boşluk kalmaz. */
  .sayfa-icerik:has(.na-d4),
  .sayfa-alani:has(.na-d4) { padding-bottom: 0; }
  .na-kaydir.na-dikey-kutu:has(.na-d4) { max-height: none; }
  .na-kart:has(.na-d4) {
    margin-bottom: 0;
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }
  .na-kart .na-kaydir:has(.na-d4) { margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 0; }
  /* Yirmi beş gün · satır boyunu JS verir (--na-satir); tarih tek satır. */
  .na-dikey.na-d4 tbody tr { height: var(--na-satir, auto); }
  .na-dikey.na-d4 tbody th.na-d-tarih,
  .na-dikey.na-d4 tbody td.na-h { padding-top: 0; padding-bottom: 0; }
  .na-dikey.na-d4 tbody .na-d-gun,
  .na-dikey.na-d4 tbody .na-d-hafta { display: inline; }
  .na-dikey.na-d4 tbody .na-d-hafta { margin-left: 6px; }
}

/* ---- Nakit akış · Gün ayrıntısı gruplu (2026.918 · "burası çok karışık") ---- */
.na-ayrinti-gruplu { border: 0; border-radius: 0; overflow: visible; gap: 12px; }
.na-ay-grup {
  border: 1px solid var(--kenar);
  border-radius: var(--kose-kutu);
  overflow: hidden;
  background: var(--kart-yuzey);
}
.na-ay-grup-bas {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 8px 12px;
  background: var(--oyuk);
  border-bottom: 1px solid var(--ayirici);
  font-size: 12.5px;
  font-weight: 600;
}
.na-ay-grup-bas b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.na-ayrinti-gruplu .na-ayrinti-satir { padding: 8px 12px 8px 22px; }
.na-ayrinti-gruplu .na-ayrinti-ad { font-weight: 450; overflow-wrap: anywhere; }
.na-ay-hesap { font-weight: 400; opacity: .55; }

/* ---- Ayarlar · Veri kontrolü · öngörü tuttu mu (2026.919) ---- */
.ak-tuttu > summary { cursor: pointer; list-style: none; }
.ak-tuttu > summary::-webkit-details-marker { display: none; }
.ak-tuttu[open] > summary { background: var(--oyuk); }
.ak-tuttu-ic { padding-left: 32px; font-size: 12.5px; opacity: .85; }

/* ---- Tekrarlayan · son ödenen (2026.922 · göç 257) ---- */
.tk-son {
  display: block;
  margin-top: 2px;
  font-size: var(--etiket-boy);
  line-height: var(--etiket-satir);
  font-weight: 400;
  color: color-mix(in srgb, var(--metin) 60%, transparent);
  white-space: nowrap;
}
.tk-son-kullan {
  margin-left: 4px;
  padding: 1px 8px;
  border: 1px solid var(--altin);
  border-radius: 999px;
  background: var(--yuzey);
  color: var(--vurgu);
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
@media (hover: hover) { .tk-son-kullan:hover { border-color: var(--vurgu); } }

/* ---- Hareketler · iptal edilen kayıt (2026.923 · göç 258) ---- */
.hd-defter .tablo-satir.hd-iptal td { color: color-mix(in srgb, var(--metin) 55%, transparent); }
.hd-defter .tablo-satir.hd-iptal-asil .hd-ack { text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--metin-hata) 60%, transparent); }

/* 120'Lİ HESAPLAR KONTROLÜ (2026.945 · cari-kontrolu.js) · Geçmiş Kayıt
   Aktarımı'nın kâğıdı (ga-*) üzerine beş sütun: hesap · muhasebe ·
   Genresman · fark · açıklama. Farklı satır kırmızımsı, tutan sakin. */
.ck-tablo { table-layout: fixed; width: 100%; }
.ck-tablo col.ck-c-ad { width: 30%; }
.ck-tablo col.ck-c-tutar { width: 13%; }
.ck-tablo col.ck-c-ack { width: 31%; }
.ck-tablo td { vertical-align: middle; }
.ck-tablo td.kfr-ad .rc-urun { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ck-tablo .ga-secim { margin: 0 0 3px; }
.ck-tablo tr.ck-farkli td { background: #FBEDEC; }
.ck-tablo tr.ck-farkli .ck-fark b { color: var(--hata); }
.ck-tablo tr.ck-eslesmeyen td { background: #FFF6DE; }
.ck-tamam { color: #2F6B4A; font-weight: 700; }
.ck-ack { width: 100%; min-height: 32px; padding: 4px 8px; font-size: 12.5px; }
.ck-tablo tr.ck-toplam td { font-weight: 700; }
.ck-gecmis { margin-top: 14px; }
.ck-gecmis .kfr-ay-baslik { margin-bottom: 8px; }
.ck-gecmis-satir { cursor: pointer; }
.ck-gecmis-satir:hover td { background: var(--secili-zemin, #F4ECDD); }

/* ---- Kaynağına git (2026.957) ----
   Hesap Defteri'nin kayıt penceresi kaydın hangi aktarımdan geldiğini
   söyler; "Oraya git" o ekranın Geçmiş Kayıtlar panelini açar ve
   aktarım orada altın kenarla en üstte durur. */
.kayit-kaynak {
  display: flex;
  align-items: center;
  gap: var(--bosluk);
  margin-top: calc(var(--bosluk) * 2);
  padding: calc(var(--bosluk) * 1.25) calc(var(--bosluk) * 1.5);
  border-radius: var(--kose-kutu);
  border: 1px solid var(--altin);
  background: var(--yuzey);
  font-size: var(--kucuk-boy);
  line-height: var(--kucuk-satir);
}
.kayit-kaynak span { flex: 1; min-width: 0; }
.kayit-kaynak .dugme-birincil { flex: none; }
@media (max-width: 560px) {
  .kayit-kaynak { flex-direction: column; align-items: stretch; }
}

.ars-satir.ars-satir-vurgu {
  border: 2px solid var(--altin);
  box-shadow: 0 0 0 3px rgba(184, 150, 60, .18);
}
.ars-vurgu-etiket {
  display: inline-block;
  margin-right: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--altin);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  vertical-align: 1px;
}

/* ---- 120'li hesaplar kontrolü · iki kâğıt yan yana (2026.958) ----
   Solda Muhasebe, sağda Genresman; ikisi de A4 görünümlü beyaz kâğıt.
   Tutan satırda iki tarafta yeşil tik; seçili satır altın kenarlı. */
.ck-ust {
  max-width: 400mm; margin: 0 auto 14px; padding: 14px 16px;
  background: #FFFFFF; border: 1px solid var(--kenar); border-radius: 12px; box-shadow: var(--kart-golge);
}
.ck-ust .ga-arac { margin-bottom: 0; }
.ck-secim {
  display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 8px 12px;
  border: 1px solid var(--altin); border-radius: 10px; background: color-mix(in srgb, var(--altin) 10%, #FFFFFF); font-size: 13px;
}
.ck-secim span { flex: 1; min-width: 0; }
.ck-iki { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 400mm; margin: 0 auto; align-items: start; }
.ck-a4 {
  min-width: 0; min-height: 270mm; padding: 9mm 8mm; background: #FFFFFF; color: #000;
  border: 1px solid var(--kenar); box-shadow: var(--kart-golge);
  font-family: Calibri, Carlito, "Segoe UI", system-ui, sans-serif; font-size: 10pt;
}
.ck-a4-bas { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-bottom: 6px; margin-bottom: 4px; border-bottom: 2px solid #000; }
.ck-a4-bas b { font-size: 15pt; color: #C00000; }
.ck-a4-bas span { font-size: 9pt; color: #555; }
.ck-a4-alt { display: flex; justify-content: space-between; margin-top: 6px; padding-top: 6px; border-top: 2px solid #000; font-weight: 700; }
.ck-sat { padding: 5px 6px; border-bottom: 1px solid #E2DED5; border-left: 3px solid transparent; cursor: pointer; }
.ck-sat-ust { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 8px; }
.ck-sat .ck-ad {
  min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left;
  padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: inherit;
}
button.ck-ad { cursor: pointer; }
@media (hover: hover) { button.ck-ad:hover { color: var(--ikinci); text-decoration: underline; } }
.ck-tutar { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.ck-isaret { text-align: center; }
.ck-tik { color: #2F6B4A; font-weight: 800; }
.ck-alt { display: block; margin-top: 1px; font-size: 8.6pt; color: #666; overflow: hidden; text-overflow: ellipsis; }
.ck-kirmizi { color: #C00000; }
.ck-sat.ck-fark { background: #FDF3F2; }
.ck-sat.ck-yok { background: #FFF8E6; }
.ck-sat.ck-secili { border-left-color: var(--altin); background: color-mix(in srgb, var(--altin) 16%, #FFFFFF); }
@media (hover: hover) { .ck-sat:hover { border-left-color: var(--altin-soluk); } }
.ck-sat .ck-ack { display: block; width: 100%; height: 26px; min-height: 0; margin-top: 3px; padding: 2px 8px; font-size: 9pt; }
.ck-not { max-width: 400mm; margin: 10px auto 0 !important; }
@media (max-width: 900px) {
  .ck-iki { grid-template-columns: minmax(0, 1fr); }
  .ck-a4 { min-height: 0; padding: 14px 12px; }
}

/* 120 kontrolü · toplanan hesaplar (2026.961) · ana satırın altında
   her hesap kendi bakiyesiyle; × toplamdan çıkarır. */
.ck-grup { margin: 3px 0 1px; padding-left: 8px; border-left: 2px solid var(--altin-soluk); }
.ck-grup-sat { display: grid; grid-template-columns: minmax(0, 1fr) auto 18px; align-items: center; gap: 8px; font-size: 9pt; color: #444; }
.ck-grup-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
@media (hover: hover) { .ck-grup-ad:hover { text-decoration: underline; color: var(--ikinci); } }
.ck-grup-x { padding: 0; border: 0; background: none; font: inherit; font-weight: 700; color: #C00000; cursor: pointer; text-align: center; }

/* 120 kontrolü · aynı satırda yan yana (2026.963) · tek ızgara: solda
   muhasebe, ortada tek büyük tik, sağda Genresman. Sol ve sağ sütun beyaz
   kâğıt gibi; ortadaki şerit zemin rengindedir. */
.ck-izgara {
  display: grid; grid-template-columns: minmax(0, 1fr) 56px minmax(0, 1fr);
  max-width: 400mm; margin: 0 auto;
  font-family: Calibri, Carlito, "Segoe UI", system-ui, sans-serif; font-size: 10pt; color: #000;
}
.ck-hucre { min-width: 0; padding: 6px 12px; background: #FFFFFF; border-bottom: 1px solid #E2DED5; border-left: 1px solid var(--kenar); border-right: 1px solid var(--kenar); }
.ck-hucre.ck-sol { cursor: pointer; }
.ck-hucre.ck-bos { cursor: default; }
.ck-hucre.ck-baslik { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid var(--kenar); border-bottom: 2px solid #000; }
.ck-hucre.ck-baslik b { font-size: 15pt; color: #C00000; }
.ck-hucre.ck-baslik span { font-size: 9pt; color: #555; }
.ck-hucre.ck-dip { display: flex; justify-content: space-between; padding-bottom: 12px; border-top: 2px solid #000; border-bottom: 1px solid var(--kenar); font-weight: 700; }
.ck-hucre.ck-fark { background: #FDF3F2; }
.ck-hucre.ck-yok:not(.ck-bos) { background: #FFF8E6; }
.ck-hucre.ck-secili, .ck-cari.ck-secili { box-shadow: inset 3px 0 0 var(--altin); background: color-mix(in srgb, var(--altin) 16%, #FFFFFF); }
.ck-cari { cursor: pointer; }
.ck-cari + .ck-cari { margin-top: 4px; padding-top: 4px; border-top: 1px dashed #DDD; }
.ck-hucre .ck-sat-ust { grid-template-columns: minmax(0, 1fr) auto; }
.ck-hucre .ck-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: inherit; }
.ck-hucre .ck-ack { display: block; width: 100%; height: 26px; min-height: 0; margin-top: 3px; padding: 2px 8px; font-size: 9pt; }
.ck-bos-not { color: #777; }
.ck-orta { display: flex; align-items: center; justify-content: center; }
.ck-tik-buyuk { color: #2F6B4A; font-size: 28px; font-weight: 800; line-height: 1; }
@media (hover: hover) { .ck-hucre.ck-sol:not(.ck-bos):hover, .ck-cari:hover { box-shadow: inset 3px 0 0 var(--altin-soluk); } }
@media (max-width: 760px) {
  .ck-izgara { grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); font-size: 9pt; }
  .ck-hucre { padding: 5px 6px; }
  .ck-tik-buyuk { font-size: 20px; }
}

/* 120 kontrolü · Zıt tutarlar (2026.964) · toplamı sıfır olan artı/eksi
   hesap çiftleri; Birleştir hesapları tek hesapta toplar. */
.ck-zit { max-width: 400mm; margin: 0 auto; padding: 12px 16px; background: #FFFFFF; border: 1px solid var(--kenar); box-shadow: var(--kart-golge); font-family: Calibri, Carlito, "Segoe UI", system-ui, sans-serif; font-size: 10pt; color: #000; }
.ck-zit-sat { display: grid; grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #E2DED5; }
.ck-zit-taraf { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; min-width: 0; }
.ck-zit-taraf .ck-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; padding: 0; border: 0; background: none; font: inherit; font-weight: 600; color: inherit; cursor: pointer; }
.ck-zit-taraf .ck-alt { grid-column: 1; }
.ck-zit-taraf .ck-tutar { grid-column: 2; grid-row: 1 / span 2; }
.ck-zit-ok { text-align: center; font-size: 18px; color: var(--ikinci); }
.ck-birlestir-sec { display: grid; gap: 8px; margin-top: 10px; }
@media (max-width: 760px) {
  .ck-zit-sat { grid-template-columns: minmax(0, 1fr); }
  .ck-zit-ok { display: none; }
}

/* Elle Kayıt · "Kaydedince deftere git" seçimi (2026.965) */
.elk-git { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: var(--kucuk-boy); cursor: pointer; user-select: none; }
.elk-git input { width: 16px; height: 16px; accent-color: var(--altin-koyu); cursor: pointer; }

/* Hesap Defteri · tek bacaklı kaydın düzeltme notu (2026.967) */
.kayit-tek-not { margin: 4px 0 0; padding: 8px 10px; border-radius: var(--kose-kutu); background: var(--oyuk); font-size: var(--kucuk-boy); line-height: var(--kucuk-satir); color: var(--ikinci); }

/* ---- Dashboard · telefon düzeni (2026.968) ----
   Telefonda (700px altı) tepede yatay kayan hızlı işlem şeridi, altında
   dört kartın yerine tek kartta dört satır. Masaüstünde ikisi de gizli. */
.pn-hizli, .pn-liste, .pn-liste-baslik { display: none; }
@media (max-width: 699.98px) {
  .pn-kartlar { display: none; }
  .pn-hizli {
    display: flex; gap: 10px; margin: 0 calc(var(--bosluk) * -2) calc(var(--bosluk) * 2);
    padding: 2px calc(var(--bosluk) * 2) 6px; overflow-x: auto; scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .pn-hizli::-webkit-scrollbar { display: none; }
  .pn-hizli-tus {
    flex: 0 0 74px; display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; scroll-snap-align: start;
  }
  .pn-hizli-simge {
    display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px;
    border-radius: 18px; background: var(--kart-zemin); border: var(--kart-cerceve); box-shadow: var(--kart-golge);
    font-size: 24px; color: var(--ikinci);
  }
  .pn-hizli-ad { max-width: 74px; font-size: 11.5px; line-height: 1.2; text-align: center; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .pn-hizli-duzenle .pn-hizli-simge { border-style: dashed; box-shadow: none; background: transparent; }

  .pn-liste {
    display: block; margin: 0 0 calc(var(--bosluk) * 3); overflow: hidden;
    background-color: var(--kart-zemin); background-image: var(--kart-desen);
    border: var(--kart-cerceve); border-radius: 20px; box-shadow: var(--kart-golge);
  }
  .pn-liste-satir {
    display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 14px; align-items: center; gap: 10px;
    width: 100%; padding: 14px 14px; border: 0; border-bottom: 1px solid var(--ayirici);
    background: none; font: inherit; color: inherit; text-align: left; cursor: pointer;
  }
  .pn-liste-satir:last-child { border-bottom: 0; }
  .pn-liste-simge { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--oyuk); }
  .pn-liste-simge { grid-row: 1 / span 2; align-self: start; }
  .pn-liste-ad { min-width: 0; font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pn-liste-tutar { font-weight: 700; font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .pn-liste-alt { grid-column: 2 / span 2; display: flex; flex-direction: column; gap: 1px; margin-top: -4px; font-size: 11.5px; line-height: 1.45; color: var(--ikinci); }
  .pn-liste-alt span { display: flex; justify-content: space-between; gap: 10px; }
  .pn-liste-alt i { font-style: normal; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pn-liste-alt b { font-weight: 600; color: var(--metin); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .pn-liste-ok { color: var(--ikinci); }
}

/* Hızlı işlem seçici penceresi */
.pn-hs-grup { margin: 12px 0 4px; font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--ikinci); }
.pn-hs-sec {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) 24px; align-items: center; gap: 10px; width: 100%;
  margin-top: 4px; padding: 6px 10px; border: 1px solid var(--kenar); border-radius: 12px; background: var(--yuzey);
  font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.pn-hs-sec .pn-hizli-simge { width: 32px; height: 32px; border-radius: 10px; box-shadow: none; }
.pn-hs-sec[aria-pressed="true"] { border-color: var(--altin); background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); }
.pn-hs-sira { width: 22px; height: 22px; border-radius: 50%; font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.pn-hs-sec[aria-pressed="true"] .pn-hs-sira { background: var(--altin-koyu); color: #fff; }

/* ---- Dashboard · telefon · hızlı işlemler kartı (2026.970) ----
   Kullanıcının isteği: "konseptin dışına çıkma, şehir silueti ve renkler
   aynı kalsın · hızlı işlemler dikdörtgen bir şeyin içinde olsun".
   Bordo vitrin kaldırıldı; künye kartı (şehir silueti) telefonda da durur.
   Hızlı işlemler öbür kartlarla aynı krem kartın içinde, yatay kayar. */
.pn-hizli-kart { display: none; }
@media (max-width: 699.98px) {
  .pn-hizli-kart {
    display: block; margin: 0 0 calc(var(--bosluk) * 2.5); padding: 12px 0 10px;
    background-color: var(--kart-zemin); background-image: var(--kart-desen);
    border: var(--kart-cerceve); border-radius: 20px; box-shadow: var(--kart-golge); overflow: hidden;
  }
  .pn-hizli-baslik { margin: 0 16px 10px; font: 700 10.5px/1 var(--yazi-baslik); letter-spacing: .12em; text-transform: uppercase; color: var(--ikinci); }
  .pn-hizli-kart .pn-hizli { margin: 0; padding: 0 14px 2px; }
  .pn-liste-baslik { display: block; margin: 0 4px 8px; font: 700 10.5px/1 var(--yazi-baslik); letter-spacing: .12em; text-transform: uppercase; color: var(--ikinci); }
}
@media (max-width: 699.98px) {
  /* Dört sabit yer (2026.971) · kaymaz, eşit genişlikte hizalı. */
  .pn-hizli-kart .pn-hizli { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; overflow: visible; padding: 0 10px 2px; }
  .pn-hizli-kart .pn-hizli-tus { flex: none; width: auto; min-width: 0; }
  .pn-hizli-kart .pn-hizli-ad { max-width: 100%; }
  .pn-hizli-baslik { display: flex; align-items: center; justify-content: space-between; }
  .pn-hizli-baslik .pn-hizli-duzenle { padding: 2px 0; border: 0; background: none; font: 600 12px/1 var(--yazi-metin); letter-spacing: 0; text-transform: none; color: var(--ikinci); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
}

/* Hesaplar · gruba hesap taşıma penceresi (2026.976) */
.ht-liste { display: flex; flex-direction: column; max-height: 52vh; overflow-y: auto; margin: 6px 0 4px; border: 1px solid var(--ayirici); border-radius: var(--kose-kutu); }
.ht-satir { display: grid; grid-template-columns: 20px 72px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--ayirici); cursor: pointer; font-size: var(--kucuk-boy); }
.ht-satir:last-child { border-bottom: 0; }
.ht-satir:has(input:checked) { background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); }
.ht-satir input { width: 16px; height: 16px; accent-color: var(--altin-koyu); }
.ht-kod { color: var(--ikinci); font-variant-numeric: tabular-nums; }
.ht-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.ht-tutar { font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 560px) { .ht-satir { grid-template-columns: 20px minmax(0, 1fr) auto; } .ht-kod { display: none; } }
.ht-sistem { margin-left: 4px; padding: 0 6px; border-radius: 99px; background: var(--oyuk); font-size: 10.5px; font-weight: 600; color: var(--ikinci); }

/* Hesaplar · alt hesapları sırala penceresi (2026.982) */
.hs-liste { display: flex; flex-direction: column; max-height: 58vh; overflow-y: auto; margin: 6px 0 4px; border: 1px solid var(--ayirici); border-radius: var(--kose-kutu); touch-action: pan-y; }
.hs-satir { display: grid; grid-template-columns: 28px 26px minmax(0, 1fr) 32px 32px; align-items: center; gap: 6px; padding: 7px 8px; border-bottom: 1px solid var(--ayirici); background: var(--yuzey); font-size: var(--kucuk-boy); user-select: none; }
.hs-satir:last-child { border-bottom: 0; }
.hs-tutamak { cursor: grab; text-align: center; color: var(--ikinci); font-weight: 700; letter-spacing: -2px; touch-action: none; padding: 6px 0; }
.hs-tutuldu { position: relative; z-index: 2; background: color-mix(in srgb, var(--altin) 16%, var(--yuzey)); box-shadow: 0 6px 16px -8px rgba(58, 42, 29, .5); }
.hs-tutuldu .hs-tutamak { cursor: grabbing; }
.hs-no { color: var(--ikinci); font-variant-numeric: tabular-nums; text-align: right; }
.hs-ad { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.hs-ad small { font-weight: 400; color: var(--ikinci); }
.hs-ok { width: 30px; height: 30px; border: 1px solid var(--kenar); border-radius: 8px; background: var(--yuzey); font: inherit; color: var(--metin); cursor: pointer; }
.hs-ok:disabled { opacity: .35; cursor: default; }

/* Satış faturası · kısmi tahsil kutusu (2026.992) · kapalı satırın
   alacak hücresi yazılabilir; azaltılınca altında "kalan … satışa". */
.sfa-tahsil {
  width: 120px;
  min-height: 30px;
  padding: 4px 8px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.sfa-tahsil-kismi { border-color: var(--vurgu); }
.sfa-tahsil-not {
  display: block;
  margin-top: 2px;
  font-size: 11px;
  color: var(--vurgu);
  white-space: nowrap;
}

/* Bekleyen Faturalar · carisi kapanmış (2026.996) · soluk, toplama girmez. */
.gsy-bf-odendi {
  display: inline-block;
  margin-right: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  font-size: 11px;
  color: var(--basari, #2F7A4F);
  background: color-mix(in srgb, var(--basari, #2F7A4F) 10%, transparent);
}
.gsy-bf-satir-odendi { opacity: .6; }

/* Cari satırları · hesap çipi hizalı + Faturalı / Faturasız (2026.998) */
/* Sığmıyordu (2026.999): ad esner ve kısalır, çip ile düğmeler hücrenin
   SAĞINA yaslanır · böylece her satırda aynı hizada durur. */
.gsy-ad-ic:has(.gsy-cip-sabit) { width: 100%; }
.gsy-ad-ic:has(.gsy-cip-sabit) > .gsy-ad-metin { flex: 1 1 auto; min-width: 40px; }
.gsy-cip-sabit { margin-left: auto !important; width: 58px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 0 3px; }
.gsy-fs {
  flex: none;
  display: inline-flex;
  margin-left: 4px;
  border: 1px solid var(--altin-soluk);
  border-radius: 999px;
  overflow: hidden;
}
.gsy-fs-d {
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 9.5px;
  line-height: 16px;
  padding: 0 5px;
  color: var(--ikinci);
  cursor: pointer;
}
.gsy-fs-d + .gsy-fs-d { border-left: 1px solid var(--altin-soluk); }
.gsy-fs-d.gsy-fs-secili { background: var(--altin); color: #fff; font-weight: 700; }
.gsy-fs-not { display: none; }

/* Cari satırı · ad üstte, hesap kodu altında minik (2026.1000) */
.gsy-ad-iki .gsy-ad-ic { width: 100%; }
.gsy-ad-sol { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.15; }
.gsy-ad-sol .gsy-ad-metin { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsy-kod-alt {
  align-self: flex-start;
  max-width: 100%;
  border: 0; padding: 0; background: transparent; cursor: pointer;
  font-family: inherit; font-size: 10px; color: var(--ikinci); opacity: .55;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left;
}
.gsy-kod-alt:hover { color: var(--ikinci); text-decoration: underline; opacity: 1; }
.gsy-kod-yok { color: var(--vurgu); font-weight: 600; opacity: 1; }
.gsy-sag { flex: none; display: inline-flex; align-items: center; margin-left: 6px; }
.gsy-sag > .gsy-cip:first-child, .gsy-sag > .gsy-not:first-child { margin-left: 0; }

/* Sade fatura pencereleri (2026.1003) · gövde yazısı, kısa satırlar */
.gsf-sade .gsf-sade-kunye { margin: 0 0 10px; font-size: 14px; }
.gsf-sade .gsf-sade-kunye small { color: var(--ikinci); font-weight: 400; }
.gsf-sade .gsf-sade-durum { margin: -4px 0 10px; font-size: 12px; color: var(--basari, #2F7A4F); }
.gsf-sade .gsf-sade-not { margin: 12px 0 6px; font-size: 12px; color: var(--ikinci); }
.gsf-sade .gsf-sade-satir { gap: 10px; padding: 9px 12px; font-size: 13px; }
.gsf-sade .gsf-sade-ad { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: inherit; font-weight: 600; }
.gsf-sade .gsf-sade-tutar { flex: none; font-variant-numeric: tabular-nums; }
.gsf-sade .gsf-oneri { background: color-mix(in srgb, var(--altin) 10%, transparent); }
.gsf-etiket { flex: none; width: 46px; text-align: center; font-size: 10px; font-weight: 700; border-radius: 999px; padding: 1px 0; }
.gsf-etiket-acik { color: var(--vurgu); border: 1px solid var(--vurgu); }
.gsf-etiket-kapali { color: var(--ikinci); border: 1px solid var(--altin-soluk); }
.gsf-secenekler { display: grid; gap: 8px; }
.gsf-secenek {
  display: flex; align-items: center; gap: 12px; width: 100%;
  padding: 10px 12px; border: 1px solid var(--altin-soluk); border-radius: 12px;
  background: var(--kart, #FFFDF8); font: inherit; text-align: left; cursor: pointer;
}
@media (hover: hover) { .gsf-secenek:hover { border-color: var(--altin); background: color-mix(in srgb, var(--altin) 8%, transparent); } }
.gsf-secenek-simge { flex: none; font-size: 20px; }
.gsf-secenek-yazi { display: flex; flex-direction: column; min-width: 0; }
.gsf-secenek-yazi b { font-size: 13.5px; }
.gsf-secenek-yazi small { font-size: 11.5px; color: var(--ikinci); }

/* Fark sebebi · puan kırma düğmesi (2026.1004) */
.gsy-puan-kirma {
  float: right;
  margin-left: 8px;
  padding: 0 8px;
  border: 1px dashed var(--altin-soluk);
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: 10.5px;
  line-height: 18px;
  color: var(--ikinci);
  cursor: pointer;
}
.gsy-puan-kirma-acik { border-style: solid; border-color: var(--basari, #2F7A4F); color: var(--basari, #2F7A4F); font-weight: 600; }

/* POS dosyası kaldır (2026.1007) */
.gsy-pos-kaldir { position: relative; margin-left: 6px; width: 22px; height: 22px; padding: 0; border: 1px solid var(--altin-soluk); border-radius: 50%; background: transparent; color: var(--ikinci); font: inherit; font-size: 14px; line-height: 19px; cursor: pointer; vertical-align: 0; }
/* Dokunmatikte satıra değil düğmeye denk gelsin · görünmez geniş alan. */
.gsy-pos-kaldir::before { content: ""; position: absolute; inset: -10px; }
@media (hover: hover) { .gsy-pos-kaldir:hover { color: var(--vurgu); border-color: var(--vurgu); } }

/* Trendyol gün sonu raporu dökümü (2026.1008) */
.pencere.ty-pencere { max-width: 780px; }
.ty-tablo { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.ty-tablo th { font-size: 10.5px; font-weight: 700; color: var(--ikinci); text-align: left; padding: 6px 6px; border-bottom: 1px solid var(--altin-soluk); }
.ty-tablo td { padding: 5px 6px; border-bottom: 1px solid var(--ayirici, #EFE6D4); }
.ty-tablo .sayi { text-align: right; white-space: nowrap; }
.ty-tablo tfoot td { font-weight: 700; border-top: 1px solid var(--altin-soluk); border-bottom: 0; }
.ty-tablo .ty-indirim { color: var(--vurgu); }
.ty-karsi { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr; gap: 4px 10px; align-items: baseline; margin-top: 12px; padding: 10px 12px; border: 1px solid var(--altin-soluk); border-radius: 12px; font-size: 13px; }
.ty-karsi span { color: var(--ikinci); font-size: 11.5px; }
.ty-karsi .ty-fark { color: var(--vurgu); }
.ty-tablo .ty-fark { color: var(--vurgu); font-weight: 600; }
.ty-tablo tr.ty-sorun td { background: color-mix(in srgb, var(--vurgu) 7%, transparent); }
.ty-tablo .ty-yok { color: var(--vurgu); font-style: italic; }
.ty-notlar { margin: 10px 0 0; padding-left: 18px; font-size: 13px; line-height: 1.55; }
.ty-notlar li { margin: 2px 0; }

/* Platform mağaza seçimi (2026.1012) */
.pl-magazalar { display: grid; gap: 8px; margin: 10px 0 4px; }
.pl-magaza { display: flex; gap: 8px; align-items: baseline; padding: 8px 10px; border: 1px solid var(--altin-soluk); border-radius: 10px; cursor: pointer; }
.pl-magaza small { color: var(--ikinci); }
.ty-tablo .ty-soluk { color: var(--ikinci); font-size: 11px; }
/* Ödeme türü boş Yemek Sepeti siparişi · tahmin (2026.1126). */
.ty-tablo .ty-tahmin { display: inline-block; padding: 0 6px; border: 1px solid var(--uyari-cizgi); border-radius: 999px;
  color: var(--metin-uyari); font-size: 11px; font-weight: 600; }
.gsy-not.gsy-not-uyari { color: var(--metin-uyari); font-weight: 600; }

/* 120'li Hesaplar Kontrolü · tek tablo (2026.1018) */
.ck-tablo-kap { margin-top: 14px; background: #FFFFFF; border: 1px solid var(--kenar); overflow-x: auto; }
.ck-tablo { width: 100%; border-collapse: collapse; font-size: 10pt; font-variant-numeric: tabular-nums; }
.ck-tablo th { padding: 8px 10px; font-size: 8.5pt; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-align: left; background: #F3EEE1; border-bottom: 2px solid #000; vertical-align: bottom; }
.ck-tablo th .ck-t-g { color: #777; font-weight: 600; }
.ck-tablo td { padding: 6px 10px; border-bottom: 1px solid #E2DED5; vertical-align: middle; }
.ck-tablo .ck-t-p { text-align: right; white-space: nowrap; width: 118px; min-width: 110px; }
.ck-tablo .ck-t-firma { min-width: 260px; }
.ck-t-ust { cursor: pointer; font-weight: 600; }
.ck-t-ust .ck-ad { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; }
.ck-t-kod { color: #888; font-weight: 400; font-size: 8.5pt; }
.ck-t-alt { cursor: pointer; margin-top: 2px; color: #777; font-size: 9pt; }
.ck-t-alt .gsy-degis { margin-left: 6px; font-size: 8.5pt; }
.ck-t-yok { cursor: default; color: #C00000; font-style: italic; font-weight: 400; }
.ck-tablo .ck-secili { outline: 2px solid var(--altin); outline-offset: 2px; border-radius: 4px; }
.ck-tablo tr.ck-t-fark td { background: #FDF3F2; }
.ck-tablo tr.ck-t-eksik td { background: #FFF8E8; }
.ck-tablo .ck-t-farkh { font-weight: 700; color: #C00000; }
.ck-t-tik { color: #2E7D32; font-weight: 700; }
.ck-tablo .ck-t-ack { width: 30%; min-width: 220px; color: #555; font-size: 9.5pt; }
.ck-tablo .ck-t-ack .ck-ack { box-sizing: border-box; min-width: 0; max-width: 100%; width: 100%; height: 28px; min-height: 0; padding: 2px 8px; font-size: 9.5pt; }
.ck-tablo tfoot td { font-weight: 700; border-top: 2px solid #000; border-bottom: 0; background: #F3EEE1; }
.ck-tablo .ck-grup { font-weight: 400; }
/* A4 kâğıt düzeni (2026.1019) */
.ck-kagit { margin-top: 16px; }
.ck-kagit + .ck-kagit { margin-top: 18px; }
.ck-kagit .ck-kunye .kfr-sol { width: 46%; }
.ck-kagit .ck-kunye .gsy-logo { display: block; width: 110px; height: auto; margin: 0 auto 2px; }
.ck-k-tarih { display: block; font-size: .78em; }
.ck-kagit .ck-k-fark { color: var(--vurgu); }
.ck-kagit .ck-tablo { table-layout: fixed; font-size: 12.5px; }
.ck-kagit .ck-tablo td { white-space: normal; vertical-align: middle; }
.ck-kagit .ck-tablo .kfr-ad.ck-t-firma, .ck-kagit .ck-tablo tr.kfr-obek td:first-child { width: 40%; }
.ck-kagit .ck-tablo .kfr-p { width: 12%; text-align: right; white-space: nowrap; }
.ck-kagit .ck-tablo tr.kfr-obek td.kfr-p { text-align: right; }
.ck-kagit .ck-tablo .ck-t-ack { width: 24%; min-width: 0; }
.ck-kagit .ck-tablo tr.kfr-obek .ck-t-g { color: var(--ikinci); font-weight: 600; letter-spacing: 0; }
.ck-kagit .ck-tablo tr.ck-t-fark td { background: #FDF3F2; }
.ck-kagit .ck-tablo tr.ck-t-eksik td { background: #FFF8E8; }
.ck-sayfa { margin: 6px 0 0; text-align: right; font-size: 11px; color: var(--ikinci); }
.ck-kagitlar { display: block; width: 100%; }
.ck-kagitlar .ck-kagit { display: block; }
/* Satırlar tek boy (2026.1021 · "satır genişliği hepsinin Furkan Karaer
   gibi olsun"): uzun ad tek satırda kalır, sonu "…" ile kısalır. */
.ck-kagit .ck-t-ust, .ck-kagit .ck-t-alt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ck-kagit .ck-t-ust .ck-ad { display: inline; }
.ck-kagit .ck-t-ust .ck-grup { white-space: normal; }
.ck-kagit .ck-t-ust .ck-ad { cursor: pointer; }
/* Genresman adı daha soluk ve küçük (2026.1022) */
.ck-kagit .ck-t-alt { margin-top: 1px; font-size: 10.5px; color: #A39A8C; }
.ck-kagit .ck-t-alt .gsy-degis { font-size: 10px; opacity: .85; }

/* 120 kontrolü · giriş ve kasa şefi (2026.1023) */
.ck-giris { display: grid; gap: 18px; max-width: 245mm; margin: 0 auto; padding-top: 6px; }
.ck-giris-kart { background: var(--yuzey); border: 1px solid var(--altin-soluk); border-radius: 14px; box-shadow: var(--kart-golge); padding: 22px 26px; }
.ck-giris-ust { display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ck-giris-yazi { flex: 1 1 360px; min-width: 0; }
.ck-giris-etiket { display: inline-block; font: 700 10.5px/1 var(--yazi-baslik); letter-spacing: .12em; text-transform: uppercase; color: var(--ikinci); }
.ck-giris-yazi h2 { margin: 6px 0 6px; font: 600 26px/1.15 var(--yazi-baslik); color: var(--vurgu); }
.ck-giris-yazi p { margin: 0; color: var(--metin); font-size: 14px; line-height: 1.5; }
.ck-giris-dugmeler { display: grid; gap: 10px; justify-items: stretch; min-width: 240px; }
.ck-adimlar { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 20px 0 0; padding: 0; }
.ck-adimlar li { position: relative; padding: 14px 14px 12px 14px; border: 1px solid color-mix(in srgb, var(--altin) 35%, transparent); border-radius: 12px; background: color-mix(in srgb, var(--altin) 6%, #FFFFFF); }
.ck-adim-no { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-bottom: 8px; border-radius: 50%; background: var(--vurgu); color: #FFF; font-size: 12px; font-weight: 700; }
.ck-adimlar b { display: block; font-size: 14px; color: var(--metin); }
.ck-adimlar small { display: block; margin-top: 3px; font-size: 12px; line-height: 1.4; color: var(--ikinci); }
.ck-giris-sayi { margin: 14px 0 0; font-size: 12px; color: var(--ikinci); }
.ck-giris-baslik { margin: 0 0 12px; font: 600 19px/1.2 var(--yazi-baslik); color: var(--vurgu); }
.ck-giris-bos { margin: 0; color: var(--ikinci); font-size: 13px; }
.ck-gecmis-tablo { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.ck-gecmis-tablo th { padding: 8px 10px; text-align: left; font: 700 10.5px/1.2 var(--yazi-baslik); letter-spacing: .08em; text-transform: uppercase; color: var(--kahve); background: #F3EAD6; border-bottom: 1px solid var(--altin-soluk); }
.ck-gecmis-tablo td { padding: 10px; border-bottom: 1px solid color-mix(in srgb, var(--altin) 22%, transparent); vertical-align: middle; }
.ck-gecmis-tablo .sag { text-align: right; }
.ck-gecmis-tablo tr.ck-gecmis-satir { cursor: pointer; }
@media (hover: hover) { .ck-gecmis-tablo tr.ck-gecmis-satir:hover td { background: color-mix(in srgb, var(--altin) 10%, #FFFFFF); } }
.ck-g-dosya { color: var(--ikinci); font-size: 12px; }
.ck-gecmis-tablo small { color: var(--ikinci); font-size: 11.5px; }
.ck-hap { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; background: #EFE8DA; color: var(--ikinci); }
.ck-hap-kirmizi { background: #F8E1E3; color: var(--vurgu); }
.ck-hap-yesil { background: #E4EFDF; color: #2E6B2A; }
.ck-sef { margin-top: 4px; padding: 4px 8px; border-left: 3px solid var(--altin); background: color-mix(in srgb, var(--altin) 10%, #FFFFFF); font-size: 11.5px; line-height: 1.35; color: var(--metin); white-space: normal; }
@media (max-width: 900px) { .ck-adimlar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ck-giris .ck-gecmis-tablo { margin-top: 18px; }
.ck-g-gun { color: var(--ikinci); font-size: 11.5px; }
.ck-hap-altin { background: color-mix(in srgb, var(--altin) 22%, #FFFFFF); color: var(--ikinci); }
.ck-hafta-bos td { color: var(--ikinci); }
.ck-yukle-yazi { margin-left: 6px; font-size: 12px; color: var(--ikinci); font-weight: 600; }
@media (hover: hover) { .ck-hafta-bos:hover .ck-yukle-yazi { text-decoration: underline; } }
.ck-hafta-ileri td { opacity: .6; }
.ck-gecmis-tablo tr.ck-hafta-bu td { background: color-mix(in srgb, var(--altin) 12%, #FFFFFF); }

/* =====================================================================
   TELEFON · KÜÇÜLT VE AYARLA (2026.1030 · kullanıcının isteği: "mobil
   için programı baştan sona analiz et · Günlük İşlemler'de tam
   gözükmüyor · yeni ekran tasarlama, sadece küçült ayarla · aktarımlar
   kalsın"). Yeni düzen yok: yazı ve boşluk küçülür, sütunlar sıkışır;
   yine sığmayan tablo KENDİ KUTUSUNDA yana kayar (sayfa kaymaz).
   Kırılma noktaları mevcut düzenden: 899.98 (telefon) · 560 (dar).
   ===================================================================== */
@media (max-width: 899.98px) {
  /* ORTAK 1 · Kart satırına dönmeyen tablolar kutusunda kayar.
     bilesenler.css "tablo dar ekranda" kuralı .tablo-kutu'nun kaymasını
     kapatıyor (.tablo kart olduğu için); Mizan, Genel İkram, Sıfırlama
     gibi düz tablolar sağdan kesiliyordu. */
  .tablo-kutu:not(:has(> table.tablo)) { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* ORTAK 2 · Gün sonu kâğıdının 640px alt sınırı (ekranlar.css ·
     .kfr-kagit.gsy) liste kâğıtlarına da geçiyordu: Reçeteler, Satış
     Listeleri, Ürün Satışları, 120'li Hesaplar. Kâğıt ekrana sığar,
     içindeki geniş tablo kâğıdın içinde kayar. */
  .kfr-kagit.gsy.rc-kagit, .kfr-kagit.gsy.ck-kagit { min-width: 0; width: auto; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .sayfa-icerik > [data-govde]:has(> .kfr-kagit.rc-kagit) { display: block; overflow-x: visible; }
  .kfr-kagit.gsy .rc-gecmis-tablo { min-width: 640px; }
  .kfr-kagit.gsy.sl-kagit .sl-liste { min-width: 620px; }
  .kfr-kagit.gsy .rc-liste { min-width: 520px; }
  .kfr-kagit.gsy.ck-kagit .ck-tablo { min-width: 680px; }
  .kfr-kagit.gsy.ck-kagit .ck-kunye { min-width: 520px; }

  /* Sıfırlama · gün sonu tablosunun 460px alt sınırı gerekmiyor. */
  .gs-tablo.sf-tablo { min-width: 0; }
  .sf-tablo th, .sf-tablo td { padding: 0 8px; }

  /* Kâr-Zarar · "Varlıklar nasıl hareket etti" tablosu kutusunda kayar. */
  .kz-akis .kz-kutu-govde { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .kz-kutu-basi { flex-wrap: wrap; }

  /* Aktarım şablonları · giriş hücresi kart satırında tam genişlik. */
  .tablo-girisli tbody td.tablo-ek { flex: 1 1 100%; max-width: none; }

  /* iPhone · pencere alt çubuğun arkasında kalmasın. */
  .pencere-panel { max-height: calc(100dvh - 64px); }
}

@media (max-width: 560px) {
  /* Sayfa başlığı (kuşak) · daha az yer kaplar. */
  .sayfa-kusak { padding: 12px 14px; margin-bottom: 12px; }
  .kusak-selam-avatar { --avatar: 36px; }
  .sayfa-kusak-alt { font-size: 12px; }

  /* Rapor şeridi (Mizan · Günün hikâyesi · Ayarlar …) · küçük düğmeler,
     sığmayan alta iner, özet yazısı kesilmez. */
  .na-serit { flex-wrap: wrap; gap: 6px; padding: 6px 10px; }
  .rs-tus, .na-serit .secim-sekme, .na-serit .na-ayarlar-dugme { height: 32px; min-height: 32px; padding: 0 9px; font-size: 12px; }
  .rs-secim { gap: 4px; }
  .rs-ozet { white-space: normal; }
  .rs-arama { flex: 1 1 100%; min-width: 0; }

  /* MİZAN (Raporlar · Günlük İşlemler · Yönetim Raporu'ndaki) · TAM SIĞAR
     (2026.1031 · kullanıcının isteği: "puntoyu küçült, tablo tam sığsın,
     metinler daha da küçük olsun"). Kaydırma yok: rakam sütunları %19,
     hesap adı ve açıklama alt satıra kayar. */
  .mz-tablo { min-width: 0; width: 100%; table-layout: fixed; }
  .mz-td-para { width: 19%; }
  .mz-tablo td, .mz-tablo th { padding: 5px 3px; font-size: 9px; }
  .mz-tablo td.mz-td-para { font-size: 8.8px; letter-spacing: -.15px; }
  .mz-tablo td.mz-td-ad { padding-left: 6px; white-space: normal; overflow-wrap: anywhere; }
  .mz-tablo thead th, .rl-kart .mz-tablo thead th { font-size: 7.5px; letter-spacing: 0; padding: 7px 3px; }
  .mz-tablo thead th:first-child { padding-left: 6px; }
  .mz-grup-kod, .mz-grup-ad { font-size: 9.5px; }
  .mz-grup-kod { margin-right: 4px; min-width: 0; }
  .mz-tablo td { line-height: 1.25; }
  .mz-hrk-ust { flex-wrap: nowrap; gap: 3px; }
  .mz-hrk-tarih { white-space: nowrap; overflow-wrap: normal; }
  .mz-grup-say { display: none; }
  .mz-ok, .mz-satir-ok { margin-right: 2px; }
  .mz-tablo tr.mz-satir td, .mz-tablo tr.mz-satir .mz-ad { font-size: 9px; }
  .mz-kod { min-width: 0; margin-right: 3px; font-size: 7.5px; }
  .mz-satir .mz-td-ad { padding-left: 6px; }
  .mz-hrk-ust { gap: 3px; }
  /* Tarih ve fiş pili yan yana tek satır, pil çok küçük (2026.1032). */
  .mz-hrk-tarih { font-size: 7.5px; line-height: 1.2; letter-spacing: 0; }
  .mz-hrk-fis { font-size: 6.5px; line-height: 1.2; padding: 0 3px; letter-spacing: 0; flex: none; }
  .mz-hrk-aciklama { font-size: 8.5px; line-height: 1.25; }
  .mz-tablo tr.mz-hrk td.mz-td-ad { padding-left: 10px; }
  .mz-daha-dugme { font-size: 10px; }
  .rl-kart .mz-kagit { margin: 6px; }

  /* A4 kâğıdı · 9,6 px okunmuyordu. */
  .kfr-kagit { font-size: 10.5px; }
  .kfr-kagit td { padding: 2px 4px; }

  /* Kasa Fark · ay tablosu açıklama sütunları 0'a iniyordu. */
  .kfr-ay-tablo { min-width: 560px; }

  /* 120'li Hesaplar · giriş kartı ve haftalık liste. */
  .ck-giris-kart { padding: 14px; overflow-x: auto; }
  .ck-giris-yazi h2 { font-size: 20px; }
  .ck-gecmis-tablo { font-size: 12px; min-width: 520px; }
  .ck-gecmis-tablo th, .ck-gecmis-tablo td { padding: 6px; }

  /* Kâr-Zarar · hareket tablosu. */
  .kz-akis-tablo th, .kz-akis-tablo td { padding: 6px 5px; }
  .kz-akis-tablo .kz-td-tutar { font-size: 11.5px; }

  /* Genel İkram. */
  .gik-liste { padding: 4px 8px 12px; }
  .gik-tablo th, .gik-tablo td { padding: 6px; font-size: 12px; }
  .gik-tablo td { overflow-wrap: anywhere; }

  /* Stok sayım listeleri (depolar · hammadde · ticari mal · demirbaş
     sayımı) · kutusunda kayıyordu, daha az yer kaplar. */
  .dpk:not(.dpl) .dpg-tablo { min-width: 1060px; font-size: 12px; }
  .dpk:not(.dpl) .dp-tablo th, .dpk:not(.dpl) .dp-tablo td { padding: 0 6px; }
  .dpg-tek .dpg-tablo thead th { font-size: 10px; letter-spacing: .02em; }
  .dp-fiyat-tablo { min-width: 0; font-size: 12px; }
  .dp-fiyat-tablo th, .dp-fiyat-tablo td { padding: 0 6px; }

  /* Reçete · satış listesi · ürün satışları kâğıtları. */
  .kfr-kagit.gsy.rc-kagit, .kfr-kagit.gsy.ck-kagit { padding: 8px; font-size: 12px; }
  .kfr-kagit.gsy .rc-liste td { padding: 0 4px; height: 32px; }
  .kfr-kagit.gsy .rc-liste tr.kfr-obek td { font-size: 9.5px; letter-spacing: 0; }
  .kfr-kagit.gsy .gsy-logo { width: 60px; }
  .kfr-kagit.gsy .kfr-kunye .kfr-etiket { font-size: 9px; letter-spacing: .02em; }
  .kfr-kagit.gsy .rc-veri { min-width: 680px; }
}

/* ---- Nakit Akış · erken ödeme (göç 286 · 2026.1034) ----
   Tekrarlayan öngörünün yanında takvim-onay düğmesi; seçim penceresi ve
   tepedeki "Ödeme yapılmış olabilir mi?". */
.na-erken-simge { flex: none; display: block; }
.na-erken-simge .na-erken-onay { stroke: var(--basari, #4B8A6D); stroke-width: 2; }
.na-erken-simge .na-erken-rozet { fill: var(--altin, #B8924A); stroke: var(--yuzey, #fff); stroke-width: 1.2; }
.na-erken-simge .na-erken-ok { stroke: #fff; stroke-width: 1.5; }
.na-erken-dugme {
  flex: none; align-self: center; display: inline-grid; place-items: center;
  width: 30px; height: 30px; margin: -6px -6px -6px 0; padding: 0;
  border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: 9px;
  background: var(--yuzey, #fff); color: var(--metin); cursor: pointer;
  transition: background .15s, border-color .15s, transform .15s;
}
.na-erken-dugme:hover { background: var(--altin-soluk, #F4EBD8); border-color: var(--altin, #B8924A); transform: translateY(-1px); }
.na-erken-dugme:active { transform: none; }
.na-olasi-dugme { gap: 6px; }
.na-olasi-dugme .na-erken-simge { width: 16px; height: 16px; }

.pencere.na-erken-pencere { max-width: 600px; }
.na-erken-bas { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.na-erken-bas .na-erken-simge { width: 30px; height: 30px; color: var(--vurgu); }
.na-erken-bas b { display: block; font-size: 15px; }
.na-erken-bas span { font-size: 12.5px; color: var(--ikinci); }
.na-erken-not { margin: 0 0 10px; font-size: 12.5px; color: var(--ikinci); }
.na-erken-arac { display: flex; gap: 8px; margin-bottom: 8px; }
.na-erken-arac .alan-kutu { flex: 1 1 auto; min-width: 0; }
.na-erken-arac .rs-tus { flex: none; }
.na-erken-arac .rs-tus[aria-pressed="true"] { background: var(--altin-soluk, #F4EBD8); border-color: var(--altin, #B8924A); }
.na-erken-liste {
  max-height: min(52vh, 420px); overflow-y: auto;
  border: 1px solid var(--kenar); border-radius: var(--kose-kutu, 10px);
}
.na-erken-satir, .na-olasi-satir {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; border-bottom: 1px solid var(--ayirici);
  font-size: 13px; cursor: pointer;
}
.na-olasi-satir { cursor: default; }
.na-erken-satir:last-child, .na-olasi-satir:last-child { border-bottom: 0; }
.na-erken-satir:hover { background: var(--oyuk); }
.na-erken-satir[hidden] { display: none; }
.na-erken-tarih { flex: none; width: 40px; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.na-erken-ack { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.na-erken-ack small { color: var(--ikinci); }
.na-erken-tutar { flex: none; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.na-erken-alt {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  margin-top: 10px; font-size: 13px;
}
.na-erken-ozet b { font-variant-numeric: tabular-nums; }

.na-olasi-grup {
  border: 1px solid var(--altin-soluk, #E6D5B0); border-radius: var(--kose-kutu, 10px);
  margin-bottom: 10px; overflow: hidden; background: var(--yuzey);
}
.na-olasi-bas {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 8px 12px; background: var(--oyuk); border-bottom: 1px solid var(--ayirici);
}
.na-olasi-bas b { display: block; font-size: 13.5px; }
.na-olasi-bas span { font-size: 12px; color: var(--ikinci); }
.na-olasi-bas .rs-tus { flex: none; }
.na-olasi-neden { font-style: normal; color: var(--altin-koyu, #8C6A2A); }
.na-olasi-bos { margin: 18px 0; text-align: center; font-size: 14px; color: var(--ikinci); }
.na-olasi-ara { margin: 16px 0 8px; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci); }
.na-olasi-eslesen { border-color: var(--kenar); opacity: .9; }

@media (max-width: 560px) {
  .na-olasi-dugme span { display: none; }
  .na-erken-satir, .na-olasi-satir { gap: 7px; padding: 7px 9px; font-size: 12px; }
  .na-olasi-satir { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: start; row-gap: 6px; }
  .na-olasi-satir .dugme-birincil { grid-column: 1 / -1; justify-self: end; }
  .na-erken-tarih { width: 34px; }
}

/* Platform dökümü sade (2026.1038) · tarih saat · Genresman · platform · fark · açıklama. */
.ty-sade td.ty-ack { font-size: 11.5px; color: var(--metin); line-height: 1.35; min-width: 180px; }
.ty-sade .ty-tamam { color: var(--basari, #4B8A6D); }
.ty-sade td:first-child { white-space: nowrap; }
@media (max-width: 560px) {
  /* Telefonda açıklama satırın altına iner: dört sayı sütunu tam genişlikte. */
  .ty-sade thead tr, .ty-sade tbody tr, .ty-sade tfoot tr {
    display: grid; grid-template-columns: 74px repeat(3, minmax(0, 1fr)); align-items: center;
  }
  .ty-sade thead th:last-child { display: none; }
  .ty-sade td, .ty-sade th { border-bottom: 0; }
  .ty-sade tbody tr { border-bottom: 1px solid var(--ayirici, #EFE6D4); }
  .ty-sade td.ty-ack { grid-column: 1 / -1; min-width: 0; font-size: 10.5px; padding-top: 0; }
  .ty-sade td.ty-ack:empty, .ty-sade tfoot td:last-child { display: none; }
}

/* ---- Ayarlar · dört ana kart ve simgeli satırlar (2026.1042) ---- */
.ayarlar-obek-ana { min-height: 96px; }
.ayarlar-obek-ana .ayarlar-obek-simge { width: 52px; height: 52px; border-radius: 16px; }
.ayarlar-oge { justify-content: flex-start; }
.ayarlar-oge .ayarlar-git-yazi { flex: 1; }
.ayarlar-oge-simge {
  flex: none; display: inline-grid; place-items: center;
  width: 36px; height: 36px; border-radius: 11px;
  background: var(--kart-yuzey);
  box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
  color: var(--defter-koyu);
}
.ayarlar-git-satir .ayarlar-oge-simge .simge { opacity: 1; }

/* ---- Ayarlar alt sayfaları · yeni düzen ve taşmalar (2026.1053) ----
   Bilgi yazıları kartın içinde nefes alır, kenara yapışmaz ve taşmaz;
   Hesabım'ın tepesinde kimlik kartı; seçici altındaki yardım yazısı
   seçiciye binmez. */
.ayarlar-kart > .bilgi-satiri,
.ayarlar-satir > .bilgi-satiri {
  padding: 12px 0; font-size: 13px; line-height: 1.55; color: var(--ikinci);
  white-space: normal; overflow-wrap: anywhere;
}
.ayarlar-satir:has(> .bilgi-satiri) { min-height: 0; }
.ayarlar-kimlik { display: flex; align-items: center; gap: 14px; padding: 16px 18px !important; }
.ayarlar-kimlik-harf {
  flex: none; width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center;
  font-family: var(--yazi-baslik); font-size: 20px; color: var(--defter-koyu);
  background: var(--kart-yuzey); box-shadow: inset 0 0 0 1px var(--defter-tel-soluk);
}
.ayarlar-kimlik-yazi { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ayarlar-kimlik-yazi b { font-family: var(--yazi-baslik); font-size: 18px; color: var(--defter-koyu); }
.ayarlar-kimlik-yazi span { font-size: 13px; color: var(--ikinci); overflow-wrap: anywhere; }
.ayar-acilan .sec + .alan-yardim, .ayar-acilan .alan-yardim { margin-top: 6px; display: block; }
.ayar-acilan .sec { display: block; margin-top: 10px; }
.ayarlar-git-yazi .ayarlar-yardimci { overflow-wrap: anywhere; }
.ku-sag { flex-wrap: wrap; justify-content: flex-end; }

/* ---- Nakit Tutturma Raporu (2026.1055 · göç 293 · tek satır 2026.1059) ----
   Satır tek kat: takvim yaprağı · son nakit + "muhasebe bitti" simgesi ·
   sayım + durum simgesi. Sayım alt çizgili yazı; basınca kutu olur. */
.nt-kart { padding-bottom: 0; }
.nt-satir {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--ayirici);
  font-variant-numeric: tabular-nums;
}
.nt-baslik {
  padding-top: 8px; padding-bottom: 8px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--ikinci);
  background: var(--defter-baslik);
  position: sticky;
  top: 0;
  z-index: 1;
}
.nt-baslik .nt-tutar { padding-right: 32px; font-size: inherit; }
.nt-tarih { display: flex; align-items: center; gap: 8px; min-width: 0; }
.nt-gun {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 9px;
  font-size: 17px; font-weight: 700;
  color: var(--vurgu, #8F2D22);
  background: var(--yuzey);
  border: 1px solid var(--kenar);
  box-shadow: inset 0 3px 0 var(--vurgu, #8F2D22);
}
.nt-gun-alt { display: flex; flex-direction: column; line-height: 1.15; }
.nt-gun-alt b { font-size: 12.5px; font-weight: 600; color: var(--ikinci); }
.nt-gun-alt small { font-size: 12.5px; color: var(--ikinci); }
.nt-tutar { display: flex; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; font-size: 15.5px; }
.nt-deger { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.nt-sayim-cizgi, .nt-sayim-deger {
  min-width: 0;
  max-width: 100%;
  padding: 2px 0 1px;
  font: inherit;
  font-weight: 700;
  color: var(--metin);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  background: none;
  border: 0;
  border-bottom: 1.5px solid var(--kenar);
  border-radius: 0;
}
.nt-sayim-cizgi { cursor: pointer; min-width: 64px; text-align: right; }
.nt-sayim-deger { border-bottom-color: transparent; }
.nt-sayim-bos { font-weight: 400; color: var(--ikinci); }
.nt-sayim-cizgi.nt-sayim-bos { border-bottom-style: dashed; }
.nt-sayim-kutu {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 2px 0 1px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  text-align: right;
  color: var(--metin);
  background: transparent;
  border: 0;
  border-bottom: 2px solid var(--altin-koyu);
  border-radius: 0;
  outline: none;
}
.nt-ikon {
  flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 0;
  border-radius: 50%;
  border: 0;
  background: none;
  color: var(--kenar);
}
button.nt-ikon { cursor: pointer; }
.nt-ikon-tuttu { color: #fff; background: var(--basari); }
.nt-ikon-kabul { color: var(--basari); border: 1.5px solid var(--basari); }
.nt-ikon-fark { color: var(--hata); }
.nt-ikon-bekliyor { color: var(--uyari-cizgi); }
.nt-bitti svg { width: 20px; height: 20px; }
.nt-bitti { color: var(--kenar); }
button.nt-bitti:not(.nt-bitti-acik) { color: var(--ikinci); }
.nt-bitti-acik { color: var(--basari); }
/* DAHA BELİRGİN (2026.1465 · kullanıcı: "yeşille gri anlaşılmıyor").
   Bitti: dolu yeşil rozet, beyaz tik. Bitmedi: kesik çizgili boş halka, soluk. */
.nt-bitti.nt-bitti-acik { color: #fff; background: var(--basari); box-shadow: 0 1px 3px rgba(0, 0, 0, .2); }
.nt-bitti.nt-bitti-acik svg { width: 17px; height: 17px; }
.nt-bitti:not(.nt-bitti-acik) { color: var(--ikinci); border: 1.5px dashed var(--ikinci); opacity: .7; }
.nt-bitti:not(.nt-bitti-acik) svg { visibility: hidden; }
button.nt-bitti:not(.nt-bitti-acik):hover { opacity: 1; border-color: var(--basari); }
button.nt-bitti:not(.nt-bitti-acik):hover svg { visibility: visible; color: var(--basari); }
.nt-gelecek { opacity: .55; }
.nt-fark .nt-sayim-cizgi, .nt-fark .nt-sayim-deger { color: var(--metin-hata); }
.nt-ozet { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.nt-say { padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.nt-say-tuttu { color: var(--metin-basari); background: rgba(47, 107, 74, .12); }
.nt-say-fark { color: var(--metin-hata); background: rgba(164, 36, 48, .12); }
.nt-say-bekliyor { color: var(--metin-uyari); background: rgba(208, 135, 0, .14); }
.nt-kisiler { display: grid; gap: calc(var(--bosluk) * 1.5); }
.nt-kisi-not { margin: 0; font-size: var(--kucuk-boy); color: var(--ikinci); }
.nt-kisi { display: grid; gap: 4px; }
.nt-kisi label { font-size: var(--kucuk-boy); color: var(--ikinci); }
.nt-kisi select { width: 100%; padding: 8px; font: inherit; border: 1px solid var(--kenar); border-radius: 8px; background: var(--yuzey); color: var(--metin); }
@media (max-width: 420px) {
  .nt-satir { column-gap: 8px; padding: 9px 10px; }
  .nt-tutar { font-size: 14.5px; gap: 4px; }
  .nt-ikon { width: 22px; height: 22px; }
  .nt-baslik .nt-tutar { padding-right: 26px; }
}

/* ---- Günlük İşlemler · günün kontrolü (2026.1060 · göç 295 · sağ sütun 2026.1061) ----
   Kasa Fark Raporu'nun düzeni: solda mizan, sağda kontrol ve son 30 gün.
   Dar ekranda alt alta (kontrol mizanın altında). */
.gi-duzen {
  display: grid;
  grid-template-columns: minmax(0, 820px) minmax(320px, 1fr);
  gap: calc(var(--bosluk) * 1.5);
  align-items: start;
}
.gi-duzen > .rl-kart { margin: 0; max-width: none; }
@media (max-width: 1180px) {
  .gi-duzen { grid-template-columns: minmax(0, 1fr); }
  .gi-duzen > .rl-kart { margin: 0 auto; max-width: 820px; width: 100%; }
  .gi-duzen > .gk-yan { max-width: 820px; width: 100%; margin: 0 auto; box-sizing: border-box; }
}
@media print { .gk-yan { display: none !important; } .gi-duzen { display: block; } }
.gk-yan { position: sticky; top: calc(var(--bosluk) * 2); }
@media (max-width: 1180px) { .gk-yan { position: static; } }
.gk-yan.gk-tamam { border-top: 3px solid var(--basari); }
.gk-yan.gk-duzelt { border-top: 3px solid var(--hata); }
.gk-yan.gk-bekliyor { border-top: 3px solid var(--uyari-cizgi); }
.gk-ust { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.gk-alt, .gk-ipucu, .gk-bos { margin-top: 6px; font-size: var(--kucuk-boy); color: var(--ikinci); }
.gk-bos { padding: 10px; border: 1px dashed var(--kenar); border-radius: 8px; text-align: center; }
.gk-ayrac { height: 1px; margin: 14px 0 10px; background: var(--ayirici); }
.gk-tablo-baslik { font-size: 15px; }
.gk-c-tarih { width: 46px; } .gk-c-not { width: 44px; } .gk-c-kim { width: 88px; } .gk-c-is { width: 70px; }
.gk-tablo td { vertical-align: middle; }
.gk-acik-say { color: var(--hata); }
.gk-durum {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px; border-radius: 999px;
  font-size: 12.5px; font-weight: 600; white-space: nowrap;
}
.gk-tablo .gk-durum { font-size: 11.5px; padding: 2px 8px; }
.gk-durum-tamam { color: #fff; background: var(--basari); }
.gk-durum-duzelt { color: var(--metin-hata); background: rgba(164, 36, 48, .12); }
.gk-durum-bekliyor { color: var(--metin-uyari); background: rgba(208, 135, 0, .14); }
.gk-durum-suruyor { color: var(--ikinci); background: var(--oyuk); }
.gk-notlar { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.gk-not {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px 12px; border-radius: 10px;
  background: #fff; border: 1px solid var(--ayirici);
}
.gk-not-acik { border-color: rgba(164, 36, 48, .35); background: rgba(164, 36, 48, .04); }
.gk-not-tamam { opacity: .85; }
.gk-not-isaret { flex: none; margin-top: 2px; color: var(--hata); }
.gk-not-tamam .gk-not-isaret { color: var(--basari); }
.gk-not-govde { min-width: 0; flex: 1; }
.gk-not-ref { font-size: 12.5px; color: var(--ikinci); overflow-wrap: anywhere; }
.gk-not-metin { margin-top: 2px; font-weight: 600; overflow-wrap: anywhere; }
.gk-not-kim { margin-top: 3px; font-size: 12px; color: var(--ikinci); }
.gk-not-cevap { margin-top: 4px; font-size: 13px; color: var(--metin-basari); }
.gk-not-dugmeler, .gk-dugmeler { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.gk-dugmeler { margin-top: 12px; }
.gk-dugmeler .dugme-birincil svg { vertical-align: -2px; }
.gk-bayrak {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; margin-left: 6px; padding: 0;
  vertical-align: middle;
  border: 0; border-radius: 6px; background: none;
  color: var(--kenar); cursor: pointer; opacity: .75;
}
.gk-bayrak:hover { color: var(--hata); opacity: 1; background: rgba(164, 36, 48, .08); }
.gk-bayrak-acik { color: var(--hata); opacity: 1; }
.gk-pencere { display: grid; gap: 10px; }
.gk-yazi { width: 100%; box-sizing: border-box; padding: 10px; font: inherit; border: 1px solid var(--kenar); border-radius: 10px; background: #fff; color: var(--metin); resize: vertical; }
.gk-not-ozet { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(164, 36, 48, .05); border: 1px solid rgba(164, 36, 48, .25); font-size: 13.5px; }
.gk-not-ozet span { display: inline-flex; align-items: center; gap: 6px; color: var(--metin-hata); }
.gk-satir-dugme td { padding: 4px 6px 10px !important; background: #F6EBD7; border-bottom: 1px solid var(--kenar); }
.gk-satir-dugme .gk-dugmeler { margin-top: 0; }
.gk-c-ikon { width: 74px; }
.gk-orta { text-align: center !important; }
.gk-tablo td { padding-top: 5px !important; padding-bottom: 5px !important; }
.gk-ikon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%;
  background: none; color: var(--kenar); vertical-align: middle;
}
button.gk-ikon { cursor: pointer; }
@media (hover: hover) { button.gk-ikon:hover { box-shadow: 0 0 0 3px var(--altin-soluk); } }
.gk-ikon-suruyor { color: var(--kenar); }
button.gk-ikon-suruyor { color: var(--ikinci); }
.gk-ikon-bitti { color: var(--basari); }
.gk-ikon-tamam { width: 24px; height: 24px; color: #fff; background: var(--basari); }
.gk-ikon-duzelt { color: var(--hata); }
.gk-ikon-bekliyor { color: var(--uyari-cizgi); }
.gk-ikon-bos { color: var(--kenar); font-size: 13px; }

/* GEÇ BELİREN BEKLEME (2026.1073 · kullanıcının bildirimi: "anlık bir
   yükleme ekranı açılıp kapanıyor, kötü duruyor"). Yönetim Raporu'nun
   ve Nakit Akış'ın üst hapı, soluklaşma ve satır içi bekleme yazıları
   0,45 sn içinde biten işte hiç görünmez. */
.yr-yukleniyor:not(.na-yukleme), .gh-yukleniyor { animation: yp-belir .45s ease-in .7s both; }
.yr-bekliyor .yr-kapaklar,
.yr-bekliyor .yr-obek,
.yr-bekliyor .yr-bn,
.yr-bekliyor [data-gomulu-yer] { transition: opacity .3s ease-in .7s; }
/* 2026.1075 · Nakit Akış hapı belirirken de yumuşak gelir (zamanlayıcı 0,7 sn). */
.yr-yukleniyor.na-yukleme:not([data-gidiyor]) { animation: yp-belir .35s ease-in both; }

/* ---- Bütçe Planlama (2026.1078 · göç 297) ---- */
.bp-kart { padding-bottom: 0; }
.bp-tablo { width: 100%; border-collapse: collapse; font-size: 15px; }
.bp-tablo th { text-align: left; padding: 10px 14px; font-size: 11.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); background: var(--defter-baslik); }
.bp-tablo td { padding: 8px 14px; border-bottom: 1px solid var(--ayirici); }
.bp-sag { text-align: right !important; }
.bp-ad { color: var(--ikinci); font-size: 13.5px; }
.bp-ay { font-weight: 600; white-space: nowrap; }
.bp-bu-ay td { background: rgba(194, 162, 104, .14); }
.bp-kutu { width: 100%; max-width: 200px; box-sizing: border-box; padding: 6px 2px; font: inherit; font-weight: 700; text-align: right; color: var(--metin); background: transparent; border: 0; border-bottom: 1.5px dashed var(--kenar); border-radius: 0; font-variant-numeric: tabular-nums; }
.bp-kutu:focus { outline: none; border-bottom: 2px solid var(--altin-koyu); }
@media (max-width: 520px) {
  .bp-tablo td, .bp-tablo th { padding: 8px 10px; }
  .bp-ad { font-size: 12px; }
}

/* =====================================================================
   YÖNETİM RAPORU · BAŞTAN (2026.1078 · 4-ekranlar/2-raporlar/yonetim-raporu.js)
   ---------------------------------------------------------------------
   Kullanıcının isteği: "çok basit, metin az, ikon bol, büyük metinli ·
   solda ikon sağda kart · sekme olmasın aşağı kaydırdıkça görelim ·
   mobilde rahat görünmesi önemli". Tek sütun, en çok 720px; her satır
   aynı kalıp: renkli ikon karesi + büyük rakamlı kart.
   ===================================================================== */
.sayfa-icerik > [data-govde]:has(> .yr2) { max-width: 720px; }
.yr2 { padding-bottom: calc(var(--bosluk) * 4); }
.yr2-bolum { margin: 0 0 36px; }
.yr2-baslik { display: flex; align-items: center; gap: 12px; margin: 8px 0 14px; font-family: var(--yazi-baslik); font-size: 24px; line-height: 1.15; color: var(--metin); }
.yr2-baslik > span:not(.yr2-ikon) { display: flex; flex-direction: column; }
.yr2-baslik small { font-family: var(--yazi-metin); font-size: 13px; font-weight: 500; color: var(--ikinci); margin-top: 2px; }
.yr2-ara { margin: 22px 0 10px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.yr2-liste, .yr2-adimlar { display: flex; flex-direction: column; gap: 10px; }

.yr2-satir { display: flex; align-items: center; gap: 14px; width: 100%; margin: 0; padding: 12px 14px; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 14px; box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); margin-bottom: 4px; font: inherit; color: inherit; text-align: left; transition: transform .12s, box-shadow .12s; }
button.yr2-satir { cursor: pointer; }
.yr2-ikon { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; }
.yr2-ikon svg { width: 26px; height: 26px; }
.yr2-baslik .yr2-ikon { width: 44px; height: 44px; border-radius: 12px; }
.yr2-baslik .yr2-ikon svg { width: 22px; height: 22px; }
.yr2-r-altin   { background: #E0E2E5; color: #8A6A2C; }
.yr2-r-yesil   { background: #E1EEE5; color: var(--basari); }
.yr2-r-kirmizi { background: #F6E0E0; color: var(--hata); }
.yr2-r-mavi    { background: #E0EAF3; color: var(--bilgi); }
.yr2-r-turuncu { background: #F8E7D0; color: var(--uyari); }
.yr2-r-mor     { background: #ECE3F2; color: #6B4687; }
.yr2-r-gri     { background: #EEE8DD; color: var(--ikinci); }
.yr2-r-bordo   { background: var(--vurgu); color: #fff; }

.yr2-kart { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
@media (hover: hover) { button.yr2-satir:hover { transform: translateY(-1px); box-shadow: 0 5px 0 var(--altin-koyu), 0 8px 14px rgba(74, 52, 32, .14); } }
button.yr2-satir:active { transform: translateY(4px); box-shadow: 0 0 0 var(--altin-koyu), 0 1px 2px rgba(74, 52, 32, .18); }
button.yr2-satir:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.yr2-ok { flex: none; width: 12px; font-size: 22px; color: var(--kenar); }
.yr2-ust { display: flex; justify-content: space-between; gap: 8px; }
.yr2-ad { font-size: 14px; font-weight: 600; color: var(--ikinci); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr2-ek { flex: none; font-size: 13px; font-weight: 600; color: var(--ikinci); }
.yr2-tutar { font-size: 26px; font-weight: 700; line-height: 1.15; color: var(--metin); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.yr2-alt { font-size: 13px; color: var(--ikinci); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr2-cubuk { display: block; height: 6px; margin-top: 6px; border-radius: 3px; background: var(--ayirici); overflow: hidden; }
.yr2-cubuk i { display: block; height: 100%; background: var(--basari); border-radius: 3px; }
.yr2-iyi { color: var(--basari) !important; }
.yr2-kotu { color: var(--hata) !important; }
.yr2-soluk { opacity: .6; }
.yr2-soluk-yazi { color: var(--kenar); font-weight: 500; }
.yr2-satir.yr2-vurgu { border: 2px solid var(--vurgu); box-shadow: 0 4px 0 var(--vurgu-koyu), 0 6px 10px rgba(74, 52, 32, .12); }
.yr2-akis { display: inline-flex; flex-wrap: wrap; gap: 4px 12px; font-variant-numeric: tabular-nums; }
.yr2-akis span:first-child { color: var(--ikinci); }
.yr2-lejant { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 4px; font-size: 13px; color: var(--ikinci); }
.yr2-bos { margin: 4px 0; padding: 14px 16px; border: 1px dashed var(--kenar); border-radius: 14px; font-size: 14px; color: var(--ikinci); }
.yr2-not { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; padding: 10px 14px; background: var(--yuzey); border: 1px dashed var(--kenar); border-radius: 14px; font-size: 14px; color: var(--ikinci); }
.yr2-baslik > span:not(.yr2-ikon), .yr2-ara { text-shadow: 0 0 6px var(--zemin), 0 0 2px var(--zemin); }
.yr2-ipucu { text-align: center; font-size: 13px; color: var(--ikinci); }

/* Gün gün · ciro ve ödemeler */
.yr2-gunler { display: flex; flex-direction: column; margin-bottom: 4px; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 14px; box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); overflow: hidden; }
.yr2-gun { display: grid; grid-template-columns: 54px 1fr 118px; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 7px 14px; border: 0; border-bottom: 1px solid var(--ayirici); background: none; font: inherit; color: inherit; text-align: left; }
button.yr2-gun { cursor: pointer; }
button.yr2-gun:hover { background: #F7EFDF; }
.yr2-gun:last-child { border-bottom: 0; }
.yr2-gun-no { display: flex; align-items: baseline; gap: 5px; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
.yr2-gun-no small { font-size: 11.5px; font-weight: 500; color: var(--ikinci); }
.yr2-gun-cubuk { height: 10px; border-radius: 5px; background: transparent; overflow: hidden; }
.yr2-gun-cubuk i { display: block; height: 100%; border-radius: 5px; background: var(--basari); opacity: .75; }
.yr2-gun-cubuk.yr2-kirmizi i { background: var(--hata); opacity: .6; }
.yr2-gun-tutar { display: flex; flex-direction: column; align-items: flex-end; font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.yr2-gun-tutar small { font-size: 11px; font-weight: 500; color: var(--ikinci); }
.yr2-hs { background: #F8F1E3; }
.yr2-gelecek { opacity: .45; }
.yr2-secili { box-shadow: inset 4px 0 0 var(--vurgu); }
.yr2-gun-toplam { background: #F1E6D0; }
.yr2-gun-toplam .yr2-gun-tutar { font-size: 17px; font-weight: 700; }

/* Paneller · sade liste */
.yr2-p-bas { margin: 16px 0 8px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); }
.yr2-p-bas:first-child { margin-top: 0; }
.yr2-p-liste { border: 1px solid var(--ayirici); border-radius: 12px; overflow: hidden; }
.yr2-p-satir { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--ayirici); font-size: 15px; }
.yr2-p-satir:last-child { border-bottom: 0; }
.yr2-p-satir > span { min-width: 0; }
.yr2-p-satir small { color: var(--ikinci); font-size: 12.5px; }
.yr2-p-satir b { flex: none; font-variant-numeric: tabular-nums; }
.yr2-p-top { background: #F4EAD6; font-weight: 700; }
.yr2-p-iyi b { color: var(--basari); }
.yr2-p-uyari { background: #FBEDED; }
.yr2-p-uyari b { color: var(--hata); }
.yr2-p-dugme { width: 100%; margin-top: 14px; }
.yr2-pencere .yr2-adimlar .yr2-tutar { font-size: 22px; }

@media (max-width: 520px) {
  .yr2-baslik { font-size: 21px; }
  .yr2-ikon { width: 46px; height: 46px; border-radius: 12px; }
  .yr2-ikon svg { width: 23px; height: 23px; }
  .yr2-satir { padding: 10px 12px; gap: 12px; }
  .yr2-tutar { font-size: 23px; }
  .yr2-gun { grid-template-columns: 46px 1fr 104px; padding: 7px 12px; }
  .yr2-gun-tutar { font-size: 14px; }
}
/* Gün · gelir hesabı · Getir (2026.1082–1083) · uygulamanın kendi
   takvimli kutusu ve açılır listesi */
.yr2-secim { align-items: center; flex-wrap: wrap; }
.yr2-trh { width: 150px; }
.yr2-gelir { width: 220px; }
.yr2-secim .alan-kutu { height: 36px; min-height: 36px; font-size: 14px; }
.yr2-getir:disabled { opacity: .7; cursor: progress; }
.yr2-bekle { opacity: .45; pointer-events: none; transition: opacity .2s .15s; }
@media (max-width: 520px) {
  .yr2-trh { width: 140px; }
  .yr2-gelir { flex: 1; min-width: 150px; width: auto; }
}
/* Tutar kuruşlu, ₺ işareti altın (2026.1085) */
.yr2-tl { color: var(--ikinci); font-weight: 600; font-size: .82em; }
.yr2-gun { grid-template-columns: 54px 1fr 134px; }
@media (max-width: 520px) {
  .yr2-gun { grid-template-columns: 44px 1fr 122px; }
  .yr2-gun-tutar { font-size: 13.5px; }
}

/* ---------- Yönetim Raporu · zengin parçalar (2026.1089) ----------
   "Rapor full aynı kartlardan oluşuyor, biraz daha zenginleştir."
   Vurgu kartı (bordo) · üçlü/ikili kutucuk · çubuklu liste kartı ·
   denge çubukları · hedef halkası · sütun grafiği · net durum terazisi. */
.yr2-r-beyaz { background: rgba(255, 255, 255, .16); color: #fff; }
.yr2-liste + .yr2-kutucuklar, .yr2-kutucuklar + .yr2-liste, .yr2-vurgukart + .yr2-kutucuklar,
.yr2-kutu + .yr2-kutucuklar, .yr2-kutucuklar + .yr2-grafik, .yr2-kutucuklar + .yr2-kutu { margin-top: 12px; }

.yr2-vurgukart { position: relative; display: flex; flex-direction: column; gap: 4px; width: 100%; margin: 0 0 4px; padding: 16px 18px 14px; border: 0; border-radius: 18px; text-align: left; font: inherit; color: #fff; cursor: pointer; overflow: hidden;
  background: radial-gradient(120% 140% at 100% 0%, #B23A48 0%, var(--vurgu) 45%, var(--vurgu-koyu) 100%);
  box-shadow: 0 4px 0 #4E0F17, 0 10px 22px rgba(107, 23, 33, .28); transition: transform .12s, box-shadow .12s; }
.yr2-vurgukart::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; border: 22px solid rgba(255, 255, 255, .06); pointer-events: none; }
.yr2-vurgukart:active { transform: translateY(4px); box-shadow: 0 0 0 #4E0F17, 0 2px 6px rgba(107, 23, 33, .25); }
.yr2-vk-ust { display: flex; align-items: center; gap: 10px; }
.yr2-vk-ust .yr2-ikon { width: 40px; height: 40px; border-radius: 12px; }
.yr2-vk-ust .yr2-ikon svg { width: 22px; height: 22px; }
.yr2-vk-ad { font-size: 15px; font-weight: 600; opacity: .9; }
.yr2-vk-tutar { font-size: 36px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; font-variant-numeric: tabular-nums; margin-top: 4px; }
.yr2-vk-tutar .yr2-tl, .yr2-vurgukart .yr2-tl { color: #F3D9A4; }
.yr2-vk-alt { font-size: 13.5px; opacity: .85; }
.yr2-vk-serit { display: flex; height: 10px; margin-top: 10px; border-radius: 5px; overflow: hidden; background: rgba(255, 255, 255, .15); }
.yr2-vk-serit i { display: block; height: 100%; }
.yr2-p-net { background: #F3D9A4; }
.yr2-p-ikram { background: #C9A8E0; }
.yr2-p-iskonto { background: #F4B670; }
.yr2-p-diger { background: rgba(255, 255, 255, .5); }
.yr2-vk-lejant { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; font-size: 12px; opacity: .9; }
.yr2-vk-lejant span { display: inline-flex; align-items: center; gap: 5px; }
.yr2-vk-lejant i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }

.yr2-kutucuklar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 4px; }
.yr2-kutucuk-iki { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.yr2-kutucuk { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; margin: 0; padding: 12px 12px 11px; font: inherit; color: inherit; text-align: left;
  background: var(--yuzey); border: 1px solid var(--altin); border-radius: 16px; box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); transition: transform .12s, box-shadow .12s; }
button.yr2-kutucuk { cursor: pointer; }
button.yr2-kutucuk:active { transform: translateY(4px); box-shadow: 0 0 0 var(--altin-koyu), 0 1px 2px rgba(74, 52, 32, .18); }
.yr2-kutucuk .yr2-ikon { width: 38px; height: 38px; border-radius: 11px; margin-bottom: 4px; }
.yr2-kutucuk .yr2-ikon svg { width: 20px; height: 20px; }
.yr2-ku-ad { font-size: 13px; font-weight: 600; color: var(--ikinci); }
.yr2-ku-tutar { font-size: 19px; font-weight: 800; line-height: 1.15; font-variant-numeric: tabular-nums; letter-spacing: -.01em; overflow-wrap: anywhere; }
.yr2-ku-alt { font-size: 12px; color: var(--ikinci); line-height: 1.3; }
.yr2-k-mor { border-top: 4px solid #8E6BAE; }
.yr2-k-turuncu { border-top: 4px solid #D08A2E; }
.yr2-k-kirmizi { border-top: 4px solid var(--hata); }
.yr2-k-yesil { border-top: 4px solid var(--basari); }
.yr2-k-mavi { border-top: 4px solid var(--bilgi); }

.yr2-mini-ikonlar { display: inline-flex; gap: 3px; color: var(--ikinci); }
.yr2-mini-ikonlar svg { width: 16px; height: 16px; }
.yr2-rozet { padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.yr2-rz-iyi { background: #E1EEE5; color: var(--basari); }
.yr2-rz-uyari { background: #F8E7D0; color: var(--uyari); }
.yr2-rz-kotu { background: #F6E0E0; color: var(--hata); }

/* Çubuklu liste kartı */
.yr2-kutu { display: block; width: 100%; margin: 0 0 4px; padding: 0; font: inherit; color: inherit; text-align: left; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 16px; box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); overflow: hidden; }
button.yr2-kutu { cursor: pointer; transition: transform .12s, box-shadow .12s; }
button.yr2-kutu:active { transform: translateY(4px); box-shadow: 0 0 0 var(--altin-koyu), 0 1px 2px rgba(74, 52, 32, .18); }
.yr2-kutu-bas { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: linear-gradient(180deg, #FBF1E1, var(--yuzey)); border-bottom: 1px solid var(--ayirici); }
.yr2-kb-yazi { flex: 1; display: flex; flex-direction: column; }
.yr2-kb-yazi small { font-size: 12.5px; color: var(--ikinci); font-weight: 600; }
.yr2-kb-yazi b { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.yr2-kb-sag { font-size: 12.5px; color: var(--ikinci); text-align: right; line-height: 1.5; }
.yr2-cs { display: flex; align-items: center; gap: 12px; width: 100%; margin: 0; padding: 11px 14px; border: 0; border-bottom: 1px solid var(--ayirici); background: none; font: inherit; color: inherit; text-align: left; }
.yr2-cs:last-child { border-bottom: 0; }
button.yr2-cs { cursor: pointer; }
button.yr2-cs:hover { background: #F8F0E1; }
.yr2-cs .yr2-ikon { width: 40px; height: 40px; border-radius: 11px; }
.yr2-cs .yr2-ikon svg { width: 21px; height: 21px; }
.yr2-cs-orta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.yr2-cs-ust { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.yr2-cs-ad { font-size: 15px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr2-cs-tutar { flex: none; font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-cs-cubuk, .yr2-dg-cubuk { display: block; height: 7px; border-radius: 4px; background: var(--ayirici); overflow: hidden; }
.yr2-cs-cubuk i, .yr2-dg-cubuk i { display: block; height: 100%; border-radius: 4px; }
.yr2-cc-kirmizi i { background: linear-gradient(90deg, #C9505B, var(--hata)); }
.yr2-cc-yesil i { background: linear-gradient(90deg, #5C9A76, var(--basari)); }
.yr2-cc-altin i, .yr2-cc-mavi i, .yr2-cc-gri i, .yr2-cc-turuncu i, .yr2-cc-mor i { background: var(--altin); }
.yr2-cs-alt { font-size: 12.5px; color: var(--ikinci); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Denge */
.yr2-denge { padding: 14px 16px; }
.yr2-dg-satir { display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: 10px; margin-bottom: 10px; }
.yr2-dg-ad { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.yr2-dg-ad .yr2-ikon { width: 32px; height: 32px; border-radius: 9px; }
.yr2-dg-ad .yr2-ikon svg { width: 18px; height: 18px; }
.yr2-dg-cubuk { height: 14px; border-radius: 7px; }
.yr2-dg-tutar { font-size: 15px; font-variant-numeric: tabular-nums; }
.yr2-dg-sonuc { display: flex; justify-content: space-between; align-items: center; margin-top: 4px; padding: 10px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; }
.yr2-dg-sonuc b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-dg-arti { background: #E1EEE5; color: var(--basari); }
.yr2-dg-eksi { background: #F6E0E0; color: var(--hata); }

/* Hedef halkası */
.yr2-hedefkart { display: flex; align-items: center; gap: 18px; padding: 16px 18px; }
.yr2-halka { position: relative; flex: none; width: 112px; height: 112px; }
.yr2-halka svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.yr2-halka circle { fill: none; stroke-width: 11; }
.yr2-h-zemin { stroke: var(--ayirici); }
.yr2-h-dolu { stroke: var(--vurgu); stroke-linecap: round; }
.yr2-h-orta { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.yr2-h-orta b { font-size: 24px; font-weight: 800; color: var(--vurgu); line-height: 1; }
.yr2-h-orta small { font-size: 11.5px; color: var(--ikinci); margin-top: 3px; }
.yr2-hk-yazi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.yr2-hk-ad { font-size: 13.5px; font-weight: 600; color: var(--ikinci); }
.yr2-hk-tutar { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.01em; line-height: 1.15; }
.yr2-hk-alt { display: flex; align-items: center; gap: 5px; font-size: 13px; color: var(--ikinci); }
.yr2-hk-alt svg { width: 15px; height: 15px; }

/* Sütun grafiği */
.yr2-grafik { position: relative; margin: 0 0 4px; padding: 16px 14px 8px; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 16px; box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); }
.yr2-g-sutunlar { position: relative; display: flex; align-items: flex-end; gap: 3px; height: 150px; border-bottom: 1px solid var(--kenar); }
.yr2-g-sutun { flex: 1; display: flex; align-items: flex-end; height: 100%; margin: 0; padding: 0; border: 0; background: none; cursor: default; }
button.yr2-g-sutun { cursor: pointer; }
.yr2-g-sutun i { display: block; width: 100%; border-radius: 4px 4px 1px 1px; transition: filter .15s; }
.yr2-g-yesil .yr2-g-sutun i { background: linear-gradient(180deg, #6FAE88, var(--basari)); }
.yr2-g-kirmizi .yr2-g-sutun i { background: linear-gradient(180deg, #D9727B, var(--hata)); }
.yr2-g-sutun.yr2-hs i { filter: saturate(.55) brightness(1.12); }
.yr2-g-sutun.yr2-secili i { background: linear-gradient(180deg, #F3D9A4, var(--altin-koyu)) !important; }
.yr2-g-sutun.yr2-gelecek { opacity: 1; }
.yr2-g-sutun.yr2-gelecek i { background: none !important; }
button.yr2-g-sutun:hover i { filter: brightness(1.1); }
.yr2-g-cizgi { position: absolute; left: 0; right: 0; border-top: 2px dashed var(--vurgu); pointer-events: none; z-index: 1; }
.yr2-g-cizgi em { position: absolute; right: 0; top: -19px; font-style: normal; font-size: 11px; font-weight: 700; color: var(--vurgu); background: var(--yuzey); padding: 0 4px; }
.yr2-g-gunler { display: flex; gap: 3px; margin-top: 4px; }
.yr2-g-gunler span { flex: 1; text-align: center; font-size: 10.5px; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.yr2-acilir { margin-top: 10px; }
.yr2-acilir summary { cursor: pointer; padding: 6px 2px; font-size: 13.5px; font-weight: 600; color: var(--vurgu); }
.yr2-acilir .yr2-gun { grid-template-columns: 54px 1fr; }
.yr2-ipucu-kucuk { margin: 6px 2px 0; font-size: 12.5px; color: var(--ikinci); }

/* Net durum */
.yr2-netkart { padding: 16px 18px; }
.yr2-nk-ust { display: flex; align-items: center; gap: 12px; }
.yr2-nk-ust > span:last-child { display: flex; flex-direction: column; }
.yr2-nk-ust small { font-size: 13px; font-weight: 600; color: var(--ikinci); }
.yr2-nk-ust b { font-size: 30px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.yr2-net-eksi .yr2-nk-ust b { color: var(--hata); }
.yr2-nk-serit { display: flex; height: 12px; margin: 14px 0 8px; border-radius: 6px; overflow: hidden; background: var(--ayirici); }
.yr2-nk-serit i { display: block; height: 100%; }
i.yr2-nk-var { background: var(--basari); }
i.yr2-nk-borc { background: var(--hata); }
.yr2-nk-alt { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; font-size: 13px; color: var(--ikinci); }
.yr2-nk-alt span { display: inline-flex; align-items: center; gap: 6px; }
.yr2-nk-alt i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.yr2-nk-alt b { color: var(--metin); font-variant-numeric: tabular-nums; }

@media (max-width: 520px) {
  .yr2-vk-tutar { font-size: 30px; }
  .yr2-kutucuklar { gap: 8px; }
  .yr2-kutucuk { padding: 10px 9px; border-radius: 14px; }
  .yr2-kutucuk .yr2-ikon { width: 32px; height: 32px; }
  .yr2-kutucuk .yr2-ikon svg { width: 18px; height: 18px; }
  .yr2-ku-tutar { font-size: 15px; }
  .yr2-kutucuk-iki .yr2-ku-tutar { font-size: 17px; }
  .yr2-ku-alt { font-size: 11px; }
  .yr2-halka { width: 92px; height: 92px; }
  .yr2-hk-tutar { font-size: 21px; }
  .yr2-dg-satir { grid-template-columns: 82px 1fr auto; gap: 8px; }
  .yr2-dg-tutar { font-size: 13.5px; }
  .yr2-g-sutunlar { height: 120px; gap: 2px; }
  .yr2-g-gunler { gap: 2px; }
  .yr2-kb-yazi b { font-size: 22px; }
  .yr2-nk-ust b { font-size: 25px; }
}
.yr2-g-sutun.yr2-secili { box-shadow: none; }

/* Bölüm başlıkları daha belirgin (2026.1090 · "başlıklar biraz daha
   belirgin ve iyi olsun"): bordo kenarlı şerit, büyük başlık, üstünde
   bölüm numarası, tarih altın çipte, sağa uzanan altın çizgi. */
.yr2 { counter-reset: yr2-bolum; }
.yr2-bolum { counter-increment: yr2-bolum; }
.yr2-baslik { position: relative; gap: 14px; margin: 4px 0 16px; padding: 14px 18px 14px 14px; border-left: 5px solid var(--vurgu); border-radius: 16px;
  background: linear-gradient(90deg, #FFF8EC 0%, rgba(255, 248, 236, .85) 55%, rgba(255, 248, 236, 0) 100%); box-shadow: inset 0 -2px 0 rgba(194, 162, 104, .35); }
.yr2-baslik .yr2-ikon { width: 52px; height: 52px; border-radius: 15px; box-shadow: 0 3px 0 var(--vurgu-koyu), 0 6px 12px rgba(107, 23, 33, .25); }
.yr2-baslik .yr2-ikon svg { width: 26px; height: 26px; }
.yr2-baslik > span:not(.yr2-ikon) { gap: 4px; font-size: 29px; font-weight: 700; letter-spacing: -.01em; color: var(--vurgu-koyu); text-shadow: none; }
.yr2-baslik > span:not(.yr2-ikon)::before { content: "Bölüm " counter(yr2-bolum); font-family: var(--yazi-metin); font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--ikinci); }
.yr2-baslik small { align-self: flex-start; margin-top: 2px; padding: 3px 10px; border-radius: 999px; background: #F1E3C6; color: #6E5531; font-size: 12.5px; font-weight: 600; }
.yr2-ara { display: flex; align-items: center; gap: 10px; margin: 26px 0 12px; font-size: 13px; color: var(--vurgu); letter-spacing: .08em; text-shadow: none; }
.yr2-ara::after { content: ""; flex: 1; height: 2px; border-radius: 1px; background: linear-gradient(90deg, var(--altin), rgba(194, 162, 104, 0)); }
@media (max-width: 520px) {
  .yr2-baslik { padding: 12px 14px 12px 12px; }
  .yr2-baslik .yr2-ikon { width: 46px; height: 46px; }
  .yr2-baslik > span:not(.yr2-ikon) { font-size: 25px; }
}
/* Ortak para etiketi · gelir hesabı seçiliyken (2026.1091) */
.yr2-ortak { display: inline-flex; align-items: center; gap: 6px; margin: -4px 0 10px; padding: 4px 11px; border-radius: 999px; background: #E0EAF3; color: var(--bilgi); font-size: 12.5px; font-weight: 600; }
.yr2-ortak svg { width: 15px; height: 15px; }
.yr2-baslik + .yr2-ortak { margin-top: -6px; }

/* Yönetim Raporu panelleri · raporun tasarımıyla (2026.1092) */
.yr2-po { display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 4px; border-radius: 16px; background: linear-gradient(135deg, #FFF8EC, #F4E7CC); border: 1px solid var(--altin); box-shadow: 0 3px 0 var(--altin-koyu); }
.yr2-po-yazi { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.yr2-po-yazi small { font-size: 12.5px; font-weight: 600; color: var(--ikinci); }
.yr2-po-yazi > b { font-size: 26px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; line-height: 1.15; }
.yr2-po-yazi em { font-style: normal; font-size: 12.5px; color: var(--ikinci); }
.yr2-pk-liste { display: flex; flex-direction: column; gap: 8px; }
.yr2-pk { display: flex; flex-direction: column; gap: 7px; padding: 11px 14px; background: var(--yuzey); border: 1px solid var(--ayirici); border-left: 4px solid var(--altin); border-radius: 12px; }
.yr2-pk-uyari { border-left-color: var(--hata); background: #FDF3F3; }
.yr2-pk-ust { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.yr2-pk-ad { font-size: 15px; font-weight: 700; min-width: 0; overflow-wrap: anywhere; }
.yr2-pk-tutar { flex: none; font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-pk-cipler { display: flex; flex-wrap: wrap; gap: 6px; }
.yr2-cip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 3px 9px; border-radius: 999px; background: #F1E9DA; color: #6E5531; font-size: 12px; font-weight: 600; }
.yr2-cip svg { flex: none; width: 13px; height: 13px; }
.yr2-cip-mor { background: #ECE3F2; color: #6B4687; }
.yr2-cip-turuncu { background: #F8E7D0; color: var(--uyari); }
.yr2-cip-kirmizi { background: #F6E0E0; color: var(--hata); }
.yr2-cip-yesil { background: #E1EEE5; color: var(--basari); }
.yr2-cip-mavi { background: #E0EAF3; color: var(--bilgi); }
.yr2-pk-not { font-size: 12.5px; color: var(--ikinci); line-height: 1.4; }
.yr2-pd { display: flex; flex-direction: column; gap: 9px; padding: 12px 14px; background: var(--yuzey); border: 1px solid var(--ayirici); border-radius: 12px; }
.yr2-pd-satir { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; align-items: center; gap: 10px; font-size: 13.5px; }
.yr2-pd-ad { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.yr2-pd-ad svg { flex: none; width: 14px; height: 14px; color: var(--ikinci); }
.yr2-pd-ad small { color: var(--ikinci); font-weight: 500; }
.yr2-pd-cubuk { height: 8px; border-radius: 4px; background: var(--ayirici); overflow: hidden; }
.yr2-pd-cubuk i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--altin), var(--altin-koyu)); }
.yr2-pd-satir b { font-variant-numeric: tabular-nums; }
.yr2-pencere .yr2-p-bas { color: var(--vurgu); margin-top: 18px; }

/* Kasa farkı paneli · gelir hesabı gelir hesabı, muhasebe / kasiyer
   açıklaması (2026.1095) */
.yr2-kf { margin-top: 14px; padding: 12px 14px; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 14px; box-shadow: 0 3px 0 var(--altin-koyu); }
.yr2-kf-bas { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.yr2-kf-ad { display: inline-flex; align-items: center; gap: 7px; font-size: 16px; font-weight: 800; color: var(--vurgu-koyu); }
.yr2-kf-ad svg { width: 18px; height: 18px; color: var(--ikinci); }
.yr2-kf-bas b { font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-kf-maddeler { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.yr2-kf-madde { padding: 10px 12px; border-radius: 12px; background: #FBF5EA; border: 1px solid var(--ayirici); }
.yr2-kf-konu { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 7px; font-size: 14.5px; }
.yr2-kf-tutar { flex: none; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--vurgu); }
.yr2-kf-ack { padding: 7px 10px; border-radius: 9px; font-size: 13.5px; line-height: 1.45; }
.yr2-kf-ack + .yr2-kf-ack { margin-top: 6px; }
.yr2-kf-ack small { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 2px; }
.yr2-kf-muh { background: #F1E6D0; }
.yr2-kf-muh small { color: #8A6A2C; }
.yr2-kf-kas { background: #E0EAF3; }
.yr2-kf-kas small { color: var(--bilgi); }
.yr2-kf-bos { background: #F3F0EA; color: var(--ikinci); font-style: italic; }
.yr2-kf-bos small { color: var(--ikinci); font-style: normal; }
/* Ödeme yöntemi kartı */
.yr2-py { display: flex; align-items: flex-start; gap: 12px; padding: 11px 14px; background: var(--yuzey); border: 1px solid var(--ayirici); border-radius: 12px; }
.yr2-py .yr2-ikon { width: 40px; height: 40px; border-radius: 11px; }
.yr2-py .yr2-ikon svg { width: 21px; height: 21px; }
.yr2-py-orta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.yr2-py-ust { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; font-size: 15px; }
.yr2-py-ust b:first-child { min-width: 0; overflow-wrap: anywhere; }
.yr2-py-ust b:last-child { flex: none; font-variant-numeric: tabular-nums; }
/* Kasa farkı tablosu · sütun sütun, hücre en çok üç satır, satırlar eş
   yükseklikte (2026.1096) */
.yr2-kt { width: 100%; margin-top: 10px; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 13px; border: 1px solid var(--ayirici); border-radius: 12px; overflow: hidden; }
.yr2-kt col.yr2-kt-c1 { width: 32%; }
.yr2-kt th { padding: 7px 8px; text-align: left; font-size: 10.5px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; background: #F1E6D0; color: #6E5531; }
.yr2-kt th:nth-child(3) { background: #DCE7F1; color: var(--bilgi); }
.yr2-kt td { height: calc(3 * 1.35em + 14px); padding: 7px 8px; vertical-align: top; border-top: 1px solid var(--ayirici); line-height: 1.35; }
.yr2-kt td + td { border-left: 1px solid var(--ayirici); }
.yr2-kt-uc { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; }
.yr2-kt-yon b { font-weight: 700; }
.yr2-kt-yon em { display: block; font-style: normal; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-kt-yon .yr2-kt-uc { -webkit-line-clamp: 3; }
.yr2-kt-muh { background: #FBF5EA; }
.yr2-kt-kas { background: #F2F6FA; }
.yr2-kt-bos { color: var(--ikinci); font-style: italic; }
.yr2-kf-ad { font-size: 16px; font-weight: 800; color: var(--vurgu-koyu); }
.yr2-kt-iki { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.yr2-kt-sat { cursor: pointer; }
.yr2-kt-sat.yr2-acik td { height: auto; }
.yr2-kt-sat.yr2-acik .yr2-kt-uc, .yr2-kt-sat.yr2-acik .yr2-kt-iki { -webkit-line-clamp: unset; display: block; }
.yr2-kt-yon em { white-space: nowrap; font-size: 12px; }
/* Açıklamalar biraz küçük, daha çok sığsın (2026.1097) */
.yr2-kt td.yr2-kt-muh, .yr2-kt td.yr2-kt-kas { font-size: 11.5px; line-height: 1.32; }
@media (max-width: 520px) { .yr2-kt td.yr2-kt-muh, .yr2-kt td.yr2-kt-kas { font-size: 11px; } }

/* Grafik bilgisi (2026.1098 · "çubuk güzel ama hiç bilgi vermiyor") */
.yr2-g-bilgi { min-height: 20px; margin: -4px 0 10px; padding: 6px 10px; border-radius: 9px; background: #F6EEDF; font-size: 12.5px; color: var(--metin); font-variant-numeric: tabular-nums; }
.yr2-g-bilgi b { font-weight: 800; }
.yr2-g-alan { display: grid; grid-template-columns: 40px 1fr; gap: 6px; }
.yr2-g-eksen { display: flex; flex-direction: column; justify-content: space-between; height: 150px; font-size: 10px; color: var(--ikinci); text-align: right; font-variant-numeric: tabular-nums; }
.yr2-g-eksen span { line-height: 1; transform: translateY(-2px); }
.yr2-g-eksen span:last-child { transform: translateY(2px); }
.yr2-g-izgara { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--ayirici); pointer-events: none; }
.yr2-g-gunler { padding-left: 46px; }
.yr2-g-sutun i { position: relative; }
.yr2-g-deger { position: absolute; left: 50%; bottom: 100%; transform: translate(-50%, -3px); font-size: 9.5px; font-weight: 800; color: var(--metin); white-space: nowrap; background: rgba(252, 248, 239, .9); padding: 0 2px; border-radius: 3px; }
.yr2-g-sutun.yr2-g-dokunulan i { outline: 2px solid var(--vurgu); outline-offset: 1px; }
/* İki yönlü (kasa farkı): orta çizgi sıfır, eksik aşağı, fazla yukarı */
.yr2-g-iki .yr2-g-sutunlar { border-bottom: 0; }
.yr2-g-iki .yr2-g-sutunlar::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid var(--kenar); }
.yr2-g-iki .yr2-g-izgara { display: none; }
.yr2-g-iki .yr2-g-sutun { position: relative; }
.yr2-g-iki .yr2-g-sutun i { position: absolute; left: 0; right: 0; }
.yr2-g-iki .yr2-g-yukari i { bottom: 50%; border-radius: 4px 4px 1px 1px; background: linear-gradient(180deg, #6FAE88, var(--basari)); }
.yr2-g-iki .yr2-g-asagi i { top: 50%; border-radius: 1px 1px 4px 4px; background: linear-gradient(0deg, #D9727B, var(--hata)); }
.yr2-g-iki .yr2-g-asagi .yr2-g-deger { bottom: auto; top: 100%; transform: translate(-50%, 3px); }
@media (max-width: 520px) {
  .yr2-g-alan { grid-template-columns: 34px 1fr; gap: 4px; }
  .yr2-g-eksen { height: 120px; font-size: 9px; }
  .yr2-g-gunler { padding-left: 38px; }
  .yr2-g-deger { font-size: 8.5px; }
}
.yr2-g-iki .yr2-g-sutunlar::after { pointer-events: none; }
.yr2-g-iki .yr2-g-sutun.yr2-secili.yr2-g-asagi i { background: linear-gradient(0deg, #D9727B, var(--hata)) !important; outline: 2px solid var(--altin-koyu); outline-offset: 1px; }
.yr2-g-iki .yr2-g-sutun.yr2-secili.yr2-g-yukari i { background: linear-gradient(180deg, #6FAE88, var(--basari)) !important; outline: 2px solid var(--altin-koyu); outline-offset: 1px; }
.yr2-g-bilgi { margin-bottom: 20px; }
div.yr2-vurgukart { cursor: default; }
div.yr2-vurgukart:active { transform: none; box-shadow: 0 4px 0 #4E0F17, 0 10px 22px rgba(107, 23, 33, .28); }
.yr2-pd-satir { grid-template-columns: minmax(0, 1.7fr) minmax(0, .8fr) auto; }
/* Simetrik kayıt kartı · ikram, iskonto, iptal (2026.1104) */
.yr2-ak { padding: 12px 14px; background: var(--yuzey); border: 1px solid var(--ayirici); border-left: 4px solid var(--altin); border-radius: 12px; }
.yr2-ak-uyari { border-color: #E9B4B7; border-left-color: var(--hata); background: #FBE6E6; }
/* Kasiyer cevapladı, yönetim onayı bekliyor (2026.1465) */
.yr2-ak-bekliyor { border-color: #EED9A0; border-left-color: #D9A400; background: #FFF6D9; }
.yr2-ak-bas { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 9px; margin-bottom: 9px; border-bottom: 1px dashed var(--ayirici); }
.yr2-ak-ad { font-size: 15px; font-weight: 800; min-width: 0; overflow-wrap: anywhere; }
.yr2-ak-tutar { flex: none; font-size: 16px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-ak-izgara { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.yr2-ak-alan { display: grid; grid-template-columns: 16px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 6px; align-items: center; min-width: 0; }
.yr2-ak-alan svg { grid-row: 1 / 3; width: 15px; height: 15px; color: var(--ikinci); }
.yr2-ak-alan small { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); line-height: 1.2; }
.yr2-ak-alan em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--metin); line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr2-ak-bos em { color: var(--kenar); font-weight: 500; }
.yr2-ak-uyari .yr2-ak-alan:nth-child(5) em { color: var(--hata); font-weight: 800; }
/* Tam genişlik alan, iskonto oranı hapı (2026.1105) */
.yr2-ak-tam { grid-column: 1 / -1; }
.yr2-ak-tam em { white-space: normal; }
.yr2-ak-oran { flex: none; margin-left: auto; padding: 1px 8px; border-radius: 999px; background: #F1E9DA; color: #6E5531; font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; }
.yr2-ak-bas .yr2-ak-oran + .yr2-ak-tutar { margin-left: 0; }
.yr2-ak-oran-sari { border-left-color: #E2B95A; }
.yr2-ak-oran-sari .yr2-ak-oran { background: #FBF1D6; color: #93690F; }
.yr2-ak-oran-kirmizi { border-left-color: #D98A8F; }
.yr2-ak-oran-kirmizi .yr2-ak-oran { background: #F9E4E4; color: #A0333B; }
.yr2-ak-uyari .yr2-ak-alan:nth-child(5) em { color: inherit; font-weight: 600; }
.yr2-ak-uyari .yr2-ak-alan:nth-child(6) em { color: var(--hata); font-weight: 800; }
.yr2-gd { margin-top: 10px; }
/* Bütçe Planlama · gelir hesabı satırları ve ay toplamı (2026.1110) */
.bp-hesap { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #F1E9DA; color: #6E5531; font-size: 12px; font-weight: 700; }
.bp-toplam td { background: #F6EEDF; font-weight: 800; border-bottom: 2px solid var(--kenar); }
.bp-toplam .bp-hesap { background: #E0EAF3; color: var(--bilgi); }
/* Kasa farkı paneli · ay listesi ve geri (2026.1111) */
.yr2-pencere .yr2-gunler { grid-template-columns: none; }
.yr2-pencere .yr2-gun { grid-template-columns: 54px 1fr; }
.yr2-geri { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 12px; padding: 6px 12px; border: 1px solid var(--altin); border-radius: 999px; background: var(--yuzey); color: var(--vurgu); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; box-shadow: 0 2px 0 var(--altin-koyu); }
.yr2-geri:active { transform: translateY(2px); box-shadow: none; }
/* Bu ayın ödemeleri · pasta (2026.1112) */
.yr2-pasta-kart { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 18px 16px; }
.yr2-pasta { position: relative; width: min(300px, 80vw); aspect-ratio: 1; }
.yr2-pasta svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.yr2-pasta-dilim { fill: none; stroke-width: 20; cursor: pointer; transition: stroke-width .15s, opacity .15s; }
.yr2-pasta svg:hover .yr2-pasta-dilim { opacity: .7; }
.yr2-pasta svg .yr2-pasta-dilim:hover { opacity: 1; stroke-width: 23; }
.yr2-pasta-orta { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; text-align: center; }
.yr2-pasta-orta small { font-size: 12px; font-weight: 700; color: var(--ikinci); }
.yr2-pasta-orta b { font-size: 21px; font-weight: 800; color: var(--hata); font-variant-numeric: tabular-nums; }
.yr2-pasta-orta em { font-style: normal; font-size: 11.5px; color: var(--ikinci); }
.yr2-pasta-lejant { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; width: 100%; }
.yr2-pasta-lejant button { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 5px 6px; border: 0; border-radius: 8px; background: none; font: inherit; font-size: 13px; color: inherit; text-align: left; cursor: pointer; }
.yr2-pasta-lejant button:hover { background: #F6EEDF; }
.yr2-pasta-lejant i { flex: none; width: 11px; height: 11px; border-radius: 3px; }
.yr2-pasta-lejant span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.yr2-pasta-lejant b { flex: none; font-variant-numeric: tabular-nums; color: var(--ikinci); font-size: 12px; }
.yr2-pasta-kart + .yr2-kutu { margin-top: 12px; }
@media (max-width: 520px) { .yr2-pasta-lejant { grid-template-columns: 1fr; gap: 2px; } }
/* Pasta açıklaması tek sütun · ad · yüzde · tutar (2026.1115) */
.yr2-pasta-lejant { grid-template-columns: 1fr; gap: 0; }
.yr2-pasta-lejant button { display: grid; grid-template-columns: 11px minmax(0, 1fr) 52px auto; gap: 10px; padding: 8px 8px; border-bottom: 1px solid var(--ayirici); border-radius: 0; }
.yr2-pasta-lejant button:last-child { border-bottom: 0; }
.yr2-pasta-lejant b { text-align: right; }
.yr2-pasta-lejant strong { font-size: 13.5px; font-weight: 800; font-variant-numeric: tabular-nums; text-align: right; }

/* Gün sonu · toplu yükleme (2026.1117) */
.gsy-toplu { margin-left: 6px; background: var(--vurgu) !important; color: #fff !important; border-color: var(--vurgu) !important; }
.gsy-toplu-liste { display: flex; flex-direction: column; border: 1px solid var(--ayirici); border-radius: 12px; overflow: hidden; margin-bottom: 12px; }
.gsy-toplu-satir { display: grid; grid-template-columns: 22px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 8px; padding: 9px 12px; border-bottom: 1px solid var(--ayirici); font-size: 13.5px; }
.gsy-toplu-satir:last-child { border-bottom: 0; }
.gsy-toplu-isaret { grid-row: 1 / 3; align-self: center; font-weight: 800; color: var(--basari); }
.gsy-toplu-yok .gsy-toplu-isaret { color: var(--hata); }
.gsy-toplu-ad { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsy-toplu-yer { font-size: 12.5px; color: var(--ikinci); }
.gsy-toplu-satir:not(.gsy-toplu-yok) .gsy-toplu-yer { color: var(--vurgu); font-weight: 700; }

/* Nakit masraf · döviz alımı (2026.1118) */
.gsm-tablo th:nth-child(1), .gsm-tablo td:nth-child(1) { width: 124px; }
.gsm-doviz { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin-left: 4px; padding: 0; border: 1px solid var(--ayirici); border-radius: 10px; background: var(--yuzey); color: var(--ikinci); font: inherit; font-size: 15px; font-weight: 800; cursor: pointer; vertical-align: middle; }
.gsm-doviz:hover { border-color: var(--altin); }
.gsm-doviz-var { background: #E0EAF3; border-color: var(--bilgi); color: var(--bilgi); }
.gsm-doviz-kutu { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gsm-doviz-hesaplar { display: flex; flex-wrap: wrap; gap: 4px; }
.gsm-dv-hesap { padding: 3px 10px; border: 1px solid var(--ayirici); border-radius: 999px; background: var(--yuzey); font: inherit; font-size: 12.5px; font-weight: 700; color: var(--ikinci); cursor: pointer; }
.gsm-dv-secili { background: var(--bilgi); border-color: var(--bilgi); color: #fff; }
.gsm-doviz-hesap-satir { display: flex; align-items: center; gap: 6px; }
.gsm-dv-kutu { width: 82px; height: 30px; padding: 0 8px; border: 1px solid var(--kenar); border-radius: 8px; background: #fff; font: inherit; font-size: 13.5px; text-align: right; }
.gsm-dv-x { color: var(--ikinci); font-weight: 700; }
.gs-kutu[readonly] { background: #F2F6FA; color: var(--bilgi); }
@media (max-width: 600px) {
  .gsm-doviz { width: 30px; height: 30px; margin-left: 2px; }
  .gsm-tablo th:nth-child(1), .gsm-tablo td:nth-child(1) { width: 104px; }
}

/* DOSYA İKONU (2026.1130 · gün sonu) · dosyası yüklenmiş her satırda ad
   sütununun sağında aynı hizada; basınca ayrıntı ve düzenleme. Uyarı
   varsa sarı. */
.gsy-dikon {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 22px; margin-left: auto; padding: 0;
  border: 1px solid color-mix(in srgb, var(--basari) 45%, transparent); border-radius: 6px;
  background: color-mix(in srgb, var(--basari) 10%, transparent); color: var(--basari);
  cursor: pointer; line-height: 0;
}
.gsy-dikon:hover { background: color-mix(in srgb, var(--basari) 20%, transparent); }
.gsy-dikon-uyari {
  border-color: var(--uyari-cizgi); color: var(--metin-uyari);
  background: color-mix(in srgb, var(--uyari) 14%, transparent);
}
.gsy-dikon-uyari:hover { background: color-mix(in srgb, var(--uyari) 24%, transparent); }
.gsy-ad-ic:has(> .gsy-dikon) { width: 100%; }
.gsy-ad-ic:has(> .gsy-dikon) > .gsy-ad-metin { flex: 1 1 auto; min-width: 40px; }
.gsy-ad-ic > .gsy-dikon { margin-left: auto; }
.gsy-ad-ic > .gsy-not + .gsy-dikon { margin-left: 8px; }
.kfr-deger:has(> .gsy-dikon) { position: relative; padding-right: 38px; }
.kfr-deger > .gsy-dikon { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }
.gsy-kunye-deger { font-weight: 600; }
.gsy-dmenu-bilgi { margin: 0 0 12px; padding-left: 18px; font-size: 14px; line-height: 1.6; }
.gsy-dmenu-bilgi:empty { display: none; }
.gsy-dmenu-dugmeler { flex-wrap: wrap; gap: 8px; }
.gsy-dmenu-dugmeler > button { white-space: nowrap; flex: 1 1 auto; }
.gsy-ad-ic > .gsy-ad-metin + .gsy-degis { margin-left: 8px; }
.gsy-not[hidden] { display: none !important; }

/* =====================================================================
   KÂR-ZARAR · DÖNEM RAPORU (2026.1142 · 4-ekranlar/2-raporlar/donem-raporu.js)
   Yönetime sunulan rapor: kapak, 4 bölüm kartı, en altta net kâr.
   ===================================================================== */
.dr { --dr-iyi: #1E8A52; --dr-kotu: #C0392B; max-width: 1180px; margin: 0 auto; }
.dr .dr-iyi { color: var(--dr-iyi); }
.dr .dr-kotu { color: var(--dr-kotu); }
.dr .dr-eksi { color: var(--dr-kotu); }
.dr-ikon { flex: none; display: block; filter: drop-shadow(0 2px 3px rgba(58, 42, 29, .14)); }

.dr-kapak {
  position: relative; overflow: hidden; margin: 4px 0 18px; padding: 22px 24px 20px;
  border-radius: 20px; color: var(--metin);
  background: linear-gradient(160deg, #FFFCF5 0%, #F6ECD8 100%);
  border: 1px solid var(--altin); border-top: 4px solid var(--altin);
  box-shadow: 0 10px 24px rgba(58, 42, 29, .10), inset 0 1px 0 #fff;
}
.dr-kapak::after { content: ""; position: absolute; inset: auto -60px -80px auto; width: 260px; height: 260px;
  border-radius: 50%; background: radial-gradient(circle, rgba(194, 162, 104, .18), transparent 70%); pointer-events: none; }
.dr-ust { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ikinci); font-weight: 700; }
.dr-kapak h1 { margin: 2px 0 4px; font-family: var(--yazi-baslik); font-size: 30px; line-height: 1.15; color: var(--vurgu); }
.dr-kapak p { margin: 0; font-size: 14px; color: var(--ikinci); }
.dr-kpiler { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.dr-kpi { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px;
  background: #fff; border: 1px solid var(--altin-soluk); color: var(--metin); box-shadow: 0 4px 10px rgba(58, 42, 29, .06); min-width: 0; }
.dr-kpi > div { min-width: 0; }
.dr-kpi span { display: block; font-size: 12px; color: var(--ikinci); font-weight: 600; }
.dr-kpi b { display: block; font-size: 19px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.dr-bolum { margin: 0 0 18px; padding: 18px 18px 16px; border-radius: 18px; background: var(--yuzey);
  border: 1px solid var(--altin-soluk); box-shadow: 0 8px 22px rgba(58, 42, 29, .08), inset 0 1px 0 #fff; }
.dr-bolum-bas { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.dr-no { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--ikinci); }
.dr-bolum-bas h2 { margin: 0; font-family: var(--yazi-baslik); font-size: 22px; line-height: 1.2; color: var(--vurgu-koyu); }
.dr-bolum-bas p { margin: 2px 0 0; font-size: 13px; color: var(--ikinci); }

.dr-iki { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.dr-blok { margin-bottom: 14px; padding: 6px 6px 0; border-radius: 14px; background: #FFFDF8; border: 1px solid var(--ayirici); min-width: 0; }
.dr-iki .dr-blok { margin-bottom: 0; }
.dr-blok-bas { display: flex; align-items: baseline; gap: 8px; padding: 8px 10px 6px; }
.dr-blok-bas span { font-weight: 800; font-size: 15px; color: var(--metin); }
.dr-blok-bas small { color: var(--ikinci); font-size: 12px; }
.dr-blok-top { display: flex; justify-content: space-between; align-items: center; margin: 4px -6px 0; padding: 10px 16px;
  border-top: 1px dashed var(--kenar); border-radius: 0 0 14px 14px; background: var(--oyuk); font-weight: 700; }
.dr-blok-top b { font-size: 16px; font-variant-numeric: tabular-nums; }

.dr-satir { display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 10px; border: 0; border-radius: 12px;
  background: none; text-align: left; cursor: pointer; color: var(--metin); font: inherit; transition: background .15s; }
.dr-satir:hover { background: var(--defter-hover); }
.dr-satir.dr-acik { background: rgba(194, 162, 104, .14); }
.dr-ad { flex: 1 1 auto; min-width: 0; font-weight: 600; font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dr-tutar { flex: none; font-weight: 800; font-size: 15px; font-variant-numeric: tabular-nums; }
.dr-ok { flex: none; width: 14px; color: var(--ikinci); font-size: 18px; line-height: 1; transition: transform .2s; }
.dr-acik > .dr-ok { transform: rotate(90deg); }
.dr-degisim { flex: none; font-size: 11px; }
.dr-nokta { flex: none; width: 10px; height: 10px; margin: 0 4px 0 6px; border-radius: 50%; background: var(--r);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--r) 18%, transparent); }
.dr-d1 { padding-left: 22px; } .dr-d1 .dr-ad { font-weight: 500; font-size: 14px; }
.dr-d2 { padding-left: 40px; } .dr-d2 .dr-ad { font-weight: 500; font-size: 13.5px; }
.dr-d3 { padding-left: 56px; } .dr-d3 .dr-ad { font-weight: 500; font-size: 13px; }
.dr-d1 .dr-tutar, .dr-d2 .dr-tutar, .dr-d3 .dr-tutar { font-weight: 700; font-size: 14px; }
.dr-alt { margin: 2px 0 6px 18px; padding-left: 6px; border-left: 2px solid var(--altin-soluk); }
.dr-bos { margin: 6px 12px; font-size: 13px; color: var(--ikinci); }
.dr-kayitlar { padding: 4px 0; }
.dr-kayit { display: flex; align-items: baseline; gap: 10px; padding: 5px 12px 5px 22px; font-size: 13px; border-bottom: 1px dotted var(--ayirici); }
.dr-kayit-tarih { flex: none; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.dr-kayit-ack { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dr-kayit .dr-tutar { font-size: 13px; font-weight: 700; }
.dr-net { display: flex; justify-content: space-between; align-items: center; margin-top: 14px; padding: 12px 16px;
  border-radius: 12px; background: linear-gradient(90deg, #F6ECD8, #FBF4E6); border: 1px solid var(--altin-soluk); font-weight: 700; }
.dr-net b { font-size: 18px; font-variant-numeric: tabular-nums; }

.dr-sonuc { display: flex; align-items: center; gap: 20px; margin: 0 0 24px; padding: 22px 24px; border-radius: 20px; color: #fff;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .18); }
.dr-sonuc-kar { background: radial-gradient(120% 140% at 0% 0%, #2FB36E 0%, #167A47 60%, #0D4F2E 100%); }
.dr-sonuc-zarar { background: radial-gradient(120% 140% at 0% 0%, #E05555 0%, #A82424 60%, #6B1414 100%); }
.dr-sonuc-ic { min-width: 0; }
.dr-sonuc-ic > b { display: block; font-family: var(--yazi-baslik); font-size: 40px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.dr-denklem { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; font-weight: 700; font-size: 14px; }
.dr-denklem span { padding: 3px 10px; border-radius: 999px; background: rgba(255, 255, 255, .16); }
.dr .dr-denklem .dr-iyi, .dr .dr-denklem .dr-kotu { color: #fff; }
.dr-denklem i { font-style: normal; opacity: .8; }
.dr-uzlas { margin: 10px 0 0; font-size: 13px; opacity: .92; }
.dr-hata { margin: 20px 0; padding: 14px 16px; border-radius: 12px; background: #FDECEC; color: var(--metin-hata); font-weight: 600; }

@media (max-width: 900px) {
  .dr-kpiler { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dr-iki { grid-template-columns: 1fr; }
  .dr-kapak h1 { font-size: 24px; }
  .dr-sonuc { flex-direction: column; align-items: flex-start; }
  .dr-sonuc-ic > b { font-size: 32px; }
}
@media print {
  .dr-kapak, .dr-sonuc { -webkit-print-color-adjust: exact; print-color-adjust: exact; box-shadow: none; }
  .dr-bolum { break-inside: avoid; box-shadow: none; }
}
@media (max-width: 600px) {
  .dr-kpiler { grid-template-columns: 1fr; }
  .dr-bolum { padding: 14px 10px 12px; }
  .dr-bolum-bas h2 { font-size: 19px; }
  .dr-kapak { padding: 18px 16px; }
  .dr-satir { gap: 10px; padding: 8px 6px; }
  .dr-ad { font-size: 14px; }
}

/* Dönem raporu · denge, Mizan kontrolü, sık satır, yazdırma (2026.1148). */
.dr-sag { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dr-sag .dr-blok { margin-bottom: 0; }
.dr .dr-satir { padding: 4px 8px; gap: 10px; }
.dr .dr-ad { font-size: 13.5px; }
.dr .dr-tutar { font-size: 14px; }
.dr .dr-blok-bas { padding: 6px 8px 4px; }
.dr .dr-blok-top { padding: 7px 14px; }
.dr .dr-bolum { padding: 14px 14px 12px; margin-bottom: 14px; }
.dr .dr-bolum-bas { margin-bottom: 10px; }
.dr .dr-iki { gap: 10px; }
.dr .dr-blok { margin-bottom: 10px; }
.dr-sabit { cursor: default; }
.dr-sabit:hover { background: none; }
.dr-denge { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 10px; padding: 10px 14px;
  border-radius: 12px; border: 1px solid var(--altin-soluk); background: linear-gradient(90deg, #F6ECD8, #FBF4E6); }
.dr-denge small { display: block; font-size: 11px; color: var(--ikinci); font-weight: 600; }
.dr-denge b { font-size: 16px; font-variant-numeric: tabular-nums; }
.dr-denge i { font-style: normal; font-size: 18px; color: var(--ikinci); }
.dr-denge-sonuc { margin-left: auto; font-weight: 800; font-size: 13px; }
.dr-denge-tamam .dr-denge-sonuc { color: var(--dr-iyi); }
.dr-denge-fark { border-color: #E3B4AE; background: #FDF0EE; }
.dr-denge-fark .dr-denge-sonuc { color: var(--dr-kotu); }
.dr-mizan { margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; font-size: 13px; }
.dr-mizan-tamam { color: var(--dr-iyi); background: #EEF7F0; font-weight: 700; }
.dr-mizan-yok { color: var(--ikinci); background: var(--oyuk); }
.dr-mizan-fark { color: var(--metin); background: #FDF0EE; border: 1px solid #E3B4AE; }
.dr-mizan-fark b { color: var(--dr-kotu); }
.dr-mizan-fark ul { margin: 6px 0 0; padding-left: 18px; }
.dr-yazdir { position: absolute; top: 18px; right: 20px; z-index: 2; padding: 6px 12px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--altin); background: #fff; color: var(--metin); font-weight: 700; font: inherit; }
.dr-yazdir:hover { background: #FFF7E8; }

@media print {
  @page { size: A4 portrait; margin: 9mm; }
  body, body * { visibility: hidden !important; }
  .dr, .dr * { visibility: visible !important; }
  .dr { position: absolute; left: 0; top: 0; width: 100%; max-width: none; margin: 0; font-size: 10px; }
  .dr-yazdir, .dr-ok { display: none !important; }
  .dr-kapak { margin: 0 0 6px; padding: 10px 12px; border-radius: 8px; }
  .dr-kapak h1 { font-size: 18px; margin: 0 0 2px; }
  .dr-kapak p { font-size: 9.5px; }
  .dr-kpiler { grid-template-columns: repeat(4, 1fr) !important; gap: 6px; margin-top: 8px; }
  .dr-kpi { padding: 5px 8px; gap: 6px; box-shadow: none; }
  .dr-kpi b { font-size: 12px; }
  .dr-kpi .dr-ikon { width: 22px; height: 22px; }
  .dr .dr-bolum { padding: 7px 9px; margin: 0 0 6px; border-radius: 8px; }
  .dr-bolum-bas h2 { font-size: 13px; }
  .dr-bolum-bas p { font-size: 9px; }
  .dr-bolum-bas .dr-ikon { width: 26px; height: 26px; }
  .dr .dr-iki { grid-template-columns: 1fr 1fr !important; gap: 6px; }
  .dr .dr-blok { margin-bottom: 5px; border-radius: 6px; }
  .dr .dr-satir { padding: 1px 4px; gap: 6px; }
  .dr .dr-satir .dr-ikon { width: 18px; height: 18px; }
  .dr .dr-ad, .dr .dr-tutar { font-size: 9.5px; }
  .dr .dr-blok-bas { padding: 3px 5px 2px; }
  .dr .dr-blok-bas span { font-size: 10.5px; }
  .dr .dr-blok-top { padding: 3px 8px; }
  .dr .dr-blok-top b { font-size: 10.5px; }
  .dr-denge { padding: 4px 8px; margin-top: 5px; }
  .dr-denge b { font-size: 11px; }
  .dr-mizan { padding: 3px 8px; font-size: 9.5px; }
  .dr-sonuc { padding: 8px 12px; gap: 10px; margin: 0; border-radius: 8px; }
  .dr-sonuc .dr-ikon { width: 34px; height: 34px; }
  .dr-sonuc-ic > b { font-size: 22px; }
  .dr-denklem { font-size: 10px; }
  .dr-uzlas { font-size: 9px; }
  .dr-alt { display: none; }
  .dr-bolum, .dr-sonuc, .dr-blok { break-inside: avoid; }
}
.dr-denge-neden { flex-basis: 100%; font-size: 12.5px; color: var(--metin-hata); }
@media print { .dr-denge-neden { font-size: 9px; } }

/* Dönem raporu · 2026.1152: satış dökümü, mizan tablosu, para akışı */
.dr-girinti { flex: none; width: 32px; }
.dr-dusen .dr-ad { font-weight: 500; color: var(--ikinci); }
.dr-dusen .dr-tutar { font-weight: 700; font-size: 14px; }
.dr-kar-satir { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px;
  padding: 12px 16px; border-radius: 14px; border: 1px solid var(--altin); background: linear-gradient(160deg, #FFFCF5, #F6ECD8); }
.dr-kar-satir span { font-size: 13px; color: var(--ikinci); }
.dr-kar-satir b { font-size: 18px; font-variant-numeric: tabular-nums; }
/* 2026.1153 · gelir kayıtları gün gün */
.dr-gun { width: 100%; border: 0; border-bottom: 1px dotted var(--ayirici); background: none; text-align: left; cursor: pointer; color: var(--metin); font: inherit; font-size: 13px; }
.dr-gun:hover { background: var(--defter-hover); }
.dr-gun.dr-acik { background: rgba(194, 162, 104, .12); }
.dr-gun .dr-ok { font-size: 15px; }
.dr-gun-alt { margin: 0 0 4px 92px; border-left: 2px solid var(--altin-soluk); }
.dr-gun-alt .dr-kayit { padding-left: 12px; color: var(--ikinci); }
@media (max-width: 600px) { .dr-gun-alt { margin-left: 14px; } }
.dr-etiket { font-size: 11px; font-weight: 600; color: var(--ikinci); }
.dr-gun-net { font-weight: 800; border-top: 1px solid var(--altin-soluk); color: var(--metin) !important; }
/* Banka Aktarımı · 336 ödemesi kasaya nakit girer (2026.1157 · göç 314) */
.ba-336 { display: inline-block; max-width: 240px; font-size: 12px; font-weight: 600; color: var(--metin-basari); white-space: normal; line-height: 1.3; }
.ba-336.uy { color: var(--metin-uyari); }

/* MOBİLDE KUŞAK İNCE BİR SATIR (2026.1162 · kullanıcı: önce "tepedeki
   kartı kaldıralım", sonra "sadece hangi sayfada olduğumuzu gösteren ufak
   bir satır, tepedeki yere bitişik"). Yalnız sayfa adı; çizim, tarih,
   selam yok. Üst çubuğun hemen altına yapışır ve kayarken orada kalır. */
@media (max-width: 700px) {
  .sayfa-kusak {
    position: sticky;
    top: calc(var(--ust-cubuk) + env(safe-area-inset-top, 0px));
    z-index: 30;
    padding: 7px 16px 8px;
    margin: 0 0 12px;
    border: 0;
    border-bottom: 1px solid var(--altin-soluk);
    border-radius: 0 !important;
    background: var(--yuzey);
    box-shadow: 0 4px 10px rgba(58, 42, 29, .06);
    text-align: center;
  }
  .sayfa-kusak::before { display: none; }
  .sayfa-kusak-ust, .sayfa-kusak-alt, .sayfa-kusak-ayrac, .sayfa-kusak .kusak-selam { display: none; }
  .sayfa-kusak-ic { flex-direction: row; justify-content: center; gap: 0; }
  .sayfa-kusak-sol { text-align: center; }
  .sayfa-kusak-ad { margin: 0; font-size: 15px; line-height: 20px; letter-spacing: .02em; }
  .sayfa-kusak-ad::after { display: none; }
  .sayfa-kusak-serit { border-top: var(--kart-cerceve); border-radius: var(--kose-kart); margin-top: 12px; }
}
/* Dönem raporu · gizlenen 336 nakit hesaplarının denge notu (2026.1163) */
.dr-denge-336 { flex-basis: 100%; font-size: 12.5px; color: var(--ikinci); }
@media print { .dr-denge-336 { font-size: 9px; } }
/* Dönem raporu · varlıklar ve borçlar eşit boyda, ortakların payı altta tam
   genişlikte (2026.1164 · kullanıcı: "varlıklarla borçlar aynı uzunlukta,
   ortaklar altta tek, genişliği iki tablonunki gibi"). */
.dr-iki { align-items: stretch; }
.dr-iki > .dr-blok { display: flex; flex-direction: column; }
.dr-iki > .dr-blok > .dr-blok-top { margin-top: auto; }
.dr-tam { margin-top: 14px; }
.dr-tam .dr-blok { margin-bottom: 0; }
@media print { .dr .dr-tam { margin-top: 6px; } }
/* Dönem raporu · 2. bölüm solda gelirler, sağda giderler (2026.1165) */
.dr-sutun { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.dr-sutun .dr-blok { margin-bottom: 0; }
.dr-gg { margin-bottom: 14px; align-items: start; }
.dr-gg > .dr-blok > .dr-blok-top { margin-top: 4px; }
@media print { .dr .dr-sutun { gap: 6px; } .dr .dr-gg { margin-bottom: 6px; } }
/* Dönem raporu · devlete ödenecek KDV satırı (2026.1166) */
.dr-kdv-satir { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px;
  margin: 0 0 10px; padding: 10px 16px; border-radius: 14px; border: 1px dashed var(--altin-soluk); background: #FFFDF8; }
.dr-kdv-satir > span { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dr-kdv-satir small { color: var(--ikinci); font-size: 12.5px; }
.dr-kdv-satir > b { font-size: 16px; font-variant-numeric: tabular-nums; }
@media print { .dr .dr-kdv-satir { padding: 4px 8px; margin-bottom: 5px; } .dr .dr-kdv-satir .dr-ikon { width: 16px; height: 16px; } }
/* 120 kontrolü · künyedeki tarih basılınca değişir (2026.1172) */
button.ck-k-tarih { border: 0; background: none; padding: 0; margin: 0 auto; font: inherit; font-size: .78em; color: inherit; cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
button.ck-k-tarih:hover { color: var(--vurgu); }
@media print { button.ck-k-tarih { text-decoration: none; } }

/* Günlük İşlemler · düzeltme notları paneli, öncesi / sonrası (2026.1183 · göç 320) */
.gk-not-say { border: 0; background: none; padding: 2px 6px; border-radius: 6px; font: inherit; color: inherit; cursor: pointer; }
.gk-not-say:hover { background: rgba(164, 36, 48, .08); text-decoration: underline; }
.gk-nk-ozet { font-size: 12.5px; color: var(--ikinci); margin-bottom: 10px; }
.gk-nk-liste { display: grid; gap: 14px; }
.gk-nk { border: 1px solid var(--kenar); border-left: 4px solid var(--hata); border-radius: 12px; background: var(--yuzey); padding: 12px 14px; display: grid; gap: 9px; }
.gk-nk-tamam { border-left-color: var(--basari); }
.gk-nk-tepe { display: flex; align-items: flex-start; gap: 10px; }
.gk-nk-durum { flex: none; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px;
  background: rgba(164, 36, 48, .1); color: var(--metin-hata); }
.gk-nk-tamam .gk-nk-durum { background: rgba(46, 107, 74, .12); color: var(--metin-basari); }
.gk-nk-ref { min-width: 0; font-size: 13.5px; overflow-wrap: anywhere; }
.gk-nk-kayit { font-size: 12px; color: var(--ikinci); margin-top: 2px; }
.gk-nk-balon { padding: 8px 11px; border-radius: 10px; font-size: 13.5px; max-width: 88%; }
.gk-nk-soru { background: #F6EBD7; justify-self: start; border-top-left-radius: 3px; }
.gk-nk-cevap { background: rgba(46, 107, 74, .09); justify-self: end; border-top-right-radius: 3px; }
.gk-nk-bekliyor { justify-self: end; font-size: 12.5px; color: var(--ikinci); font-style: italic; background: none; padding: 0 2px; }
.gk-nk-kim { font-size: 11.5px; color: var(--ikinci); margin-bottom: 2px; }
.gk-nk-metin { overflow-wrap: anywhere; white-space: pre-wrap; }
.gk-nk-iz { display: grid; gap: 8px; }
.gk-iz-ozet { font-size: 12.5px; color: var(--metin); }
.gk-iz-uyari { font-size: 13px; padding: 8px 10px; border-radius: 8px; background: rgba(196, 140, 30, .12); border: 1px solid rgba(196, 140, 30, .4); }
.gk-iz-yukleniyor, .gk-iz-bos { font-size: 12.5px; color: var(--ikinci); }
.gk-iz-ikili { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: start; }
.gk-iz-ok { align-self: center; font-size: 18px; color: var(--ikinci); }
.gk-iz-blok { min-width: 0; border: 1px solid var(--ayirici); border-radius: 8px; overflow: hidden; }
.gk-iz-baslik { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 5px 8px; background: rgba(194, 162, 104, .14); color: var(--ikinci); }
.gk-iz-sonra .gk-iz-baslik { background: rgba(46, 107, 74, .1); color: var(--metin-basari); }
.gk-iz-tablo { width: 100%; border-collapse: collapse; font-size: 12px; }
.gk-iz-tablo th { text-align: left; font-weight: 600; color: var(--ikinci); padding: 4px 6px; border-bottom: 1px solid var(--ayirici); }
.gk-iz-tablo td { padding: 4px 6px; border-bottom: 1px solid var(--ayirici); vertical-align: top; overflow-wrap: anywhere; }
.gk-iz-tablo tr:last-child td { border-bottom: 0; }
.gk-iz-tutar { text-align: right !important; white-space: nowrap; font-variant-numeric: tabular-nums; }
.gk-iz-degisen { background: rgba(230, 190, 60, .3); }
.gk-iz-yeni td { background: rgba(46, 107, 74, .1); }
.gk-iz-silinen td { background: rgba(164, 36, 48, .08); text-decoration: line-through; color: var(--ikinci); }
.gk-iz-liste { margin: 0; padding-left: 18px; font-size: 12.5px; display: grid; gap: 3px; }
.gk-iz-liste-ic { padding: 6px 8px 6px 24px; }
.gk-nk-dugmeler { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.gk-nk-cevap-yaz { display: grid; gap: 6px; }
@media (max-width: 700px) {
  .gk-iz-ikili { grid-template-columns: 1fr; }
  .gk-iz-ok { transform: rotate(90deg); justify-self: center; }
  .gk-nk-balon { max-width: 100%; }
}

/* Yönetim Raporu linki · y.html (2026.1186 · göç 322) */
.yl-sayfa { margin: 0; min-height: 100vh; background: var(--zemin, #F6EFE2); }
.yl-tepe { position: sticky; top: 0; z-index: 20; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 8px 16px; padding: calc(10px + env(safe-area-inset-top)) 16px 10px; background: #8F2D22; color: #FFFDF8;
  box-shadow: 0 2px 10px -4px rgba(58, 42, 29, .6); }
.yl-marka { font-family: "Playfair Display", serif; font-size: 18px; font-weight: 700; display: flex; align-items: baseline; gap: 10px; }
.yl-marka span { font-family: Inter, system-ui, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.yl-serit .yr2-link-serit { color: #FFFDF8; font-size: 14px; background: rgba(255, 255, 255, .12); border-radius: 999px; padding: 5px 12px; }
.yl-govde { max-width: 1200px; margin: 0 auto; }
.yl-govde .sayfa-icerik { padding-top: 16px; }
.yl-bilgi { margin: 15vh 16px; text-align: center; font-size: 15px; color: var(--ikinci); }
.yl-hata { color: var(--metin-hata); }
.yl-dip { max-width: 1200px; margin: 0 auto; padding: 8px 16px calc(24px + env(safe-area-inset-bottom)); font-size: 12px; color: var(--ikinci); text-align: center; }
.yl-sayfa [data-git] { display: none !important; }
.yr2-link-kutu { width: 100%; box-sizing: border-box; margin: 8px 0 4px; font-size: 13px; }
.yl-govde .yr2 { margin-left: auto; margin-right: auto; }
/* Linkte gelir hesabı seçimi · programdaki seçici (2026.1187) */
.yl-serit { min-width: 0; max-width: 100%; }
.yl-tepe > * { min-width: 0; max-width: 100%; }
.yl-serit .yr2-link-serit { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; max-width: 100%; background: none; padding: 0; }
.yr2-link-gun { font-weight: 700; color: #FFFDF8; background: rgba(255, 255, 255, .12); border-radius: 999px; padding: 6px 12px; white-space: nowrap; }
.yl-serit .yr2-gelir { width: 230px; max-width: 100%; }
.yl-serit .yr2-gelir .sec-kutu { color: var(--metin); }

/* Ayarlar → Kontroller · hangi kontrolü kim yapabilir (2026.1188 · göç 323) */
.ky-is { display: grid; gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--ayirici); }
.ky-is:last-child { border-bottom: 0; }
.ky-is-bas { display: grid; gap: 2px; }
.ky-is-ad { font-weight: 600; }
.ky-kisiler { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ky-cip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 4px 4px 11px; border-radius: 999px;
  background: rgba(143, 45, 34, .08); border: 1px solid rgba(143, 45, 34, .25); color: var(--metin); font-size: 13.5px; font-weight: 600; }
.ky-cip-sil { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0;
  border: 0; border-radius: 50%; background: none; color: var(--ikinci); cursor: pointer; }
.ky-cip-sil:hover { background: rgba(143, 45, 34, .12); color: var(--metin-hata); }
.ky-bos { font-size: 12.5px; color: var(--ikinci); font-style: italic; }
.ky-ekle { width: 200px; max-width: 100%; }
.ky-not { margin: 4px 4px 24px; font-size: 12.5px; color: var(--ikinci); }
button.nt-yetkisiz { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }

/* Stok Yönetimi · zengin depo satırı: kare resim, hesap ve tür balonu (2026.1192) */
.dpz { display: flex; align-items: center; gap: 14px; padding: 6px 0; }
.dpz-resim { flex: none; width: 72px; height: 72px; border-radius: 16px; overflow: hidden;
  box-shadow: 0 4px 12px -6px rgba(107, 23, 33, .45); transition: transform var(--gecis, .15s) ease-out; }
.dpz-resim svg { display: block; width: 100%; height: 100%; }
.dp-satir:hover .dpz-resim { transform: scale(1.04); }
.dpz-yazi { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.dpz-yazi .dp-ad-yazi { font-size: 16px; }
.dpz-dugmeler { display: flex; flex-wrap: wrap; gap: 6px; }
.dpz-dugme { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px 3px 7px; border-radius: 999px;
  border: 1px solid var(--altin-soluk, #E3CFA4); background: var(--yuzey, #fff); color: var(--ikinci); font: inherit;
  font-size: 12px; font-weight: 600; cursor: pointer; }
.dpz-dugme:hover { border-color: var(--altin, #C9A465); color: var(--metin); }
.dpz-dugme .simge:last-child { transform: rotate(90deg); opacity: .6; }
.dpz-balon { position: absolute; z-index: 60; min-width: 220px; max-width: min(340px, 92vw); max-height: 320px; overflow: auto;
  padding: 10px 12px; border-radius: 12px; background: var(--yuzey, #FFFDF8); border: 1px solid var(--altin-soluk, #E3CFA4);
  box-shadow: 0 14px 30px -14px rgba(58, 42, 29, .55); font-size: 13px; color: var(--metin); }
.dpz-balon-bas { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci); margin-bottom: 6px; }
.dpz-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.dpz-liste li { display: flex; align-items: center; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--ayirici); }
.dpz-liste li:last-child { border-bottom: 0; }
.dpz-liste b { font-variant-numeric: tabular-nums; color: var(--ikinci); font-weight: 600; }
.dpz-turler li span { flex: 1; }
.dpz-turler small { font-size: 11px; font-weight: 700; }
.dpz-var small { color: var(--metin-basari); }
.dpz-yok { opacity: .45; }
.dpz-bos { margin: 0; color: var(--ikinci); }
@media (max-width: 700px) { .dpz-resim { width: 56px; height: 56px; border-radius: 13px; } .dpz { gap: 10px; } }

/* Stok Yönetimi · ay ay sütunlar ve fark (2026.1193) */
.dp-tablo col.dpa-c-ay { width: 120px; }
.dp-tablo col.dpa-c-fark { width: 100px; }
.dpg-tek.dpl { container-type: inline-size; container-name: dpl; }
.dpz .dp-ad-yazi { white-space: normal; overflow: visible; text-overflow: clip; }
.dpz-dugmeler { flex-wrap: nowrap; }
.dpz .dp-alt-bilgi { display: none !important; }
@media (max-width: 1100px) { .dpz-dugmeler { flex-wrap: wrap; } }
.dp-tablo th.dpa-bas { text-align: center; line-height: 1.15; padding-top: 10px !important; padding-bottom: 10px !important; }
.dp-tablo th.dpa-bas span { display: block; font-size: 12px; letter-spacing: .06em; }
.dp-tablo th.dpa-bas b { display: block; font-size: 10.5px; font-weight: 600; opacity: .7; margin-top: 2px; letter-spacing: .08em; }
.dp-tablo th.dpa-fark-bas { text-align: center; opacity: .75; }
.dp-tablo th.dpa-secili, .dp-tablo td.dpa-secili { background: rgba(201, 164, 101, .12); }
.dp-tablo td.dpa-ay { text-align: center; vertical-align: middle; }
.dpa-ay > * { display: block; margin-left: auto; margin-right: auto; }
.dpa-tutar { font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dpa-durum { width: max-content; margin-top: 5px; padding: 2px 9px; border-radius: 999px; font-size: 10.5px; font-weight: 700;
  background: rgba(176, 122, 26, .12); color: var(--metin-uyari); }
.dpa-durum .simge { vertical-align: -1px; }
.dpa-sayildi { background: rgba(46, 107, 74, .12); color: var(--metin-basari); }
.dpa-kapali { background: rgba(0, 0, 0, .06); color: var(--ikinci); }
.dpa-gir { border: 0; background: var(--vurgu, #8F2D22); color: #FFFDF8; font: inherit; font-size: 10.5px; font-weight: 700;
  line-height: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 3px; }
.dpa-gir:hover { filter: brightness(1.12); }
.dp-tablo td.dpa-fark { text-align: center; vertical-align: middle; color: var(--ikinci); font-size: 12px; padding-left: 4px !important; padding-right: 4px !important; }
.dpa-fark-tutar { display: block; font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dpa-yuzde { display: block; font-size: 10.5px; opacity: .8; }
.dpa-artti { color: var(--metin-basari) !important; }
.dpa-azaldi { color: var(--metin-hata) !important; }
.dp-toplam td.dpa-ay .dpa-tutar { color: var(--metin-hata); font-weight: 750; }
/* Sütunlar ince çizgiyle ayrılır (2026.1193 · kullanıcının isteği). */
.dp-tablo th.dpa-bas, .dp-tablo th.dpa-fark-bas,
.dp-tablo td.dpa-ay, .dp-tablo td.dpa-fark { border-left: 1px solid rgba(160, 128, 76, .28); }
/* Dar ekranda eski aylar sırayla gizlenir (2026.1194): yN = N ay önceki ay,
   (N-1)f = onunla bir sonraki ay arasındaki fark. */
/* Ölçü tablonun kendi genişliği (container): departman sütunu en az
   ~280px kalsın diye. Ay 120px, fark 100px. */
@container dpl (max-width: 1420px) { .dp-tablo .dpa-y-3 { display: none; } }
@container dpl (max-width: 1160px) { .dp-tablo .dpa-y-2 { display: none; } }
@container dpl (max-width: 900px) { .dp-tablo .dpa-y-1 { display: none; } }
/* Telefonda yalnız seçilen ay · önceki aylar ve farklar gizli */
@media (max-width: 700px) {
  .dp-tablo col.dpa-c-ay:not(.dpa-c-secili), .dp-tablo col.dpa-c-fark,
  .dp-tablo th.dpa-bas:not(.dpa-secili), .dp-tablo th.dpa-fark-bas,
  .dp-tablo td.dpa-ay:not(.dpa-secili), .dp-tablo td.dpa-fark { display: none; }
  .dp-tablo td.dpa-secili { background: none; }
}

/* Göz yormasın (2026.1195 · kullanıcının bildirimi: "bakınca çok göz
   yoruyor, pilleri kesin küçültelim"): dolgu yok, küçük yazı, sakin renk. */
.dpa-durum { margin-top: 3px; padding: 0 6px; background: none !important; font-size: 10px; font-weight: 600; line-height: 16px;
  color: var(--ikinci); opacity: .8; }
.dpa-sayildi { color: var(--metin-basari); opacity: 1; }
.dpa-sayildi .simge { width: 10px; height: 10px; }
button.dpa-gir { border: 1px solid rgba(143, 45, 34, .45) !important; background: none !important; color: var(--vurgu, #8F2D22);
  border-radius: 999px; padding: 0 8px; font-size: 10px; font-weight: 700; line-height: 15px; opacity: 1; }
button.dpa-gir:hover { background: rgba(143, 45, 34, .08) !important; filter: none; }
.dpa-tutar { font-weight: 600; font-size: 13.5px; }
.dp-tablo td.dpa-fark { font-size: 11.5px; }
.dpa-fark-tutar { font-weight: 600; }
.dpa-yuzde { font-size: 9.5px; opacity: .65; }
.dpa-artti, .dpa-azaldi { opacity: .9; }
.dp-tablo td.dpa-bos { color: var(--ikinci); opacity: .35; }
.dp-tablo .dpa-gelecek { opacity: .4; }
.dp-tablo th.dpa-secili, .dp-tablo td.dpa-secili { background: rgba(201, 164, 101, .09); }

/* Hareket sütunu · Devir, Giren, Çıkan, Kalan · küçük ve soluk (2026.1197) */
.dp-tablo col.dpa-c-har { width: 158px; }
.dp-tablo th.dpa-har-bas { text-align: left; font-size: 10px; opacity: .6; padding-left: 12px !important; }
.dp-tablo td.dpa-har { vertical-align: middle; padding: 6px 10px 6px 12px !important; border-left: 1px solid rgba(160, 128, 76, .28); }
.dpa-har-s { display: flex; justify-content: space-between; gap: 8px; font-size: 10.5px; line-height: 1.45; color: var(--ikinci); }
.dpa-har-s i { font-style: normal; opacity: .7; }
.dpa-har-s b { font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.dpa-har-g b { color: var(--metin-basari); }
.dpa-har-c b { color: var(--metin-hata); opacity: .85; }
.dpa-har-k { margin-top: 1px; padding-top: 1px; border-top: 1px dashed rgba(160, 128, 76, .3); }
.dpa-har-k b { font-weight: 650; color: var(--metin); }
@media (max-width: 700px) { .dp-tablo .dpa-har, .dp-tablo col.dpa-c-har, .dp-tablo .dpa-har-bas { display: none; } }

/* Ay grubu · Hareket + Kalan tek çerçeve (2026.1198) */
.dp-tablo col.dpa-c-ara { width: 8px; }
.dp-tablo col.dpa-c-har { width: 136px; }
.dp-tablo col.dpa-c-ay { width: 116px; }
.dp-tablo td.dpa-ay { padding-left: 4px !important; padding-right: 4px !important; }
.dp-tablo td.dpa-ay .dpa-tutar { font-size: 13px; }
.dpz-dugmeler { flex-wrap: wrap !important; }
.dpz-resim { width: 60px; height: 60px; border-radius: 14px; }
.dp-tablo .dpa-ara { padding: 0 !important; border: 0 !important; background: transparent !important; }
.dp-tablo td.dpa-har { border-left: 1px solid rgba(176, 140, 80, .5) !important; padding: 6px 8px 6px 10px !important; }
.dp-tablo td.dpa-ay { border-left: 1px dashed rgba(176, 140, 80, .22) !important; border-right: 1px solid rgba(176, 140, 80, .5) !important; }
.dp-tablo th.dpa-grup-bas { border-left: 1px solid rgba(176, 140, 80, .5) !important; border-right: 1px solid rgba(176, 140, 80, .5) !important;
  border-top: 2px solid rgba(176, 140, 80, .55) !important; text-align: center; }
.dp-tablo th.dpa-grup-bas span { font-size: 11.5px; }
.dp-tablo th.dpa-grup-bas b { display: flex; justify-content: space-around; margin-top: 4px; font-size: 9px; opacity: .55; letter-spacing: .08em; }
.dp-tablo th.dpa-grup-bas b em { font-style: normal; }
.dp-toplam td.dpa-har, .dp-toplam td.dpa-ay { border-bottom: 1px solid rgba(176, 140, 80, .5) !important; }
.dpa-har-s { font-size: 10px; }
@media (max-width: 700px) {
  .dp-tablo .dpa-ara, .dp-tablo col.dpa-c-ara { display: none; }
  .dp-tablo th.dpa-grup-bas b { display: none; }
  .dp-tablo td.dpa-ay { border: 0 !important; }
}

/* Sayım FIFO · birim fiyat düğmesi ve döküm penceresi (2026.1200 · göç 326) */
button.dp-fifo { border: 0; background: none; padding: 2px 4px; border-radius: 6px; font: inherit; color: inherit; cursor: pointer; text-align: inherit; }
button.dp-fifo:hover { background: rgba(201, 164, 101, .14); }
button.dp-fifo .dp-fiyat-tarih { display: block; color: var(--vurgu, #8F2D22); opacity: .7; text-decoration: underline dotted; }
.fifo-not { margin: 0 0 10px; font-size: 12.5px; color: var(--ikinci); }
.fifo-bolum { padding: 10px 12px; border: 1px solid var(--ayirici); border-radius: 10px; background: var(--yuzey); margin-bottom: 10px; }
.fifo-bolum h4 { margin: 0 0 6px; font-size: 14px; }
.fifo-kull { background: rgba(143, 45, 34, .03); }
.fifo-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.fifo-liste li { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; padding: 4px 0; border-bottom: 1px dashed var(--ayirici); }
.fifo-liste li:last-child { border-bottom: 0; }
.fifo-liste li span { color: var(--ikinci); }
.fifo-liste li b { font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fifo-bos { margin: 0; font-size: 12.5px; color: var(--ikinci); }

/* ---- SAYIM KÂĞIDI · FERAH DÜZEN (2026.1201) ----
   Kullanıcının isteği: "tasarım daha ferah · marka ürün altına · miktar
   ve tutar birleşsin · Dönem başı → Devir · sıra değişsin". Sütunlar:
   S.No · Ürün (marka altında) · Devir · Giren · Kalan · Kullanılan ·
   Birim fiyat. Her hücrede miktar üstte, tutarı altında küçük. */
.dpg-tek:not(.dpl) .dpg-c-adet  { width: 128px; }
.dpg-tek:not(.dpl) .dpg-c-giris { width: 168px; }
.dpg-tek:not(.dpl) .dpg-c-fiyat { width: 132px; }
.dpg-tek:not(.dpl) .dpg-c-depo  { width: 150px; }
.dpg-tek:not(.dpl) .dpg-tablo { min-width: 940px; }
@media (max-width: 1440px) {
  .dpk:not(.dpl) .dpg-tablo { min-width: 940px; }
}
.dpk:not(.dpl) .dpg-tablo tbody tr.dp-urun td { height: 60px; padding-top: 6px; padding-bottom: 6px; }
.dpk:not(.dpl) .dpg-tablo tbody tr.dp-toplam td { height: 52px; }
.dpk:not(.dpl) .dp-ana { display: block; line-height: 1.25; }
.dpk:not(.dpl) .dp-alt {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  line-height: 1.15;
  font-weight: 400;
  color: var(--ikinci);
  opacity: .8;
  font-variant-numeric: tabular-nums;
}
.dpk:not(.dpl) .dp-alt .tl, .dpk:not(.dpl) .dp-alt small { font-size: inherit; }
.dpk:not(.dpl) .dp-giris .dp-alt { text-align: center; }
.dpk:not(.dpl) .dp-kullanilan .dp-kull-sayi { font-weight: 600; }
.dpk:not(.dpl) .dp-kullanilan .dp-onceki { margin-top: 2px; opacity: .6; }
.dpk:not(.dpl) .dp-urun-ad .dp-urun-baslik { display: block; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; }
.dp-urun-marka {
  display: block;
  margin-top: 3px;
  font-size: 11px;
  line-height: 1.15;
  letter-spacing: .04em;
  color: var(--ikinci);
  opacity: .75;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dpk:not(.dpl) .dp-toplam .dp-top { font-weight: 700; font-variant-numeric: tabular-nums; }
.dpk:not(.dpl) .dp-toplam .dp-top-devir,
.dpk:not(.dpl) .dp-toplam .dp-top-giren { font-weight: 500; color: var(--ikinci); }
@media (max-width: 1300px) {
  .dpg-tek:not(.dpl) .dpg-c-adet  { width: 104px; }
  .dpg-tek:not(.dpl) .dpg-c-giris { width: 144px; }
  .dpg-tek:not(.dpl) .dpg-c-fiyat { width: 116px; }
  .dpg-tek:not(.dpl) .dpg-c-depo  { width: 120px; }
  .dpg-tek:not(.dpl) .dpg-tablo,
  .dpk:not(.dpl) .dpg-tablo { min-width: 820px; }
}

/* ---- SAYIM KÂĞIDI · FİYAT ÜRÜNÜN YANINDA, HAREKET TEK ÇERÇEVE (2026.1202) ----
   Kullanıcının isteği: "birim fiyat ürünün yanında olsun · devir giren
   kullanılan kalan tek çerçeve olsun · TL ikonu birim fiyatın orada ·
   düzenleme ikonu tepede, basınca her yer düzenlenebilir". */
.rs-serit .dp-duzen-tus { padding-left: 10px; padding-right: 10px; min-width: 38px; justify-content: center; }
.dpk:not(.dpl) .dpg-tablo td.dp-fiyat { text-align: right; padding-right: 12px; }
.dp-fiyat-kap { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; }
.dp-fiyat-yazi { display: inline-block; text-align: right; }
.dp-fiyat-kap .dp-fiyat-tus { position: static; margin: 0; flex: none; }
.dpk:not(.dpl) .dpg-tablo td.dp-urun-ad:not(.dp-urun-ad-kalemli) { padding-right: 12px; }
/* Çerçeve · Devir'in solu, Kalan'ın sağı; grup hafif tonlu. */
.dpk:not(.dpl) .dpg-tablo .dp-g { background: rgba(201, 164, 101, .06); }
.dpk:not(.dpl) .dpg-tablo .dp-g-bas { border-left: 1.5px solid var(--altin, #C9A465) !important; }
.dpk:not(.dpl) .dpg-tablo .dp-g-son { border-right: 1.5px solid var(--altin, #C9A465) !important; }
.dpk:not(.dpl) .dpk-bas-tablo th.dp-g { border-top: 1.5px solid var(--altin, #C9A465); background: rgba(201, 164, 101, .14); }
.dpk:not(.dpl) .dpk-bas-tablo th.dp-g-bas { border-top-left-radius: 8px; }
.dpk:not(.dpl) .dpk-bas-tablo th.dp-g-son { border-top-right-radius: 8px; }
.dpk:not(.dpl) .dp-toplam td.dp-g { border-bottom: 1.5px solid var(--altin, #C9A465); background: rgba(201, 164, 101, .12); }
.dpk:not(.dpl) .dp-toplam td.dp-g-bas { border-bottom-left-radius: 8px; }
.dpk:not(.dpl) .dp-toplam td.dp-g-son { border-bottom-right-radius: 8px; }
.dpk:not(.dpl) .dpg-tablo td.dp-fiyat { border-right: 0 !important; }
/* Çerçeveli grup daha dar (2026.1203 · "biraz daha daraltabiliriz o kısmı"). */
.dpg-tek:not(.dpl) .dpg-c-adet  { width: 96px; }
.dpg-tek:not(.dpl) .dpg-c-giris { width: 132px; }
.dpk:not(.dpl) .dpg-tablo .dp-g { padding-left: 6px; padding-right: 6px; }
.dpk:not(.dpl) .dp-giris .dp-yazim .sy-giris { width: 48px; }
@media (max-width: 1300px) {
  .dpg-tek:not(.dpl) .dpg-c-adet  { width: 88px; }
  .dpg-tek:not(.dpl) .dpg-c-giris { width: 120px; }
}
.dpg-tek:not(.dpl) .dpg-c-adet  { width: 108px; }
.dpk:not(.dpl) .dp-toplam td.dp-top { font-size: 13px; overflow: visible; text-overflow: clip; padding-left: 2px; padding-right: 2px; }

/* ---- SAYIM KÂĞIDI · TUTARLAR AYNI HİZADA (2026.1204) ----
   Kullanıcının isteği: "rakamların altındaki tutarların hepsi eşit hizada
   olsun · başlıklarda kesinti olmuş". Hücreler üstten hizalanır; ana satır
   (rakam ya da kalan kutusu) sabit 26px, tutar hep onun altında. Küme
   başlığında son dört hücre çerçevenin parçası. */
.dpk:not(.dpl) .dpg-tablo tbody tr.dp-urun td.dp-g,
.dpk:not(.dpl) .dpg-tablo tbody tr.dp-urun td.dp-fiyat { vertical-align: top; padding-top: 9px; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-ana,
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-yazim { height: 26px; display: flex; align-items: center; justify-content: center; line-height: 1; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-yazim .sy-giris { height: 26px; padding-top: 0; padding-bottom: 0; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-alt { margin-top: 3px; height: 14px; line-height: 14px; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-onceki { margin-top: 1px; }
.dpk:not(.dpl) tr.dp-urun td.dp-fiyat .dp-fiyat-kap { align-items: flex-start; }
.dpk:not(.dpl) tr.dp-urun td.dp-fiyat .dp-fifo,
.dpk:not(.dpl) tr.dp-urun td.dp-fiyat .dp-fiyat-yazi { padding-top: 0; line-height: 26px; }
.dpk:not(.dpl) tr.dp-urun td.dp-fiyat .dp-fiyat-tarih { margin-top: 3px; line-height: 14px; }
.dpk:not(.dpl) tr.dp-urun td.dp-fiyat .dp-fiyat-tus { margin-top: 1px; }
.dpk:not(.dpl) tr.dpk-bas td.dp-g { background: rgba(201, 164, 101, .06); }
/* Kalan kutusu hücrenin tam ortasında (2026.1205 · "kalan kısım ortalı
   değil"): birim yazısı akıştan çıkar, kutunun sağına asılır. */
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-yazim { position: relative; width: 64px; margin: 0 auto; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-yazim .sy-giris { width: 64px; flex: none; text-align: center; }
.dpk:not(.dpl) tr.dp-urun .dp-g .dp-yazim .dp-birim { position: absolute; left: calc(100% + 4px); top: 50%; transform: translateY(-50%); width: auto; }

/* ₺ düğmesi her satırda aynı yerde (2026.1207 · "tl amblemi sabit olsun,
   hepsinde farklı hizalanmış"): fiyat solda sağa yaslı, düğme sabit
   sütunda; uzun fiyatta hücre "…" ile kesilmez. */
.dpg-tek:not(.dpl) .dpg-c-fiyat { width: 150px; }
.dpk:not(.dpl) .dpg-tablo td.dp-fiyat { overflow: visible; text-overflow: clip; padding-left: 6px; padding-right: 10px; }
.dpk:not(.dpl) .dp-fiyat-kap { display: grid; grid-template-columns: minmax(0, 1fr) 28px; column-gap: 8px; width: 100%; align-items: start; }
.dpk:not(.dpl) .dp-fiyat-kap > .dp-fifo,
.dpk:not(.dpl) .dp-fiyat-kap > .dp-fiyat-yazi { justify-self: end; text-align: right; white-space: nowrap; }
.dpk:not(.dpl) .dp-fiyat-kap > .dp-fiyat-tus { justify-self: center; }

/* Depo içerik ayarları · üst hesap satırı ve altındakiler (2026.1207). */
.depo-ust { font-weight: 700; background: rgba(201, 164, 101, .08); }
.depo-ust-not { margin-left: auto; font-size: 11px; font-weight: 400; color: var(--ikinci); }
.depo-hesap-alt .depo-hesap { padding-left: calc(var(--bosluk) * 4); }

/* Ana / yan depo (2026.1208 · göç 329). Yan depoda yalnız kalan kutusu;
   altında ayrıntının ana depoda olduğu yazar. Ana depoda kalanın altında
   yan depolardan gelen miktar. */
.dpk:not(.dpl) .dp-yan-bos .dp-ana { color: var(--ikinci); opacity: .45; }
.dpk:not(.dpl) .dp-alt.dp-yan-not { color: var(--vurgu, #8F2D22); opacity: .75; white-space: nowrap; }
.dpk:not(.dpl) .dp-yan-ek { text-align: center; color: var(--altin-koyu, #8A6A2E); opacity: .9; }

/* Listeden depo içerik ayarı · depo seçme penceresi (2026.1209). */
.pencere.dpi-sec-pencere { max-width: 460px; }
.dpi-sec { display: grid; gap: 6px; }
.dpi-sec-tus { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; border: 1px solid var(--kenar); border-radius: var(--kose-kutu); background: var(--yuzey); font: inherit; color: var(--metin); cursor: pointer; text-align: left; }
.dpi-sec-tus:hover { border-color: var(--altin, #C9A465); background: rgba(201, 164, 101, .08); }
.dpi-sec-ad { flex: 1; font-weight: 600; }
.dpi-sec-say { font-size: 12px; color: var(--ikinci); }

/* ---- PROGRAM YAPISI · HAZİNE HARİTASI (2026.1211) ----
   Duraklar kesik çizgili bir yolun üstünde; cevaplanan durak küçülür,
   sıradaki soru kart olur, ileridekiler sisin içinde "?" durur, yolun
   sonunda ✕ hedef. */
.py-harita { max-width: 860px; margin: 0 auto; padding: 8px 4px 40px; }
.py-bas h2 { margin: 0 0 6px; font-family: var(--baslik-yazi, Georgia, serif); color: var(--vurgu, #8F2D22); letter-spacing: .02em; }
.py-bas p { margin: 0 0 6px; color: var(--ikinci); }
.py-uyari { color: var(--vurgu, #8F2D22) !important; font-size: 13px; }
.py-yol { list-style: none; margin: 22px 0 0; padding: 0; position: relative; }
.py-yol::before { content: ""; position: absolute; left: 21px; top: 10px; bottom: 10px; border-left: 3px dashed var(--altin, #C9A465); opacity: .7; }
.py-durak { position: relative; display: flex; gap: 16px; align-items: flex-start; margin: 0 0 18px; }
.py-no { position: relative; z-index: 1; flex: none; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 16px; background: var(--yuzey, #FBF7F0); border: 2px solid var(--altin, #C9A465); color: var(--altin-koyu, #8A6A2E);
  box-shadow: 0 2px 0 var(--altin-koyu, #8A6A2E); }
.py-tamam .py-no { background: var(--altin, #C9A465); color: #fff; }
.py-simdi .py-no { background: var(--vurgu, #8F2D22); border-color: var(--vurgu, #8F2D22); color: #fff; box-shadow: 0 0 0 6px rgba(143, 45, 34, .12); }
.py-uzak .py-no { opacity: .45; border-style: dashed; box-shadow: none; }
.py-x { font-size: 20px; color: var(--vurgu, #8F2D22); }
.py-hedef .py-x { background: var(--vurgu, #8F2D22); color: #fff; border-color: var(--vurgu, #8F2D22); }
.py-ozet { flex: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; min-height: 44px; padding: 8px 14px;
  border: 1px solid var(--kenar); border-radius: 12px; background: var(--yuzey, #FBF7F0); }
.py-ozet-soru { flex: 1 1 100%; font-size: 12px; color: var(--ikinci); }
.py-ozet-cevap { font-size: 15px; color: var(--metin); }
.py-degis { margin-left: auto; border: 0; background: none; color: var(--vurgu, #8F2D22); font: inherit; font-size: 13px; text-decoration: underline dotted; cursor: pointer; }
.py-sis { flex: 1; min-height: 44px; display: flex; align-items: center; padding: 0 14px; border: 1px dashed var(--altin-soluk, #E2CFA6);
  border-radius: 12px; color: var(--ikinci); opacity: .55; font-weight: 700; letter-spacing: .1em; }
.py-kart { flex: 1; padding: 18px; border: 1.5px solid var(--altin, #C9A465); border-radius: 16px; background: var(--yuzey, #FBF7F0);
  box-shadow: 0 6px 18px rgba(74, 52, 32, .1); }
.py-kart-bas { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.py-kart-bas h3 { margin: 0 0 4px; font-size: 18px; color: var(--metin); }
.py-kart-bas p { margin: 0; font-size: 13.5px; color: var(--ikinci); line-height: 1.45; }
.py-kart-simge { flex: none; color: var(--altin-koyu, #8A6A2E); }
.py-secenekler { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.py-secenek { display: flex; flex-direction: column; gap: 6px; padding: 14px; text-align: left; border: 1px solid var(--kenar); border-radius: 12px;
  background: #fff; font: inherit; color: var(--metin); cursor: pointer; transition: transform .12s, box-shadow .12s, border-color .12s; }
.py-secenek:hover { transform: translateY(-2px); border-color: var(--altin, #C9A465); box-shadow: 0 6px 14px rgba(74, 52, 32, .12); }
.py-secili { border-color: var(--vurgu, #8F2D22); box-shadow: 0 0 0 2px rgba(143, 45, 34, .15); }
.py-secenek-bas { display: flex; align-items: center; gap: 8px; }
.py-secenek-bas b { font-size: 15px; }
.py-secenek-bas em { margin-left: auto; font-style: normal; font-size: 11px; padding: 2px 8px; border-radius: 99px; background: rgba(201, 164, 101, .18); color: var(--altin-koyu, #8A6A2E); white-space: nowrap; }
.py-secenek-tarif { font-size: 13px; line-height: 1.45; color: var(--ikinci); }
.py-isler { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.py-isler li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 10px 12px; border-radius: 10px; background: rgba(201, 164, 101, .08); }
.py-isler li span { flex: 1 1 100%; font-size: 12px; color: var(--ikinci); }
.py-git { border: 1px solid var(--altin, #C9A465); background: var(--yuzey, #FBF7F0); border-radius: 99px; padding: 3px 10px; font: inherit; font-size: 12.5px;
  color: var(--altin-koyu, #8A6A2E); cursor: pointer; }
.py-git:hover { color: var(--vurgu, #8F2D22); border-color: var(--vurgu, #8F2D22); }
@media (max-width: 600px) {
  .py-yol::before { left: 17px; }
  .py-no { width: 36px; height: 36px; font-size: 14px; }
  .py-kart { padding: 14px; }
}

/* Yönetim linki · gelir hesabı görselli kartlarla (2026.1212). */
/* Seçici .yr2-kartlar altında: satırların iç .yr2-kart kutusuyla çakışıp alt yazıyı kesiyordu (2026.1465). */
.yr2-kartlar { display: flex; gap: 8px; width: 100%; }
.yr2-kartlar .yr2-kart { position: relative; flex: 1 1 0; min-width: 0; height: 64px; padding: 0; border: 2px solid rgba(255, 255, 255, .35); border-radius: 12px;
  overflow: hidden; cursor: pointer; background: #FFFDF8; box-shadow: 0 3px 0 rgba(0, 0, 0, .25); transition: transform .12s, opacity .15s, border-color .15s; }
.yr2-kartlar .yr2-kart img { display: block; width: 100%; height: 100%; }
.yr2-kart-logo img { object-fit: contain; padding: 6px 10px; box-sizing: border-box; }
.yr2-kart-vagon { background: #1B1414; }
.yr2-kart-vagon img { object-fit: cover; object-position: 50% 45%; }
.yr2-kartlar .yr2-kart:active { transform: translateY(2px); box-shadow: 0 1px 0 rgba(0, 0, 0, .25); }
.yr2-kart-secili { border-color: #E8C77A; box-shadow: 0 0 0 3px rgba(232, 199, 122, .45), 0 3px 0 rgba(0, 0, 0, .25); }
.yr2-kart-soluk { opacity: .45; filter: grayscale(.4); }
.yr2-kart-tik { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; background: #E8C77A; color: #5A1520;
  font-style: normal; font-weight: 800; font-size: 12px; display: flex; align-items: center; justify-content: center; }
.yr2-kart-not { flex: 1 1 100%; font-size: 12px; color: rgba(252, 248, 239, .8); }
.yl-serit .yr2-link-serit { width: 100%; }
@media (min-width: 700px) {
  .yr2-kartlar { width: auto; }
  .yr2-kartlar .yr2-kart { flex: none; width: 170px; }
  .yr2-kart-not { flex: none; }
}
/* Program Yapısı · kısımlar (2026.1213). */
.py-kisim { margin-top: 30px; }
.py-kisim-bas { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; padding-bottom: 8px; border-bottom: 2px solid var(--altin, #C9A465);
  font-family: var(--baslik-yazi, Georgia, serif); font-size: 20px; color: var(--metin); }
.py-kisim-bas span { font-family: Inter, system-ui, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: #fff; background: var(--vurgu, #8F2D22); border-radius: 99px; padding: 3px 10px; }
.py-kisim-bas em { margin-left: auto; font-style: normal; font-family: Inter, system-ui, sans-serif; font-size: 12px; color: var(--ikinci); }
/* Seçenek üstüne gelince yerinden oynamaz (2026.1214). */
.py-secenek:hover { transform: none; }
/* Program Yapısı · Diğer ve Sıfırla (2026.1215). */
.py-diger { border-style: dashed; }
.py-diger-kutu { display: flex; gap: 10px; align-items: flex-end; margin-top: 12px; }
.py-diger-kutu textarea { flex: 1; min-height: 56px; resize: vertical; }
.py-sifirla { margin-left: 10px; border: 1px solid var(--kenar); background: var(--yuzey, #FBF7F0); border-radius: 99px; padding: 3px 12px;
  font: inherit; font-family: Inter, system-ui, sans-serif; font-size: 12px; color: var(--vurgu, #8F2D22); cursor: pointer; }
.py-sifirla:hover { border-color: var(--vurgu, #8F2D22); }

/* ---- PROGRAM YAPISI · KISIM KARTLARI VE BÜYÜK KART (2026.1216) ---- */
.py-kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; margin-top: 22px; }
.py-kisim-kart { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-height: 210px; padding: 18px; text-align: left;
  border: 1.5px solid var(--altin, #C9A465); border-radius: 18px; background: var(--yuzey, #FBF7F0); font: inherit; color: var(--metin); cursor: pointer;
  box-shadow: 0 3px 0 var(--altin-koyu, #8A6A2E), 0 8px 18px rgba(74, 52, 32, .1); transition: box-shadow .12s, border-color .12s; }
.py-kisim-kart:hover { border-color: var(--vurgu, #8F2D22); box-shadow: 0 3px 0 var(--vurgu, #8F2D22), 0 10px 22px rgba(74, 52, 32, .14); }
.py-kisim-kart b { font-family: var(--baslik-yazi, Georgia, serif); font-size: 20px; line-height: 1.2; }
.py-kk-ust { display: flex; align-items: center; gap: 8px; width: 100%; }
.py-kk-no { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #fff; background: var(--vurgu, #8F2D22); border-radius: 99px; padding: 3px 10px; }
.py-kk-simge { color: var(--altin-koyu, #8A6A2E); }
.py-kk-tarif { font-size: 13px; line-height: 1.45; color: var(--ikinci); flex: 1; }
.py-kk-cubuk { width: 100%; height: 6px; border-radius: 99px; background: rgba(201, 164, 101, .2); overflow: hidden; }
.py-kk-cubuk i { display: block; height: 100%; background: var(--altin, #C9A465); border-radius: 99px; }
.py-kisim-tamam .py-kk-cubuk i { background: #2E7D4F; }
.py-kk-durum { font-size: 12px; font-weight: 600; color: var(--ikinci); }
.py-kisim-ekle { align-items: center; justify-content: center; text-align: center; border-style: dashed; box-shadow: none; background: transparent; }
.py-kk-arti { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px;
  color: var(--vurgu, #8F2D22); border: 2px dashed var(--altin, #C9A465); }
.py-elle { font-size: 11px; font-weight: 600; color: var(--altin-koyu, #8A6A2E); background: rgba(201, 164, 101, .18); border-radius: 99px; padding: 2px 8px; }
.py-kisim-kart .py-elle { margin-left: auto; }
.py-buyuk { margin-top: 18px; padding: 22px 22px 18px; border: 1.5px solid var(--altin, #C9A465); border-radius: 22px; background: rgba(251, 247, 240, .92);
  box-shadow: 0 10px 30px rgba(74, 52, 32, .12); }
.py-buyuk-bas { margin-bottom: 6px; }
.py-geri { border: 0; background: none; padding: 0 0 8px; font: inherit; font-size: 13px; font-weight: 600; color: var(--vurgu, #8F2D22); cursor: pointer; }
.py-adim-ekle { display: block; width: 100%; margin-top: 6px; padding: 12px; border: 1.5px dashed var(--altin, #C9A465); border-radius: 12px; background: transparent;
  font: inherit; font-weight: 600; color: var(--altin-koyu, #8A6A2E); cursor: pointer; }
.py-adim-ekle:hover { color: var(--vurgu, #8F2D22); border-color: var(--vurgu, #8F2D22); }
.py-adim-sil { margin-left: 10px; border: 0; background: none; font: inherit; font-size: 12px; color: var(--ikinci); text-decoration: underline dotted; cursor: pointer; }
.py-kart-bas .py-adim-sil { margin-left: auto; align-self: flex-start; }
.py-kart-bas h3 small { font-weight: 600; vertical-align: middle; }
.pencere.py-form-pencere { max-width: 520px; width: calc(100vw - 32px); }
.py-form { display: grid; gap: 14px; }
.py-form textarea { resize: vertical; }
.py-form-not { display: block; margin-top: 4px; font-size: 12px; color: var(--ikinci); }
.py-form-dip { display: flex; justify-content: flex-end; gap: 10px; }
@media (max-width: 600px) { .py-buyuk { padding: 16px 12px; border-radius: 16px; } }
/* Program Yapısı · her adımın notu (2026.1217). */
.py-ozet-not { flex: 1 1 100%; }
.py-kart-not { margin-top: 12px; }
.py-not-ekle { border: 0; background: none; padding: 2px 0; font: inherit; font-size: 12.5px; color: var(--altin-koyu, #8A6A2E); cursor: pointer; }
.py-not-ekle:hover { color: var(--vurgu, #8F2D22); }
.py-not { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 10px; background: rgba(201, 164, 101, .12);
  font-size: 13px; line-height: 1.45; color: var(--metin); }
.py-not > span:nth-child(2) { flex: 1; white-space: pre-wrap; }
.py-not-simge { color: var(--altin-koyu, #8A6A2E); }
.py-not .py-degis { margin-left: 0; }
.py-not-kutu { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.py-not-kutu textarea { flex: 1 1 260px; min-height: 52px; resize: vertical; }
.py-isler-not { flex: 1 1 100%; font-size: 12px; color: var(--ikinci); white-space: pre-wrap; }

/* Fatura Aktarımı · Uyumsoft'tan çek kartı (2026.1219). */
.uyc-kart { margin-top: 14px; padding: 14px 16px; border: 1.5px solid var(--altin, #C9A465); border-radius: 14px; background: var(--yuzey, #FBF7F0); }
.uyc-bas { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.uyc-bas b { display: block; font-size: 15px; }
.uyc-bas small { display: block; font-size: 12.5px; color: var(--ikinci); }
.uyc-simge { font-size: 22px; line-height: 1; }
.uyc-satir { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.uyc-alan { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--ikinci); }
.uyc-alan .alan-kutu { width: 130px; }
.uyc-alan .trh { width: 160px; }
.uyc-alan .trh .alan-kutu { width: 100%; }
.uyc-gecmis { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--kenar); }
.uyc-gecmis small { font-size: 12px; color: var(--ikinci); }

/* ==== Zam ve Fiyat Kontrolü (2026.1465 · göç 335) ==== */
.zfk { display: flex; flex-direction: column; gap: 14px; padding: 4px 0 24px; }
.zfk-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.zfk-ozet-kart { background: var(--kart-yuzey, var(--yuzey)); border: 1px solid var(--kart-kenar, var(--kenar)); border-radius: var(--kose-kart, 12px); padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; box-shadow: var(--kart-golge, none); }
.zfk-ozet-kart span { font-size: 12px; color: var(--ikinci); }
.zfk-ozet-kart b { font-family: var(--yazi-baslik); font-size: 26px; line-height: 1.15; color: var(--metin); }
.zfk-ozet-kart small { font-size: 11.5px; color: var(--ikinci); }
.zfk-ozet-kart.zfk-art b { color: var(--hata); }
.zfk-ozet-kart.zfk-dus b { color: var(--basari); }
.zfk-ozet-kart.zfk-bekle { border-color: var(--altin); }
.zfk-ozet-kart.zfk-bekle b { color: var(--ikinci); }
.zfk-ozet-kart.zfk-tamam b { color: var(--basari); }
.zfk-akis { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.zfk-akis-adim { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--kart-yuzey, var(--yuzey)); border: 1px dashed var(--kenar); border-radius: var(--kose-kart, 12px); padding: 10px 12px; }
.zfk-akis-adim > b { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--altin-soluk); color: var(--ikinci); font-size: 13px; flex: none; }
.zfk-akis-adim > span { display: flex; flex-direction: column; font-weight: 600; font-size: 13.5px; flex: 1; min-width: 120px; }
.zfk-akis-adim > span small { font-weight: 400; font-size: 12px; color: var(--ikinci); }
.zfk-akis-adim.zfk-bitti { border-style: solid; border-color: var(--basari); }
.zfk-akis-adim.zfk-bitti > b { background: var(--basari); color: #fff; }
.zfk-baslik { font-family: var(--yazi-baslik); font-size: 18px; margin: 6px 0 0; color: var(--vurgu); }
.zfk-fatura { background: var(--kart-yuzey, var(--yuzey)); border: 1px solid var(--kart-kenar, var(--kenar)); border-left: 4px solid var(--altin); border-radius: var(--kose-kart, 12px); overflow: hidden; box-shadow: var(--kart-golge, none); }
.zfk-fatura.zfk-onayli { border-left-color: var(--basari); }
.zfk-fatura-bas { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; border-bottom: 1px solid var(--ayirici, var(--kenar)); }
.zfk-fatura-bas h3 { margin: 0; font-family: var(--yazi-baslik); font-size: 16px; }
.zfk-fatura-bas small { font-size: 12px; color: var(--ikinci); }
.zfk-fatura-bas em { font-style: normal; color: var(--ikinci); font-weight: 600; }
.zfk-onay-rozet { color: var(--basari); font-weight: 700; font-size: 13px; }
.zfk-onaylayan { display: block; font-size: 11px; font-weight: 600; color: var(--ikinci); text-align: right; } /* 2026.1465 */
.zfk-tablo-kap { overflow-x: auto; }
.zfk-tablo { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 620px; }
.zfk-tablo th { text-align: left; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci); font-weight: 600; padding: 7px 12px; background: var(--zemin); }
.zfk-tablo td { padding: 8px 12px; border-top: 1px solid var(--ayirici, var(--kenar)); vertical-align: top; }
.zfk-tablo .zfk-p { text-align: right; white-space: nowrap; }
.zfk-tablo td small { display: block; font-size: 11.5px; color: var(--ikinci); }
.zfk-urun b { font-weight: 600; }
.zfk-fark.zfk-art b { color: var(--hata); }
.zfk-fark.zfk-dus b { color: var(--basari); }
.zfk-not { width: 32%; }
.zfk-not-var { display: inline-block; background: var(--altin-soluk); border-radius: 8px; padding: 3px 8px; font-size: 12.5px; }
.zfk-not-yok { color: var(--ikinci); }
.zfk-bos { display: flex; flex-direction: column; gap: 4px; align-items: center; text-align: center; padding: 36px 16px; background: var(--kart-yuzey, var(--yuzey)); border: 1px dashed var(--kenar); border-radius: var(--kose-kart, 12px); }
.zfk-bos span { font-size: 13px; color: var(--ikinci); max-width: 520px; }
.zfk-dip { font-size: 12px; color: var(--ikinci); margin: 0; }
.zfk-pen-not { margin-top: 0; }
.zfk-pen-dugmeler { display: flex; justify-content: flex-end; margin-top: 10px; }
/* Zam ve Fiyat Kontrolü · solda veriler, sağda gün gün liste (2026.1465) */
.zfk-kart { padding: calc(var(--bosluk) * 1.25); }
.zfk-kart .zfk { padding: 0; }
.zfk-kart .zfk-fatura { box-shadow: none; }
.zfk-c-say { width: 74px; }
.zfk-yan-zam { color: var(--hata); }
.zfk-yan-alt { color: var(--ikinci); font-size: 11.5px; }
.zfk-yan-not { margin: 8px 4px 2px; font-size: 11.5px; color: var(--ikinci); }
/* Zam ve Fiyat Kontrolü · fatura görünümü ve gezgin (2026.1465) */
.zfk-gezgin { display: flex; flex-direction: column; gap: 10px; }
.zfk-gez-ust { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--kart-kenar, var(--kenar)); border-left: 4px solid var(--altin); border-radius: var(--kose-kart, 12px); background: var(--kart-yuzey, var(--yuzey)); }
.zfk-gezgin.zfk-onayli .zfk-gez-ust { border-left-color: var(--basari); }
.zfk-gez-ad { flex: 1; min-width: 180px; display: flex; flex-direction: column; }
.zfk-gez-ad b { font-family: var(--yazi-baslik); font-size: 17px; }
.zfk-gez-ad small { font-size: 12px; color: var(--ikinci); }
.zfk-gez-aciklama { margin: 0; padding: 8px 12px; background: var(--altin-soluk); border-radius: 10px; font-size: 13px; }
.zfk-gez-noktalar { display: flex; flex-wrap: wrap; gap: 6px; }
.zfk-nokta { min-width: 30px; height: 28px; padding: 0 8px; border-radius: 14px; border: 1px solid var(--kenar); background: var(--yuzey); color: var(--metin); font-size: 12.5px; cursor: pointer; }
.zfk-nokta-onay { border-color: var(--basari); color: var(--basari); }
.zfk-nokta-secili { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.zfk-belge-bekle { padding: 30px 0; }
.zfk-belge tbody tr { cursor: pointer; }
@media (hover: hover) { .zfk-belge tbody tr:hover td { background: var(--altin-soluk); } }
.zfk-belge tr:has(.zfk-fz-art) td { color: var(--hata); }
.zfk-belge tr:has(.zfk-fz-dus) td { color: var(--basari); }
.zfk-fz { display: block; font-size: 11.5px; font-weight: 600; margin-top: 2px; white-space: normal; }
.zfk-fz-art { color: var(--hata); }
.zfk-fz-dus { color: var(--basari); }
.zfk-fz-not { display: inline-block; margin-top: 3px; padding: 2px 8px; border-radius: 8px; background: var(--altin-soluk); color: var(--metin); font-size: 11.5px; font-weight: 400; }
/* Önceki fiyat birim fiyatın altında (2026.1465) */
.zfk-belge td .zfk-fz { text-align: right; white-space: nowrap; }
.zfk-fz-alt { display: block; font-size: 10.5px; font-weight: 400; color: var(--ikinci); white-space: nowrap; text-align: right; }
.zfk-belge tr:has(.zfk-fz-art) .zfk-fz-alt, .zfk-belge tr:has(.zfk-fz-dus) .zfk-fz-alt { color: var(--ikinci); }
/* Ünvan tek satır (2026.1465 · kullanıcı: "ünvan iki satır olmasın, tek satıra sığsın") */
.zfk-gez-ust { flex-wrap: nowrap; }
.zfk-gez-ad { min-width: 0; }
.zfk-gez-ad b { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zfk-gez-ust > .rs-tus, .zfk-gez-ust > .dugme-birincil, .zfk-gez-ust > .zfk-onay-rozet { flex: none; }
.zfk-fz-eski { display: block; font-size: 11.5px; color: var(--metin); white-space: nowrap; text-align: right; margin-top: 2px; }
.zfk-belge tr:has(.zfk-fz-art) .zfk-fz-eski, .zfk-belge tr:has(.zfk-fz-dus) .zfk-fz-eski { color: var(--metin); }
/* Fatura Aktarımı · "Fiyatları kontrol ettim" açıklaması (2026.1465) */
.fa-aciklama-sor { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.fa-aciklama-kutu { min-width: 260px; height: 32px; font-size: 13px; }
/* Dosya yükleme + Uyumsoft tek kart (2026.1465) */
.uyc-birlesik { display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(0, 1.4fr); gap: 14px; align-items: stretch; margin-top: 0; }
.uyc-birlesik .uyc-dosya { margin: 0; min-height: 0; padding: 18px 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.uyc-ya { display: flex; align-items: center; justify-content: center; position: relative; color: var(--ikinci); font-size: 12px; }
.uyc-ya::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: 50%; border-left: 1px dashed var(--kenar); }
.uyc-ya span { position: relative; background: var(--yuzey, #FBF7F0); padding: 4px 0; }
.uyc-uyumsoft .uyc-bas { margin-bottom: 8px; }
@media (max-width: 860px) {
  .uyc-birlesik { grid-template-columns: 1fr; }
  .uyc-ya::before { top: 50%; bottom: auto; left: 8px; right: 8px; border-left: 0; border-top: 1px dashed var(--kenar); }
  .uyc-ya span { padding: 0 8px; }
}
/* Fatura Aktarımı · fatura detayında gezinme (2026.1465) */
.fa-gez { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.fa-gez-noktalar { display: flex; flex-wrap: wrap; gap: 6px; flex: 1; }
.fa-gez-nokta { min-width: 30px; height: 28px; padding: 0 8px; border-radius: 14px; font-size: 12.5px; font-weight: 600; cursor: pointer; border: 1.5px solid transparent; color: #fff; }
.fa-gez-tamam { background: var(--basari); border-color: var(--basari); }
.fa-gez-eksik { background: var(--uyari-cizgi, #D98A2B); border-color: var(--uyari-cizgi, #D98A2B); }
.fa-gez-secili { box-shadow: 0 0 0 3px var(--yuzey, #fff), 0 0 0 5px var(--vurgu); }
.zfk-gez-sa { background: #E7EEE3; }
/* Yönetim Raporu · zam paneli (2026.1465) */
.yr2-pk-kotu .yr2-pk-tutar { color: var(--hata); }

/* SAYIM BİRİMİ (2026.1465 · göç 348) · kutunun yanındaki birim düğme olur;
   başka birimle sayılan üründe altın renkli, altında "Lt ile sayılır". */
button.dp-birim-tus { pointer-events: auto; opacity: .75; background: none; border: 0; padding: 0; font: inherit; color: inherit;
  cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
button.dp-birim-tus:hover { color: var(--vurgu, #8F2D22); }
button.dp-birim-ozel { opacity: 1; color: var(--altin-koyu, #8A6A2E); font-weight: 700; text-decoration-style: solid; }
.dp-sayim-birimi { display: block; font-size: var(--etiket-boy, 12px); color: var(--altin-koyu, #8A6A2E); margin-top: 2px; }
.dp-sb-form .dp-sb-secim { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
.dp-sb-cevir { display: flex; align-items: center; gap: 8px; margin: 4px 0 8px 26px; flex-wrap: wrap; }
.dp-sb-cevir.dp-sb-kapali { opacity: .4; pointer-events: none; }
.dp-sb-cevir .dp-sb-sayi { width: 80px; text-align: center; }
.dp-sb-cevir .dp-sb-birim { width: 90px; }

/* ---- SİPARİŞ TASLAKLARI (2026.1465 · göç 350) ----
   Kartlar ızgara; basınca kâğıt Satın Alma Sipariş Formu panelde açılır. */
.stk-serit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.stk-sekmeler, .stk-dugmeler { display: flex; gap: 8px; flex-wrap: wrap; }
.stk-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.stk-kart { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 14px 16px; border-radius: 14px;
  background: var(--yuzey, #FFFDF8); border: 1px solid var(--altin, #C2A268); cursor: pointer; font: inherit; color: inherit;
  box-shadow: 0 2px 0 rgba(154, 123, 69, .25); transition: transform .12s, box-shadow .12s; }
.stk-kart:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(58, 42, 29, .12); }
.stk-ust { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--ikinci-metin, #7A6A58); }
.stk-birim { background: var(--vurgu, #8F2D22); color: #fff; border-radius: 999px; padding: 1px 10px; font-weight: 600; white-space: nowrap; }
.stk-baslik { font: 600 17px/1.3 Georgia, serif; color: var(--vurgu, #8F2D22); }
.stk-satir { font-size: 13.5px; }
.stk-not { color: var(--ikinci-metin, #7A6A58); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.stk-mini { display: block; margin-top: 4px; border: 1px solid #2C2620; border-radius: 3px; background: #fff; font-size: 12px; }
.stk-mini-satir { display: flex; justify-content: space-between; gap: 8px; padding: 4px 8px; border-bottom: 1px solid #e6d8bc; }
.stk-mini-satir:last-child { border-bottom: 0; }
.stk-mini-satir span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stk-mini-satir span:last-child { flex: none; font-weight: 600; }
.stk-mini-daha { display: block; padding: 3px 8px; color: var(--ikinci-metin, #7A6A58); font-style: italic; }
.stk-bos { padding: 40px 16px; text-align: center; color: var(--ikinci-metin, #7A6A58); border: 1px dashed var(--altin, #C2A268); border-radius: 14px; }

.stk-kagit { background: #fff; color: #222; border: 1.5px solid #222; padding: 0; font-size: 13px; max-width: 900px; margin: 0 auto; }
.stk-k-tepe { display: grid; grid-template-columns: 90px 1fr 120px; align-items: center; border-bottom: 1.5px solid #222; padding: 8px 10px; }
.stk-k-logo { height: 34px; width: auto; }
.stk-k-ad { text-align: center; font: 700 16px/1.2 Georgia, serif; letter-spacing: .06em; }
.stk-k-tarih { text-align: right; font-weight: 600; }
.stk-k-kunye { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1.5px solid #222; }
.stk-k-kunye > div + div { border-left: 1.5px solid #222; }
.stk-k-alan { display: grid; grid-template-columns: 46% 1fr; border-bottom: 1px solid #222; min-height: 28px; }
.stk-k-alan:last-child { border-bottom: 0; }
.stk-k-alan span { padding: 5px 8px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; text-align: right; border-right: 1px solid #222; }
.stk-k-alan b { padding: 5px 8px; font-weight: 600; }
.stk-k-konu { display: grid; grid-template-columns: 23% 1fr; border-bottom: 1.5px solid #222; }
.stk-k-konu span { padding: 6px 8px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; text-align: right; border-right: 1px solid #222; }
.stk-k-konu b { padding: 6px 8px; }
.stk-k-tablo { width: 100%; border-collapse: collapse; }
.stk-k-tablo th, .stk-k-tablo td { border: 1px solid #222; padding: 6px 8px; height: 30px; }
.stk-k-tablo th { font-size: 11px; text-transform: uppercase; }
.stk-k-tablo td:first-child { width: 36px; text-align: center; font-weight: 700; }
.stk-k-tablo .sag { text-align: right; }
.stk-k-tablo tfoot td { font-weight: 700; font-size: 11.5px; }
.stk-k-not { border-top: 1.5px solid #222; padding: 6px 10px; }
.stk-k-not span { font-size: 11.5px; font-weight: 700; text-transform: uppercase; }
.stk-k-not p { margin: 4px 0 0; white-space: pre-wrap; }
.stk-k-imza { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1.5px solid #222; }
.stk-k-imza > div { display: flex; flex-direction: column; gap: 4px; padding: 8px; text-align: center; min-height: 96px; }
.stk-k-imza > div + div { border-left: 1px solid #222; }
.stk-k-imza b { font-size: 11px; }
.stk-k-imza small { font-size: 10.5px; color: #555; }
.stk-k-imza em { margin-top: auto; font-family: "Segoe Script", "Brush Script MT", cursive; font-size: 16px; color: #2a3a8a; }
@media (max-width: 640px) {
  .stk-k-kunye, .stk-k-imza { grid-template-columns: 1fr; }
  .stk-k-kunye > div + div, .stk-k-imza > div + div { border-left: 0; border-top: 1px solid #222; }
  .stk-k-tablo th:nth-child(n+5), .stk-k-tablo td:nth-child(n+5) { display: none; }
}
.stk-birimler { display: grid; gap: 8px; }
.stk-birim-satir { display: grid; grid-template-columns: 1.2fr 1.4fr auto auto; gap: 8px; align-items: center; }
.stk-birim-yeni { margin-top: 6px; padding-top: 10px; border-top: 1px dashed var(--altin, #C2A268); }
.stk-aktif { display: flex; align-items: center; gap: 4px; font-size: 13px; white-space: nowrap; }
@media (max-width: 640px) { .stk-birim-satir { grid-template-columns: 1fr 1fr; } }

/* ---- TEKLİF İSTE PENCERESİ ve FİYAT TEKLİFLERİ (2026.1465 · göç 351) ---- */
.stk-tk { display: grid; gap: 10px; }
.stk-tk-baslik { font: 600 15px/1.3 Georgia, serif; color: var(--vurgu, #8F2D22); margin-top: 6px; }
.stk-tk-baslik small { font: 400 12.5px/1.3 inherit; color: var(--ikinci-metin, #7A6A58); margin-left: 6px; font-family: inherit; }
.stk-tk-tablo { width: 100%; border-collapse: collapse; table-layout: fixed; }
.stk-tk-tablo th { font-size: 11.5px; text-transform: uppercase; text-align: left; padding: 4px; color: var(--ikinci-metin, #7A6A58); }
.stk-tk-tablo th:first-child, .stk-tk-tablo td:first-child { width: 34px; text-align: center; font-weight: 700; }
.stk-tk-tablo th:nth-child(3) { width: 24%; }
.stk-tk-tablo th:nth-child(4) { width: 14%; }
.stk-tk-tablo th:last-child { width: 36px; }
.stk-tk-tablo td { padding: 3px; }
.stk-tk-tablo .alan-kutu { width: 100%; }
.stk-tk-mik { text-align: right; }
.stk-tk-sil { border: 0; background: none; color: var(--hata, #B3261E); font-size: 16px; cursor: pointer; padding: 6px; }
.stk-tk-secili { display: flex; flex-wrap: wrap; gap: 6px; min-height: 30px; }
.stk-tk-firma { display: inline-flex; align-items: center; gap: 6px; background: var(--vurgu, #8F2D22); color: #fff; border-radius: 999px; padding: 4px 6px 4px 12px; font-size: 13px; }
.stk-tk-firma small { opacity: .8; }
.stk-tk-firma button { border: 0; background: rgba(255,255,255,.2); color: #fff; border-radius: 50%; width: 22px; height: 22px; cursor: pointer; }
.stk-tk-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; max-height: 210px; overflow: auto; }
.stk-tk-aday { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left; padding: 7px 10px; border: 1px solid var(--altin, #C2A268); border-radius: 10px; background: var(--yuzey, #FFFDF8); cursor: pointer; font: inherit; color: inherit; }
.stk-tk-aday:hover { border-color: var(--vurgu, #8F2D22); }
.stk-tk-aday small { font-size: 11.5px; color: var(--ikinci-metin, #7A6A58); }
.stk-tk-bos { font-size: 13px; color: var(--ikinci-metin, #7A6A58); padding: 4px 0; }
.stk-tk-yeni { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 8px; }
@media (max-width: 640px) { .stk-tk-yeni { grid-template-columns: 1fr; } }
.ft-durum { color: var(--ikinci-metin, #7A6A58); font-size: 12.5px; }
.ft-kunye { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13.5px; margin-bottom: 8px; }
.ft-not { font-size: 13.5px; margin: 0 0 8px; }
.ft-tablo { margin-bottom: 8px; }
.ft-firmalar { display: grid; gap: 8px; }
.ft-firma { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 1px solid var(--altin, #C2A268); border-radius: 12px; background: var(--yuzey, #FFFDF8); }
.ft-firma-ad { display: flex; flex-direction: column; gap: 2px; }
.ft-firma-ad small { font-size: 12px; color: var(--ikinci-metin, #7A6A58); }
.ft-firma-tus { display: flex; gap: 8px; }
.ft-yeni { font-size: 11px; font-weight: 600; color: var(--vurgu, #8F2D22); border: 1px solid currentColor; border-radius: 999px; padding: 0 6px; margin-left: 4px; vertical-align: 1px; }

/* ---- SİPARİŞLER · telefon formu düzeninde panel (2026.1465) ----
   Okurken kutular kilitli ve düz yazı gibi; Düzenle'de aynı kutular açılır. */
.stk-form { display: grid; gap: 12px; }
.stk-f-ust { display: grid; grid-template-columns: 1fr 200px; gap: 10px; }
@media (max-width: 640px) { .stk-f-ust { grid-template-columns: 1fr; } }
.stk-f-alan { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border: 1px solid var(--altin, #C2A268); border-radius: 12px; background: var(--yuzey, #FFFDF8); }
.stk-f-alan > span { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci-metin, #7A6A58); }
.stk-f-alan input:not(.alan-kutu), .stk-f-ara, .stk-tk-yeni input { width: 100%; height: 40px; border: 1.5px solid var(--altin, #C2A268); border-radius: 10px; padding: 0 10px; background: #fff; color: inherit; font: inherit; }
.stk-f-alan input:not(.alan-kutu):disabled, .stk-f-ara:disabled { background: transparent; border-style: dashed; opacity: .7; cursor: not-allowed; }
.stk-f-firma > div { display: grid; gap: 8px; }
.stk-kagit-mob { background: #fff; border: 1.5px solid #2C2620; border-radius: 4px; overflow: hidden; color: #2C2620; }
.stk-kagit-mob .kagit-baslik { text-align: center; font: 700 15px/1.2 Georgia, serif; letter-spacing: .06em; padding: 10px 8px; border-bottom: 1.5px solid #2C2620; background: #faf6ee; }
.stk-f-satir { display: flex; align-items: stretch; border-bottom: 1px solid #2C2620; min-height: 42px; }
.stk-f-satir > span { flex: none; width: 130px; padding: 10px 8px; font-size: 12.5px; font-weight: 700; text-transform: uppercase; border-right: 1px solid #2C2620; display: flex; align-items: center; justify-content: flex-end; background: #faf6ee; }
.stk-f-satir > b { padding: 10px; font-weight: 600; display: flex; align-items: center; }
.stk-f-satir input { flex: 1; min-width: 0; border: 0; padding: 10px; background: transparent; font: inherit; color: inherit; outline: none; }
.stk-f-tablo { width: 100%; border-collapse: collapse; table-layout: fixed; }
.stk-f-tablo th { font-size: 11.5px; font-weight: 700; text-transform: uppercase; padding: 8px 4px; border-bottom: 1px solid #2C2620; border-right: 1px solid #2C2620; background: #faf6ee; }
.stk-f-tablo td { border-bottom: 1px solid #2C2620; border-right: 1px solid #2C2620; padding: 0; height: 42px; }
.stk-f-tablo th:last-child, .stk-f-tablo td:last-child { border-right: 0; }
.stk-f-tablo .no { width: 40px; text-align: center; font-weight: 700; color: #7A6A58; }
.stk-f-tablo .amb { width: 26%; }
.stk-f-tablo .mik { width: 15%; }
.stk-f-tablo .sil { width: 40px; text-align: center; }
.stk-f-tablo input { width: 100%; height: 42px; border: 0; padding: 0 8px; background: transparent; font: inherit; color: inherit; outline: none; }
.stk-f-tablo .mik input { text-align: center; }
.stk-form input:disabled, .stk-form textarea:disabled { color: inherit; -webkit-text-fill-color: currentColor; opacity: 1; cursor: default; }
/* Taslakta da teklifteki renkler (2026.1455 · kullanıcı: "taslaklarda da soldaki tablo aynı bu renklerde olsun"): hücreler beyaz, yalnız yazılan kutu hafif belirir. */
.stk-form-yaz .stk-kagit-mob input:focus, .stk-form-yaz .stk-kagit-mob textarea:focus { background: #fffaf0; box-shadow: inset 0 0 0 1.5px var(--altin, #C2A268); }
.stk-kagit-mob .ekle { display: block; width: 100%; border: 0; background: #faf6ee; color: var(--vurgu, #8F2D22); font-weight: 700; padding: 10px; cursor: pointer; font: inherit; border-bottom: 1px solid #2C2620; }
.stk-f-not { display: block; }
.stk-f-not span { display: block; font-size: 12.5px; font-weight: 700; text-transform: uppercase; padding: 8px 10px 0; }
.stk-f-not textarea { display: block; width: 100%; min-height: 70px; border: 0; padding: 6px 10px 10px; background: transparent; resize: vertical; font: inherit; color: inherit; outline: none; }
.stk-teklif-no { font-weight: 600; color: var(--vurgu, #8F2D22); margin-bottom: 8px; }
.stk-pencere .stk-tk-baslik { margin-top: 14px; }

/* ---- SİPARİŞLER · iki sütun (2026.1465) ----
   Panel geniş; sağ sütun sabit enli, firmalar kaç tane olursa olsun form
   genişlemez, sütun kendi içinde kayar. Telefonda alt alta. */
.pencere.stk-pencere.pencere-genis { max-width: min(1280px, 96vw); }
.stk-duzen { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 14px; align-items: start; }
.stk-duzen > .stk-kagit-mob { grid-column: 1; grid-row: 1; }
.stk-duzen-sag { grid-column: 2; grid-row: 1; display: grid; gap: 10px; align-content: start;
  max-height: calc(100vh - 230px); overflow-y: auto; overflow-x: hidden; position: sticky; top: 0; }
.stk-duzen > datalist { display: none; }
.stk-duzen-sag .stk-f-alan { min-width: 0; }
.stk-duzen-sag .stk-tk-secili { display: grid; gap: 6px; }
.stk-duzen-sag .stk-tk-firma { justify-content: space-between; border-radius: 10px; padding: 6px 6px 6px 10px; min-width: 0; }
.stk-duzen-sag .stk-tk-firma { overflow: hidden; text-overflow: ellipsis; }
.stk-duzen-sag .stk-tk-liste { grid-template-columns: 1fr; max-height: 220px; }
.stk-duzen-sag .stk-tk-yeni { grid-template-columns: 1fr; }
.stk-duzen-sag .ft-firma { flex-direction: column; align-items: stretch; }
.stk-duzen-sag .ft-firma-tus { justify-content: stretch; }
.stk-duzen-sag .ft-firma-tus > * { flex: 1; }
@media (max-width: 900px) {
  .stk-duzen { grid-template-columns: 1fr; }
  .stk-duzen-sag { grid-column: 1; grid-row: 1; max-height: none; position: static; }
  .stk-duzen > .stk-kagit-mob { grid-row: 2; }
}
/* Sağ sütun sıkı (2026.1465): firma adı tek satır, düğmeler küçük. */
.stk-duzen-sag { max-height: calc(100vh - 300px); }
.stk-duzen-sag .stk-tk-firma { display: flex; white-space: nowrap; }
.stk-duzen-sag .ft-firma { padding: 8px 10px; gap: 6px; }
.stk-duzen-sag .ft-firma-ad b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; }
.stk-duzen-sag .ft-firma-ad small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stk-duzen-sag .ft-firma-tus .bas-orta { min-height: 32px; height: 32px; padding: 0 10px; font-size: 13px; white-space: nowrap; }
.stk-tk-firma-ad { overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1; }
.stk-duzen-sag > *, .stk-duzen-sag .ft-firmalar, .stk-duzen-sag .ft-firma, .stk-duzen-sag .ft-firma-ad { min-width: 0; max-width: 100%; }
.stk-duzen-sag .ft-firmalar { display: grid; grid-template-columns: minmax(0, 1fr); }
.stk-duzen-sag .ft-firma-tus { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.stk-duzen-sag .ft-firma-tus .bas-orta { min-width: 0; width: 100%; }
/* Yeni firma küçük paneli (2026.1465) */
.stk-yf-ac { width: 100%; }
.stk-yf { display: grid; gap: 8px; margin-top: 8px; padding: 12px; border: 1px solid var(--altin, #C2A268); border-radius: 12px;
  background: #fff; box-shadow: 0 8px 22px rgba(58, 42, 29, .16); }
.stk-yf[hidden] { display: none; }
.stk-yf-baslik { font: 600 14px/1.3 Georgia, serif; color: var(--vurgu, #8F2D22); }
.stk-yf-baslik small { font: 400 11.5px/1.3 system-ui, sans-serif; color: var(--ikinci-metin, #7A6A58); margin-left: 4px; }
.stk-yf input { width: 100%; height: 38px; border: 1.5px solid var(--altin, #C2A268); border-radius: 10px; padding: 0 10px; font: inherit; color: inherit; background: #fff; }
.stk-yf-tus { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.stk-yf-tus .bas-orta { min-height: 34px; height: 34px; }
.stk-yf .stk-tk-liste { max-height: 230px; }
.stk-yf-yeni { border: 0; background: none; padding: 4px 0 0; text-align: left; color: var(--ikinci-metin, #7A6A58); font: inherit; font-size: 13px; cursor: pointer; }
.stk-yf-yeni b { color: var(--vurgu, #8F2D22); }

/* ---- SİPARİŞLER · sabit ölçü (2026.1465 · kullanıcı: "her harf yazdığımda
   form genişliyor/daralıyor · sipariş talebi formu da sanki 5 firma
   eklemişiz gibi uzun başlasın"). Firma araması ortak açılır listeyle
   (liste sayfanın üstünde süzülür); seçilen firmalar 5 firmalık SABİT
   yükseklikte bir alanda kayar; sol form sağ sütunla aynı boyda başlar. */
.stk-duzen { align-items: stretch; }
.stk-duzen-sag { max-height: none; overflow: visible; position: static; }
.stk-duzen > .stk-kagit-mob { display: flex; flex-direction: column; }
.stk-duzen > .stk-kagit-mob .stk-f-not { flex: 1; display: flex; flex-direction: column; }
.stk-duzen > .stk-kagit-mob .stk-f-not textarea { flex: 1; }
.stk-f-firma { position: relative; }
.stk-f-firma > div { display: flex; flex-direction: column; gap: 8px; }
.stk-f-firma .stk-f-secici { order: -1; display: block; position: relative; }
.stk-f-firma .stk-f-secici .sec-kutu { width: 100%; }
.stk-duzen-sag .stk-tk-secili { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 6px;
  height: 206px; min-height: 206px; overflow-y: auto; align-content: start; }
.stk-duzen-sag .stk-tk-secili > * { flex: none; }
.stk-duzen-sag .stk-tk-firma { height: 34px; align-items: center; }
.stk-yf-suzen { position: absolute; left: 10px; right: 10px; top: 72px; z-index: 40; margin: 0; }

/* ---- SİPARİŞLER · teklif fiyatları (2. adım · 2026.1465 · göç 353) ---- */
.stk-tutarlar { display: grid; gap: 4px; margin-top: 2px; }
.stk-tutar { display: flex; justify-content: space-between; gap: 8px; font-size: 13.5px; padding: 5px 8px; border-radius: 8px; background: #fff; border: 1px solid #e6d8bc; }
.stk-tutar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stk-tutar b { flex: none; white-space: nowrap; }
.stk-tutar b i { font-weight: 400; color: var(--ikinci-metin, #7A6A58); }
.stk-tutar b small { font-weight: 400; color: var(--uyari-cizgi, #D98A2B); }
.stk-tutar-ucuz { background: #e7f2ea; border-color: #8fbf9c; color: #1f5b33; }
.stk-f-fiyatli th.fy { width: 12%; font-size: 11px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.stk-f-fiyatli th.fy small { display: block; font-size: 9.5px; font-weight: 500; text-transform: none; color: #7A6A58; }
.stk-f-fiyatli th.amb { width: 16%; }
.stk-f-fiyatli th.mik { width: 9%; }
.stk-f-tablo td.fy { background: #fffdf8; }
.stk-f-tablo td.fy input { text-align: right; font-weight: 600; }
.stk-f-tablo td.fy input:focus { background: #fff6dc; box-shadow: inset 0 0 0 1.5px var(--altin, #C2A268); }
.stk-f-tablo td.fy input.stk-f-hatali { color: var(--hata, #B3261E); box-shadow: inset 0 0 0 1.5px var(--hata, #B3261E); }
.stk-f-tablo tfoot td { border-top: 1.5px solid #2C2620; height: 46px; font-weight: 700; }
.stk-f-top-ad { text-align: right; padding: 0 10px; font-size: 12px; letter-spacing: .03em; background: #faf6ee; }
.stk-f-top { text-align: right; padding: 0 8px; font-size: 13.5px; }
.stk-f-top small { display: block; font-size: 10.5px; font-weight: 500; color: var(--uyari-cizgi, #D98A2B); }
.stk-f-top.stk-f-ucuz { background: #e7f2ea; color: #1f5b33; }
.stk-uyar-tus { border-color: var(--hata, #B3261E) !important; color: var(--hata, #B3261E) !important; }
/* Teklifte kartı taşmasın (2026.1465): satırlar kart enine sığar, firma adı kısalır. */
.stk-kart { min-width: 0; overflow: hidden; }
.stk-kart > * { min-width: 0; max-width: 100%; box-sizing: border-box; }
.stk-tutarlar { grid-template-columns: minmax(0, 1fr); }
.stk-tutar { min-width: 0; box-sizing: border-box; }
.stk-tutar > span { flex: 1 1 auto; min-width: 0; }

/* ---- SİPARİŞLER · 3. adım: sipariş ver, onay (2026.1465 · göç 354) ---- */
.stk-duzen > .stk-kagit { grid-column: 1; grid-row: 1; margin: 0; max-width: none; align-self: start; }
.stk-sp-kagit .stk-k-tarih small { color: var(--uyari-cizgi, #D98A2B); font-weight: 700; }
.stk-sp-kagit .stk-k-tablo th small { font-weight: 500; text-transform: none; }
.stk-f-sv td { border-top: 0 !important; height: 44px; }
.stk-sv-tus { width: calc(100% - 8px); margin: 4px; height: 34px; border-radius: 8px; border: 1px solid var(--vurgu, #8F2D22);
  background: var(--vurgu, #8F2D22); color: #fff; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.stk-sv-tus:hover { filter: brightness(1.08); }
.stk-sv-odeme { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.stk-sv-ozet b { font-size: 20px; color: var(--vurgu, #8F2D22); }
.stk-sv-ozet small { font-size: 12px; color: var(--ikinci-metin, #7A6A58); }
.stk-sv-onayli { border-color: var(--uyari-cizgi, #D98A2B); background: #fff6e6; }
.stk-sp-tuslar { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.stk-sp-sebep { min-height: 70px; resize: vertical; }
.stk-red { color: var(--hata, #B3261E); font-size: 12.5px; }
.stk-kart-onay { border-color: var(--uyari-cizgi, #D98A2B); }
.stk-kart-onay .stk-tarih { color: #9a5b00; font-weight: 600; }
.stk-ay-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; max-height: 260px; overflow: auto; }
.stk-ay-liste small { color: var(--ikinci-metin, #7A6A58); }
/* Satır tutarı fiyatın altında (2026.1455) */
.stk-f-tablo td.fy { vertical-align: top; }
.stk-f-tablo td.fy input { height: 30px; }
.stk-fy-satir { display: block; padding: 0 6px 4px; font-size: 10px; line-height: 1.2; color: var(--ikinci-metin, #7A6A58); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Teklif onayı (2026.1455 · göç 355) */
.stk-onay-tus { background: #2f6b45; border-color: #2f6b45; }
.stk-onayli { color: #1f5b33; font-size: 12.5px; font-weight: 600; }
.stk-f-fiyatli th.stk-fy-onayli { background: #e7f2ea; color: #1f5b33; }
.stk-f-top { white-space: nowrap; font-size: 12.5px; padding: 0 6px; }
/* Ekrandaki sipariş formu (2026.1465) · telefon formu düzeninde, yazı hücreleri */
.stk-f-yazi { display: flex; align-items: center; height: 42px; padding: 0 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.stk-f-yazi.sag { justify-content: flex-end; font-weight: 600; }
.stk-f-tablo .mik .stk-f-yazi { justify-content: center; }
.stk-f-not-yazi { padding: 6px 10px 10px; min-height: 60px; white-space: pre-wrap; flex: 1; }

/* ---- Sipariş verilen · liste (2026.1455 · göç 356) ---- */
.stk-liste-kap { overflow-x: auto; background: var(--yuzey, #FFFDF8); border: 1px solid var(--altin, #C2A268); border-radius: 14px; }
.stk-liste { width: 100%; border-collapse: collapse; font-size: 14px; }
.stk-liste th { text-align: left; font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci-metin, #7A6A58); padding: 10px 12px; border-bottom: 1.5px solid var(--altin, #C2A268); white-space: nowrap; }
.stk-liste td { padding: 10px 12px; border-bottom: 1px solid #ecdfc6; white-space: nowrap; }
.stk-liste td small { color: var(--ikinci-metin, #7A6A58); margin-left: 4px; }
.stk-liste .sag { text-align: right; }
.stk-liste-satir { cursor: pointer; }
.stk-liste-satir:hover, .stk-liste-satir:focus { background: #fff6e2; outline: none; }
.stk-liste tfoot td { font-weight: 600; border-bottom: 0; border-top: 1.5px solid var(--altin, #C2A268); }
.stk-dr { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; border: 1px solid; }
.stk-dr-bekliyor { color: #9a5b00; background: #fff3dc; border-color: #e7c27a; }
.stk-dr-geldi { color: #1f5b33; background: #e7f2ea; border-color: #8fbf9c; }
.stk-dr-iptal { color: #8F2D22; background: #f8e1e3; border-color: #e3a8ae; }
.stk-dr-onay { color: #9a5b00; background: #fff3dc; border-color: #e7c27a; }
.stk-sv-ozet .stk-dr { align-self: flex-start; margin-top: 4px; }
/* Fatura Aktarımı · sipariş no seçimi (2026.1455) */
.fa-siparis-sec { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; padding: 8px 12px; border: 1px dashed var(--altin, #C2A268); border-radius: 12px; background: var(--yuzey, #FFFDF8); }
.fa-siparis-etiket { font-weight: 600; font-size: 13.5px; }
.fa-siparis-etiket small { font-weight: 400; color: var(--ikinci-metin, #7A6A58); }
.fa-siparis-sec .sec { flex: 1; min-width: 260px; }

/* Sipariş ↔ fatura kalem eşleştirmesi (2026.1455 · göç 357) */
.fa-sp-eslesme { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--altin, #C2A268); border-radius: 12px; background: var(--yuzey, #FFFDF8); }
.fa-sp-baslik { font-weight: 600; margin-bottom: 8px; }
.fa-sp-baslik small { font-weight: 400; opacity: .7; margin-left: 6px; }
.fa-sp-tablo { width: 100%; border-collapse: collapse; font-size: 13px; }
.fa-sp-tablo th { text-align: left; font-weight: 600; font-size: 12px; opacity: .75; padding: 4px 6px; border-bottom: 1px solid rgba(0,0,0,.12); }
.fa-sp-tablo td { padding: 5px 6px; border-bottom: 1px solid rgba(0,0,0,.06); vertical-align: middle; }
.fa-sp-tablo .sag { text-align: right; white-space: nowrap; }
.fa-sp-tablo td:nth-child(4) { min-width: 220px; }
.fa-sp-eksik td { background: rgba(214, 160, 40, .10); }
.fa-sp-fark { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.fa-sp-iyi { background: rgba(46, 125, 50, .12); color: #2E7D32; }
.fa-sp-kotu { background: rgba(198, 40, 40, .12); color: #C62828; }
.fa-sp-bekle { background: rgba(214, 160, 40, .16); color: #8A6100; }
.fa-sp-not { display: block; margin-top: 6px; opacity: .6; }
/* Eşleştirme özeti · fatura detayında tek satır (2026.1465) */
.fa-sp-ozet { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 10px; padding: 8px 12px; border-radius: 12px; background: rgba(46, 125, 50, .08); color: #2E7D32; }
.fa-sp-ozet-eksik { background: rgba(214, 160, 40, .14); color: #8A6100; }
.fa-sp-ozet span { font-weight: 600; }
.pencere .fa-sp-eslesme { border: 0; padding: 0; background: none; }

/* Platform kontrolü · herkesin anlayacağı döküm (2026.1455) */
.tyd-ozet { margin: 0 0 12px; padding: 12px 14px; border: 1px solid var(--altin-soluk); border-radius: 14px; background: var(--yuzey, #FFFDF8); }
.tyd-ozet p { margin: 2px 0; font-size: 15px; line-height: 1.5; }
.tyd-ozet small { color: var(--ikinci); font-size: 12px; }
.tyd-ozet .tyd-kotu { color: var(--vurgu); }
.tyd-ozet .tyd-iyi { color: var(--basari, #4B8A6D); }
.tyd-ozet .tyd-sayac { margin-top: 6px; font-size: 13px; color: var(--ikinci); }
.tyd-suzgec { display: flex; gap: 8px; margin: 6px 0 8px; }
.tyd-suzgec .tyd-secili { background: var(--altin-soluk); font-weight: 600; }
.tyd-tablo td { vertical-align: top; }
.tyd-tablo .tyd-saat { white-space: nowrap; font-weight: 600; }
.tyd-tablo .tyd-ne { font-size: 13px; line-height: 1.4; min-width: 220px; }
.tyd-tablo .tyd-ikon { display: inline-block; width: 18px; }
.tyd-tablo tr.tyd-tamam td { color: var(--ikinci); }
.tyd-tablo tr.tyd-sorun td { background: color-mix(in srgb, var(--vurgu) 7%, transparent); }
.tyd-tablo tr.tyd-sorun .tyd-ne { color: var(--metin); font-weight: 500; }
.tyd-tablo .tyd-yok { color: var(--vurgu); font-style: italic; }
.tyd-tablo .tyd-soluk { color: var(--ikinci); font-size: 11px; }
.tyd-tablo tfoot .tyd-kotu { color: var(--vurgu); }
.tyd-ayar { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 12.5px; cursor: pointer; }
.tyd-ayar small { color: var(--ikinci); }

/* Yönetim Raporu · ikram kişiye göre (2026.1465) */
.yr2-ikram-kisi { margin-top: 8px; border: 1px solid var(--ayirici); border-radius: 12px; background: var(--yuzey); }
.yr2-ikram-kisi > summary { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 14px; color: inherit; font-size: 15px; font-weight: 800; list-style: none; }
.yr2-ikram-kisi > summary::-webkit-details-marker { display: none; }
.yr2-ikram-kisi > summary small { font-weight: 500; color: var(--ikinci); }
.yr2-ikram-kisi > summary b { font-variant-numeric: tabular-nums; }
.yr2-ikram-kisi[open] > summary { border-bottom: 1px dashed var(--ayirici); }
.yr2-ikram-kisi > .yr2-pk-liste { padding: 10px; }
/* İadeye çıkan ürünler · kırmızı (2026.1465) */
.yr2-ikram-iade { border-color: #E9B4B7; border-left: 4px solid var(--hata); background: #FBE6E6; }
.yr2-ikram-iade > summary { color: var(--hata); }

/* Yönetim Raporu · üst sekmeler ve teklif tablosu (2026.1465) */
.yr2-sekmeler { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.yr2-sekme { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--ayirici); border-radius: 14px;
  background: var(--yuzey); font: inherit; font-weight: 700; font-size: 14px; color: var(--metin); cursor: pointer; text-align: left; }
.yr2-sekme .yr2-ikon { width: 34px; height: 34px; flex: none; }
.yr2-sekme span:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yr2-sekme-secili { border-color: var(--vurgu); box-shadow: 0 2px 0 var(--vurgu); }
@media (max-width: 560px) { .yr2-sekme { flex-direction: column; text-align: center; font-size: 12.5px; gap: 6px; } }
.yr2-tk-kap { overflow-x: auto; margin-top: 12px; }
.yr2-tk { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.yr2-tk th, .yr2-tk td { padding: 8px 10px; border-bottom: 1px solid var(--ayirici); text-align: right; vertical-align: top; white-space: nowrap; }
.yr2-tk th:first-child, .yr2-tk td:first-child { text-align: left; white-space: normal; min-width: 140px; }
.yr2-tk td small, .yr2-tk th small { display: block; font-size: 11px; font-weight: 500; color: var(--ikinci); }
.yr2-tk thead th { font-size: 12px; text-transform: none; color: var(--ikinci); }
.yr2-tk tfoot th { font-size: 14px; border-bottom: 0; }
.yr2-tk .yr2-tk-iyi { background: color-mix(in srgb, var(--basari) 10%, transparent); color: var(--basari); }
.yr2-tk .yr2-tk-secilen { background: color-mix(in srgb, var(--bordo, #7a1f2b) 9%, transparent); font-weight: 600; }
/* Ürün sütunu yatay kaydırmada yerinde kalır (2026.1465). */
.yr2-tk th:first-child, .yr2-tk td:first-child { position: sticky; left: 0; z-index: 1; background: var(--yuzey); }
@media (max-width: 400px) { .yr2-sekmeler { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Zam tablosu (2026.1465) */
.yr2-zam-firma > summary { align-items: center; }
.yr2-zam-firma > summary small { display: block; margin-top: 2px; font-size: 12.5px; }
.yr2-zt { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; table-layout: auto; }
.yr2-zt th { padding: 8px 10px; font-size: 11.5px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--ikinci);
  text-align: right; background: color-mix(in srgb, var(--vurgu) 12%, transparent); }
.yr2-zt td { padding: 10px; text-align: right; vertical-align: top; white-space: nowrap; color: var(--ikinci); border-top: 1px solid var(--ayirici); }
.yr2-zt th:first-child, .yr2-zt td:first-child { text-align: left; white-space: normal; padding-left: 14px; }
.yr2-zt td:first-child { color: inherit; }
.yr2-zt td:last-child, .yr2-zt th:last-child { padding-right: 14px; }
.yr2-zt tbody tr:nth-child(even) td { background: color-mix(in srgb, var(--vurgu) 5%, transparent); }
.yr2-zt td b { color: var(--metin, inherit); }
.yr2-zt td small { display: block; margin-top: 2px; font-size: 11.5px; color: var(--ikinci); }
.yr2-zt td .yr2-zt-not { color: var(--metin, inherit); }
.yr2-zt .yr2-zt-artti { color: var(--hata); font-weight: 800; }
.yr2-zt .yr2-zt-dustu { color: var(--basari); font-weight: 800; }
.yr2-zam-alt { margin: 0; padding: 10px 14px 12px; border-top: 1px solid var(--ayirici); }
.yr2-zam-alt p { margin: 0 0 6px; display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: baseline; }
.yr2-zam-fno { font-size: 12px; font-weight: 700; color: var(--ikinci); }
.yr2-zam-onay { font-size: 12px; color: var(--basari); font-weight: 600; } /* onaylayanın adı (2026.1465) */
.yr2-zam-onay b { color: inherit; }
.yr2-zam-acik { flex: 1 1 100%; padding: 8px 10px; border-left: 3px solid var(--vurgu); border-radius: 8px; font-size: 13.5px;
  background: color-mix(in srgb, var(--vurgu) 14%, transparent); color: var(--metin, inherit); }
.yr2-zam-alt > small { font-size: 11px; color: var(--ikinci); }
/* AÇILIR ÖBEKLER BİZİM RENKLERDE (2026.1465 · kullanıcı: "genişleyip
   daralan düğme listeler beyaz olmasın, anlaşılmıyor"). Kapalıyken krem
   oyuk zemin, altın çerçeve + alt gölge, bordo sol şerit ve ok; açılınca
   başlık bordo, yazı krem. İade öbeği kendi kırmızısında kalır. */
.yr2-ikram-kisi { background: var(--oyuk); border: 1px solid var(--altin); border-left: 4px solid var(--vurgu);
  box-shadow: 0 3px 0 var(--altin-koyu); overflow: hidden; margin-top: 10px; }
.yr2-ikram-kisi > summary { position: relative; padding-right: 34px; color: var(--metin); }
.yr2-ikram-kisi > summary::after { content: "›"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-size: 22px; font-weight: 700; color: var(--vurgu); transition: transform .15s; }
.yr2-ikram-kisi[open] > summary::after { transform: translateY(-50%) rotate(90deg); color: var(--ikinci); }
.yr2-ikram-kisi[open] > summary { background: var(--vurgu); color: var(--yuzey); border-bottom: 2px solid var(--altin); }
.yr2-ikram-kisi[open] > summary small { color: var(--ikinci); }
.yr2-ikram-kisi[open] > summary b, .yr2-ikram-kisi[open] > summary .yr2-kotu { color: var(--yuzey) !important; }
.yr2-ikram-kisi[open] { background: var(--yuzey); }
.yr2-ikram-iade { border-color: #E9B4B7; border-left-color: var(--hata); background: #FBE6E6; box-shadow: 0 3px 0 #E9B4B7; }
.yr2-ikram-iade[open] > summary { background: var(--hata); }
/* Zam tablosu da krem-altın */
.yr2-zt th { background: var(--oyuk); color: var(--defter-koyu, var(--metin)); border-bottom: 1px solid var(--altin); }
.yr2-zt tbody tr:nth-child(even) td { background: var(--zemin); }
.yr2-zam-acik { background: var(--oyuk); border-left-color: var(--altin-koyu); }
/* Öbek başlığı hep bordo (2026.1465 · kullanıcı: "basınca rengi değişmesin, direkt kırmızı olsun"). */
.yr2-ikram-kisi > summary { background: var(--vurgu); color: var(--yuzey); }
.yr2-ikram-kisi > summary small { color: var(--ikinci); }
.yr2-ikram-kisi > summary b, .yr2-ikram-kisi > summary .yr2-kotu { color: var(--yuzey) !important; }
.yr2-ikram-kisi > summary::after { color: var(--ikinci); }
.yr2-ikram-iade > summary { background: var(--hata); color: var(--yuzey); }
/* Öbek başlığı tablo başlığının bir tık koyusu (2026.1465 · kullanıcı: "kırmızı değil, alttaki rengin bir tık koyusu"). */
.yr2-ikram-kisi > summary, .yr2-ikram-kisi[open] > summary { background: #E3D3B3; color: var(--metin); border-bottom: 1px solid var(--altin); }
.yr2-ikram-kisi > summary small, .yr2-ikram-kisi[open] > summary small { color: var(--ikinci); }
.yr2-ikram-kisi > summary b, .yr2-ikram-kisi[open] > summary b { color: var(--metin) !important; }
.yr2-ikram-kisi > summary .yr2-kotu, .yr2-ikram-kisi[open] > summary .yr2-kotu { color: var(--hata) !important; }
.yr2-ikram-kisi > summary::after, .yr2-ikram-kisi[open] > summary::after { color: var(--vurgu); }
.yr2-ikram-kisi:not([open]) > summary { border-bottom: 0; }
.yr2-ikram-iade > summary, .yr2-ikram-iade[open] > summary { background: #F3CFD1; color: var(--hata); }
/* Yönetim linki şifre girişi (2026.1465 · göç 367) */
.yl-giris { max-width: 360px; margin: 12vh auto 0; padding: 24px 20px; background: var(--yuzey); border: 1px solid var(--altin);
  border-radius: 16px; box-shadow: 0 4px 0 var(--altin-koyu); text-align: center; }
.yl-giris h1 { margin: 0 0 6px; font-family: "Playfair Display", serif; font-size: 22px; color: var(--vurgu); }
.yl-giris p { margin: 0 0 14px; font-size: 14px; color: var(--ikinci); }
.yl-giris input { width: 100%; height: 48px; text-align: center; font-size: 18px; letter-spacing: .1em; }
.yl-giris button { width: 100%; height: 48px; margin-top: 12px; }
.yl-giris .yl-giris-hata { min-height: 1.2em; margin: 10px 0 0; color: var(--hata); font-weight: 600; }
.yr2-sifre-tus { min-width: 40px; }
/* Vagon görseli kartta tam görünür (2026.1465 · kullanıcı: "mobilde tam sığmamış"). Görselin kenarları zaten koyu; boşluk kart zeminine karışır. */
.yr2-kart-vagon img { object-fit: contain; object-position: 50% 50%; }
/* BÖLÜM KARTI (2026.1465 · kullanıcı: "bu kısım komple arkası dolu bir
   çerçevede olacaktı"). Her bölüm (Bugün ne oldu, Ay, Elde…) başlığı ve
   içiyle tek, zemini dolu, altın çerçeveli kartta; bölümler arası boşluk. */
.yr2-bolum { margin: 0 0 28px; padding: 16px 16px 20px; background: var(--oyuk); border: 1px solid var(--altin);
  border-radius: 20px; box-shadow: 0 4px 0 var(--altin-koyu), 0 10px 22px rgba(74, 52, 32, .10); }
.yr2-bolum > :last-child { margin-bottom: 0; }
@media (max-width: 560px) { .yr2-bolum { padding: 12px 10px 16px; border-radius: 16px; margin-bottom: 22px; } }
/* Bölüm kartı hafif desenli (2026.1455 · kullanıcı: "hafif desenli olsun"): depo grupları zeminindeki çapraz kafesin daha açığı. */
.yr2-bolum { background-color: #F4ECDC;
  background-image:
    repeating-linear-gradient(45deg, rgba(184, 146, 74, .11) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(184, 146, 74, .11) 0 1px, transparent 1px 22px); }
/* Yönetim notları (2026.1455 · göç 370) */
.yr2-not { grid-column: 1 / -1; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--altin-soluk); display: flex; flex-direction: column; gap: 8px; }
.yr2-not-satir { padding: 8px 10px; border-left: 3px solid var(--vurgu); border-radius: 8px; background: var(--oyuk); }
.yr2-not-ust { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 13px; }
.yr2-not-ust small { color: var(--ikinci); font-size: 11.5px; }
.yr2-not-tus { margin-left: auto; display: inline-flex; gap: 6px; }
.yr2-not-tus button { border: 0; background: none; padding: 2px 4px; font: inherit; font-size: 12px; font-weight: 600; color: var(--vurgu); cursor: pointer; }
.yr2-not-tus .yr2-not-sil-onay { color: var(--yuzey); background: var(--hata); border-radius: 6px; }
.yr2-not-satir p { margin: 4px 0 0; font-size: 14px; line-height: 1.4; white-space: pre-wrap; color: var(--metin); }
.yr2-not-kasiyer { border-left-color: #D9A400; background: #FFF6D9; }
.yr2-not-kasiyer.yr2-not-onayli { border-left-color: var(--basari, #2E7D32); background: var(--oyuk); }
.yr2-not-onay { margin-left: auto; min-width: 34px; height: 30px; border: 1px solid #D9A400; border-radius: 8px; background: #fff; color: #8A6A00; font-size: 16px; font-weight: 800; cursor: pointer; }
.yr2-not-onay:disabled { opacity: .6; }
.yr2-not-onay-yazi { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--basari, #2E7D32); }
.yr2-not-bekliyor { display: block; margin-top: 4px; font-size: 12px; font-weight: 700; color: #8A6A00; }
.yr2-not-yaz { align-self: flex-start; border: 1px solid var(--altin); border-radius: 999px; background: var(--yuzey); padding: 5px 12px;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--vurgu); cursor: pointer; box-shadow: 0 2px 0 var(--altin-soluk); }
.yr2-not-form { display: flex; flex-direction: column; gap: 8px; }
.yr2-not-form textarea { min-height: 72px; resize: vertical; font: inherit; }
.yr2-not-form-tus { display: flex; justify-content: flex-end; gap: 8px; }
.yr2-not-say { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; background: var(--vurgu); color: var(--yuzey);
  font-size: 11.5px; font-weight: 700; }
.yr2-not-say[hidden] { display: none; }
.yr2-kf .yr2-not { margin-top: 12px; }
/* Link tepesi (2026.1465): kaydırınca peşinden gelmez; sekmeler tepede, dördü tek satırda, küçük yazı. */
.yl-tepe { position: static; }
.yl-sekmeler { flex: 1 1 100%; min-width: 0; }
.yl-sekmeler:empty { display: none; }
.yl-sekmeler .yr2-sekmeler { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 2px 0 0; }
.yl-sekmeler .yr2-sekme { flex-direction: column; gap: 4px; padding: 7px 4px; border-radius: 12px; font-size: 11.5px; line-height: 1.2;
  text-align: center; background: rgba(252, 248, 239, .96); color: var(--metin); border-color: rgba(255, 255, 255, .35); }
.yl-sekmeler .yr2-sekme .yr2-ikon { width: 26px; height: 26px; }
.yl-sekmeler .yr2-sekme span:last-child { white-space: normal; overflow: visible; }
.yl-sekmeler .yr2-sekme-secili { border-color: #E8C77A; box-shadow: 0 0 0 2px rgba(232, 199, 122, .55); }
.yl-sekmeler .yr2-sekme .yr2-ikon svg { width: 16px; height: 16px; }
/* Linkte yazı kutusuna dokununca iPhone yakınlaşmasın: 16px altı yazı yakınlaştırır (2026.1465). */
.yl-sayfa input, .yl-sayfa textarea, .yl-sayfa select { font-size: 16px; }
.yl-sayfa { touch-action: pan-x pan-y; }
/* Link tepesi yeni görünüm (2026.1465): ortalı marka, altın çizgi, bordo zeminde çapraz kafes. */
.yl-tepe { justify-content: center; padding-top: calc(16px + env(safe-area-inset-top)); padding-bottom: 14px;
  background-color: #8F2D22;
  background-image:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-45deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 22px),
    radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, .10), transparent 60%); }
.yl-marka { flex: 1 1 100%; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; }
.yl-marka b { font-family: "Playfair Display", serif; font-size: 26px; font-weight: 700; letter-spacing: .01em; line-height: 1.1; color: #FFFDF8; }
.yl-marka .yl-marka-ust { font-family: Inter, system-ui, sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: #E8C77A; opacity: 1; }
.yl-marka-cizgi { display: block; width: 120px; height: 2px; margin-top: 6px; border-radius: 1px;
  background: linear-gradient(90deg, transparent, #E8C77A, transparent); }
.yl-serit { flex: 1 1 100%; }
.yr2-sekme { position: relative; }
.yr2-sekme-uyari { position: absolute; top: 4px; right: 4px; min-width: 22px; padding: 1px 6px; border-radius: 999px; background: var(--hata);
  color: #fff; font-size: 11px; font-weight: 800; line-height: 1.5; box-shadow: 0 0 0 2px var(--yuzey); }
.yl-bekle > * { visibility: hidden; }
/* Kart köşesinde "! N" (2026.1465) · sekmedeki rozetle aynı. */
.yr2-kutucuk, .yr2-satir { position: relative; }
.yr2-uyari-rozet { position: absolute; top: -8px; right: 10px; z-index: 2; min-width: 24px; padding: 1px 7px; border-radius: 999px;
  background: var(--hata); color: #fff; font-size: 11.5px; font-weight: 800; line-height: 1.5; text-align: center;
  box-shadow: 0 0 0 2px var(--yuzey), 0 2px 4px rgba(74, 52, 32, .25); }
/* Zam tablosu: ürün adı tam genişlik satırda (2026.1455). */
.yr2-zt .yr2-zt-kalem td { border-top: 0; }
.yr2-zt .yr2-zt-kalem { border-top: 1px solid var(--ayirici); }
.yr2-zt .yr2-zt-ad td { padding-bottom: 2px; font-size: 14px; line-height: 1.35; }
.yr2-zt .yr2-zt-ad + tr td { padding-top: 2px; }
.yr2-zt .yr2-zt-ad + tr td:first-child small { margin: 0; }
.yr2-zt tbody tr:nth-child(even) td { background: none; }
.yr2-zt tbody.yr2-zt-kalem:nth-of-type(even) td { background: var(--zemin); }
.yr2-ikram-kisi > summary .yr2-iyi, .yr2-ikram-kisi[open] > summary .yr2-iyi { color: var(--basari) !important; }
/* Zam tablosunda bütün satırlar beyaz, çizgili zemin yok (2026.1465 · kullanıcı). */
.yr2-zt tbody td, .yr2-zt tbody.yr2-zt-kalem:nth-of-type(even) td { background: #fff; }
/* Departmanlar · görev listesi (2026.1465) */
.yr2-satir-soluk { opacity: .7; }
.yr2-satir-soluk .yr2-tutar { font-size: 18px; color: var(--ikinci); }
.yr2-gorevler { display: flex; flex-direction: column; gap: 8px; }
.yr2-gorev { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--ayirici); border-left: 4px solid var(--uyari-cizgi);
  border-radius: 12px; background: var(--yuzey); }
.yr2-gorev .yr2-ikon { width: 36px; height: 36px; border-radius: 10px; }
.yr2-gorev-tamam { border-left-color: var(--basari); }
.yr2-gorev-yazi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.yr2-gorev-yazi b { font-size: 14px; }
.yr2-gorev-yazi small { font-size: 12.5px; color: var(--ikinci); }
.yr2-gorev-durum { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #F8E7D0; color: var(--uyari); white-space: nowrap; }
.yr2-gorev-tamam .yr2-gorev-durum { background: #E1EEE5; color: var(--basari); }
/* Siparişi böl penceresi (2026.1465 · göç 373) */
.stk-bol-liste { display: flex; flex-direction: column; gap: 6px; max-height: 50vh; overflow-y: auto; margin: 10px 0; }
.stk-bol-kalem { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--ayirici); border-radius: 10px;
  background: var(--yuzey); cursor: pointer; }
.stk-bol-kalem:has(input:checked) { border-color: var(--vurgu); background: color-mix(in srgb, var(--vurgu) 7%, var(--yuzey)); }
.stk-bol-kalem input { width: 18px; height: 18px; accent-color: var(--vurgu); flex: none; }
.stk-bol-kalem span { display: flex; flex-direction: column; min-width: 0; }
.stk-bol-kalem small { color: var(--ikinci); font-size: 12px; }
.stk-bol-say { margin: 0 0 8px; font-size: 13px; color: var(--ikinci); }
/* Bölme seçimi tablonun içinde (2026.1465) */
.stk-bol-kutu { width: 18px; height: 18px; accent-color: var(--vurgu); cursor: pointer; vertical-align: middle; }
.stk-f-tablo tr.stk-bol-secili td { background: color-mix(in srgb, var(--vurgu) 8%, transparent); }
.stk-bol-ipucu { margin: 12px 0 0; padding: 9px 12px; border-left: 3px solid var(--vurgu); border-radius: 8px; background: var(--oyuk); font-size: 13.5px; }
/* Fiyat Listeleri (2026.1465 · göç 374) */
.fl-bos { margin: 24px 0; padding: 18px; border: 1px dashed var(--altin); border-radius: 14px; background: var(--yuzey); color: var(--ikinci); text-align: center; }
.fl-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 14px; }
.fl-kart { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; border: 1px solid var(--altin); border-radius: 14px; background: var(--yuzey);
  box-shadow: 0 3px 0 var(--altin-koyu); font: inherit; color: inherit; text-align: left; cursor: pointer; }
.fl-kart-eski { opacity: .6; }
.fl-kart-ust { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 15px; }
.fl-kart-alt { font-size: 12.5px; color: var(--ikinci); }
.fl-rozet { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--oyuk); color: var(--ikinci); white-space: nowrap; }
.fl-rozet-iyi { background: #E1EEE5; color: var(--basari); }
.fl-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.fl-form .fl-alan:first-child { grid-column: 1 / -1; }
.fl-alan { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--ikinci); }
.fl-onizleme { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 10px; background: var(--oyuk); font-size: 13px; }
.fl-bolum { margin-top: 12px; border: 1px solid var(--altin); border-radius: 12px; background: var(--yuzey); overflow: hidden; }
.fl-bolum > summary { padding: 11px 14px; font-weight: 700; cursor: pointer; background: #E3D3B3; display: flex; justify-content: space-between; gap: 8px; }
.fl-bolum > summary small { font-weight: 600; color: var(--ikinci); }
.fl-ipucu { margin: 10px 14px; font-size: 12.5px; color: var(--ikinci); }
.fl-eslesme { display: flex; flex-direction: column; gap: 8px; padding: 0 14px 14px; }
.fl-es-satir { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; align-items: center; }
.fl-es-ad { display: flex; flex-direction: column; min-width: 0; }
.fl-es-ad small { font-size: 11.5px; color: var(--ikinci); }
.fl-tablo { width: 100%; border-collapse: collapse; font-size: 13px; }
.fl-tablo th, .fl-tablo td { padding: 6px 12px; border-top: 1px solid var(--ayirici); text-align: left; }
.fl-tablo td:last-child, .fl-tablo th:last-child { text-align: right; white-space: nowrap; }
.fl-tablo .fl-grup td { background: var(--oyuk); font-weight: 700; font-size: 12px; letter-spacing: .05em; color: var(--vurgu); }
.fl-soluk { color: var(--ikinci); }
@media (max-width: 560px) { .fl-es-satir, .fl-form { grid-template-columns: 1fr; } }
/* Yönetim Kontrolü (2026.1465 · göç 375) */
.yr2-kontrol { margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--altin); border-left: 4px solid var(--uyari-cizgi); border-radius: 16px;
  background: var(--yuzey); box-shadow: 0 3px 0 var(--altin-koyu); }
.yr2-kontrol-tamam { border-left-color: var(--basari); }
.yr2-kontrol-bas { display: flex; align-items: center; gap: 12px; }
.yr2-kontrol-bas .yr2-ikon { width: 40px; height: 40px; border-radius: 12px; }
.yr2-kontrol-bas span { display: flex; flex-direction: column; }
.yr2-kontrol-bas b { font-size: 15px; }
.yr2-kontrol-bas small { font-size: 12.5px; color: var(--ikinci); }
.yr2-kontrol .yr2-not { margin-top: 10px; }
.yr2-kontrol .yr2-not-satir { border-left-color: var(--basari); }
.yr2-sekme-tik { position: absolute; top: 4px; left: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--basari); color: #fff;
  font-style: normal; font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px var(--yuzey); }
/* Departman kontrolü kartın hemen altında, içeri girik (2026.1465). */
.yr2-kontrol-dep { position: relative; margin: -2px 0 14px 18px; border-radius: 0 0 14px 14px; }
/* Departman kartı + içinde küçük yönetim kontrolü notu (2026.1465) */
.yr2-dep-kart { position: relative; margin-bottom: 12px; border: 1px solid var(--altin); border-radius: 14px; background: var(--yuzey);
  box-shadow: 0 4px 0 var(--altin-koyu), 0 6px 10px rgba(74, 52, 32, .12); }
.yr2-dep-kart > .yr2-satir { margin: 0; border: 0; box-shadow: none; background: transparent; }
.yr2-dep-kart > .yr2-satir:active { transform: none; }
.yr2-kontrol-mini { margin: 0 14px 12px; padding: 8px 0 0; border: 0; border-top: 1px dashed var(--altin-soluk); border-radius: 0; background: none; box-shadow: none; }
.yr2-kontrol-etiket { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--uyari); }
.yr2-kontrol-mini.yr2-kontrol-tamam .yr2-kontrol-etiket { color: var(--basari); }
.yr2-kontrol-mini .yr2-not { margin-top: 6px; padding-top: 0; border-top: 0; gap: 6px; }
.yr2-kontrol-mini .yr2-not-satir { padding: 5px 9px; background: var(--oyuk); border-left-width: 2px; }
.yr2-kontrol-mini .yr2-not-satir p { margin-top: 2px; font-size: 13px; }
.yr2-kontrol-mini .yr2-not-yaz { padding: 3px 10px; font-size: 12px; box-shadow: none; }
.yr2-dep-kart .yr2-satir { border: 0 !important; box-shadow: none !important; background: transparent !important; margin: 0 !important; }
.yr2-kontrol-mini .yr2-not { border: 0 !important; padding: 0 !important; margin-top: 6px !important; background: none !important; border-radius: 0 !important; }
/* Stok parametreleri · Aylık Tüketim, Termin, Kritik Stok (2026.1465 · göç 377) */
.dpg-c-par, .dpg-tek .dpg-c-par, .dpg-tek:not(.dpl) .dpg-c-par { width: 96px; }
.dp-tablo th.dp-par { font-size: 10.5px; line-height: 1.2; text-align: center; white-space: normal; }
.dp-tablo th.dp-par small { display: block; font-weight: 500; text-transform: none; letter-spacing: 0; }
.dp-tablo td.dp-par { padding: 6px 6px; text-align: center; vertical-align: middle; background: color-mix(in srgb, var(--altin) 6%, transparent); }
.dp-tablo .dp-par-bas { border-left: 2px solid var(--altin-soluk); }
.dp-par-giris { width: 100%; max-width: 78px; height: 30px; padding: 0 6px; border: 0; border-bottom: 1px solid var(--altin); border-radius: 0;
  background: transparent; font: inherit; font-size: 14px; text-align: center; color: var(--metin); font-variant-numeric: tabular-nums; }
.dp-par-giris:focus { outline: none; border-bottom: 2px solid var(--vurgu); background: #fff8e6; }
.dp-par-giris:disabled { opacity: .5; }
.dp-par-yaziliyor { opacity: .6; }
.dp-par-surum { display: block; margin-top: 2px; font-size: 10px; color: var(--ikinci); white-space: nowrap; }
.dp-par-kritik { background: #FBE6E6 !important; }
.dp-par-kritik .dp-par-giris { color: var(--hata); font-weight: 700; }
/* Sığdırma (2026.1465): parametre sütunları dar, başlık iki satır; Kalan'ın birimi kesilmesin. */
.dpg-tek .dpg-c-par, .dpg-tek:not(.dpl) .dpg-c-par { width: 74px !important; }
.dpg-tek:not(.dpl) .dpg-c-giris { width: 150px !important; }
.dp-tablo thead th.dp-par { white-space: normal !important; overflow: visible !important; text-overflow: clip !important;
  font-size: 10px; line-height: 1.15; padding: 6px 4px; letter-spacing: .03em; }
.dp-tablo thead th.dp-par small { display: inline; font-size: 9px; }
.dp-tablo td.dp-par { padding: 6px 4px !important; }
.dp-par-giris { max-width: 62px; font-size: 13.5px; }
.dpk:not(.dpl) .dp-giris { overflow: visible; }
.dpk:not(.dpl) .dp-giris .dp-yazim { justify-content: flex-end; gap: 4px; }
.dpk:not(.dpl) .dp-giris .dp-birim { white-space: nowrap; overflow: visible; }
@media (max-width: 1300px) {
  .dpg-tek:not(.dpl) .dpg-tablo, .dpk:not(.dpl) .dpg-tablo { min-width: 1040px; }
}

/* ---------- Ayarlar → Bildirimler (2026.1465 · göç 379) ----------
   Programın kendi parçaları: onay kutulu satır (.onay-satir), kişi çipleri
   (.ky-*), ayarlar kartı. Buradakiler yalnız yerleşim. */
.bp-durum { flex-direction: column; align-items: flex-start; gap: 4px; }
.bp-durum .ayarlar-ad { font-weight: 600; }
.bp-konu { border-bottom: 1px solid var(--ayirici); cursor: pointer; }
.bp-konu:last-child { border-bottom: 0; }
.bp-konu-yazi { display: grid; gap: 2px; padding: 8px 0; }
.bp-gizli { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.bp-konu:focus-within .onay-kutu-isaret { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.bp-adimlar { margin: 0; padding: 4px 16px 12px 36px; font-size: var(--kucuk-boy); line-height: 1.7; }
.ayarlar-kart .ayarlar-eylem .dugme-ikincil + .dugme-ikincil { margin-left: 8px; }
/* Panellere göre açılır gruplar (2026.1465 · göç 380) · simgeli kartlar
   (2026.1465 · kullanıcı: "ikonlu ve görselleri iyi olsun"). Renkler
   programın değişkenleri: krem kart, altın kenar, bordo vurgu. */
.bp-grup { margin-bottom: 12px; background: var(--yuzey); border: 1px solid var(--altin); border-left: 4px solid var(--vurgu);
  border-radius: 14px; box-shadow: 0 3px 0 var(--altin-soluk); overflow: hidden; }
.bp-grup-bas { display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; list-style: none; }
.bp-grup-bas::-webkit-details-marker { display: none; }
.bp-grup[open] > .bp-grup-bas { background: var(--oyuk); border-bottom: 1px solid var(--altin-soluk); }
.bp-grup-simge { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px;
  background: var(--zemin); border: 1px solid var(--altin-soluk); }
.bp-grup-yazi { flex: 1; min-width: 0; display: grid; gap: 6px; }
.bp-grup-yazi > b { font-family: var(--baslik-yazi, inherit); font-size: 17px; color: var(--metin); }
.bp-grup-cipler { display: flex; flex-wrap: wrap; gap: 6px; }
.bp-cip { padding: 2px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: var(--oyuk);
  color: var(--ikinci); border: 1px solid var(--altin-soluk); }
.bp-cip-acik { color: var(--basari); background: color-mix(in srgb, var(--basari) 10%, transparent); border-color: color-mix(in srgb, var(--basari) 30%, transparent); }
.bp-cip-kapali { color: var(--vurgu); background: color-mix(in srgb, var(--vurgu) 8%, transparent); border-color: color-mix(in srgb, var(--vurgu) 25%, transparent); }
.bp-ok { flex: none; display: inline-flex; color: var(--vurgu); transition: transform .15s; }
.bp-grup[open] > summary .bp-ok { transform: rotate(90deg); }
.bp-grup-ic { display: grid; gap: 16px; padding: 14px; }
/* Sayfa alt grubu (2026.1465) */
.bp-alt-bas { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; padding-bottom: 6px;
  border-bottom: 1px solid var(--altin-soluk); font-size: 13px; font-weight: 700; letter-spacing: .02em; color: var(--vurgu); }
.bp-alt-ic { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); align-items: start; gap: 12px; }
.bp-kart { background: var(--zemin); border: 1px solid var(--altin-soluk); border-radius: 12px; overflow: hidden; }
.bp-k { display: flex; align-items: center; gap: 12px; padding: 12px 14px; cursor: pointer; }
.bp-k-simge { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 11px;
  background: var(--yuzey); border: 1px solid var(--altin-soluk); transition: opacity .15s, filter .15s; }
.bp-k:not(.bp-k-acik) .bp-k-simge { filter: grayscale(1); opacity: .55; }
.bp-k-yazi { flex: 1; min-width: 0; display: grid; gap: 2px; }
.bp-k-yazi > b { font-size: 15px; }
.bp-k-uyari { font-size: 11.5px; color: var(--vurgu); font-weight: 600; }
/* Aç/kapat anahtarı · gerçek onay kutusu üstünde, klavyeyle de çalışır. */
.bp-anahtar { position: relative; flex: none; width: 46px; height: 26px; }
.bp-anahtar input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.bp-anahtar i { position: absolute; inset: 0; border-radius: 999px; background: var(--kenar, #d8ccb4); transition: background .15s; pointer-events: none; }
.bp-anahtar i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--yuzey); box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .15s; }
.bp-anahtar input:checked + i { background: var(--vurgu); }
.bp-anahtar input:checked + i::after { transform: translateX(20px); }
.bp-anahtar input:focus-visible + i { outline: 2px solid var(--altin-koyu); outline-offset: 2px; }
.bp-kime { display: flex; align-items: flex-start; gap: 10px; padding: 10px 14px 12px; border-top: 1px dashed var(--altin-soluk); background: var(--yuzey); }
.bp-kime-ad { flex: none; display: inline-flex; align-items: center; gap: 5px; padding-top: 6px; font-size: 12px; font-weight: 700; color: var(--ikinci); }
.bp-kime .ky-kisiler { flex: 1; min-width: 0; }
.bp-kime .ky-ekle { width: 170px; }
@media (prefers-reduced-motion: reduce) { .bp-ok, .bp-anahtar i, .bp-anahtar i::after, .bp-k-simge { transition: none; } }
/* Ödeme Modu zili (2026.1465 · göç 384) */
/* Şeritteki düğme (2026.1465) · bordo, zil ara ara sallanır. */
.rs-tus.om-zil-tus { background: var(--vurgu); color: var(--yuzey); border-color: var(--vurgu); }
.rs-tus.om-zil-tus:hover { filter: brightness(1.12); }
.om-zil-tus svg { animation: om-zil-salla 2.4s ease-in-out infinite; transform-origin: 50% 10%; }
@keyframes om-zil-salla { 0%, 84%, 100% { transform: rotate(0); } 88% { transform: rotate(14deg); } 92% { transform: rotate(-12deg); } 96% { transform: rotate(6deg); } }
@media (prefers-reduced-motion: reduce) { .om-zil-tus svg { animation: none; } }
.om-zil-liste { display: grid; gap: 8px; }
.om-zil-secenek { border: 1px solid var(--altin-soluk); border-radius: 12px; background: var(--zemin); }
.om-zil-secenek:disabled { opacity: .5; }
.om-zil-not { margin: 12px 2px 0; font-size: 12px; color: var(--ikinci); }
.ky-cip-hitap { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; } /* 2026.1465 */
.yr2-zam-not { padding: 0 14px 12px; border-top: 1px dashed var(--altin-soluk); } /* 2026.1465 */
.yr2-zam-ack { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--basari); margin-left: 6px; } /* 2026.1465 */
/* Fatura ↔ fiyat listesi eşleştirme iki taraflı (2026.1465 · kullanıcı:
   "hangisi fatura hangisi fiyat listesi anlayamıyorum"). */
.fl-es-baslik { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; padding: 0 26px 6px;
  font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--vurgu); }
.fl-eslesme .fl-es-satir { padding: 10px 12px; border: 1px dashed var(--altin); border-radius: 12px; background: var(--yuzey); align-items: start; }
.fl-eslesme .fl-es-satir.fl-es-tamam { border-style: solid; border-color: color-mix(in srgb, var(--basari) 45%, transparent);
  background: color-mix(in srgb, var(--basari) 5%, var(--yuzey)); }
.fl-es-ad { gap: 2px; padding-right: 10px; border-right: 1px solid var(--altin-soluk); }
.fl-es-liste { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fl-es-liste select { width: 100%; }
.fl-es-etiket { display: none; font-size: 10.5px !important; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--vurgu) !important; }
.fl-es-liste .fl-es-etiket { display: block; color: var(--ikinci) !important; font-weight: 600; text-transform: none; letter-spacing: 0; }
.fl-es-fiyat { font-size: 12px; color: var(--ikinci); }
.fl-es-fiyat b { color: var(--metin); }
.fl-es-yok { font-size: 12px; color: var(--vurgu); font-weight: 600; }
.fl-es-artti { font-style: normal; font-weight: 800; color: var(--hata); }
.fl-es-dustu { font-style: normal; font-weight: 800; color: var(--basari); }
.fl-es-ayni { font-style: normal; color: var(--ikinci); }
@media (max-width: 560px) {
  .fl-es-baslik { display: none; }
  .fl-es-etiket { display: block; }
  .fl-es-ad { padding: 0 0 8px; border-right: 0; border-bottom: 1px solid var(--altin-soluk); }
}
@media (min-width: 900px) { .pencere.fl-pencere, .fl-pencere .pencere-kutu, .fl-pencere { max-width: 780px; width: 780px; } } /* 2026.1465 · iki taraf rahat sığsın */
/* Fiyat listeleri tablosu (2026.1465) */
.fl-tablo-kutu { margin: 16px 0; background: var(--yuzey); border: 1px solid var(--altin); border-radius: 14px;
  box-shadow: 0 3px 0 var(--altin-soluk); overflow-x: auto; }
.fl-ana-tablo { width: 100%; border-collapse: collapse; font-size: 14px; }
.fl-ana-tablo th { padding: 11px 14px; text-align: left; font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
  color: var(--defter-koyu, var(--metin)); background: var(--oyuk); border-bottom: 1px solid var(--altin); white-space: nowrap; }
.fl-ana-tablo td { padding: 12px 14px; border-bottom: 1px solid var(--ayirici); vertical-align: middle; }
.fl-ana-tablo tbody tr:last-child td { border-bottom: 0; }
.fl-ana-tablo tbody tr { cursor: pointer; }
.fl-ana-tablo tbody tr:hover td { background: color-mix(in srgb, var(--vurgu) 5%, transparent); }
.fl-ana-tablo .fl-sag { text-align: right; }
.fl-firma b { display: block; }
.fl-firma small { display: block; max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11.5px; color: var(--ikinci); }
.fl-tarih { white-space: nowrap; font-weight: 600; }
.fl-eski-hucre { text-align: right; white-space: nowrap; }
.fl-eski-tus { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--altin); background: var(--zemin); color: var(--vurgu);
  font-size: 12.5px; font-weight: 700; cursor: pointer; }
.fl-eski-tus:hover { background: var(--vurgu); color: var(--yuzey); }
.fl-eski-tablo { margin-bottom: 8px; border: 1px solid var(--altin-soluk); border-radius: 10px; overflow: hidden; }
@media (max-width: 640px) {
  .fl-ana-tablo th:nth-child(4), .fl-ana-tablo td:nth-child(4) { display: none; }
  .fl-firma small { max-width: 120px; }
  .fl-eski-tus { padding: 5px 9px; font-size: 11.5px; white-space: normal; }
}
/* Telefonda satır kart gibi: firma, altında tarih ve ürün, en altta eski listeler. */
@media (max-width: 640px) {
  .fl-ana-tablo:not(.fl-eski-tablo) thead { display: none; }
  .fl-ana-tablo:not(.fl-eski-tablo) tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 12px 14px; border-bottom: 1px solid var(--ayirici); }
  .fl-ana-tablo:not(.fl-eski-tablo) tbody tr:last-child { border-bottom: 0; }
  .fl-ana-tablo:not(.fl-eski-tablo) td { display: block; padding: 0; border: 0; }
  .fl-ana-tablo:not(.fl-eski-tablo) .fl-firma { grid-column: 1 / -1; }
  .fl-ana-tablo:not(.fl-eski-tablo) .fl-firma small { max-width: none; }
  .fl-ana-tablo:not(.fl-eski-tablo) td:nth-child(3)::after { content: " ürün"; color: var(--ikinci); font-size: 12px; }
  .fl-ana-tablo:not(.fl-eski-tablo) .fl-eski-hucre { grid-column: 1 / -1; text-align: left; }
  .fl-ana-tablo:not(.fl-eski-tablo) .fl-eski-hucre .fl-soluk { display: none; }
  .fl-tablo-kutu { overflow-x: visible; }
}
/* Akıllı öneri ve son 3 ay (2026.1455) */
.fl-eslesme .fl-es-satir.fl-es-oneri { border-style: solid; border-color: #E2B95A; background: #FDF6E3; }
.fl-es-eski { display: none !important; }
.fl-eski-acik .fl-es-eski { display: grid !important; opacity: .85; }
.fl-oneri-serit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin: 0 14px 10px;
  padding: 10px 12px; border-radius: 12px; background: #FDF6E3; border: 1px solid #E2B95A; font-size: 13px; color: #7A5B12; }
.fl-es-oneri-yazi { font-size: 12px; font-weight: 700; color: #93690F; margin-right: 8px; }
.fl-onayla { padding: 4px 12px; border-radius: 999px; border: 0; background: var(--basari); color: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }
.fl-eski-goster { display: block; margin: 0 auto 14px; padding: 7px 14px; border-radius: 999px; border: 1px dashed var(--altin);
  background: var(--zemin); color: var(--ikinci); font-size: 12.5px; font-weight: 600; cursor: pointer; }
/* Not defteri · kişiye ata (2026.1465) */
.nd-ata { display: grid; gap: 6px; margin: 10px 0 4px; padding: 10px 12px; border: 1px dashed var(--altin); border-radius: 12px; background: var(--zemin); }
.nd-ata-ad { font-size: 12.5px; font-weight: 700; color: var(--vurgu); }
.nd-ata .ky-ekle { width: 200px; max-width: 100%; }
.nd-ata-not { flex-basis: 100%; font-size: 11.5px; color: var(--basari); font-weight: 600; }
.nd-atanan { display: block; font-size: 12px; font-weight: 700; color: var(--vurgu); }
/* Sipariş Listeleri (2026.1465 · göç 392) */
.sl-departmanlar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 14px 0 4px; }
.sl-dep-baslik { font-size: 11.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--vurgu); margin-right: 4px; }
.sl-dep { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--altin);
  background: var(--yuzey); color: var(--metin); font-size: 13.5px; font-weight: 600; cursor: pointer; box-shadow: 0 2px 0 var(--altin-soluk); }
.sl-dep small { font-size: 11px; color: var(--ikinci); }
.sl-dep-secili { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); }
.sl-dep-secili small { color: var(--ikinci); }
.sl-dep input { margin: 0; accent-color: var(--vurgu); }
.sl-cip { display: inline-block; margin: 2px 4px 2px 0; padding: 2px 10px; border-radius: 999px; background: var(--oyuk); border: 1px solid var(--altin-soluk); font-size: 12px; font-weight: 600; }
.sl-yeni { display: block; margin-top: 3px; font-size: 11.5px; font-weight: 700; color: var(--vurgu); white-space: nowrap; }
.sl-tablo .fl-sag .sl-yeni { font-weight: 600; }
.sl-pasif td { opacity: .55; }
.sl-ad { display: grid; gap: 4px; margin-bottom: 12px; }
.sl-ad small, .sl-hucre small { font-size: 11px; font-weight: 700; color: var(--ikinci); }
.sl-ust-baslik { margin: 12px 0 6px; font-size: 13px; font-weight: 800; color: var(--vurgu); }
.sl-ust-baslik small { font-weight: 500; color: var(--ikinci); }
.sl-dep-sec { margin: 0 0 4px; }
.sl-tablo-kap { max-height: 52vh; overflow: auto; border: 1px solid var(--altin-soluk); border-radius: 12px; background: var(--yuzey); margin-bottom: 8px; }
.sl-urun-tablo { width: 100%; border-collapse: collapse; counter-reset: sl-no; font-size: 13px; }
.sl-urun-tablo th { position: sticky; top: 0; z-index: 1; padding: 8px 8px; text-align: left; font-size: 11px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ikinci); background: var(--oyuk); border-bottom: 1px solid var(--altin-soluk); white-space: nowrap; }
.sl-urun-tablo td { padding: 0; border-bottom: 1px solid var(--ayirici); border-right: 1px solid var(--ayirici); }
.sl-urun-tablo tr:last-child td { border-bottom: 0; }
.sl-urun-tablo td:last-child { border-right: 0; }
.sl-urun-tablo tbody tr { counter-increment: sl-no; }
.sl-urun-tablo td.sl-no::before { content: counter(sl-no); }
.sl-no { width: 34px; text-align: center !important; color: var(--ikinci); font-size: 11.5px; }
.sl-dar { width: 22%; }
.sl-girdi { width: 100%; height: 36px; padding: 0 10px; border: 0; background: transparent; color: var(--metin); font: inherit; outline: none; }
.sl-girdi:focus { background: color-mix(in srgb, var(--altin) 12%, var(--yuzey)); box-shadow: inset 0 0 0 2px var(--altin); }
.sl-girdi::placeholder { color: var(--ikinci); opacity: .45; }
.sl-sil-hucre { width: 34px; }
.sl-sil { display: grid; place-items: center; width: 34px; height: 36px; border: 0; background: none; color: var(--ikinci); cursor: pointer; opacity: .5; }
.sl-sil:hover { opacity: 1; background: color-mix(in srgb, var(--hata) 10%, transparent); color: var(--hata); }
.sl-aktif { margin: 10px 0 0; }
@media (max-width: 640px) {
  .sl-urun-tablo { min-width: 560px; }
}
/* Bildirimler → Tekrarlananlar (2026.1465 · göç 396) */
.bp-tkr-liste { display: grid; gap: 8px; }
.bp-tkr { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 1px solid var(--altin-soluk); border-radius: 12px;
  background: var(--yuzey); color: var(--metin); text-align: left; cursor: pointer; }
.bp-tkr:hover { border-color: var(--altin); }
.bp-tkr-kapali { opacity: .55; }
.bp-tkr-yazi { flex: 1; min-width: 0; display: grid; gap: 2px; }
.bp-tkr-yazi b { font-size: 14px; }
.bp-tkr-yazi small { font-size: 12px; color: var(--ikinci); }
.bp-tkr-saat { flex: 0 0 auto; padding: 3px 10px; border-radius: 999px; background: color-mix(in srgb, var(--basari) 12%, var(--yuzey));
  color: var(--basari); font-size: 12px; font-weight: 700; white-space: nowrap; }
.bp-tkr-saatsiz { background: var(--oyuk); color: var(--ikinci); font-weight: 600; }
/* Tekrarlanan not paneli (2026.1465) */
.tk-pencere { max-width: 560px; }
.tk-govde { display: grid; gap: 12px; }
.tk-baslik { font-size: 16px; font-weight: 600; }
.tk-aciklama { resize: vertical; min-height: 48px; }
.tk-bolum { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--altin-soluk); border-radius: 14px; background: var(--zemin); }
.tk-bas { font-size: 12.5px; font-weight: 800; color: var(--vurgu); }
.tk-cipler { display: flex; flex-wrap: wrap; gap: 6px; }
.tk-cip { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--altin); background: var(--yuzey); color: var(--metin);
  font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: 0 2px 0 var(--altin-soluk); }
.tk-cip:hover { border-color: var(--vurgu); }
.tk-cip-secili { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); box-shadow: none; }
.tk-satir { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; }
.tk-sayi { width: 76px !important; text-align: center; }
.tk-ay, .tk-saat { width: auto !important; min-width: 120px; }
.tk-soluk { font-size: 12.5px; color: var(--ikinci); }
.tk-anahtar { position: relative; display: inline-flex; width: 44px; height: 26px; flex: none; cursor: pointer; }
.tk-anahtar input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.tk-anahtar i { position: absolute; inset: 0; border-radius: 999px; background: var(--kenar); transition: background .15s; }
.tk-anahtar i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .15s; }
.tk-anahtar input:checked + i { background: var(--basari); }
.tk-anahtar input:checked + i::after { transform: translateX(18px); }
.tk-durum { font-weight: 600; }
.tk-ozet { padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--altin) 14%, var(--yuzey)); font-size: 13px; line-height: 1.45; color: var(--metin); }
.tk-baslik { text-transform: none !important; }
.tk-iki { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tk-iki .tk-sayi { width: 100% !important; }
.tk-saat { min-width: 140px; }
.tk-bolum .ky-kisiler { margin-top: 2px; }
/* Uzun bölüm başlığı sığar (2026.1465) */
.kfr-kagit.gsy td.gsy-ad-sar { white-space: normal; height: auto; }
.gsy-ad-sar .gsy-ad-ic { flex-wrap: wrap; row-gap: 2px; }
.gsy-ad-sar .gsy-ad-metin { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.2; }
.ayarlar-kimlik-harf img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
/* Bloke Kontrolü (2026.1465 · göç 401) */
.bk-sekmeler { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 6px; }
.bk-sekme { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--altin);
  background: var(--yuzey); color: var(--metin); font-size: 14px; font-weight: 600; cursor: pointer; box-shadow: 0 2px 0 var(--altin-soluk); }
.bk-sekme-secili { background: var(--vurgu); border-color: var(--vurgu); color: var(--yuzey); box-shadow: none; }
.bk-sayi { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--hata); color: #fff; font-size: 11.5px; }
.bk-aciklama { margin: 4px 0 12px; font-size: 12.5px; color: var(--ikinci); }
.bk-hesap { margin: 0 0 10px; border: 1px solid var(--altin-soluk); border-radius: 14px; background: var(--yuzey); overflow: hidden; }
.bk-bas { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 12px 14px; cursor: pointer; list-style: none; }
.bk-bas::-webkit-details-marker { display: none; }
.bk-ad { flex: 1 1 220px; display: grid; gap: 2px; min-width: 0; }
.bk-ad b { font-size: 14.5px; } .bk-ad small { color: var(--ikinci); font-size: 12px; }
.bk-rakam { display: grid; gap: 1px; text-align: right; font-weight: 700; font-size: 14px; }
.bk-rakam small { font-size: 11px; font-weight: 600; color: var(--ikinci); }
.bk-cip { padding: 4px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.bk-cip-ok { background: color-mix(in srgb, var(--basari) 14%, var(--yuzey)); color: var(--basari); }
.bk-cip-uyari { background: color-mix(in srgb, var(--hata) 12%, var(--yuzey)); color: var(--hata); }
.bk-ic { padding: 0 14px 14px; }
.bk-not { margin: 0 0 8px; padding: 8px 10px; border-radius: 10px; background: color-mix(in srgb, var(--hata) 8%, var(--yuzey)); font-size: 13px; }
.bk-not-soluk { background: var(--oyuk); color: var(--ikinci); }
.bk-tablo-kap { overflow-x: auto; border: 1px solid var(--ayirici); border-radius: 10px; }
.bk-tablo { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 640px; }
.bk-tablo th { text-align: left; padding: 7px 10px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; color: var(--ikinci); background: var(--oyuk); }
.bk-tablo td { padding: 6px 10px; border-top: 1px solid var(--ayirici); vertical-align: top; }
.bk-sag { text-align: right !important; white-space: nowrap; }
.bk-devir td { color: var(--ikinci); font-style: italic; }
.bk-donem td { background: color-mix(in srgb, var(--basari) 6%, var(--yuzey)); }
.bk-donem-uyari td { background: color-mix(in srgb, var(--hata) 7%, var(--yuzey)); }
.bk-donem-gecici td { background: color-mix(in srgb, var(--altin) 10%, var(--yuzey)); }
.bk-durum small { display: block; font-size: 11.5px; color: var(--ikinci); margin-top: 2px; }
.bk-ok { color: var(--basari); font-weight: 700; } .bk-uyari { color: var(--hata); font-weight: 700; } .bk-gecici { color: var(--ikinci); font-weight: 600; }
.bk-bos { text-align: center; color: var(--ikinci); padding: 14px !important; }
/* Bloke Kontrolü · A4 dikey (2026.1465) */
.bk-kagit { max-width: 794px; margin: 0 auto; }
.bk-tablo { min-width: 0; font-size: 12.5px; table-layout: fixed; }
.bk-tablo th:nth-child(1), .bk-tablo td:nth-child(1) { width: 86px; }
.bk-tablo th:nth-child(2), .bk-tablo td:nth-child(2),
.bk-tablo th:nth-child(3), .bk-tablo td:nth-child(3),
.bk-tablo th:nth-child(4), .bk-tablo td:nth-child(4),
.bk-tablo th:nth-child(5), .bk-tablo td:nth-child(5) { width: 104px; }
.bk-tablo td, .bk-tablo th { padding: 5px 7px; }
.bk-tablo td.bk-durum { white-space: normal; font-size: 12px; }
@media (max-width: 640px) { .bk-tablo { min-width: 560px; } }
/* Bloke Kontrolü · bankalar (2026.1465) */
.bk-tablo-banka th:nth-child(2), .bk-tablo-banka td:nth-child(2) { width: 96px; }
.bk-v-uyari td { background: color-mix(in srgb, var(--hata) 7%, var(--yuzey)); }
.bk-v-kesinti td { background: color-mix(in srgb, var(--altin) 9%, var(--yuzey)); }
.bk-v-bekliyor td { color: var(--ikinci); }
.bk-d-ok { color: var(--basari); font-weight: 700; } .bk-d-uyari { color: var(--hata); font-weight: 700; }
.bk-d-kesinti { color: var(--altin-koyu); font-weight: 700; } .bk-d-bekliyor { color: var(--ikinci); }
/* Bloke Kontrolü · yemek kartı / platform: fatura · komisyon ft. · ödeme (2026.1455) */
.bk-tablo-kart th:nth-child(1), .bk-tablo-kart td:nth-child(1) { width: 78px; }
.bk-tablo-kart th:nth-child(2), .bk-tablo-kart td:nth-child(2),
.bk-tablo-kart th:nth-child(3), .bk-tablo-kart td:nth-child(3),
.bk-tablo-kart th:nth-child(4), .bk-tablo-kart td:nth-child(4),
.bk-tablo-kart th:nth-child(5), .bk-tablo-kart td:nth-child(5),
.bk-tablo-kart th:nth-child(6), .bk-tablo-kart td:nth-child(6) { width: 92px; }
.bk-tablo-kart th { white-space: normal; line-height: 1.2; }
.bk-durum .bk-k { display: block; font-weight: 700; }
.bk-durum .bk-k + small + .bk-k, .bk-durum small + .bk-k { margin-top: 4px; }
.bk-k-ok { color: var(--basari); } .bk-k-uyari { color: var(--hata); } .bk-k-bilgi { color: var(--ikinci); font-weight: 600 !important; }
.bk-tablo-kart td.bk-sag small { font-size: 10.5px; color: var(--ikinci); font-style: italic; }
.bk-cip-bekliyor { background: color-mix(in srgb, var(--altin) 16%, var(--yuzey)); color: var(--altin-koyu); }
/* Sipariş Listeleri · Excel'den ekle (2026.1455) */
.sl-x-not { margin: 0 0 10px; font-size: 13px; color: var(--ikinci); }
.sl-x-kart { border: 1px solid var(--ayirici); border-radius: 12px; padding: 10px 12px; margin: 10px 0; background: var(--yuzey); }
.sl-x-kapali { opacity: .45; }
.sl-x-bas { display: flex; align-items: center; gap: 10px; }
.sl-x-sec input { width: 18px; height: 18px; accent-color: var(--vurgu); margin: 0; }
.sl-x-ad { flex: 1; min-width: 0; font-weight: 700; }
.sl-x-say { font-size: 12.5px; color: var(--ikinci); white-space: nowrap; }
.sl-x-ornek { margin: 6px 0 4px; font-size: 12px; color: var(--ikinci); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sl-x-uyari { margin: 6px 0 0; font-size: 12px; color: var(--ikinci); font-weight: 600; }
.sl-x-kart .sl-departmanlar { margin: 6px 0 0; }
/* Bloke Kontrolü · sade özet satırı (2026.1465) */
.bk-bas { display: grid; grid-template-columns: minmax(0, 1fr) 150px 190px 200px; gap: 16px; padding: 14px 18px; }
.bk-bas::after { content: none; }
.bk-ad b { font-size: 15px; font-weight: 700; }
.bk-ad small { font-size: 11.5px; letter-spacing: .02em; }
.bk-rakam { font-size: 14.5px; font-variant-numeric: tabular-nums; }
.bk-rakam small { text-transform: uppercase; letter-spacing: .05em; font-size: 10px; font-weight: 700; }
.bk-sonraki em { font-style: normal; font-weight: 600; color: var(--ikinci); margin-right: 4px; }
.bk-bas .bk-cip { justify-self: end; font-size: 12.5px; padding: 6px 12px; }
.bk-hesap { border-color: var(--ayirici); box-shadow: 0 1px 0 color-mix(in srgb, var(--altin) 18%, transparent); transition: box-shadow .15s; }
.bk-hesap:hover { box-shadow: 0 3px 12px color-mix(in srgb, var(--altin) 22%, transparent); }
.bk-hesap[open] .bk-bas { border-bottom: 1px solid var(--ayirici); margin-bottom: 10px; }
@media (max-width: 720px) {
  .bk-bas { grid-template-columns: minmax(0, 1fr) auto; row-gap: 8px; }
  .bk-bas .bk-cip { grid-column: 2; grid-row: 1; }
  .bk-bas .bk-rakam { text-align: left; }
}
/* Bloke Kontrolü · paranın açılımı (2026.1465) */
.bk-acilim { grid-column: 1 / -1; display: grid; gap: 7px; margin-top: 2px; }
.bk-serit { display: flex; height: 7px; border-radius: 99px; overflow: hidden; background: var(--oyuk); }
.bk-serit i { display: block; height: 100%; }
.bk-lejant { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--ikinci); }
.bk-lejant > span { display: inline-flex; align-items: center; gap: 6px; }
.bk-lejant i { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
.bk-lejant b { color: var(--metin); font-weight: 700; font-variant-numeric: tabular-nums; }
.bk-s-sira { background: var(--basari); }
.bk-s-sonra { background: var(--altin); }
.bk-s-gecmis { background: var(--hata); }
.bk-s-kom { background: color-mix(in srgb, var(--ikinci) 55%, var(--yuzey)); }
.bk-s-kes { background: repeating-linear-gradient(45deg, var(--altin-koyu) 0 3px, transparent 3px 6px); border: 1px solid var(--altin-koyu); }
.bk-s-fark { background: var(--vurgu); }
/* Bloke Kontrolü · sütun sütun özet (2026.1465) */
.bk-kagit { max-width: 1120px; }
.bk-bas, .bk-sutun-bas { display: grid; grid-template-columns: minmax(130px, 1fr) 115px 135px 120px 140px 135px 175px; gap: 12px; align-items: center; }
.bk-sutun-bas { padding: 4px 18px 8px; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); }
.bk-h { display: grid; text-align: right; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.25; }
.bk-h small { font-size: 10.5px; font-weight: 600; color: var(--ikinci); }
.bk-bos-h { color: var(--ayirici); font-weight: 400; }
.bk-h-sira { color: var(--basari); }
.bk-h-gecikmis { color: var(--hata); }
.bk-h-kom { color: var(--ikinci); }
.bk-h-toplam { font-weight: 800; font-size: 15px; }
.bk-h-toplam, .bk-h-sira, .bk-h-gecikmis, .bk-h-kom { }
@media (max-width: 900px) {
  .bk-sutun-bas { display: none; }
  .bk-bas { grid-template-columns: 1fr 1fr; }
  .bk-bas .bk-ad { grid-column: 1 / -1; }
  .bk-h { text-align: left; }
  .bk-h::before { content: attr(data-b); font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--ikinci); }
}
.bk-sutun-bas span:last-child { text-align: right; }
/* Bloke Kontrolü · fatura sırasıyla sütunlar (2026.1465) */
.bk-bas, .bk-sutun-bas { grid-template-columns: minmax(130px, 1fr) 130px 140px 95px 150px 140px 175px; }
.bk-h-net { color: var(--basari); font-weight: 800; font-size: 15px; }
.bk-h small b { font-weight: 700; }
/* Bloke Kontrolü · blokede duran sütunu (2026.1465) */
.bk-kagit { max-width: 1200px; }
.bk-bas, .bk-sutun-bas { grid-template-columns: minmax(120px, 1fr) 135px 125px 135px 80px 150px 135px 175px; gap: 10px; }
.bk-h-toplam { color: var(--metin); }
/* Bloke Kontrolü · blokede duranın içeriği hizalı (2026.1465) */
.bk-bas, .bk-sutun-bas { grid-template-columns: minmax(110px, 1fr) 200px 112px 150px 66px 145px 128px 168px; }
.bk-h-gecikmis { white-space: nowrap; }
.bk-h small .bk-ic { display: grid; gap: 1px; margin-top: 4px; padding-top: 4px; border-top: 1px dashed var(--ayirici); }
.bk-ic-satir { display: flex; justify-content: space-between; gap: 10px; white-space: nowrap; font-size: 10.5px; line-height: 1.35; }
.bk-ic-satir em { font-style: normal; color: var(--ikinci); font-weight: 600; }
.bk-ic-satir b { color: var(--metin); font-weight: 700; font-variant-numeric: tabular-nums; }

/* Yönetim siparişi (2026.1465 · göç 405) · taslakta fiyat, tutar, ödeme bilgileri */
.stk-f-tablo td.fy .stk-f-sag { display: block; text-align: right; padding: 0 8px; font-weight: 600; font-size: 13px; white-space: nowrap; }
.stk-odeme { border-top: 1.5px solid #2C2620; }
.stk-odeme .kagit-baslik { font-size: 13px; }
.stk-odeme .stk-f-satir b { user-select: all; }
.stk-odeme .stk-f-satir i { font-weight: 500; color: #7A6A58; }
.stk-f-fiyatli td.fy:has(.stk-f-sag) { vertical-align: middle; }
.stk-odeme + .stk-f-not, .stk-odeme { border-bottom: 0; }
.stk-f-tablo td.stk-f-top-ytm { vertical-align: middle; white-space: nowrap; font-size: 13px; padding: 0 8px; }

/* Bloke Kontrolü · logo, kart, pencere ve kural defteri (2026.1465) */
.bk-hesap[data-bk-ac] { cursor: pointer; transition: box-shadow .15s, transform .15s, border-color .15s; }
.bk-hesap[data-bk-ac]:hover { border-color: var(--altin, #C2A268); box-shadow: 0 6px 18px rgba(58, 42, 29, .10); transform: translateY(-1px); }
.bk-hesap[data-bk-ac]:focus-visible { outline: 2px solid var(--vurgu, #8F2D22); outline-offset: 2px; }
.bk-ad { display: flex !important; align-items: center; gap: 12px; }
.bk-ad-yazi { display: grid; gap: 2px; min-width: 0; }
.bk-ad-yazi b { overflow-wrap: anywhere; line-height: 1.2; }
.bk-logo { flex: none; width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center;
  background: var(--bk-renk, #8F2D22); color: #fff; font-weight: 800; font-size: 13px; letter-spacing: .02em;
  box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .15); }
.bk-logo-resim { background: #fff; border: 1px solid var(--ayirici, #e6d8bc); box-shadow: none; }
.bk-logo-resim img { width: 30px; height: 30px; object-fit: contain; }
.bk-bas, .bk-sutun-bas { grid-template-columns: minmax(140px, 1.2fr) minmax(150px, 190px) minmax(80px, 112px) minmax(110px, 150px) 56px minmax(100px, 135px) minmax(90px, 120px) minmax(120px, 150px); gap: 12px; }
.bk-kagit { max-width: 1280px; }

.pencere.bk-pencere.pencere-genis { max-width: min(1320px, 96vw); width: min(1320px, 96vw); }
.bk-p-ust { display: flex; align-items: center; gap: 14px; margin: 0 0 14px; }
.bk-p-ust .bk-logo { width: 48px; height: 48px; font-size: 15px; border-radius: 13px; }
.bk-p-ust .bk-logo-resim img { width: 36px; height: 36px; }
.bk-p-bakiye { display: grid; flex: 1; }
.bk-p-bakiye small { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--ikinci); }
.bk-p-bakiye b { font-size: 22px; font-variant-numeric: tabular-nums; }
.bk-p-iki { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 18px; align-items: start; }
.bk-p-sol { min-width: 0; }
.bk-p-sol .bk-not { margin-top: 0; }
.bk-p-sag { position: sticky; top: 0; }
.bk-kd { background: #fffdf8; border: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 14px; padding: 14px 14px 10px; }
.bk-kd-baslik { font: 600 15px/1.2 Georgia, serif; color: var(--vurgu, #8F2D22); margin: 0 0 8px; }
.bk-kd-kontrol { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--ayirici, #e6d8bc); }
.bk-kd-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.bk-kd-liste li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 6px; align-items: start; }
.bk-kd-simge { font-size: 15px; line-height: 1.2; text-align: center; }
.bk-kd-liste b { display: block; font-size: 12.5px; }
.bk-kd-liste small { display: block; font-size: 12px; line-height: 1.4; color: var(--ikinci); }
.bk-kd-liste small b { display: inline; font-size: inherit; color: var(--metin); }
.bk-kd-ok .bk-kd-simge, .bk-kd-ok b { color: #1f5b33; }
.bk-kd-uyari .bk-kd-simge, .bk-kd-uyari > span > b { color: var(--hata, #B3261E); }
.bk-kd-bilgi .bk-kd-simge { color: var(--ikinci); }
.bk-kd-bos { font-size: 12.5px; color: var(--ikinci); margin: 0; }
.bk-kd-kaynak { margin: 12px 0 0; font-size: 10.5px; color: var(--ikinci); }
@media (max-width: 900px) {
  .bk-p-iki { grid-template-columns: minmax(0, 1fr); }
  .bk-p-sag { position: static; }
}
.bk-bas .bk-cip { white-space: normal; text-align: center; max-width: 100%; line-height: 1.25; }

/* Bloke Kontrolü · kart düzeni (2026.1465) · üstte kimlik, altta etiketli kutucuklar */
.bk-kagit { max-width: 1180px; }
.bk-kartlar { display: grid; gap: 14px; }
.bk-kart { margin: 0; border-radius: 16px; background: #fff; border: 1px solid var(--altin-soluk, #e6d8bc); overflow: hidden; }
.bk-kart-ust { display: flex; align-items: center; gap: 14px; padding: 14px 18px; }
.bk-kart-ust .bk-ad { flex: 1; min-width: 0; }
.bk-kart-ust .bk-ad b { font-size: 16px; }
.bk-kart-ust .bk-logo { width: 44px; height: 44px; border-radius: 12px; font-size: 14px; }
.bk-kart-ust .bk-cip { font-size: 12.5px; padding: 6px 12px; white-space: nowrap; }
.bk-kart-ok { flex: none; font-size: 24px; line-height: 1; color: var(--altin, #C2A268); transition: transform .15s; }
.bk-kart:hover .bk-kart-ok { transform: translateX(3px); color: var(--vurgu, #8F2D22); }
.bk-kart-alt { display: grid; grid-template-columns: minmax(210px, 1.35fr) repeat(5, minmax(0, 1fr));
  background: var(--yuzey, #fbf6ec); border-top: 1px solid var(--altin-soluk, #e6d8bc); }
.bk-kart-alt .bk-h { display: flex; flex-direction: column; justify-content: flex-start; gap: 3px; text-align: left;
  padding: 12px 16px 13px; border-left: 1px solid var(--altin-soluk, #e6d8bc); min-width: 0; font-size: 15px; }
.bk-kart-alt .bk-h::before { content: attr(data-b); font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bk-kart-alt .bk-h small { font-size: 11px; line-height: 1.35; }
.bk-kart-alt .bk-h-toplam { border-left: 0; background: #fffdf8; font-size: 19px; }
.bk-kart-alt .bk-h-toplam small .bk-ic { margin-top: 6px; padding-top: 6px; }
.bk-kart-alt .bk-h-toplam .bk-ic-satir { font-size: 11px; }
/* Okuma sırası: blokede duran → sıradaki → ödeme günü → sonraki → komisyon → net */
.bk-kart-alt .bk-h:nth-child(1) { order: 1; }
.bk-kart-alt .bk-h:nth-child(3) { order: 2; }
.bk-kart-alt .bk-h:nth-child(4) { order: 3; }
.bk-kart-alt .bk-h:nth-child(2) { order: 4; }
.bk-kart-alt .bk-h:nth-child(5) { order: 5; }
.bk-kart-alt .bk-h:nth-child(6) { order: 6; }
.bk-kart-alt .bk-h-net { background: color-mix(in srgb, var(--basari, #1f5b33) 7%, #fff); }
.bk-kart-alt .bk-bos-h { color: var(--ayirici); }
@media (max-width: 900px) {
  .bk-kart-alt { grid-template-columns: 1fr 1fr; }
  .bk-kart-alt .bk-h { border-left: 0; border-top: 1px solid var(--altin-soluk, #e6d8bc); }
  .bk-kart-alt .bk-h-toplam { grid-column: 1 / -1; border-top: 0; }
  .bk-kart-alt .bk-h:nth-child(even) { border-left: 1px solid var(--altin-soluk, #e6d8bc); }
}
/* Gecikmiş ayrı kutu, ödeme günü net'in yanında (2026.1465) */
.bk-kart-alt .bk-h-gec { color: var(--hata, #B3261E); background: color-mix(in srgb, var(--hata, #B3261E) 6%, #fff); }
.bk-kart-alt .bk-h-gec small { color: var(--hata, #B3261E); }
.bk-net-satir { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.bk-net-gun { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--metin); background: #fff; border: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }
.bk-kart-alt .bk-h-net { position: relative; }
.bk-kart-alt .bk-h-net .bk-net-gun { position: absolute; top: 9px; right: 10px; }
/* Net gelecek · tarih tarih liste (2026.1465) */
.bk-kart-alt { grid-template-columns: minmax(200px, 1.25fr) repeat(3, minmax(0, 1fr)) minmax(210px, 1.35fr); }
.bk-kart-alt .bk-h:nth-child(1) { order: 1; } .bk-kart-alt .bk-h:nth-child(3) { order: 2; }
.bk-kart-alt .bk-h:nth-child(2) { order: 3; } .bk-kart-alt .bk-h:nth-child(4) { order: 4; } .bk-kart-alt .bk-h:nth-child(5) { order: 5; }
.bk-kart-alt .bk-h-net-liste::before { display: none; }
.bk-net-tablo { display: grid; gap: 3px; width: 100%; }
.bk-net-bas, .bk-net-sat { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.bk-net-bas em { font-style: normal; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); }
.bk-net-bas { padding-bottom: 3px; border-bottom: 1px solid color-mix(in srgb, var(--basari, #1f5b33) 18%, transparent); }
.bk-net-sat em { font-style: normal; font-size: 13px; font-weight: 700; color: var(--metin); }
.bk-net-sat b { font-size: 15px; font-weight: 800; color: var(--basari, #1f5b33); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-net-gec em, .bk-net-gec b { color: var(--hata, #B3261E); }
.bk-net-top { margin-top: 2px; padding-top: 4px; border-top: 1px dashed color-mix(in srgb, var(--basari, #1f5b33) 30%, transparent); }
.bk-net-top em { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--ikinci); }
.bk-net-top b { font-size: 14px; }
@media (max-width: 900px) { .bk-kart-alt .bk-h-net-liste { grid-column: 1 / -1; } }

/* Bloke Kontrolü · küçük kartlar (2026.1465) · Siparişler kartları gibi ızgara */
.bk-kagit { max-width: 1240px; }
.bk-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; align-items: start; }
.bk-kk { display: flex; flex-direction: column; gap: 8px; text-align: left; padding: 14px 16px; border-radius: 14px; min-width: 0;
  background: var(--yuzey, #FFFDF8); border: 1px solid var(--altin, #C2A268); cursor: pointer; font: inherit; color: inherit;
  box-shadow: 0 2px 0 rgba(154, 123, 69, .25); transition: transform .12s, box-shadow .12s; }
.bk-kk:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(58, 42, 29, .12); }
.bk-kk:focus-visible { outline: 2px solid var(--vurgu, #8F2D22); outline-offset: 2px; }
.bk-kk-ust .bk-ad { display: flex; align-items: center; gap: 10px; }
.bk-kk-ust .bk-logo { width: 36px; height: 36px; border-radius: 10px; font-size: 12.5px; }
.bk-kk-ust .bk-logo-resim img { width: 26px; height: 26px; }
.bk-kk-ust .bk-ad b { font: 600 17px/1.2 Georgia, serif; color: var(--vurgu, #8F2D22); }
.bk-kk-ust .bk-ad small { font-size: 11.5px; color: var(--ikinci); }
.bk-kk-durum .bk-cip { display: inline-block; font-size: 12px; padding: 3px 10px; white-space: normal; }
.bk-k-tutar { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: 2px; }
.bk-k-tutar small { font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); }
.bk-k-tutar b { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-mini { display: block; border: 1px solid #2C2620; border-radius: 3px; background: #fff; font-size: 12.5px; }
.bk-mini-satir { display: flex; justify-content: space-between; gap: 8px; padding: 4px 8px; border-bottom: 1px solid #e6d8bc; }
.bk-mini-satir:last-child { border-bottom: 0; }
.bk-mini-satir > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ikinci); }
.bk-mini-satir b { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-mini-gec > span:first-child, .bk-mini-gec b { color: var(--hata, #B3261E); }
.bk-mini-fark > span:first-child { font-style: italic; }
.bk-mini-gelecek { border-color: color-mix(in srgb, var(--basari, #1f5b33) 55%, #2C2620); }
.bk-mini-gelecek b { color: var(--basari, #1f5b33); }
.bk-mini-gelecek .bk-mini-gec b { color: var(--hata, #B3261E); }
.bk-mini-bas { background: #faf6ee; font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.bk-mini-bas > span, .bk-mini-bas > span:first-child { color: var(--ikinci); }
.bk-mini-top { background: color-mix(in srgb, var(--basari, #1f5b33) 7%, #fff); }
.bk-mini-top > span:first-child { font-weight: 800; text-transform: uppercase; font-size: 11px; letter-spacing: .04em; }
.bk-kk { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; }
.bk-kk > * { grid-column: 1 / -1; }
.bk-kk > .bk-kk-ust { grid-column: 1; min-width: 0; }
.bk-kk > .bk-kk-durum { grid-column: 2; grid-row: 1; align-self: start; text-align: right; max-width: 120px; }
.bk-kk-durum .bk-cip { border-radius: 10px; line-height: 1.3; }
/* Kart boyları aynı (2026.1465 · kullanıcı: "kart boyları aynı olsun");
   ad heceden bölünmez, durum etiketi dar kalır. */
.bk-izgara { align-items: stretch; grid-auto-rows: 1fr; }
.bk-kk { height: 100%; }
.bk-kk-ust .bk-ad b { overflow-wrap: normal; word-break: normal; }
.bk-kk > .bk-kk-durum { max-width: 120px; }
/* Hesap adım adım (2026.1465) */
.bk-mini-satir > span:first-child { white-space: normal; }
.bk-mini-satir > span:first-child small { display: block; font-size: 10.5px; line-height: 1.3; color: var(--ikinci); opacity: .85; }
.bk-mini-satir { align-items: center; }
.bk-mini-gec > span:first-child small { color: var(--hata, #B3261E); }
.bk-gelecek { display: grid; gap: 8px; border: 1px solid color-mix(in srgb, var(--basari, #1f5b33) 45%, #2C2620); border-radius: 6px; background: #fff; padding: 8px 10px 10px; }
.bk-gelecek-bas { font: 600 14px/1.2 Georgia, serif; color: var(--basari, #1f5b33); }
.bk-gelecek-bas small { display: block; margin-top: 2px; font: 500 11px/1.3 inherit; font-family: inherit; color: var(--ikinci); }
.bk-hs { display: grid; gap: 2px; padding-top: 7px; border-top: 1px dashed #e6d8bc; }
.bk-hs-bas { font-size: 11.5px; font-weight: 800; color: var(--metin); margin-bottom: 2px; }
.bk-hs-gec .bk-hs-bas { color: var(--hata, #B3261E); }
.bk-hs-sat { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; }
.bk-hs-sat > span { color: var(--ikinci); }
.bk-hs-sat b { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-hs-eksi > span, .bk-hs-eksi b { color: var(--altin-koyu, #8a6a2c); }
.bk-hs-sonuc { margin-top: 2px; padding-top: 3px; border-top: 1px solid #e6d8bc; }
.bk-hs-sonuc > span { color: var(--metin); font-weight: 700; }
.bk-hs-sonuc b { color: var(--basari, #1f5b33); font-size: 14px; font-weight: 800; }
.bk-hs-gec .bk-hs-sonuc b { color: var(--hata, #B3261E); }
.bk-hs-top { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; margin: 2px -2px 0; border-radius: 4px;
  background: color-mix(in srgb, var(--basari, #1f5b33) 9%, #fff); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.bk-hs-top b { font-size: 15px; color: var(--basari, #1f5b33); text-transform: none; letter-spacing: 0; }
.bk-gelecek-bas small { font-family: var(--yazi-metin); font-weight: 500; font-size: 11px; line-height: 1.3; }
/* Sade kart (2026.1465) */
.bk-izgara { grid-auto-rows: 1fr; }
.bk-mini-satir > span:first-child { white-space: nowrap; }
.bk-gelecek { gap: 0; padding: 0; overflow: hidden; }
.bk-gelecek-bas { font: 800 10.5px/1 var(--yazi-metin); letter-spacing: .05em; text-transform: uppercase; color: var(--basari, #1f5b33);
  padding: 7px 8px; background: color-mix(in srgb, var(--basari, #1f5b33) 7%, #fff); border-bottom: 1px solid #e6d8bc; }
.bk-gs { display: grid; gap: 1px; padding: 6px 8px; border-bottom: 1px solid #e6d8bc; }
.bk-gs:last-child { border-bottom: 0; }
.bk-gs-ana { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.bk-gs-ana > span { font-size: 13px; font-weight: 700; color: var(--metin); }
.bk-gs-ana b { font-size: 15px; font-weight: 800; color: var(--basari, #1f5b33); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bk-gs small { font-size: 10.5px; color: var(--ikinci); font-variant-numeric: tabular-nums; }
.bk-gs-gec .bk-gs-ana > span, .bk-gs-gec .bk-gs-ana b { color: var(--hata, #B3261E); }
.bk-gs-top { background: color-mix(in srgb, var(--basari, #1f5b33) 7%, #fff); }
.bk-gs-top .bk-gs-ana > span { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; }
/* Bloke Kontrolü · bugünkü kontrol (2026.1531) */
.bk-kt { background: #fff; border: 1px solid var(--altin, #C2A268); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.bk-kt p { margin: 0 0 10px; font-size: 13px; font-weight: 700; }
.bk-kt p small { display: block; margin-top: 3px; font-weight: 500; color: var(--metin); }
.bk-kt-yok { color: var(--ikinci); font-weight: 500 !important; }
.bk-kt-ok { color: #1f5b33; }
.bk-kt-hata { color: var(--hata, #B3261E); }
.bk-kt-dugmeler { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.bk-kt-form { display: grid; gap: 8px; margin-top: 10px; }
/* Vurgu · iş akışından gelinen satır 2 saniye parlar (2026.1465) */
.bk-tablo td { transition: background-color .6s ease; }
.bk-tablo tr.bk-vurgu > td { background-color: #ffe7a0 !important; box-shadow: inset 0 2px 0 #C2A268, inset 0 -2px 0 #C2A268; }
/* İşlemin altında onay satırı (2026.1531) */
.bk-tablo tr.bk-kt-satir > td { background: #fffaf0; border-top: 0; padding: 8px 10px 10px; }
.bk-kt-ic { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.bk-kt-bas { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--altin-koyu, #8a6a2c); }
.bk-kt-ic .bk-kt-ok, .bk-kt-ic .bk-kt-hata { font-size: 12.5px; font-weight: 700; }
.bk-kt-yazi { flex: 1 1 260px; min-width: 0; height: 36px; font-size: 13px; }

/* Günlük İşlemler · seçili günün adımları ve onay kutuları (2026.1531) */
.gk-gun-kart { margin: 0 0 14px; padding: 16px 16px 12px; border: 1.5px solid var(--altin, #C2A268); border-radius: 16px; background: #fff; box-shadow: 0 3px 0 rgba(154, 123, 69, .22); }
.gk-gun-bas { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.gk-gun-bas b { font: 700 17px var(--yazi-baslik); color: var(--metin); }
.gk-gun-bas span { font-size: 12px; font-weight: 700; color: var(--ikinci); }
.gk-adimlar { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 10px; }
.gk-adimlar::before { content: ""; position: absolute; left: 16px; top: 18px; bottom: 18px; width: 3px; border-radius: 3px; background: #E8DFCF; }
.gk-adim { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; }
.gk-adim-no { z-index: 1; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 14px; color: #A08A68; background: #E8DCC8; }
.gk-adim-ok .gk-adim-no { color: #fff; background: linear-gradient(160deg, #4FA27A, var(--basari, #2F6B4A)); box-shadow: 0 3px 8px -3px rgba(0, 0, 0, .35), inset 0 2px 0 rgba(255, 255, 255, .3); }
.gk-adim-bek .gk-adim-no { color: #fff; background: linear-gradient(160deg, #E2B04D, #B07A12); }
.gk-adim-ic { padding-top: 6px; } .gk-adim-ic b { display: block; font-size: 14px; } .gk-adim-ic small { display: block; margin-top: 2px; font-size: 12px; color: var(--ikinci); }
.gk-adim-soluk { opacity: .7; } .gk-kirmizi { color: var(--hata, #B3261E); }
.gk-adim-not { margin: 6px 0 0; padding: 8px 10px; border-left: 3px solid var(--basari, #2F6B4A); background: #f2f8f4; border-radius: 8px; font-size: 12.5px; font-style: italic; }
.gk-bag { border: 0; background: none; padding: 0; color: var(--vurgu); text-decoration: underline; font: inherit; cursor: pointer; }
.gk-kontrol-form { padding: 10px 12px 12px; border: 1.5px solid var(--altin, #C2A268); border-radius: 14px; background: #fffaf0; }
.gk-kontrol-form label { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--altin-koyu, #8a6a2c); margin-bottom: 6px; }
.gk-kontrol-form textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 54px; }
.gk-kontrol-dug { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
/* Onay kutusu · basınca ortadan dolar, tik çizilir, kutu zıplar */
.gk-tik { display: flex; align-items: center; gap: 12px; padding: 8px 14px 8px 8px; border: 1.5px solid var(--altin, #C2A268); border-radius: 12px; background: #fff; cursor: pointer; font: inherit; color: var(--metin); text-align: left; }
.gk-tik:disabled { cursor: default; }
.gk-tik-kutu { position: relative; flex: none; width: 32px; height: 32px; border-radius: 9px; border: 2.5px solid var(--basari, #2F6B4A); overflow: hidden; display: grid; place-items: center; background: #fff; transition: transform .25s cubic-bezier(.3, 1.6, .5, 1); }
.gk-tik-kutu i { position: absolute; left: 50%; top: 50%; width: 0; height: 0; border-radius: 50%; transform: translate(-50%, -50%); background: linear-gradient(160deg, #4FA27A, var(--basari, #2F6B4A)); transition: width .35s ease, height .35s ease; }
.gk-tik-kutu svg { position: relative; z-index: 1; fill: none; stroke: #fff; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 22; stroke-dashoffset: 22; transition: stroke-dashoffset .3s ease .25s; }
.gk-tik-yazi { font-weight: 700; font-size: 14px; } .gk-tik-yazi small { display: block; font-weight: 500; font-size: 11.5px; color: var(--ikinci); margin-top: 2px; }
.gk-tik-yazi u { color: var(--vurgu); cursor: pointer; }
.gk-tik-dolu .gk-tik-kutu i, .gk-tik-doluyor .gk-tik-kutu i { width: 64px; height: 64px; }
.gk-tik-dolu .gk-tik-kutu svg, .gk-tik-doluyor .gk-tik-kutu svg { stroke-dashoffset: 0; }
.gk-tik-doluyor .gk-tik-kutu { transform: scale(1.12); }
.gk-tik-dolu { border-color: var(--basari, #2F6B4A); } .gk-tik-dolu .gk-tik-yazi { color: var(--basari, #2F6B4A); }
.gk-tik-doluyor { border-color: var(--basari, #2F6B4A); box-shadow: 0 0 0 5px rgba(47, 107, 74, .14); }
.gk-adim-govde { min-width: 0; display: grid; gap: 6px; } .gk-tik { width: 100%; box-sizing: border-box; } .gk-kontrol-dug .gk-tik { flex: 1 1 180px; width: auto; }

/* Gün listesi · onay kutulu satırlar (2026.1531) */
.gk-liste-kart { border: 1.5px solid var(--altin, #C2A268); border-radius: 16px; background: #fff; padding: 6px 10px 10px; box-shadow: 0 3px 0 rgba(154, 123, 69, .22); }
.gk-liste { width: 100%; border-collapse: separate; border-spacing: 0 6px; table-layout: fixed; }
.gk-liste th { text-align: left; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); padding: 6px 6px 0; }
.gk-liste th:nth-child(1) { width: 62px; } .gk-liste th:nth-child(4) { width: 46px; }
.gk-satir > td { padding: 6px; background: #fffdf8; border-top: 1px solid var(--altin-soluk, #e6d8bc); border-bottom: 1px solid var(--altin-soluk, #e6d8bc); vertical-align: middle; cursor: pointer; }
.gk-satir > td:first-child { border-left: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 12px 0 0 12px; }
.gk-satir > td:last-child { border-right: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 0 12px 12px 0; }
.gk-satir-secili > td { background: #fff6e6; border-color: var(--vurgu, #8F2D22); }
.gk-tarih b { display: block; font-size: 14px; } .gk-tarih small { font-size: 10.5px; color: var(--ikinci); }
.gk-tik-mini { width: 100%; padding: 5px 8px 5px 5px; gap: 8px; border-radius: 10px; }
.gk-tik-mini .gk-tik-kutu { width: 26px; height: 26px; border-radius: 7px; border-width: 2px; }
.gk-tik-mini .gk-tik-yazi { font-size: 12.5px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gk-tik-mini .gk-tik-yazi small { font-size: 10.5px; }
.gk-tik-bekliyor { border-color: #C48C1E; } .gk-tik-bekliyor .gk-tik-kutu { border-color: #C48C1E; } .gk-tik-bekliyor .gk-tik-yazi { color: #9a6200; }
.gk-tik-hata { border-color: var(--hata, #B3261E); background: #fdf1f0; } .gk-tik-hata .gk-tik-kutu { border-color: var(--hata, #B3261E); } .gk-tik-hata .gk-tik-yazi { color: var(--hata, #B3261E); }
.gk-tik-soluk { opacity: .55; border-style: dashed; }
.gk-form-satir > td { padding: 0 2px 4px; }
.gk-hepsi { display: block; width: 100%; margin-top: 4px; padding: 9px; border: 1.5px dashed var(--altin, #C2A268); border-radius: 12px; background: #fffaf0; color: var(--vurgu, #8F2D22); font: inherit; font-weight: 700; cursor: pointer; }
.gk-hepsi:hover { background: #fff3dc; }
.gk-tik-mini .gk-tik-yazi { white-space: normal; overflow: visible; line-height: 1.2; } .gk-tik-mini .gk-tik-yazi small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Küçük kutular, satırda açıklama (2026.1465) */
.gk-liste th:nth-child(2), .gk-liste th:nth-child(3) { width: 150px; }
.gk-liste th:nth-child(5) { width: 44px; }
.gk-tik-mini { width: auto; max-width: 100%; padding: 4px 8px 4px 4px; gap: 6px; border-radius: 9px; }
.gk-tik-mini .gk-tik-kutu { width: 22px; height: 22px; border-radius: 6px; }
.gk-tik-mini .gk-tik-kutu svg { width: 15px; height: 15px; }
.gk-tik-mini .gk-tik-yazi { font-size: 12px; } .gk-tik-mini .gk-tik-yazi small { font-size: 10px; }
.gk-ack { min-width: 0; }
.gk-ack { display: table-cell; }
.gk-ack-yazi { display: inline-block; max-width: calc(100% - 30px); vertical-align: middle; font-size: 12.5px; font-style: italic; color: var(--metin); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gk-ack-ac { vertical-align: middle; margin-left: 4px; width: 26px; height: 26px; border: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 8px; background: #fff; cursor: pointer; font-size: 13px; line-height: 1; }
.gk-ack-ac:hover { border-color: var(--altin, #C2A268); background: #fff8e6; }
.gk-bos-yazi { color: var(--ikinci); }
.gk-ack-panel p { margin: 0 0 10px; padding: 12px 14px; border-left: 3px solid var(--basari, #2F6B4A); background: #f2f8f4; border-radius: 10px; font-size: 14px; line-height: 1.5; white-space: pre-wrap; }
.gk-ack-panel small { color: var(--ikinci); font-weight: 600; }
.gk-liste th:nth-child(4) { width: auto; } .gk-liste th:nth-child(2), .gk-liste th:nth-child(3) { width: 140px; } .gk-ack-yazi { max-width: calc(100% - 34px); }

/* Nakit Tutturma · ortak kontrol tarzı (2026.1465) */
.nt-kart2 { max-width: 760px; }
.nt-satir2 { display: grid; grid-template-columns: 58px minmax(90px, 1fr) 160px minmax(90px, 1fr) 132px; gap: 8px; align-items: center;
  margin: 6px 0; padding: 6px 8px; border: 1px solid var(--altin-soluk, #e6d8bc); border-radius: 12px; background: #fffdf8; }
.nt-baslik2 { margin: 0; padding: 6px 8px 0; border: 0; background: none; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--ikinci); }
.nt-h { min-width: 0; } .nt-h-sag { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
.nt-satir2.nt-fark { border-color: rgba(179, 38, 30, .35); background: #fffafa; }
.nt-drm { display: inline-block; padding: 4px 10px; border-radius: 9px; font-size: 12px; font-weight: 700; border: 1.5px solid transparent; background: none; font-family: inherit; }
.nt-drm-ok { color: var(--basari, #2F6B4A); border-color: var(--basari, #2F6B4A); background: #f2f8f4; }
.nt-drm-fark { color: var(--hata, #B3261E); border-color: var(--hata, #B3261E); background: #fdf1f0; cursor: pointer; }
.nt-drm-bek { color: #9a6200; border-color: #C48C1E; background: #fffaf0; }
@media (max-width: 640px) {
  .nt-satir2 { grid-template-columns: 48px 1fr 1fr; }
  .nt-baslik2 { display: none; }
  .nt-satir2 > div:nth-child(3) { grid-column: 2 / 4; grid-row: 2; }
  .nt-satir2 > div:nth-child(5) { grid-column: 1 / 4; }
}
.zfk-liste th:nth-child(4), .zfk-liste th:nth-child(5) { width: 64px; } .zfk-liste th:nth-child(2), .zfk-liste th:nth-child(3) { width: auto; } span.gk-tik { cursor: inherit; }
/* Kasa Fark · kontrol tarzı liste (2026.1465) */
.kfr-ay-yeni .gk-liste-kart { margin-top: 8px; }
.kfr-liste th:nth-child(1) { width: 92px; } .kfr-liste th:nth-child(2) { width: 82px; }
.kfr-liste th:nth-child(3), .kfr-liste th:nth-child(4) { width: 150px; } .kfr-liste th:nth-child(5) { width: auto; } .kfr-liste th:nth-child(6) { width: 46px; }
.kfr-kutu-h { white-space: nowrap; } .kfr-kutu-h .gk-tik-mini { max-width: calc(100% - 32px); display: inline-flex; vertical-align: middle; }
.kfr-link-kucuk { margin-left: 4px; }

/* 120'li Hesaplar · ortak kontrol tarzı (2026.1465) */
.ck-liste th:nth-child(1) { width: 70px; }
.ck-liste th:nth-child(2) { width: auto; }
.ck-liste th:nth-child(3) { width: 70px; }
.ck-liste th:nth-child(4) { width: 120px; }
.ck-liste th:nth-child(5) { width: 190px; }
.ck-liste .gk-tik-yazi small { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.ck-liste tr.gk-satir { cursor: pointer; }
.ck-liste tr.ck-hafta-ileri td { opacity: .6; }

/* Bloke Kontrolü · kartta bugünkü kontrol (2026.1531) */
.bk-kk-kontrol { display: flex; align-items: center; gap: 8px; padding-top: 8px; border-top: 1px dashed #e6d8bc; min-width: 0; }
.bk-kk-kontrol .gk-tik { flex: 0 0 auto; }
.bk-kk-ack { display: flex; align-items: center; gap: 4px; min-width: 0; flex: 1 1 auto; font-size: 12px; color: var(--ikinci); }
.bk-kk-ack .gk-ack-yazi { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1 1 auto; max-width: none; }
.bk-ack-tam { white-space: pre-wrap; line-height: 1.5; }

/* Nakit Tutturma · iki kutu: Muhasebe bitti + Nakit sayıldı (2026.1465) */
.nt-kart2 { max-width: 900px; }
.nt-satir2 { grid-template-columns: 52px minmax(90px, 1fr) minmax(90px, 1fr) 150px 150px 120px; }
.nt-satir2 .gk-tik-mini { width: 100%; }
@media (max-width: 640px) {
  .nt-satir2 { grid-template-columns: 48px 1fr 1fr; }
  .nt-satir2 > div:nth-child(3) { grid-column: auto; grid-row: auto; }
  .nt-satir2 > div:nth-child(4) { grid-column: 2; grid-row: 2; }
  .nt-satir2 > div:nth-child(5) { grid-column: 3; grid-row: 2; }
  .nt-satir2 > div:nth-child(6) { grid-column: 1 / 4; }
}

/* Günlük İşlemler · denklik dışı satır notu (2026.1465) */
.mz-dd-not { display: block; margin-top: 3px; font-size: 11.5px; font-weight: 500; opacity: .8; }

/* Kontrol açıklaması paneli · bütün kontrol ekranlarında aynı (2026.1465) */
.gk-kontrol-panel { max-width: 520px; }
.gk-kp-ust { margin: 0 0 10px; font-size: 13px; color: var(--ikinci); }
.gk-kp-etiket { display: block; margin-bottom: 6px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kahve, #6b4a2b); }
.gk-kp-yazi { width: 100%; box-sizing: border-box; resize: vertical; min-height: 96px; }
.gk-kp-dug { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.gk-kp-dug .gk-bag { margin-left: auto; }

/* Ayarlar · yeni tarz (2026.1465) */
.ayarlar-yeni .ayarlar-ana-ad { margin-bottom: 18px; }
.ayarlar-yeni .bolum-grup { max-width: 1100px; }

/* Bildirimler · yeni tarz (2026.1465) */
.bp-yeni .bolum-kart { gap: 8px; }
.bp-kart-alt { margin-top: -4px; font-size: 11.5px; font-weight: 600; color: var(--ikinci); }
.bp-kart-secili { border-color: var(--vurgu, #8F2D22); box-shadow: 0 0 0 2px color-mix(in srgb, var(--vurgu, #8F2D22) 25%, transparent), 0 3px 0 rgba(143, 45, 34, .25); }
.bp-secili { margin-top: 16px; max-width: 1100px; padding: 14px 16px; border: 1.5px solid var(--altin, #C2A268); border-radius: 18px; background: #fffdf8; }
.bp-secili-bas { margin: 0 0 10px; font: 600 18px/1.2 var(--yazi-baslik, Georgia), serif; color: var(--vurgu, #8F2D22); }
.bp-secili .bp-grup-ic { padding: 0; }

/* Ayar kartları + panel · Bildirimler ve Kontroller ortak (2026.1465) */
.ak-izgara .bolum-kart { gap: 8px; }
.ak-kart-alt { margin-top: -4px; font-size: 11.5px; font-weight: 600; color: var(--ikinci); text-align: center; line-height: 1.3; }
.ak-kart-uyari .ak-kart-alt { color: var(--hata, #B3261E); }
.ak-panel { max-width: 760px; }
.ak-panel .pencere-govde { display: grid; gap: 14px; }
.ak-bolum { display: grid; gap: 8px; }
.ak-bolum-bas { display: flex; align-items: center; gap: 8px; margin: 2px 0 0; font-family: inherit; font-size: 11px; font-weight: 800; line-height: 1.2; letter-spacing: .07em; text-transform: uppercase; color: var(--kahve, #6b4a2b); }
.ak-bolum-bas::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, var(--altin-soluk, #e6d8bc), transparent); }
.ak-satir { border: 1.5px solid var(--altin-soluk, #e6d8bc); border-radius: 14px; background: #fff; overflow: hidden; }
.ak-satir-ust { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.ak-simge { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #faf5ea; }
.ak-simge svg { filter: url(#ns-kabart); }
.ak-yazi { flex: 1; min-width: 0; display: grid; gap: 2px; }
.ak-yazi b { font-size: 14.5px; color: var(--metin); }
.ak-yazi small { font-size: 12.5px; color: var(--ikinci); line-height: 1.35; }
.ak-uyari { font-style: normal; font-size: 12px; font-weight: 700; color: var(--hata, #B3261E); }
.ak-kisiler { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 9px 14px 11px; border-top: 1px dashed var(--altin-soluk, #e6d8bc); background: #fffaf0; }
.ak-kime { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--kahve, #6b4a2b); margin-right: 4px; }
.ak-cip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px 4px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  background: #fff; border: 1.5px solid var(--altin, #C2A268); color: var(--metin); }
.ak-cip-sil { width: 20px; height: 20px; border: 0; border-radius: 50%; background: none; color: var(--ikinci); font-size: 15px; line-height: 1; cursor: pointer; padding: 0; }
.ak-cip-sil:hover { background: rgba(143, 45, 34, .12); color: var(--hata, #B3261E); }
.ak-bos { font-size: 12.5px; font-style: italic; color: var(--ikinci); }
.ak-kisiler .ky-ekle, .ak-kisiler .aranan { min-width: 170px; }
.ak-not { margin: 0; font-size: 12px; color: var(--ikinci); line-height: 1.45; }
.ak-cip-ad { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.ak-cip-ad:hover { color: var(--vurgu, #8F2D22); }

/* Bildirimler üstü sade (2026.1465) */
.bp-ust { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 18px; }
.bp-ust-acik { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 700;
  color: var(--basari, #2F6B4A); background: color-mix(in srgb, var(--basari, #2F6B4A) 10%, #fff); border: 1.5px solid color-mix(in srgb, var(--basari, #2F6B4A) 35%, #fff); }
.bp-ust-not { margin: -8px 0 16px; font-size: 12.5px; color: var(--ikinci); }

/* Geri düğmesi · şık (2026.1531 · kullanıcı: "geri dönme düğmesi daha iyi olsun") */
.ayarlar-geri { min-height: 40px; padding: 0 16px 0 6px; gap: 8px; border: 1.5px solid var(--altin, #C2A268); border-radius: 999px;
  background: #fff; color: var(--vurgu, #8F2D22); font-size: 14px; font-weight: 700; box-shadow: 0 2px 0 rgba(154, 123, 69, .25);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ayarlar-geri .simge { width: 28px; height: 28px; padding: 6px; box-sizing: border-box; border-radius: 50%; color: #fff;
  background: linear-gradient(180deg, var(--vurgu, #8F2D22), #6E2219); }
@media (hover: hover) {
  .ayarlar-geri:hover { background: #fff; transform: translateX(-2px); border-color: var(--vurgu, #8F2D22); box-shadow: 0 6px 14px -8px rgba(58, 42, 29, .45); }
}

/* Ayar paneli renkleri · şık (2026.1531) */
.ak-panel { padding: 0; overflow: hidden; background: #fbf7ef; }
.ak-panel .pencere-tepe { margin: 0; padding: 16px 18px 16px 22px; background: linear-gradient(135deg, var(--vurgu, #8F2D22), #6E2219); }
.ak-panel .pencere-tepe .pencere-baslik { color: #fff; font-size: 19px; }
.ak-panel .pencere-tepe [data-kapat] { color: #fff; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.ak-panel .pencere-tepe [data-kapat]:hover { background: rgba(255, 255, 255, .24); }
.ak-panel .pencere-govde { padding: 18px 20px 20px; }
.ak-bolum-bas { color: var(--vurgu, #8F2D22); letter-spacing: .08em; }
.ak-bolum-bas::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--altin, #C2A268); }
.ak-satir { border: 1px solid #eadfca; border-radius: 16px; background: #fff; box-shadow: 0 2px 8px -4px rgba(58, 42, 29, .18); transition: border-color .15s, box-shadow .15s; }
.ak-satir:hover { border-color: var(--altin, #C2A268); box-shadow: 0 8px 18px -10px rgba(58, 42, 29, .35); }
.ak-simge { width: 48px; height: 48px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff, #f3e8d2); border: 1px solid #ecdcbb; }
.ak-yazi b { font-size: 15px; }
.ak-kisiler { background: linear-gradient(180deg, #fbf6ec, #f8f1e3); border-top: 1px solid #f0e5cf; }
.ak-kime { padding: 3px 9px; border-radius: 999px; background: #fff; border: 1px solid #ecdcbb; color: var(--vurgu, #8F2D22); letter-spacing: .05em; }
.ak-cip { border: 0; background: color-mix(in srgb, var(--vurgu, #8F2D22) 10%, #fff); color: #6E2219; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--vurgu, #8F2D22) 22%, #fff); }
.ak-cip-sil { color: #6E2219; }
.ak-panel .bp-anahtar input:checked + i { background: var(--basari, #2F6B4A); }
.ak-not { padding: 10px 12px; border-radius: 12px; background: #fff; border: 1px dashed #e6d8bc; }

/* Yönetim Raporu · Yapılan ödemeler tablosu (2026.1465) */
.yr2-od-tablo { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; table-layout: fixed; }
.yr2-od-tablo th { padding: 8px 10px; text-align: left; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ikinci);
  border-bottom: 1px solid var(--altin-soluk, #e6d8bc); }
.yr2-od-tablo td { padding: 9px 10px; vertical-align: top; border-bottom: 1px solid color-mix(in srgb, var(--altin) 22%, transparent); }
.yr2-od-tablo tr:last-child td { border-bottom: 0; }
.yr2-od-tablo th:nth-child(1), .yr2-od-tablo td:nth-child(1) { width: 30%; }
.yr2-od-tablo th:nth-child(3), .yr2-od-tablo td:nth-child(3) { width: 31%; }
.yr2-od-yol { font-weight: 700; color: var(--metin); overflow-wrap: anywhere; }
.yr2-od-ack span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; line-height: 1.3; }
.yr2-od-ack small { display: block; margin-top: 2px; font-size: 11px; color: var(--ikinci); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.yr2-od-tutar { text-align: right !important; font-weight: 800; white-space: nowrap; color: var(--hata, #B3261E); }
th.yr2-od-tutar { color: var(--ikinci); font-weight: 800; }
@media (max-width: 640px) { .yr2-od-tablo { font-size: 12.5px; } .yr2-od-tablo td, .yr2-od-tablo th { padding: 8px 6px; } }
/* Yöntem kısa olunca ilk sütun dar (2026.1465) */
.yr2-od-tablo th:nth-child(1), .yr2-od-tablo td:nth-child(1) { width: 24%; }
.yr2-od-tablo th:nth-child(3), .yr2-od-tablo td:nth-child(3) { width: 28%; }
/* Açıklama iki satırda biter (2026.1465) */
.yr2-od-ack span { font-size: 12.5px; line-height: 1.3; -webkit-line-clamp: 2; max-height: 2.6em; }
@media (max-width: 640px) { .yr2-od-ack span { font-size: 12px; } }
.yr2-od-tablo td { vertical-align: middle; }
.yr2-od-ack span b { font-weight: 700; color: var(--metin); }

/* Yönetim Raporu · ödeme ünlemi ve toplu onay (2026.1465) */
.yr2-od-toplu { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px;
  border-bottom: 1px solid var(--altin-soluk, #e6d8bc); background: #fffaf0; }
.yr2-od-toplu-acik { position: sticky; top: 0; z-index: 3; background: #fff6e6; box-shadow: 0 6px 12px -10px rgba(58, 42, 29, .5); justify-content: flex-start; }
.yr2-od-uyari { font-size: 13px; font-weight: 800; color: var(--hata, #B3261E); }
.yr2-od-uyari small { font-weight: 600; color: var(--ikinci); }
.yr2-od-hepsi { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--metin); white-space: nowrap; }
.yr2-od-hepsi input, .yr2-od-kutu input { width: 20px; height: 20px; accent-color: var(--vurgu, #8C2230); cursor: pointer; }
.yr2-od-ack-kutu { flex: 1 1 180px; min-width: 140px; min-height: 36px; }
.yr2-od-ad { flex: 0 1 160px; min-height: 36px; }
.yr2-od-toplu-tus { display: inline-flex; gap: 6px; margin-left: auto; }
.yr2-od-tablo th.yr2-od-kutu, .yr2-od-tablo td.yr2-od-kutu { width: 34px !important; padding-right: 0; text-align: center; vertical-align: middle; }
.yr2-od-secimli th:nth-child(2), .yr2-od-secimli td:nth-child(2) { width: 24%; }
.yr2-od-secimli th:nth-child(4), .yr2-od-secimli td:nth-child(4) { width: 28%; }
.yr2-od-secimli th:nth-child(3), .yr2-od-secimli td:nth-child(3) { width: auto; }
.yr2-od-unlem td { background: #fff3f1; }
.yr2-od-unlem-isaret { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 5px; border-radius: 50%; background: var(--hata, #B3261E);
  color: #fff; font-size: 11px; font-weight: 900; line-height: 1; vertical-align: 1px; }
.yr2-od-tikla { cursor: pointer; }
.yr2-od-tikla:hover td { background: #fbefe0; }
.yr2-od-onay { display: block; margin-top: 3px; font-style: normal; font-size: 11px; font-weight: 700; color: var(--basari, #2F6B4A);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* MİZAN ARA GRUPLARI (2026.1465 · kullanıcı: "mizanda da alt gruplarımız
   olsun · 3 kademeliyse 3'ü de görünsün"). 700.02 · 700.02.17 gibi
   kademe satırları; her kademe biraz daha içeriden başlar (--mz-d). */
.mz-ara { cursor: pointer; background: color-mix(in srgb, var(--defter-acilis) 55%, var(--defter-zemin)); }
.mz-ara:hover { filter: brightness(.985); }
.mz-ara:focus-visible { outline: 2px solid var(--altin-koyu); outline-offset: -2px; }
.mz-ara .mz-td-ad { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mz-ara .mz-td-para { font-weight: 700; color: var(--defter-koyu); }
.mz-ara-ad { font-weight: 700; color: var(--defter-koyu); }
.mz-ara .mz-ok { margin-right: 4px; }
.mz-tablo td.mz-td-ad[style*="--mz-d"] { padding-left: calc(22px + var(--mz-d) * 18px); }
.mz-ara td.mz-td-ad[style*="--mz-d:0"] { padding-left: 12px; }
@media (max-width: 719.98px) {
  .mz-tablo td.mz-td-ad[style*="--mz-d"] { padding-left: calc(8px + var(--mz-d) * 12px); }
}

/* SİPARİŞLER · MOBİL SIĞDIRMA (2026.1465 · kullanıcı: "firma ve son teklif
   tarihi altta olsun · puntoyu küçült, rakam, tutar ve metin taşmasın ·
   mal hizmet iki satır, uzadıkça punto küçülsün, sayfa sağa sola kaymasın"). */
.stk-f-tablo textarea.stk-mal { display: block; width: 100%; height: 42px; border: 0; padding: 4px 8px; margin: 0; resize: none; overflow: hidden;
  background: transparent; font: inherit; line-height: 1.2; color: inherit; outline: none; box-sizing: border-box; }
.stk-f-tablo textarea.stk-mal:disabled { -webkit-text-fill-color: currentColor; opacity: 1; }
.stk-f-yazi.stk-f-iki { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; line-height: 1.2;
  height: auto; max-height: 2.4em; padding: 0 8px; margin: 4px 0; overflow-wrap: anywhere; }
.stk-f-tablo td.mal { vertical-align: middle; }
.stk-pencere .stk-form, .stk-pencere .stk-kagit-mob, .stk-pencere .stk-f-tablo { max-width: 100%; min-width: 0; }
.stk-f-tablo td, .stk-f-tablo th { min-width: 0; overflow: hidden; }
.stk-f-tablo input { text-overflow: ellipsis; min-width: 0; }
@media (max-width: 900px) {
  .stk-pencere [data-stk-icerik] { overflow-x: hidden; }
  .stk-duzen > .stk-kagit-mob, .stk-duzen > .stk-kagit { grid-row: 1; }
  .stk-duzen-sag { grid-row: 2; }
  .stk-duzen-sag .stk-tk-secili { height: auto; min-height: 0; max-height: 170px; }
}
@media (max-width: 719.98px) {
  .stk-kagit-mob .kagit-baslik { font-size: 13px; padding: 8px 6px; }
  .stk-kagit-mob .stk-f-satir { font-size: 13px; }
  .stk-f-tablo { font-size: 12.5px; }
  .stk-f-tablo th { font-size: 9.5px; padding: 6px 2px; white-space: normal; line-height: 1.15; overflow-wrap: anywhere; letter-spacing: 0; }
  .stk-f-tablo td { height: 38px; }
  .stk-f-tablo input { height: 38px; padding: 0 4px; font-size: 12.5px; }
  .stk-f-tablo textarea.stk-mal { height: 38px; padding: 3px 5px; font-size: 12.5px; }
  .stk-f-tablo .no { width: 24px; font-size: 11px; }
  .stk-f-tablo .sil { width: 26px; }
  .stk-f-tablo .amb { width: 22%; }
  .stk-f-tablo .mik { width: 16%; }
  .stk-f-fiyatli th.fy { width: 17%; font-size: 9px; white-space: normal; }
  .stk-f-fiyatli th.fy small { font-size: 8px; }
  .stk-f-fiyatli th.amb { width: 14%; }
  .stk-f-fiyatli th.mik { width: 11%; }
  .stk-f-yazi { height: 38px; padding: 0 4px; font-size: 12px; }
  .stk-f-yazi.sag { font-size: 11.5px; }
  .stk-fy-satir { font-size: 9px; padding: 0 3px 3px; }
  .stk-f-top { font-size: 11px; padding: 0 3px; }
  .stk-f-top-ad { font-size: 10.5px; padding: 0 5px; }
  .stk-tutar { font-size: 12px; padding: 4px 6px; }
  .stk-kagit { font-size: 12px; }
  .stk-k-tablo th, .stk-k-tablo td { padding: 4px 4px; overflow-wrap: anywhere; }
  .stk-k-tablo th { font-size: 9.5px; }
  .stk-liste { font-size: 12.5px; }
  .stk-liste th { font-size: 10px; padding: 8px 6px; }
  .stk-liste td { padding: 8px 6px; }
}
.stk-f-tablo textarea.stk-mal { padding-top: 2px; padding-bottom: 0; }
@media (max-width: 719.98px) {
  .stk-pencere .pencere-dugmeler { flex-wrap: wrap; }
  .stk-pencere .pencere-dugmeler > * { flex: 1 1 auto; min-width: 0; white-space: normal; }
  .stk-f-tablo input { text-overflow: clip; }
}
@media (max-width: 719.98px) {
  /* Başlıklar kelime ortasından bölünmez; sığmayan ince puntoda iki satır. */
  .stk-f-tablo th { overflow-wrap: normal; word-break: normal; hyphens: none; font-size: 8.5px; padding: 5px 1px; }
  .stk-f-fiyatli th.fy { font-size: 8.5px; }
  .stk-f-tablo .stk-fy-satir { white-space: normal; overflow-wrap: anywhere; text-overflow: clip; }
  .stk-f-tablo .stk-f-top { white-space: nowrap; overflow: hidden; padding: 0 2px; }
  .stk-f-tablo .stk-f-top small { white-space: normal; font-size: 8.5px; line-height: 1.1; }
  .stk-f-tablo .stk-sv-tus { width: calc(100% - 4px); margin: 2px; height: auto; min-height: 30px; padding: 3px 2px; font-size: 10.5px; line-height: 1.15; white-space: normal; }
}
/* Telefonda 4 sütun (2026.1561): ambalaj miktarın altında. */
.stk-f-mob th.mik small { display: block; font-size: 7.5px; font-weight: 500; text-transform: none; color: #7A6A58; }
.stk-f-mob td.mik { vertical-align: middle; }
.stk-f-mob td.mik input { height: 22px; text-align: center; }
.stk-f-mob td.mik input.stk-mik-amb { height: 16px; font-size: 9.5px; color: #7A6A58; padding: 0 2px; }
.stk-f-mob td.mik .stk-f-yazi { height: 22px; justify-content: center; }
.stk-mik-amb-yazi { display: block; text-align: center; font-size: 9.5px; line-height: 14px; color: #7A6A58; white-space: nowrap; overflow: hidden; padding: 0 2px; }
.stk-f-mob .mik { width: 19%; }
.stk-f-mob.stk-f-fiyatli th.mik { width: 17%; }
.stk-f-mob.stk-f-fiyatli th.fy { width: 21%; }
.stk-kagit-mob .stk-f-satir b, .stk-kagit-mob .stk-f-satir input { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 719.98px) { .stk-kagit-mob .stk-f-satir b { font-size: 12.5px; line-height: 1.3; } }

/* SİPARİŞLER · TEK SÜTUN (2026.1465 · kullanıcı: "firmalar konudaki gibi
   Firma 1, Firma 2, küçük + ile eklensin · son teklif tarihi satırda ·
   WhatsApp küçük ikon, PDF ve yazdır kalksın · durum üstte tek satır"). */
.stk-tek { display: grid; gap: 10px; max-width: 900px; margin: 0 auto; }
.stk-tek > .stk-kagit-mob, .stk-tek > .stk-kagit { margin: 0; max-width: none; }
.stk-tek > .stk-f-alan { padding: 8px 12px; }
.stk-durum-satir { max-width: 900px; margin: 0 auto 8px; font-size: 12.5px; line-height: 1.5; color: var(--ikinci-metin, #7A6A58); }
.stk-durum-satir b { color: var(--metin, #3A2A1D); }
.stk-durum-satir .stk-rozet, .stk-durum-satir [class*="rozet"] { transform: scale(.85); transform-origin: left center; display: inline-flex; vertical-align: middle; }
.stk-sp-onay-satir { max-width: 900px; margin: 0 auto 10px; display: flex; flex-wrap: wrap; gap: 6px; }
.stk-sp-onay-satir textarea { flex: 1 1 100%; }
.stk-sp-iptal { max-width: 900px; margin: 10px auto 0; }
.stk-f-firma-satir b { display: flex; align-items: center; gap: 6px; min-width: 0; }
.stk-f-firma-ad { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.stk-f-gon { flex: none; font-size: 10.5px; font-weight: 500; color: var(--ikinci-metin, #7A6A58); white-space: nowrap; }
.stk-f-cikar { flex: none; border: 0; background: transparent; color: var(--vurgu, #8C2230); cursor: pointer; font-size: 14px; padding: 2px 4px; }
.stk-wp-ikon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%;
  border: 1px solid #25D366; background: #e9f9ef; color: #128C4A; cursor: pointer; padding: 0; }
.stk-wp-ikon:hover { background: #d4f4e0; }
.stk-wp-ust { margin-left: auto; margin-right: 6px; width: 34px; height: 34px; }
.stk-f-firma-ekle > div { flex: 1; min-width: 0; padding: 4px 8px; position: relative; }
.stk-f-arti { border: 1px dashed var(--altin, #C2A268); background: #fffaf0; color: var(--vurgu, #8C2230); border-radius: 8px; padding: 4px 10px;
  font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.stk-f-firma-ekle .stk-f-secici .sec-kutu { width: 100%; }
.stk-f-firma-ekle .stk-yf-suzen { top: calc(100% + 4px); left: 0; right: 0; }
.stk-f-tarih-satir .trh { flex: 1; display: flex; align-items: center; gap: 4px; padding: 4px 8px; min-width: 0; }
.stk-f-tarih-satir .trh .alan-kutu { flex: 1; min-width: 0; }
.stk-f-firma-satir > b { flex: 1 1 auto; min-width: 0; padding: 4px 6px 4px 10px; }
@media (max-width: 719.98px) { .stk-f-satir > span { width: 96px; font-size: 10.5px; padding: 8px 6px; } .stk-f-gon { font-size: 9.5px; } }
.stk-f-firma-satir > b { flex-wrap: wrap; row-gap: 2px; }
.stk-f-firma-ad { flex: 1 1 0; }
.stk-f-firma-satir .stk-wp-ikon, .stk-f-firma-satir .stk-f-cikar { order: 2; }
.stk-f-gon { order: 3; flex: 1 1 100%; white-space: normal; }
.stk-f-tarih-satir .alan-kutu, .stk-f-firma-ekle .sec-kutu { min-height: 34px; height: 34px; }
.stk-durum-satir .stk-dr { font-size: 11px; padding: 1px 7px; vertical-align: 1px; }

/* TEKLİF · KDV % (2026.1465): masaüstünde ayrı sütun, telefonda miktarın altında. */
.stk-f-tablo th.kdv { width: 7%; }
.stk-f-tablo td.kdv input, .stk-kdv-kutu { text-align: center; }
.stk-f-tablo td.kdv { background: #fffdf8; }
.stk-kdv-mob { display: flex; align-items: center; justify-content: center; gap: 2px; font-size: 8.5px; color: #7A6A58; line-height: 1; }
.stk-f-mob td.mik .stk-kdv-mob input.stk-kdv-kutu { width: 28px; height: 15px; padding: 0 2px; font-size: 9.5px; border: 1px solid #e6d8bc; border-radius: 4px; background: #fffdf8; }
.stk-kdv-kutu.stk-f-hatali { box-shadow: inset 0 0 0 1.5px var(--hata, #B3261E); }
.stk-fy-satir > span { display: block; overflow: hidden; text-overflow: ellipsis; }

/* X Faturaları (2026.1463.1 · göç 432) */
.xf-akis { margin: 0 0 18px; padding: 14px 16px; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--kose-kart); font-size: 14px; line-height: 1.5; }
.xf-akis ol { margin: 6px 0 6px 18px; padding: 0; }
.xf-akis small { color: var(--ikinci); }
.xf-uyari { margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: #FFF4D6; color: var(--metin-uyari); font-weight: 600; font-size: 14px; }
.xf-kart { margin-bottom: 18px; }
.xf-satir { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; gap: 10px 14px; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--ayirici); }
.xf-satir:last-child { border-bottom: 0; }
.xf-satir.xf-x { background: rgba(194, 162, 104, .08); }
.xf-ad { display: flex; flex-direction: column; min-width: 0; }
.xf-ad b { font-size: 15px; overflow-wrap: anywhere; }
.xf-ad small { font-size: 12.5px; color: var(--ikinci); }
.xf-onay { flex-direction: row; align-items: flex-start; gap: 10px; cursor: pointer; }
.xf-onay input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--vurgu); flex: none; }
.xf-onay span { display: flex; flex-direction: column; min-width: 0; }
.xf-sec { min-width: 0; }
.xf-satir .xf-sec[hidden] { display: block !important; visibility: hidden; }
.xf-kaydet { white-space: nowrap; }
.xf-bos, .xf-not { margin: 0 0 14px; padding: 12px 16px; font-size: 13px; color: var(--ikinci); }
@media (max-width: 720px) {
  .xf-satir { grid-template-columns: minmax(0, 1fr) auto; }
  .xf-satir .xf-sec { grid-column: 1 / -1; grid-row: 2; }
  .xf-satir .xf-sec[hidden] { display: none !important; }
}

/* Fiyat teklifi · başlıkta "Onaya gönder" (2026.1465 · 440) */
.stk-onay-ust { margin-left: auto; margin-right: 6px; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px;
  border: 1px solid var(--altin); border-radius: 999px; background: var(--yuzey); color: var(--vurgu); font-size: 13px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.stk-onay-ust:hover { background: #F6EEDD; }
.stk-onay-ust:disabled { opacity: .55; cursor: default; }

/* Fiyat listesi yükle · KDV dahil / hariç (2026.1465 · 441) */
.fl-kdv { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 6px 0 10px; padding: 10px 12px; border: 1px solid var(--altin); border-radius: 12px; background: var(--yuzey); font-size: 13.5px; }
.fl-kdv > span { font-weight: 700; color: var(--metin); }
.fl-kdv-sec { height: 34px; padding: 0 14px; border: 1px solid var(--altin); border-radius: 999px; background: #fff; color: var(--metin); font-weight: 600; cursor: pointer; }
.fl-kdv-secili { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.fl-oran { display: inline-flex; align-items: center; gap: 6px; }
.fl-oran input { width: 64px; height: 34px; text-align: center; }
.fl-kdv small { flex-basis: 100%; color: var(--ikinci); }
.fl-kdv-uyari { color: var(--hata) !important; font-weight: 600; }
.fl-tablo-kap { max-height: 46vh; overflow: auto; border: 1px solid var(--ayirici); border-radius: 10px; background: #fff; }
.fl-tablo { width: 100%; border-collapse: collapse; font-size: 13px; }
.fl-tablo th { position: sticky; top: 0; background: var(--oyuk); text-align: left; padding: 6px 8px; font-size: 11.5px; letter-spacing: .03em; color: var(--ikinci); }
.fl-tablo td { padding: 5px 8px; border-top: 1px solid var(--ayirici); }
.fl-tablo .fl-sag { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fl-oran-kalem { width: 56px; height: 28px; padding: 0 4px; text-align: center; font-size: 13px; }

/* Yönetim Raporu · sipariş / teklif notu (2026.1465) */
.yr2-sip-not { margin-top: 12px; padding: 10px 14px; border: 1px solid var(--altin); border-left: 4px solid var(--altin); border-radius: 10px; background: #FFF9EC; }
.yr2-sip-not b { display: block; font-size: 12.5px; letter-spacing: .03em; color: var(--ikinci); margin-bottom: 4px; }
.yr2-sip-not p { margin: 0; font-size: 14px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--metin); }
/* Teklif notu kaydedildi işareti (2026.1465 · 442) */
.stk-not-durum { margin-left: 6px; font-size: 11.5px; font-weight: 600; color: var(--basari); text-transform: none; letter-spacing: 0; }

/* ---- Yönetim Raporu kontrolü · Kontroller → Aylık (2026.1465 · 443) ---- */
.yk-ust { display: flex; align-items: center; gap: 12px; margin: 4px 0 10px; font-size: 17px; }
.yk-ust b { min-width: 120px; text-align: center; font-family: var(--yazi-baslik); color: var(--vurgu); }
.yk-ozet { margin: 0 0 12px; font-size: 13.5px; color: var(--ikinci); }
.yk-liste { display: flex; flex-direction: column; gap: 8px; }
.yk-satir { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px 14px; align-items: center; padding: 10px 14px;
  background: var(--yuzey); border: 1px solid var(--altin); border-left: 4px solid var(--altin); border-radius: 12px; }
.yk-tamam { border-left-color: var(--basari); }
.yk-uyari { border-left-color: var(--hata); }
.yk-bilgi { border-left-color: #D9A400; }
.yk-gri { opacity: .75; }
.yk-tarih { display: flex; flex-direction: column; line-height: 1.15; }
.yk-tarih b { font-size: 16px; } .yk-tarih small { font-size: 11.5px; color: var(--ikinci); }
.yk-orta { display: flex; flex-direction: column; min-width: 0; }
.yk-hal { font-weight: 700; font-size: 14px; }
.yk-tamam .yk-hal { color: var(--basari); } .yk-uyari .yk-hal { color: var(--hata); } .yk-bilgi .yk-hal { color: #8A6A00; }
.yk-orta small { font-size: 12.5px; color: var(--ikinci); overflow-wrap: anywhere; }
.yk-eylem { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.yk-bos { padding: 14px; color: var(--ikinci); }
@media (max-width: 640px) {
  .yk-satir { grid-template-columns: 54px minmax(0, 1fr); }
  .yk-eylem { grid-column: 1 / -1; justify-content: stretch; }
  .yk-eylem button { flex: 1; }
}

/* Yönetim Raporu · sağda kontrol listesi (2026.1465 · 443) */
.sayfa-icerik > [data-govde]:has(> .yr2-duzen) { max-width: 1240px; }
.yr2-duzen { display: grid; grid-template-columns: minmax(0, 720px) minmax(360px, 1fr); gap: 20px; align-items: start; }
.yr2-yan { position: sticky; top: 16px; }
.yr2-yan-bas { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 6px 4px 2px; }
.yr2-yan-bas b { font-family: var(--yazi-baslik); font-size: 16px; color: var(--vurgu); }
.yr2-yan-bas small { font-size: 12px; color: var(--ikinci); }
.yr2-yan-bos { margin: 10px 4px; font-size: 13px; color: var(--ikinci); }
.yr2-yan-gun { display: flex; flex-direction: column; align-items: flex-start; border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.yr2-yan-cevap { font-size: 13px; font-weight: 700; text-align: center; color: var(--metin); }
.yr2-yan-eksik { color: var(--hata); }
@media (max-width: 1180px) {
  .yr2-duzen { grid-template-columns: minmax(0, 1fr); }
  .yr2-duzen > .yr2, .yr2-yan { max-width: 720px; width: 100%; margin: 0 auto; }
  .yr2-yan { position: static; }
}
@media print { .yr2-yan { display: none !important; } .yr2-duzen { display: block; } }
.yr2-yan-tablo .gk-tik-mini { min-width: 0; overflow: hidden; }
.yr2-yan-tablo .gk-tik-mini .gk-tik-yazi { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Kâr Zarar Tablosu · Basitleştir'in gizlediği hesaplar (2026.1465 · 445). */
.kzt-aciklama { margin: 0 0 16px; font-size: 14px; line-height: 1.5; color: var(--ikinci); }
.kzt-ekle { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; }
.kzt-secici { flex: 1; min-width: 0; }
.kzt-kart { border: 1px solid var(--kenar); border-radius: var(--kose-kart); background: var(--yuzey); margin-bottom: 16px; overflow: hidden; }
.kzt-bas { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--ayirici); }
.kzt-bas b { font-size: 16px; overflow-wrap: anywhere; }
.kzt-s { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 9px 16px; border-bottom: 1px solid var(--ayirici); font-size: 14px; }
.kzt-s input { width: 18px; height: 18px; accent-color: var(--vurgu); margin: 0; }
.kzt-ad { min-width: 0; }
.kzt-ad span { overflow-wrap: anywhere; }
.kzt-ad small { display: block; color: var(--ikinci); font-size: 12.5px; }
.kzt-t { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.kzt-oner { background: rgba(194, 162, 104, .10); }
.kzt-dis { opacity: .7; }
.kzt-yok { text-align: center; color: var(--ikinci); }
.kzt-rozet { font-size: 11.5px; padding: 2px 8px; border-radius: 99px; background: #EFE3C9; color: #6B4B1E; margin-left: 6px; white-space: nowrap; }
.kzt-alt { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 16px; font-size: 14px; flex-wrap: wrap; }
.kzt-alt small { color: var(--ikinci); }
.kzt-tamam { color: #2F6B3A; font-weight: 700; }
.kzt-fark { color: var(--metin-uyari); font-weight: 700; }
.kzt-bos { margin: 0 0 14px; padding: 12px 16px; font-size: 13px; color: var(--ikinci); }
.kzt-s .dugme-ikincil { justify-self: end; }

/* Kâr Zarar Tablosu · bölüm kartları (2026.1465 · "metinler okunmuyor,
   çerçeveler daha iyi olsun"): açıklama düz zeminde, resmin üstünde değil. */
.kzt-bolum { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--kose-kart); box-shadow: var(--golge); margin: 0 0 22px; overflow: hidden; }
.kzt-bolum-bas { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-bottom: 1px solid var(--ayirici); background: var(--kart-zemin, var(--yuzey)); }
.kzt-bolum-bas h3 { margin: 2px 0 4px; font-family: var(--yazi-baslik); font-size: 19px; color: var(--defter-koyu); }
.kzt-bolum-bas p { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--metin); opacity: .8; }
.kzt-no { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--vurgu); color: #fff; font-weight: 700; font-size: 14px; }
.kzt-bolum-ic { padding: 16px 18px 4px; background: var(--zemin); }
.kzt-bolum-ic .kzt-kart { background: var(--yuzey); }
.kzt-bolum-ic .kzt-bos { padding: 4px 2px 14px; }
.kzt-s-bek { grid-template-columns: 22px minmax(0, 1fr) auto; }
@media (max-width: 720px) {
  .kzt-bolum-bas, .kzt-bolum-ic { padding-left: 14px; padding-right: 14px; }
}
/* Sayım uyarısı (2026.1465) · mizan satırının altında, yumuşak sarı. */
.dr-sayim-uyari { color: var(--metin); background: #FFF6DE; border: 1px solid #EBD39A; font-weight: 500; line-height: 1.45; }
.dr-sayim-uyari b { color: #8A5A00; }

/* Ay kapanışı (2026.1465 · 448) · üst şerit, alt bölüm, ön izleme fişi. */
.dr-kapanislar { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin: 0 0 14px; }
.dr-kap-baslik { align-self: center; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--ikinci); margin-right: 4px; }
.dr-kap { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 8px 12px; border: 1px solid var(--kenar); border-radius: 12px; background: var(--yuzey); cursor: pointer; text-align: left; font: inherit; color: var(--metin); }
.dr-kap b { font-size: 14px; }
.dr-kap small { font-size: 12px; color: var(--ikinci); }
.dr-kap-durum { font-size: 12px; font-weight: 600; color: #2F6B3A; }
.dr-kap-uyari { background: #FFF6DE; border-color: #EBD39A; }
.dr-kap-uyari .dr-kap-durum { color: #8A5A00; }
.dr-kapanis { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin: 16px 0 0; padding: 14px 16px; border: 1px solid var(--kenar); border-radius: var(--kose-kart); background: var(--yuzey); }
.dr-kapanis b { display: block; font-size: 15px; }
.dr-kapanis small { color: var(--ikinci); font-size: 13px; }
.dr-kapanis-uyari { background: #FFF6DE; border-color: #EBD39A; }
.dr-kapanis-tus, .dr-fis-tus { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dr-fis-tus { margin-top: 14px; }
.dr-fis-tus-sol { justify-content: flex-start; }
.dr-kapanis-not { margin: 14px 0 0; font-size: 13px; color: var(--ikinci); }
.dr-fis { max-height: 50vh; overflow: auto; border: 1px solid var(--kenar); border-radius: 10px; }
.dr-fis table { width: 100%; border-collapse: collapse; font-size: 13px; }
.dr-fis th, .dr-fis td { padding: 6px 10px; border-bottom: 1px solid var(--ayirici); text-align: right; white-space: nowrap; }
.dr-fis th:first-child, .dr-fis td:first-child { text-align: left; white-space: normal; }
.dr-fis td small { color: var(--ikinci); }
.dr-fis thead th { position: sticky; top: 0; background: var(--yuzey); font-weight: 700; }
.dr-fis tfoot td { font-weight: 700; background: var(--zemin); }
.dr-fis-ozet { margin: 0 0 10px; font-size: 14px; }
.dr-fis-uyari { margin: 10px 0 0; padding: 8px 12px; border-radius: 10px; background: #FFF6DE; border: 1px solid #EBD39A; font-size: 13px; }
.dr-dagit-alan { display: grid; grid-template-columns: 1fr 160px; gap: 10px; margin: 0 0 12px; }
.dr-dagit-alan label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--ikinci); }
@media (max-width: 560px) { .dr-dagit-alan { grid-template-columns: 1fr; } }
@media print { .dr-kapanislar, .dr-kapanis, .dr-kapanis-not { display: none; } }
/* Ortak Hesapları (448) · oran kutusu. */
.oh-s { grid-template-columns: 22px minmax(0, 1fr) 120px; }
.oh-oran { display: flex; align-items: center; gap: 6px; }
.oh-oran input { width: 80px; text-align: right; }

/* Kayıt penceresi · bütün ekranlarda aynı (2026.1465). */
.kp-pencere .pencere-govde { display: flex; flex-direction: column; gap: 10px; }
.kp-kunye { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 13px; color: var(--ikinci); }
.kp-rz { padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 600; background: #EFE3C9; color: #6B4B1E; }
.kp-rz-b { background: #E3EEF7; color: #24507A; }
.kp-rz-f { background: #EDE7F6; color: #4A3A7A; }
.kp-rz-g { background: #E6F2E8; color: #2F6B3A; }
.kp-ack { font-size: 16px; font-weight: 600; color: var(--metin); overflow-wrap: anywhere; }
.kp-bac { background: var(--zemin); border-radius: 12px; padding: 4px 12px; }
.kp-b { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; font-size: 13.5px; border-bottom: 1px solid var(--ayirici); }
.kp-b:last-child { border-bottom: 0; }
.kp-b span { min-width: 0; overflow-wrap: anywhere; }
.kp-b b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.kp-bekliyor { display: flex; align-items: center; gap: 8px; padding: 12px; color: var(--ikinci); }
.kp-fatura-tus { align-self: stretch; text-align: left; padding: 9px 12px; border: 1px dashed var(--kenar); border-radius: 10px; background: transparent; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--defter-koyu); cursor: pointer; }
.kp-fatura { max-height: 55vh; overflow: auto; border: 1px solid var(--kenar); border-radius: 10px; }
.kp-tus { display: flex; gap: 8px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.kp-bosluk { flex: 1; }
.mz-hrk-acilir { cursor: pointer; }
.mz-hrk-acilir:hover td { background: var(--defter-hover, rgba(194, 162, 104, .08)); }

/* ---- Hesap defteri · 7 SABİT SÜTUN (2026.1466 · hareketler.js · defter-sutun.js) ----
   Kullanıcı: "tablo, sütun genişliği sabit olsun değişmesin; sığmayanlar
   alt satıra puntosu küçültülerek devam etsin, asla değişmesin".
   Genişlikler colgroup'ta (8 · 17 · 17 · 25 · 11 · 11 · 11 %); içerik
   sütunu genişletemez, yazı alt satıra geçer. Telefonda kart görünümü
   değişmedi (td'ler orada gizli). */
@media (min-width: 900px) {
  .hd-defter .tablo.hd-sabit { table-layout: fixed; width: 100%; min-width: 0; }
  .hd-defter .tablo.hd-sabit thead th,
  .hd-defter .tablo.hd-sabit tbody td {
    white-space: normal;
    overflow-wrap: anywhere;
    padding: 6px 8px;
    position: static;
    min-width: 0;
  }
  .hd-defter .tablo.hd-sabit thead th { position: sticky; top: 0; }
  .hd-defter .tablo.hd-sabit thead th.hd-c-bilgi,
  .hd-defter .tablo.hd-sabit tbody td.hd-b { text-align: left; }
  .hd-defter .tablo.hd-sabit td.hd-b { font-size: 13px; line-height: 1.3; }
  .hd-defter .tablo.hd-sabit td.hd-b-kucuk { font-size: 11.5px; line-height: 1.25; }
  .hd-defter .tablo.hd-sabit td.hd-b-kucuk2 { font-size: 10.5px; line-height: 1.2; }
  .hd-defter .tablo.hd-sabit td.hd-b .hd-yon { margin-right: 4px; vertical-align: -1px; }
  .hd-defter .tablo.hd-sabit td.tablo-para,
  .hd-defter .tablo.hd-sabit td.tablo-tutar { font-size: 13px; }
}
@media (min-width: 900px) {
  .hd-defter .tablo.hd-sabit td.hd-c-tarih { text-align: center; line-height: 1.15; }
  .hd-defter .tablo.hd-sabit td.hd-c-tarih .hd-gun { display: block; font-size: 13px; font-weight: 600; }
  .hd-defter .tablo.hd-sabit td.hd-c-tarih .hd-yil { display: block; font-size: 10.5px; opacity: .7; }
  .hd-defter .tablo.hd-sabit td.hd-c-tarih .rozet { display: inline-block; margin-top: 2px; font-size: 9.5px; padding: 0 5px; }
}
@media (min-width: 900px) {
  /* Fatura no tam ve tek satırda: küçük punto, sığmazsa yine de kırılır (2026.1466). */
  .hd-defter .tablo.hd-sabit td.hd-b-belge { font-size: 11px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; line-height: 1.25; }
}

/* ---- Dashboard · telefon · yeni görünüm (2026.1466 · panel.js) ----
   Kullanıcı: "çok basit duruyor, hayran bırakmıyor" · "temadan çok çıkma".
   Selam, vurgu renginde desenli ana kart, 2×2 para kartları, dikey satış grafiği.
   Masaüstünde hiçbiri görünmez. */
.pn-mobil { display: none; }
@media (max-width: 699.98px) {
  body[data-sayfa="panel"] .sayfa > .sayfa-kusak { display: none; }
  .pn-mobil { display: block; }
  .pn-liste, .pn-liste-baslik { display: none !important; }
  .pn-sutunlar > .pn-sutun:first-child { display: none; }

  .pn-selam { padding: 6px 2px 12px; }
  .pn-selam small { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--altin-koyu); font-weight: 600; }
  .pn-selam b { display: block; margin-top: 2px; font-family: var(--yazi-baslik); font-size: 24px; line-height: 1.2; font-weight: 700; color: var(--metin); }

  .pn-ana {
    position: relative; overflow: hidden; margin: 0 0 calc(var(--bosluk) * 2.5); padding: 18px 18px 14px;
    border-radius: 22px; color: #fbefd9; border: 1px solid #c2a268;
    background: linear-gradient(160deg, rgba(143, 45, 34, .93), rgba(110, 34, 25, .95) 60%, rgba(88, 27, 20, .97)), var(--ust-desen, none);
    background-size: auto, 140px;
    box-shadow: 0 16px 30px -16px rgba(94, 21, 32, .75), inset 0 0 0 4px rgba(194, 162, 104, .18);
  }
  .pn-ana-cizgi { position: absolute; right: 18px; top: 48px; }
  .pn-ana-ust { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: #e4c890; font-weight: 600; }
  .pn-ana-tutar { margin: 6px 0 2px; font-size: 32px; font-weight: 800; letter-spacing: -.02em; color: #fff; font-variant-numeric: tabular-nums; }
  .pn-ana-tutar small { font-size: 18px; font-weight: 600; opacity: .85; }
  .pn-ana-deg { font-size: 12.5px; color: #f3dfbf; }
  .pn-ana .pn-rz { background: rgba(228, 200, 144, .22); color: #f6e2b8; border: 1px solid rgba(228, 200, 144, .45); }
  .pn-ana-ayr { height: 1px; margin: 12px 0 10px; background: linear-gradient(90deg, transparent, rgba(228, 200, 144, .6), transparent); }
  .pn-ana-alt { display: flex; }
  .pn-ana-alt > * { flex: 1; text-align: left; }
  .pn-ana-alt > * + * { border-left: 1px solid rgba(228, 200, 144, .35); padding-left: 14px; }
  .pn-ana-alt button { border: 0; background: none; color: inherit; font: inherit; padding-top: 0; padding-bottom: 0; padding-right: 0; cursor: pointer; }
  .pn-ana-alt small { display: block; font-size: 11px; color: #e4c890; letter-spacing: .04em; }
  .pn-ana-alt b { display: block; margin-top: 2px; font-size: 16px; color: #fff; }

  .pn-rz { display: inline-block; margin-left: 4px; padding: 2px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
  .pn-rz-art { background: #e4f1e6; color: #1f6b3e; }
  .pn-rz-eks { background: #f8e3e1; color: #9a2b2b; }

  .pn-mbaslik { margin: 2px 4px 8px; font: 700 10.5px/1 var(--yazi-baslik); letter-spacing: .12em; text-transform: uppercase; color: var(--altin-koyu); }
  .pn-izg { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: calc(var(--bosluk) * 2.5); }
  .pn-k {
    display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; padding: 12px 13px;
    border: var(--kart-cerceve); border-radius: 18px; background-color: var(--kart-zemin); background-image: var(--kart-desen);
    box-shadow: var(--kart-golge); font: inherit; color: inherit; text-align: left; cursor: pointer;
  }
  .pn-k-s {
    display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px;
    background: linear-gradient(180deg, #FFFCF4, #EEDFC2); border: 1px solid var(--altin-soluk);
    box-shadow: 0 2px 0 rgba(201, 176, 133, .45), inset 0 1px 0 #fff;
  }
  .pn-k small { margin-top: 9px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--altin-koyu); font-weight: 700; }
  .pn-k b { margin-top: 3px; font-size: 18px; font-weight: 800; letter-spacing: -.01em; font-variant-numeric: tabular-nums; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .pn-k-alt { margin-top: 4px; font-size: 11.5px; color: var(--ikinci); line-height: 1.5; }

  .pn-satis {
    margin-bottom: calc(var(--bosluk) * 2.5); padding: 12px 14px; border: var(--kart-cerceve); border-radius: 18px;
    background-color: var(--kart-zemin); background-image: var(--kart-desen); box-shadow: var(--kart-golge);
  }
  .pn-satis-bas { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
  .pn-satis-bas b { font-family: var(--yazi-baslik); font-size: 16px; }
  .pn-satis-bas span { font-weight: 700; font-size: 13px; font-variant-numeric: tabular-nums; color: var(--ikinci); }
  .pn-satis-cubuk { display: flex; gap: 8px; height: 92px; margin-top: 10px; }
  .pn-satis-cubuk > div { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 4px; }
  .pn-satis-cubuk i { display: block; border-radius: 7px 7px 3px 3px; background: linear-gradient(180deg, #dcc39a, #b8955f); }
  .pn-satis-cubuk i.pn-bugun { background: linear-gradient(180deg, #a8303f, #8C2230); }
  .pn-satis-cubuk span { font-size: 10px; color: var(--ikinci); text-align: center; }
}

/* ---- Dashboard · telefon · hafif 3B (2026.1466 · kullanıcı: "hızlı
   işlemlerdeki ikonlar 3D olsun · kartların hepsi hafif 3D olsun · satış
   çubukları daha belirgin"). Üstten ışık alan degrade, altta koyu kenar,
   katmanlı gölge; simgeler kabarık kutuda, kendi gölgeleriyle. ---- */
@media (max-width: 699.98px) {
  .pn-hizli-kart .pn-hizli-simge {
    width: 58px; height: 58px; border-radius: 18px;
    background: linear-gradient(180deg, #FFFDF7 0%, #F6EBD4 55%, #E8D6B1 100%);
    border: 1px solid rgba(168, 133, 74, .55);
    box-shadow: 0 1px 0 #fff inset, 0 -3px 0 rgba(168, 133, 74, .28) inset, 0 4px 0 #D9C29A, 0 9px 14px -6px rgba(58, 42, 29, .45);
    transform: translateY(-2px);
  }
  .pn-hizli-kart .pn-hizli-simge .simge,
  .pn-hizli-kart .pn-hizli-simge svg { width: 28px; height: 28px; filter: drop-shadow(0 2px 1.5px rgba(58, 42, 29, .35)); }
  .pn-hizli-kart .pn-hizli-tus:active .pn-hizli-simge { transform: translateY(1px); box-shadow: 0 1px 0 #fff inset, 0 1px 0 #D9C29A, 0 3px 6px -3px rgba(58, 42, 29, .4); }

  .pn-hizli-kart, .pn-k, .pn-satis, .pn-sutun {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, .75), rgba(255, 255, 255, 0) 45%), var(--kart-desen, none);
    box-shadow: 0 1px 0 #fff inset, 0 -2px 0 rgba(168, 133, 74, .18) inset, 0 3px 0 rgba(217, 194, 154, .9), 0 12px 22px -12px rgba(58, 42, 29, .45);
  }
  .pn-k:active { transform: translateY(2px); box-shadow: 0 1px 0 #fff inset, 0 1px 0 rgba(217, 194, 154, .9), 0 6px 12px -8px rgba(58, 42, 29, .4); }
  .pn-k-s {
    width: 38px; height: 38px; border-radius: 12px;
    background: linear-gradient(180deg, #FFFDF7, #EEDFC2);
    box-shadow: 0 1px 0 #fff inset, 0 2px 0 #D9C29A, 0 5px 8px -4px rgba(58, 42, 29, .4);
  }
  .pn-k-s svg { filter: drop-shadow(0 1.5px 1px rgba(58, 42, 29, .3)); }
  .pn-ana { box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 -3px 0 rgba(0, 0, 0, .18) inset, 0 4px 0 #5e1520, 0 18px 30px -14px rgba(94, 21, 32, .8), inset 0 0 0 4px rgba(194, 162, 104, .18); }

  .pn-satis-cubuk { height: 118px; gap: 7px; }
  .pn-satis-cubuk em { font-style: normal; font-size: 9.5px; font-weight: 700; color: var(--ikinci); text-align: center; white-space: nowrap; }
  .pn-satis-cubuk i { background: linear-gradient(180deg, #E3C897, #A8854A); box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 3px 6px -3px rgba(58, 42, 29, .45); }
  .pn-satis-cubuk i.pn-bugun { background: linear-gradient(180deg, #B83A4B, #7A1C29); }
}

/* ---- Üst kart · telefonda tek düzen (2026.1466 · rapor-serit.js · mobilDuzen) ----
   Kullanıcı: "her sayfada aynı görünsün · kullanışlı, 3D, şık, zarif, sade"
   → A (kompakt). Üst satır: ana seçici/arama + 🔍 + ⋯; altında sekmeler,
   ek kutular, tek satır özet (tutarlar bölünmez). */
@media (max-width: 699.98px) {
  /* Dış şerit kabı çerçevesiz; kart alttaki kartlarla aynı hizada (16 px). */
  body .sayfa > .sayfa-kusak-serit:has(> .rs-mobil), body .sayfa-kusak-serit:has(> .rs-mobil) {
    margin: 10px 16px 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
    background: none !important; box-shadow: none !important; overflow: visible !important;
  }
  .rs-serit.rs-mobil, .na-serit.rs-mobil, .stk-serit.rs-mobil {
    display: flex; flex-direction: column; align-items: stretch; gap: 8px;
    padding: 10px; margin: 0 0 6px; border-radius: 18px; border: 1px solid var(--altin); box-sizing: border-box; width: 100%; max-width: 100%;
    background: linear-gradient(180deg, rgba(255, 255, 255, .8), rgba(255, 255, 255, 0) 50%), var(--yuzey);
    box-shadow: 0 1px 0 #fff inset, 0 -2px 0 rgba(168, 133, 74, .16) inset, 0 3px 0 #dcc59c, 0 10px 18px -12px rgba(58, 42, 29, .5);
  }
  .rs-mobil .rsm-ust { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .rs-mobil .rsm-ust > :first-child { flex: 1; min-width: 0; max-width: none; width: auto; }
  .rs-mobil .rsm-ust > .rs-tus:first-child { flex: 0 1 auto; }
  .rs-mobil .rsm-ust .sec, .rs-mobil .rsm-ust .arama, .rs-mobil .rsm-ara .arama { width: 100%; max-width: none; margin: 0; }
  .rs-mobil .rsm-ib {
    flex: none; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
    font-size: 20px; font-weight: 800; line-height: 1; color: var(--vurgu); cursor: pointer;
    background: linear-gradient(180deg, #fffdf7, #efe2c6); border: 1px solid rgba(168, 133, 74, .5);
    box-shadow: 0 1px 0 #fff inset, 0 2px 0 #d6bf95, 0 5px 8px -5px rgba(58, 42, 29, .45);
  }
  .rs-mobil .rsm-ib:active { transform: translateY(1px); box-shadow: 0 1px 0 #fff inset, 0 1px 0 #d6bf95; }
  .rs-mobil .rsm-ib-acik { background: rgba(95, 68, 0, .10); }
  .rs-mobil .rsm-ara[hidden], .rs-mobil .rsm-gizli { display: none !important; }
  .rs-mobil .rsm-ust-seg > :first-child { flex: 1; min-width: 0; }
  .rs-mobil .rsm-ust > .rs-tus:first-child { flex: 1; min-width: 0; justify-content: center; }
  .rs-mobil .rsm-ust-ek > :first-child { flex: 1; min-width: 0; }
  .rs-mobil .rsm-ust-ek > .rs-tus { flex: none; height: 42px; }
  .rs-mobil .rsm-seg > *, .rs-mobil .rsm-ust-seg > :first-child { display: flex; width: 100%; padding: 3px; gap: 2px; border-radius: 12px; background: rgba(95, 68, 0, .08); }
  .rs-mobil .rsm-seg > * > button, .rs-mobil .rsm-ust-seg > :first-child > button {
    flex: 1; min-width: 0; height: 34px; padding: 0 6px; justify-content: center; border: 0; border-radius: 9px;
    background: transparent; box-shadow: none; font-size: 12.5px; font-weight: 600; color: var(--ikinci);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .rs-mobil .rsm-seg > * > button[aria-pressed="true"], .rs-mobil .rsm-ust-seg > :first-child > button[aria-pressed="true"], .rs-mobil .rsm-seg > * > button[aria-selected="true"], .rs-mobil .rsm-ust-seg > :first-child > button[aria-selected="true"] { background: #fffdf8; color: var(--vurgu); box-shadow: 0 1px 0 #fff inset, 0 2px 4px -1px rgba(58, 42, 29, .25); }
  .rs-mobil .rsm-seg-kaydir > * { overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
  .rs-mobil .rsm-seg-kaydir > *::-webkit-scrollbar { display: none; }
  .rs-mobil .rsm-seg-kaydir > * > button { flex: none; padding: 0 12px; }
  .rs-mobil .rsm-birincil { flex: none; height: 42px; min-height: 42px; margin: 0; padding: 0 14px; border-radius: 12px; white-space: nowrap; font-size: 13.5px; }
  .rs-mobil .rsm-ust > .rsm-birincil:first-child { flex: 1; justify-content: center; }
  .stk-serit.rs-mobil { margin: 0 0 14px; }
  .rs-mobil .rsm-seg, .rs-mobil .rsm-seg > * { min-width: 0; max-width: 100%; }
  .rs-mobil .rsm-ust-seg > :first-child, .rs-mobil .rsm-seg:not(.rsm-seg-kaydir) > * { -webkit-mask-image: none; mask-image: none; overflow: hidden; }
  .rs-mobil .rsm-ust-seg > :first-child > button, .rs-mobil .rsm-seg:not(.rsm-seg-kaydir) > * > button { flex: 1 1 0 !important; }
  .rs-mobil .rsm-seg-kaydir > * { -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .rs-mobil .rsm-ek { display: flex; flex-wrap: wrap; gap: 8px; }
  .rs-mobil .rsm-ek > * { flex: 1 1 140px; min-width: 0; }
  .rs-mobil .rsm-ozet { padding: 0 2px; }
  .rs-mobil .rsm-ozet .rs-ozet { display: block; margin: 0; max-width: none; font-size: 12.5px; line-height: 1.45; color: var(--ikinci); white-space: normal; text-align: left; }
  .rs-mobil .rsm-ozet .rs-ozet b, .rs-mobil .rsm-tutar { white-space: nowrap; font-variant-numeric: tabular-nums; }
  .rs-mobil .rsm-ozet .rs-ozet b { color: var(--metin); font-size: 14px; }

  .rsm-perde { position: fixed; inset: 0; z-index: 60; background: rgba(40, 20, 10, .28); }
  .rsm-menu {
    position: fixed; left: 12px; right: 12px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); z-index: 61;
    max-height: calc(100dvh - 190px); overflow-y: auto; padding: 6px 0;
    background: #fbf7ef; border: 1px solid #d9c9ad; border-radius: 22px;
    box-shadow: 0 16px 40px rgba(70, 20, 25, .24), 0 3px 10px rgba(70, 20, 25, .10);
  }
  .rsm-satir { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 16px; border: 0; background: none; font: inherit; font-size: 15px; color: var(--metin); text-align: left; cursor: pointer; }
  .rsm-satir + .rsm-satir { border-top: 1px solid #eadfcb; }
  .rsm-satir:disabled { opacity: .45; }
  .rsm-simge { width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 10px; background: #f3ead9; border: 1px solid #e1d2b5; color: var(--vurgu); }
  .rsm-simge svg { width: 18px; height: 18px; }
  .rs-mobil .rsm-tek { color: var(--vurgu); }
  .rs-mobil .rsm-tek svg { width: 20px; height: 20px; }
  .rsm-secili { margin-left: auto; color: var(--vurgu); font-weight: 800; }

/* BAYRAK TELEFONDA GÖRÜNÜR (2026.1465.17 · kullanıcı: "telefondan günlük
   işlemlerde bayraklar gözükmüyor"). Masaüstünde soluk bayrak üstüne
   gelince koyulaşıyor; dokunmatik ekranda üstüne gelme yok, soluk kalıyordu.
   Dar ekranda da tarih · fiş · bayrak tek satıra sığmayıp hücreden
   taşıyordu: satır sarar, bayrak küçülür. */
@media (hover: none), (max-width: 560px) {
  .gk-bayrak { color: var(--ikinci); opacity: 1; }
  .gk-bayrak-acik { color: var(--hata); }
}
@media (max-width: 560px) {
  .mz-hrk-ust { flex-wrap: wrap; }
  .gk-bayrak { width: 20px; height: 20px; margin-left: 2px; }
  .gk-bayrak svg { width: 13px; height: 13px; }
}

/* KONTROL LİSTESİ SIĞAR (2026.1465.18 · kullanıcı: Günlük İşlemler sağdaki
   kontrol listesi "bozulmuş"). Sütunlar sabit piksel (62 · 140 · 140 · 44)
   olduğu için dar yan sütunda Açıklama sıfıra iniyor, tablo kartın dışına
   taşıyordu. Kutular artık tablonun yüzdesi: tablo kartı hiç aşmaz. Çok
   darda Açıklama gizlenir (açıklama yine kutudan/panelden okunur). */
.gk-yan-yeni { container-type: inline-size; }
.gk-liste th:nth-child(1) { width: 54px; }
.gk-liste th:nth-child(2), .gk-liste th:nth-child(3) { width: 30%; }
.gk-liste th:nth-child(4) { width: auto; }
.gk-liste th:nth-child(5) { width: 38px; }
.gk-liste th { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gk-liste td { min-width: 0; }
.gk-liste .gk-tik-mini { max-width: 100%; box-sizing: border-box; }
.gk-liste .gk-tik-mini .gk-tik-yazi { min-width: 0; overflow: hidden; }
@container (max-width: 400px) {
  .gk-liste th:nth-child(4), .gk-liste td.gk-ack { display: none; }
  .gk-liste th:nth-child(2), .gk-liste th:nth-child(3) { width: auto; }
}

/* ELLE KAYIT · Samba sütunu yazılır (2026.1466.2 · firmaya özel). */
.gsy-samba-gir { background: #FFF9EC; border-bottom: 1px dashed var(--altin, #C2A268); }
.gsy-samba-gir:focus { background: #fff; }

/* ===== TELEFON · AKTARIM ÖZET KARTI (2026.1466) =====
   Fatura · Satış · Kredi Kartı · Banka aktarımlarının üst özeti (.fatura-oz)
   öteki sayfaların üst kartıyla aynı: çerçevesiz kap, 16 px kenar, tek 3B kart,
   alt satır sade (not solda, Geçmiş Kayıtlar küçük düğme sağda). */
@media (max-width: 699.98px) {
  body .sayfa-kusak-serit:has(> .fatura-oz) {
    margin: 10px 16px 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
    background: none !important; box-shadow: none !important; overflow: visible !important;
  }
  .sayfa-kusak-serit > .fatura-oz {
    box-sizing: border-box; width: 100%; margin: 0 0 6px; overflow: hidden; border-radius: 18px; border: 1px solid var(--altin);
    background: linear-gradient(180deg, rgba(255, 255, 255, .8), rgba(255, 255, 255, 0) 50%), var(--yuzey);
    box-shadow: 0 1px 0 #fff inset, 0 3px 0 #dcc59c, 0 10px 18px -12px rgba(58, 42, 29, .5);
  }
  .sayfa-kusak-serit > .fatura-oz { height: auto !important; min-height: 0 !important; }
  .sayfa-kusak-serit > .fatura-oz::after { display: none !important; }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-alt { flex: none !important; height: auto !important; min-height: 0 !important; }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-notlar { padding: 0 !important; }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-sayi { white-space: nowrap; font-variant-numeric: tabular-nums; }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-alt {
    display: flex; align-items: center; gap: 8px; min-height: 0; padding: 8px 10px 10px; margin: 0;
    background: none; border-top: 1px solid rgba(168, 133, 74, .25);
  }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-notlar { flex: 1; min-width: 0; font-size: 12px; line-height: 1.35; }
  .sayfa-kusak-serit > .fatura-oz .fatura-oz-notlar:empty + .fatura-arsiv { margin-left: auto; }
  .sayfa-kusak-serit > .fatura-oz .fatura-arsiv {
    flex: none; height: 34px; min-height: 34px; padding: 0 12px; gap: 6px; border-radius: 10px; font-size: 12.5px; white-space: nowrap;
  }
  .sayfa-kusak-serit > .fatura-oz .fatura-arsiv svg { width: 15px; height: 15px; }
}

/* Ambalaj yalnız listeden seçilir (2026.1466) · kutu görünüşü yazı kutusuyla aynı. */
.stk-f-tablo select.stk-amb-sec, .stk-f-tablo select.stk-mik-amb {
  width: 100%; min-width: 0; border: 0; background: transparent; font: inherit; color: inherit; outline: none;
  -webkit-appearance: none; appearance: none; text-align: center; text-align-last: center; cursor: pointer;
}
.stk-f-tablo select.stk-amb-sec { height: 42px; padding: 0 8px; }
.stk-f-tablo select:disabled { cursor: default; opacity: 1; color: inherit; }
.stk-f-tablo select:focus { background: #fff8e6; }
@media (max-width: 699.98px) { .stk-f-tablo select.stk-amb-sec { height: 38px; padding: 0 4px; font-size: 12.5px; } }
.stk-f-mob td.mik select.stk-mik-amb { display: block; height: 16px; font-size: 9.5px; color: #7A6A58; padding: 0 2px; }
.stk-f-tablo select:not(:disabled):has(option[value=""]:checked) { color: #b3a48f; }

/* ===== TELEFON · BALON MENÜ VE BALON PENCERE (2026.1466) =====
   Kullanıcı: "alttan değil, direkt düğmenin altından çıksın, çıkıntı ile ·
   seçildikten sonra gelen de aynı şekilde balon olsun". Yer JS'ten
   (--balon-ust, --balon-sag, --ok-sag); ok ucu düğmenin ortasını gösterir. */
@media (max-width: 699.98px) {
  .rsm-menu.balon {
    top: var(--balon-ust); bottom: auto; left: auto; right: var(--balon-sag);
    width: min(290px, calc(100vw - 32px)); max-height: none; overflow: visible; padding: 0;
    border-radius: 18px; transform-origin: calc(100% - var(--ok-sag) - 8px) 0; animation: balon-gel .16s ease-out;
  }
  .rsm-menu.balon .rsm-menu-ic { max-height: calc(100dvh - var(--balon-ust) - 110px); overflow-y: auto; padding: 4px 0; border-radius: 18px; }
  .rsm-menu.balon::before, .pencere-balon::before {
    content: ""; position: absolute; top: -8px; right: var(--ok-sag); width: 15px; height: 15px; z-index: 1;
    background: #fbf7ef; border-left: 1px solid #d9c9ad; border-top: 1px solid #d9c9ad; border-radius: 3px 0 0 0; transform: rotate(45deg);
  }
  .rsm-perde { background: rgba(40, 20, 10, .18); }

  .pencere-perde.pencere-balon-perde { display: block; padding: 0; overflow: hidden; background: rgba(40, 20, 10, .18); }
  .pencere-perde.pencere-balon-perde > .pencere-balon {
    position: fixed; margin: 0; left: 16px; right: 16px; top: var(--balon-ust); width: auto; max-width: none;
    max-height: calc(100dvh - var(--balon-ust) - 100px - env(safe-area-inset-bottom, 0px));
    padding: 12px 14px 14px; border-radius: 20px; border: 1px solid #d9c9ad; background: #fbf7ef;
    box-shadow: 0 16px 40px rgba(70, 20, 25, .24), 0 3px 10px rgba(70, 20, 25, .10);
    transform-origin: calc(100% - var(--ok-sag) - 8px) 0; animation: balon-gel .18s ease-out;
  }
  .pencere-balon .pencere-tepe { margin-bottom: 10px; }
  .pencere-balon .pencere-baslik { font-size: 17px; }
  @keyframes balon-gel { from { opacity: 0; transform: translateY(-6px) scale(.96); } to { opacity: 1; transform: none; } }
  @media (prefers-reduced-motion: reduce) { .rsm-menu.balon, .pencere-perde.pencere-balon-perde > .pencere-balon { animation: none; } }
}

/* Ayarlar'daki işler balona taşındı (2026.1466) · Ayarlar'da gizli; içi
   boşalan liste ve yalnız başlığı kalan kart da görünmez. */
.rsm-tasindi { display: none !important; }
.pencere-balon .na-ay-liste:not(:has(> :not(.rsm-tasindi))) { display: none; }
.pencere-balon .na-ay-kart:has(.rsm-tasindi):not(:has(input, select, textarea, button:not(.rsm-tasindi))) { display: none; }
@media (max-width: 699.98px) {
  .rsm-yazi { display: flex; flex-direction: column; min-width: 0; gap: 1px; text-align: left; }
  .rsm-yazi small { font-size: 12px; line-height: 1.3; color: var(--ikinci); white-space: normal; }
}
@media (max-width: 699.98px) {
  .rs-mobil .rsm-ust > .rs-secim:first-child { display: flex; align-items: center; gap: 6px; }
  .rs-mobil .rsm-ust > .rs-secim:first-child > :first-child { flex: 1; min-width: 0; }
  .rs-mobil .rsm-ust > .rs-secim:first-child > .rs-tus { flex: none; height: 42px; padding: 0 12px; }
  .rs-mobil .rsm-arac { flex: none; margin: 0; }
  .rs-mobil .rsm-arac > .dp-ara-ac { width: 42px; height: 42px; padding: 0; justify-content: center; border-radius: 12px; }
}
