/* ==========================================================================
   KALİTE YÖNETİMİ
   ==========================================================================
   Yeni sınıflar tokens.css'ten besleniyor; sabit renk yok. Popup içindeki
   form sınıfları `#popupGovde` altına kapsanmış — depoda `.tam` hep bir
   ebeveyne bağlı tanımlı, kapsamsız bırakmak onlarla çakışırdı. */

/* Rozet — DURUM kümesinden renk alıyor, seri kümesinden değil.
   ("Ne hâlde" der, "hangi kalem" demez; bkz. tokens.css renk kümeleri.) */
.rozet { display: inline-block; padding: 1px 7px; border-radius: 999px;
  font-size: var(--yazi-xs); font-weight: 700; white-space: nowrap;
  background: var(--panel-2); color: var(--muted); border: 1px solid var(--line); }
.rozet.amber   { background: var(--amber-bg); border-color: var(--amber-line); color: var(--amber); }
.rozet.yesil   { background: var(--green-bg); border-color: var(--green-line); color: var(--green); }
.rozet.kirmizi { background: var(--red-bg);   border-color: var(--red-line);   color: var(--red); }
.rozet.bilgi   { background: var(--brand-soft); border-color: var(--brand-line); color: var(--brand-dark); }

.btn.ufak { height: var(--tik-h); padding: 0 var(--bosluk-3); font-size: var(--yazi-sm); }

/* Yürürlükteki revizyon / genel tolerans şeridi. Bilgi şeridi, uyarı değil —
   aksanın açık zeminini kullanıyor. */
.kal-not { background: var(--brand-soft); border: 1px solid var(--brand-line);
  border-radius: var(--radius); padding: var(--bosluk-3);
  margin-bottom: var(--bosluk-4); font-size: var(--yazi-sm); color: var(--ink); }
.kal-not .btn { margin-left: var(--bosluk-2); }

.kal-satir, .kar-satir { cursor: pointer; }

/* Pareto çubuğu — grafik kütüphanesi yok, gereği de yok. */
.kal-cubuk { display: grid; grid-template-columns: 1fr 46px; align-items: center;
  gap: var(--bosluk-3); margin-bottom: var(--bosluk-3); }
.kal-cubuk-ad { font-size: var(--yazi-sm); margin-bottom: 3px; grid-column: 1; }
.kal-cubuk-yol { height: 8px; background: var(--bos-dilim); border-radius: 4px;
  overflow: hidden; grid-column: 1; }
.kal-cubuk-dolu { height: 100%; }
.kal-cubuk-deg { grid-row: 1 / 3; grid-column: 2; text-align: right;
  font-variant-numeric: tabular-nums; font-weight: 700; }
.kal-ozet { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--bosluk-5); }

/* ==========================================================================
   FORM IZGARASI — BİLEŞEN TABANI (2026-09-23)

   ÖLÇÜLDÜ: `.form-izgara` yalnız `#popupGovde` ve `.vb` altında tanımlıydı.
   Karakteristik formu TAM SAYFA (`#view-karakteristikForm`) olduğu için ızgara
   ona HİÇ uygulanmıyordu: `display: block`, etiketler `display: inline`. Ekran
   metin akışına düşmüştü — etiketler kutuların dibine giriyor, hiçbir sütun
   hizalanmıyordu. Denetim yine de "0 bulgu" diyordu, çünkü çıplak akış TAŞMAZ.

   Bu ekranda 68 bulgu üretti: 40 × bilesen-sozlesmesi-yok, 28 ×
   etiket-denetimle-cakisiyor. Diğer 26 ekran temizdi — kusur sınıfın
   kendisinde değil, KAPSAMINDAYDI.

   SINIF BİR SÖZLEŞMEDİR: yazıldığı her yerde karşılığı olmalı. Taban burada;
   pop-up ve `.vb` kendi farklarını AŞAĞIDA eziyor (ikisi de daha özgül).
   ========================================================================== */
.form-izgara { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bosluk-3); margin-bottom: var(--bosluk-3); align-items: start; }
/* Etiket DİKEY: metin üstte, denetim altta. Yan yana dizilince uzun etiket
   kutunun altına kayıyor ve sütun genişliği etiketin uzunluğuna göre
   değişiyordu — hiçbir satır bir diğeriyle hizalanmıyordu. */
