/* ==========================================================================
   TEDARİKÇİ PORTALI — kendi tasarım dili (:3020)

   BU DOSYA ERP'NİN BİLEŞEN KATMANINI KULLANMIYOR. `bilesenler.css` bilerek
   yüklenmiyor: o katman 34px satırlı, yoğun tablolu, fareyle kullanılan bir
   üretim ekranı için yazıldı. Burası müşterinin tedarikçilerini izlediği,
   parmakla kullanılan, seyrek ve sakin bir ekran — farklı iş, farklı dil.

   ŞARTNAMEDEN ALINAN (kullanıcı kararı 2026-09-10):
     · TABLO MANTIĞI  → §6.2. Sayfalama 10/25/50, sayaç SÜZÜLMÜŞ listenin
       tamamını gösterir, arama tablonun üstünde, sıralama başlığın kendisinde,
       metin sıralaması localeCompare('tr'), boş değer her iki yönde de sonda.
     · FONT           → Lato, kendi sunucumuzdan, ağırlıklar 300/400/700/900.
       500/600/800 YOK (Lato'da tanımlı değiller). Yığın tek kaynaktan:
       tokens.css'teki `--font`.
     · İKON           → Tabler seti, `ik-<anlam>` sınıfı, ikonlar.css.
       EMOJİ YOK — her işletim sisteminde başka çiziliyor.
     · RENK           → tokens.css tek kaynak. Yeni renk uydurulmuyor.

   ŞARTNAMEDEN ALINMAYAN: yerleşim ve görünüm. Kullanıcı kararı — bu ekranın
   düzeni, yoğunluğu, bileşen dili ERP'ye benzemek zorunda değil.
   `bilesenler.css` bu yüzden yüklenmiyor: 34px satırlı, yoğun tablolu,
   fareyle kullanılan bir üretim ekranı için yazıldı.

   KENDİ OLAN HER ŞEY `--p-*` önekli. ERP'nin --row-h / --bosluk-* ölçeği
   burada KULLANILMIYOR; ikisi karışırsa portal sessizce ERP'ye benzemeye
   başlar.
   ========================================================================== */

/* ---- Lato · kendi sunucumuzdan (Google'dan çekilmiyor) ------------------- */
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 300; font-display: swap;
  src: url('/fonts/lato-300-latin.woff2') format('woff2');
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('/fonts/lato-400-latin.woff2') format('woff2');
}
@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+0130-0131, U+015E-015F, U+011E-011F, U+00C7,
    U+00E7, U+00D6, U+00F6, U+00DC, U+00FC, U+1E00-1E9F;
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('/fonts/lato-700-latin.woff2') format('woff2');
}
@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+0130-0131, U+015E-015F, U+011E-011F, U+00C7,
    U+00E7, U+00D6, U+00F6, U+00DC, U+00FC, U+1E00-1E9F;
}
@font-face {
  font-family: 'Lato'; font-style: normal; font-weight: 900; font-display: swap;
  src: url('/fonts/lato-900-latin.woff2') format('woff2');
}

/* ==========================================================================
   PORTAL JETONLARI
   ========================================================================== */

