:root {
  /* --- Yuzey ve metin ------------------------------------------------- */
  --bg: #f4f5f7;
  --yuzey: #ffffff;
  --yuzey-2: #f8fafc;          /* tablo basligi, ikincil satir */
  --kenar: #e2e5ea;
  --kenar-koyu: #cfd5de;       /* vurgulu ayrac */
  --metin: #1f2430;            /* birincil */
  --soluk: #64708a;            /* ikincil: etiket, aciklama */
  --soluk-2: #98a2b3;          /* yalnizca yer tutucu / tekrar eden bilgi — veri icin kullanma */

  /* --- Anlam tasiyan renkler ------------------------------------------
     notr  : olagan bilgi (renk yok)
     ana   : eylem / baglanti
     olumlu: hedefte, kar, tamamlandi
     dikkat: esik altinda, bakmaya deger — zarar demek degil
     risk  : gecikmis, zarar, iptal */
  --ana: #2563eb;
  --ana-koyu: #1d4ed8;
  --ana-bg: #e8effd;
  --olumlu: #15803d;
  --olumlu-bg: #e7f6ec;
  --dikkat: #b45309;
  --dikkat-bg: #fdf3e3;
  --risk: #b91c1c;
  --risk-bg: #fdecec;
  --tehlike: #dc2626;          /* yikici eylem dugmesi */

  /* --- Tipografi olcegi -----------------------------------------------
     Alti basamak; ara deger uretmeyin, en yakinini secin. */
  --yazi-xs: .75rem;           /* 12px — rozet, tablo basligi, ipucu */
  --yazi-sm: .8125rem;         /* 13px — ikincil metin */
  --yazi-md: .875rem;          /* 14px — tablo govdesi, form, dugme */
  --yazi-lg: .9375rem;         /* 15px — govde */
  --yazi-h2: 1.0625rem;        /* 17px — bolum basligi */
  --yazi-h1: 1.375rem;         /* 22px — sayfa basligi */
  --yazi-kpi: 1.625rem;        /* 26px — buyuk sayi */

  /* --- Yuzey bicimi ---------------------------------------------------- */
  --golge: 0 1px 2px rgba(16, 24, 40, .05);
  --golge-yuksek: 0 1px 3px rgba(16, 24, 40, .08), 0 4px 12px rgba(16, 24, 40, .05);
  --r: 8px;
  --r-s: 6px;                  /* dugme, giris alani, rozet */
  --odak: 0 0 0 3px rgba(37, 99, 235, .28);
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font: var(--yazi-lg)/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--metin);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ana); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 2px solid var(--ana); outline-offset: 2px; border-radius: var(--r-s); }
h1 { font-size: var(--yazi-h1); line-height: 1.25; margin: 0; letter-spacing: -.01em; }
h2 { font-size: var(--yazi-h2); line-height: 1.3; margin: 0 0 .6rem; letter-spacing: -.005em; }
h3 { font-size: var(--yazi-lg); line-height: 1.35; margin: 0 0 .4rem; }