.form-izgara > label { display: flex; flex-direction: column;
  gap: var(--bosluk-1); font-size: var(--yazi-xs); text-transform: uppercase;
  letter-spacing: var(--harf-etiket); color: var(--muted); font-weight: 700;
  min-width: 0; }

/* `.tam` YALNIZ YERLEŞİM DEĞİŞTİRİCİSİ — tipografi taşımaz.

   Ölçüldü 2026-09-23, "Excel'e Aktar — süzgeç" penceresi: `.sa-form` içinde
   üç etiket var; ikisi normal ("Üretim durumu", "Müşteri"), biri BÜYÜK HARF
   ("TANIMLAMA"). Tek fark üçüncüsünün `.tam` taşıması.

   Sebep: `.tam` "tam genişlik kapla" demek — bir YERLEŞİM sözü. Ona yazı
   biçimi de yüklenince `.form-izgara` DIŞINDAKİ her kapta kardeşlerinden
   ayrı görünüyor. Yazı biçimi KABIN işi: `.form-izgara` kendi etiketlerini
   biçimlendirir, `.sa-form` kendininkini.

   SINIF: bir değiştirici sınıfın kendi görevinin dışına taşması. Yeni bir
   değiştirici yazarken sor — bu sınıf neyi söylüyor, yerleşimi mi biçimi mi? */
label.tam { display: flex; flex-direction: column; gap: var(--bosluk-1);
  min-width: 0; margin-bottom: var(--bosluk-3); }
/* `grid-column: 1/-1` — tam genişlik alan (not, açıklama) satırı bölmesin */
.form-izgara > label.tam { grid-column: 1 / -1; }
.form-izgara input, .form-izgara select, .form-izgara textarea,
label.tam input, label.tam select, label.tam textarea {
  font: var(--yazi-md)/1.4 var(--font); color: var(--ink);
  background: var(--panel); border: 1px solid var(--line-strong);
  border-radius: var(--radius); padding: 0 var(--bosluk-3);
  height: var(--row-h); width: 100%; box-sizing: border-box; }
.form-izgara textarea, label.tam textarea { height: auto;
  padding: var(--bosluk-2) var(--bosluk-3); resize: vertical;
  text-transform: none; letter-spacing: normal; }
.form-izgara input:focus, .form-izgara select:focus, .form-izgara textarea:focus {
  outline: 2px solid var(--brand-line); border-color: var(--brand); }
/* Alan kümesi: ölçü sınırları gibi bir arada okunan alanlar tek çerçevede */
.panel > fieldset, .view fieldset { border: 1px solid var(--line);
  border-radius: var(--radius); padding: var(--bosluk-3);
  margin: 0 0 var(--bosluk-3); min-width: 0; }
.panel > fieldset > legend, .view fieldset > legend { font-size: var(--yazi-xs);
  text-transform: uppercase; letter-spacing: var(--harf-etiket);
  color: var(--muted); font-weight: 700; padding: 0 var(--bosluk-2); }
@media (max-width: 900px) { .form-izgara { grid-template-columns: minmax(0, 1fr); } }

/* ---- Popup içi form ---- */
#popupGovde .form-izgara { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--bosluk-3); margin-bottom: var(--bosluk-3); }
/* `#popupGovde label.tam` BURADAN ÇIKARILDI (2026-09-23). Büyük harf
   yalnız `.form-izgara` etiketlerinin biçimi; `.tam` başka bir kabın
   (`.sa-form`) içindeyken o kabın biçimini almalı. Yukarıdaki `label.tam`
   yorumuna bak — "Excel'e Aktar — süzgeç" penceresinde üç etiketten birinin
   büyük harf olmasının sebebi buydu. */
#popupGovde .form-izgara label, #popupGovde .form-izgara label.tam { display: flex; flex-direction: column;
  gap: var(--bosluk-1); font-size: var(--yazi-xs); text-transform: uppercase;
  letter-spacing: var(--harf-etiket); color: var(--muted); font-weight: 700; min-width: 0; }