:root {
  /* Font yığını UYDURULMUYOR: şartname §6 "tek kaynak --font jetonu, başka
     hiçbir yerde font yığını yazılmaz". tokens.css yüklü, jeton oradan. */
  --p-font: var(--font);

  /* Yüzeyler — ERP'nin nötr grisi (#ececec) yerine markanın teal'inden
     türetilmiş çok açık bir zemin. Ekran "ofis yazılımı" değil "pano" gibi
     dursun; renk ailesi yine marka ailesi. */
  --p-zemin:      #f4f6f6;
  --p-kart:       #ffffff;
  --p-kart-2:     #fafbfb;
  --p-cizgi:      #e2e7e7;
  --p-cizgi-kuv:  #cbd4d4;

  /* Metin */
  --p-ink:        var(--ink);
  --p-ikincil:    var(--muted);
  --p-soluk:      var(--faint);

  /* Marka — tokens.css tek kaynak */
  --p-aksan:      var(--brand);
  --p-aksan-koyu: var(--brand-dark);
  --p-kabuk:      var(--chrome);
  --p-aksan-yumusak: #eaf1f1;

  /* Dokunma hedefi. Tablet birincil cihaz → cömert.
     PC'de küçülüyor (aşağıda) çünkü fare hassas, 56px orada şişkin durur. */
  --p-hedef:      56px;
  --p-hedef-sm:   44px;

  /* Boşluk — 4 tabanlı ama ERP'den DAHA GENİŞ basamaklarla. Seyreklik bu
     arayüzün karakteri; sıkıştırmak onu ERP'ye çevirir. */
  --p-a1: 4px;
  --p-a2: 8px;
  --p-a3: 12px;
  --p-a4: 16px;
  --p-a5: 24px;
  --p-a6: 32px;
  --p-a7: 48px;
  --p-a8: 64px;

  /* Yazı ölçeği — ERP'nin 13.5px tabanından büyük. Tablet kol mesafesinde
     tutuluyor, ekran duvarda da olabilir. */
  --p-yazi-xs:  12px;
  --p-yazi-sm:  14px;
  --p-yazi-md:  16px;
  --p-yazi-lg:  19px;
  --p-yazi-xl:  24px;
  --p-yazi-dev: 32px;

  --p-harf-etiket: .08em;

  /* Biçim — ERP köşesiz (3px) ve gölgesiz. Burası yumuşak ve katmanlı:
     dokunulan şeyin dokunulabilir göründüğü bir yüzey dili. */
  --p-radius:    10px;
  --p-radius-sm: 8px;
  --p-golge:     0 1px 2px rgba(31, 50, 57, .06), 0 8px 24px rgba(31, 50, 57, .05);
  --p-golge-yok: none;

  --p-gecis: 160ms cubic-bezier(.2, .7, .3, 1);
  --p-odak:  0 0 0 3px var(--p-aksan-yumusak), 0 0 0 5px var(--p-aksan);
}

* { box-sizing: border-box; }

/* `hidden` ÖZNİTELİĞİ HER ZAMAN KAZANIR.

   Tarayıcının kendi `[hidden] { display: none }` kuralı en zayıf katmanda;
   `display` veren HERHANGİ bir sınıf onu eziyor. Ölçüldü 2026-09-29: firma
   süzgeci `hidden` işaretliyken `.suz-alan { display: flex }` yüzünden
   ekranda duruyordu — öznitelik doğru, görünüm yanlış.

   Bu tuzağa daha önce de düşülmüş: `.mesaj-ort[hidden]` diye tek tek
   yamalar var. Kural burada, bir kez. */
[hidden] { display: none !important; }

html, body {
  /* GÖRÜNÜR ALAN yüksekliği, `100%` DEĞİL. iOS'ta düzen viewport'u görünür
     alandan uzun: `100%` verilince kabuk ekranın altına taşıyor ve altta
     boş beyaz bir şerit kalıyordu. `--vv-h` portal.js'te visualViewport'tan
     yazılıyor; jeton yoksa (çok eski tarayıcı) `100%`e düşüyor. */
  height: var(--vv-h, 100%);
  margin: 0;
  /* Belgenin kendi lastik bandı da kapalı: kabuk sabit üç parçalı, sayfa
     hiç kaymıyor — esnemesi yalnız boş alan gösterir. `body`de olması
     yetmiyordu, kaydırma kökü çoğu zaman `html`. */
  overscroll-behavior: none;

  /* ÇİFT DOKUNUŞLA YAKINLAŞTIRMA KAPALI (kullanıcı kararı). Tabloda satır
     seçerken ve düğmeye basarken kazara tetikleniyor, ekran zıplıyordu.
     `manipulation`: çift dokunuş yakınlaştırması gider, kaydırma ve
     iki parmakla yakınlaştırma KALIR — erişilebilirlik için gereken
     yakınlaştırma elden gitmesin. */
  touch-action: manipulation;
}

body {
  font-family: var(--p-font);
  font-size: var(--p-yazi-md);
  line-height: 1.45;
  color: var(--p-ink);
  background: var(--p-zemin);
  -webkit-text-size-adjust: 100%;
  /* Parmakla kullanılan bir ekranda metin seçimi kazara tetikleniyor;
     yalnız gerçekten okunacak alanlarda geri açılıyor. */
  -webkit-tap-highlight-color: transparent;
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

