/* ELİ STORE paneli — tek stil dosyası. Yazı tipi KLEX'teki gibi Outfit (yerel kopya),
   vurgu rengi KLEX'ten farklı: personel hangi uygulamada olduğunu renkten anlar.
   Mağaza rengi (--magaza) her sayfada gövdeye verilir.
   28.09 arayüz düzeni (Logo / Mikro / Nebim / Paraşüt): kartlar arası ve kart içi aralık tek ölçü (--aralik, --ic-aralik),
   köşe tek ölçü (--kose); etiketler kısa, açıklama (?) ipucunda; sayılar sağa dayalı ve binlik ayraçlı; telefonda tek
   sütun ve yatay kaydırma yok (liste tabloları telefonda etiketli kart olur, es.js etiketler). */

@font-face { font-family: "Outfit"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("yazi/outfit-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Outfit"; font-style: normal; font-weight: 300 700; font-display: swap;
  src: url("yazi/outfit-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --zemin: #F3F6F6; --yuzey: #FFFFFF; --yuzey2: #EBF0F0; --yazi: #142025; --ikincil: #55646A;
  --cizgi: #D5DEE0; --vurgu: #0F766E; --vurgu-yazi: #0B5F58; --vurgu-zemin: #E0F1EE;
  --tehlike: #B42318; --tehlike-zemin: #FDECEA; --uyari: #9A4A06; --uyari-zemin: #FDF0DC;
  --basari: #0A6B45; --magaza: var(--vurgu);
  --yazi-ailesi: "Outfit", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --golge: 0 1px 2px rgba(20, 32, 37, .06);
  --kose: 12px; --kose-kucuk: 8px; --aralik: 16px;      /* 28.09 düzen: kartlar arası aynı aralık, aynı köşe */
  --ic-aralik: 12px;                                     /* kart içi: başlık, metin, form, tablo arası */
  /* para birimi (30.09): yan yana $ ve ₺ renkten ayırt edilsin — $ mavi, ₺ mor, € erik (tutar kutusu rozeti, toplam simgesi) */
  --pb-usd: #1D4ED8; --pb-usd-zemin: #E8EFFD; --pb-try: #7E22CE; --pb-try-zemin: #F4EBFE;
  --pb-eur: #A0357A; --pb-eur-zemin: #FBEAF4;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --zemin: #0D1416; --yuzey: #141C1F; --yuzey2: #1B2529; --yazi: #E3EAEC; --ikincil: #9BABB1;
    --cizgi: #28353A; --vurgu: #2AAE9F; --vurgu-yazi: #5CCABD; --vurgu-zemin: #11302C;
    --tehlike: #F4796D; --tehlike-zemin: #3A1714; --uyari: #F0B25C; --uyari-zemin: #3A2A12;
    --basari: #4CC38A; --golge: none; color-scheme: dark;
    --pb-usd: #8AB4F8; --pb-usd-zemin: #15233F; --pb-try: #C9A7FA; --pb-try-zemin: #2A1942;
    --pb-eur: #F0A6D2; --pb-eur-zemin: #3A1830;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--zemin); color: var(--yazi); font-family: var(--yazi-ailesi);
  font-size: 15px; line-height: 1.5; min-height: 100vh; font-weight: 400; }
a { color: var(--vurgu-yazi); }
h1, h2, h3 { font-weight: 600; line-height: 1.25; margin: 0; text-wrap: balance; }
h1 { font-size: 1.45rem; } h2 { font-size: 1.12rem; } h3 { font-size: 1rem; }
:focus-visible { outline: 2px solid var(--vurgu); outline-offset: 2px; border-radius: 3px; }
.gizli { display: none !important; }
.sayi { font-variant-numeric: tabular-nums; }

/* ── prova şeridi ── */
.prova { background: repeating-linear-gradient(-45deg, #F5C451 0 14px, #F7D27A 14px 28px); color: #3D2A00;
  text-align: center; font-size: 12.5px; font-weight: 600; padding: 3px 12px; letter-spacing: .02em; }

/* ── üst çubuk ── */
.ust { background: var(--yuzey); border-bottom: 1px solid var(--cizgi); border-top: 4px solid var(--magaza);
  position: sticky; top: 0; z-index: 20; }
.ust-ic { max-width: 1120px; margin: 0 auto; padding: 8px 16px; display: flex; align-items: center; gap: 14px; min-height: 56px; }
.marka { font-weight: 600; letter-spacing: .18em; font-size: 15px; color: var(--yazi); text-decoration: none; white-space: nowrap; }
.marka small { display: block; font-size: 10.5px; letter-spacing: .06em; font-weight: 400; color: var(--ikincil); }
.magaza-cip { display: flex; align-items: center; gap: 8px; padding: 5px 12px 5px 10px; border-radius: 999px;
  background: var(--yuzey2); text-decoration: none; color: var(--yazi); min-width: 0; }
.magaza-cip .nokta { width: 10px; height: 10px; border-radius: 50%; background: var(--magaza); flex: none; }
.magaza-cip b { font-weight: 600; }
.magaza-cip span { color: var(--ikincil); font-size: 12.5px; white-space: nowrap; }
.ust-bosluk { flex: 1; }
.ust-nav { display: flex; gap: 4px; }
.ust-nav a { text-decoration: none; color: var(--ikincil); padding: 7px 10px; border-radius: 8px; font-size: 14px; }
.ust-nav a:hover, .ust-nav a.secili { color: var(--yazi); background: var(--yuzey2); }
.kisi { color: var(--ikincil); font-size: 13px; white-space: nowrap; }

/* ── içerik ── */
.icerik { max-width: 1120px; margin: 0 auto; padding: 20px 16px 96px; display: grid; gap: var(--aralik); }
.icerik > * { min-width: 0; }      /* ızgara öğesi içindeki geniş tablo sayfayı taşırmasın, kendi içinde kaysın */
.yigin { display: grid; gap: var(--aralik); }          /* kartları saran kap: kartlar arası aynı aralık */
.yigin > * { min-width: 0; }
.sayfa-bas { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 16px; }
.sayfa-bas p { margin: 4px 0 0; color: var(--ikincil); font-size: 14px; max-width: 70ch; }
.etiketli { font-size: 12px; color: var(--ikincil); letter-spacing: .04em; }

.kart { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--kose); padding: var(--aralik);
  box-shadow: var(--golge); }
/* Kart içi ritim: başlık, metin, form ve tablo arasında hep aynı aralık. Belirginlik sıfır (:where): bileşenin kendi kuralı
   üstün gelir. Fiş ekranının kartları kendi (onaylı) düzeninde kalır. */
:where(.kart:not(.fis-kok *, .form)) > :where(*) { margin-block: 0; }
:where(.kart:not(.fis-kok *, .form)) > :where(* + *) { margin-top: var(--ic-aralik); }
:where(.kart:not(.fis-kok *)) > * { min-width: 0; }
.fis-kok .kart > h2 { margin-bottom: 10px; }          /* fiş ekranı (onaylı düzen): para bölümü başlığı */
.kart:not(.fis-kok *) > h3 { margin-top: 20px; }       /* kart içi alt başlık: bölüm arası biraz daha açık */
.izgara { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }

/* kart başlığı: solda başlık (+ ipucu, sayaç), sağda eylem ya da seçim */
.kart-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 12px; }
.kart-bas h2 { margin: 0; }
.kart-bas .eylemler { margin-left: auto; }
.sayac { display: inline-block; font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 999px;
  background: var(--yuzey2); color: var(--ikincil); vertical-align: 2px; margin-left: 4px; font-variant-numeric: tabular-nums; }
/* kart başlığının sağında küçük birim notu (ör. İskonto Sınırı "ADET BAŞINA"). Para birimi etiketi YOK (30.09 gece):
   her tutar kendi simgesini taşır; başlık ve etiketlerde "$", "USD", "TL" birimi yazılmaz. */
.kart-etiket { font-size: 12.5px; font-weight: 600; color: var(--ikincil); letter-spacing: .06em; }
/* Tablonun başlığı: kavram adı (Dolar Hesabı, Eski TL Fişler, "… · Günün Hareketleri") — hesap hareketleri, ekstre, kasa */
.tablo-bas { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; margin: 4px 0 8px; }
.tablo-bas h3 { margin: 0; font-size: 14.5px; font-weight: 600; }
.tablo-bas + .tablo-kap { margin-top: 0; }
.tablo-kap + .tablo-bas { margin-top: 20px; }
h2 small, h3 small { font-size: 12.5px; font-weight: 500; color: var(--ikincil); }

/* ── rozetler ── */
.rozet { font-style: normal; display: inline-block; font-size: 12px; font-weight: 500; padding: 1px 8px; border-radius: 999px;
  background: var(--yuzey2); color: var(--ikincil); white-space: nowrap; }
.rozet.acik { background: var(--vurgu-zemin); color: var(--vurgu-yazi); }
.rozet.kurulum { background: var(--uyari-zemin); color: var(--uyari); }
.rozet.pasif { background: var(--yuzey2); color: var(--ikincil); text-decoration: line-through; }
.rozet.yonetici { background: var(--vurgu); color: #fff; }

/* ── tablolar ── */
.tablo-kap { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: var(--kose); background: var(--yuzey); }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: left; font-weight: 500; font-size: 12.5px; color: var(--ikincil); background: var(--yuzey2);
  padding: 8px 12px; border-bottom: 1px solid var(--cizgi); white-space: nowrap; }
td { padding: 10px 12px; border-top: 1px solid var(--cizgi); vertical-align: top; }
tr:first-child td { border-top: 0; }
td .alt-satir { display: block; color: var(--ikincil); font-size: 12.5px; }
/* 30.09: simgeli tutar ve birimli kur sütunu genişletti; hücrenin alt notu (kur, açıklama) kırılabilir, ad sütunu daralmaz.
   Tutarın kendisi ve kur ifadesi bölünmez (bölünmez boşluk). */
td.sayi-h .alt-satir, td.eylem .alt-satir { white-space: normal; }
td.eylem { white-space: nowrap; text-align: right; }
td.eylem .eylemler { justify-content: flex-end; }
td.bos { text-align: center; }
tfoot td { border-top: 1px solid var(--cizgi); background: var(--yuzey2); font-weight: 500; }

/* ── formlar ── */
.form { display: grid; gap: 12px; }
.alanlar, .form-satir { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px 16px;
  align-items: start; }
.alanlar .alan-genis { grid-column: span 2; }
.alanlar .alan-tam { grid-column: 1 / -1; }
.alan { display: grid; gap: 4px; }
.alan[hidden] { display: none; }
.alan > span { font-size: 13px; color: var(--ikincil); }
.alan small { color: var(--ikincil); font-size: 12px; }
input, select, textarea { font: inherit; color: var(--yazi); background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: 8px; padding: 9px 10px; min-height: 42px; width: 100%; }
input[type="color"] { padding: 2px; width: 64px; }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; min-height: 0; padding: 0;
  accent-color: var(--vurgu); flex: none; }