#popupGovde label.tam { margin-bottom: var(--bosluk-3); }
#popupGovde .form-izgara input, #popupGovde .form-izgara select,
#popupGovde label.tam input, #popupGovde label.tam textarea, #popupGovde label.tam select {
  font: var(--yazi-md)/1.4 var(--font); color: var(--ink);
  background: var(--panel); border: 1px solid var(--line-strong);
  border-radius: var(--radius); padding: 0 var(--bosluk-3); height: var(--row-h); width: 100%; }
#popupGovde textarea { height: auto; padding: var(--bosluk-2) var(--bosluk-3);
  resize: vertical; text-transform: none; letter-spacing: normal; }
#popupGovde small { text-transform: none; letter-spacing: normal;
  font-weight: 400; color: var(--faint); }
#popupGovde fieldset { border: 1px solid var(--line); border-radius: var(--radius);
  padding: var(--bosluk-3); margin-bottom: var(--bosluk-3); }
#popupGovde legend { font-size: var(--yazi-xs); text-transform: uppercase;
  letter-spacing: var(--harf-etiket); color: var(--muted); font-weight: 700; padding: 0 var(--bosluk-2); }
#popupGovde .popup-ayak { display: flex; align-items: center; justify-content: flex-end;
  gap: var(--bosluk-2); border-top: 1px solid var(--line);
  padding-top: var(--bosluk-3); margin-top: var(--bosluk-4); }
/* Hata SOLDA ve butonların yanında: kaydete basan göz oradan ayrılmıyor. */
#popupGovde .hata-metin { margin-right: auto; color: var(--red); font-weight: 700; font-size: var(--yazi-sm); }
#popupGovde .kal-tanim { background: var(--brand-soft); border: 1px solid var(--brand-line);
  border-radius: var(--radius); padding: var(--bosluk-3); margin-bottom: var(--bosluk-4); }
#popupGovde .kal-kunye { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--bosluk-3); background: var(--panel-2); border: 1px solid var(--line);
  border-radius: var(--radius); padding: var(--bosluk-3); margin: 0 0 var(--bosluk-4); }
#popupGovde .kal-kunye dt { font-size: var(--yazi-xs); text-transform: uppercase;
  letter-spacing: var(--harf-etiket); color: var(--muted); }
#popupGovde .kal-kunye dd { margin: 0; font-weight: 700; word-break: break-word; }
/* Olay dizisi: kayıt değişmiyor, üstüne olay biniyor — ekran da öyle göstersin. */
#popupGovde .kal-olaylar { list-style: none; margin: 0 0 var(--bosluk-4);
  padding-left: var(--bosluk-4); border-left: 2px solid var(--line); }
#popupGovde .kal-olaylar li { margin-bottom: var(--bosluk-3); }
#popupGovde .kal-bag { border: 1px solid var(--line); border-radius: var(--radius);
  padding: var(--bosluk-3); margin-bottom: var(--bosluk-3); }
#popupGovde .kal-bag summary { cursor: pointer; font-size: var(--yazi-sm); font-weight: 700; }

@media (max-width: 720px) {
  #popupGovde .form-izgara { grid-template-columns: minmax(0, 1fr); }
}


/* ==========================================================================
   BASKI KARTLARI — Sevkiyat Kartı ve Raf Kartı (A6 yatay)
   ==========================================================================
   Tasarım kullanıcıdan geldi (2026-09-07). Ölçüler oradan birebir alındı;
   "yaklaşık aynı" yapmak baskıda tutmaz.

   A6 YATAY 148×105mm. İkisi yan yana 296mm, iki sıra 210mm — yani yatay A4'e
   TAM DÖRT kart giriyor, kenar boşluğu sıfır. Önceki sürüm 82mm'lik özel bir
   boydaydı; A6 standart bir etiket boyu ve kesim kolay.

   İKİ KART TEK İSKELET, farkı yalnız renk ve alanlar. Ayrı iki blok yazmak,
   birinde düzeltilen ölçünün diğerinde eski kalmasına yol açardı. Vurgu rengi
   `--k-vurgu`, ADET bandı `--k-adet` ile kart kökünde çevriliyor.

   Ölçüler mm cinsinden: çıktı fiziksel kâğıt, piksel yazıcı çözünürlüğüne
   göre kayardı.
   ========================================================================== */

