/* M18 Stok */
.stok-eksi { color: var(--red); }
.stok-form { display: flex; flex-direction: column; gap: 10px; }
.stok-form label { display: flex; flex-direction: column; gap: 4px; font-size: var(--yazi-md); }
.stok-form input, .stok-form select { padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius); }
.stok-flash { margin: 8px 0; padding: 8px 12px; background: #ecfdf5; border: 1px solid #6ee7b7; border-radius: var(--radius); font-size: var(--yazi-md); }
.stok-eksik-lbl { display: inline-flex; align-items: center; gap: 6px; font-size: var(--yazi-md); color: var(--muted); }
/* Süre birimi: gün = bekleme (kapasite tüketmez), görsel olarak dakikadan ayrılsın */
.sr-birim { color: var(--muted); font-size: var(--yazi-xs); margin-left: 4px; }
.sr-birim.gun { color: var(--amber); font-weight: 700; }
.metod-ro .pm-birim { flex-shrink: 0; font-size: var(--yazi-xs); padding: 0 2px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.metod-ro.birim-gun { background: #fff7ed; border-color: #fdba74; }

/* E: Sipariş oluşturma sayfası */
.sip-duzen { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
@media (max-width: 900px) { .sip-duzen { grid-template-columns: minmax(0, 1fr); } }
/* ARAMA KUTUSU — Master Veri'deki iki giriş de bunu kullanıyor. */
.sip-ara { flex: 1; border: 1px solid var(--line); border-radius: var(--radius); padding: 8px 10px; }
/* Liste EKRANA göre yükseliyor, sabit satır sayısına göre değil.
   Panel yapışkan ve pencere boyuyla sınırlı; tablo panelin içinde kalanı
   dolduruyor. Tek kaydırma kalıyor: tablonun kendisi. */
.sip-urunler {
  position: sticky; top: var(--bosluk-3);
  display: flex; flex-direction: column;
  /* 126 = 78 (üst bar 58 + görünüm üst boşluğu 20) + 16 (panel alt boşluğu)
     + 32 (görünüm alt boşluğu). Ölçülerek bulundu. */
  max-height: calc(100dvh - 126px);
}
/* DOĞRUDAN ÇOCUK: `>` olmadan bu kural açık satırın içindeki sevkiyat
   kalemleri tablosuna da uyguluyordu — 4 satırlık tablonun altında
   260px boşluk açılıyordu (ölçüldü 2026-09-10). */
.sip-urunler > .table-wrap { flex: 1; min-height: 260px; overflow: auto; }
/* Kısa ekranda yapışkanlık ters teper: panel pencereden uzun kalır ve içerik
   kilitlenir. O boyda normal akışa dönülüyor. */
@media (max-height: 600px) {
  .sip-urunler { position: static; max-height: none; }
  .sip-urunler > .table-wrap { max-height: 60vh; }
}

/* E2: ÜRÜN TABLOSU — kart yığınının yerine (kullanıcı kararı 2026-09-10).
   Başlıklar kaydırmada YERİNDE KALIYOR: 25 satırlık bir sayfada aşağı
   inince hangi sütuna baktığını hatırlamak gerekiyordu. */
.sip-tablo thead th { position: sticky; top: 0; z-index: 1; background: var(--panel-2); }
/* SÜTUN GENİŞLİKLERİ: tablo 340px'lik sepetin yanındaki ~740px'e sığmalı.
   Sığmazsa `table-wrap` yatay kaydırıyor ve YENİ sütunlar (bekleyen ·
   teslim · stok) ekranın dışında kalıyor — tabloya geçmenin sebebi tam
   olarak onları yan yana görmekti. Esneyen tek sütun ürün adı. */
.sip-tablo { table-layout: fixed; width: 100%; }
/* ÜRÜN KODU KIRPILMAZ: 14 haneli kod ("12H45-70061-AA") ekranda yarım
   görünürse satır kimliğini kaybeder — ilk denemede 132px verilmişti ve
   kodlar "12H45-700…" diye kesiliyordu (ölçüldü). Genişlik oradan değil,
   esneyen ad sütunundan alınıyor. */
.sip-tablo .sk-gorsel { width: 40px; }
.sip-tablo .sk-kod { width: 156px; }
.sip-tablo .sk-musteri { width: 92px; }
/* 94px: "BEKLEYEN" başlığı büyük harf + harf aralığıyla 89px istiyor,
   78px'te kırpılıyordu (ölçüldü: client 78 / scroll 89). */
.sip-tablo .sk-bekleyen { width: 94px; }
.sip-tablo .sk-teslim { width: 100px; }
.sip-tablo .sk-stok { width: 78px; }
/* Son sütun kenara yapışmasın: sağa yaslı sayı, tablonun çerçevesine
   değiyordu. */
.sip-tablo tbody td:last-child, .sip-tablo thead th:last-child { padding-right: 16px; }

/* Sabit yerleşimde taşan metin kesiliyor; tam adı `title` taşıyor. */
.sip-tablo tbody td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Panel satırı kırpmanın DIŞINDA: içindeki tablo kendi düzenini kuruyor. */
.sip-tablo .sip-panel-satir > td { overflow: visible; white-space: normal; }
/* Taşma SAĞ KENARDAN: ortak `.liste-gorsel` 40px + 2px çerçeve, hücrenin
   sol dolgusuyla birlikte 40px'lik sütunu aşıyordu (denetim 15 satırda
   ölçtü, 2026-09-10). Dolgu bu hücrede kısaltılıyor ve resim küçültülüyor;
   ORTAK KURAL DEĞİŞTİRİLMİYOR — onu kullanan öteki tablolarda sütun geniş. */
/* Seçici TABLO ÜZERİNDEN: yalnız `.sip-td-gorsel` yazıldığında ortak
   `.table-wrap td` kuralı (12px dolgu) ağır basıyordu — ölçüldü, hesaplanan
   dolgu 12px kalıyor ve 30px'lik resim 40px'lik sütunu 2px aşıyordu. */
/* ÖLÇÜ 52×36'YA ÇEKİLDİ (KDE-0030, kullanıcı 2026-10-10: "52x36'ya çek
   sen"). Burada görsel KENDİ SÜTUNUNDA — kodun yanında değil — o yüzden
   `.kod-gorsel` sarmalayıcısı yok; değişen yalnız ölçü. Üç ayrı boy
   ölçülmüştü (30×20 burada, 40×28 Ürün Listesi'nde, 52×36 Stok'ta); aynı
   satırın ekrandan ekrana boy değiştirmesi "başka bir liste" izlenimi
   veriyordu. */
.sip-tablo tbody td.sip-td-gorsel { width: 56px; padding-left: 4px; padding-right: 0; }
.sip-tablo td.sip-td-gorsel .liste-gorsel { display: block; width: 52px; height: 36px; }
.sip-tablo .sip-satir { cursor: pointer; }
.sip-tablo .sip-satir:hover { background: var(--panel-2); }
.sip-tablo .sip-satir.acik { background: #f3f3f3; }
/* Geçmiş teslim tarihi: satırın tamamını boyamak yerine YALNIZ tarih —
   kırmızı satır "bu ürün bozuk" der, oysa geciken şey tek bir tarih. */
.sip-gec { color: var(--red); font-weight: 700; }

/* E3: açık satırın altındaki sevkiyat kalemleri paneli */
/* Alt boşluk üsttekinden FAZLA: düğmeler bir sonraki ürün satırına
   yapışıyordu (kullanıcı bildirimi 2026-09-10) — panelin nerede bittiği
   okunmuyordu. */
.sip-panel-satir > td { background: #eef1f1; padding: 10px 10px 18px; }
/* PANEL SATIRINDA VURGU YOK (ölçüldü 2026-09-10: "üstüne gidince bütün
   tablo parlıyor"). Genel `.table-wrap tbody tr:hover td` kuralı panelin
   TEK hücresini boyuyor, o hücre de bütün paneli kaplıyor — imleç nereye
   gelirse gelsin tüm panel renk değiştiriyordu. Vurgu SATIR seçmeye ait
   bir işaret; panel bir satır değil, açılmış bir iş alanı. */
.sip-tablo .sip-panel-satir:hover > td { background: #eef1f1; }
.sip-kalem-tablo tbody tr:hover > td { background: transparent; }
.sip-kalem-tablo tbody tr:not(.sip-kalem-kapali):not(.sip-toplam):hover > td { background: var(--hover); }
.sip-panel-yukleniyor { padding: 8px; }
.sip-kalem-tablo .table-wrap { background: #fff; }
.sip-kalem-tablo .sip-th-sec { width: 32px; }
/* Panel ayağı: iki ekleme düğmesi yan yana. */
.sip-panel-ayak { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
/* İş emrine girmiş kalem tabloda DURUYOR ama seçilemiyor: "bu tarih zaten
   işlendi" bilgisi, satırı gizlemekten daha çok şey söylüyor. */
.sip-kalem-kapali { opacity: .55; }
/* Bu iş emrine SEPETE eklenmiş satır: soluk + üstü çizili + seçim kutusuz —
   aynı kalem iki kez eklenmesin; sepetten çıkarılınca geri döner (Selim
   2026-09-10). "İş emrinde" olanla (sip-kalem-kapali) aynı sadelik dili. */
.sip-kalem-tablo .sip-kalem-eklendi { opacity: .5; }
.sip-kalem-tablo .sip-kalem-eklendi > td { text-decoration: line-through; }
/* Elle giriş ÇEKMECESİ (kullanıcı kararı 2026-09-10): "Manuel Ekle"
   düğmesinin altında açılıyor. Kesik çerçeve ayrı bir iş olduğunu söylüyor.
   Her satırda açık duran boş bir tarih/adet çifti, esas iş olan seçim
   tablosunun altına sürekli gürültü koyuyordu. */
.sip-manuel { margin-top: 8px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  border: 1px dashed var(--line-strong); border-radius: var(--radius); background: #fbfbfa; padding: 8px 10px; }
.sip-manuel[hidden] { display: none; }
.sip-manuel-et { font-size: var(--yazi-xs); color: var(--muted); }
.sip-manuel input { border: 1px solid var(--line-strong); border-radius: var(--radius); padding: 5px 7px; font-size: var(--yazi-md); font-family: inherit; }
.sip-manuel .sm-adet { width: 78px; }
.rozet-elle { display: inline-block; padding: 0 6px; background: var(--amber-bg); color: var(--amber-ink); border: 1px solid var(--amber-line); border-radius: 999px; font-size: var(--yazi-xs); font-weight: 700; }
/* Metod listesi: satır sonundaki silme düğmesi (yalnız üstüne gelince görünür) */
.metod-ro .pm-sil { flex-shrink: 0; border: 0; background: none; color: var(--muted); cursor: pointer; font-size: var(--yazi-lg); line-height: 1; padding: 0 4px; visibility: hidden; }
.metod-ro:hover .pm-sil { visibility: visible; }
.metod-ro .pm-sil:hover { color: var(--red); }
.sip-kesin-ekle { margin-top: 12px; }
.sip-ekstra { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed #cbd5e1; flex-wrap: wrap; }
.sip-ekstra .ekstra-not { font-size: var(--yazi-xs); color: var(--muted); }

/* D: Aktif Ürün Listesi */
.aktif-panel { margin-top: 20px; }
.aktif-tablo { width: 100%; border-collapse: collapse; font-size: var(--yazi-md); }
.aktif-tablo th, .aktif-tablo td { padding: 7px 8px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
.aktif-tablo thead tr:first-child th { background: #f3f3f3; font-size: var(--yazi-sm); color: var(--muted); }
.aktif-tablo .filtre-satir th { padding: 4px 6px; background: #fff; border-bottom: 2px solid var(--line); }
.aktif-tablo .filtre-satir input { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px; padding: 4px 6px; font-size: var(--yazi-sm); }
.aktif-tablo .filtre-satir select { width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px; padding: 4px 6px; font-size: var(--yazi-sm); background: #fff; }
/* Aynı tuzak: `th`e flex verilince hücre sütun düzeninden kopuyor. İki tarih
   kutusu satır içi hizalanıyor, hücre `table-cell` kalıyor. */
/* Teslim süzgeci başlığın yanında: sütun hücresinde iki tarih kutusu dar
   kalıyordu ve başlıktaki açıklama metni zaten yer kaplıyordu. */
.baslik-arac { display: inline-flex; align-items: center; gap: 8px; margin-left: 14px;
  font-size: var(--yazi-md); font-weight: 400; vertical-align: middle; }
.baslik-arac input[type="date"] { border: 1px solid var(--line); border-radius: var(--radius);
  padding: 4px 8px; font-size: var(--yazi-sm); }
.baslik-arac .aralik-tik { display: inline-flex; align-items: center; gap: 5px;
  color: var(--muted); font-size: var(--yazi-sm); cursor: pointer; white-space: nowrap; }
/* SIRALANABİLİR BAŞLIK — TABLO STANDARDI, tek ekrana bağlı değil
   (2026-09-10'da `.aktif-tablo` kapsamından çıkarıldı: aynı düzen Sipariş
   Oluştur ekranına da geldi ve kuralı kopyalamak iki sürüm demekti).
   `data-sort` taşımayan başlık etkilenmiyor — imleç de ok da çıkmıyor. */
.sirala-satir th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; }
.sirala-satir th[data-sort]:hover { color: var(--ink); }
.sirala-satir th.sirali { color: var(--brand); }
.sirala-satir th.sirali::after { content: " \25B2"; font-size: var(--yazi-xs); }
.sirala-satir th.sirali[data-yon="desc"]::after { content: " \25BC"; }
.asama-cell { min-width: 96px; }
.asama-bar { height: 5px; background: #e5e7eb; border-radius: 999px; overflow: hidden; margin-bottom: 3px; }
.asama-bar span { display: block; height: 100%; background: var(--brand); }
.asama-cell small { color: var(--muted); font-size: var(--yazi-xs); }
.ie-link { color: var(--brand); cursor: pointer; font-weight: 700; }