.onay { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.onay[hidden] { display: none; }
.secenekler { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; min-height: 42px; }
.eylemler { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.form-alt { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; }
.form-alt > .bos, .form-alt > .not { margin-right: auto; }
.not { font-size: 13px; color: var(--ikincil); }
.sayi-giris { text-align: right; font-variant-numeric: tabular-nums; }

/* süzgeç çubuğu (liste ekranlarının üstü): alanlar yan yana, telefonda alt alta */
.suzgec { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; }
.suzgec > .alan { flex: 1 1 220px; }
.suzgec > .alan.dar { flex: 0 1 180px; }
.suzgec > .onay { min-height: 42px; }
.suzgec > .dugme { flex: 0 0 auto; }
.suzgec > form.suzgec { flex: 0 1 auto; flex-wrap: nowrap; }      /* iç form (ör. devir tarihi): alan ve düğmesi yan yana */

.dugme { font: inherit; font-weight: 500; font-size: 14px; border-radius: 8px; padding: 9px 16px; min-height: 42px;
  border: 1px solid var(--vurgu); background: var(--vurgu); color: #fff; cursor: pointer; text-decoration: none;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }
.dugme:hover { filter: brightness(1.06); }
.dugme.ikincil { background: var(--yuzey); color: var(--vurgu-yazi); border-color: var(--cizgi); }
.dugme.tehlike { background: var(--yuzey); color: var(--tehlike); border-color: var(--cizgi); }
.dugme.kucuk { min-height: 34px; padding: 5px 10px; font-size: 13px; }
.dugme:disabled { opacity: .55; cursor: default; }

details.acilir { border: 1px solid var(--cizgi); border-radius: var(--kose); background: var(--yuzey); }
details.acilir > summary { cursor: pointer; list-style: none; padding: 12px 16px; font-weight: 500; display: flex; align-items: center; gap: 8px; }
details.acilir > summary::-webkit-details-marker { display: none; }
details.acilir > summary::before { content: "+"; font-weight: 600; color: var(--vurgu-yazi); width: 1em; }
details.acilir[open] > summary::before { content: "–"; }
details.acilir > .form, details.acilir > .ic { padding: 0 16px 16px; }
details.acilir.kart { padding: 0; }
td details.acilir > summary { padding: 6px 10px; font-size: 13.5px; }
td details.acilir > .form { padding: 0 10px 10px; min-width: 260px; text-align: left; white-space: normal; }

.bilgi { border-left: 3px solid var(--vurgu); background: var(--vurgu-zemin); color: var(--yazi);
  padding: 10px 14px; border-radius: 8px; font-size: 14px; }
.bilgi.uyari { border-color: var(--uyari); background: var(--uyari-zemin); }
.bos { color: var(--ikincil); font-size: 14px; padding: 8px 0; }
.sifre-goster { font-family: ui-monospace, Consolas, monospace; font-size: 15px; background: var(--yuzey2);
  padding: 6px 10px; border-radius: 6px; user-select: all; }

/* tanım listesi (belge etkisi, ürün fiyatları): solda terim, sağda değer */
.bilgi-liste { display: grid; grid-template-columns: minmax(150px, max-content) 1fr; gap: 6px 20px; margin: 0; font-size: 14px; }
.bilgi-liste dt { color: var(--ikincil); }
.bilgi-liste dd { margin: 0; }
.bilgi-liste dd.iptal-satir { color: var(--ikincil); }

/* ── sekmeler (mağaza ve yönetim bölümleri) ── */
.sekmeler { display: flex; flex-wrap: wrap; gap: 6px; }
.sekme { font-size: 13px; font-weight: 500; min-height: 34px; padding: 5px 12px; border-radius: var(--kose-kucuk);
  border: 1px solid var(--cizgi); background: var(--yuzey); color: var(--vurgu-yazi); text-decoration: none;
  display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.sekme:hover { border-color: var(--vurgu); }
.sekme.secili { background: var(--vurgu); border-color: var(--vurgu); color: #fff; }
.sekme-sec { display: none; }

/* ── mağaza seçimi ve ana sayfa kutuları ── */
.magaza-kutu { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--yazi);
  border: 1px solid var(--cizgi); border-left: 6px solid var(--renk, var(--vurgu)); border-radius: var(--kose);
  background: var(--yuzey); padding: 14px 16px; }
.magaza-kutu:hover { border-color: var(--renk, var(--vurgu)); }
.magaza-kutu b { font-size: 1.05rem; font-weight: 600; }
.magaza-kutu span { display: block; color: var(--ikincil); font-size: 13px; }
.is-kutu { border: 1px dashed var(--cizgi); border-radius: var(--kose); padding: 14px 16px; color: var(--ikincil);
  display: grid; gap: 2px; align-content: start; }
.is-kutu b { display: block; color: var(--yazi); font-weight: 600; }
.is-kutu .is-deger { color: var(--yazi); font-size: 1.2rem; font-weight: 600; font-variant-numeric: tabular-nums; }

/* ── stok: özet şeridi, matris, eksi ── */
.ozet-serit { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.ozet-serit > * { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--kose); padding: 10px 14px;
  text-decoration: none; color: var(--yazi); display: grid; gap: 2px; align-content: start; }
.ozet-serit b { font-size: 1.35rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ozet-serit span { color: var(--ikincil); font-size: 12.5px; }
.ozet-serit small { color: var(--ikincil); font-size: 12px; font-variant-numeric: tabular-nums; }
.ozet-serit .eksi-kutu { border-color: var(--tehlike); background: var(--tehlike-zemin); }
.ozet-serit.kur-ozet { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }   /* "1 € = 55,6103 ₺" bölünmez */
.ozet-serit .eksi-kutu b, .ozet-serit .eksi-kutu span { color: var(--tehlike); }
.sayi-h { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
th.sayi-h { text-align: right; }
table.matris td, table.matris th { padding: 8px 9px; }
table.matris td.sayi-h, table.matris th.sayi-h { min-width: 42px; }
table.matris th:first-child, table.matris td:first-child { position: sticky; left: 0; z-index: 1; background: var(--yuzey); }
table.matris th:first-child { background: var(--yuzey2); }
table.matris tr.eksi-satir > td:first-child { background: var(--tehlike-zemin); }
.eksi { color: var(--tehlike); font-weight: 600; font-style: normal; }
.arti { color: var(--basari); font-weight: 600; }
tr.eksi-satir > td:first-child { box-shadow: inset 4px 0 0 var(--tehlike); }
tr.eksi-satir { background: var(--tehlike-zemin); }
.sifir { color: var(--ikincil); opacity: .45; }
.eksi-kart { border-color: var(--tehlike); }
.eksi-kart h2 { color: var(--tehlike); }
.rozet.tehlike { background: var(--tehlike-zemin); color: var(--tehlike); }
a.is-kutu.bag { text-decoration: none; border-style: solid; background: var(--yuzey); }
a.is-kutu.bag:hover { border-color: var(--magaza); }

/* ── ürün seçici ve sayım ── */
.urun-sec { position: relative; }
.urun-sonuc { position: absolute; top: 100%; left: 0; right: 0; z-index: 25; margin: 4px 0 0; padding: 4px;
  list-style: none; background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(20, 32, 37, .14); max-height: 55vh; overflow-y: auto; }
.urun-sonuc li { padding: 9px 10px; border-radius: 7px; cursor: pointer; }
.urun-sonuc li small { color: var(--ikincil); }
.urun-sonuc li.secili, .urun-sonuc li[role=option]:hover { background: var(--vurgu-zemin); }
.urun-sonuc li.bos { cursor: default; }
.okut-form { margin-top: 12px; border: 1px solid var(--vurgu); border-radius: var(--kose); padding: 12px; display: grid; gap: 10px;
  background: var(--vurgu-zemin); }
.okut-form[hidden] { display: none; }
.okut-bas b { font-size: 1.05rem; }
.beden-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(68px, 1fr)); gap: 8px; }
.beden-kutu span { font-weight: 600; color: var(--yazi); text-align: center; }
.beden-kutu input { text-align: center; font-size: 1.1rem; padding: 8px 4px; }
.beden-kutu small { text-align: center; min-height: 1.2em; }
/* v0.29.0 (Y1 adım 2): seri grubundaki ürünün ızgarası — "6'lı seri (paket)" kutusuna paket sayısı, altında "3 paket = 18
   adet"; "Tekleme (adet)". Etiket uzun: kutular geniş. Sunucunun çizdiği paket kutusunda (kabul, kapatma, dönüş) gösterge. */
.beden-izgara.seri-izgara, .fis-kok .beden-izgara.seri-izgara { grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); }
.seri-izgara .beden-kutu span { font-size: 12.5px; }
.paket-gosterge, .paket-alt { display: block; font-size: 11.5px; color: var(--ikincil); font-weight: 400; }
/* v0.30.0 düzeltme turu (K7): devir önizlemesinde Paket sütunundan çevrilen satır — "3 paket = 18 adet" vurgulu */
td .alt-satir.paket-cevrim { color: var(--yazi); }
.paket-giris { display: grid; gap: 2px; justify-items: end; }
.bolge-alan { max-width: 300px; margin-top: 12px; }
tr.geri-alindi td { color: var(--ikincil); text-decoration: line-through; }
tr.geri-alindi td:last-child { text-decoration: none; }
.fark-ozet { font-weight: 500; margin: 12px 0 8px; }

/* ── giriş ── */
.giris-kap { min-height: 100vh; display: grid; place-items: center; padding: 16px; }
.giris-kart { width: 100%; max-width: 380px; }
.giris-kart .marka { display: block; text-align: center; font-size: 20px; }
.giris-kart > .form { margin-top: 20px; }
.giris-kart .dugme { width: 100%; }
.hata-kutu { color: var(--tehlike); background: var(--tehlike-zemin); border-radius: 8px; padding: 8px 12px; font-size: 14px; }

/* ── telefon alt çubuğu ── */
.alt-cubuk { display: none; }
@media (max-width: 760px) {
  .ust-nav, .kisi { display: none; }
  .ust-ic { gap: 10px; }
  .marka small { display: none; }
  .tel-gizle { display: none; }
  html { scroll-padding-bottom: 80px; }        /* odaklanan kutu alt çubuğun altında kalmasın */
  .alt-cubuk { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--yuzey);
    border-top: 1px solid var(--cizgi); padding-bottom: env(safe-area-inset-bottom, 0px); }
  .alt-cubuk a { flex: 1; text-align: center; text-decoration: none; color: var(--ikincil); font-size: 11.5px;
    padding: 8px 4px 9px; display: grid; justify-items: center; gap: 2px; }
  .alt-cubuk a.secili { color: var(--vurgu-yazi); font-weight: 600; }
  .alt-cubuk svg { width: 22px; height: 22px; }
  h1 { font-size: 1.25rem; }
  td, th { padding: 8px 10px; }
}

/* ── belge (fiş) ekranı — 28.09 arayüz düzeni (Logo / Mikro / Nebim / Paraşüt): üstte belge bilgileri, ortada satır
   tablosu, sağ altta toplam bloğu, en altta kaydet. Seçimler açılır liste; seçilmeyen yolun alanları gizli; açıklamalar
   etikette değil (?) ipucunda. Tipin rengi (--tip, ayar tablosundan) başlık şeridini ve kaydet düğmesini boyar: personel
   yanlış tipte olduğunu renkten ve büyük başlıktan anlar. */
.fis-kok { --tip: var(--vurgu); display: grid; gap: var(--aralik); }
.fis-kok .kart { border-radius: var(--kose); padding: var(--aralik); }
.fis-bas { border-top: 4px solid var(--tip); display: grid; gap: 14px; }
.tip-serit { background: var(--tip); color: #fff; border-radius: var(--kose-kucuk); padding: 10px 14px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.tip-ad { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.tip-serit b { font-size: 1.25rem; letter-spacing: .05em; }
.tip-serit span { font-size: 13.5px; opacity: .92; }
.tip-serit .ipucu { color: #fff; border-color: rgba(255, 255, 255, .65); opacity: 1; }
.tip-serit .kur-bilgi { margin: 0; color: #fff; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.tip-serit .kur-bilgi.uyari { background: var(--yuzey); color: var(--uyari); border-radius: 6px; padding: 2px 8px; }
.tip-serit .kur-bilgi.eksi { background: var(--yuzey); color: var(--tehlike); border-radius: 6px; padding: 2px 8px; }
.fis-alanlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px 16px; align-items: start; }
.fis-alanlar .alan-genis { grid-column: span 2; }
.secili-satir { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.secili-satir select { flex: 1 1 200px; width: auto; }
.odeme-not { margin: 0; font-size: 13.5px; color: var(--ikincil); }
.odeme-not:empty, .odeme-not[hidden] { display: none; }
.odeme-not.eksi { color: var(--tehlike); }   /* K6 (02.10): "KAYDEDİLEMEZ" notu kırmızı (.odeme-not rengi ezmesin) */
.fis-ara-kutu { flex: 1 1 320px; max-width: 520px; }

/* satır tablosu: masaüstünde başlık satırı + ızgara satırlar; telefonda her satır kart (hücre kendi etiketiyle) */
.satir-tablo { --kolon: minmax(150px, 1.3fr) minmax(210px, 2fr) 64px 60px 156px 104px 112px 36px; }
.satir-bas, .fis-kok .fis-satir { display: grid; grid-template-columns: var(--kolon); gap: 10px; align-items: start; }
.satir-bas { padding: 8px 10px; background: var(--yuzey2); border-radius: var(--kose-kucuk); font-size: 12.5px;
  color: var(--ikincil); font-weight: 500; }
.satir-bas[hidden] { display: none; }
.satir-bas .sag, .fs-hucre.sag { text-align: right; }
.fis-kok .fis-satir { border: 0; border-bottom: 1px solid var(--cizgi); border-radius: 0; padding: 10px; margin: 0; }
.fis-kok .fis-satir.eksi-var { box-shadow: inset 3px 0 0 var(--tehlike); }
.fis-kok .fis-satir.hatali { background: color-mix(in srgb, var(--tehlike) 5%, transparent); }
.fs-etiket { display: none; }
.fs-urun b { display: block; font-weight: 600; }
.fs-urun small { color: var(--ikincil); font-size: 12.5px; }
.fis-kok .beden-izgara { grid-template-columns: repeat(auto-fill, minmax(46px, 1fr)); gap: 6px; }
.fis-kok .beden-kutu { display: grid; gap: 2px; }
.fis-kok .beden-kutu span { font-size: 12px; }
.fis-kok .beden-kutu input { padding: 6px 2px; font-size: 1rem; min-height: 36px; }
.fis-kok .fs-hucre input, .fis-kok .fs-hucre select { min-height: 36px; padding: 6px 8px; }
.fs-fiyat-ic { display: grid; grid-template-columns: minmax(0, 1fr) 60px; gap: 4px; }   /* 30.09: fiyat kutusunda $ rozeti; birim seçimi daraldı */
.fis-kok .fs-fiyat-ic select { padding: 6px 4px; font-size: 13px; }
.fiyat-kaynak, .fs-isk-bilgi, .fs-tutar-alt { display: block; font-size: 11.5px; color: var(--ikincil); margin-top: 3px; }
.fs-miktar b, .fs-tutar b { display: block; padding-top: 7px; font-size: 1rem; font-variant-numeric: tabular-nums; }
.fs-kaldir { width: 32px; height: 32px; margin-top: 2px; border-radius: 50%; border: 1px solid var(--cizgi);
  background: var(--yuzey); color: var(--tehlike); font-size: 18px; line-height: 1; cursor: pointer; }
.fs-kaldir:hover { background: var(--tehlike-zemin); }
.fis-kok .fs-alt { grid-column: 1 / -1; font-size: 12.5px; color: var(--ikincil); margin-top: -4px; }
.fis-kok .fs-alt[hidden] { display: none; }
.fs-durum:not(:empty) + .fs-not:not(:empty)::before { content: " · "; }
.fs-uyari { grid-column: 1 / -1; margin: 0; }

/* alt: açıklama ve uyarılar (sol), toplam bloğu (sağ, tek sütun, sayılar sağa dayalı, her tutar kendi simgesiyle) */
.fis-alt { display: flex; flex-wrap: wrap; gap: var(--aralik); align-items: flex-start; }
.fis-not-kart { flex: 1 1 320px; display: grid; gap: 12px; }
.tp-kart { flex: 0 1 380px; margin-left: auto; display: grid; gap: 2px; }
.tp-kart[hidden] { display: none; }
.tp-bas { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; }
.tp-bas h2 { margin: 0; }
.tp-satir { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; padding: 3px 0; }
.tp-satir[hidden] { display: none; }
.tp-satir > span, .tp-satir > label { color: var(--ikincil); }
.tp-satir b { font-weight: 500; text-align: right; font-variant-numeric: tabular-nums; }
.tp-giris input { width: 104px; min-height: 34px; padding: 5px 8px; margin-left: auto; }
.tp-giris b { min-width: 64px; }
.tp-genel { border-top: 1px solid var(--cizgi); margin-top: 6px; padding-top: 8px; }
.tp-genel > span { color: var(--yazi); font-weight: 600; font-size: 1.05rem; }
.tp-genel b { font-weight: 700; font-size: 1.35rem; }
.tp-tl { font-size: 13px; }
.tp-bilgi { display: block; text-align: right; font-size: 12px; color: var(--ikincil); }
.tp-bilgi:empty { display: none; }
.tp-bilgi.eksi { text-align: left; color: var(--tehlike); font-weight: 600; margin-top: 6px; }
.tp-yuzde { margin-left: 8px; font-size: 12px; color: var(--ikincil); font-weight: 400; }
.tp-ek { border-top: 1px dashed var(--cizgi); margin-top: 6px; padding-top: 8px; font-size: 13px; }   /* toplam zincirinin dışı */

/* Karma ödeme (v0.20.0): Toplamlar'ın altında tam genişlik "Ödeme Satırları" kartı (telefonda Toplamlar'dan sonra,
   Kaydet'ten önce). Satır: yöntem · tutar (para birimi rozetli) · $ karşılığı ve kur (sunucudan) · Kalanı · ×; çek / senette
   künye, havalede banka hesabı altta. */
.os-kart[hidden] { display: none; }
.os-satirlar { display: grid; gap: 8px; }
.os-satir { display: grid; gap: 6px; padding: 8px 10px; border: 1px solid var(--cizgi); border-radius: var(--kose-kucuk); }
.os-ana { display: grid; grid-template-columns: 170px 170px minmax(0, 1fr) auto 32px; gap: 8px 10px; align-items: center; }
.fis-kok .os-satir select, .fis-kok .os-satir input { min-height: 36px; padding: 6px 8px; }
.fis-kok .os-satir .pb-kutu > input { padding-right: 44px; }       /* tutar: para birimi rozetinin altında yazı kalmasın */
.os-karsilik { font-size: 13px; color: var(--ikincil); }
.os-satir.os-kalan .os-tutar { font-style: italic; }
.os-kalani[aria-pressed="true"] { background: var(--vurgu-zemin); border-color: var(--vurgu); color: var(--vurgu-yazi); }
.os-kunye { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 12px; }
.os-ek { margin: 0; }
.os-satir .os-not { margin: 0; }
.os-eylem { margin-top: 8px; }
.os-fazla { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; }
/* alacaklı müşteri şeridi (sahibin kararı 01.10) ve karma kartındaki "Alacaktan düşülen" satırı */
.alacak-serit { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 10px 0 0; font-weight: 600; }
.alacak-serit[hidden] { display: none; }
.alacak-serit .dugme { margin-left: auto; }
.alacak-serit .dugme[hidden] { display: none; }
.os-alacak-satir { margin: 0 0 8px; padding: 8px 10px; border: 1px dashed var(--vurgu); border-radius: 8px;
  font-weight: 600; font-variant-numeric: tabular-nums; }
.os-alacak-satir[hidden] { display: none; }
.os-fazla[hidden] { display: none; }
.os-fazla-dugme { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.os-ozet { margin: 10px 0 0; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.os-ozet:empty { display: none; }
/* özet satırı + Vade (inceleme 01.10): vade alanı karma / çek / senette buraya taşınır, açık hesaba kalanın yanında */
.os-alt { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 6px 16px; }
.os-vade-yer { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 4px 12px; }
.os-vade-yer .alan { margin: 10px 0 0; width: 130px; }
.os-vade-yer .odeme-not { padding-bottom: 8px; }
.os-kart .dugme[hidden], .os-kart .fs-kaldir[hidden], .os-kart .para-not[hidden] { display: none; }
/* Telefonda bir ödeme satırı üç sıra: yöntem + × · tutar + Kalanı · $ karşılığı ve kur (boşsa yer tutmaz). Sıralar açık
   yazılır: DOM sırası tutar, karşılık, Kalanı; otomatik yerleşim geri dönüp boş hücreyi doldurmuyordu (inceleme 01.10). */
@media (max-width: 760px) {
  .os-ana { grid-template-columns: minmax(0, 1fr) auto 32px; }
  .os-ana .os-yontem-sec { grid-column: 1 / 3; grid-row: 1; } .os-ana .os-sil { grid-column: 3; grid-row: 1; }
  .os-ana .os-tutar-kutu { grid-column: 1 / 2; grid-row: 2; } .os-ana .os-kalani { grid-column: 2 / 4; grid-row: 2; }
  .os-ana .os-karsilik { grid-column: 1 / -1; grid-row: 3; } .os-ana .os-karsilik:empty { display: none; }
  .os-fazla-dugme { margin-left: 0; }
}

/* en alt: onay ve kaydet */
.fis-kaydet { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.fis-kok #fis-kaydet, .fis-kok #fis-onayla { background: var(--tip); border-color: var(--tip); color: #fff; min-width: 160px; }
.onay-serit { border: 2px solid var(--tip); border-radius: var(--kose-kucuk); padding: 10px 12px; display: grid; gap: 8px;
  background: color-mix(in srgb, var(--tip) 9%, var(--yuzey)); }
.onay-serit p { margin: 0; font-weight: 600; font-size: 15px; }
.onay-serit[hidden], #kaydet-eylem[hidden] { display: none; }

/* (?) ipucu: etiketteki açıklamanın yeri; kutu es.js'te (ekrandan taşmaz) */
.ipucu { display: inline-grid; place-items: center; width: 16px; height: 16px; margin-left: 5px; border-radius: 50%;
  border: 1px solid var(--cizgi); color: var(--ikincil); font-size: 11px; font-weight: 600; line-height: 1; cursor: help;
  vertical-align: 1px; user-select: none; font-style: normal; letter-spacing: 0; text-transform: none; }
.ipucu:hover, .ipucu:focus-visible { color: var(--vurgu-yazi); border-color: var(--vurgu); }
.ipucu-kutu { position: fixed; z-index: 60; max-width: min(320px, calc(100vw - 16px)); background: var(--yazi); color: var(--yuzey);
  font-size: 12.5px; line-height: 1.45; padding: 8px 10px; border-radius: var(--kose-kucuk); box-shadow: 0 6px 20px rgba(0, 0, 0, .18);
  pointer-events: none; font-weight: 400; text-align: left; white-space: normal; }

/* Tablet ve dar masaüstü (≤ 1099 px): tek satırlık tablo sığmaz (sayfa yana taşardı) → her satır etiketli kart,
   dört sütun; başlık satırı gizli, her hücre kendi etiketini ve (?) ipucunu gösterir. */
@media (max-width: 1099px) {
  .satir-bas { display: none !important; }
  .fis-kok .fis-satir { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; margin-top: 10px; padding: 12px;
    border: 1px solid var(--cizgi); border-radius: var(--kose);
    grid-template-areas: "urun urun urun sil" "beden beden beden beden" "seri miktar fiyat iskonto" "tutar tutar tutar tutar"
                         "alt alt alt alt" "uyari uyari uyari uyari"; }
  .fs-urun { grid-area: urun; } .fs-sil { grid-area: sil; justify-self: end; } .fs-beden { grid-area: beden; }
  .fs-seri { grid-area: seri; } .fs-miktar { grid-area: miktar; } .fs-fiyat { grid-area: fiyat; }
  .fs-iskonto { grid-area: iskonto; } .fs-tutar { grid-area: tutar; } .fis-kok .fs-alt { grid-area: alt; margin-top: 0; }
  .fs-uyari { grid-area: uyari; }
  .fs-etiket { display: block; font-size: 12px; color: var(--ikincil); margin-bottom: 2px; }
  .fs-miktar.sag { text-align: left; }
  .fs-miktar b { padding-top: 6px; }
  .fs-tutar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px;
    border-top: 1px dashed var(--cizgi); padding-top: 8px; }
  .fs-tutar .fs-etiket { margin: 0; }
  .fs-tutar b { padding: 0; font-size: 1.1rem; font-weight: 600; }
  .fs-tutar .fs-tutar-alt { flex-basis: 100%; text-align: right; margin: 0; }
}
/* v0.26.0 (denetim KUSUR-2): satır tablosu → kart geçişi İÇERİK genişliğine de bağlı. Sol menü / ikon rayı / sağ panel
   içeriği daraltır; pencereye bağlı eski kırılım (≤ 1099 px, yukarıda) aynen durur → telefon ve tablet tabanla aynı. Tablo
   en az 982 px ister (fiş; değişim 808): satır tablosunun kendi genişliği 990 px'in altındaysa kart. Aynı kurallar,
   yalnız koşul kapsayıcı (container query; Chrome / Edge 105+, Safari 16+, Firefox 110+). */
.satir-tablo { container: satir / inline-size; }
@container satir (max-width: 989.98px) {
  .satir-bas { display: none !important; }
  .fis-kok .fis-satir { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; margin-top: 10px; padding: 12px;
    border: 1px solid var(--cizgi); border-radius: var(--kose);
    grid-template-areas: "urun urun urun sil" "beden beden beden beden" "seri miktar fiyat iskonto" "tutar tutar tutar tutar"
                         "alt alt alt alt" "uyari uyari uyari uyari"; }
  .fs-urun { grid-area: urun; } .fs-sil { grid-area: sil; justify-self: end; } .fs-beden { grid-area: beden; }
  .fs-seri { grid-area: seri; } .fs-miktar { grid-area: miktar; } .fs-fiyat { grid-area: fiyat; }
  .fs-iskonto { grid-area: iskonto; } .fs-tutar { grid-area: tutar; } .fis-kok .fs-alt { grid-area: alt; margin-top: 0; }
  .fs-uyari { grid-area: uyari; }
  .fs-etiket { display: block; font-size: 12px; color: var(--ikincil); margin-bottom: 2px; }
  .fs-miktar.sag { text-align: left; }
  .fs-miktar b { padding-top: 6px; }
  .fs-tutar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px;
    border-top: 1px dashed var(--cizgi); padding-top: 8px; }
  .fs-tutar .fs-etiket { margin: 0; }
  .fs-tutar b { padding: 0; font-size: 1.1rem; font-weight: 600; }
  .fs-tutar .fs-tutar-alt { flex-basis: 100%; text-align: right; margin: 0; }
}
/* Kapsayıcı sorgusu olmayan eski tarayıcıda: menülü düzende (oturum açıkken hep) 1100 px ve üstünde de kart — taşma yok;
   geniş ekranda tablo görünümü yalnız bu eski tarayıcılarda karta döner. */
@supports not (container-type: inline-size) {
  @media (min-width: 1100px) {
    body.ym .satir-bas { display: none !important; }
    body.ym .fis-kok .fis-satir { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; margin-top: 10px; padding: 12px;
      border: 1px solid var(--cizgi); border-radius: var(--kose);
      grid-template-areas: "urun urun urun sil" "beden beden beden beden" "seri miktar fiyat iskonto" "tutar tutar tutar tutar"
                           "alt alt alt alt" "uyari uyari uyari uyari"; }
    body.ym .fs-urun { grid-area: urun; } body.ym .fs-sil { grid-area: sil; justify-self: end; } body.ym .fs-beden { grid-area: beden; }
    body.ym .fs-seri { grid-area: seri; } body.ym .fs-miktar { grid-area: miktar; } body.ym .fs-fiyat { grid-area: fiyat; }
    body.ym .fs-iskonto { grid-area: iskonto; } body.ym .fs-tutar { grid-area: tutar; } body.ym .fis-kok .fs-alt { grid-area: alt; margin-top: 0; }
    body.ym .fs-uyari { grid-area: uyari; }
    body.ym .fs-etiket { display: block; font-size: 12px; color: var(--ikincil); margin-bottom: 2px; }
    body.ym .fs-miktar.sag { text-align: left; }
    body.ym .fs-miktar b { padding-top: 6px; }
    body.ym .fs-tutar { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px;
      border-top: 1px dashed var(--cizgi); padding-top: 8px; }
    body.ym .fs-tutar .fs-etiket { margin: 0; }
    body.ym .fs-tutar b { padding: 0; font-size: 1.1rem; font-weight: 600; }
    body.ym .fs-tutar .fs-tutar-alt { flex-basis: 100%; text-align: right; margin: 0; }
  }
}
/* Telefon (≤ 760 px): tek sütun; satır kartı iki sütun, birim fiyat tam satır (tutar kutuya sığsın) */
@media (max-width: 760px) {
  .fis-alanlar { grid-template-columns: 1fr; }
  .fis-alanlar .alan-genis { grid-column: auto; }
  .fis-kok .fis-satir { grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "urun sil" "beden beden" "seri miktar" "fiyat fiyat" "iskonto ." "tutar tutar" "alt alt" "uyari uyari"; }
  .fis-alt { flex-direction: column; align-items: stretch; }
  .fis-not-kart, .tp-kart { flex: 1 1 auto; margin-left: 0; }
  .fis-kaydet .dugme { flex: 1 1 140px; }
}
.tip-rozet { font-style: normal; display: inline-block; font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--tip) 14%, var(--yuzey)); color: var(--tip); border: 1px solid var(--tip); }
.tip-cizgi { border-top: 4px solid var(--tip); }
.dugme.tip-baglanti { border-color: var(--tip); color: var(--tip); }
.tip-ozet { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; font-size: 13.5px; color: var(--ikincil); }
@media (prefers-color-scheme: dark) {
  .tip-rozet, .dugme.tip-baglanti { color: color-mix(in srgb, var(--tip) 55%, white); }
}
.secili-cari { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; padding: 10px 12px; border-radius: 10px;
  background: var(--vurgu-zemin); }
.secili-cari b { font-size: 1.05rem; }
.secili-cari[hidden], .urun-sec[hidden] { display: none; }
.urun-sonuc li.yeni-cari { color: var(--vurgu-yazi); font-weight: 500; }
.urun-sonuc li.pasif-secenek { color: var(--ikincil); }
/* yeni müşteri kartı paneli (01.10 korkuluğu): kart yalnız "Yeni müşteri aç" ile açılır; önce benzer müşteriler */
.cari-yeni { border: 1px solid var(--vurgu); border-radius: var(--kose-kucuk); padding: 10px 12px; display: grid; gap: 10px;
  background: var(--vurgu-zemin); min-width: 0; }
.cari-yeni[hidden], .cari-yeni-benzer[hidden], .cari-yeni-hata[hidden] { display: none; }
.cari-yeni-soru { margin: 0; font-weight: 600; font-size: 15px; overflow-wrap: anywhere; }
.cari-yeni-alanlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px 12px; }
.cari-yeni-benzer { display: grid; gap: 6px; }
.cari-yeni-benzer > span { font-size: 13.5px; font-weight: 600; color: var(--uyari); }
.cari-yeni-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cari-yeni-liste button { font: inherit; width: 100%; min-height: 42px; text-align: left; padding: 8px 12px; cursor: pointer;
  border: 1px solid var(--cizgi); border-radius: 8px; background: var(--yuzey); color: var(--yazi); overflow-wrap: anywhere; }
.cari-yeni-liste button:hover { border-color: var(--vurgu); }
.cari-yeni-liste small { color: var(--ikincil); }
.cari-yeni-hata { margin: 0; color: var(--tehlike); background: var(--tehlike-zemin); border-radius: 8px; padding: 6px 10px;
  font-size: 14px; }
/* ödeme şekli seçilmeden kaydet denendi (01.10 korkuluğu: müşteriden kendiliğinden gelmez) */
.fis-kok select[aria-invalid="true"] { border-color: var(--tehlike); box-shadow: 0 0 0 2px var(--tehlike-zemin); }
.stok-bilgi { font-size: 11.5px; }
.stok-bilgi.eksi { color: var(--tehlike); font-weight: 600; }
tr.iptal-satir td { color: var(--ikincil); }
tr.iptal-satir td b { text-decoration: line-through; }

.bakiye-not { font-style: normal; font-size: 13px; color: var(--ikincil); }
/* Bakiye yönü BİZİM açımızdan (ön muhasebe): alacağımız = tahsil edilecek, yeşil; borcumuz = ödenecek / iade, kırmızı.
   Müşteri kartı, müşteri ve tedarikçi listesi, fiş ekranındaki bakiye notu aynı dili konuşur. */
.bakiye-not.borcumuz { color: var(--tehlike); font-weight: 600; }
.bakiye-not.alacagimiz { color: var(--basari); font-weight: 600; }
.bakiye-kutu { display: grid; justify-items: end; gap: 0; padding: 10px 16px; border-radius: var(--kose); background: var(--yuzey);
  border: 1px solid var(--cizgi); min-width: 200px; text-align: right; }
.bakiye-kutu span, .bakiye-kutu small { color: var(--ikincil); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.bakiye-kutu b { font-size: 1.5rem; font-weight: 600; }
.bakiye-kutu.borcumuz { border-color: var(--tehlike); } .bakiye-kutu.borcumuz b { color: var(--tehlike); }
.bakiye-kutu.alacagimiz { border-color: var(--basari); } .bakiye-kutu.alacagimiz b { color: var(--basari); }
.bakiye-kutu span b.yon { font-size: inherit; font-weight: 700; }
.fk-odeme { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: 8px; font-size: 12px; }
p.iptal-satir { color: var(--ikincil); }

/* ── fiş kâğıdı (ekranda önizleme, yazıcıda A5) ── */
.fis-kagit { background: #fff; color: #111; border: 1px solid var(--cizgi); border-radius: 8px; padding: 18px 20px;
  max-width: 560px; position: relative; overflow: hidden; font-size: 13px; line-height: 1.4; }
.fis-kagit .filigran { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none;
  font-size: 64px; font-weight: 700; letter-spacing: .2em; color: rgba(180, 35, 24, .09); transform: rotate(-24deg); }
.fis-kagit .filigran.iptal-yazi { color: rgba(180, 35, 24, .22); font-size: 88px; }
.fk-ust { display: flex; justify-content: space-between; gap: 12px; border-bottom: 2px solid #111; padding-bottom: 8px; }
.fk-marka { font-size: 20px; font-weight: 700; letter-spacing: .12em; }
.fk-magaza { font-size: 11.5px; color: #444; max-width: 32ch; }
.fk-belge { display: grid; justify-items: end; gap: 1px; font-size: 12px; text-align: right; }
.fk-belge > b { font-size: 13px; letter-spacing: .06em; }
/* Baskı sayısı (Aşama 9): KOPYA damgası yerine köşede küçük "2. baskı"; ilk baskıda yok */
.fk-baski { position: absolute; top: 3px; right: 6px; font-size: 9px; color: #555; }
.fk-baski[hidden] { display: none; }
.fk-cari { padding: 8px 0; border-bottom: 1px solid #bbb; }
.fis-kagit table.fk-tablo { font-size: 12px; margin-top: 6px; }
.fis-kagit .fk-tablo th { background: none; color: #111; border-bottom: 1px solid #111; padding: 4px 6px; font-weight: 600; }
.fis-kagit .fk-tablo td { border-top: 1px solid #ddd; padding: 4px 6px; color: #111; }
.fis-kagit .fk-tablo tfoot td { background: none; font-weight: 400; border-top: 1px solid #111; }
.fk-toplam { margin: 8px 0 0 auto; max-width: 280px; display: grid; gap: 2px; }
.fk-toplam > div { display: flex; justify-content: space-between; gap: 12px; }
.fk-toplam > div > b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fk-toplam .fk-ek { font-size: 10.5px; color: #444; justify-content: flex-end; margin-top: -2px; }
.fk-toplam .genel { border-top: 2px solid #111; padding-top: 4px; font-size: 15px; font-weight: 700; }
.fk-not { margin: 8px 0 0; font-size: 12px; }
/* Karma ödeme (0017): A5'te ödeme bloğu — satır başına ödenen, dolar karşılığı ve kur; sonradan iptal edilen satır çizili */
.fk-karma { margin-top: 8px; border-top: 1px solid #bbb; padding-top: 2px; }
.fis-kagit table.fk-odeme-tablo { font-size: 11.5px; margin-top: 4px; }
.fis-kagit .fk-odeme-tablo td.fk-satir-kur { font-size: 10.5px; color: #333; }
.fis-kagit .fk-odeme-tablo td.fk-no { white-space: nowrap; }       /* belge no (MRT26-T0021) bölünmesin */
.fis-kagit .fk-odeme-tablo tr.iptal-satir td { text-decoration: line-through; color: #555; }
.fk-toplam .fk-kalan { border-top: 1px solid #111; padding-top: 3px; font-weight: 700; }
.fk-alt { margin-top: 12px; border-top: 1px solid #bbb; padding-top: 6px; font-size: 10.5px; color: #444;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }

@media print {
  @page { size: A5 portrait; margin: 8mm; }
  html, body { background: #fff !important; color: #111; }
  .prova, .ust, .alt-cubuk, .ekran-yalniz, details.acilir, .klex-toast-alan, .ipucu { display: none !important; }
  .icerik { display: block; padding: 0; max-width: none; }
  .fis-kagit { border: 0; border-radius: 0; padding: 0; max-width: none; font-size: 10.5pt; }
  .fis-kagit .filigran { color: rgba(0, 0, 0, .10); }
}

/* ── dolar: kur bilgisi, TL karşılığı ── */
.kur-bilgi { margin: 10px 0 0; font-size: 13.5px; color: var(--ikincil); }
.kur-bilgi.uyari { color: var(--uyari); font-weight: 600; }
.kur-bilgi.eksi { color: var(--tehlike); font-weight: 600; }
.para-not { display: block; font-size: 12.5px; color: var(--ikincil); margin-top: 4px; }
.para-not.eksi { color: var(--tehlike); }
.fk-toplam .genel-tl { font-size: 11pt; }
.fis-kagit .fk-kur { font-size: 10.5px; margin: 6px 0 0; color: #333; }

/* Açılış devri ve fiyat listesi önizlemesi */
.devir-onizleme { margin: 14px 0; padding-top: 10px; border-top: 1px dashed var(--cizgi, #ccc); display: grid; gap: 10px; }
.devir-onizleme[hidden] { display: none; }
.devir-onizleme h3 { margin: 0; font-size: 15px; }
.devir-onizleme > p { margin: 0; }
.ozet-cip { display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0; padding: 0; list-style: none; }
.ozet-cip li { background: var(--yuzey2); border-radius: 999px; padding: 2px 10px; font-size: 13px; color: var(--ikincil); }
.ozet-cip li b { color: var(--yazi); font-weight: 600; font-variant-numeric: tabular-nums; }
.ozet-cip li.hata { background: var(--tehlike-zemin); color: var(--tehlike); }
.ozet-cip li.hata b { color: var(--tehlike); }
.adimlar { margin: 0; padding-left: 20px; display: grid; gap: 4px; color: var(--ikincil); font-size: 14px; }

/* Cari devirde mutabakat (30.09): listenin başında özet + "yalnız mutabık olmayanlar" süzgeci; mutabık olmayan geçerli
   devir satırı sol şeritle ve açık uyarı zeminiyle işaretli (takip listesi), rozeti çerçeveli. Renkler tema belirteçlerinden:
   koyu temada da okunur. */
.liste-bas { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.liste-bas > p { margin: 0; flex: 1 1 280px; }
.rozet.mutabik-degil { background: var(--uyari-zemin); color: var(--uyari); font-weight: 600; box-shadow: inset 0 0 0 1px var(--uyari); }
tr.mutabik-degil { background: color-mix(in srgb, var(--uyari-zemin) 60%, transparent); }
tr.mutabik-degil > td:first-child { box-shadow: inset 4px 0 0 var(--uyari); }
#cd-liste td:first-child > b { white-space: nowrap; }             /* belge numarası tek satırda (MRT26-DM0005) */
.mutabakat-eylem { margin-top: 6px; }
#cd-liste td details.mutabakat-eylem > summary { white-space: nowrap; }
#cd-liste td details.mutabakat-eylem > .form { min-width: 230px; }
.devir-onizleme td .rozet.tehlike { white-space: normal; }       /* uzun satır hatası kesilmesin, satırda kırılsın */
.alan > .onay { min-height: 42px; }
@media screen and (max-width: 760px) {
  table.kart-tablo.kart-tablo tr.mutabik-degil { box-shadow: inset 4px 0 0 var(--uyari); }
  table.kart-tablo.kart-tablo tr.mutabik-degil > td:first-child { box-shadow: none; }
}

/* Ekstre ve gün sonu kasa (Aşama 8): fiş kâğıdının A5 düzeni */
.ekstre-kagit { max-width: 820px; }
#gun-sonu { max-width: none; }
.ekstre-baslik { margin: 14px 0 6px; font-size: 14px; }
.fis-kagit .tablo-bas { margin: 14px 0 6px; }
.fis-kagit .tablo-bas h3 { font-size: 14px; }
.ekstre-tablo td small.alt-satir { display: block; }
/* v0.26.2 denetim D4 / D9: kullanıcı metni (kasa sayım notu, hesap hareketi ve kasa farkı açıklaması, iptal gerekçesi;
   boşluksuz 200 karaktere kadar) hücre içinde kayar. Önceden tabloyu genişletiyor, kasa sayfasında (.fis-kagit
   overflow: hidden) 'Farkı Kaydet' düğmesini ve hareket tablosunun tutar sütunlarını kâğıdın dışına itiyor, kasa farkı
   tablolarında yöneticinin Onayla / Reddet / İptal düğmelerini görünür alanın dışına taşıyordu. 'anywhere' tablo
   sütununun en dar genişliğini de küçültür. Baskıda (A5) hücre okunur genişlikte kalır (denetim D10). */
td.sayim-notu, td.uzun-metin { overflow-wrap: anywhere; }
@media print { td.sayim-notu, td.uzun-metin { min-width: 7em; } }    /* D10: A5'te okunur genişlik, kaydırma sürer */
/* D10: "Günün sayımları"nda not baskıda kendi satırında (kâğıt genişliğinde; not ve eylem sütunları baskıda yok — tablo
   A5'e sığar). Ekranda bu satır hiç çizilmez (!important: telefondaki kart düzeninin 'tr { display: flex }' kuralını da
   ezer). */
tr.baski-not { display: none !important; }
@media print {
  tr.baski-not { display: table-row !important; }
  tr.baski-not td { border-top: 0; padding-top: 0; color: #333; }
}
.ekstre-tablo tr.ekstre-acilis td { background: var(--yuzey2, #f3f4f6); }
.ekstre-tablo tfoot td { border-top: 1px solid var(--cizgi); }
.fk-ozet { margin: 8px 0 0; font-size: 12px; }
@media print {
  .ekstre-kagit { font-size: 9pt; }
  .ekstre-tablo th, .ekstre-tablo td { padding: 2px 4px; }
}
/* Gün sonu kâğıdı A5 baskısı (09.10): 8 sütunlu özet (Kasa / Hesap … Sayılan, Fark) geniş tutarlarda (1.234.567,89 ₺)
   ~650 px'e çıkıyor, A5 basılabilir genişlik ~499 px; kâğıt (overflow: hidden) 'Sayılan'ı yarım, 'Fark'ı hiç basmıyordu.
   Yalnız baskıda, yalnız gün sonu kâğıdında: tablo yazısı 7,5 pt, alt satırlar (saat · sayan, sistem tutarı) ve rozet
   7 pt, iç boşluk 2 px 3 px (dış kenarda 0), sütun başlıkları kırılabilir; özetin ilk sütunundaki (Kasa / Hesap) uzun
   ad gerekirse bölünür, en az 5em kalır (Saat sütunu .sayi bölünmez; tutarlar bölünmez, rakam hizası korunur). Tablo
   başlığı ("Günün Sayımları", "… · Günün Hareketleri") sayfa dibinde yalnız kalmaz, tablosuyla aynı sayfaya geçer.
   Ekran değişmez. */
@media print {
  #gun-sonu table.fk-tablo { font-size: 7.5pt; }
  #gun-sonu .fk-tablo th, #gun-sonu .fk-tablo td { padding: 2px 3px; }
  #gun-sonu .fk-tablo th:first-child, #gun-sonu .fk-tablo td:first-child { padding-left: 0; }
  #gun-sonu .fk-tablo td:first-child:not(.sayi) { overflow-wrap: anywhere; min-width: 5em; }
  #gun-sonu .fk-tablo th:last-child, #gun-sonu .fk-tablo td:last-child { padding-right: 0; }
  #gun-sonu .fk-tablo th { font-size: 7.5pt; white-space: normal; }
  #gun-sonu .fk-tablo small, #gun-sonu .fk-tablo .rozet { font-size: 7pt; }
  #gun-sonu .tablo-bas { break-after: avoid; page-break-after: avoid; }
  /* onaylı farkı olan günde alt satır "Kasa Sayım Farkı (eksik / fazla)" etiketli tutarları (Sayılan / Fark sütununda)
     tek satıra zorlamasın: baskıda kırılır (yoksa tablo ~611 px'e çıkıyordu) */
  #gun-sonu .fk-tablo tfoot td.sayi-h small { white-space: normal; }
  /* denetim K1: boşluksuz uzun kasa adı (60 karaktere kadar) "Günün Sayımları"nda 2. sütunda (Kasa / Hesap), "Günün
     Hareketleri"nde 3. sütunda (Cari / Karşı Hesap: virmanın öbür kasası) ve tablo başlığında; baskıda bölünür, en az
     5em kalır. Saat (.sayi) ve tutarlar (.sayi-h) bölünmez; Belge (.uzun-metin) kendi kuralında (7em) kalır. */
  #gun-sonu .tablo-bas + table td:nth-child(2):not(.sayi):not(.sayi-h):not(.uzun-metin),
  #gun-sonu .tablo-bas + table td:nth-child(3):not(.sayi):not(.sayi-h):not(.uzun-metin) { overflow-wrap: anywhere; min-width: 5em; }
  #gun-sonu .ekstre-baslik { overflow-wrap: anywhere; }
}

/* Kasa işlemleri: işlem açılır listeden seçilir, yalnız onun formu görünür */
.islem-panel { display: grid; gap: 12px; }
.islem-panel[hidden] { display: none; }
.satir-ici { display: flex; align-items: center; gap: 8px; }
.satir-ici > span { white-space: nowrap; font-size: 13px; color: var(--ikincil); }
.satir-ici select { width: auto; min-width: 190px; }

/* Belgeye özel elle kur (28.09) */
.elle-kur { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: end; margin-top: 8px; }
.elle-kur .alan { flex: 0 1 240px; }
.elle-kur small { flex: 1 1 100%; }

/* ── telefon (≤ 760 px, yalnız ekran: A5 baskı etkilenmez) — tek sütun, yatay kaydırma yok ── */
@media screen and (max-width: 760px) {
  .alanlar { grid-template-columns: 1fr; }
  .alanlar .alan-genis { grid-column: auto; }
  .suzgec > .alan, .suzgec > .alan.dar { flex: 1 1 100%; }
  .suzgec > .dugme { flex: 1 1 120px; }
  .suzgec > form.suzgec { flex: 1 1 100%; flex-wrap: wrap; }
  .form-alt .dugme { flex: 1 1 140px; }
  .kart-bas > .satir-ici, .kart-bas > .eylemler { flex: 1 1 100%; margin-left: 0; }
  .satir-ici select { flex: 1 1 auto; min-width: 0; }
  .sekmeler.magaza-sekme { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sekmeler.yonetim-sekme { display: none; }
  .sekme-sec { display: block; }
  .bilgi-liste { grid-template-columns: 1fr; gap: 0; }
  .bilgi-liste dd { margin-bottom: 8px; }
  .bakiye-kutu { justify-items: start; text-align: left; flex: 1 1 100%; }
  .fk-ust { flex-wrap: wrap; }
  .fis-kagit { padding: 14px; }

  /* Liste tablosu → etiketli kart: başlık satırı gizli, her satır bir kart; ilk hücre (ya da .ana) başlık, diğerleri
     "etiket ········ değer". Etiketler thead'den es.js'le yazılır (data-etiket). */
  table.kart-tablo.kart-tablo, table.kart-tablo.kart-tablo > tbody, table.kart-tablo.kart-tablo > tfoot { display: block; }
  table.kart-tablo.kart-tablo > thead { display: none; }
  table.kart-tablo.kart-tablo tr { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px;
    border-top: 1px solid var(--cizgi); }
  table.kart-tablo.kart-tablo > tbody > tr:first-child { border-top: 0; }
  table.kart-tablo.kart-tablo td { display: block; border: 0; padding: 0; text-align: left; white-space: normal;
    background: none; min-width: 0; }
  table.kart-tablo.kart-tablo td.ana { order: -1; font-weight: 500; }
  table.kart-tablo.kart-tablo td[data-etiket] { display: flex; flex-wrap: wrap; justify-content: space-between;
    align-items: baseline; gap: 0 12px; text-align: right; }
  table.kart-tablo.kart-tablo td[data-etiket]::before { content: attr(data-etiket); flex: 1 0 auto; text-align: left;
    color: var(--ikincil); font-size: 12.5px; font-weight: 400; }
  table.kart-tablo.kart-tablo td .alt-satir, table.kart-tablo.kart-tablo td small.alt-satir { flex-basis: 100%; }
  table.kart-tablo.kart-tablo td.bos-hucre, table.kart-tablo.kart-tablo td.tel-gizle { display: none; }
  table.kart-tablo.kart-tablo .tel-gizle-ic { display: none; }   /* hücre içi: etiketi data-etiket'te olan metin */
  table.kart-tablo.kart-tablo td.eylem { text-align: left; padding-top: 4px; }
  table.kart-tablo.kart-tablo td.eylem .eylemler { justify-content: flex-start; }
  table.kart-tablo.kart-tablo td.bos { text-align: center; }
  table.kart-tablo.kart-tablo tr.duzen-satir { border-top: 0; padding-top: 0; }
  table.kart-tablo.kart-tablo > tfoot tr { background: var(--yuzey2); }
  .fis-kagit table.kart-tablo.kart-tablo tr { padding: 8px 0; border-top-color: #ddd; }
  .fis-kagit table.kart-tablo.kart-tablo > tfoot tr { background: none; border-top: 1px solid #111; }
  td details.acilir > .form { min-width: 0; }
}

/* ── künye ve taşıma (4A) ── */
.kunye-ozet { margin-bottom: 8px; }
.kunye-ozet dd .dugme { margin-left: 8px; vertical-align: 1px; }
[data-kimlik][hidden] { display: none; }
.tasima-not { margin: -4px 0 12px; }


/* ── sevk irsaliyesi (gece Aşama 1) ── */
.sevk-satirlar { display: grid; gap: 10px; }
.sevk-satir { border: 1px solid var(--cizgi); border-radius: var(--kose); padding: 10px 12px; display: grid; gap: 8px; }
.sevk-satir-bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 12px; }
.sevk-urun small { color: var(--ikincil); }
.sevk-satir-sag { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sevk-satir-adet { font-variant-numeric: tabular-nums; }
.sevk-satir-tutar { font-variant-numeric: tabular-nums; color: var(--ikincil); }
.sevk-fiyat { max-width: 240px; }                    /* sipariş satırının birim fiyatı (30.09) */
.sayi-giris.hatali { border-color: var(--tehlike); }
.sevk-toplam { margin: 0 0 8px auto; }
input.kabul-adet, input.kapat-adet { width: 72px; text-align: right; }
.mk-sonuc { display: grid; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--cizgi); }
.mk-tip { margin: 0; }
.irs-uclar { display: grid; gap: 1px; font-size: 12px; margin-top: 4px; }
.irs-teslim { margin-top: 14px; font-size: 12.5px; display: flex; align-items: baseline; gap: 8px; }
.irs-cizgi { flex: 0 1 260px; min-height: 1.4em; border-bottom: 1px solid #111; padding: 0 4px; }
.fis-kagit .irs-tablo th.sira-h, .fis-kagit .irs-tablo td.sira-h { width: 2.4em; color: #555; text-align: right; }
.irsaliye-kagit + .irsaliye-kagit { margin-top: 16px; }
@media print {
  .irsaliye-kagit { font-size: 9.5pt; }
  .irsaliye-kagit + .irsaliye-kagit { margin-top: 0; break-before: page; page-break-before: always; }
  .fis-kagit .irs-tablo th, .fis-kagit .irs-tablo td { padding: 2px 5px; }
}

/* ── para birimi simgesi (30.09 kararı: gösterilen her tutarın yanında; 29.09'un "başlıkta bir kez" kuralının yerine) ──
   Tutar kutusu: simge kutunun İÇİNDE, sağda, boşken de görünür; para biriminin renginde rozet + ince renkli kenar. Para
   birimi değişebilen kutuda (ödeme, virman, kasa) es.js simgeyi anında değiştirir ve kısa süre vurgular (pb-degisti).
   Kur kutusu: "1 $ = [ … ] ₺" — önde birim rozeti. Gösterilen tutarda simge düz yazı (tabloda, kâğıtta siyah); yalnız
   fiş ekranının toplamlarında renkli (.pb-s). Kâğıtta (A5, termal) renk yok. */
.pb-kutu { position: relative; display: block; min-width: 0; --pb-renk: var(--ikincil); --pb-zemin: var(--yuzey2); }
.pb-kutu[data-pb="USD"] { --pb-renk: var(--pb-usd); --pb-zemin: var(--pb-usd-zemin); }
.pb-kutu[data-pb="TRY"] { --pb-renk: var(--pb-try); --pb-zemin: var(--pb-try-zemin); }
.pb-kutu[data-pb="EUR"] { --pb-renk: var(--pb-eur); --pb-zemin: var(--pb-eur-zemin); }
.pb-kutu > input { width: 100%; padding-right: 44px; border-color: color-mix(in srgb, var(--pb-renk) 42%, var(--cizgi)); }
.pb-kutu > input:focus-visible { outline-color: var(--pb-renk); }
.pb-kutu > .pb-ek, .pb-kutu > .pb-on { position: absolute; top: 4px; bottom: 4px; display: inline-grid; place-items: center;
  border-radius: 6px; background: var(--pb-zemin); color: var(--pb-renk); font-weight: 700; line-height: 1;
  pointer-events: none; user-select: none; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pb-kutu > .pb-ek { right: 4px; min-width: 32px; padding: 0 7px; font-size: 15px; }
.pb-kutu.kur-kutu > input { padding-left: 62px; }
.pb-kutu > .pb-on { left: 4px; padding: 0 7px; font-size: 12.5px; font-weight: 600; font-style: normal; }
.pb-kutu > .pb-on[data-pb="USD"] { background: var(--pb-usd-zemin); color: var(--pb-usd); }
.pb-kutu > .pb-on[data-pb="TRY"] { background: var(--pb-try-zemin); color: var(--pb-try); }
.pb-kutu > .pb-on[data-pb="EUR"] { background: var(--pb-eur-zemin); color: var(--pb-eur); }
.fis-kok .fs-hucre .pb-kutu > input { padding-left: 6px; padding-right: 27px; }   /* fiş satırı: dar hücre, rozet küçük */
.fis-kok .fs-hucre .pb-kutu > .pb-ek { top: 3px; bottom: 3px; right: 3px; min-width: 20px; padding: 0 3px; font-size: 13px; }
.tp-giris .pb-kutu { flex: 0 0 128px; margin-left: auto; }               /* toplam bloğu: Fiş İskontosu */
.tp-giris .pb-kutu > input { width: 100%; margin-left: 0; }
.pb-kutu.pb-degisti > .pb-ek, .pb-kutu.pb-degisti > .pb-on { animation: pb-vurgu 1.1s ease-out; }
.pb-kutu.pb-degisti > input { animation: pb-kenar 1.1s ease-out; }
@keyframes pb-vurgu {
  0% { transform: scale(1.4); background: var(--pb-renk); color: var(--yuzey); }
  45% { transform: scale(1); background: var(--pb-renk); color: var(--yuzey); }
  100% { transform: scale(1); background: var(--pb-zemin); color: var(--pb-renk); }
}
@keyframes pb-kenar {
  0%, 45% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--pb-renk) 45%, transparent); border-color: var(--pb-renk); }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) {                  /* hareketsiz: vurgu süresince düz renkli çerçeve */
  .pb-kutu.pb-degisti > .pb-ek, .pb-kutu.pb-degisti > .pb-on, .pb-kutu.pb-degisti > input { animation: none; }
  .pb-kutu.pb-degisti > .pb-ek { background: var(--pb-renk); color: var(--yuzey); }
  .pb-kutu.pb-degisti > input { border-color: var(--pb-renk); box-shadow: 0 0 0 2px var(--pb-renk); }
}
.pb-s { font-weight: 600; }
.pb-s[data-pb="USD"] { color: var(--pb-usd); } .pb-s[data-pb="TRY"] { color: var(--pb-try); } .pb-s[data-pb="EUR"] { color: var(--pb-eur); }
@media print { .pb-s { color: inherit !important; } }

/* ── tahsilatta fiş seçimi (30.09) ── */
.kapat-bolum { margin: 10px 0 4px; }
.kapat-bas { margin: 0 0 6px; font-size: 13.5px; color: var(--ikincil); }
.kapat-liste { display: grid; gap: 6px; }
.kapat-liste[hidden] { display: none; }
.kapat-liste .onay { align-items: flex-start; }
.kapat-liste .onay input { margin-top: 3px; }
.kapama-not a { font-weight: 600; }

/* ── Açık Avanslar (v0.21.0): müşteri başına alacak kalemleri — "no · kaynak · tarih · gün" solda, açık tutar sağda ── */
.alacak-kalem { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; flex: 1 1 100%; }
.alacak-kalem li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 2px 12px;
  text-align: left; }
.alacak-kalem li b { white-space: nowrap; margin-left: auto; }

/* ── Fiş Kes + yarım taslak (inceleme 01.10 D4): iki seçenek dar ekranda alt alta, uzun müşteri adı satır kırar ── */
.taslak-musteri { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.taslak-musteri p { margin: 0; flex: 1 1 100%; }
.taslak-musteri .dugme { white-space: normal; text-align: center; max-width: 100%; }

/* değişim (v0.22.0) — değişim ekranı fiş ekranının sınıflarını kullanır (.fis-kok); satır altı sütun: Ürün · Beden
   Dağılımı · Miktar · Birim Fiyat · Tutar · kaldır (seri ve iskonto yok). Geri alınan / verilen bölümleri sol çizgiyle
   ayrılır; A5 kâğıtta iki tablo alt alta. */
.dg-kok [hidden] { display: none !important; }
.dg-kok .satir-tablo { --kolon: minmax(150px, 1.3fr) minmax(210px, 2fr) 60px 170px 112px 36px; }
.dg-bolum { border-left: 4px solid var(--tip); }
.dg-geri { --tip: var(--uyari); }
.dg-verilen { --tip: var(--vurgu); }
.dg-yon { font-size: 12.5px; font-weight: 500; color: var(--ikincil); margin-left: 6px; }
.dg-beden-degistir { display: block; margin-top: 6px; }
.dg-beden-hizli { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; }
.dg-beden-hizli .dugme { min-width: 44px; }
.dg-fisten > summary { cursor: pointer; font-weight: 500; }
.dg-fisten-liste { display: grid; gap: 10px; margin-top: 8px; max-height: 360px; overflow: auto; }
.dg-fis { border: 1px solid var(--cizgi); border-radius: var(--kose-kucuk); padding: 8px 10px; }
.dg-fis-bas { margin: 0 0 6px; font-size: 13.5px; }
.dg-fis-satirlar { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.dg-fis-satirlar li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 10px;
  font-size: 13px; overflow-wrap: anywhere; }
.dg-fis-satirlar li > span { flex: 1 1 200px; min-width: 0; }
.dg-odeme-sec .dugme[aria-pressed="true"] { background: var(--vurgu-zemin); border-color: var(--vurgu); color: var(--vurgu-yazi); font-weight: 600; }
.dg-odeme-soru { margin: 0 0 8px; font-size: 14px; }
.dg-fark-not { margin: 0; }
.dg-kok #dg-kaydet, .dg-kok #dg-onayla { background: var(--tip); border-color: var(--tip); color: #fff; min-width: 160px; }
.dg-kok #dg-kaydet:disabled { opacity: .55; cursor: not-allowed; }
.dg-neden { flex: 1 1 100%; margin: 0; text-align: right; }
.onay-serit p.eksi { color: var(--tehlike); }
@media (max-width: 1099px) {
  .dg-kok .fis-satir { grid-template-areas: "urun urun urun sil" "beden beden beden beden" "miktar fiyat fiyat fiyat"
                                            "tutar tutar tutar tutar" "uyari uyari uyari uyari" "alt alt alt alt"; }
}
@container satir (max-width: 989.98px) {
  .dg-kok .fis-satir { grid-template-areas: "urun urun urun sil" "beden beden beden beden" "miktar fiyat fiyat fiyat"
                                            "tutar tutar tutar tutar" "uyari uyari uyari uyari" "alt alt alt alt"; }
}
@supports not (container-type: inline-size) {
  @media (min-width: 1100px) {
    body.ym .dg-kok .fis-satir { grid-template-areas: "urun urun urun sil" "beden beden beden beden" "miktar fiyat fiyat fiyat"
                                                     "tutar tutar tutar tutar" "uyari uyari uyari uyari" "alt alt alt alt"; }
  }
}
@media (max-width: 760px) {
  .dg-kok .fis-satir { grid-template-areas: "urun sil" "beden beden" "miktar miktar" "fiyat fiyat" "tutar tutar"
                                            "uyari uyari" "alt alt"; }
  .dg-neden { text-align: left; }
  .dg-odeme-sec .dugme { flex: 1 1 140px; }
}
.dg-kagit-cari { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.dg-kagit-bolum { margin-top: 10px; }
.dg-kagit-bas { margin: 0; font-size: 12.5px; letter-spacing: .06em; }
.dg-kagit-bas small { font-weight: 400; letter-spacing: 0; }
.dg-kagit-fark { border-top: 1px solid #bbb; margin-top: 10px; padding-top: 4px; }
.dg-iptal-damga { color: #b42318; border: 2px solid #b42318; display: inline-block; padding: 2px 8px; }

/* ── cari virman fişi (v0.23.0): iki taraf yan yana, altta üç imza yeri ── */
.cv-taraflar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cv-taraf p { margin: 2px 0; }
.cv-imzalar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 28px; }
.cv-imzalar div { display: flex; flex-direction: column; gap: 32px; font-size: .85em; }
.cv-imzalar i { border-bottom: 1px solid currentColor; }
@media (max-width: 480px) { .cv-taraflar { grid-template-columns: 1fr; } .cv-imzalar { gap: 8px; } }

/* D4 (0022) pencere (POS İptali): telefonda kenarlardan 16px boşluk, yatay kayma yok */
dialog.pencere { width: min(460px, calc(100vw - 32px)); max-width: none; box-sizing: border-box; border: 1px solid var(--cizgi);
  border-radius: var(--kose); background: var(--yuzey); color: var(--yazi); padding: var(--aralik); box-shadow: var(--golge); }
dialog.pencere::backdrop { background: rgba(20, 32, 37, .45); }
dialog.pencere h2 { margin-top: 0; }
dialog.pencere .alanlar { grid-template-columns: 1fr; }
dialog.pencere .alanlar .alan-genis { grid-column: auto; }
dialog.pencere .form-alt { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.pos-iptal-dugme { margin-left: 4px; }

/* ── v0.26.0 yerleşim: solda gruplu menü (A / AC), ikon rayı (C), sağ panel (C), telefon ve tablet menüsü. Renk ve yazı
   tipi değişmez (yukarıdaki değişkenler); yalnız yerleşim. Menü yetkiden üretilir (arayuz.py), CSS yalnız gösterir. ── */
.menu-ac { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; margin: 0; }
.yan, .ray, .menu-perde, .menu-dugme { display: none; }
.yan { flex-direction: column; position: fixed; top: 0; bottom: 0; left: 0; width: 248px; z-index: 40; background: var(--yuzey);
  border-right: 1px solid var(--cizgi); border-top: 4px solid var(--magaza); overflow-y: auto; overscroll-behavior: contain; }
.yan-bas { padding: 12px 12px 8px; display: grid; gap: 10px; }
.yan-bas .marka { font-size: 14px; }
.yan-magaza { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: var(--kose-kucuk); background: var(--yuzey2);
  text-decoration: none; color: var(--yazi); font-size: 14px; min-width: 0; }
.yan-magaza .nokta { width: 10px; height: 10px; border-radius: 50%; background: var(--magaza); flex: none; }
.yan-magaza b { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yan-magaza span { margin-left: auto; color: var(--ikincil); font-size: 12.5px; white-space: nowrap; }
.yan-ara input { width: 100%; }
.yan-govde { padding: 4px 8px; display: grid; gap: 2px; align-content: start; flex: 1; }
.yan-alt { padding: 8px; border-top: 1px solid var(--cizgi); display: grid; gap: 2px; }
.yan-tek, .yan-grup > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px;
  border-radius: var(--kose-kucuk); color: var(--yazi); text-decoration: none; font-size: 14.5px; cursor: pointer; list-style: none; font-weight: 500; }
.yan-grup > summary::-webkit-details-marker { display: none; }
.yan-grup > summary::after { content: "\203A"; color: var(--ikincil); font-size: 16px; line-height: 1; transition: transform .15s; }
.yan-grup[open] > summary::after { transform: rotate(90deg); }
.yan-tek:hover, .yan-grup > summary:hover { background: var(--yuzey2); }
.yan-tek.secili { background: var(--vurgu-zemin); color: var(--vurgu-yazi); }
.yan-ogeler { display: grid; padding: 2px 0 6px 12px; }
.yan-ogeler a { padding: 6px 10px; color: var(--ikincil); text-decoration: none; font-size: 14px; border-left: 2px solid var(--cizgi);
  border-radius: 0 6px 6px 0; }
.yan-ogeler a:hover { color: var(--yazi); background: var(--yuzey2); }
.yan-ogeler a.secili { color: var(--vurgu-yazi); border-left-color: var(--vurgu); background: var(--vurgu-zemin); font-weight: 600; }
.yan-kisi { display: block; }
.yan-kisi small { display: block; font-size: 12px; color: var(--ikincil); font-weight: 400; }
.yan-alt .dugme { margin: 6px 10px 4px; justify-self: start; }
@media (min-width: 1100px) {
  body.ym-A, body.ym-AC { padding-left: 248px; }
  body.ym-A .yan, body.ym-AC .yan { display: flex; }
  body.ym-A .ust .kisi, body.ym-AC .ust .kisi, body.ym-A .ust-cikis, body.ym-AC .ust-cikis { display: none; }
}
/* C: ikon rayı (761 px ve üstü); başlığa basınca ekranları açılır */
.ray { flex-direction: column; align-items: stretch; position: fixed; top: 0; bottom: 0; left: 0; width: 76px; z-index: 40;
  background: var(--yuzey); border-right: 1px solid var(--cizgi); border-top: 4px solid var(--magaza); padding: 8px 6px; gap: 4px; }
@media (min-width: 761px) {
  body.ym-C { padding-left: 76px; }
  body.ym-C .ray { display: flex; }
}
.ray-marka { text-align: center; font-weight: 600; letter-spacing: .14em; font-size: 13px; color: var(--yazi); text-decoration: none; padding: 8px 0 10px; }
.ray-tek, .ray-grup > summary { display: grid; justify-items: center; gap: 2px; padding: 8px 2px; border-radius: var(--kose-kucuk);
  color: var(--ikincil); text-decoration: none; font-size: 11.5px; cursor: pointer; list-style: none; text-align: center; }
.ray-grup > summary::-webkit-details-marker { display: none; }
.ray svg { width: 22px; height: 22px; }
.ray-tek:hover, .ray-grup > summary:hover, .ray-grup[open] > summary { background: var(--yuzey2); color: var(--yazi); }
.ray-tek.secili, .ray-grup > summary.secili { color: var(--vurgu-yazi); background: var(--vurgu-zemin); font-weight: 600; }
.ray-grup { position: relative; }
.ray-acilir { position: absolute; left: calc(100% + 10px); top: 0; min-width: 230px; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--kose); box-shadow: 0 8px 24px rgba(20, 32, 37, .16); padding: 8px; display: grid; gap: 2px; z-index: 45; }
.ray-acilir-alt { top: auto; bottom: 0; }
.ray-acilir b { font-size: 12px; color: var(--ikincil); font-weight: 600; letter-spacing: .04em; padding: 4px 10px; }
.ray-acilir a { padding: 8px 10px; border-radius: var(--kose-kucuk); color: var(--yazi); text-decoration: none; font-size: 14px; }
.ray-acilir a:hover, .ray-acilir a.secili { background: var(--vurgu-zemin); color: var(--vurgu-yazi); }
.ray-bosluk { flex: 1; }
/* üst çubuk: arama */
.ust-ara { flex: 1; max-width: 560px; min-width: 0; margin-right: auto; }
.ust-ara input { width: 100%; }
/* menü düğmesi + çekmece: A / AC 1099 px'e kadar (tablet, telefon), C telefonda */
.menu-dugme { place-items: center; width: 40px; height: 40px; border-radius: var(--kose-kucuk); color: var(--yazi); cursor: pointer; flex: none; }
.menu-dugme:hover { background: var(--yuzey2); }
.menu-dugme svg { width: 22px; height: 22px; }
@media (max-width: 1099px) {
  body.ym-A .menu-dugme, body.ym-AC .menu-dugme { display: inline-grid; }
  body.ym-A .yan, body.ym-AC .yan { display: flex; transform: translateX(-105%); transition: transform .18s; width: min(300px, 86vw); }
  body.ym-A .menu-ac:checked ~ .yan, body.ym-AC .menu-ac:checked ~ .yan { transform: none; }
  .menu-ac:checked ~ .menu-perde { display: block; position: fixed; inset: 0; background: rgba(13, 20, 22, .38); z-index: 35; }
}
@media (max-width: 760px) {
  body.ym-C .menu-dugme { display: inline-grid; }
  body.ym-C .yan { display: flex; transform: translateX(-105%); transition: transform .18s; width: min(300px, 86vw); }
  body.ym-C .menu-ac:checked ~ .yan { transform: none; }
  .ust-ara, .ust-cikis { display: none; }
  .magaza-cip { margin-right: auto; }
  .magaza-cip span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .yan { transition: none !important; } }
.alt-cubuk label { flex: 1; text-align: center; color: var(--ikincil); font-size: 11.5px; padding: 8px 4px 9px; display: grid;
  justify-items: center; gap: 2px; cursor: pointer; }
.alt-cubuk label svg { width: 22px; height: 22px; }
/* C: sağ panel — 1280 px ve üstünde sabit, altında içeriğin ardından */
.sag-panel { background: var(--yuzey); border: 1px solid var(--cizgi); border-radius: var(--kose); padding: var(--aralik); display: grid;
  gap: 10px; align-content: start; max-width: 1088px; margin: 0 16px 96px; min-width: 0; }
@media (max-width: 1279px) { body.sag-panelli .icerik { padding-bottom: 16px; } }
@media (min-width: 1152px) { .sag-panel { margin: 0 auto 96px; } }
@media (min-width: 1280px) {
  body.sag-panelli { padding-right: 296px; }
  body.sag-panelli .sag-panel { position: fixed; top: 0; right: 0; bottom: 0; width: 296px; max-width: none; margin: 0; border-radius: 0;
    border-width: 0 0 0 1px; overflow-y: auto; z-index: 15; border-top: 4px solid var(--magaza); }
}
.sag-panel h2 { font-size: 13px; color: var(--ikincil); font-weight: 600; letter-spacing: .04em; margin-top: 6px; }
.hizli-tuslar { display: grid; gap: 8px; }
.hizli-yatay { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.hizli-tus { display: grid; gap: 2px; padding: 14px 16px; border-radius: var(--kose); border: 1px solid var(--cizgi); background: var(--yuzey);
  text-decoration: none; color: var(--yazi); min-height: 64px; min-width: 0; }
.hizli-tus b { font-size: 16px; font-weight: 600; }
.hizli-tus span { font-size: 13px; color: var(--ikincil); }
.hizli-tus:hover { border-color: var(--vurgu); background: var(--vurgu-zemin); }
.hizli-tus .sayac { font-style: normal; }
.panel-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.panel-liste li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--cizgi);
  font-size: 14px; min-width: 0; }
.panel-liste li > :first-child { min-width: 0; overflow-wrap: anywhere; }
.panel-liste li > span { color: var(--ikincil); font-size: 13px; text-align: right; }
.panel-liste .iptal { text-decoration: line-through; }
.panel-tum { font-size: 13px; }
.talep-durum.bekliyor { color: var(--uyari); font-weight: 600; }
.talep-durum.reddedildi { color: var(--tehlike); }
.talep-durum.onaylandi { color: var(--basari); }
/* fiş ekranı: belge türü düğmeleri (C) — #belge-tipi seçimini sürer */
.tip-secici { display: flex; flex-wrap: wrap; gap: 8px; }
.tip-dugme { font: inherit; font-size: 14px; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--cizgi); background: var(--yuzey);
  color: var(--yazi); cursor: pointer; }
.tip-dugme:hover { border-color: var(--tip); }
.tip-dugme[aria-pressed="true"] { background: var(--tip); border-color: var(--tip); color: #fff; font-weight: 600; }
/* A / AC açılışı */
.acilis-bas { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
/* açılışın özet şeridi KENDİ sınıfıyla (eski ekranların genel .ozet-serit kuralına dokunmaz — denetim KUSUR-1) */
.acilis-serit { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.ozet-kutu { display: grid; gap: 2px; align-content: start; padding: 14px 16px; background: var(--yuzey); border: 1px solid var(--cizgi);
  border-radius: var(--kose); text-decoration: none; color: var(--yazi); box-shadow: var(--golge); min-width: 0; }
.ozet-kutu:hover { border-color: var(--vurgu); }
.ozet-etiket { font-size: 12.5px; color: var(--ikincil); letter-spacing: .04em; }
.ozet-kutu b { font-size: 1.3rem; font-weight: 600; overflow-wrap: anywhere; }
.ozet-alt { font-size: 12.5px; color: var(--ikincil); }
.acilis-izgara { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--aralik); align-items: start; }
@media (max-width: 1099px) { .acilis-izgara { grid-template-columns: minmax(0, 1fr); } }
.onay-liste { list-style: none; margin: 0; padding: 0; display: grid; }
.onay-kalem a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 12px; padding: 10px 4px; border-bottom: 1px solid var(--cizgi);
  text-decoration: none; color: var(--yazi); }
.onay-kalem a:hover { background: var(--yuzey2); }
.onay-tur { grid-column: 1; font-size: 12px; color: var(--ikincil); letter-spacing: .03em; }
.onay-kalem b { grid-column: 1; font-weight: 600; overflow-wrap: anywhere; }
.onay-ayrinti { grid-column: 1; font-size: 13px; color: var(--ikincil); overflow-wrap: anywhere; }
.onay-git { grid-column: 2; grid-row: 1 / span 3; align-self: center; font-size: 13px; color: var(--vurgu-yazi); white-space: nowrap; }
.tur-pos_takip .onay-git { color: var(--ikincil); }
/* v0.26.3: Onay Bekleyenler kutusunun iki bölümü (karar bekleyenler / takip); takip kalemi karar kalemlerinden sönük */
.kart.onay-kutu > h3.onay-bolum { margin: 12px 0 0; font-size: 12.5px; font-weight: 600; color: var(--ikincil); letter-spacing: .04em; }
.kart.onay-kutu > h3.onay-bolum + .bos { padding-top: 4px; }
.takip-liste .onay-git { color: var(--ikincil); }
.sik-liste { display: flex; flex-wrap: wrap; gap: 8px; }
.acilis-alt-bas { font-size: 1rem; color: var(--ikincil); margin-top: 8px; }
.ara-form { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; }
.ara-form .alan { flex: 1 1 260px; margin: 0; }
/* yazdırma (A5 belge, termal): menü, ray, sağ panel ve çekmece kâğıda çıkmaz; gövde boşlukları sıfır */
@media print {
  .yan, .ray, .sag-panel, .menu-perde, .menu-ac, .menu-dugme, .ust-ara { display: none !important; }
  body.ym { padding: 0 !important; }
}
/* ── v0.27.0 öğretici mod: perde + delik (hedef aydınlanır) + açıklama kutusu. Yalnız gösterir; sayfa açıkken inert. ── */
.ust-ogretici { flex: none; }
.ogr-kok { position: fixed; inset: 0; z-index: 1000; }
.ogr-kok[hidden] { display: none; }
.ogr-perde { position: fixed; inset: 0; background: transparent; }
.ogr-deliksiz .ogr-perde { background: rgba(8, 14, 16, .62); }
.ogr-deliksiz .ogr-delik { display: none; }
.ogr-delik { position: fixed; border-radius: 10px; pointer-events: none; box-shadow: 0 0 0 200vmax rgba(8, 14, 16, .62);
  outline: 3px solid var(--vurgu); outline-offset: 0; }
.ogr-kutu { position: fixed; z-index: 2; width: min(360px, calc(100vw - 24px)); background: var(--yuzey); color: var(--yazi);
  border: 1px solid var(--cizgi); border-radius: var(--kose); box-shadow: 0 12px 32px rgba(8, 14, 16, .28); padding: 14px 16px 12px; }
.ogr-kutu:focus { outline: none; }
.ogr-kutu { max-height: calc(100vh - 16px); overflow: auto; }
.ogr-kutu.ogr-alt { right: 12px; width: auto; max-height: 48vh; }     /* telefon: iki yandan 12 px; yeri betik verir */
.ogr-bosluk { height: 0; }
.ogr-ust { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ogr-sayac { font-size: 12.5px; color: var(--ikincil); font-variant-numeric: tabular-nums; }
.ogr-kapat { font: inherit; font-size: 22px; line-height: 1; width: 34px; height: 34px; border-radius: 8px; border: 0; cursor: pointer;
  background: transparent; color: var(--ikincil); }
.ogr-kapat:hover { background: var(--yuzey2); color: var(--yazi); }
.ogr-baslik { font-size: 16.5px; margin: 2px 0 6px; }
.ogr-metin { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--yazi); }
.ogr-eylem { display: flex; justify-content: flex-end; gap: 8px; }
.ogr-eylem .dugme { min-width: 92px; }
.ogr-kutu button:focus-visible { outline: 3px solid var(--vurgu); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
  .ogr-delik { transition: left .18s ease, top .18s ease, width .18s ease, height .18s ease; }
}
.ogr-hareketsiz .ogr-delik, .ogr-hareketsiz .ogr-kutu { transition: none !important; }
@media print { .ogr-kok, .ust-ogretici { display: none !important; } }