.ust {
  display: flex; align-items: center; gap: 1.5rem;
  background: var(--yuzey); border-bottom: 1px solid var(--kenar);
  padding: 0 1.25rem; height: 56px;
}
.kullanici { font-size: var(--yazi-sm); color: var(--soluk-2); }
.marka { display: flex; align-items: center; gap: .5rem; font-weight: 800; color: var(--metin); letter-spacing: .04em; }
.marka img { height: 30px; width: auto; }
.marka:hover { text-decoration: none; }
.ust nav { display: flex; gap: 1rem; margin-right: auto; }
.ust nav a { color: var(--soluk); padding: 4px 2px; font-size: var(--yazi-md); font-weight: 500; white-space: nowrap; }
.ust nav a:hover { color: var(--metin); text-decoration: none; }
.ust nav a.aktif { color: var(--metin); font-weight: 600; box-shadow: inset 0 -2px 0 var(--ana); }
.cikis { display: flex; align-items: center; gap: .75rem; }
.kullanici { color: var(--soluk); font-size: var(--yazi-md); }
.ust-sag { display: flex; align-items: center; gap: 1rem; }
.dil-sec { display: inline-flex; border: 1px solid var(--kenar); border-radius: var(--r); overflow: hidden; }
.dil-sec button { border: 0; background: var(--yuzey); color: var(--soluk); padding: .3rem .5rem; font-size: var(--yazi-xs); font-weight: 700; cursor: pointer; }
.dil-sec button.aktif { background: var(--ana); color: #fff; }

/* Icerik genisligi. 1060px genis ekranda ekranin yarisini bos birakiyor ve
   kalem tablosu (min 1080px) sigmadigi icin yana kaydirma gerekiyordu.
   1600px hem tablolara yer aciyor hem cok genis ekranda satirlari
   okunmaz uzunluga cikarmiyor. Metin agirlikli kartlarin kendi dar
   sinirlari var (.form-kart 640px), onlar etkilenmez. */
.govde { max-width: 1600px; margin: 0 auto; padding: 1.5rem 1.25rem 4rem; }

.sayfa-baslik { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.eylemler, .form-alt { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
  border: 1px solid var(--kenar); background: var(--yuzey);
  color: var(--metin); padding: .45rem .85rem; border-radius: var(--r-s); cursor: pointer;
  font-size: var(--yazi-md); font-weight: 500; line-height: 1.4;
  transition: background-color .12s, border-color .12s;
}
.btn:hover { text-decoration: none; background: var(--yuzey-2); border-color: var(--kenar-koyu); }
.btn:focus-visible { outline: none; box-shadow: var(--odak); border-color: var(--ana); }
.btn-ana { background: var(--ana); border-color: var(--ana); color: #fff; font-weight: 600; }
.btn-ana:hover { background: var(--ana-koyu); border-color: var(--ana-koyu); }
.btn-hafif { background: var(--yuzey); }
.btn-tehlike { color: var(--tehlike); border-color: #f0c2c2; }
.btn-tehlike:hover { background: var(--risk-bg); border-color: #e5a5a5; }

/* --- WhatsApp --------------------------------------------------------- */
/* Marka yesili (#25D366) beyaz yazi ile kontrast birakmiyor; koyu tonu kullaniyoruz. */
.btn-wa { background: #128C7E; border-color: #128C7E; color: #fff; }
.btn-wa:hover { background: #0e6f64; border-color: #0e6f64; }
.wa-gonder { display: inline-flex; gap: .35rem; align-items: center; }
.wa-gonder select { padding: .4rem .55rem; border: 1px solid var(--kenar); border-radius: var(--r); font-size: var(--yazi-md); background: var(--yuzey); color: var(--metin); max-width: 15rem; }
.wa-link { font-size: var(--yazi-sm); font-weight: 600; color: #0e6f64; margin-left: .35rem; white-space: nowrap; }
.wa-uyari { color: #b45309; margin-left: .35rem; cursor: help; }
.genis { width: 100%; }
.link-btn { background: none; border: 0; color: var(--soluk); cursor: pointer;
  font-size: var(--yazi-sm); text-decoration: underline; padding: 0; }
.link-btn:hover { color: var(--ana); }

.filtre-cubugu { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-bottom: 1rem; }
.sekmeler { display: flex; flex-wrap: wrap; gap: .25rem; }
.sekmeler a { color: var(--soluk); padding: .35rem .75rem; border-radius: 999px;
  font-size: var(--yazi-md); font-weight: 500; }
.sekmeler a:hover { background: var(--yuzey); text-decoration: none; }
.sekmeler a.aktif { background: var(--yuzey); color: var(--metin); font-weight: 600;
  border: 1px solid var(--kenar); box-shadow: var(--golge); }
.sekmeler a span { color: var(--soluk); font-size: var(--yazi-sm); font-weight: 400; }
.ara { display: flex; gap: .4rem; align-items: center; }
.ara input { padding: .45rem .6rem; border: 1px solid var(--kenar); border-radius: var(--r); min-width: 220px; }
.temizle { font-size: var(--yazi-sm); color: var(--soluk); }

.tablo { width: 100%; border-collapse: collapse; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); overflow: hidden; box-shadow: var(--golge); }
.tablo th, .tablo td { text-align: left; padding: .55rem .75rem; border-bottom: 1px solid var(--kenar); font-size: var(--yazi-md); }
/* Baslik satiri: kucuk, buyuk harf, harf araligi acik — govdeden net ayrilsin */
.tablo th { background: var(--yuzey-2); color: var(--soluk); font-weight: 600;
  font-size: var(--yazi-xs); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.tablo tbody tr { cursor: pointer; }
.tablo tbody tr:hover { background: var(--ana-bg); }
.tablo tr:last-child td { border-bottom: 0; }
.tablo .sag { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* Belge no, tarih gibi tek parca degerler ortasindan kirilmasin */
.tablo .kirilmaz { white-space: nowrap; }
/* Uzun unvanlar satirlari 3 katina cikariyordu; tek satirda kesilir, tamami title'da.
   Ayirt edici kisim basta oldugu icin sondan kesmek bilgi kaybettirmiyor. */
.tablo .kisalt { max-width: 13rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Satirin ana kimligi olan sutun daha genis kalsin */
.tablo .baslik-h.kisalt { max-width: 20rem; }
.tablo .secim-sutunu { width: 2rem; }
.secim-cubugu { display: flex; align-items: center; gap: .75rem; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r); padding: .5rem .75rem; margin-bottom: .5rem; font-size: var(--yazi-md); }
.baslik-h a { font-weight: 600; color: var(--metin); }
.soluk { color: var(--soluk); }

.rozet { display: inline-block; padding: .15rem .5rem; border-radius: 999px;
  font-size: var(--yazi-xs); font-weight: 600; line-height: 1.45; white-space: nowrap; }
.durum-acik { background: #e0edff; color: #1d4ed8; }
.durum-islemde { background: #fef3c7; color: #92600a; }
.durum-beklemede { background: #ede9fe; color: #6d28d9; }
.durum-kapali { background: #e5e7eb; color: #4b5563; }
.durum-verilmedi { background: #e5e7eb; color: #4b5563; }
.durum-iptal { background: #fee2e2; color: #b91c1c; }
.onc-dusuk { background: #f1f5f9; color: #64748b; }
.onc-normal { background: #ecfdf5; color: #047857; }
.onc-yuksek { background: #fff7ed; color: #c2410c; }
.onc-acil { background: #fee2e2; color: #b91c1c; }
.cari-musteri { background: #e0edff; color: #1d4ed8; }
.cari-tedarikci { background: #dcfce7; color: #15803d; }
.cari-her_ikisi { background: #f3e8ff; color: #7e22ce; }

.pasif-satir { opacity: .55; }
.onay { display: flex; align-items: center; gap: .5rem; font-size: var(--yazi-lg); color: var(--metin); margin-bottom: .35rem; }
.onay input { width: auto; margin: 0; }
.ust-etiket { display: block; margin-bottom: .35rem; }

.bilgi-kart { margin: 1rem 0; }
.bilgi-kart dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .6rem 1.5rem; margin: 0; }
.bilgi-kart dt { font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .03em; }
.bilgi-kart dd { margin: .1rem 0 0; }
.yetkili-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.yetkili-kart { font-size: var(--yazi-md); }
.yk-ust { display: flex; align-items: center; gap: .5rem; margin-bottom: .2rem; }
.yk-eylem { display: flex; gap: .8rem; margin-top: .5rem; padding-top: .5rem; border-top: 1px solid var(--kenar); }
.yk-eylem form { margin: 0; }
.yetkili-ekle { max-width: 640px; }
.not-metin { white-space: pre-wrap; margin: 1rem 0 0; padding-top: .8rem; border-top: 1px solid var(--kenar); }

.kart { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r); padding: 1.1rem 1.2rem; box-shadow: var(--golge); }
.form-kart { max-width: 640px; }
.aciklama { white-space: pre-wrap; margin: 1rem 0; }

label { display: block; margin-bottom: .85rem; font-size: var(--yazi-md); font-weight: 500; color: var(--soluk); }
/* label icin display:block, tarayicinin [hidden] kuralini eziyordu; kosullu
   alanlar (kayip sebebi, teslim tarihi) gizlenmiyordu. */
[hidden] { display: none !important; }
input, textarea, select {
  width: 100%; margin-top: .3rem; padding: .45rem .6rem;
  border: 1px solid var(--kenar); border-radius: var(--r-s);
  font: inherit; font-size: var(--yazi-md); color: var(--metin); background: #fff;
}
textarea { resize: vertical; }
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--ana); box-shadow: var(--odak);
}
::placeholder { color: var(--soluk-2); }
.ikili { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form-alt { margin-top: .5rem; }

.ozet-satir { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; font-size: var(--yazi-md); color: var(--soluk); margin-bottom: 1rem; }
.ozet-satir b { color: var(--metin); font-weight: 600; }

.iki-sutun { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1.5rem; align-items: start; }
.mini-form { display: flex; gap: .5rem; align-items: flex-start; margin-bottom: 1rem; }
.mini-form textarea { flex: 1; margin: 0; }
.mini-form input[type=file] { margin: 0; }
.kucuk { font-size: var(--yazi-sm); }

.zaman-cizgisi { list-style: none; padding: 0; margin: 0; }
.zaman-cizgisi li { border-left: 2px solid var(--kenar); padding: .1rem 0 .9rem .8rem; }
.zaman-cizgisi li.tur-durum_degisikligi { border-color: #fbbf24; }
.zaman-cizgisi li.tur-belge { border-color: var(--ana); }
.tc-ust { display: flex; justify-content: space-between; font-size: var(--yazi-sm); }
.tc-tur { font-weight: 600; color: var(--metin); }
.tc-icerik { white-space: pre-wrap; margin-top: .15rem; font-size: var(--yazi-lg); }

.belge-listesi { list-style: none; padding: 0; margin: 0; }
.belge-listesi li { display: flex; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--kenar); font-size: var(--yazi-md); }
.belge-listesi li:last-child { border-bottom: 0; }
.belge-listesi form { margin-left: auto; }

.geri { margin-top: 2rem; }
.uyari { background: var(--risk-bg); border: 1px solid #f0c2c2; color: var(--risk); padding: .6rem .8rem; border-radius: var(--r); margin-bottom: 1rem; font-size: var(--yazi-md); }

.bos-durum { text-align: center; padding: 3rem 1rem; color: var(--soluk); }
.bos-durum h1 { font-size: 3rem; margin-bottom: .5rem; }
.bos-durum p { margin-bottom: 1rem; }

.giris-kutu { max-width: 360px; margin: 8vh auto 0; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: 12px; padding: 2rem; box-shadow: var(--golge); }
.giris-kutu h1 { text-align: center; letter-spacing: .06em; }
.giris-kutu .alt { text-align: center; color: var(--soluk); font-size: var(--yazi-md); margin: .3rem 0 1.25rem; }
.giris-logo { display: block; height: 72px; margin: 0 auto .5rem; }
.dil-sec-giris { margin: 1rem auto 0; }

@media (max-width: 780px) {
  .iki-sutun, .ikili, .uclu { grid-template-columns: 1fr; }
  .tablo .gizle-dar { display: none; }

  .ust {
    flex-wrap: wrap; height: auto; gap: .5rem .9rem;
    padding: .55rem .9rem; row-gap: .5rem;
  }
  .ust .kullanici { display: none; }
  .ust nav {
    order: 3; width: 100%; margin: 0;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    gap: .35rem; padding-bottom: 2px;
  }
  .ust nav a { flex: 0 0 auto; padding: .35rem .55rem; border-radius: 999px; background: #eef1f5; }
  .ust nav a.aktif { background: var(--ana); color: #fff; box-shadow: none; }
  .ust-sag { margin-left: auto; gap: .6rem; }

  .sayfa-baslik { flex-wrap: wrap; }
  .kpi-panel { grid-template-columns: 1fr 1fr; }
  .filtre-cubugu { flex-direction: column; align-items: stretch; }
  .ara { flex-wrap: wrap; }
  .ara input[type=search] { min-width: 0; flex: 1; }
  .govde { padding: 1rem .8rem 3rem; }

}

/* --- Teklif formu -------------------------------------------------- */
.bilgi-serit { background: var(--olumlu-bg); border: 1px solid #a7f3d0; color: var(--olumlu); padding: .5rem .8rem; border-radius: var(--r); margin-bottom: 1rem; font-size: var(--yazi-md); }
.bolum-baslik { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 1.75rem 0 .65rem; }
.bolum-baslik h2 { margin: 0; }

/* Kalem tablosu genis; form kapsayicinin tamamini kullansin */
.teklif-form { max-width: none; }
.uclu { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; }
.grup { border: 1px solid var(--kenar); border-radius: var(--r); padding: 1rem; margin: 0 0 1rem; min-width: 0; }
fieldset { min-width: 0; }
.grup legend { font-size: var(--yazi-sm); font-weight: 600; color: var(--soluk); text-transform: uppercase; letter-spacing: .03em; padding: 0 .4rem; }

.kalem-tablo-sar { overflow-x: auto; }
.kalem-tablo { width: 100%; border-collapse: collapse; margin-bottom: .75rem; min-width: 1080px; }
.kalem-tablo th { text-align: left; font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .02em; padding: .3rem .35rem; border-bottom: 1px solid var(--kenar); }
.kalem-tablo td { padding: .2rem .35rem; vertical-align: middle; }
.kalem-tablo input { margin: 0; padding: .35rem .4rem; font-size: var(--yazi-md); }
.kalem-tablo .sag, .kalem-tablo th.sag { text-align: right; }
.kalem-tablo .satir-toplam { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--metin); font-size: var(--yazi-md); }
.kalem-tablo tfoot td { padding-top: .6rem; font-size: var(--yazi-lg); border-top: 2px solid var(--kenar); }

.rozet.sdurum-kapandi { background: #e5e7eb; color: #4b5563; }

/* --- MPN gecmisi -------------------------------------------------- */
/* Ipucu metinleri sutunu genisletmesin: otomatik tablo duzeninde sinirsiz bir
   satir max-content'i buyutup komsu sutunlari (ozellikle MPN'i) eziyordu. */
.mpn-ipucu, .fiy-ipucu { max-width: 9rem; overflow-wrap: anywhere; }
.fiy-ipucu { max-width: 12rem; }
.mpn-ipucu { margin-top: .2rem; line-height: 1.3; }
.mpn-ipucu.var { color: #b45309; font-weight: 600; }
.fiy-ipucu { margin-top: .2rem; line-height: 1.3; color: #0f766e; }
/* Teklif formu: kalem bazinda tedarikci teklifi secimi + satir marji */
.kaynak-kutu { margin-top: .25rem; display: flex; flex-direction: column; gap: .2rem; }
.kaynak-sec { width: 100%; max-width: 12rem; font-size: .8rem; padding: .15rem .25rem; }
.marj-satir { display: flex; align-items: center; gap: .25rem; margin: 0; font-size: .8rem; color: var(--soluk, #6b7280); }
.marj-inp { width: 4.5rem; padding: .1rem .3rem; font-size: .8rem; }
#marjOzet.negatif { color: #b91c1c; font-weight: 600; }
.mpn-gecmis-satir td { border-top: 0 !important; padding-top: 0 !important; }
.mpn-gecmis { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: var(--yazi-sm); padding: .2rem 0 .5rem; }
.mpn-gecmis .mgb { color: #b45309; font-weight: 700; }
.mpn-gecmis b { font-variant-numeric: tabular-nums; }

/* --- RFQ karsilastirma --------------------------------------------- */
.karsilastir { min-width: 640px; }
.karsilastir th, .karsilastir td { border: 1px solid var(--kenar); vertical-align: top; }
.karsilastir thead th { background: #fafbfc; }
.karsilastir .tk-sutun { min-width: 9rem; }
.karsilastir .tk-sutun.kazanan, .karsilastir td.kazanan { background: #f0fdf4; }
.karsilastir .tk-sutun-eylem { display: flex; flex-direction: column; gap: .15rem; margin-top: .3rem; align-items: flex-start; }
.karsilastir .tk-sutun-eylem form { margin: 0; }
.karsilastir td.en-ucuz { background: #dcfce7; }
.karsilastir td.en-ucuz b { color: #15803d; }
.karsilastir tfoot td { border-top: 2px solid var(--metin); }

.rozet.tdurum-taslak, .rozet-secim.tdurum-taslak { background: #e5e7eb; color: #4b5563; }
.rozet.tdurum-gonderildi, .rozet-secim.tdurum-gonderildi { background: var(--ana-bg); color: var(--ana-koyu); }
.rozet.tdurum-kabul, .rozet-secim.tdurum-kabul { background: var(--olumlu-bg); color: var(--olumlu); }
.rozet.tdurum-red, .rozet-secim.tdurum-red { background: var(--risk-bg); color: var(--risk); }
.rozet.tdurum-revize, .rozet-secim.tdurum-revize { background: var(--dikkat-bg); color: var(--dikkat); }

/* --- Teklif ciktisi (yazdirilabilir) ------------------------------ */
.teklif-eylemler { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.mini-sel { width: auto; margin: 0; padding: .3rem .5rem; font-size: var(--yazi-sm); max-width: 14rem; }
.belge-dil { display: inline-flex; border: 1px solid var(--kenar); border-radius: var(--r); overflow: hidden; }
.belge-dil a { padding: .35rem .6rem; font-size: var(--yazi-xs); font-weight: 700; color: var(--soluk); }
.belge-dil a:hover { text-decoration: none; background: #f1f5f9; }
.belge-dil a.aktif { background: var(--ana); color: #fff; }
.teklif-eylemler .sag-grup { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.teklif-eylemler form { margin: 0; }

.teklif-cikti {
  background: #fff; color: #1a1a1a; max-width: 820px; margin: 0 auto;
  border: 1px solid var(--kenar); border-radius: var(--r);
  padding: 32px 36px 0; box-shadow: var(--golge); font-size: 13px; line-height: 1.5;
}
.tk-ust { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.tk-firma-ad { font-weight: 700; font-size: 15px; margin-bottom: 2px; }
.tk-logo { width: 96px; height: auto; }
.tk-baslik-satir { display: flex; justify-content: space-between; align-items: flex-end; margin: 18px 0 10px; }
.tk-baslik { font-size: 20px; margin: 0; letter-spacing: .5px; }
.tk-no { text-align: right; }
.tk-musteri { margin-bottom: 10px; }
.tk-kosullar { margin-bottom: 16px; }

.tk-tablo { width: 100%; border-collapse: collapse; font-size: 12px; }
.tk-tablo th, .tk-tablo td { border: 1px solid #999; padding: 5px 7px; text-align: left; vertical-align: top; }
.tk-tablo thead th { background: #f0f0f0; font-size: 11px; }
.tk-tablo .sag { text-align: right; white-space: nowrap; }
.tk-tablo .tk-desc { white-space: pre-wrap; }
.tk-tablo tfoot td { border-top: 2px solid #333; font-size: 13px; }

.tk-not { margin: 14px 0 20px; }
.tk-not-metin { white-space: pre-wrap; margin-top: 4px; }
.tk-banka { margin: 14px 0 20px; font-size: 12px; page-break-inside: avoid; break-inside: avoid; }
.tk-banka-baslik { font-weight: 700; margin-bottom: 4px; }
.tk-banka-metin { white-space: pre-wrap; }
.tk-footer { display: block; width: calc(100% + 72px); margin: 0 -36px; }

/* --- Siparis --------------------------------------------------------- */
.rozet.sdurum-onay { background: #e0edff; color: #1d4ed8; }
.rozet.sdurum-tedarik { background: #fef3c7; color: #92600a; }
.rozet.sdurum-sevk { background: #cffafe; color: #0e7490; }
.rozet.sdurum-teslim { background: #ede9fe; color: #6d28d9; }
.rozet.sdurum-fatura { background: #dcfce7; color: #15803d; }
.rozet.sdurum-kapandi { background: #e5e7eb; color: #4b5563; }
.rozet.sdurum-iptal { background: #fee2e2; color: #b91c1c; }

.rozet.odurum-tahsil_edildi { background: #dcfce7; color: #15803d; }
.rozet.odurum-bekliyor { background: #fef3c7; color: #92600a; }
.rozet.odurum-gecikmis { background: #fee2e2; color: #b91c1c; }
.rozet.mdurum-tam { background: #dcfce7; color: #15803d; }
.rozet.mdurum-eksik { background: #e5e7eb; color: #4b5563; }
.rozet.mdurum-kur_eksik { background: #fef3c7; color: #92600a; }
.rozet.mdurum-yok { background: #e5e7eb; color: #4b5563; }

/* --- Faturalar filtre paneli --------------------------------------- */
.fatura-filtreler, .liste-filtreler { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.fatura-filtreler select, .fatura-filtreler input[type=date], .fatura-filtreler input[type=search],
.liste-filtreler select, .liste-filtreler input[type=date], .liste-filtreler input[type=search] { padding: .4rem .55rem; border: 1px solid var(--kenar); border-radius: var(--r); font-size: var(--yazi-md); background: var(--yuzey); color: var(--metin); }
.fatura-filtreler input[type=search], .liste-filtreler input[type=search] { flex: 2 1 14rem; min-width: 0; }
.fatura-filtreler select, .liste-filtreler select { flex: 1 1 10rem; min-width: 0; max-width: 20rem; }
.fatura-filtreler .tarih-araligi, .liste-filtreler .tarih-araligi { display: flex; align-items: center; gap: .3rem; }
.fatura-filtreler .tarih-araligi span, .liste-filtreler .tarih-araligi span { color: var(--soluk); font-size: var(--yazi-sm); }

.kar-panel { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin: 1rem 0 1.5rem; }
.kar-kutu { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r); padding: .8rem .9rem; box-shadow: var(--golge); }
.kar-kutu span { display: block; font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .03em; }
.kar-kutu b { font-size: var(--yazi-h2); font-variant-numeric: tabular-nums; }
.kar-kutu b.eksi { color: #b45309; font-weight: 600; }
.kar-kutu small { display: block; color: var(--soluk); font-size: var(--yazi-xs); margin-top: .1rem; }
.kar-kutu.vurgu { border-width: 2px; }
.kar-kutu.pozitif { border-color: #86efac; background: #f0fdf4; }
.kar-kutu.pozitif b { color: #15803d; }
.kar-kutu.negatif { border-color: #fca5a5; background: #fef2f2; }
.kar-kutu.negatif b { color: #b91c1c; }

.belge-butonlari { display: flex; flex-wrap: wrap; gap: .5rem; }
.tablo.mini th, .tablo.mini td { padding: .4rem .55rem; font-size: var(--yazi-md); }
.tablo.mini tfoot td { border-top: 2px solid var(--kenar); }

.fatura-tablosu .ac-kapat { width: 1.2rem; text-align: center; color: var(--soluk); transition: transform .12s; }
.fatura-tablosu tr.acik-ust .ac-kapat { transform: rotate(90deg); }
.fatura-tablosu tr.detay-satir { display: none; cursor: default; }
.fatura-tablosu tr.detay-satir.acik { display: table-row; }
.fatura-tablosu tr.detay-satir:hover { background: none; }
.fatura-tablosu tr.detay-satir td { padding: .6rem 1rem .9rem 2.4rem; background: #fafbfc; }
.fatura-tablosu tr.detay-satir .tablo.mini { box-shadow: none; border: 1px solid var(--kenar); }
.kar-ozet-satir { margin: 0 0 .6rem; }
.kar-ozet-satir b.metin { color: var(--metin); font-weight: 600; }

.tedarik-kart { margin-bottom: 1rem; }
.tedarik-ust { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .3rem; }
.tedarik-ust b { margin-right: .5rem; }
.tedarik-eylem { display: flex; align-items: center; gap: .6rem; }
.tedarik-eylem form { margin: 0; }
.tedarik-kart .tablo.mini { margin-top: .5rem; }

.maliyet-form { display: grid; grid-template-columns: 10rem 1fr 8rem 5rem auto; gap: .5rem; align-items: start; }
.maliyet-form input, .maliyet-form select { margin: 0; }

/* --- PO / COC ciktilari --------------------------------------------- */
/* PO'da 2 (tedarikci + fatura) veya 3 (ayrica sevk adresi) kutu olabilir */
.po-taraflar { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1.5rem; margin: 12px 0 16px; }
.po-etiket, .coc-etiket { font-size: 10px; font-weight: 700; letter-spacing: .05em; color: #555; margin-bottom: 3px; }
.po-notlar { margin: 14px 0; font-size: 11px; }
.po-notlar div { margin-bottom: 3px; }

/* CoC — eski (Word) CoC duzeni: ortali logo, cerceveli ortali tablolar,
   imza adin ustune binen gorsel */
.coc-cikti { font-size: 12px; }
.coc-logo { text-align: center; margin: 0 0 8px; }
.coc-logo img { width: 130px; }
.coc-baslik { font-size: 18px; font-weight: 700; margin: 6px 0 14px; }
.coc-meta { margin-bottom: 18px; line-height: 1.5; }
.coc-kutu { width: 80%; margin: 0 auto 14px; border-collapse: collapse; }
.coc-kutu th, .coc-kutu td { border: 1px solid #555; padding: 3px 8px; text-align: center; }
.coc-kutu th { font-weight: 700; }
.coc-kalem th:first-child, .coc-kalem td:first-child { width: 62%; }
.coc-metin { line-height: 1.5; margin: 16px 0; }
.coc-imza { line-height: 1.5; margin: 14px 0 20px; }
.coc-imzaci { position: relative; margin-top: 34px; padding-top: 6px; min-height: 60px; }
.coc-imza-gorsel { position: absolute; left: 40px; top: -38px; width: 92px; pointer-events: none; }
.coc-imzaci-ad { font-weight: 700; font-style: italic; }
.coc-imzaci-unvan { font-weight: 700; }

/* --- Panel / Dashboard --------------------------------------------- */
.donem-sec { display: flex; gap: .4rem; }
.donem-sec select { width: auto; margin: 0; padding: .35rem .5rem; }
.kpi-panel { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; margin-bottom: 1.5rem; }
.kpi { display: block; background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r);
  padding: .85rem 1rem; box-shadow: var(--golge); color: var(--metin); transition: border-color .12s, box-shadow .12s; }
a.kpi:hover { text-decoration: none; border-color: var(--ana); box-shadow: var(--golge-yuksek); }
.kpi span { display: block; font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .04em; }
.kpi b { display: block; margin-top: .15rem; font-size: var(--yazi-kpi); line-height: 1.15;
  letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.kpi small { display: block; margin-top: .15rem; color: var(--soluk); font-size: var(--yazi-sm); }

.hedef-bar { position: relative; height: 26px; background: #eef1f5; border-radius: 999px; overflow: hidden; }
.hedef-dolu { height: 100%; background: var(--ana); border-radius: 999px; transition: width .3s; }
.hedef-dolu.tamam { background: #15803d; }
.hedef-alt { margin-top: .4rem; font-size: var(--yazi-md); }
.hedef-dolu.geride { background: #b45309; }
.hedef-kutu { margin-bottom: .9rem; }
.hedef-bos { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.hedef-bos p { margin: 0; }
.hedef-ust { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .3rem; }
.hedef-ust b { font-size: var(--yazi-h2); font-variant-numeric: tabular-nums; }
/* Donemin gecen kismini gosteren ince cizgi: cubuk bunun gerisindeyse tempo dusuk */
.hedef-imlec { position: absolute; top: 0; bottom: 0; width: 2px; margin-left: -1px;
  background: rgba(15, 23, 42, .45); }
.hedef-bar.mini { height: 10px; }
.hedef-sut { min-width: 8rem; }
.hedef-sut .kucuk { display: block; margin-top: .2rem; text-align: right; font-variant-numeric: tabular-nums; }

/* --- Panel duzeni (bolum goster/gizle, sirala) ----------------------- */
.panel-duzen { margin: 0 0 1rem; border: 1px solid var(--kenar); border-radius: 10px;
  background: #fff; padding: .35rem .7rem; }
.panel-duzen > summary { cursor: pointer; font-size: var(--yazi-md); font-weight: 600; padding: .25rem 0; }
.panel-duzen[open] > summary { margin-bottom: .4rem; }
.duzen-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .25rem;
  max-width: 30rem; }
.duzen-liste li { display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  border: 1px solid var(--kenar); border-radius: 8px; padding: .3rem .5rem; font-size: var(--yazi-md); }
.duzen-liste label { display: flex; align-items: center; gap: .45rem; margin: 0; cursor: pointer;
  flex: 1 1 auto; min-width: 0; }
/* Form icindeki input'lar %100 genis; onay kutusu etiketi ezmesin */
.duzen-liste input[type="checkbox"] { width: auto; flex: 0 0 auto; margin: 0; }
.duzen-liste label span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.duzen-tus { display: flex; gap: .2rem; flex: 0 0 auto; }
.duzen-tus .btn { padding: .1rem .45rem; line-height: 1.3; }
.duzen-alt { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .6rem; }

.dagilim-satir { display: grid; grid-template-columns: 9rem 1fr auto; gap: .6rem; align-items: center; margin-bottom: .45rem; font-size: var(--yazi-md); }
.dagilim-ad { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dagilim-cubuk { background: #eef1f5; border-radius: 999px; height: 12px; overflow: hidden; }
.dagilim-dolu { height: 100%; background: var(--ana); border-radius: 999px; }
.dagilim-dolu.ted { background: #92600a; }
.dagilim-deger { white-space: nowrap; color: var(--soluk); font-variant-numeric: tabular-nums; }

@media (max-width: 780px) {
  .kpi-panel { grid-template-columns: 1fr 1fr; }
  .dagilim-satir { grid-template-columns: 7rem 1fr; }
  .dagilim-deger { grid-column: 2; text-align: right; }
}

/* --- Teklif formu: toplu doldurma araclari --------------------------- */
.kalem-alt { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin-top: .5rem; }
.toplu-arac { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: .6rem;
  padding: .55rem .7rem; background: var(--yuzey-2); border: 1px solid var(--kenar);
  border-radius: var(--r-s); }
.toplu-grup { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem;
  font-size: var(--yazi-md); color: var(--soluk); }
.toplu-grup label { margin: 0; white-space: nowrap; }
.toplu-grup input { width: 5rem; margin: 0; }
.toplu-grup input[type="text"] { width: 9rem; }
.fiy-ipucu.dusuk { color: var(--dikkat); }
.fiy-ipucu.negatif { color: var(--risk); font-weight: 600; }

/* --- Talep asamasi (surecte nerede) ----------------------------------
   Kalin/renkli olanlar bizi bekliyor; soluk olanlar karsi tarafi. */
.asama-serit { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .5rem;
  margin: 0 0 .75rem; padding: .5rem .7rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); box-shadow: var(--golge); }
.asama-serit > span:first-child { margin-right: .2rem; }
.asama-serit a { display: inline-flex; align-items: center; gap: .35rem;
  padding: .2rem .6rem; border-radius: 999px; font-size: var(--yazi-md);
  color: var(--soluk); border: 1px solid transparent; }
.asama-serit a:hover { background: var(--yuzey-2); text-decoration: none; }
.asama-serit a span { font-variant-numeric: tabular-nums; font-weight: 700; }
.asama-serit a.bizde { color: var(--metin); background: var(--ana-bg); }
.asama-serit a.bizde span { color: var(--ana); }
.asama-serit a.aktif { border-color: var(--ana); color: var(--metin); font-weight: 600; }

/* Teklif durumu: rozet gorunumunde ama degistirilebilir alan */
.durum-form { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.rozet-secim { width: auto; margin: 0; padding: .2rem 1.6rem .2rem .6rem; border-radius: 999px;
  border: 1px solid transparent; font-size: var(--yazi-xs); font-weight: 600; cursor: pointer;
  appearance: none; background-repeat: no-repeat; background-position: right .45rem center;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath fill='%23475467' d='M0 0h10L5 6z'/%3E%3C/svg%3E"); }
.rozet-secim:focus { border-color: var(--ana); box-shadow: var(--odak); outline: none; }
.durum-form select[name="kayip_sebebi"] { width: auto; margin: 0; font-size: var(--yazi-xs); }

/* Talep analizi: huni ve yumusak uyari */
.huni { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; }
.huni-adim { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r);
  padding: .7rem .8rem; box-shadow: var(--golge); }
.huni-adim b { display: block; font-size: var(--yazi-kpi); line-height: 1.15;
  font-variant-numeric: tabular-nums; letter-spacing: -.015em; }
.huni-adim small { display: block; font-size: var(--yazi-sm); }
.huni-cubuk { margin-top: .45rem; height: 5px; background: #eef1f5; border-radius: 999px; overflow: hidden; }
.huni-cubuk div { height: 100%; background: var(--ana); border-radius: 999px; }

.uyari-yumusak { background: var(--dikkat-bg); border: 1px solid #f3ddb8; color: var(--metin);
  border-radius: var(--r); padding: .7rem .85rem; font-size: var(--yazi-md); }
.uyari-yumusak p { margin: 0 0 .4rem; }
.uyari-yumusak p:last-child { margin: 0; color: var(--soluk); }

/* Talep detayinda surec seridi */
.akis { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: .5rem 1rem; margin: 0 0 1rem; padding: .6rem .8rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); box-shadow: var(--golge); }
.akis.bizde { border-color: var(--ana); }
.akis.gecikmis { border-color: #f0c2c2; background: var(--risk-bg); }
.akis-adim { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .1rem;
  list-style: none; margin: 0; padding: 0; font-size: var(--yazi-sm); color: var(--soluk-2); }
.akis-adim li { white-space: nowrap; }
.akis-adim li + li::before { content: "›"; margin: 0 .45rem; color: var(--soluk-2); }
.akis-adim li.gecti { color: var(--soluk); }
.akis-adim li.simdi { color: var(--ana); font-weight: 700; }
.akis-sag { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.teklif-verme > summary { cursor: pointer; }
.teklif-verme[open] > summary { margin-bottom: .4rem; }
.teklif-verme .satir-ici-form { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.teklif-verme select { width: auto; min-width: 12rem; margin: 0; }

.asama-etiket { font-size: var(--yazi-sm); color: var(--soluk); }
.asama-etiket.bizde { color: var(--ana); font-weight: 600; }

/* --- Finans --------------------------------------------------------- */
td.eksi, .eksi { color: var(--dikkat); }
td.pozitif, .pozitif { color: var(--olumlu); }
.gecikmis { color: var(--risk); font-weight: 600; }
/* Olagan bir cikis/maliyet uyari degildir: sayi notr kalir, yonu isaret gosterir */
td.cikis, .cikis { color: var(--metin); }

.tahsilat-ozet { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; align-items: center; margin: .5rem 0; font-size: var(--yazi-lg); color: var(--soluk); }
.tahsilat-ozet.kucuk { font-size: var(--yazi-sm); margin-top: .6rem; }
.tahsilat-ozet b { color: var(--metin); }
.satir-ici-form { display: inline-flex; gap: .4rem; align-items: center; margin: 0; }
.satir-ici-form input { width: 7rem; margin: 0; padding: .3rem .45rem; }

.pl-tablo td { padding: .45rem .6rem; }
.pl-tablo .ara-toplam td { border-top: 1px solid var(--kenar); }
.pl-tablo .genel-toplam td { border-top: 2px solid var(--metin); font-size: var(--yazi-h2); }
.odeme-form .uclu { gap: .75rem; }

@media (max-width: 780px) {
  .kar-panel { grid-template-columns: 1fr 1fr; }
  .maliyet-form { grid-template-columns: 1fr 1fr; }
  .po-taraflar { grid-template-columns: 1fr; }
}

@media print {
  @page { margin: 12mm; }
  body { background: #fff; }
  header.ust, .teklif-eylemler, .govde > .geri { display: none !important; }
  .govde { max-width: none; margin: 0; padding: 0; }
  .teklif-cikti { border: 0; box-shadow: none; max-width: none; padding: 0 0 28mm; font-size: 11px; }
  .tk-logo { width: 84px; }
  .tk-footer { width: 100%; margin: 0; position: fixed; bottom: 0; left: 0; }
  .tk-tablo { page-break-inside: auto; font-size: 10px; }
  .tk-tablo tr { page-break-inside: avoid; }
  .tk-tablo thead { display: table-header-group; }
  /* tfoot varsayilan olarak her sayfanin altinda tekrarlanir: genel toplam ilk sayfada
     da cikiyor, sanki o sayfanin toplamiymis gibi okunuyordu. Yalnizca tablonun sonunda. */
  .tk-tablo tfoot { display: table-row-group; }
}

/* --- DHL takip ------------------------------------------------------ */
.dhl-takip { margin: .5rem 0; padding: .55rem .7rem; background: var(--bg);
  border: 1px solid var(--kenar); border-radius: var(--r); }
.dhl-ust { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.dhl-ust form { margin: 0; }
.dhl-takip details { margin-top: .45rem; }
.dhl-takip summary { cursor: pointer; }
.dhl-takip .tablo { margin-top: .35rem; }
.rozet.dhl-delivered   { background: #dcfce7; color: #166534; }
.rozet.dhl-transit     { background: #dbeafe; color: #1e40af; }
.rozet.dhl-pre-transit { background: #fef9c3; color: #854d0e; }
.rozet.dhl-failure     { background: #fee2e2; color: #991b1b; }
.rozet.dhl-unknown     { background: var(--kenar); color: var(--soluk); }

.durum-iptal { background: #fee2e2; color: #b91c1c; }

/* --- gelen e-posta eylemleri --------------------------------------- */
.gelen-eylemler { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .5rem; }
.satir-form { display: flex; gap: .35rem; align-items: center; margin: 0; }

/* Iletisim defteri: satirlari tiklanabilir gostermeyen tablo ve kucuk ogeler */
.tablo.tablo-duz tbody tr { cursor: default; }
.tablo-duz td.tek-satir { white-space: nowrap; }
.tablo-duz td.eylem-hucre { display: flex; flex-wrap: wrap; gap: .4rem .6rem; align-items: center; }
.btn-mini { padding: .22rem .6rem; font-size: var(--yazi-sm); }
.rozet-mini { font-size: var(--yazi-xs); padding: 0 .3rem; margin-left: .35rem; opacity: .75; }
.etiket-bulutu { display: flex; flex-wrap: wrap; gap: .4rem .9rem; }
/* Taslak turu rozetleri: renk isin turunu soyler, aciliyetini degil */
.rozet.taslak-rfq_yaniti { background: #e8f1fb; color: #1b4f8a; }
.rozet.taslak-siparis { background: #e7f3ec; color: #1c5f3a; }
.rozet.taslak-talep { background: #f4eef8; color: #5b3a7a; }
.gorev-kural-form { margin: .4rem .2rem .2rem; }
.gorev-kural-form .link-btn { font-size: var(--yazi-sm); text-align: left; }
.taslak-seridi { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: center;
  justify-content: space-between; margin-bottom: .9rem; }
.satir-form select, .satir-form input { margin: 0; }

.toplu-cubuk { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem;
  margin-bottom: .8rem; padding: .5rem .7rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); }
.satir-sec { margin-right: .4rem; }

.nav-rozet { display: inline-block; margin-left: .3rem; padding: 0 .34rem; min-width: 1.1rem;
  background: var(--ana); color: #fff; border-radius: 999px; font-size: var(--yazi-xs);
  line-height: 1.35; text-align: center; vertical-align: text-top; }

/* --- gelen e-posta karti -------------------------------------------- */
/* Bulten ve izleme baglantilari yuzlerce karakterlik kesintisiz metin
   olabiliyor; kirilma noktasi olmadigi icin mobilde sayfayi yana tasiyordu. */
.gelen-kart, .gelen-kart b, .gelen-kart p,
.gelen-kart .soluk, .gelen-kart .kucuk { overflow-wrap: anywhere; }
/* Dugme ve baglanti metinleri bolunmemeli — yalnizca icerik metni kirilir */
.gelen-kart .tedarik-eylem, .gelen-kart .link-btn,
.gelen-kart .btn, .gelen-kart .rozet { overflow-wrap: normal; white-space: nowrap; }
/* Genis tablolar mobilde sayfayi degil kendi kabini kaydirsin */
.tablo-sar { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* --- panel: bugun ne var? ------------------------------------------- */
.bugun .bolum-baslik { margin-top: 0; flex-wrap: wrap; }
.bugun h2 .soluk { font-weight: 400; font-size: var(--yazi-md); margin-left: .4rem; }
.hafta-serit b { color: var(--metin); }
.kuyruk-panel { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; margin-bottom: 1.5rem; align-items: start; }
.kuyruk { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r);
  box-shadow: var(--golge); display: flex; flex-direction: column; min-width: 0; }
.kuyruk.bos { opacity: .55; }
.kuyruk.dikkat { border-color: #fca5a5; }
.kuyruk.dikkat .kuyruk-ust b { color: #b91c1c; }
.kuyruk-ust { display: block; padding: .8rem 1rem .6rem; color: var(--metin); }
.kuyruk-ust:hover { text-decoration: none; }
.kuyruk-ust span { display: block; font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .03em; }
.kuyruk-ust b { display: block; font-size: var(--yazi-kpi); line-height: 1.2; }
.kuyruk-ust small { display: block; color: var(--soluk); font-size: var(--yazi-sm); overflow-wrap: anywhere; }
.kuyruk-liste { list-style: none; margin: 0; padding: 0 1rem .7rem; border-top: 1px solid var(--kenar); font-size: var(--yazi-sm); }
.kuyruk-liste li { display: grid; grid-template-columns: 1fr auto; column-gap: .6rem; padding: .4rem 0;
  border-bottom: 1px dashed var(--kenar); min-width: 0; }
.kuyruk-liste li:last-child { border-bottom: 0; }
.kuyruk-liste li a { grid-column: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kuyruk-liste li .soluk { grid-column: 1; font-size: var(--yazi-xs); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kuyruk-liste li em { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-style: normal;
  font-size: var(--yazi-xs); color: var(--soluk); white-space: nowrap; }
.kuyruk-liste li.gecikmis em { color: #b91c1c; font-weight: 600; }
.kuyruk-liste li.devam { display: block; padding-top: .45rem; }
@media (max-width: 980px) { .kuyruk-panel { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .kuyruk-panel { grid-template-columns: 1fr; } .hafta-serit { width: 100%; } }

/* 781-1100px arasi: menu genisledi (E-posta eklendi), e-posta adresi + cikis + dil sigmiyordu.
   Adres bu aralikta gizlenir, menu gerekirse ikinci satira kirilir.
   780 px altinda kirilmaz: orada menu tek satir halinde yatay kayar (bkz. 780px blogu),
   yoksa telefonda baslik iki sira hap olup ekranin ucte birini yiyordu. */
@media (min-width: 781px) and (max-width: 1100px) {
  .ust .kullanici { display: none; }
  .ust nav { flex-wrap: wrap; row-gap: .2rem; }
}

/* --- panel: nakit ve karlilik ---------------------------------------- */
.alt-baslik { font-size: var(--yazi-lg); margin: 1rem 0 .5rem; }
.alt-baslik .soluk { font-weight: 400; font-size: var(--yazi-sm); }
.kpi b.eksi { color: var(--risk); }
.kpi b.pozitif { color: var(--olumlu); }
.yas-cubuk { display: flex; height: 14px; border-radius: 999px; overflow: hidden; background: #eef1f5; }
.yas-cubuk span { display: block; height: 100%; }
.yas-liste { list-style: none; margin: .5rem 0 0; padding: 0; font-size: var(--yazi-sm); }
.yas-liste li { display: grid; grid-template-columns: auto 1fr auto auto; gap: .5rem; align-items: center; padding: .2rem 0; }
.yas-liste i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.yas-vadesi_gelmemis { background: #94a3b8; } .yas-g1_30 { background: #fbbf24; }
.yas-g31_60 { background: #f97316; } .yas-g61_90 { background: #ef4444; } .yas-g90 { background: #7f1d1d; }
.tablo.pl td { padding: .3rem .4rem; }
.tablo.pl tr.toplam td { border-top: 1px solid var(--kenar); font-weight: 600; }
.trend { width: 100%; height: auto; display: block; }
.trend-taban { stroke: var(--kenar); stroke-width: 1; }
.trend-satis { fill: var(--ana); opacity: .85; }
.trend-kar { fill: #15803d; }
.trend-kar.eksi { fill: #b91c1c; }
.trend-etiket { font-size: 12.5px; fill: var(--soluk); text-anchor: middle; }

/* Siparis tablolarinda numara bolunmesin, musteri adi kirpilsin */
.nakit .tablo.mini td.baslik-h { white-space: nowrap; }
.nakit .tablo.mini td.soluk { max-width: 11rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nakit .tablo.mini td.sag { white-space: nowrap; }
/* Mobil: iki sutunlu izgaranin cocuklari icerigin genisligine buyumesin,
   tablolar sayfa yerine kendi kabini kaydirsin */
.iki-sutun > * { min-width: 0; }
.kpi { min-width: 0; overflow-wrap: anywhere; }
.nakit .tablo.mini { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nakit .tablo.mini tbody { display: table; width: 100%; }

/* --- panel: musteri/tedarikci analizi -------------------------------- */
.yogunlasma { display: grid; grid-template-columns: auto auto auto 1fr; gap: 1.25rem; align-items: center;
  background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r);
  padding: .8rem 1rem; margin-bottom: 1rem; box-shadow: var(--golge); }
.yogunlasma.dikkat { border-color: #fca5a5; }
.yogunlasma > div > b { display: block; font-size: var(--yazi-kpi); line-height: 1.2; }
.yogunlasma small { display: block; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yogunlasma p { margin: 0; }
.analiz .tablo.mini th { font-size: var(--yazi-xs); color: var(--soluk); text-transform: uppercase; letter-spacing: .03em; }
.analiz .tablo.mini td.baslik-h { max-width: 15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 900px) { .yogunlasma { grid-template-columns: auto auto 1fr; } .yogunlasma .ilk-uc { grid-column: 1 / -1; } }
@media (max-width: 640px) { .yogunlasma { grid-template-columns: 1fr 1fr; } .yogunlasma p, .yogunlasma .ilk-uc { grid-column: 1 / -1; } }
/* Analiz tablolari 5-6 sutunlu; iki sutuna sigmadiginda alt alta gecsinler */
@media (max-width: 1200px) { .analiz .iki-sutun { grid-template-columns: 1fr; } }
/* Dusuk marj: zarar degil, dikkat — kirmizi yerine amber */
.dusuk-marj { color: #b45309; font-weight: 600; }
/* Analiz blokları tam genişlikte, alt alta — tablolar 8-9 sütunlu */
.analiz-bloklar > section { margin-bottom: 1.5rem; }
.analiz .tablo.mini td, .analiz .tablo.mini th { padding: .35rem .5rem; white-space: nowrap; }
.analiz .tablo.mini td.baslik-h { max-width: 22rem; overflow: hidden; text-overflow: ellipsis; }

/* Yogunlasma kutusunda ilk uc musterinin adi */
.ilk-uc { list-style: none; margin: 0; padding: 0; font-size: var(--yazi-sm); min-width: 0; }
.ilk-uc li { display: flex; gap: .6rem; justify-content: space-between; padding: .1rem 0; }
.ilk-uc li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 15rem; color: var(--soluk); }
.ilk-uc li b { white-space: nowrap; font-size: var(--yazi-sm); font-weight: 600; }

/* --- Dar ekran: filtre satiri -----------------------------------------
   Bu blok dosyanin sonunda duruyor; .liste-filtreler'in temel tanimi
   yukarida oldugu icin daha erken yazilsa ayni ozgullukte eziliyordu. */
@media (max-width: 780px) {
  /* Kolon yonlu flex icinde min-width:auto, ic icerik genisse kutuyu
     tasiriyordu — sayfa yana kayiyordu. */
  .filtre-cubugu > * { min-width: 0; width: 100%; }

  /* Arama tam genislik, secimler ikili. Her kontrol ayri satir olunca
     ilk veri satiri ~600 px asagida kaliyordu. */
  /* 1fr'nin alt siniri min-content: uzun musteri unvanli <option> sutunu
     tasiriyordu, minmax(0,1fr) ile kirpilir. */
  .liste-filtreler, .fatura-filtreler { display: grid; gap: .5rem;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .liste-filtreler > *, .fatura-filtreler > * { min-width: 0; }
  .liste-filtreler > input[type=search], .fatura-filtreler > input[type=search],
  .liste-filtreler > .tarih-araligi, .fatura-filtreler > .tarih-araligi { grid-column: 1 / -1; }
  .liste-filtreler select, .fatura-filtreler select { max-width: none; }
  .liste-filtreler .temizle, .fatura-filtreler .temizle { align-self: center; }

  /* Durum sekmeleri alt alta sarmasin: tek satir halinde kaydirilir */
  .filtre-cubugu .sekmeler, .sekmeler { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .sekmeler a { flex: 0 0 auto; }

  /* Uzun unvanlar dar ekranda daha da kisalsin */
  .tablo .kisalt { max-width: 9rem; }
  .tablo .baslik-h.kisalt { max-width: 13rem; }

  /* .uclu'nun temel tanimi bu dosyada daha asagida; erken yazilan kural
     ayni ozgullukte eziliyordu ve uc sutun telefonda sikisiyordu. */
  .iki-sutun, .ikili, .uclu { grid-template-columns: 1fr; }
}

/* --- Dar ekran: teklif ciktisi ---------------------------------------
   Belge A4 icin kurgulandi; dar ekranda yeniden akitmak yerine ic tablo
   yatay kaydirilir, yazdirma duzeni oldugu gibi kalir. */
@media (max-width: 780px) {
  .teklif-cikti { padding: 18px 16px 0; }
  .teklif-cikti .tk-footer { width: calc(100% + 32px); margin: 0 -16px; }
  .tk-tablo-sar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* --- Dar ekran: teklif formu toplu doldurma ---------------------------
   Iki arac grubu telefonda alt alta duser; ayrac olmadan tek bir dugme
   listesi gibi okunuyordu. */
@media (max-width: 780px) {
  .toplu-arac { flex-direction: column; gap: .5rem; }
  .toplu-grup + .toplu-grup { border-top: 1px solid var(--kenar); padding-top: .55rem; }
}

/* --- Yazdirma: belge tablosu kirpilmasin -------------------------------
   Dar ekran icin konan .tk-tablo-sar kaydirma kutusu yazdirmada da devreye
   giriyordu; overflow:auto baskida icerigi kirpar ve kaydirma cubugunu bile
   cizer. Bu blok dosyanin SONUNDA olmali: ayni ozgullukteki gec kural medya
   sorgusundan bagimsiz kazanir (bkz. mobil kurallar). */
@media print {
  .tk-tablo-sar { overflow: visible; }

  /* Teklif tablosu yazdirmada.
     ONCEKI YAKLASIM: table-layout: fixed + her sutuna elle yuzde. Iki kez
     bozuldu — yuzdeler o anki icerige gore ayarlanmisti. Uretici/Aciklama bos
     olan teklifte genislik bosa gitti; hepsi dolu olan teklifte "TDK
     Corporation", "4 weeks" ve "within 5 years" sigmayip satirlar uc kata
     cikti. Her veri sekli icin ayri yuzde tutmak surdurulebilir degil.
     SIMDIKI: tarayici sutunlari icerige gore dagitsin (auto). Tasmayi iki
     kural onler: uzun tek parca metin her yerden bolunebilir, sayisal ve
     kisa sutunlar bolunmez. */
  .tk-teklif { table-layout: auto; width: 100%; }
  .tk-teklif th, .tk-teklif td { padding: 3px 4px; }
  .tk-teklif thead th { font-size: 9px; }

  /* Her yerden bolunme YALNIZCA uzun tek parca metin tasiyan iki sutunda:
     MPN ve Aciklama. Tum metin sutunlarina uygulaninca "Piece" -> "Piec/e",
     "within 5 years" -> "withi/n 5 years" gibi kelime ortasindan bolunmeler
     oluyordu. Digerleri normal, yani bosluktan sarar. */
  .tk-teklif td.h-mpn, .tk-teklif td.h-desc { overflow-wrap: anywhere; word-break: break-word; }

  /* Bolunmemesi gerekenler: tutarlar, miktar, birim, termin, genel toplam */
  .tk-teklif .sag, .tk-teklif .h-unit, .tk-teklif .s-lead { white-space: nowrap; }
  .tk-teklif tfoot td { font-size: 11px; white-space: nowrap; }
}

/* --- E-posta gonderme: imza onizlemesi -------------------------------- */
.imza-onizleme { margin: -.4rem 0 .9rem; padding: .5rem .7rem; background: var(--yuzey-2);
  border: 1px solid var(--kenar); border-radius: var(--r-s); font-size: var(--yazi-md); }
.imza-onizleme > summary { cursor: pointer; color: var(--soluk); }
.imza-metin { margin: .6rem 0 0; font: var(--yazi-md)/1.5 inherit; white-space: pre-wrap;
  color: var(--soluk); }
.imza-gorsel { display: block; max-width: 100%; height: auto; margin-top: .6rem; }

/* --- Paylasim baglantisi ---------------------------------------------- */
.kopyala-alan { width: 100%; min-width: 14rem; font-family: ui-monospace, SFMono-Regular,
  Menlo, monospace; font-size: var(--yazi-xs); padding: .25rem .4rem; }

/* PO numarasi satin alma ekranina gider. Onceden color:inherit ile siyah
   birakilmisti; tiklanabildigi anlasilmiyordu — artik diger baglantilar gibi. */
.tedarik-no { color: var(--ana); }
.tedarik-no:hover { text-decoration: underline; }

/* --- Basa don dugmesi -------------------------------------------------
   Sayfa asagi kaydirilinca sag altta belirir. Kurallar dosyanin SONUNDA:
   esit ozgullukteki sonraki kural oncekini ezer, medya sorgusu bunu
   degistirmez — daha yukari tasinirsa mobil/yazdirma kurallari bozulur. */
.basa-don {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 40;
  width: 2.6rem; height: 2.6rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem; line-height: 1;
  color: #fff; background: var(--ana);
  border: 0; border-radius: 50%;
  box-shadow: 0 2px 8px rgb(0 0 0 / .25);
  cursor: pointer;
}
.basa-don:hover { filter: brightness(1.08); }
.basa-don:focus-visible { outline: 2px solid var(--ana); outline-offset: 2px; }
/* display:flex, [hidden]'in tarayici varsayilanini ezer — acikca geri alinir */
.basa-don[hidden] { display: none; }

@media print { .basa-don { display: none !important; } }

/* --- Teklif formunda gecmis fiyat onerisi ------------------------------
   Fiyat alaninin altinda, o parcaya daha once verdigimiz fiyat. Ayni para
   biriminde tiklanabilir dugme, farkli para biriminde soluk bilgi. */
.gecmis-fiyat { margin-top: .15rem; line-height: 1.2; }
.gecmis-fiyat-btn {
  padding: 0 .25rem; border: 1px dashed var(--kenar); border-radius: var(--r-s);
  background: none; color: var(--ana); font: inherit; font-size: var(--yazi-xs);
  cursor: pointer; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap;
}
.gecmis-fiyat-btn:hover { border-style: solid; background: var(--yuzey-2); }
.gecmis-fiyat-btn:focus-visible { outline: 2px solid var(--ana); outline-offset: 1px; }

/* --- Dar ekranda liste tablosu -> kart -------------------------------
   Telefonda listeler yana kayan tablo olarak duruyordu. Kart gorunumunde
   baslik satiri gizlenir, her hucre kendi etiketini data-etiket'ten alir.
   Bu blok dosyanin SONUNDA: ayni ozgullukteki gec kural oncekini ezer,
   medya sorgusu bunu degistirmez. */
@media (max-width: 780px) {
  .tablo-sar-kart { overflow: visible; }
  .tablo-kart { background: none; border: 0; box-shadow: none; }
  .tablo-kart thead { display: none; }
  .tablo-kart, .tablo-kart tbody, .tablo-kart tr, .tablo-kart td { display: block; width: auto; }

  .tablo-kart tr {
    background: var(--yuzey); border: 1px solid var(--kenar);
    border-radius: var(--r); padding: .6rem .8rem; margin-bottom: .6rem;
  }
  .tablo-kart tbody tr:hover { background: var(--yuzey); }
  .tablo-kart td { border: 0; padding: .15rem 0; }
  .tablo-kart tr:last-child td { border-bottom: 0; }

  /* Etiketli hucre: solda kucuk etiket, sagda deger */
  .tablo-kart td[data-etiket] {
    display: flex; gap: .75rem; justify-content: space-between; align-items: baseline;
  }
  .tablo-kart td[data-etiket]::before {
    content: attr(data-etiket);
    flex: 0 0 auto; color: var(--soluk-2); font-size: var(--yazi-xs);
  }
  /* Kart basligi: etiketsiz, tam genislik, vurgulu. display:block ve
     ::before kapatma sart — yoksa etiketli hucre kurali onu da iki sutuna
     boluyor ve baslik saga yasliyor. */
  .tablo-kart td.kart-ust { color: var(--soluk-2); font-size: var(--yazi-xs); }
  .tablo-kart td.baslik-h[data-etiket] { display: block; font-weight: 600;
    font-size: var(--yazi-lg); line-height: 1.3; margin: .1rem 0 .45rem; }
  .tablo-kart td.baslik-h[data-etiket]::before { display: none; }

  /* Bos hucre kartta satir kaplamasin: tabloda "—" anlamliydi (sutun
     hizasi korunuyordu), kartta yalnizca gurultu. */
  .tablo-kart td.bos { display: none; }

  /* Kartta kisaltma yok — yer var, tam metin gorunsun */
  .tablo-kart td.kisalt, .tablo-kart .kisalt { max-width: none; white-space: normal; overflow: visible; }
  .tablo-kart .sag { text-align: right; white-space: normal; }
}
/* --- Dar ekranda detay basligi ---------------------------------------
   Ozet satiri telefonda tek bir yogun metin blogu haline geliyordu:
   etiketler ve degerler ic ice, nerede bitip nerede basladigi belirsiz.
   Her bilgi kendi satirina alinir, etiket soluk, deger vurgulu. */
@media (max-width: 780px) {
  .ozet-satir { display: block; margin-bottom: .9rem; }
  .ozet-satir > span {
    display: block; padding: .22rem 0;
    border-bottom: 1px solid var(--kenar);
    color: var(--soluk-2); font-size: var(--yazi-md);
  }
  .ozet-satir > span:last-child { border-bottom: 0; }
  .ozet-satir > span b { color: var(--metin); }
  /* Baslik ve eylemler alt alta: dar ekranda yan yana sikisip
     "Duzenle / Sil" dugmelerini kirpiyordu. */
  .sayfa-baslik { flex-direction: column; align-items: stretch; gap: .6rem; }
  .sayfa-baslik .eylemler { display: flex; gap: .5rem; }
  .sayfa-baslik .eylemler > * { flex: 1 1 auto; }
  .sayfa-baslik h1 { font-size: 1.25rem; line-height: 1.25; }
}
/* --- Panel: hiz ve donusum (3. asama) ---------------------------------
   Dort olcut kutusu. Veri yetersizse deger yerine "—" ve altinda orneklem
   sayisi gosterilir; renk anlami korunur: burada hicbir sey iyi/kotu
   demiyoruz, olcut notrdur. */
.hiz-kutular { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem; margin-bottom: .8rem; }
.hiz-kutu { background: var(--yuzey); border: 1px solid var(--kenar);
  border-radius: var(--r); padding: .7rem .85rem; display: flex;
  flex-direction: column; gap: .15rem; min-width: 0; }
.hiz-baslik { color: var(--soluk); font-size: var(--yazi-xs); }
/* --soluk-2 bir DEGISKEN; sinif olarak yoktu. Yalnizca 'olculemedi'
   isaretinde kullanilir — veri tasiyan sayilarda kullanilmaz. */
.hiz .soluk-2 { color: var(--soluk-2); }
.hiz-deger { font-size: var(--yazi-kpi); line-height: 1.15; font-variant-numeric: tabular-nums; }
.hiz-birim { font-size: var(--yazi-md); color: var(--soluk); font-weight: 400; }
.hiz-kutu small { font-size: var(--yazi-xs); line-height: 1.35; }
.hiz-alt { font-size: var(--yazi-md); padding: .3rem 0; }
.hiz-alt + .hiz-alt { border-top: 1px solid var(--kenar); }

@media (max-width: 980px) { .hiz-kutular { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .hiz-kutular { grid-template-columns: 1fr; } }


/* --- Talep satirlarinda asama vurgusu ---------------------------------
   On bir asama, tasarim dilinin dort anlamli rengine indirgenmis dort gruba
   dusuyor (bkz. talep-asama.js ASAMALAR.vurgu). Satirin solunda 3px serit,
   arkasinda cok acik bir zemin var: ayrimi serit tasir, zemin yalnizca goze
   tarama kolayligi verir. Zemin tonlari rozet arkaplanlarindan da acik
   secildi (~%4 doygunluk) — uzun listede goz yormasin, metin kontrasti
   bozulmasin. Renk tek isaret degil: Asama sutununda etiket zaten yazili.

   Bu blok dosyanin SONUNDA: satir zemini, ustteki :hover kuralini ezmemeli.
   Bu yuzden hover kurali burada yeniden yaziliyor (ozgullugu daha yuksek). */
.tablo tbody tr[data-vurgu="bizde"]    { --vurgu: #d97706; --vurgu-bg: #fdfaf4; }
.tablo tbody tr[data-vurgu="bekleyen"] { --vurgu: #5b93f0; --vurgu-bg: #f7fafe; }
.tablo tbody tr[data-vurgu="olumlu"]   { --vurgu: #3d9b62; --vurgu-bg: #f6fbf8; }
.tablo tbody tr[data-vurgu="olumsuz"]  { --vurgu: #e08b8b; --vurgu-bg: #fdf8f8; }
.tablo tbody tr[data-vurgu="notr"]     { --vurgu: var(--kenar-koyu); }

.tablo tbody tr[data-vurgu] { background: var(--vurgu-bg, transparent); }
/* Serit satirin kendisine degil ilk hucreye: border-collapse'li tabloda
   tr'ye verilen box-shadow tarayicilarda guvenilir cizilmiyor. */
.tablo tbody tr[data-vurgu] > td:first-child {
  box-shadow: inset 3px 0 0 var(--vurgu, transparent);
}
.tablo tbody tr[data-vurgu]:hover { background: var(--ana-bg); }

/* Dar ekranda satir karta donuyor: serit kartin sol kenari olur, zemin
   kartin kendi zeminini degistirir. Kartta hover vurgusu yok (dokunmatik). */
@media (max-width: 780px) {
  .tablo-kart tbody tr[data-vurgu] {
    border-left: 3px solid var(--vurgu, var(--kenar));
    background: var(--vurgu-bg, var(--yuzey));
  }
  .tablo-kart tbody tr[data-vurgu] > td:first-child { box-shadow: none; }
  .tablo-kart tbody tr[data-vurgu]:hover { background: var(--vurgu-bg, var(--yuzey)); }
}


/* === Gorevler (Microsoft To Do duzeni) ================================
   Uc sutun: listeler | gorevler | secili gorevin ayrintisi. Ayrinti sutunu
   yalnizca bir gorev seciliyken var; grid sablonu bu yuzden iki halde. */
.gorev-duzen { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.gorev-duzen.ayrinti-acik { grid-template-columns: 13rem minmax(0, 1fr) 20rem; }

/* --- Sol sutun: listeler --- */
.gorev-yan { position: sticky; top: 1rem; background: var(--yuzey); border: 1px solid var(--kenar);
  border-radius: var(--r); padding: .5rem; box-shadow: var(--golge); }
.gorev-listeler { display: flex; flex-direction: column; gap: .1rem; }
.gorev-listeler a { display: flex; align-items: center; gap: .55rem; padding: .4rem .55rem;
  border-radius: var(--r-s); color: var(--metin); font-size: var(--yazi-md); }
.gorev-listeler a:hover { background: var(--yuzey-2); text-decoration: none; }
.gorev-listeler a.aktif { background: var(--ana-bg); color: var(--ana-koyu); font-weight: 600; }
.gorev-simge { width: 1.1rem; text-align: center; color: var(--soluk); flex: 0 0 auto; }
.gorev-listeler a.aktif .gorev-simge { color: var(--ana); }
.gorev-ad { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gorev-sayi { flex: 0 0 auto; color: var(--soluk); font-size: var(--yazi-xs);
  font-variant-numeric: tabular-nums; }
.gorev-ayrac { height: 1px; background: var(--kenar); margin: .45rem .2rem; }
.gorev-liste-ekle, .gorev-adim-ekle { display: flex; align-items: center; gap: .25rem; }
.gorev-liste-ekle { margin: .35rem 0 0; }
.gorev-liste-ekle input, .gorev-adim-ekle input { flex: 1 1 auto; min-width: 0; }
.gorev-liste-ekle input { margin: 0; border-color: transparent; background: none; font-size: var(--yazi-md); }
.gorev-liste-ekle input:focus { border-color: var(--ana); background: var(--yuzey); }

/* --- Orta sutun: gorevler --- */
.gorev-baslik { display: flex; align-items: baseline; gap: .6rem; margin-bottom: .75rem; }
.gorev-baslik h1 { flex: 0 0 auto; }
.gorev-liste-menu { margin-left: auto; position: relative; }
.gorev-liste-menu > summary { list-style: none; font-size: var(--yazi-h2); line-height: 1; }
.gorev-liste-menu > summary::-webkit-details-marker { display: none; }
.gorev-menu-govde { position: absolute; right: 0; top: 1.6rem; z-index: 5; width: 17rem;
  background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r);
  box-shadow: var(--golge-yuksek); padding: .6rem; display: grid; gap: .5rem; }
.gorev-menu-govde .satir-ici-form { display: flex; gap: .4rem; align-items: center; }
.gorev-menu-govde input { margin: 0; }

/* Hizli ekleme satiri: listenin ustunde, To Do'daki gibi tek satir */
.gorev-ekle { display: flex; align-items: center; gap: .5rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); padding: .45rem .6rem;
  box-shadow: var(--golge); }
.gorev-ekle-simge { color: var(--ana); font-size: var(--yazi-h2); line-height: 1; flex: 0 0 auto; }
.gorev-ekle input[type="text"] { flex: 1 1 auto; margin: 0; border: 0; background: none; }
.gorev-ekle input[type="text"]:focus { box-shadow: none; outline: none; }
.gorev-ekle input[type="date"] { flex: 0 0 auto; width: auto; margin: 0; font-size: var(--yazi-sm); }

.gorev-obek { font-size: var(--yazi-md); color: var(--soluk); margin: 1.1rem 0 .4rem; font-weight: 600; }
.gorev-obek.gecikmis { color: var(--risk); }

.gorev-liste { list-style: none; margin: .5rem 0 0; padding: 0; display: flex;
  flex-direction: column; gap: .3rem; }
.gorev-satir { display: flex; align-items: flex-start; gap: .6rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); padding: .5rem .65rem;
  box-shadow: var(--golge); }
.gorev-satir.secili { border-color: var(--ana); box-shadow: var(--odak); }
.gorev-satir form { margin: 0; flex: 0 0 auto; }

/* Yuvarlak tamamlama kutusu */
.gorev-kutu { width: 1.15rem; height: 1.15rem; border: 1.5px solid var(--kenar-koyu);
  border-radius: 999px; background: var(--yuzey); cursor: pointer; padding: 0;
  color: var(--ana); font-size: .7rem; line-height: 1; display: flex;
  align-items: center; justify-content: center; margin-top: .12rem; }
.gorev-kutu:hover { border-color: var(--ana); }
.gorev-satir.bitti .gorev-kutu { background: var(--ana); border-color: var(--ana); color: #fff; }

.gorev-metin { flex: 1 1 auto; min-width: 0; color: var(--metin); display: block; }
.gorev-metin:hover { text-decoration: none; }
.gorev-metin:hover .gorev-satir-baslik { color: var(--ana); }
.gorev-satir-baslik { display: block; font-size: var(--yazi-md); line-height: 1.35; }
.gorev-satir.bitti .gorev-satir-baslik { color: var(--soluk); text-decoration: line-through; }
.gorev-alt { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .15rem; }
.gorev-alt:empty { display: none; }
.gorev-etiket { color: var(--soluk); font-size: var(--yazi-xs); white-space: nowrap; }
.gorev-etiket.gecikmis { color: var(--risk); font-weight: 600; }

.gorev-eylem { display: flex; gap: .15rem; flex: 0 0 auto; }
.gorev-simge-btn { background: none; border: 0; cursor: pointer; padding: .1rem .2rem;
  color: var(--soluk-2); font-size: var(--yazi-lg); line-height: 1.2; }
.gorev-simge-btn:hover { color: var(--ana); }
.gorev-simge-btn.acik { color: var(--dikkat); }
.gorev-simge-btn.yildizli { color: var(--dikkat); }

.gorev-biten { margin-top: 1.25rem; }
.gorev-biten > summary { cursor: pointer; font-size: var(--yazi-md); color: var(--soluk);
  font-weight: 600; padding: .2rem 0; }

/* --- Sag sutun: ayrinti --- */
.gorev-ayrinti { position: sticky; top: 1rem; background: var(--yuzey);
  border: 1px solid var(--kenar); border-radius: var(--r); padding: .9rem;
  box-shadow: var(--golge); }
.gorev-ayrinti form { margin: 0; }
.gorev-ayrinti .ust-etiket { font-size: var(--yazi-xs); color: var(--soluk); margin-top: .7rem; }
.gorev-ayrinti-ust .ust-etiket { margin-top: 0; }
.gorev-ayrinti input, .gorev-ayrinti select, .gorev-ayrinti textarea { margin: 0; }
.gorev-ayrinti-alt { display: flex; gap: .5rem; margin-top: .9rem; }
.gorev-ayrinti-dip { display: flex; justify-content: space-between; align-items: center;
  gap: .5rem; margin-top: .9rem; padding-top: .7rem; border-top: 1px solid var(--kenar); }
.gorev-ayrinti-dip form { margin: 0; }
.tehlike-yazi { color: var(--tehlike); }
.tehlike-yazi:hover { color: var(--tehlike); text-decoration: underline; }

.gorev-adimlar { margin-top: 1rem; padding-top: .8rem; border-top: 1px solid var(--kenar); }
.gorev-adimlar h3 { font-size: var(--yazi-md); color: var(--soluk); }
.gorev-adimlar ul { list-style: none; margin: 0; padding: 0; display: flex;
  flex-direction: column; gap: .3rem; }
.gorev-adimlar li { display: flex; align-items: center; gap: .5rem; font-size: var(--yazi-md); }
.gorev-adimlar li form { margin: 0; }
.gorev-adimlar li span { flex: 1 1 auto; min-width: 0; }
.gorev-adimlar li.bitti span { color: var(--soluk); text-decoration: line-through; }
.gorev-adim-ekle { margin-top: .45rem; }
.gorev-adim-ekle input { margin: 0; font-size: var(--yazi-md); }
.gorev-bagli-alan { margin: .8rem 0 0; font-size: var(--yazi-md); }

/* --- Panel bolumu --- */
.panel-gorev-liste { margin-top: .3rem; }
.panel-gorev-liste .gorev-satir { padding: .4rem .55rem; }

/* Dar ekran: sutunlar alt alta, ayrinti panosu listenin ustune gelir. */
@media (max-width: 900px) {
  .gorev-duzen, .gorev-duzen.ayrinti-acik { grid-template-columns: 1fr; }
  .gorev-yan, .gorev-ayrinti { position: static; }
  .gorev-duzen.ayrinti-acik .gorev-ayrinti { order: -1; }
  .gorev-yan { display: flex; flex-wrap: wrap; gap: .3rem; }
  .gorev-listeler { flex-direction: row; flex-wrap: wrap; }
  .gorev-ayrac { display: none; }
  .gorev-liste-ekle { flex: 1 1 8rem; }
}

/* --- Mukerrer uyarisi (RFQ / teklif / siparis formu ustu) --- */
.uyari-serit { background: var(--dikkat-bg); border: 1px solid #f5d9a8; color: var(--metin);
  padding: .55rem .8rem; border-radius: var(--r); margin-bottom: 1rem; font-size: var(--yazi-md); }
.uyari-serit b { color: var(--dikkat); }

/* --- Kayit detayindaki gorev kutusu --- */
.gorev-kutusu { margin-top: 1.5rem; }
.gorev-ekle-kayit { margin-top: .5rem; }
.gorev-gunum-sec { display: inline-flex; align-items: center; gap: .3rem; font-size: var(--yazi-sm);
  color: var(--soluk); white-space: nowrap; margin: 0; }
.gorev-gunum-sec input { width: auto; margin: 0; }

/* --- Panel: bayat kayitlar --- */
.bayat { margin: 0 0 1.5rem; border: 1px solid var(--kenar); border-radius: var(--r); background: var(--yuzey); }
.bayat > summary { cursor: pointer; padding: .7rem 1rem; font-size: var(--yazi-md); color: var(--soluk);
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
.bayat > summary b { color: var(--metin); }
.bayat-form { padding: 0 1rem .8rem; }
.bayat-tablo { box-shadow: none; }
.bayat-alt { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: .6rem; flex-wrap: wrap; }

/* --- Genel arama --- */
.ara-kutu { margin: 0; flex: 0 1 15rem; min-width: 8rem; }
.ara-kutu input { margin: 0; padding: .35rem .6rem; font-size: var(--yazi-sm); border-radius: 999px;
  background: var(--yuzey-2); border-color: transparent; }
.ara-kutu input:focus { background: var(--yuzey); border-color: var(--ana); }
.ara-buyuk { display: flex; gap: .5rem; margin: .5rem 0 1.25rem; max-width: 40rem; }
.ara-buyuk input { margin: 0; flex: 1 1 auto; }
.ara-gruplar { display: grid; grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); gap: 1rem; align-items: start; }
.ara-grup { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r); padding: .8rem 1rem; }
.ara-grup h2 { font-size: var(--yazi-md); margin-bottom: .4rem; }
.ara-grup ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; }
.ara-grup li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .6rem; font-size: var(--yazi-md);
  padding: .25rem 0; border-top: 1px solid var(--kenar); }
.ara-grup li:first-child { border-top: 0; }
.ara-grup li .soluk { font-size: var(--yazi-sm); flex: 1 1 12rem; min-width: 0; }
.ara-grup li code { font-family: ui-monospace, Consolas, monospace; font-size: .85em; }

/* --- MPN arastirma ------------------------------------------------- */
.mpn-ara { display: flex; gap: .5rem; align-items: flex-start; margin: .5rem 0 .25rem; max-width: 40rem; }
.mpn-ara textarea { margin: 0; flex: 1 1 auto; resize: vertical; font-family: ui-monospace, Consolas, monospace; }
.kaynak-gruplar { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: .75rem; align-items: start; }
.kaynak-grup { background: var(--yuzey); border: 1px solid var(--kenar); border-radius: var(--r); padding: .7rem .9rem; }
.kaynak-baslik { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; margin-bottom: .45rem; }
.kaynak-linkler { display: flex; flex-wrap: wrap; gap: .35rem; }
.kaynak-linkler .btn { white-space: nowrap; }
.mpn-link { color: var(--soluk); text-decoration: none; font-size: var(--yazi-sm); margin-left: .3rem; }
.mpn-link:hover { color: var(--ana); }
.nexar-parca + .nexar-parca { margin-top: 1rem; padding-top: .75rem; border-top: 1px solid var(--kenar); }
.nexar-bas { display: flex; flex-wrap: wrap; gap: .3rem .6rem; align-items: baseline; margin-bottom: .4rem; }
.nexar-ozet { margin-left: auto; font-size: var(--yazi-sm); color: var(--soluk); }
.dis-servis { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }
.dis-servis li { display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; }
@media (max-width: 780px) { .ara-kutu { display: none; } }

/* --- Teklif formu: son teklif satiri --- */
.son-teklif-satiri { font-size: var(--yazi-sm); margin: -.2rem 0 .6rem; display: flex; flex-wrap: wrap; gap: .35rem; align-items: baseline; }

/* --- Musteri PO'sundan siparis taslagi --- */
.po-yukle { margin: 0 0 1rem; border: 1px dashed var(--kenar-koyu); border-radius: var(--r); background: var(--yuzey); }
.po-yukle > summary { cursor: pointer; padding: .55rem .9rem; font-size: var(--yazi-md); display: flex; flex-wrap: wrap; gap: .5rem; align-items: baseline; }
.po-yukle-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; padding: 0 .9rem .7rem; }
.po-yukle-form input[type="file"] { margin: 0; flex: 1 1 16rem; }
.taslak-uyarilar { margin: .35rem 0 0 1rem; padding: 0; font-size: var(--yazi-sm); }

/* --- Lojistik: sevk edilecekler --- */
.sevk-edilecek { margin-bottom: 1.5rem; }
.sevk-edilecek .bolum-baslik { margin-top: 0; }

.netc-ozet { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; align-items: baseline; margin: .3rem 0 .6rem; font-size: var(--yazi-sm); }
.netc-form textarea { width: 100%; min-height: 6rem; font-family: ui-monospace, Consolas, monospace; font-size: var(--yazi-sm); }
.netc-tablo-sar { max-height: 28rem; overflow: auto; }

/* --- Sanal ekip (src/ekip.js) --- */
.ekip-izgara { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .9rem; margin-bottom: 1.2rem; }
.ekip-kart { display: block; color: inherit; text-decoration: none; transition: border-color .15s; }
.ekip-kart:hover { border-color: var(--ana); }
.ekip-mudur { grid-column: 1 / -1; background: var(--ana-bg); }
.ekip-ust { display: flex; align-items: center; gap: .5rem; margin-bottom: .4rem; }
.ekip-simge { font-size: 1.15rem; line-height: 1; }
.ekip-ad { font-weight: 600; flex: 1; }
.ekip-tanim { margin: 0 0 .5rem; font-size: var(--yazi-sm); }
.ekip-alt { border-top: 1px solid var(--kenar); padding-top: .4rem; }
.ekip-iki { display: grid; grid-template-columns: 2fr 1fr; gap: 1rem; margin-bottom: 1.2rem; }
@media (max-width: 900px) { .ekip-iki { grid-template-columns: 1fr; } }
.ekip-form { display: grid; gap: .6rem; }
.ekip-form label { display: grid; gap: .25rem; font-size: var(--yazi-sm); }
.ekip-rapor-liste { margin: 0; padding-left: 1.1rem; display: grid; gap: .5rem; }
.ekip-kurallar summary { cursor: pointer; font-weight: 600; }
.md h2 { font-size: 1.05rem; margin: 1.1rem 0 .4rem; }
.md h3 { font-size: .95rem; margin: .9rem 0 .3rem; }
.md p, .md li { line-height: 1.5; }
.md table { margin: .5rem 0; }
.md pre { background: var(--zemin); padding: .6rem .8rem; border-radius: var(--r); overflow-x: auto; font-size: var(--yazi-sm); }

/* --- Asistan sohbet kutusu (src/asistan.js, public/asistan.js) ----------
   Sag altta yuvarlak dugme; basa-don dugmesi onun ustune kayar. */
body:has(#asistan) .basa-don { bottom: 4rem; }
.asistan-ac {
  position: fixed; right: 1rem; bottom: 1rem; z-index: 41;
  width: 2.6rem; height: 2.6rem;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem; line-height: 1;
  background: var(--ana); color: #fff;
  border: 0; border-radius: 50%;
  box-shadow: 0 2px 8px rgb(0 0 0 / .25);
  cursor: pointer;
}
.asistan-ac:hover { filter: brightness(1.08); }
.asistan-ac:focus-visible { outline: 2px solid var(--ana); outline-offset: 2px; }
.asistan-panel {
  position: fixed; right: 1rem; bottom: 4rem; z-index: 42;
  width: min(30rem, calc(100vw - 2rem)); height: min(38rem, calc(100vh - 6rem));
  display: flex; flex-direction: column;
  background: var(--yuzey); border: 1px solid var(--kenar); border-radius: 12px;
  box-shadow: var(--golge-yuksek), 0 8px 28px rgb(0 0 0 / .12);
}
.asistan-panel[hidden] { display: none; }
.asistan-panel header {
  display: flex; align-items: center; gap: .5rem;
  padding: .6rem .8rem; border-bottom: 1px solid var(--kenar);
}
.asistan-not { flex: 1; font-size: var(--yazi-xs); color: var(--soluk); }
.asistan-panel header button {
  background: none; border: 0; cursor: pointer; color: var(--soluk);
  font-size: var(--yazi-sm); padding: .2rem .35rem; border-radius: 6px;
}
.asistan-panel header button:hover { background: var(--yuzey-2); color: var(--metin); }
.asistan-kapat { font-size: 1.2rem !important; line-height: 1; }
.asistan-mesajlar {
  flex: 1; overflow-y: auto; padding: .8rem;
  display: flex; flex-direction: column; gap: .6rem;
  font-size: var(--yazi-md);
}
.asistan-mesaj { max-width: 92%; padding: .5rem .7rem; border-radius: 10px; overflow-wrap: anywhere; }
.asistan-mesaj p { margin: .25rem 0; }
.asistan-mesaj ul { margin: .25rem 0; padding-left: 1.2rem; }
.asistan-mesaj.kullanici { align-self: flex-end; background: var(--ana-bg); }
.asistan-mesaj.asistan { align-self: flex-start; background: var(--yuzey-2); border: 1px solid var(--kenar); }
.asistan-mesaj table { border-collapse: collapse; font-size: var(--yazi-sm); margin: .3rem 0; display: block; overflow-x: auto; }
.asistan-mesaj th, .asistan-mesaj td { border: 1px solid var(--kenar); padding: .2rem .4rem; text-align: left; white-space: nowrap; }
.asistan-mesaj code { font-size: var(--yazi-xs); }
.asistan-durum { color: var(--soluk); font-style: italic; }
.asistan-araclar { font-size: var(--yazi-xs); color: var(--soluk); margin-bottom: .3rem; }
.asistan-araclar code { display: block; white-space: pre-wrap; margin: .2rem 0; padding: .25rem .4rem; background: var(--yuzey); border-radius: 4px; }
.asistan-panel form { display: flex; gap: .5rem; padding: .6rem; border-top: 1px solid var(--kenar); }
.asistan-panel textarea { flex: 1; resize: none; font: inherit; font-size: var(--yazi-md); }
@media print { .asistan { display: none !important; } }

/* Excess talebi durumlari (src/excess-talep.js DURUMLAR) */
.rozet.edurum-yeni { background: #fee2e2; color: #b91c1c; }
.rozet.edurum-yanitlandi { background: #e0edff; color: #1d4ed8; }
.rozet.edurum-karel_soruldu { background: #fef3c7; color: #92600a; }
.rozet.edurum-fiyat_geldi { background: #cffafe; color: #0e7490; }
.rozet.edurum-teklif_verildi { background: #ede9fe; color: #6d28d9; }
.rozet.edurum-kapandi { background: #dcfce7; color: #15803d; }
.rozet.edurum-iptal { background: #e5e7eb; color: #4b5563; }
