/* ORTAK RENK DİLİ — docs/kararlar/44 §8 (Hayati, 16.09.2026).
   ---------------------------------------------------------------------------------------------
   İlke: RENK ANLAM TAŞIR, EKRAN DEĞİŞTİRMEZ. Her renk tek anlam ailesi, tek ton. Ofis (_HeadCSS) ve kiosk
   (_KioskShellLayout) bu dosyayı kiosk.css'ten ÖNCE yükler; kiosk değişkenleri buradaki tonlara bağlıdır.

     yeşil     yolunda / canlı    hat üretiyor · uygun · kanıtlı · bağlantı canlı · temiz · aktif
                                  + SİPARİŞ SATIRI: "şu anda haddede" boyası (aşama DEĞİL — tr.okan-live)
     kırmızı   sorun var          arıza · aralık dışı · bağlantı koptu · termin geçti · acil
     sarı      karar bekliyor     sebebi girilmemiş duruş · ilk hatırlatma · kayma · kanıtsız
     turuncu   hadde ayarı        ayar kaydı/düğmesi · ayar önerisi · duruşta aralık dışı ölçüm
     mavi      süreçte            ÜRETİMDE · PAKETLENİYOR · SEVK EDİLİYOR (dolgu aşamayı söyler) · seçili · birincil düğme
     mor       planlandı          PLANLANDI
     gri       henüz yok / nötr   SİPARİŞ ALINDI (dolu) · bekleme · üretim yok · pasif
     koyu gri  kapandı            TAMAMLANDI (dolu)

   Yeni bir renkli işaret eklemeden önce bu tabloya bakılır; tabloda yoksa önce karar dosyasına yazılır. */

:root {
    --okan-green: #2e9e5b;
    --okan-red: #d64545;
    --okan-yellow: #d99a00;
    --okan-orange: #e07b1a;
    --okan-blue: #1e6fd6;
    --okan-purple: #7c5cc4;
    --okan-gray: #8a97a5;
    --okan-dark: #495057;
    /* açık zeminler (rozet arka planı) */
    --okan-green-bg: #e6f6ec;
    --okan-red-bg: #fdeaea;
    --okan-yellow-bg: #fff4d6;
    --okan-orange-bg: #fdeede;
    --okan-blue-bg: #e3eefc;
    --okan-purple-bg: #eee9f9;
    --okan-gray-bg: #eef1f4;
    --okan-dark-bg: #e2e5e8;
}

/* ---- SİPARİŞ DURUMU (OrderStatusNames.CssKey) --------------------------------------------- */

/* Top: <span class="okan-st-dot okan-st-{key}"></span> */
.okan-st-dot {
    display: inline-block; width: 11px; height: 11px; border-radius: 50%;
    vertical-align: -1px; box-sizing: border-box; border: 2px solid transparent;
}
/* ⭐ MAVİNİN ÜÇ BASAMAĞI: renk AİLEYİ, dolgu İLERLEMEYİ söyler (Hayati, 03.10.2026).
   Üç aşama da "süreçte" olduğu için üçü de mavi — renk dilinin kuralı "her renk tek anlam, tek ton".
   Üç mavi TONU kullanmak o kuralı delerdi ve 11 pikselde zaten ayırt edilmezdi; dolgu farkı ise şekil
   farkıdır, göz onu tondan hızlı ayırır.
   ⚠ Bu yüzden "Sipariş Alındı" içi boş halkadan DOLU griye geçti: iki ayrı boş halka (gri ve mavi)
   yan yana yalnız renk tonuyla ayrılıyordu. Boş halka artık tek bir şey demek: "üretimde, paket yok". */
.okan-st-dot.okan-st-received   { background: var(--okan-gray); border-color: var(--okan-gray); }
.okan-st-dot.okan-st-planned    { background: var(--okan-purple); border-color: var(--okan-purple); }
.okan-st-dot.okan-st-production { background: transparent; border-color: var(--okan-blue); }
.okan-st-dot.okan-st-packing    { background: linear-gradient(to right, var(--okan-blue) 50%, transparent 50%); border-color: var(--okan-blue); }
.okan-st-dot.okan-st-shipping   { background: var(--okan-blue); border-color: var(--okan-blue); }
.okan-st-dot.okan-st-completed  { background: var(--okan-dark); border-color: var(--okan-dark); }

/* ⛔ CANLI ÜRETİM — AŞAMAYI EZER, AŞAMANIN YERİNE GEÇMEZ.
   Yeşil "hat şu anda bu işi basıyor" demek; siparişin aşaması hakkında bir şey söylemiyor. Aşama kalıcı
   bir sınıflandırma, canlılık anlık bir olay — bu yüzden durum ENUM'una girmez, yalnız satırın sınıfıyla
   boyanır (OrderStatus açıklamasına bakın). Hat işi bıraktığı an top kendi aşamasına döner; paketi olan
   bir iş yarım dolu maviye düşer, boş maviye değil. Aynı anda tek hat üretim yaptığı için bu boya
   pratikte TEK satırda bulunur. */
