/*
  Maliyet Takibi temel stili: "akromatik defter" tasarimi (2026-09-19).

  Ilkeler:
  - Beyaz zemin, ince cizgiler (#dbdad7), satir ici cizgiler (#ecebe8)
  - Kare kart ve dugme (radius 0); suzgec hapi ve rozet tam yuvarlak
  - Renk yalniz durum tasir: amber uyari/onay bekliyor/kritik, kirmizi
    eksi/iptal, yesil kesin, mavi yolda
  - Arayuz Hedvig Letters Sans, sayfa basligi ve buyuk sayilar Hedvig
    Letters Serif; sayilar tabular
  - Yogunluk: satir yuksekligi 36-40px, sayilar saga yasli
*/

:root {
  --zemin: #f3f2ef;
  --kart: #ffffff;
  --cizgi: #dbdad7;
  --ic-cizgi: #ecebe8;
  --metin: #121212;
  --soluk: #616161;
  --vurgu: #18181b;
  --vurgu-koyu: #000000;
  --cubuk: #c9c7c2;
  --iyi: #1d6b35;
  --iyi-zemin: #e7f3ea;
  --kotu: #a11d12;
  --kotu-zemin: #fbe9e7;
  --uyari: #8a4b00;
  --uyari-zemin: #fbeedd;
  --bilgi: #1f4f8a;
  --bilgi-zemin: #e6eef8;
  --radius: 0;
  --hap: 9999px;
  --kenar-genislik: 232px;
  --alt-menu-yukseklik: 60px;
  --yazi: 'Hedvig Letters Sans', system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --serif: 'Hedvig Letters Serif', Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font: 14px/1.45 var(--yazi);
  letter-spacing: 0.01em;
  color: var(--metin);
  background: #ffffff;
}
a { color: var(--metin); }
a:hover { color: #000000; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; }
.serif { font-family: var(--serif); letter-spacing: -0.02em; font-weight: 400; }
.num { font-variant-numeric: tabular-nums; }

/* Klavye kullanicisi icin ilk odak: icerige atla */
.atla {
  position: absolute;
  left: -9999px;
  top: 8px;
  z-index: 50;
  padding: 8px 12px;
  background: var(--vurgu);
  color: #ffffff;
}
.atla:focus { left: 8px; }

/* Sol kenar menusu. .ust sinifi eski ust cubugun adini tasir: testler ve
   eski baglantilar '.ust nav a' ile menuyu bulur. Kenar sabit; sayfa
   belgenin kendisinde kayar (window.scrollTo calisir). */
.ust {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 20;
  width: var(--kenar-genislik);
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 20px 14px;
  background: var(--zemin);
  border-right: 1px solid var(--cizgi);
  overflow-y: auto;
}
.ust .marka-blok { display: flex; flex-direction: column; gap: 2px; padding: 0 10px; }
.ust .marka { font-family: var(--serif); font-size: 22px; line-height: 1.1; letter-spacing: -0.02em; }
.ust .isletme { font-size: 12px; color: var(--soluk); overflow-wrap: anywhere; }
.ust nav { display: flex; flex-direction: column; gap: 20px; }
.menu-grup { display: flex; flex-direction: column; gap: 2px; }
.menu-grup-ad {
  padding: 0 10px 6px;
  font-size: 11px;
  color: var(--soluk);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.ust nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid transparent;
  color: #3a3a3a;
  text-decoration: none;
}
.ust nav a:hover { background: #ffffff; color: var(--metin); }
.ust nav a.aktif { background: #ffffff; border-color: var(--cizgi); color: var(--metin); }
.ust nav a svg, .alt-menu svg { flex-shrink: 0; }
.menu-sayi {
  margin-left: auto;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: var(--hap);
  background: var(--uyari-zemin);
  color: var(--uyari);
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-variant-numeric: tabular-nums;
}
.menu-sayi[hidden] { display: none; }
.kullanici-blok {
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 10px 0;
  border-top: 1px solid var(--cizgi);
}
.avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: var(--hap);
  background: var(--vurgu);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}
/* Ad ve rol alt alta, cikis sagda. Ayrac nokta metinde kalir (ekran
   okuyucu ve testler "Ad · Rol Çıkış" okur), gorselde gizlenir. */
.ust .kullanici {
  flex: 1;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 8px;
  font-size: 13px;
}
.ust .kullanici .k-ad { grid-column: 1; overflow-wrap: anywhere; }
.ust .kullanici .k-ayrac { display: none; }
.ust .kullanici .k-rol { grid-column: 1; font-size: 12px; color: var(--soluk); }
.ust .kullanici #cikis { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 12px; color: var(--soluk); }
.ust .kullanici #cikis:hover { color: var(--metin); }
.menu-kapat { display: none; }

/* Sayfa: kenarin sagi. Baslik serif, altinda soluk aciklama, sagda
   eylemler; altta ince cizgi. */
.sayfa { margin-left: var(--kenar-genislik); min-width: 0; }
.sayfa-baslik {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  padding: 28px 40px 20px;
  border-bottom: 1px solid var(--cizgi);
}
.sayfa-baslik .baslik-metin { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sayfa-baslik .sayfa-marka { display: none; font-size: 12px; color: var(--soluk); }
.sayfa-baslik h1 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.sayfa-baslik .alt-baslik { margin: 0; font-size: 13px; color: var(--soluk); }
.sayfa-aksiyon { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.sayfa-aksiyon:empty { display: none; }
.sayfa-baslik .avatar { display: none; }

main { padding: 24px 40px 40px; }
main > * + * { margin-top: 20px; }

/* Alt sekme cubugu: yalniz 900px altinda */
.alt-menu { display: none; }

/* Iki bolmeli duzen: solda liste, sagda form */
.bolmeli {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 20px;
  align-items: start;
}
/* Grid ogelerinin varsayilan min-width:auto degeri, genis bir tablo gibi
   icerik varsa 1fr kolonunun kucumesini engelleyip belgeyi tasirir. */
.bolmeli > * { min-width: 0; }
@media (max-width: 900px) {
  .bolmeli { grid-template-columns: 1fr; }
}

/* B: iki bolme. Solda secim listesi, sagda secilenin ayrintisi
   (Transferler, Cariler, Odemeler, Urunler). Liste kendi icinde kayar ve
   yapisik kalir; secili satir zemin rengi. 900px altinda tek sutun:
   data-gorunum="liste" listeyi, "ayrinti" ayrintiyi tam ekran gosterir
   (geri baglantisi yalniz orada). Ayrinti bolmesi bir kap (container):
   icerigi ekran degil bolme genisligine gore dizilir. */
.iki-bolme { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 20px; align-items: start; }
.iki-bolme > * { min-width: 0; }
.iki-bolme.genis-liste { grid-template-columns: 440px minmax(0, 1fr); }
.bolme-liste { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
.bolme-liste .kart-baslik { gap: 8px 10px; }
.bolme-liste .arama { width: 100%; max-width: none; flex: 1 1 100%; }
.bolme-liste .kart-baslik select { flex: 1 1 100%; }
.bolme-liste .kart-alt { border-top: 1px solid var(--cizgi); }
/* Bitisik (Transferler): tek cerceve, liste ile ayrinti arasinda cizgi */
.iki-bolme.bitisik { gap: 0; border: 1px solid var(--cizgi); background: var(--kart); }
.iki-bolme.bitisik > .bolme-liste { border: 0; border-right: 1px solid var(--cizgi); top: 0; }
.iki-bolme.bitisik > .bolme-ayrinti { border-left: 1px solid var(--cizgi); margin-left: -1px; padding: 24px; align-self: stretch; }
table.veri.secim td { height: auto; padding: 12px 16px; }
table.veri.secim th { padding: 10px 16px; position: static; }
table.secim tbody tr { cursor: pointer; }
table.secim tbody tr.secili, table.secim tbody tr.secili:hover { background: var(--zemin); }
table.secim td a.sec { color: inherit; text-decoration: none; }
table.secim td a.sec:hover { text-decoration: underline; text-decoration-color: #c4c2bd; text-underline-offset: 3px; }
table.secim td.ikincil-hucre { width: 1%; white-space: nowrap; color: var(--soluk); font-variant-numeric: tabular-nums; }
table.secim .alt-satir { display: block; margin-top: 2px; font-size: 12px; color: var(--soluk); }
table.secim tr.tum-cariler td { font-weight: 400; }
.bolme-ayrinti { container: ayrinti / inline-size; display: flex; flex-direction: column; gap: 20px; }
.bolme-ayrinti > * { margin: 0; }
.ayrinti-yigin { display: flex; flex-direction: column; gap: 20px; }
.ayrinti-yigin > * { margin: 0; }
.bolme-liste .kart-alt:has(> .toplam:empty) { display: none; }
.bolme-sayfa > * + * { margin-top: 20px; }
.ayrinti-bas { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; }
.ayrinti-bas .ayrinti-ad { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ayrinti-bas .ust-not { font-size: 12px; color: var(--soluk); overflow-wrap: anywhere; }
.ayrinti-bas h2 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; overflow-wrap: anywhere; }
.ayrinti-bas .aksiyon { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bolme-panel { border: 1px solid var(--cizgi); background: var(--kart); padding: 16px; }
.bolme-panel h3 { margin: 0 0 12px; font-size: 15px; font-weight: 400; }
/* Kart ici suzgec satiri (ekstre, odemeler): basligin altinda, sakin */
.kart-arac { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 16px; border-bottom: 1px solid var(--cizgi); }
.kart-arac .satir-etiket input { width: 150px; }
.kart-arac button { min-height: 38px; }
.form-izgara { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.form-izgara .tam-satir { grid-column: 1 / -1; }
.form-dugmeler { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
@container ayrinti (max-width: 480px) {
  .form-izgara { grid-template-columns: minmax(0, 1fr); }
}
/* Odeme listesi: satir silme dugmesi sakin (fatura formundaki gibi) */
.bolme-ayrinti table.veri button.sil { min-height: 32px; width: 32px; padding: 0; justify-content: center; background: none; border: 0; color: var(--soluk); font-size: 18px; }
.bolme-ayrinti table.veri button.sil:hover { color: var(--kotu); background: none; }
/* Urun karti: paket bolumu ara basligi, salt okunur bilgiler */
.kart-ara-baslik { border-top: 1px solid var(--cizgi); min-height: 44px; }
.paket-formu { border-top: 1px solid var(--ic-cizgi); }
.paket-formu > * + * { margin-top: 10px; }
.paket-formu .onay-kutu { align-self: end; margin-bottom: 12px; }
.urun-bilgi { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 16px; margin: 0; }
.urun-bilgi dt { font-size: 13px; color: var(--soluk); }
.urun-bilgi dd { margin: 0; overflow-wrap: anywhere; }
/* Faz 4: urun formunda alim birimi (paketi olmayan urunde), birim eki,
   son alim satiri ve cari iletisim blogu. display: grid [hidden]'i ezer. */
.alim-birimi[hidden], .urun-bilgi[hidden] { display: none; }
.alim-birimi .aciklama { margin: -4px 0 12px; font-size: 13px; }
.birim-girdi { display: flex; align-items: center; gap: 8px; }
.birim-girdi input { flex: 1 1 auto; min-width: 0; }
.birim-ek { font-size: 13px; color: var(--soluk); white-space: nowrap; }
.son-alim { border-bottom: 1px solid var(--ic-cizgi); margin: 0; overflow-wrap: anywhere; }
.iletisim-bilgi { padding: 0 2px; }
table.veri .alt-satir { display: block; margin-top: 2px; font-size: 12px; color: var(--soluk); }
.tedarikci-tablo td:first-child { min-width: 160px; }
.tedarikci-tablo td:not(:first-child) { white-space: nowrap; }
.tedarikci-tablo .islem-hucre { width: 1%; }
.tedarikci-tablo .islem-hucre button { display: block; width: 100%; }
.tedarikci-tablo .islem-hucre button + button { margin-top: 4px; }
@container ayrinti (max-width: 560px) {
  .kategori-duzen { grid-template-columns: minmax(0, 1fr); }
}
/* Transferler: liste satiri (tarih, depolar + satir sayisi, rozet) ve
   ayrinti. Duzenlenmeyen transferde baslik alanlari gizli (depolar, tarih
   ve not ayrinti basliginda); eylem dugmeleri altta sagda. */
table.veri.secim.transfer-listesi td { padding: 12px 12px; }
table.veri.secim.transfer-listesi th { padding: 10px 12px; }
table.veri.secim.transfer-listesi td.rozet-hucre { width: 1%; white-space: nowrap; text-align: right; }
.transfer-ust.salt-okunur { display: none; }
.transfer-aksiyon { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.transfer-aksiyon:not(:has(> :not([hidden]))) { display: none; }
#transfer-ayrinti .teslim-kutu { margin: 0; }
/* Bolme dar (genis ekranda liste yaninda): duzenleme satiri iki katli
   tablo. Ustte urun, paket, miktar ve sil; altta "Gönderilebilir". Baslik
   ayni izgarada gorunur. 900px alti kendi yigin duzenini kullanir. */
@media (min-width: 901px) {
  @container ayrinti (max-width: 760px) {
    table.fatura.transfer.mod-duzenle, table.fatura.transfer.mod-duzenle thead,
    table.fatura.transfer.mod-duzenle tbody { display: block; width: 100%; }
    table.fatura.transfer.mod-duzenle tr {
      display: grid;
      grid-template-columns: minmax(0, 1fr) 140px 100px 36px;
      grid-template-areas: "urun paket miktar sil" "bilgi bilgi bilgi bilgi";
      align-items: center;
      border-bottom: 1px solid var(--ic-cizgi);
    }
    table.fatura.transfer.mod-duzenle th, table.fatura.transfer.mod-duzenle td { border: 0; width: auto; }
    table.fatura.transfer.mod-duzenle th:nth-child(1) { grid-area: urun; }
    table.fatura.transfer.mod-duzenle th:nth-child(2) { grid-area: paket; }
    table.fatura.transfer.mod-duzenle th:nth-child(3) { grid-area: miktar; }
    table.fatura.transfer.mod-duzenle th:nth-child(4) { display: none; }
    table.fatura.transfer.mod-duzenle th:nth-child(5) { grid-area: sil; }
    table.fatura.transfer.mod-duzenle td.urun { grid-area: urun; }
    table.fatura.transfer.mod-duzenle td.paket { grid-area: paket; }
    table.fatura.transfer.mod-duzenle td.miktar { grid-area: miktar; }
    table.fatura.transfer.mod-duzenle td.sil { grid-area: sil; }
    /* Bilgi satiri bosken de yer tutar: bilgi gelince dugmeler kaymaz */
    table.fatura.transfer.mod-duzenle td.kaynakta { grid-area: bilgi; min-height: 26px; padding-top: 0; white-space: normal; }
    table.fatura.transfer.mod-duzenle td.kaynakta .dusus { display: inline; margin-left: 8px; }
    table.fatura.transfer.mod-duzenle td.kaynakta .dusus[hidden] { display: none; }
    table.fatura.transfer.mod-duzenle input, table.fatura.transfer.mod-duzenle select { min-width: 0; }
    table.fatura.transfer.mod-duzenle tr.asim { background: var(--uyari-zemin); }
  }
}
.geri { display: none; }
@media (max-width: 900px) {
  .iki-bolme, .iki-bolme.genis-liste { grid-template-columns: minmax(0, 1fr); }
  [data-gorunum="liste"] .bolme-ayrinti, [data-gorunum="ayrinti"] .bolme-liste,
  [data-gorunum="ayrinti"] .liste-arac { display: none; }
  .bolme-liste { position: static; max-height: none; overflow-y: visible; }
  .iki-bolme.bitisik > .bolme-liste { border-right: 0; }
  .iki-bolme.bitisik { border: 0; }
  .iki-bolme.bitisik > .bolme-liste { border: 1px solid var(--cizgi); }
  .iki-bolme.bitisik > .bolme-ayrinti { border-left: 0; margin-left: 0; padding: 0; }
  .geri { display: inline-flex; align-items: center; min-height: 44px; }
  /* Urunler: kategori karti liste gorunumunde de (dar ekranda tek yer) */
  [data-gorunum="liste"] .bolme-ayrinti.kategorili { display: flex; }
  [data-gorunum="liste"] .bolme-ayrinti.kategorili > :not(.liste-ile-gorunur) { display: none; }
  table.veri.secim td { padding: 12px 14px; }
  /* Odeme listesi blok satir: cari ve tutar ustte, tarih yontem referans
     altta soluk, sil sagda. Hucreler DOM'da ayni sirada. */
  table.veri.odeme-tablo, table.veri.odeme-tablo tbody { display: block; }
  table.veri.odeme-tablo thead { display: none; }
  table.veri.odeme-tablo tr {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto 44px;
    column-gap: 10px;
    row-gap: 4px;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ic-cizgi);
  }
  table.veri.odeme-tablo td { display: block; height: auto; padding: 0; border: 0; }
  table.veri.odeme-tablo td:nth-child(2) { grid-column: 1 / 4; grid-row: 1; overflow-wrap: anywhere; }
  table.veri.odeme-tablo td:nth-child(5) { grid-column: 4; grid-row: 1; }
  table.veri.odeme-tablo td:nth-child(6) { grid-column: 5; grid-row: 1 / span 2; justify-self: end; }
  table.veri.odeme-tablo td:nth-child(1), table.veri.odeme-tablo td:nth-child(3), table.veri.odeme-tablo td:nth-child(4) { grid-row: 2; font-size: 12px; color: var(--soluk); }
  table.veri.odeme-tablo td:nth-child(1) { grid-column: 1; }
  table.veri.odeme-tablo td:nth-child(3) { grid-column: 2; }
  table.veri.odeme-tablo td:nth-child(4) { grid-column: 3 / 5; overflow-wrap: anywhere; }
  .kart:has(table.veri.odeme-tablo) { overflow-x: visible; }
  .bolme-ayrinti table.veri.odeme-tablo button.sil { width: 44px; min-height: 44px; }
  /* Fatura satirlari (transfer formu gibi): her satir bir blok. Urun tam
     satir ve sil; altinda paket, miktar, birim fiyat; sonra iskontolar ve
     KDV; en altta tutar. Etiketler hucre sirasindan (thead gizli). Tablo
     kabi yatay kaymaz; dokunma hedefleri 44px. */
  .urun-oneri-kabi table.fatura, .urun-oneri-kabi table.fatura tbody { display: block; width: 100%; }
  .urun-oneri-kabi table.fatura thead { display: none; }
  .urun-oneri-kabi table.fatura tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) 44px;
    gap: 6px 8px;
    padding: 10px 8px;
    border-bottom: 1px solid var(--cizgi);
  }
  .urun-oneri-kabi table.fatura td { display: block; width: auto !important; min-width: 0; padding: 0; border: 0; }
  .urun-oneri-kabi table.fatura td:nth-child(1) { grid-column: 1 / 4; grid-row: 1; }
  .urun-oneri-kabi table.fatura td:nth-child(9) { grid-column: 4; grid-row: 1; }
  .urun-oneri-kabi table.fatura td:nth-child(2) { grid-column: 1; grid-row: 2; }
  .urun-oneri-kabi table.fatura td:nth-child(3) { grid-column: 2; grid-row: 2; }
  .urun-oneri-kabi table.fatura td:nth-child(4) { grid-column: 3 / 5; grid-row: 2; }
  .urun-oneri-kabi table.fatura td:nth-child(5) { grid-column: 1; grid-row: 3; }
  .urun-oneri-kabi table.fatura td:nth-child(6) { grid-column: 2; grid-row: 3; }
  .urun-oneri-kabi table.fatura td:nth-child(7) { grid-column: 3 / 5; grid-row: 3; }
  .urun-oneri-kabi table.fatura td:nth-child(8) { grid-column: 1 / 5; grid-row: 4; text-align: right; }
  .urun-oneri-kabi table.fatura td:nth-child(n+2):nth-child(-n+8)::before {
    display: block;
    font-size: 12px;
    color: var(--soluk);
    text-transform: uppercase;
    white-space: nowrap;
  }
  .urun-oneri-kabi table.fatura td:nth-child(2)::before { content: 'Birim'; }
  .urun-oneri-kabi table.fatura td:nth-child(3)::before { content: 'Miktar'; }
  .urun-oneri-kabi table.fatura td:nth-child(4)::before { content: 'Birim fiyat'; }
  .urun-oneri-kabi table.fatura td:nth-child(5)::before { content: 'İsk. 1 %'; }
  .urun-oneri-kabi table.fatura td:nth-child(6)::before { content: 'İsk. 2 %'; }
  .urun-oneri-kabi table.fatura td:nth-child(7)::before { content: 'KDV %'; }
  .urun-oneri-kabi table.fatura td:nth-child(8)::before { content: 'Tutar'; }
  .urun-oneri-kabi table.fatura input, .urun-oneri-kabi table.fatura select {
    min-width: 0; min-height: 44px; border-color: var(--cizgi); background: var(--kart);
  }
  .urun-oneri-kabi table.fatura button.sil { width: 44px; height: 44px; }
  .urun-oneri-kabi .fatura-tablo-kabi { overflow-x: visible; }
  .fatura-cerceve.urun-oneri-kabi table.fatura td:first-child { padding-left: 0; }
}

/* Iki esit sutun (Ayarlar, Panel). .genis kart iki sutunu birden kaplar. */
.ikili {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}
.ikili > * { min-width: 0; }
.ikili > .genis { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .ikili { grid-template-columns: 1fr; }
}

.kart {
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
}
.kart-baslik {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  min-height: 52px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--cizgi);
  font-size: 15px;
  font-weight: 400;
}
.kart-baslik .kart-sag { margin-left: auto; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--soluk); }
.kart-baslik label { font-size: 13px; }
.kart-alt {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px 16px;
  padding: 14px 12px;
  font-size: 13px;
  color: var(--soluk);
}
.kart-alt .toplam { color: var(--metin); }
.kart-alt .toplam .serif { font-size: 20px; margin-left: 8px; font-variant-numeric: tabular-nums; }
/* Faz 3: sube basina ara toplam (stok ve stok deger raporu) */
.sube-toplamlari { display: flex; flex-wrap: wrap; gap: 4px 16px; }
.sube-toplamlari .sube-toplam { color: var(--soluk); }
.sube-toplamlari .sube-toplam .serif { color: var(--metin); font-variant-numeric: tabular-nums; }
.kart-govde { padding: 16px; }

/* Tablo: yogun, yapiskan baslik */
table.veri { width: 100%; border-collapse: collapse; }
table.veri th {
  position: sticky;
  top: 0;
  background: var(--kart);
  text-align: left;
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--soluk);
  padding: 10px 12px;
  border-bottom: 1px solid var(--cizgi);
  z-index: 1;
}
table.veri td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--ic-cizgi);
  height: 40px;
  vertical-align: middle;
}
table.veri tbody tr:last-child td { border-bottom: 0; }
table.veri tbody tr:hover { background: #faf9f7; }

/* Dar ekranda tablo kart icinde yatay kayar. Masaustunde kaydirma kabi yok,
   bu yuzden baslik goruntu alanina yapisir. Dar ekranda baslik bilincli olarak
   yapiskan degil: kaydirma kabi icinde yapiskan baslik goruntu alanina yapismaz.
   Bu kural, ayni secicili yukaridaki kuraldan SONRA gelmek zorunda; aksi halde
   esit ozgulukte kaynak sirasi yuzunden gecersiz kalir. */
@media (max-width: 900px) {
  .kart { overflow-x: auto; }
  table.veri th { position: static; }
}
table.veri td.sayi, table.veri th.sayi {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
table.veri td.eksi { color: var(--kotu); }
table.veri td.arti { color: var(--iyi); }

/* Form. Girdiler kare, ince cizgili; odakta grafit cerceve. */
label { display: block; margin-bottom: 12px; font-size: 12px; color: var(--soluk); }
input[type=text], input[type=search], input[type=date], input[type=number], input[type=email],
input[type=password], input:not([type]), select, textarea {
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
  font: inherit;
  letter-spacing: normal;
  color: var(--metin);
  background: var(--kart);
}
textarea { min-height: 0; }
label input, label select, label textarea {
  display: block;
  width: 100%;
  margin-top: 6px;
  font-size: 14px;
}
label input[type=checkbox], label input[type=radio] { display: inline-block; width: auto; margin: 0 6px 0 0; vertical-align: middle; }
input:focus, select:focus, textarea:focus {
  outline: 2px solid var(--vurgu);
  outline-offset: -2px;
  border-color: var(--vurgu);
}
input[type=checkbox], input[type=radio] { accent-color: var(--vurgu); }
input.sayi { text-align: right; font-variant-numeric: tabular-nums; }

/* Dugme: birincil grafit, ikincil beyaz ince cizgili. Kare. */
button, .dugme {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid var(--vurgu);
  border-radius: var(--radius);
  background: var(--vurgu);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}
button:hover, .dugme:hover { background: var(--vurgu-koyu); color: #fff; }
button:disabled { opacity: .55; cursor: default; }
button.ikincil, .dugme.ikincil { background: var(--kart); color: var(--metin); border-color: var(--cizgi); }
button.ikincil:hover, .dugme.ikincil:hover { background: var(--zemin); color: var(--metin); border-color: #c4c2bd; }
button.tam { width: 100%; }

/* Suzgec hapi: tam yuvarlak; secili olan grafit (aria-pressed ya da .secili) */
.hap {
  min-height: 32px;
  padding: 0 14px;
  border-radius: var(--hap);
  border: 1px solid var(--cizgi);
  background: var(--kart);
  color: var(--metin);
  font-size: 13px;
}
.hap:hover { background: var(--zemin); color: var(--metin); }
.hap[aria-pressed="true"], .hap.secili { background: var(--vurgu); border-color: var(--vurgu); color: #ffffff; }
.hap .hap-sayi { font-variant-numeric: tabular-nums; opacity: .7; }
.haplar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }

/* Bolumlu secim (depo): bitisik kare dugmeler */
.bolumlu { display: inline-flex; flex-wrap: wrap; border: 1px solid var(--cizgi); max-width: 100%; }
.bolumlu button {
  min-height: 36px;
  padding: 0 14px;
  border: 0;
  border-left: 1px solid var(--cizgi);
  background: var(--kart);
  color: var(--metin);
  font-size: 13px;
}
.bolumlu button:first-child { border-left: 0; }
.bolumlu button:hover { background: var(--zemin); color: var(--metin); }
.bolumlu button[aria-pressed="true"] { background: var(--vurgu); color: #ffffff; }

.arama {
  flex: 1;
  max-width: 320px;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
  font: inherit;
}

/* Durum ve mesaj */
.hata { color: var(--kotu); }
.uyari { color: var(--uyari); }
.basari { color: var(--iyi); }
.aciklama { color: var(--soluk); }
/* Bosluksuz uzun metin (e-posta, uzun ad) hucreyi genisletmesin */
td.kirilir { overflow-wrap: anywhere; }

/* Islem kaydi: dar ekranda her kayit iki satirlik bir blok olur (ust
   satir tarih, kullanici, kayit, islem; alt satir degisiklik). Dar bir
   kaydirmali sutunda metin sarilip satirlari sisirmesin, deger gizli
   kaydirma alaninda kalmasin. */
@media (max-width: 900px) {
  /* Dar ekranda uzun e-posta rol sutununu kaydirma alanina itmesin */
  td.eposta { overflow-wrap: anywhere; }
  table.islem-kaydi, table.islem-kaydi tbody { display: block; }
  table.islem-kaydi thead { display: none; }
  table.islem-kaydi tr {
    display: block;
    padding: 5px 12px;
    border-bottom: 1px solid var(--cizgi);
    font-size: 12px;
    line-height: 1.35;
  }
  table.islem-kaydi td {
    display: inline;
    height: auto;
    padding: 0;
    border: 0;
    color: var(--soluk);
  }
  table.islem-kaydi td.meta + td.meta::before { content: " \00b7\00a0"; }
  table.islem-kaydi td.deger {
    display: block;
    margin-top: 1px;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--metin);
  }
}
.bos-durum { padding: 40px 16px; text-align: center; color: var(--soluk); }
.bos-durum button { margin-top: 12px; }

/* Giris ekrani */
.giris-govde { display: grid; place-items: center; min-height: 100vh; }
.giris-kutu {
  width: 340px;
  padding: 28px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
}
.giris-kutu h1 { margin: 0 0 20px; font-size: 20px; }
.giris-kutu button { width: 100%; margin-top: 8px; }

/* Fatura giris tablosu */
.fatura-ust {
  display: flex;
  gap: 16px;
  align-items: flex-end;
  flex-wrap: wrap;
  padding: 0;
  margin-bottom: 20px;
}
.fatura-ust label { margin: 0; min-width: 150px; }
.fatura-ust .aksiyon { margin-left: auto; display: flex; gap: 8px; }

table.fatura { width: 100%; border-collapse: collapse; background: var(--kart); }
table.fatura th {
  text-align: left;
  font-size: 11px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--soluk);
  padding: 10px 8px;
  border-bottom: 1px solid var(--cizgi);
}
table.fatura th.sayi { text-align: right; }
table.fatura td { padding: 6px 8px; border-bottom: 1px solid var(--ic-cizgi); }
table.fatura input, table.fatura select {
  width: 100%;
  min-height: 36px;
  padding: 6px 8px;
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
  font: inherit;
  background: var(--kart);
}
table.fatura input:hover, table.fatura select:hover { border-color: #c4c2bd; }
table.fatura input:focus, table.fatura select:focus {
  border-color: var(--vurgu);
  background: var(--kart);
  outline: 1px solid var(--vurgu);
  outline-offset: -2px;
}
table.fatura input.sayi { text-align: right; font-variant-numeric: tabular-nums; }
/* Listeden secilmemis urun (F1 / C2): kayit bu satirda durur */
table.fatura input.eslesmedi,
table.fatura input.eslesmedi:hover,
table.fatura input.eslesmedi:focus { border-color: var(--kotu); background: var(--kotu-zemin); }
table.fatura td.hesap {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--soluk);
}
table.fatura td.sil { width: 34px; text-align: center; }
table.fatura button.sil {
  background: none;
  border: none;
  color: var(--soluk);
  font-size: 16px;
  min-height: 32px;
  padding: 2px 6px;
  cursor: pointer;
}
table.fatura button.sil:hover { color: var(--kotu); background: none; }

.satir-ekle {
  width: 100%;
  margin-top: 8px;
  padding: 12px;
  border: 1px dashed #c4c2bd;
  border-radius: var(--radius);
  background: var(--kart);
  color: var(--soluk);
  font: inherit;
  cursor: pointer;
}
.satir-ekle:hover { border-color: var(--vurgu); color: var(--metin); background: var(--kart); }

.toplam-kutu {
  margin: 20px 0 0 auto;
  width: 340px;
  max-width: 100%;
  padding: 12px 16px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
}
.toplam-kutu div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 8px 0;
  font-variant-numeric: tabular-nums;
}
.toplam-kutu div > :first-child { color: var(--soluk); }
.toplam-kutu div.genel {
  border-top: 1px solid var(--cizgi);
  margin-top: 6px;
  padding-top: 12px;
}
.toplam-kutu div.genel > :first-child { color: var(--metin); }
.toplam-kutu div.genel > :last-child {
  font-weight: 400;
  font-family: var(--serif);
  font-size: 30px;
  line-height: 1;
  letter-spacing: -0.02em;
}
.rozet {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border-radius: var(--hap);
  font-size: 12px;
  line-height: 1;
  background: var(--zemin);
  color: var(--soluk);
}
.rozet.kesin { background: var(--iyi-zemin); color: var(--iyi); }
.rozet.iptal { background: var(--kotu-zemin); color: var(--kotu); }
.rozet.uyari-rozet { background: var(--uyari-zemin); color: var(--uyari); }
.rozet.eksi-rozet { background: var(--kotu-zemin); color: var(--kotu); }
.rozet.bilgi-rozet { background: var(--bilgi-zemin); color: var(--bilgi); }

/* Fix (Task 14 elle dogrulama, Ruling U): table.fatura 9 sutunlu ve .kart
   ICINDE DEGIL (brief'teki sayfa duzeni oyle kuruyor). .kart'in yatay
   kaydirma kurali (satir 144 civari, "@media (max-width: 900px) { .kart {
   overflow-x: auto; } }") yalnizca .kart'a uygulanir, bu tabloyu kapsamaz.
   Dar ekranda (390px) tablonun sabit genislikli sutunlari (120+90+100+70+70+
   70+110+34 = 664px) sayfayi YATAYDA tasirirdi. Tabloyu kendi kaydirma
   kabina sararak tasmayi kaba HAPSEDIYORUZ; sayfa genelinde tasma kalmaz. */
.fatura-tablo-kabi { overflow-x: auto; }

/* Panel kutulari (Task 20). .ikili Task 21'de eklendi, burada tekrar yok. */
/* Gosterge seridi: bitisik kutular, aralarinda ince cizgi. */
.kutular {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 1px;
  background: var(--cizgi);
  border: 1px solid var(--cizgi);
}
.kutu {
  min-width: 0;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--kart);
}
.kutu .etiket { font-size: 12px; color: var(--soluk); text-transform: uppercase; letter-spacing: .06em; }
.kutu .deger {
  font-family: var(--serif);
  font-size: 34px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.kutu .deger.uyari { color: var(--uyari); }
.kutu .alt { font-size: 12px; color: var(--soluk); }
/* Miktar+birim ve tarih tek satirda kalsin; dar ekranda kart zaten kayar */
table.veri td.tek-satir { white-space: nowrap; }

/* Urunler: kategori karti (F2 madde 8). Masaustunde agac ve form yan yana,
   dar ekranda alt alta. */
.kategori-duzen { display: grid; grid-template-columns: 1fr 320px; gap: 24px; }
.kategori-duzen > * { min-width: 0; }
@media (max-width: 900px) {
  .kategori-duzen { grid-template-columns: 1fr; }
}
.kategori-agaci { margin: 0; padding-left: 18px; }
.kategori-agaci li { margin: 4px 0; overflow-wrap: anywhere; }
.kategori-agaci ul { margin: 4px 0; padding-left: 18px; }

/* Roller ve yetkiler matrisi (Faz 2, spec A.6). Kap her genislikte yatay
   kaydirma kabidir; dar ekranda matris kayar, ilk sutun (izin adi) sola
   yapisir. Diger basliklar kap icinde yapiskan degildir (dikey kaymayan
   kapta ise yaramaz; kontrol.mjs etkisiz yapiskan denetimi). */
.matris-kabi { overflow-x: auto; margin-bottom: 16px; }
table.matris { min-width: 640px; }
table.matris th { position: static; }
table.matris th.rol { text-align: center; white-space: nowrap; }
table.matris td.kutu-hucre { text-align: center; white-space: nowrap; }
table.matris input[type=checkbox] { width: auto; margin: 0; }
table.matris th.izin-adi, table.matris td.izin-adi {
  position: sticky;
  left: 0;
  top: auto;
  z-index: 1;
  min-width: 190px;
  background: var(--kart);
}
table.matris tr.grup th { background: var(--zemin); text-align: left; color: var(--metin); }
/* Grup adi satirin tamamini kaplayan hucrede; ad kaydirinca da solda kalir */
table.matris tr.grup th span { display: inline-block; position: sticky; left: 12px; }
span.alt-not {
  display: block;
  font-size: 12px;
  font-weight: normal;
  color: var(--soluk);
  text-transform: none;
  letter-spacing: 0;
}
span.alt-not[hidden] { display: none; }
/* Kaydedilmemis tiki olan rol sutunu (Gorev 7 incelemesi 2) */
table.matris th.rol.kaydedilmedi, table.matris th.rol .kaydedilmedi-not { color: var(--uyari); }
button.kucuk { padding: 4px 10px; font-size: 13px; }
.rol-formlari { margin-top: 8px; }
/* .ikili display:grid tanimlar; hidden ozniteligi (salt okunur ve gecis
   modunda gizli formlar) onu ezmeli */
.rol-duzen[hidden] { display: none; }
/* Dar ekranda yapisik sutun sabit ve dar, tablo icerigi kadar genis: tablo
   %100'e yayilinca artan pay ilk sutuna gidiyor ve kaydirilan kutularin
   ustune biniyordu (roller_salt_okunur_iddia.js gercek tiklamasi yakaladi) */
@media (max-width: 900px) {
  table.matris { width: auto; min-width: 0; }
  table.matris th.izin-adi, table.matris td.izin-adi { width: 140px; min-width: 140px; max-width: 140px; }
}

/* Kullanicilar tablosu (Faz 2, Gorev 8): satirda rol secimi ve aktiflik
   (Ruling C3). Dar ekranda her kullanici bir blok: ad ve e-posta ustte,
   rol, durum ve ozel yetki altta; tablo kart icinde yatay kaymaz. */
.kullanici-formu { margin-top: 16px; max-width: 560px; }
table.kullanici-tablo select {
  max-width: 100%;
  padding: 4px 6px;
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
  font: inherit;
  background: var(--kart);
}
table.kullanici-tablo td { overflow-wrap: anywhere; }
table.kullanici-tablo tr.pasif td.ad,
table.kullanici-tablo tr.pasif td.eposta { color: var(--soluk); }
table.kullanici-tablo span.durum { display: inline-block; min-width: 40px; }
/* Kaydedilmemis rol secimi (Gorev 8 incelemesi 4) */
table.kullanici-tablo select.kaydedilmedi { border-color: var(--uyari); }
table.kullanici-tablo tr.pasif span.durum { color: var(--kotu); }
@media (max-width: 900px) {
  table.kullanici-tablo, table.kullanici-tablo tbody { display: block; }
  table.kullanici-tablo thead { display: none; }
  table.kullanici-tablo tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--cizgi);
  }
  table.kullanici-tablo td { display: block; height: auto; padding: 0; border: 0; }
  table.kullanici-tablo td.ad { flex: 1 1 100%; font-weight: 600; }
  table.kullanici-tablo td.eposta { flex: 1 1 100%; margin-top: -4px; font-size: 12px; color: var(--soluk); }
  table.kullanici-tablo td.rol-hucre { flex: 1 1 auto; }
}

/* Kisiye ozel yetki paneli (Faz 2, spec A.6). Rolden gelen durum gri. */
.ozel-yetki { margin-top: 16px; padding: 16px; border: 1px solid var(--cizgi); border-radius: var(--radius); }
.ozel-yetki[hidden] { display: none; }
.ozel-yetki h3 { margin: 0 0 8px; font-size: 15px; overflow-wrap: anywhere; }
.ozel-yetki .dugmeler { display: flex; flex-wrap: wrap; gap: 8px; }
.ozel-grup { border: none; margin: 0 0 12px; padding: 0; min-width: 0; }
.ozel-grup legend { font-weight: 600; padding: 0; margin-bottom: 4px; }
.ozel-satir {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 90px 150px;
  gap: 8px;
  align-items: center;
  padding: 4px 0;
  border-bottom: 1px solid var(--cizgi);
}
.ozel-satir .ad { overflow-wrap: anywhere; }
.ozel-satir .rolden { color: var(--soluk); font-size: 12px; }
.ozel-satir select { padding: 4px 6px; border: 1px solid var(--cizgi); border-radius: var(--radius); font: inherit; background: var(--kart); }
@media (max-width: 900px) {
  .ozel-satir { grid-template-columns: minmax(0, 1fr) 140px; }
  .ozel-satir .rolden { grid-column: 1; grid-row: 2; margin-top: -6px; }
  .ozel-satir select { grid-column: 2; grid-row: 1 / span 2; }
}

/* Transfer durum rozetleri (Faz 2, Gorev 16). taslak varsayilan gri,
   iptal fatura kuralini kullanir. */
.rozet.onay_bekliyor { background: var(--uyari-zemin); color: var(--uyari); }
.rozet.yolda { background: var(--bilgi-zemin); color: var(--bilgi); }
.rozet.teslim_alindi { background: var(--iyi-zemin); color: var(--iyi); }
.rozet { white-space: nowrap; }
/* Tiklanabilir panel kutusu (Gorev 19 transfer sayilari) */
a.kutu { display: block; color: inherit; text-decoration: none; }
a.kutu:hover { background: #faf9f7; }
/* Transfer formu (Faz 2, spec B.7, Gorev 17). Gonderilebilirden fazla
   girilen satir amber; bilgi hucresinde miktar ve dusus tarihi notu alt
   alta. Teslim ve red kutulari. Tablo kendi kabinda kayar, sayfa tasmaz. */
table.fatura.transfer tr.asim td { background: var(--uyari-zemin); }
table.fatura.transfer td.kaynakta { font-size: 13px; color: var(--soluk); white-space: nowrap; }
table.fatura.transfer td.kaynakta .dusus { display: block; }
table.fatura.transfer td.kaynakta .dusus[hidden] { display: none; }
table.fatura.transfer td.tek-satir { white-space: nowrap; }
/* Genis ekranda sabit sutunlar (paket, miktar, bilgi) urun alanini ezmesin. */
table.fatura.transfer td.paket { width: 140px; }
table.fatura.transfer td.miktar { width: 100px; }
table.fatura.transfer td.kaynakta { width: 220px; }
table.fatura.transfer td.gelen-girdi { width: 110px; }
/* Gelen alaninin birimi yalniz yigin duzende (genis ekranda Gonderilen yaninda) */
table.fatura.transfer .gelen-birim { display: none; }
table.fatura.transfer input[data-alan="urun_ad"] { min-width: 200px; }
table.fatura.transfer select[data-alan="paket_id"] { min-width: 130px; }
table.fatura.transfer input[data-alan="miktar_paket"] { min-width: 80px; }
/* Gorev 18: 900px altinda duzenle ve teslim satirlari yigin blok. Urun adi
   kendi satirinda; altinda paket + miktar + sil (teslimde gonderilen +
   gelen); en altta Gönderilebilir ve dusus notu. Baslik gizlenir, hucre
   etiketi data-etiket ile yazilir. Tablo kabi yatay kaymaz; dokunma
   hedefleri en az 44px. */
@media (max-width: 900px) {
  table.fatura.transfer.mod-duzenle, table.fatura.transfer.mod-teslim, table.fatura.transfer.mod-oku,
  table.fatura.transfer.mod-duzenle tbody, table.fatura.transfer.mod-teslim tbody,
  table.fatura.transfer.mod-oku tbody { display: block; width: 100%; }
  table.fatura.transfer.mod-duzenle thead, table.fatura.transfer.mod-teslim thead,
  table.fatura.transfer.mod-oku thead { display: none; }
  table.fatura.transfer.mod-duzenle tr, table.fatura.transfer.mod-teslim tr, table.fatura.transfer.mod-oku tr {
    display: grid;
    gap: 6px 8px;
    padding: 10px 8px;
    border-bottom: 1px solid var(--cizgi);
  }
  table.fatura.transfer.mod-duzenle tr {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px;
    grid-template-areas: "urun urun urun" "paket miktar sil" "bilgi bilgi bilgi";
  }
  table.fatura.transfer.mod-teslim tr {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "urun urun" "gonderilen gelen";
    align-items: start;
  }
  /* Okuma: urun adi tam satir, digerleri iki sutunda etiketli */
  table.fatura.transfer.mod-oku tr { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  table.fatura.transfer.mod-oku td.urun { grid-area: auto; grid-column: 1 / -1; }
  table.fatura.transfer.mod-oku td.sayi { text-align: left; }
  table.fatura.transfer.mod-duzenle td, table.fatura.transfer.mod-teslim td, table.fatura.transfer.mod-oku td {
    display: block; width: auto; min-width: 0; padding: 0; border: 0;
  }
  table.fatura.transfer td.urun { grid-area: urun; }
  table.fatura.transfer td.paket { grid-area: paket; }
  table.fatura.transfer td.miktar { grid-area: miktar; }
  table.fatura.transfer td.sil { grid-area: sil; }
  table.fatura.transfer td.kaynakta { grid-area: bilgi; white-space: normal; }
  table.fatura.transfer td.gonderilen { grid-area: gonderilen; text-align: left; }
  table.fatura.transfer td.gelen-girdi { grid-area: gelen; }
  table.fatura.transfer.mod-teslim td.urun, table.fatura.transfer.mod-oku td.urun { font-weight: 600; overflow-wrap: anywhere; }
  table.fatura.transfer.mod-teslim td[data-etiket]::before, table.fatura.transfer.mod-oku td[data-etiket]::before {
    content: attr(data-etiket);
    display: block;
    font-size: 12px;
    color: var(--soluk);
    text-transform: uppercase;
    white-space: nowrap;
  }
  table.fatura.transfer.mod-duzenle input, table.fatura.transfer.mod-duzenle select,
  table.fatura.transfer.mod-teslim input {
    min-width: 0; min-height: 44px; border-color: var(--cizgi); background: var(--kart);
  }
  table.fatura.transfer.mod-duzenle button.sil { width: 44px; height: 44px; }
  table.fatura.transfer.mod-duzenle input.eslesmedi { border-color: var(--kotu); background: var(--kotu-zemin); }
  table.fatura.transfer.mod-duzenle tr.asim { background: var(--uyari-zemin); }
  .teslim-kutu input, .teslim-kutu button { min-height: 44px; }
  table.fatura.transfer.mod-teslim .gelen-birim { display: block; font-size: 13px; color: var(--soluk); margin-top: 2px; }
}
table.fatura.transfer tr.asim td.kaynakta { color: var(--uyari); }
.teslim-kutu { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 12px 0; }
.teslim-kutu label { margin: 0; min-width: 160px; }
.teslim-kutu[hidden] { display: none; }

.toplam-kutu strong { font-weight: 400; }
.bos-durum p { margin: 0; }

/* Ince bilgi seridi (yoldaki urunler vb.): durum rengi zeminde */
.serit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 12px 16px;
  border: 1px solid var(--cizgi);
  text-decoration: none;
}
.serit.bilgi { background: var(--bilgi-zemin); color: var(--bilgi); }
.serit.uyari-serit { background: var(--uyari-zemin); color: var(--uyari); }
.serit .serit-sag { margin-left: auto; font-size: 13px; }
.serit b { font-weight: 400; color: var(--metin); }
a.serit:hover { color: var(--bilgi); text-decoration: underline; }
.serit[hidden] { display: none; }

/* Klavye ipuclari satiri (fatura girisi) */
.ipuclari {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  padding: 12px;
  border-top: 1px solid var(--cizgi);
  font-size: 12px;
  color: var(--soluk);
}
.ipuclari kbd { font: inherit; color: var(--metin); }

/* Sekmeler (Ayarlar): alt cizgili metin sekmeleri */
.sekmeler {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 24px;
  border-bottom: 1px solid var(--cizgi);
}
.sekmeler a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 0 10px;
  border-bottom: 2px solid transparent;
  color: var(--soluk);
  text-decoration: none;
  margin-bottom: -1px;
}
.sekmeler a:hover { color: var(--metin); }
.sekmeler a[aria-current="true"] { border-bottom-color: var(--vurgu); color: var(--metin); }

/* Cubuk grafik (Panel aylik alim, Raporlar) */
.cubuklar {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 20px 16px 16px;
}
.cubuk {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.cubuk .cubuk-alan { width: 100%; height: 96px; display: flex; align-items: flex-end; }
.cubuklar.buyuk .cubuk-alan { height: 180px; }
.cubuk .cubuk-dolgu { width: 100%; min-height: 1px; background: var(--cubuk); }
.cubuk.en-yuksek .cubuk-dolgu { background: var(--vurgu); }
.cubuk .cubuk-ad, .cubuk .cubuk-deger { font-size: 11px; color: var(--soluk); white-space: nowrap; font-variant-numeric: tabular-nums; }
.cubuklar.buyuk .cubuk-ad, .cubuklar.buyuk .cubuk-deger { font-size: 12px; }
.grafik-not { padding: 0 16px 16px; font-size: 13px; color: var(--soluk); margin: 0; }

/* Bekleyen isler listesi (Panel) */
.is-listesi a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--ic-cizgi);
  text-decoration: none;
}
.is-listesi a:last-child { border-bottom: 0; }
.is-listesi a:hover { background: #faf9f7; }
.is-listesi .is-ad { flex: 1; min-width: 0; }
.is-listesi svg { color: var(--soluk); flex-shrink: 0; }

/* Uclu kart duzeni (Panel orta sira) */
.uclu {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
.uclu > * { min-width: 0; }
.buyuk-sayi { font-family: var(--serif); font-size: 28px; line-height: 1.1; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.kart .kart-govde > * + * { margin-top: 12px; }
.kart .kart-govde > p { margin-bottom: 0; }

/* Yaslandirma seridi (Cari ekstre, Raporlar) */
.yas-serit { display: flex; flex-wrap: wrap; border: 1px solid var(--cizgi); }
.yas-serit > div { flex: 1 1 0; min-width: 120px; padding: 14px 16px; border-left: 1px solid var(--cizgi); }
.yas-serit > div:first-child { border-left: 0; }
.yas-serit .etiket { font-size: 12px; color: var(--soluk); }
.yas-serit .deger { margin-top: 6px; font-family: var(--serif); font-size: 22px; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }

/* Giris ekrani (akromatik): beyaz zemin, kare kutu, serif baslik */
.giris-govde { display: grid; place-items: center; min-height: 100vh; padding: 24px 16px; background: var(--zemin); }
.giris-kutu {
  width: 380px;
  max-width: 100%;
  padding: 32px 28px 28px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
}
.giris-kutu h1 { margin: 0 0 4px; font-family: var(--serif); font-weight: 400; font-size: 30px; line-height: 1.1; letter-spacing: -0.02em; }
.giris-kutu .giris-alt { margin: 0 0 24px; font-size: 13px; color: var(--soluk); }
.giris-kutu button { width: 100%; margin-top: 8px; min-height: 44px; }

/* ---- 900px alti: kenar menusu yerine alt sekme cubugu ---- */
@media (max-width: 900px) {
  .sayfa { margin-left: 0; }
  .ust { display: none; }
  /* "Diger" acinca tam menu ekrani kaplar */
  body.menu-acik { overflow: hidden; }
  body.menu-acik .ust {
    display: flex;
    width: auto;
    right: 0;
    bottom: var(--alt-menu-yukseklik);
    border-right: 0;
    border-bottom: 1px solid var(--cizgi);
    z-index: 40;
  }
  body.menu-acik .ust nav a { min-height: 44px; }
  .menu-kapat {
    display: inline-flex;
    position: absolute;
    top: 14px;
    right: 14px;
    min-height: 44px;
  }
  .sayfa-baslik { align-items: center; padding: 18px 16px 14px; gap: 12px; }
  .sayfa-baslik .sayfa-marka { display: block; }
  .sayfa-baslik h1 { font-size: 26px; line-height: 1.1; }
  .sayfa-baslik .alt-baslik { display: none; }
  .sayfa-baslik .avatar { display: inline-flex; width: 36px; height: 36px; order: 2; }
  .sayfa-aksiyon { order: 3; flex-basis: 100%; }
  .sayfa-aksiyon > * { flex: 1 1 auto; min-height: 44px; }
  main { padding: 16px 16px calc(var(--alt-menu-yukseklik) + 24px); }
  main > * + * { margin-top: 14px; }
  .alt-menu {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 30;
    height: var(--alt-menu-yukseklik);
    background: #ffffff;
    border-top: 1px solid var(--cizgi);
  }
  .alt-menu a, .alt-menu button {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 6px 0 8px;
    border: 0;
    background: transparent;
    color: var(--soluk);
    font-size: 11px;
    text-decoration: none;
  }
  .alt-menu a:hover, .alt-menu button:hover { background: transparent; color: var(--metin); }
  .alt-menu a.aktif, .alt-menu button[aria-expanded="true"] { color: var(--metin); }
  .alt-menu .menu-sayi { position: absolute; top: 2px; left: calc(50% + 6px); margin: 0; min-width: 18px; height: 18px; font-size: 11px; }
  .uclu { grid-template-columns: 1fr; }
  .kutular { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kutu { padding: 14px; }
  .kutu .deger { font-size: 24px; }
  .kart-baslik { min-height: 48px; }
  button, .dugme, .hap { min-height: 44px; }
  input[type=text], input[type=search], input[type=date], input[type=number], input[type=email],
  input[type=password], input:not([type]), select { min-height: 44px; }
  .bolumlu button { min-height: 44px; }
  .arama { max-width: none; }
}

/* Kart basligi h2 (anlamsal baslik, gorsel olarak kart basligi) */
.kart-ad { margin: 0; font-size: 15px; font-weight: 400; }
/* Panel "Bekleyen isler": satirlar a.kutu (baglanti + sayi rozeti) */
.is-listesi a.kutu {
  flex-direction: row;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--ic-cizgi);
}
.is-listesi a.kutu:last-child { border-bottom: 0; }
.is-listesi .etiket { font-size: 14px; color: var(--metin); text-transform: none; letter-spacing: 0.01em; }
.is-listesi .deger {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border-radius: var(--hap);
  background: var(--zemin);
  color: var(--soluk);
  font-family: var(--yazi);
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0;
}
.is-listesi .deger.uyari { background: var(--uyari-zemin); color: var(--uyari); }
.is-listesi #k-teslim.uyari { background: var(--bilgi-zemin); color: var(--bilgi); }
.is-listesi #k-taslak.uyari { background: var(--zemin); color: var(--metin); }
.buyuk-sayi.uyari { color: var(--uyari); }
.mobil-yalniz { display: none; }
@media (max-width: 900px) {
  a.dugme.mobil-yalniz, .mobil-yalniz { display: flex; min-height: 48px; }
}
/* Sayfa kabi (#panel gibi tek sarmalayici) icindeki bloklar da aralikli */
#panel > * + * { margin-top: 20px; }
@media (max-width: 900px) {
  #panel > * + * { margin-top: 14px; }
}

/* Arac satiri: suzgecler kartin ustunde, kartsiz */
.arac-satiri { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; }
.arac-satiri .sag { margin-left: auto; }
.arac-satiri label { margin: 0; }
.onay-kutu { display: inline-flex; align-items: center; gap: 8px; min-height: 38px; font-size: 13px; color: var(--metin); margin: 0; }
.onay-kutu input { width: 18px; height: 18px; margin: 0; }
.gizli-secim { display: none; }
.rozet.uyari-rozet, .rozet.eksi-rozet { margin-left: 6px; vertical-align: middle; }
@media (max-width: 900px) {
  .arac-satiri .sag { margin-left: 0; flex-basis: 100%; }
  .onay-kutu { min-height: 44px; }
  .bolumlu { border: 0; gap: 8px; }
  .bolumlu button, .bolumlu button:first-child { border: 1px solid var(--cizgi); border-radius: var(--hap); }
  .bolumlu button[aria-pressed="true"] { border-color: var(--vurgu); }
}
/* Tablo ici baglantilar: sakin alt cizgi, uzerine gelince koyu */
table.veri td a, table.fatura td a { text-decoration-color: #c4c2bd; text-underline-offset: 3px; }
table.veri td a:hover, table.fatura td a:hover { text-decoration-color: currentColor; }
.serit a { color: inherit; text-underline-offset: 3px; }
.satir-etiket { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; color: var(--soluk); }
.satir-etiket input { width: 160px; margin: 0; display: inline-block; }
@media (max-width: 900px) {
  .satir-etiket { flex: 1 1 140px; flex-direction: column; align-items: stretch; gap: 4px; }
  .satir-etiket input { width: 100%; }
}
/* hidden ozniteligi her display kuralini ezer (dugmeler inline-flex) */
[hidden] { display: none !important; }
.fatura-cerceve { border: 1px solid var(--cizgi); background: var(--kart); }
.fatura-cerceve table.fatura th:first-child, .fatura-cerceve table.fatura td:first-child { padding-left: 12px; }
.fatura-ust label { flex: 0 1 170px; min-width: 140px; }
.fatura-ust label:first-of-type { flex: 0 1 320px; }
.fatura-ust label:has(#notlar) { flex: 1 1 200px; max-width: 320px; }
@media (max-width: 900px) {
  .fatura-ust label, .fatura-ust label:first-of-type { flex: 1 1 100%; max-width: none; }
  .fatura-ust .aksiyon { margin-left: 0; }
}
@media (min-width: 1100px) {
  .fatura-ust { flex-wrap: nowrap; }
  .fatura-ust label { min-width: 0; }
}
/* Transfer formu: onay/eksik uyarisi ve red notu amber serit */
#bilgi.uyari, #red-notu.uyari { margin-bottom: 0; padding: 14px 16px; background: var(--uyari-zemin); color: var(--uyari); }
#kimler:empty, #toplam:empty { display: none; }
.teslim-kutu { padding: 16px; border: 1px solid var(--cizgi); background: var(--kart); }
.transfer-ust .aksiyon { flex-wrap: wrap; }
@media (max-width: 900px) {
  .fatura-cerceve { border: 0; }
}
table.fatura td.sayi { text-align: right; font-variant-numeric: tabular-nums; }
.fatura-ust.transfer-ust { flex-wrap: wrap; }
.fatura-ust.transfer-ust label { flex: 1 1 160px; max-width: 260px; }
@media (max-width: 900px) {
  .fatura-ust label:has(#notlar), .fatura-ust.transfer-ust label { flex: 1 1 100%; max-width: none; }
}
/* Baslikta buyuk bakiye: etiket ustte kucuk, tutar serif */
.baslik-bakiye { display: flex; flex-direction: column; align-items: flex-end; font-size: 12px; color: var(--soluk); }
.baslik-bakiye .serif { font-size: 32px; line-height: 1.05; color: var(--metin); font-variant-numeric: tabular-nums; }
@media (max-width: 900px) {
  .baslik-bakiye { align-items: flex-start; }
  .baslik-bakiye .serif { font-size: 26px; }
}
/* Raporlar: grafik ve donem ozeti yan yana */
.grafik-duzen { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; align-items: start; }
.grafik-duzen > * { min-width: 0; }
.ozet-listesi > div { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--ic-cizgi); }
.ozet-listesi > div > span:first-child { color: var(--soluk); }
.grafik-not { padding-top: 14px; }
@media (max-width: 900px) {
  .grafik-duzen { grid-template-columns: 1fr; }
  .cubuklar { gap: 6px; padding: 16px 12px 12px; }
  .cubuklar.buyuk .cubuk-deger { font-size: 10px; }
}
.cubuk .cubuk-alan { max-width: 72px; }
main > p:first-child { margin-top: 0; }
/* Sayfa ici sekmeye gidince kart basligi kenar ustunde kalsin */
.kart[id] { scroll-margin-top: 16px; }
@media (max-width: 900px) {
  .sekmeler { gap: 0 20px; }
  .sekmeler a { white-space: nowrap; min-height: 44px; }
}
/* Stok, 900px alti (MobilStok): her satir bir blok; urun ve depo solda,
   miktar ve birim sagda, deger altinda. Kategori ve ortalama maliyet
   masaustunde. Hucreler DOM'da ayni sirada kalir. */
@media (max-width: 900px) {
  table.stok-tablo, table.stok-tablo tbody { display: block; }
  table.stok-tablo thead { display: none; }
  table.stok-tablo tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: 6px;
    align-items: center;
    padding: 12px 14px;
    border-bottom: 1px solid var(--ic-cizgi);
  }
  table.stok-tablo td { display: block; height: auto; padding: 0; border: 0; }
  table.stok-tablo td:nth-child(1) { grid-column: 1 / 2; grid-row: 1; overflow-wrap: anywhere; }
  table.stok-tablo td:nth-child(2), table.stok-tablo td:nth-child(6) { display: none; }
  table.stok-tablo td:nth-child(3) { grid-column: 1 / 2; grid-row: 2; font-size: 12px; color: var(--soluk); }
  table.stok-tablo td:nth-child(4) { grid-column: 2; grid-row: 1; }
  table.stok-tablo td:nth-child(5) { grid-column: 3; grid-row: 1; }
  table.stok-tablo td:nth-child(7) { grid-column: 2 / 4; grid-row: 2; font-size: 12px; color: var(--soluk); text-align: right; }
  .kart:has(table.stok-tablo) { overflow-x: visible; }
}
.giris-govde { grid-template-columns: minmax(0, 380px); justify-content: center; }
.giris-kutu { width: auto; min-width: 0; overflow-wrap: anywhere; }

/* A: fatura urun onerisi (FaturaGiris tasarimi). Tek liste, acik urun
   alaninin hemen altinda, alanla ayni genislikte; beyaz, 1px grafit cizgi.
   Konum kabi .fatura-cerceve.urun-oneri-kabi (yalniz fatura formu). Liste
   acikken #urun-oneri-bosluk ipuclari satirini asagi iter; z-index yine de
   ipuclari ve alttaki dugmelerin ustunde. */
.fatura-cerceve.urun-oneri-kabi { position: relative; }
#urun-oneri {
  position: absolute;
  z-index: 30;
  box-sizing: border-box;
  max-height: 316px;
  overflow-y: auto;
  background: var(--kart);
  border: 1px solid var(--vurgu);
  font-size: 13px;
}
#urun-oneri[hidden] { display: none; }
#urun-oneri [role="option"] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 9px 12px;
  cursor: pointer;
}
#urun-oneri [role="option"][aria-selected="true"] { background: var(--zemin); }
#urun-oneri .oneri-ad { min-width: 0; overflow-wrap: anywhere; }
#urun-oneri .oneri-ipucu { flex-shrink: 0; font-size: 12px; color: var(--soluk); white-space: nowrap; }
#urun-oneri-bosluk { height: 0; }
/* Fatura urun alani acilir liste oku: alanin sag icinde, tiklaninca tum
   urunler listelenir. Arama (yazarak suzme) aynen surer. */
table.fatura .urun-kutu { position: relative; display: block; }
table.fatura .urun-kutu input { padding-right: 34px; }
table.fatura button.urun-ac {
  position: absolute;
  top: 1px;
  right: 1px;
  bottom: 1px;
  width: 32px;
  padding: 0;
  border: 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  background: transparent;
  color: var(--soluk);
  cursor: pointer;
}
table.fatura button.urun-ac::after {
  content: '';
  display: block;
  margin: auto;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
table.fatura button.urun-ac:hover { color: var(--vurgu); background: var(--zemin); }
table.fatura input[aria-expanded="true"] + button.urun-ac::after { transform: translateY(2px) rotate(-135deg); }

/* A: Ayarlar depo tablosu. Islem sutunu: Duzenle, Pasif yap, Sil; satirda
   yerinde duzenleme (ad, tip, varsayilan). */
table.depo-tablo th.depo-islem-baslik { width: 1%; }
table.depo-tablo .gizli-etiket {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
table.depo-tablo td.depo-islem { white-space: nowrap; text-align: right; }
table.depo-tablo td.depo-islem button + button { margin-left: 6px; }
table.depo-tablo button.tehlikeli { color: var(--kotu); }
table.depo-tablo tr.pasif td:first-child { color: var(--soluk); }
table.depo-tablo tr.duzenleniyor input[data-alan="ad"] { width: 100%; min-width: 120px; box-sizing: border-box; }
table.depo-tablo tr.duzenleniyor select { width: 100%; min-width: 90px; }
table.depo-tablo label.depo-varsayilan { display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
table.depo-tablo label.depo-varsayilan input { width: auto; margin: 0; }
/* 900px alti: her depo bir blok; ad ve tip ustte, varsayilan notu ve
   dugmeler altta (tablo kart icinde yana kaymaz). Hucreler DOM'da ayni. */
@media (max-width: 900px) {
  table.depo-tablo, table.depo-tablo tbody { display: block; }
  table.depo-tablo thead { display: none; }
  table.depo-tablo tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 10px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--ic-cizgi);
  }
  table.depo-tablo td { display: block; height: auto; padding: 0; border: 0; }
  table.depo-tablo td:nth-child(1) { grid-column: 1; grid-row: 1; overflow-wrap: anywhere; }
  table.depo-tablo td:nth-child(2) { grid-column: 2; grid-row: 1; color: var(--soluk); font-size: 13px; }
  table.depo-tablo td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; color: var(--soluk); font-size: 13px; }
  table.depo-tablo td:nth-child(3):empty { display: none; }
  table.depo-tablo tr:not(.duzenleniyor) td:nth-child(3)::before { content: 'Varsayılan: '; }
  table.depo-tablo td.depo-islem { grid-column: 1 / -1; grid-row: 3; text-align: left; white-space: normal; }
  table.depo-tablo td.depo-islem button { min-height: 40px; }
  table.depo-tablo tr.duzenleniyor td:nth-child(1) { grid-column: 1 / -1; }
  table.depo-tablo tr.duzenleniyor td:nth-child(2) { grid-column: 1; grid-row: 2; }
  table.depo-tablo tr.duzenleniyor td:nth-child(3) { grid-column: 2; grid-row: 2; }
}

/* Faz 3 (halka 10): Ayarlar > Subeler, Depo turleri, transfer izin matrisi
   ve Tehlikeli bolge. Depo tablosunun sutun sayisi 5'e ciktigi icin dar
   ekran yerlesimi burada yeniden yazilir (ustteki blok oldugu gibi kalir,
   sonraki kural kazanir). */
table.sube-tablo th.sube-islem-baslik,
table.tur-tablo th.tur-islem-baslik { width: 1%; }
table.sube-tablo .gizli-etiket,
table.tur-tablo .gizli-etiket {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}
table.sube-tablo td.sube-islem,
table.tur-tablo td.tur-islem { white-space: nowrap; text-align: right; }
table.sube-tablo td.sube-islem button + button,
table.tur-tablo td.tur-islem button + button { margin-left: 6px; }
table.sube-tablo button.tehlikeli,
table.tur-tablo button.tehlikeli { color: var(--kotu); }
table.sube-tablo tr.pasif td:first-child { color: var(--soluk); }
table.sube-tablo tr.duzenleniyor input[data-alan="ad"],
table.tur-tablo tr.duzenleniyor input[data-alan="ad"] { width: 100%; min-width: 120px; box-sizing: border-box; }
table.sube-tablo tr.duzenleniyor input[data-alan="sira"],
table.tur-tablo tr.duzenleniyor input[data-alan="sira"] { width: 100%; min-width: 64px; box-sizing: border-box; }
.tur-sistem { color: var(--soluk); font-size: 13px; }
/* Subeye kullanici atama paneli: sube satirinin altinda acilir */
table.sube-tablo tr.sube-atama td { background: var(--zemin); }
table.sube-tablo tr.sube-atama fieldset { border: 0; margin: 0; padding: 4px 0; }
table.sube-tablo tr.sube-atama legend { font-size: 13px; font-weight: 600; padding: 0; margin-bottom: 4px; }
table.sube-tablo .atama-kutulari { display: flex; flex-wrap: wrap; gap: 0 20px; }
table.sube-tablo .atama-dugmeleri { margin-top: 8px; }
table.sube-tablo .atama-dugmeleri button + button { margin-left: 6px; }
span.alt-not.satir-ici { display: inline; }

/* Transfer izin matrisi: roller matrisiyle ayni kap, sade baslik. */
.izin-bolumu { margin-top: 24px; border-top: 1px solid var(--cizgi); padding-top: 16px; }
.izin-bolumu h3 { margin: 0 0 4px; font-size: 14px; }
table.izin-matris { min-width: 0; }
table.izin-matris th.izin-adi { white-space: normal; }

/* Tehlikeli bolge: kirmizimsi cerceve, sayfanin en altinda. */
.kart.tehlikeli-bolge { border-color: var(--kotu); }
.kart.tehlikeli-bolge .kart-baslik { color: var(--kotu); border-bottom-color: var(--kotu); }
.kart.tehlikeli-bolge button.tehlikeli {
  background: var(--kotu); border-color: var(--kotu); color: #ffffff;
}
.kart.tehlikeli-bolge input[name="onay"] { max-width: 260px; }

/* Depo tablosu, dar ekran (yeni sutun duzeni: ad, sube, tip, varsayilan). */
@media (max-width: 900px) {
  table.sube-tablo, table.sube-tablo tbody,
  table.tur-tablo, table.tur-tablo tbody { display: block; }
  table.sube-tablo thead, table.tur-tablo thead { display: none; }
  table.sube-tablo tr, table.tur-tablo tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 10px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--ic-cizgi);
  }
  table.sube-tablo td, table.tur-tablo td { display: block; height: auto; padding: 0; border: 0; }
  table.sube-tablo td:nth-child(1), table.tur-tablo td:nth-child(1) { grid-column: 1; grid-row: 1; overflow-wrap: anywhere; }
  table.sube-tablo td:nth-child(2), table.tur-tablo td:nth-child(2) { grid-column: 2; grid-row: 1; color: var(--soluk); font-size: 13px; }
  table.sube-tablo td:nth-child(3), table.tur-tablo td:nth-child(3) { grid-column: 1 / -1; grid-row: 2; color: var(--soluk); font-size: 13px; }
  table.sube-tablo tr:not(.duzenleniyor) td:nth-child(3)::before { content: 'Sıra: '; }
  table.tur-tablo tr:not(.duzenleniyor) td:nth-child(2)::before { content: 'Sıra: '; }
  table.tur-tablo tr:not(.duzenleniyor) td:nth-child(3)::before { content: 'Depo: '; }
  table.sube-tablo td.sube-islem, table.tur-tablo td.tur-islem {
    grid-column: 1 / -1; grid-row: 3; text-align: left; white-space: normal;
  }
  table.sube-tablo td.sube-islem button, table.tur-tablo td.tur-islem button { min-height: 40px; }
  table.sube-tablo tr.duzenleniyor td:nth-child(1),
  table.tur-tablo tr.duzenleniyor td:nth-child(1) { grid-column: 1 / -1; }
  table.sube-tablo tr.sube-atama td:nth-child(1) { grid-column: 1 / -1; padding: 8px; }
  table.sube-tablo .atama-kutulari { flex-direction: column; }

  /* Depo satiri: ad + tip ustte, sube ve varsayilan alt satirlarda */
  table.depo-tablo td:nth-child(2) {
    grid-column: 1 / -1; grid-row: 2; color: var(--soluk); font-size: 13px;
  }
  table.depo-tablo td:nth-child(2):empty { display: none; }
  table.depo-tablo tr:not(.duzenleniyor) td:nth-child(2):not(:empty)::before { content: 'Şube: '; }
  table.depo-tablo td:nth-child(3) {
    grid-column: 2; grid-row: 1; color: var(--soluk); font-size: 13px;
  }
  table.depo-tablo tr:not(.duzenleniyor) td:nth-child(3)::before { content: none; }
  table.depo-tablo td:nth-child(4) {
    grid-column: 1 / -1; grid-row: 3; color: var(--soluk); font-size: 13px;
  }
  table.depo-tablo td:nth-child(4):empty { display: none; }
  table.depo-tablo tr:not(.duzenleniyor) td:nth-child(4)::before { content: 'Varsayılan: '; }
  table.depo-tablo td.depo-islem { grid-row: 4; }
  table.depo-tablo tr.duzenleniyor td:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  table.depo-tablo tr.duzenleniyor td:nth-child(3) { grid-column: 1; grid-row: 3; }
  table.depo-tablo tr.duzenleniyor td:nth-child(4) { grid-column: 2; grid-row: 3; }
  table.depo-tablo tr.duzenleniyor td.depo-islem { grid-row: 4; }
}

/* Faz 4: siparisler. Yeni gorsel dil yok: rozet renkleri transfer
   durumlariyla ayni aileden, pencere .kart ile. */
.rozet.bekliyor, .rozet.mudur_onayi { background: var(--uyari-zemin); color: var(--uyari); }
.rozet.satin_almada, .rozet.tedarikciye_verildi, .rozet.karsilaniyor { background: var(--bilgi-zemin); color: var(--bilgi); }
.rozet.tamamlandi { background: var(--iyi-zemin); color: var(--iyi); }
.rozet.reddedildi { background: var(--kotu-zemin); color: var(--kotu); }
table.veri.secim.siparis-listesi td { padding: 12px 12px; }
table.veri.secim.siparis-listesi th { padding: 10px 12px; }
table.veri.secim.siparis-listesi td.rozet-hucre { width: 1%; white-space: nowrap; text-align: right; }
table.veri.secim.siparis-listesi .rozet.uyari-rozet { margin: 4px 0 0; }
.siparis-kaynak[hidden] { display: none; }
#siparis-ayrinti .transfer-ust.salt-okunur { display: none; }
.fatura-cerceve.siparis-oneri-kabi { position: relative; }
.siparis-baglanti:empty { display: none; }
/* Pencere (dialog): ortada tek kart, arkasi karartilir */
dialog.pencere { padding: 0; border: 0; background: transparent; width: min(560px, calc(100% - 32px)); max-height: calc(100vh - 32px); overflow: auto; }
dialog.pencere::backdrop { background: rgba(20, 20, 20, .35); }
dialog.pencere .kart { margin: 0; }
dialog.pencere .form-dugmeler { justify-content: flex-end; margin-top: 4px; }
@media (max-width: 900px) {
  dialog.pencere .form-izgara { grid-template-columns: 1fr; }
}
#kaynak-secim { align-self: flex-start; }

/* Faz 4: bildirim zili (sayfa basliginda). Yeni gorsel dil yok: dugme
   .ikincil, sayi menudeki amber .menu-sayi, acilir liste .kart. Masaustunde
   zil sagdaki eylemlerin solunda; 900px altinda avatarin solunda, liste
   basligin altinda tam genislik. */
.zil { position: relative; margin-left: auto; }
.zil-dugme { position: relative; padding: 0 10px; }
.zil-dugme .menu-sayi { margin-left: 0; }
.zil-liste {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 35;
  width: 380px;
  max-height: min(70vh, 520px);
  overflow-y: auto;
  box-shadow: 0 8px 24px rgba(20, 20, 20, .12);
}
.zil-liste[hidden] { display: none; }
.zil-liste .kart-baslik > button { margin-left: auto; }
.zil-satirlar { list-style: none; margin: 0; padding: 0; }
.zil-satirlar li + li { border-top: 1px solid var(--ic-cizgi); }
.zil-satirlar a { display: block; padding: 10px 16px; color: var(--soluk); text-decoration: none; }
.zil-satirlar a:hover { background: var(--zemin); }
.zil-satirlar a.okunmadi { color: var(--metin); border-left: 3px solid var(--uyari); padding-left: 13px; }
.zil-satirlar .zil-zaman { display: block; margin-top: 2px; font-size: 12px; color: var(--soluk); }
.zil-bos { margin: 0; padding: 14px 16px; }
@media (max-width: 900px) {
  .sayfa-baslik { position: relative; }
  .zil { position: static; order: 1; }
  .zil-dugme { min-width: 44px; }
  .zil-liste { left: 16px; right: 16px; width: auto; top: calc(100% - 6px); }
}
/* Raporlar > Subeler detayi: grup satiri kalin, alt satir girintili */
.sube-detay > * + * { margin-top: 16px; }
.sube-detay .arac-satiri h2 { margin: 0; }
table.veri tr.grup-satir td { font-weight: 600; }
table.veri tr.alt-satir td:first-child { padding-left: 28px; color: var(--soluk); }

/* Faz 7: sayim ve fire. Yeni gorsel dil yok: rozetler transfer ve siparis
   ailesinden, fark renkleri mevcut iyi/kotu tokenlari. */
.rozet.acik { background: var(--bilgi-zemin); color: var(--bilgi); }
.rozet.onaylandi { background: var(--iyi-zemin); color: var(--iyi); }
table.sayim-tablo td.fark.eksi, table.veri td.eksi { color: var(--kotu); }
table.sayim-tablo td.fark.arti { color: var(--iyi); }
table.sayim-tablo td.fark.hatali { color: var(--kotu); font-weight: 600; }
table.sayim-tablo input.sayilan { width: 110px; text-align: right; }
table.sayim-tablo select.paket { max-width: 150px; }
/* Panel: fire ve sayim kutulariyla alti kutu, iki sira ucer (5+1 bosluk birakmasin) */
@media (min-width: 901px) {
  .kutular.altili { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
table.sayim-tablo td.birim { white-space: nowrap; }
@media (max-width: 900px) {
  table.sayim-tablo input.sayilan { width: 84px; }
}

/* Faz 8: receteler. Hedef asimi kotu, fiyat eksigi uyari rengi (mevcut tokenlar). */
table#receteler tr.asim td.yuzde, table#receteler tr.asim td.marj { color: var(--kotu); font-weight: 600; }
table#receteler tr.eksik td.maliyet { color: var(--uyari); }
.depo-secim-kap { position: relative; }
.depo-liste { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; min-width: 260px; padding: 10px 14px;
  display: grid; gap: 6px; box-shadow: 0 8px 24px rgba(20, 20, 20, .12); }
.depo-liste[hidden] { display: none; }
table.recete-tablo input.miktar, table.recete-tablo input.fire { width: 90px; text-align: right; }
/* Miktar ve Fire % basliklari saga yasli: kutular da hucrenin sagina yaslanir */
table.recete-tablo td.miktar { text-align: right; }
table.recete-tablo input.malzeme { min-width: 260px; }
table.recete-tablo tr.eksik input.malzeme { border-color: var(--kotu); }
.recete-ozet { margin-top: 16px; max-width: 420px; }
#ozet-yuzde.eksi { color: var(--kotu); }

/* Satis urunleri: menuden kalkan satir soluk; recetesiz satirda "Yok" */
table.satis-urunleri tr.soluk td { color: var(--soluk); }
table.satis-urunleri .soluk { color: var(--soluk); }
table.satis-urunleri a.recete-ac { white-space: nowrap; }
@media (max-width: 900px) {
  /* Satis urunleri dar ekranda: ad ve fiyat ustte, kategori ve kod altta,
     recete dugmesi tam satir. Tablo kabi yatay kaymaz. */
  table.satis-urunleri, table.satis-urunleri tbody { display: block; width: 100%; }
  table.satis-urunleri thead { display: none; }
  table.satis-urunleri tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--cizgi);
  }
  table.satis-urunleri td { display: block; padding: 0; border: 0; min-width: 0; }
  table.satis-urunleri td:nth-child(2) { grid-column: 1; grid-row: 1; font-weight: 600; overflow-wrap: anywhere; }
  table.satis-urunleri td:nth-child(4) { grid-column: 2; grid-row: 1; }
  table.satis-urunleri td:nth-child(1) { grid-column: 1; grid-row: 2; font-size: 12px; }
  table.satis-urunleri td:nth-child(3) { grid-column: 2; grid-row: 2; font-size: 12px; text-align: right; }
  table.satis-urunleri td:nth-child(5) { grid-column: 1 / -1; grid-row: 3; padding-top: 6px; }
  table.satis-urunleri a.recete-ac { display: flex; justify-content: center; min-height: 44px; align-items: center; }
  .kart:has(table.satis-urunleri) { overflow-x: visible; }
}

/* Ayarlar > Menutakibi baglantisi karti */
#menutakibi-kart label { display: block; margin-bottom: 12px; }
#menutakibi-kart label input { display: block; width: 100%; margin-top: 4px; }
#menutakibi-kart .dugme-satiri { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
#menutakibi-kart #mt-mesaj:empty { display: none; }

/* Recete formu Ad: satis urunu acilir listesi (fatura urun alaniyla ayni gorunum) */
.recete-ad-kutu { position: relative; display: block; }
.recete-ad-kutu input { width: 100%; padding-right: 34px; }
.recete-ad-kutu button.urun-ac {
  position: absolute;
  top: 1px;
  right: 1px;
  bottom: 1px;
  width: 32px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0 var(--radius) var(--radius) 0;
  background: transparent;
  color: var(--soluk);
  cursor: pointer;
}
.recete-ad-kutu button.urun-ac[hidden] { display: none; }
.recete-ad-kutu button.urun-ac::after {
  content: '';
  display: block;
  margin: auto;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.recete-ad-kutu button.urun-ac:hover { color: var(--vurgu); background: var(--zemin); }
.recete-ad-kutu input[aria-expanded="true"] + button.urun-ac::after { transform: translateY(2px) rotate(-135deg); }
#ad-oneri {
  position: absolute;
  z-index: 30;
  left: 0;
  top: calc(100% + 2px);
  width: max(100%, 260px);
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
  max-height: 316px;
  overflow-y: auto;
  background: var(--kart);
  border: 1px solid var(--vurgu);
  font-size: 13px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
}
#ad-oneri[hidden] { display: none; }
#ad-oneri [role="option"] {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 9px 12px;
  cursor: pointer;
  color: var(--metin);
}
#ad-oneri [role="option"][aria-selected="true"] { background: var(--zemin); }
#ad-oneri .oneri-ad { min-width: 0; overflow-wrap: anywhere; }
#ad-oneri .oneri-ipucu { flex-shrink: 0; font-size: 12px; color: var(--soluk); white-space: nowrap; }