/* ARCHIVO KENDİ SUNUCUMUZDAN. Google Fonts'tan çekilseydi atölyede internet
   yoksa font sessizce Helvetica'ya düşer ve tasarımın tamamı kaybolurdu —
   üstelik hata da vermeden. Dosyalar public/fonts altında (latin + latin-ext);
   Türkçe ikisini birden istiyor: ı latin'de, ğ/ş/İ latin-ext'te. Değişken
   font, tek dosya bütün ağırlıkları veriyor. */
@font-face {
  font-family: 'Archivo'; font-style: normal; font-weight: 400 800;
  font-stretch: 100%; font-display: swap;
  src: url('/fonts/archivo-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: 'Archivo'; font-style: normal; font-weight: 400 800;
  font-stretch: 100%; font-display: swap;
  src: url('/fonts/archivo-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;
}

/* LATO — ARAYÜZ FONTU (kullanıcı seçimi 2026-09-09).
   Değişken font DEĞİL: her ağırlık ayrı dosya. Latin ve latin-ext ayrı,
   çünkü Türkçe ikisini birden istiyor — ı latin'de, ğ/ş/İ latin-ext'te.
   İndirilen ağırlıklar: 300 · 400 · 700 · 900 + 400 italik. 100 (Thin)
   alınmadı: arayüzde hiçbir yerde kullanılmıyor ve 28 KB boşa giderdi. */
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap;
  src: url('/fonts/lato-300-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: 'Lato'; font-style: normal; font-weight: 300; font-display: swap;
  src: url('/fonts/lato-300-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;
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/fonts/lato-400-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: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/fonts/lato-400-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;
}
@font-face {
  font-family: 'Lato'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('/fonts/lato-400-italic-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: 'Lato'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('/fonts/lato-400-italic-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;
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/fonts/lato-700-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: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/fonts/lato-700-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;
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 900; font-display: swap;
  src: url('/fonts/lato-900-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: 'Lato'; font-style: normal; font-weight: 900; font-display: swap;
  src: url('/fonts/lato-900-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;
}

/* Kart ölçeği: 148mm genişlikte çizilen tasarım 100mm kâğıda oturuyor.
   Bütün iç ölçüler bu çarpanla küçülüyor — oranlar bozulmuyor. */
.yk-kagit {
  /* Renkler DEĞİŞKEN JETONDAN DEĞİL doğrudan: @media print içinde :root
     jetonları tarayıcıdan tarayıcıya farklı çözülebiliyor ve kâğıt sürprize
     gelmemeli. Kartın paleti sabit. */
  --k-lacivert: #284B63;
  --k-teal:     #3C6E71;
  --k-murekkep: #353535;
  --k-gri:      #D9D9D9;
  /* ÖLÇEK: tasarım 148mm genişlik için çizildi, kâğıt 100mm.
     Tek sayı — kart ölçüsü değişirse yalnız burası değişir. */
  --k-o: 0.6757;
  /* Kart kutusu hedef ölçüde; içerik ölçekle küçülüyor. En-boy oranı
     değiştiği için dikeyde artan boşluk QR bloğuna kalıyor. */
  display: grid; grid-template-columns: repeat(2, 100mm); grid-auto-rows: 94mm;
  width: 200mm; background: #fff; color: var(--k-murekkep);
  font-family: 'Archivo', "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* DIŞ ÇERÇEVE: calc(var(--k-o) * 2mm) gri boşluk, kart onun içinde başlıyor. Boşluk kesim payı
   gibi çalışıyor — etiket makasla kesilse de çerçeve zedelenmiyor. */
.yk-kart {
  --k-vurgu: var(--k-lacivert);
  --k-adet:  var(--k-teal);
  box-sizing: border-box; padding: calc(var(--k-o) * 2mm); background: var(--k-gri);
  break-inside: avoid; page-break-inside: avoid;
  /* ZEMİN RENKLERİ BASILSIN. Tarayıcılar arka planları varsayılan olarak
     atıyor; bu satır olmadan başlık bandı ve ADET bloğu bembeyaz çıkar,
     renkli kart isteğinin bütün anlamı kaybolur. */
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
/* Raf kartında iki renk yer değiştiriyor — tek fark bu. */
.yk-kart.yk-raf { --k-vurgu: var(--k-teal); --k-adet: var(--k-lacivert); }

.yk-ic {
  width: 100%; height: 100%; box-sizing: border-box;
  background: #fff; border: calc(var(--k-o) * 0.3mm) solid var(--k-vurgu);
  display: flex; flex-direction: column;
}

/* ---------- Başlık ---------- */
.yk-bas {
  display: flex; align-items: center; justify-content: space-between; gap: calc(var(--k-o) * 4mm);
  padding: calc(var(--k-o) * 3.5mm) calc(var(--k-o) * 4.5mm) calc(var(--k-o) * 3mm); border-bottom: calc(var(--k-o) * 0.9mm) solid var(--k-vurgu);
}
/* LOGO ALANI SABİT: görsel olsa da olmasa da başlık kaymıyor. Arka plan
   olarak geliyor, img etiketiyle değil — CSP satır içi olay işleyicilerini
   blokluyor, yani onerror tabanlı bir yedek HİÇ çalışmıyor ve logosuz
   kurulumda kırık görsel simgesi kalırdı.
   display:block ŞART: span satır içi olsaydı yükseklik yok sayılırdı (bir
   kez ölçüldü: 22×calc(var(--k-o) * 9mm) yerine 6×21px'e düşmüştü). */
.yk-logo-alan {
  display: block; flex: none; width: calc(var(--k-o) * 30mm); height: calc(var(--k-o) * 11mm);
  background-image: url('/logo'); background-repeat: no-repeat;
  background-position: left center; background-size: contain;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.yk-bas-yazi { text-align: right; display: flex; flex-direction: column; gap: calc(var(--k-o) * 0.8mm); }
.yk-baslik { font: 800 calc(var(--k-o) * 5.4mm)/1 'Archivo', sans-serif; letter-spacing: -.01em; color: var(--k-vurgu); }
.yk-altbaslik { font: 600 calc(var(--k-o) * 2.3mm)/1 'Archivo', sans-serif; letter-spacing: .2em;
  color: var(--k-adet); white-space: nowrap; }

/* ---------- Gövde ---------- */
.yk-govde {
  flex: 1; display: grid; grid-template-columns: calc(var(--k-o) * 38mm) 1fr; gap: calc(var(--k-o) * 4.5mm);
  padding: calc(var(--k-o) * 3.5mm) calc(var(--k-o) * 4.5mm) 0; min-height: 0;
}
.yk-gorsel-sut { display: flex; flex-direction: column; gap: calc(var(--k-o) * 1.5mm); }
.yk-gorsel-et { font: 600 calc(var(--k-o) * 2.2mm)/1 'Archivo', sans-serif; letter-spacing: .18em; color: var(--k-adet); }
/* Görsel kutusu görsel OLMASA DA duruyor: kaybolursa sağdaki bilgi sütunu
   sola kayar ve kartlar birbiriyle hizasız basılır. */
.yk-gorsel {
  width: calc(var(--k-o) * 38mm); height: calc(var(--k-o) * 38mm); box-sizing: border-box;
  border: calc(var(--k-o) * 0.3mm) dashed var(--k-gri); background-color: #F7F8F8;
  background-repeat: no-repeat; background-position: center; background-size: contain;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.yk-alanlar { display: flex; flex-direction: column; gap: 0; min-width: 0; }
/* Etiket sabit calc(var(--k-o) * 24mm): kartların satırları birbiriyle hizalı olsun. Kâğıtta
   kayan hiza, elle doldurulmuş izlenimi verir. */
.yk-satir {
  display: grid; grid-template-columns: calc(var(--k-o) * 24mm) 1fr; align-items: baseline; gap: calc(var(--k-o) * 2.5mm);
  padding: calc(var(--k-o) * 1.5mm) 0; border-bottom: calc(var(--k-o) * 0.25mm) solid var(--k-gri); min-width: 0;
}
.yk-kart.yk-raf .yk-satir { padding: calc(var(--k-o) * 1.1mm) 0; }
.yk-satir:last-child { border-bottom: 0; }
.yk-et { font: 600 calc(var(--k-o) * 2.3mm)/1.2 'Archivo', sans-serif; letter-spacing: .12em;
  color: var(--k-murekkep); opacity: .75; }
.yk-dg { font: 600 calc(var(--k-o) * 3.4mm)/1.2 'Archivo', sans-serif; color: var(--k-murekkep);
  min-width: 0; overflow-wrap: anywhere; }
/* VURGULU SATIR: sevkiyatta ürün adı ve müşteri, rafta ürün adı. Depoda gözün
   önce gittiği yer bunlar. */
.yk-satir.yk-vurgu .yk-dg { font: 700 calc(var(--k-o) * 3.7mm)/1.2 'Archivo', sans-serif; color: var(--k-lacivert); }
/* RAF NO rafın kendi vurgusu — teal ve bir punto büyük. Kartı eline alan
   kişinin aradığı ilk bilgi bu. */
.yk-kart.yk-raf .yk-satir.yk-raf-no .yk-dg { font: 700 calc(var(--k-o) * 4mm)/1.2 'Archivo', sans-serif; color: var(--k-teal); }

/* ---------- QR (yalnız raf kartı) ----------
   QR ÜRÜN NUMARASINI taşıyor, adresi değil: stoktan mal alınırken sorulan
   soru "hangi ürün"dür. Adres okutulsaydı aynı rafta duran iki farklı ürün
   birbirinden ayırt edilemezdi. */
.yk-qr-sat { display: flex; align-items: center; gap: calc(var(--k-o) * 3mm); padding-top: calc(var(--k-o) * 1.5mm); }
.yk-qr {
  width: calc(var(--k-o) * 19mm); height: calc(var(--k-o) * 19mm); flex: none; box-sizing: border-box;
  border: calc(var(--k-o) * 0.3mm) dashed var(--k-gri); background: #fff;
  display: flex; align-items: center; justify-content: center;
  font: 600 calc(var(--k-o) * 2.2mm)/1 'Archivo', sans-serif; letter-spacing: .16em; color: var(--k-teal);
}
/* SVG kutuyu tam dolduruyor; crispEdges modülleri yazıcıda keskin tutuyor —
   kenar yumuşatma ince modülleri griye çevirir ve okuyucu kaçırır. */
.yk-qr svg { width: 100%; height: 100%; display: block; shape-rendering: crispEdges; }
.yk-qr-yazi { display: flex; flex-direction: column; gap: calc(var(--k-o) * 1mm); min-width: 0; }
.yk-qr-et { font: 600 calc(var(--k-o) * 2.2mm)/1 'Archivo', sans-serif; letter-spacing: .16em; color: var(--k-lacivert); }
.yk-qr-no { font: 500 calc(var(--k-o) * 2.3mm)/1.3 'Archivo', sans-serif; color: var(--k-murekkep); opacity: .7;
  overflow-wrap: anywhere; }

/* ---------- Ayak ---------- */
.yk-ayak {
  display: grid; grid-template-columns: calc(var(--k-o) * 38mm) 1fr; gap: calc(var(--k-o) * 4.5mm); align-items: end;
  padding: calc(var(--k-o) * 3mm) calc(var(--k-o) * 4.5mm) calc(var(--k-o) * 2.5mm);
}
.yk-form { font: 500 calc(var(--k-o) * 2.2mm)/1.2 'Archivo', sans-serif; color: var(--k-murekkep); opacity: .7; }
/* ADET bandı: depoda ilk bakılan sayı o. Tam genişlik ve renkli — göz önce
   oraya gidiyor. */
.yk-adet {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--k-adet); color: #fff; padding: calc(var(--k-o) * 1.8mm) calc(var(--k-o) * 4.5mm); margin-bottom: calc(var(--k-o) * 3mm);
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.yk-adet-et { font: 600 calc(var(--k-o) * 2.7mm)/1 'Archivo', sans-serif; letter-spacing: .22em; }
.yk-adet-dg { font: 800 calc(var(--k-o) * 7.2mm)/1 'Archivo', sans-serif; letter-spacing: -.02em; }
@media print {
  /* Sayfadaki HER ŞEY gizleniyor, yalnız kâğıt kalıyor. */
  body > *:not(#yazdirKagit) { display: none !important; }
  #yazdirKagit { display: block !important; }
  @page { size: A4 landscape; margin: 0; }
}