tr.okan-live .okan-st-dot,
.okan-st.okan-live .okan-st-dot { background: var(--okan-green); border-color: var(--okan-green); }   /* rozet: üretim kodu balonu (#113) */

/* Rozet: <span class="okan-st okan-st-{key}">Ad</span> */
.okan-st {
    display: inline-block; padding: .2em .6em; border-radius: .35rem; font-size: .78rem; font-weight: 600;
    line-height: 1.3; white-space: nowrap; border: 1px solid transparent;
}
.okan-st.okan-st-received   { color: #5b6673; background: #fff; border-color: var(--okan-gray); }
.okan-st.okan-st-planned    { color: var(--okan-purple); background: var(--okan-purple-bg); }
/* Rozette ayrımı KELİME yapıyor; üçü de aynı mavi ailede, dolgu topun işi. */
.okan-st.okan-st-production { color: var(--okan-blue); background: #fff; border-color: var(--okan-blue); }
.okan-st.okan-st-packing    { color: var(--okan-blue); background: var(--okan-blue-bg); }
.okan-st.okan-st-shipping   { color: #fff; background: var(--okan-blue); }
.okan-st.okan-st-completed  { color: #fff; background: var(--okan-dark); }

/* ---- ANLAM AİLESİ ROZETLERİ (durum dışı işaretler) ------------------------------------------ */
.okan-mark { display: inline-block; padding: .2em .55em; border-radius: .35rem; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.okan-mark-ok      { color: #1c6b3c; background: var(--okan-green-bg); }
.okan-mark-bad     { color: #a02626; background: var(--okan-red-bg); }
.okan-mark-wait    { color: #8a6100; background: var(--okan-yellow-bg); }
.okan-mark-setup   { color: #9a4f0a; background: var(--okan-orange-bg); }
/* Karne · Üretim sol sütunu (#158): iç kartlar tek kartın kenarsız bölümleri. */
.okan-card-stack > .card { border: 0; box-shadow: none; margin-bottom: 0; border-radius: 0; }
.okan-card-stack > .card + .card { border-top: 1px dashed var(--bs-border-color); }
.okan-mark-stop    { color: #5a3fa0; background: var(--okan-purple-bg); }   /* kalite: turuncu bölgede, duruşta (ADR 0054) */
.okan-mark-info    { color: var(--okan-blue); background: var(--okan-blue-bg); }
.okan-mark-neutral { color: #5b6673; background: var(--okan-gray-bg); }

/* Sistemin hesapladığı (otomatik) form alanı — bilgi: açık mavi (sarı "karar bekliyor" demekti). */
.okan-auto-field { background-color: var(--okan-blue-bg) !important; }

/* İlerleme çubuğu (sipariş detayı) */
.okan-progress { height: 8px; border-radius: 4px; background: var(--okan-gray-bg); overflow: hidden; }
.okan-progress > span { display: block; height: 100%; background: var(--okan-blue); }
.okan-progress.is-full > span { background: var(--okan-dark); }

/* ---- HAMMADDE CİNSİ ROZETİ (#99 · toplantı 07.10.2026) ------------------------------------------
   BORLU, XLİ… gibi değerlere OTOMATİK ve SABİT renk (kimlikten — RawMaterialNameRule.ColorIndex). Palet yukarıdaki
   anlam ailelerinden (gri, mor, mavi, yeşil, sarı/turuncu, kırmızı) BİLEREK AYRIK: rozet bir durum söylemez, yalnız
   "bu iş farklı hammadde" der. Ad her zaman içinde yazar; iki değerin aynı rengi alması bilgi kaybettirmez.
   ⚠ Renk sayısı RawMaterialNameRule.PaletteSize ile aynı olmalı (4). */
.okan-rm {
    display: inline-block; padding: .15em .55em; border-radius: .35rem; font-size: .76rem; font-weight: 700;
    line-height: 1.3; white-space: nowrap; color: #fff; letter-spacing: .02em;
}
.okan-rm-0 { background: #00897b; }   /* deniz yeşili (teal) */
.okan-rm-1 { background: #c2185b; }   /* pembe-bordo */
.okan-rm-2 { background: #795548; }   /* kahve */
.okan-rm-3 { background: #827717; }   /* zeytin */

/* Kalite renk noktası (karne açıklama tablosu · ADR 0054) — kiosk ile aynı kodlar: ok · warn · stop · bad · black · unknown. */
.okan-qdot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: -1px; background: var(--okan-gray, #8a97a5); }
.okan-qdot.ok { background: var(--okan-green, #2e9e5b); }
.okan-qdot.warn { background: var(--okan-orange, #e07b1a); }
.okan-qdot.stop { background: var(--okan-purple, #7c5cc4); }
.okan-qdot.bad { background: var(--okan-red, #d64545); }
.okan-qdot.black { background: #14181d; }