/* Satislar: ozet kutulari ve tablo; dar ekranda kart satirlari */
.satis-arac { flex-wrap: wrap; gap: 8px 12px; }
.satis-ozet {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  margin: 8px 0 12px;
}
.satis-ozet > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--radius);
}
.satis-ozet span { font-size: 12px; color: var(--soluk); }
.satis-ozet strong { font-size: 18px; font-variant-numeric: tabular-nums; }
table.satislar td.durum { white-space: nowrap; }
table.satislar .soluk { color: var(--soluk); font-size: 12px; }
table.satislar a.recete-ac { white-space: nowrap; }
@media (max-width: 900px) {
  table.satislar, table.satislar tbody { display: block; width: 100%; }
  table.satislar thead { display: none; }
  table.satislar tr {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--cizgi);
  }
  table.satislar td { display: block; padding: 0; border: 0; min-width: 0; }
  table.satislar td.ad { flex: 1 1 100%; font-weight: 600; overflow-wrap: anywhere; }
  table.satislar td.durum { flex: 1 1 100%; white-space: normal; }
  table.satislar td.kategori { flex: 1 1 100%; font-size: 12px; }
  table.satislar td.kategori:empty { display: none; }
  table.satislar td[data-etiket] { flex: 0 1 auto; text-align: left; font-variant-numeric: tabular-nums; }
  table.satislar td[data-etiket]::before {
    content: attr(data-etiket);
    display: block;
    font-size: 11px;
    color: var(--soluk);
    text-transform: uppercase;
  }
  .kart:has(table.satislar) { overflow-x: visible; }
}

/* Ayarlar > Satis stok dusumu karti */
#satis-dusum-kart .sd-satir { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin-bottom: 12px; }
#satis-dusum-kart .sd-satir label { display: flex; flex-direction: column; gap: 4px; min-width: 160px; }
#satis-dusum-kart .sd-baslik { font-size: 14px; margin: 16px 0 4px; }
#satis-dusum-kart .sd-tablo td.sag { text-align: right; }
#satis-dusum-kart #sd-mesaj:empty { display: none; }
.kart.dusulmeyenler ul { list-style: none; margin: 0; padding: 8px 16px 12px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }

/* Ayarlar > Yedek karti */
#yedek-kart .yedek-baslik { font-size: 14px; margin: 18px 0 4px; }
#yedek-kart .yedek-satir { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 12px; margin: 8px 0; }
#yedek-kart .yedek-satir label { display: flex; flex-direction: column; gap: 4px; min-width: 200px; }
#yedek-kart .yedek-liste { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
#yedek-kart .yedek-liste li { display: flex; align-items: center; gap: 12px; }
#yedek-kart form.satir-ici { display: inline; margin: 0; }
#yedek-kart #yedek-mesaj:empty { display: none; }

/* Yatay kayan tablo kabinda yapiskan baslik calismaz (kap kaydirma kabi);
   etkisiz sticky kapatilir, gorunum ayni kalir (29.09 sayim duzeltme) */
.fatura-tablo-kabi table.veri th { position: static; }

/* Rapor Merkezi (rapor_olustur.php): solda hazir rapor katalogu, sagda
   ayarlar ve sonuc. Coklu secim paneli kartin disina tasar (kart
   kaydirmasi kapali). Yazdirmada yalniz baslik, ozet ve tablo kalir. */
.rm-duzen { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 20px; align-items: start; }
.rm-katalog { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; }
/* Kodla rapor secici (combobox): kutu + ok; acilir liste aile gruplu */
.rm-secici { position: relative; }
.rm-secici-kutu { display: flex; border: 1px solid var(--cizgi); background: var(--kart); }
.rm-secici-kutu:focus-within { outline: 2px solid var(--vurgu); outline-offset: -2px; border-color: var(--vurgu); }
.rm-secici-kutu input.rm-secici-girdi { flex: 1; min-width: 0; border: 0; background: transparent; }
.rm-secici-kutu input.rm-secici-girdi:focus { outline: none; }
.rm-secici-ac { min-height: 38px; padding: 0 10px; border: 0; border-left: 1px solid var(--cizgi); background: transparent; color: var(--soluk); }
.rm-secici-ac:hover { background: var(--zemin); color: var(--metin); }
.rm-ok { width: 16px; height: 16px; flex: none; color: var(--soluk); transition: transform .18s ease; }
.rm-secici[data-acik="1"] .rm-secici-ac .rm-ok, .rm-aile[data-acik="1"] .rm-ok { transform: rotate(180deg); color: var(--metin); }
.rm-secici-liste {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 20;
  max-height: 360px;
  overflow-y: auto;
  padding: 4px 0;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}
.rm-secici-grup-ad { display: flex; gap: 8px; padding: 10px 10px 4px; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--soluk); }
.rm-secici-grup-ad .rm-kod { min-width: 0; font-size: 11px; }
.rm-secenek { display: flex; align-items: baseline; gap: 8px; padding: 7px 10px; font-size: 13px; color: var(--metin); cursor: pointer; }
.rm-secenek:hover { background: var(--zemin); }
.rm-secenek[aria-selected="true"] { background: var(--vurgu); color: #ffffff; }
.rm-secenek[aria-selected="true"] .rm-kod { color: inherit; opacity: .8; }
.rm-secenek mark { background: none; color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rm-secici-yok { padding: 10px; font-size: 13px; color: var(--soluk); }
.rm-ipucu { margin: 6px 0 0; font-size: 12px; }
.rm-kod { flex: none; min-width: 44px; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--soluk); text-align: left; }
/* Hazir raporlar akordeonu: aile satiri (kod, ad, sayi, ok), acilinca raporlar */
.rm-hazir-bas { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 16px 0 4px; }
.rm-hazir-bas .rm-aile-ad { margin: 0; }
.rm-tumunu { min-height: 28px; padding: 0 4px; border: 0; background: transparent; color: var(--soluk); font-size: 12px; }
.rm-tumunu:hover { background: transparent; color: var(--metin); text-decoration: underline; }
.rm-aileler { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cizgi); }
.rm-aile { border-bottom: 1px solid var(--cizgi); }
.rm-aile-h { margin: 0; font: inherit; }
.rm-aile-bas { width: 100%; justify-content: flex-start; gap: 8px; min-height: 40px; padding: 6px 4px; border: 0; background: transparent; color: var(--metin); font-size: 13px; text-align: left; }
.rm-aile-bas:hover { background: var(--zemin); color: var(--metin); }
.rm-aile-baslik { flex: 1; min-width: 0; }
.rm-sayi { flex: none; padding: 0 7px; border: 1px solid var(--cizgi); border-radius: var(--hap); font-size: 11px; line-height: 18px; color: var(--soluk); font-variant-numeric: tabular-nums; }
.rm-aile-raporlar { padding-bottom: 6px; }
.rm-aile-bas:focus-visible, .rm-rapor:focus-visible, .rm-tumunu:focus-visible, .rm-sil:focus-visible { outline-offset: -2px; }
/* Secili (grafit zeminli) raporda cerceve beyaz; yoksa zeminle ayni renk olur, gorunmez */
.rm-rapor[aria-current="true"]:focus-visible { outline-color: #ffffff; outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) { .rm-ok { transition: none; } }
.rm-aile-ad { margin: 16px 0 4px; font-size: 11px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--soluk); }
.rm-liste { list-style: none; margin: 0; padding: 0; }
.rm-liste li { display: flex; align-items: stretch; }
.rm-rapor {
  flex: 1;
  justify-content: flex-start;
  min-height: 32px;
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: var(--metin);
  font-size: 13px;
  text-align: left;
}
.rm-rapor:hover { background: var(--zemin); color: var(--metin); }
.rm-rapor[aria-current="true"] { background: var(--vurgu); color: #ffffff; }
.rm-rapor { gap: 8px; }
.rm-rapor[aria-current="true"] .rm-kod { color: inherit; opacity: .8; }
.rm-sil { min-height: 32px; padding: 0 10px; border: 0; background: transparent; color: var(--soluk); }
.rm-sil:hover { background: var(--kotu-zemin); color: var(--kotu); }
.rm-ana { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.kart.rm-suzgec { overflow: visible; }
.rm-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 12px; }
.rm-satir label { margin: 0; }
.rm-etiket { min-width: 72px; font-size: 12px; color: var(--soluk); }
.rm-daha { margin-bottom: 12px; }
.rm-daha summary { cursor: pointer; font-size: 13px; margin-bottom: 8px; }
.rm-gizli { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rm-coklu { position: relative; display: flex; flex-direction: column; gap: 4px; }
.rm-coklu-ad { font-size: 12px; color: var(--soluk); }
.rm-coklu-dugme { justify-content: flex-start; min-width: 150px; max-width: 240px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.rm-coklu-panel {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 15;
  width: 280px;
  max-width: calc(100vw - 32px);
  padding: 8px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .08);
}
.rm-coklu-panel .arama { max-width: none; width: 100%; }
.rm-coklu-arac { margin-top: 6px; }
.rm-coklu-arac button { min-height: 30px; font-size: 12px; }
.rm-coklu-liste { list-style: none; margin: 6px 0 0; padding: 0; max-height: 260px; overflow-y: auto; }
.rm-coklu-liste label { display: flex; align-items: center; gap: 6px; margin: 0; padding: 5px 4px; font-size: 13px; color: var(--metin); cursor: pointer; }
.rm-coklu-liste input { margin: 0; }
.rm-kirilim { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; }
.rm-kirilim li {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  min-height: 32px;
  padding: 0 4px 0 12px;
  border-radius: var(--hap);
  background: var(--vurgu);
  color: #ffffff;
  font-size: 13px;
  cursor: grab;
}
.rm-kirilim li button { min-height: 26px; padding: 0 7px; border: 0; background: transparent; color: #ffffff; }
.rm-kirilim li button:disabled { opacity: .35; }
/* Cip zemini vurgu rengi: genel odak cizgisi (vurgu) gorunmez, beyaz ic cizgi */
.rm-kirilim li button:focus-visible { outline: 2px solid #ffffff; outline-offset: -3px; }
/* Kapali sayi ve secim kutulari (matriste Ilk N, siralama yonu) kapali gorunsun */
.rm-suzgec input:disabled, .rm-suzgec select:disabled { opacity: .55; cursor: default; background: var(--zemin); }
.rm-kirilim li.surukleniyor { opacity: .5; }
.rm-olculer { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.rm-olculer fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.rm-olculer legend { margin-bottom: 4px; padding: 0; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--soluk); }
.rm-olculer label { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; font-size: 13px; color: var(--metin); }
.rm-kesik { margin: 0; padding: 10px 14px; background: var(--uyari-zemin); color: var(--uyari); font-weight: 600; }
/* Uyarilar tablonun ustunde: recetesiz satis gibi notlar gozden kacmasin (kalin, sol serit) */
.rm-uyarilar ul { margin: 0; padding: 10px 14px 10px 30px; background: var(--uyari-zemin); color: var(--uyari);
  border-left: 4px solid var(--uyari); font-size: 14px; font-weight: 600; }
.rm-uyarilar li + li { margin-top: 4px; }
.rm-ozet small { font-size: 12px; color: var(--soluk); }
.rm-ozet small.arti { color: var(--iyi); }
.rm-ozet small.eksi { color: var(--kotu); }
.rm-veri { font-size: 12px; }
.rm-tablo-kabi { overflow-x: auto; }
.rm-tablo-kabi table.veri th { position: static; }
table.rm-tablo th button.rm-sirala {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
table.rm-tablo td.rm-boyut { white-space: nowrap; }
table.rm-tablo tbody th.rm-boyut {
  position: static;
  padding: 9px 12px;
  border-bottom: 1px solid var(--ic-cizgi);
  font-size: 14px;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  color: var(--metin);
}
table.rm-tablo tr.rm-ara td { font-weight: 600; background: #faf9f7; }
table.rm-tablo tfoot td { font-weight: 600; border-top: 1px solid var(--cizgi); padding: 9px 12px; }
table.rm-tablo td.rm-isi.koyu { color: #ffffff; }
table.rm-tablo td.rm-toplam { font-weight: 600; }
.rm-baski-baslik { display: none; }
#rm-katalog-dugme { display: none; }
#rm-sablon-pencere { width: min(420px, calc(100vw - 32px)); padding: 20px; border: 1px solid var(--cizgi); }
#rm-sablon-pencere::backdrop { background: rgba(0, 0, 0, .3); }
#rm-sablon-pencere h2 { margin: 0 0 12px; }
@media (max-width: 900px) {
  .rm-duzen { grid-template-columns: minmax(0, 1fr); }
  .rm-katalog { display: none; position: static; max-height: none; }
  .rm-duzen.rm-katalog-acik .rm-katalog { display: block; }
  #rm-katalog-dugme { display: inline-flex; }
  .rm-coklu-dugme { max-width: none; width: 100%; }
}
/* Yazdir yalniz Rapor Merkezi'nde (body.rm-sayfa, _kabuk.php basar); diger
   sayfalarin baskisi degismez. Yatay A4 adli sayfa ile yalniz bu sayfaya. */
@page rm-yatay { size: A4 landscape; margin: 12mm; }
@media print {
  body.rm-sayfa { font-size: 10px; page: rm-yatay; }
  body.rm-sayfa .ust, body.rm-sayfa .alt-menu, body.rm-sayfa .atla, body.rm-sayfa .sayfa-aksiyon,
  body.rm-sayfa .sayfa-baslik .avatar, body.rm-sayfa .sayfa-baslik .alt-baslik, body.rm-sayfa .zil,
  body.rm-sayfa .rm-katalog, body.rm-sayfa .rm-suzgec, body.rm-sayfa .rm-adres-not,
  body.rm-sayfa #rm-sablon-pencere { display: none !important; }
  /* Uyari ve kesik notu yazdir basliginda (Uyari satirlari); kutular iki kez basilmasin */
  body.rm-sayfa #rm-uyarilar, body.rm-sayfa #rm-kesik { display: none !important; }
  body.rm-sayfa .sayfa { margin: 0 !important; }
  body.rm-sayfa .sayfa-baslik { padding: 0 0 8px; }
  body.rm-sayfa main { padding: 0; }
  body.rm-sayfa .rm-duzen { display: block; }
  body.rm-sayfa .rm-baski-baslik { display: block; }
  body.rm-sayfa .rm-baski-baslik h2 { margin: 0 0 6px; font-size: 14px; }
  body.rm-sayfa .rm-baski-baslik dl { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 0; }
  body.rm-sayfa .rm-baski-baslik dl > div { display: contents; }
  body.rm-sayfa .rm-baski-baslik dt { color: var(--soluk); }
  body.rm-sayfa .rm-baski-baslik dd { margin: 0; }
  body.rm-sayfa .kart { border: 0; overflow: visible !important; }
  body.rm-sayfa .rm-tablo-kabi { overflow: visible; }
  body.rm-sayfa table.veri th, body.rm-sayfa table.veri td { height: auto; padding: 3px 6px; }
  body.rm-sayfa table.veri tbody tr:hover { background: none; }
  body.rm-sayfa table.rm-tablo thead { display: table-header-group; }
  body.rm-sayfa table.rm-tablo tr { break-inside: avoid; }
  body.rm-sayfa table.rm-tablo td.rm-isi, body.rm-sayfa table.rm-tablo tr.rm-ara td { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Coklu menutakibi: cekim sonucu (sube basina satir) ve recete menu baglari */
.cekim-sonuc { list-style: none; padding: 0; margin: 0 0 12px; }
.cekim-sonuc li { padding: 2px 0; }
.menu-baglari { border: 1px solid var(--cizgi); border-radius: 6px; padding: 8px 12px; margin: 8px 0; }
.menu-bag { display: flex; gap: 8px; align-items: center; margin: 4px 0; flex-wrap: wrap; }
.menu-bag select { min-width: 0; max-width: 100%; }
