/* Varyok Online — temel biçimler.
   Mobil önce: depocu telefonda, yönetici bilgisayarda aynı sayfayı açar.
   Dokunma hedefleri en az 44px; depoda eldivenle de basılabilmeli. */

:root {
  --zemin: #f5f6f8;
  --kart: #ffffff;
  --yazi: #1f2937;
  --soluk: #6b7280;
  --cizgi: #e5e7eb;
  --birincil: #1f6feb;
  --birincil-koyu: #1858c4;
  --basari: #15803d;
  --basari-zemin: #dcfce7;
  --hata: #b91c1c;
  --hata-zemin: #fee2e2;
  --uyari: #a16207;
  --uyari-zemin: #fef3c7;
  --golge: 0 1px 3px rgba(0, 0, 0, .08);
  --yuvarlak: 10px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-tema="acik"]) {
    --zemin: #0f1216;
    --kart: #171b21;
    --yazi: #e5e7eb;
    --soluk: #9ca3af;
    --cizgi: #2a3038;
    --birincil: #4d8ef7;
    --birincil-koyu: #3b7ae4;
    --basari: #4ade80;
    --basari-zemin: #14321f;
    --hata: #f87171;
    --hata-zemin: #3b1717;
    --uyari: #fbbf24;
    --uyari-zemin: #3a2c0a;
    --golge: 0 1px 3px rgba(0, 0, 0, .5);
  }
}

* { box-sizing: border-box; }

/* HTML'deki `hidden` özniteliği her zaman kazansın.
   Aksi hâlde `display: flex/grid/block` veren her sınıf onu sessizce ezer —
   gizli olması gereken bölüm ekranda kalır. */
[hidden] { display: none !important; }

body {
  margin: 0;
  background: var(--zemin);
  color: var(--yazi);
  font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  -webkit-text-size-adjust: 100%;
}

/* ------------------------------------------------------------- üst çubuk */
.ust {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 16px;
  background: var(--kart);
  border-bottom: 1px solid var(--cizgi);
  box-shadow: var(--golge);
}

.marka {
  font-weight: 700;
  font-size: 19px;
  letter-spacing: .2px;
  color: var(--yazi);
  text-decoration: none;
}

/* "Varyok" + hafif "Online" eki: masaüstündeki Varyok'tan ayrıştırır */
.marka-ek {
  margin-left: .35em;
  font-weight: 500;
  color: var(--birincil);
}

.ust-menu { display: flex; gap: 16px; flex: 1; }

.ust-menu a {
  color: var(--soluk);
  text-decoration: none;
  font-weight: 600;
  padding: 4px 2px;
}

.ust-menu a:hover { color: var(--birincil); }

.ust-sag {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.ust-sag form { margin: 0; }

.firma { font-weight: 600; }
.kisi { color: var(--soluk); }

/* ------------------------------------------------------------------ gövde */
.govde {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px 16px 48px;
}

h1 { font-size: 24px; margin: 0 0 16px; }

.soluk { color: var(--soluk); }

.kart {
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--yuvarlak);
  padding: 20px;
  box-shadow: var(--golge);
}

.kart-hata { border-color: var(--hata); }
.kart-hata h1 { color: var(--hata); font-size: 40px; margin-bottom: 8px; }

/* ------------------------------------------------------------------ bant */
.bant {
  padding: 12px 14px;
  border-radius: var(--yuvarlak);
  margin-bottom: 16px;
  font-weight: 500;
}

.bant-hata    { background: var(--hata-zemin);   color: var(--hata); }
.bant-basari  { background: var(--basari-zemin); color: var(--basari); }
.bant-uyari   { background: var(--uyari-zemin);  color: var(--uyari); }
.bant-message { background: var(--uyari-zemin);  color: var(--uyari); }
.bant-uyelik  { background: var(--basari-zemin); color: var(--basari); }

/* ------------------------------------------------------------------ form */
.form { display: flex; flex-direction: column; gap: 6px; }

.form label {
  font-size: 14px;
  font-weight: 600;
  color: var(--soluk);
  margin-top: 10px;
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"] {
  width: 100%;
  padding: 12px 14px;
  font-size: 16px;           /* 16px altı: iOS odakta sayfayı yakınlaştırır */
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 8px;
}

input:focus-visible {
  outline: 2px solid var(--birincil);
  outline-offset: 1px;
  border-color: var(--birincil);
}

/* ----------------------------------------------------------------- düğme */
.btn {
  display: inline-block;
  min-height: 44px;
  padding: 11px 18px;
  font: inherit;
  font-weight: 600;
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 8px;
  text-decoration: none;
  cursor: pointer;
}

.btn:hover { border-color: var(--birincil); }

.btn-birincil {
  margin-top: 20px;
  color: #fff;
  background: var(--birincil);
  border-color: var(--birincil);
}

.btn-birincil:hover { background: var(--birincil-koyu); }

.btn-ince {
  min-height: 34px;
  padding: 6px 12px;
  font: inherit;
  font-size: 14px;
  color: var(--soluk);
  background: transparent;
  border: 1px solid var(--cizgi);
  border-radius: 6px;
  cursor: pointer;
}

.btn-ince:hover { color: var(--yazi); border-color: var(--birincil); }

/* ------------------------------------------------------------ giriş kutusu */
.giris-kutu {
  max-width: 380px;
  margin: 8vh auto 0;
  padding: 28px 24px 32px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 14px;
  box-shadow: var(--golge);
}

.giris-logo {
  margin: 0;
  font-size: 30px;
  text-align: center;
  letter-spacing: .3px;
}

.giris-alt {
  margin: 4px 0 20px;
  text-align: center;
  color: var(--soluk);
  font-size: 14px;
}

/* ------------------------------------------------------------ sayfa başı */
.sayfa-bas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.sayfa-bas h1 { margin: 0; }

.alt-baslik { font-size: 16px; margin: 0 0 4px; }

.kucuk { font-size: 13px; }
.guclu { font-weight: 600; }
.sag { text-align: right; }
.zorunlu { color: var(--hata); font-weight: 700; }

select {
  padding: 9px 12px;
  font: inherit;
  font-size: 15px;
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 8px;
  min-height: 42px;
  max-width: 100%;
}

/* -------------------------------------------------------------- filtreler */
.filtreler { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }

.btn-filtre {
  min-height: 38px;
  padding: 7px 14px;
  font: inherit;
  font-size: 14px;
  color: var(--soluk);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 999px;
  cursor: pointer;
}

.btn-filtre.secili {
  color: #fff;
  background: var(--birincil);
  border-color: var(--birincil);
}

/* ----------------------------------------------------------------- tablo */
.kart-tablo { padding: 14px; overflow-x: auto; }

.tablo { width: 100%; border-collapse: collapse; font-size: 14px; }

.tablo th {
  text-align: left;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .4px;
  color: var(--soluk);
  padding: 8px 10px;
  border-bottom: 1px solid var(--cizgi);
  white-space: nowrap;
}

.tablo td { padding: 10px; border-bottom: 1px solid var(--cizgi); vertical-align: middle; }

/* Tıklanınca sıralayan başlık: görünüşü başlık yazısı gibi kalır */
.siralama-btn {
  display: inline-block;
  padding: 6px 0;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  color: inherit;
  background: none;
  border: 0;
  cursor: pointer;
  white-space: nowrap;
}
.siralama-btn:hover { color: var(--yazi); }
.siralama-btn.siralama-aktif { color: var(--birincil); }
.tablo tbody tr:last-child td { border-bottom: 0; }
.tablo th.sag, .tablo td.sag { text-align: right; }

.hata-sayi { color: var(--hata); font-weight: 600; }
.bos-mesaj { text-align: center; padding: 28px 10px; margin: 0; }

.cubuk {
  height: 7px;
  min-width: 110px;
  background: var(--cizgi);
  border-radius: 999px;
  overflow: hidden;
}

/* width: 0 ŞART — verilmezse span ebeveyni kadar geniş olur ve
   ilerleme çubuğu veri gelmeden %100 dolu görünür. */
.cubuk span { display: block; width: 0; height: 100%; background: var(--birincil); }

/* ---------------------------------------------------------------- rozet */
.rozet {
  display: inline-block;
  padding: 2px 9px;
  margin-left: 6px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  white-space: nowrap;
}

.rozet-yesil { color: var(--basari); background: var(--basari-zemin); }
.rozet-sari  { color: var(--uyari);  background: var(--uyari-zemin); }
.rozet-mavi  { color: #fff;          background: var(--birincil); }
.rozet-gri   { color: var(--soluk);  background: var(--cizgi); }

/* ------------------------------------------------------------ dosya bırak */
.birak {
  border: 2px dashed var(--cizgi);
  border-radius: var(--yuvarlak);
  padding: 44px 20px;
  text-align: center;
}

.birak-aktif { border-color: var(--birincil); background: var(--basari-zemin); }
.birak-baslik { font-size: 17px; font-weight: 600; margin: 0 0 6px; }
.birak p { margin: 6px 0; }

.yukleniyor { display: flex; align-items: center; gap: 10px; padding: 24px; font-weight: 600; }

.donen {
  width: 18px;
  height: 18px;
  border: 2px solid var(--cizgi);
  border-top-color: var(--birincil);
  border-radius: 50%;
  animation: don .8s linear infinite;
}

@keyframes don { to { transform: rotate(360deg); } }

/* ------------------------------------------------------------ özet şerit */
.ozet-serit {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
  padding: 16px 20px;
  margin-bottom: 4px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--yuvarlak);
  box-shadow: var(--golge);
}

/* Kullanıcının "4.966 adet" beklentisini gözüyle doğrulaması,
   yanlış eşlemeyi yakalamanın en iyi yoludur — o yüzden devasa. */
.ozet-buyuk { font-size: 32px; font-weight: 700; line-height: 1; }
.ozet-etiket { color: var(--soluk); font-size: 14px; }
.ozet-ayrac { width: 1px; height: 26px; background: var(--cizgi); margin: 0 8px; }
.ozet-sag { margin-left: auto; font-size: 13px; }
.ozet-not { margin: 0 0 16px; }

/* ----------------------------------------------------------- eşleme ekranı */
.esleme-ust {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--cizgi);
}

.esleme-ust label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: var(--soluk);
  margin-bottom: 4px;
}

.tablo-esleme { margin-top: 10px; }
.tablo-esleme td { vertical-align: middle; }
.ornek { max-width: 320px; overflow-wrap: anywhere; }

.uyari-liste { margin: 8px 0 0; padding-left: 20px; font-size: 14px; }
.uyari-liste li { margin-bottom: 4px; color: var(--uyari); }

.onay-kart { margin-top: 16px; }
.onay-kart label { display: block; font-size: 13px; font-weight: 600; color: var(--soluk); }
.onay-kart input { max-width: 420px; margin-top: 4px; }

.onay-dugmeler { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 18px; }
/* .btn-birincil'in kendi üst boşluğu yan yana düğmeleri kaydırmasın */
.onay-dugmeler .btn { margin-top: 0; }

/* Sipariş yükle: Excel dosyası | Kopyala-yapıştır */
.yukle-sekmeler { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.yukle-sekme {
  min-height: 42px;
  padding: 8px 16px;
  font: inherit;
  font-weight: 600;
  color: var(--soluk);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 999px;
  cursor: pointer;
}
.yukle-sekme.secili { color: #fff; background: var(--birincil); border-color: var(--birincil); }
.yapistir-kutu label { display: block; font-size: 14px; font-weight: 600; color: var(--soluk); margin-bottom: 6px; }
.yapistir-kutu textarea {
  width: 100%;
  min-height: 220px;
  padding: 12px 14px;
  font: 14px/1.45 ui-monospace, Consolas, monospace;
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 8px;
  resize: vertical;
  white-space: pre;
  overflow-wrap: normal;
  overflow-x: auto;
}
.yapistir-kutu .btn-birincil { margin-top: 6px; }

.kart + .kart, .kart + #uyariKart { margin-top: 16px; }

button:disabled { opacity: .55; cursor: not-allowed; }

/* -------------------------------------------------------------- telefon */
@media (max-width: 720px) {
  .govde { padding: 14px 12px 40px; }
  .ozet-buyuk { font-size: 26px; }
  .ozet-ayrac { display: none; }
  .ozet-sag { margin-left: 0; width: 100%; }
  .tablo { font-size: 13px; }
  .tablo th, .tablo td { padding: 8px 7px; }
}

/* ========================================================= OKUTMA EKRANI */

.okutma-bas {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.okutma-ad h1 { margin: 0; font-size: 20px; }

.okutma-sayac { font-size: 26px; font-weight: 700; white-space: nowrap; }

.cubuk-kalin { height: 12px; margin: 10px 0 16px; }

/* ------------------------------------------------------- okutma kutusu */
.okutma-kutu { padding: 16px 18px; }

.rozet-satir { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }

.rozet-btn {
  min-height: 38px;
  padding: 6px 14px;
  font: inherit;
  font-size: 14px;
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 999px;
  cursor: pointer;
}

.rozet-btn:hover { border-color: var(--birincil); }
.rozet-btn.rozet-eksik { color: var(--hata); border-color: var(--hata); }

.okutma-girdi { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }
.adet-kutu { width: 92px; }
.barkod-kutu { flex: 1; min-width: 220px; }

.okutma-girdi label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .4px;
  text-transform: uppercase;
  color: var(--soluk);
  margin-bottom: 4px;
}

#inpOkut { font-size: 22px; font-weight: 600; padding: 14px; }
#inpAdet { font-size: 20px; text-align: center; padding: 14px 6px; }
#inpAdet.adet-aktif { color: var(--uyari); border-color: var(--uyari); font-weight: 700; }

.flas-yesil { background: var(--basari-zemin) !important; border-color: var(--basari) !important; }

.ipucu { margin-top: 10px; }
.ipucu-uyari { color: var(--uyari); font-weight: 700; font-size: 15px; }

/* ------------------------------------------------------ son okutulan */
.son-kart { display: flex; gap: 18px; margin-top: 16px; align-items: flex-start; }
.son-resim { width: 150px; height: 150px; object-fit: contain; border-radius: 8px; background: var(--zemin); }
.son-bilgi { flex: 1; min-width: 0; }
.son-kod { font-size: 22px; font-weight: 700; }
.son-sayac { font-size: 34px; font-weight: 800; margin: 8px 0; }
.son-durum { color: var(--basari); font-weight: 600; margin-bottom: 10px; }

/* ------------------------------------------------------------- sekme */
.sekmeler { display: flex; gap: 6px; flex-wrap: wrap; margin: 20px 0 12px; }

.sekme {
  min-height: 40px;
  padding: 8px 15px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--soluk);
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  cursor: pointer;
}

.sekme.secili { color: var(--birincil); border-bottom-color: var(--birincil); }
.sekme .sayi { color: var(--hata); font-weight: 700; }

.sekme-arac { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.sekme-arac input { max-width: 260px; }

.kucuk-resim { width: 42px; height: 42px; object-fit: contain; border-radius: 5px; background: var(--zemin); }
.toplam-satir td { border-top: 2px solid var(--cizgi); background: var(--zemin); }
.geri-alinmis td { text-decoration: line-through; opacity: .55; }
.rozet-kirmizi { color: #fff; background: var(--hata); }

.alt-cubuk { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }

/* Sipariş listesi: Aç + Sil */
.islem-hucre { white-space: nowrap; text-align: right; }
.islem-hucre .btn + .btn { margin-left: 6px; }
.btn-sil { color: var(--hata); }
.btn-sil:hover { color: var(--hata); border-color: var(--hata); }

/* Telefonda sipariş listesi yana taşmasın: Aç / Sil düğmeleri ekranda kalsın.
   Ürün, Adet, Hata ve Durum sütunları gizlenir; ilerleme hücresi zaten
   "okunan / adet" yazıyor. Sütun sırası: 1 Sipariş, 2 Ürün, 3 Adet,
   4 İlerleme, 5 Hata, 6 Durum, 7 işlem. */
@media (max-width: 720px) {
  .siparis-tablo th:nth-child(2), .siparis-tablo td:nth-child(2),
  .siparis-tablo th:nth-child(3), .siparis-tablo td:nth-child(3),
  .siparis-tablo th:nth-child(5), .siparis-tablo td:nth-child(5),
  .siparis-tablo th:nth-child(6), .siparis-tablo td:nth-child(6) { display: none; }
  .siparis-tablo td, .siparis-tablo th { padding: 10px 6px; }
  .siparis-tablo td:nth-child(4) { width: 34%; }
  .siparis-tablo .islem-hucre .btn + .btn { margin-left: 4px; }
}

/* ------------------------------------------------------- hata kilidi */
/* Tam ekran, yanıp sönen, alarmlı. Yanlış ürünün koliye girmesini engelleyen
   asıl mekanizma budur — bir uyarı yazısı bu işi görmez. */
.kilit {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
  color: #fff;
}

.kilit-kirmizi { background: #b91c1c; animation: yanip 1s steps(2, end) infinite; }
.kilit-turuncu { background: #b45309; }

@keyframes yanip { 50% { background: #7f1010; } }

.kilit-ic { max-width: 620px; }
.kilit-baslik { font-size: 44px; font-weight: 900; letter-spacing: .5px; }
.kilit-resim { width: 220px; height: 220px; object-fit: contain; margin: 14px auto; display: block;
               background: rgba(255,255,255,.12); border-radius: 10px; }
.kilit-kod { font-size: 24px; font-weight: 700; margin: 10px 0; word-break: break-all; }
.kilit-mesaj { font-size: 20px; margin-bottom: 12px; }
.kilit-yutulan { color: rgba(255,255,255,.8); font-size: 15px; min-height: 22px; }

.kilit-btn {
  margin-top: 16px;
  min-height: 62px;
  padding: 18px 34px;
  font-size: 18px;
  font-weight: 800;
  color: #111;
  background: #fff;
  border: 0;
}

/* -------------------------------------------------------- tamamlandı */
.tamam-ekran {
  position: fixed;
  inset: 0;
  z-index: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  background: #15803d;
}

.tamam-simge { font-size: 90px; line-height: 1; }
.tamam-baslik { font-size: 38px; font-weight: 900; margin: 10px 0 22px; }
.tamam-btn { min-height: 56px; padding: 16px 34px; font-size: 17px; color: #111; background: #fff; border: 0; }

/* --------------------------------------------- telefonla okut (QR penceresi) */
/* Yalnız bilgisayarda: telefondan telefona QR göstermenin anlamı yok */
@media (max-width: 720px) { .yalniz-masaustu { display: none !important; } }

.telefon-ekran {
  position: fixed;
  inset: 0;
  z-index: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(15, 18, 22, .72);
}

.telefon-pencere {
  width: min(460px, 100%);
  max-height: 100%;
  overflow: auto;
  padding: 22px 26px 24px;
  text-align: center;
  background: var(--kart);
  border-radius: 14px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
}

.telefon-pencere h2 { margin: 0 0 4px; font-size: 22px; }

/* QR koyu temada da beyaz zeminde kalmalı: kamera beyaz kenar boşluğu arar */
.telefon-qr {
  display: block;
  width: 280px;
  height: 280px;
  margin: 14px auto 10px;
  padding: 6px;
  background: #fff;
  border-radius: 8px;
  transition: opacity .2s;
}

.telefon-qr.telefon-qr-doldu { opacity: .15; }

.telefon-adimlar {
  margin: 6px auto 10px;
  padding-left: 22px;
  max-width: 330px;
  text-align: left;
  font-size: 15px;
  line-height: 1.6;
}

.telefon-sayac { font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums; }
.telefon-durum { min-height: 26px; margin: 4px 0 8px; font-size: 17px; font-weight: 700; }
.telefon-durum-basari { color: var(--basari); }
.telefon-durum-uyari { color: var(--uyari); }
.telefon-uyari { margin: 8px 0 14px; font-size: 13px; color: var(--soluk); }
.telefon-dugmeler { display: flex; gap: 10px; justify-content: center; }

/* Telefonda açılan /q/<kod> sayfası */
.telefon-siparis {
  margin: 0 0 16px;
  padding: 14px 16px;
  text-align: center;
  background: var(--zemin);
  border-radius: 10px;
}

.telefon-siparis-ad { margin-top: 2px; font-size: 20px; font-weight: 800; word-break: break-word; }
.telefon-basla { width: 100%; min-height: 60px; margin-top: 4px; font-size: 19px; }
.telefon-chrome { display: flex; justify-content: center; margin-top: 10px; }

@media (max-width: 720px) {
  .okutma-sayac { font-size: 21px; }
  .son-resim { width: 100px; height: 100px; }
  .son-sayac { font-size: 28px; }
  .kilit-baslik { font-size: 30px; }
  .kilit-resim { width: 150px; height: 150px; }
  .kilit-mesaj { font-size: 17px; }
}

/* ============================================================== KAMERA */

.kamera-dugmeler { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

.kamera-kart { margin-top: 14px; padding: 0; overflow: hidden; }

.kamera-cerceve { position: relative; background: #000; line-height: 0; }

.kamera-cerceve video {
  width: 100%;
  max-height: 46vh;
  object-fit: cover;
  display: block;
}

/* Nişangâh: işçinin barkodu nereye tutacağını bilmesi için.
   Ortada sabit bir hedef olmadan telefon sağa sola savrulur. */
.nisangah {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(74%, 380px);
  height: 34%;
  border: 3px solid rgba(255, 255, 255, .85);
  border-radius: 12px;
  box-shadow: 0 0 0 100vmax rgba(0, 0, 0, .35);
  pointer-events: none;
}

/* Fener: loş depoda okuma başarısını en çok artıran tek ayar.
   Başparmak bölgesinde, büyük. */
.mesale-btn {
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 56px;
  height: 56px;
  font-size: 24px;
  line-height: 1;
  color: #fff;
  background: rgba(0, 0, 0, .55);
  border: 2px solid rgba(255, 255, 255, .6);
  border-radius: 50%;
  cursor: pointer;
}

.mesale-btn.mesale-acik { color: #111; background: #fde68a; border-color: #fde68a; }

/* Yakınlaştırma: fenerin karşı köşesinde, aynı büyüklükte */
.yakin-btn {
  position: absolute;
  left: 12px;
  bottom: 12px;
  min-width: 56px;
  height: 56px;
  padding: 0 10px;
  font: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
  color: #fff;
  background: rgba(0, 0, 0, .55);
  border: 2px solid rgba(255, 255, 255, .6);
  border-radius: 28px;
  cursor: pointer;
}

.yakin-btn.yakin-acik { color: #111; background: #bfdbfe; border-color: #bfdbfe; }

/* İşçi tarayıcının silahlı olup olmadığını bilmeli: aksi hâlde okutup
   okutmadığını anlamaz ve aynı ürünü tekrar tekrar kameraya tutar. */
.kamera-durum {
  position: absolute;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 16px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .6px;
  color: #fff;
  background: rgba(0, 0, 0, .6);
  border-radius: 999px;
  line-height: 1.2;
}

.kamera-durum .nokta { width: 10px; height: 10px; border-radius: 50%; background: #9ca3af; }
.durum-hazir .nokta { background: #4ade80; box-shadow: 0 0 8px #4ade80; }
.durum-bekle .nokta { background: #fbbf24; }

/* Kabul edilen okutma kamera görüntüsünün üstünde de görünür: depocu
   okuturken kameraya bakar, alttaki "son okutulan" kartına değil. */
.kamera-cerceve.kamera-flas { box-shadow: inset 0 0 0 6px #22c55e; }
.kamera-sonuc {
  position: absolute;
  left: 50%;
  top: 12px;
  transform: translateX(-50%);
  max-width: calc(100% - 24px);
  padding: 7px 16px;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.25;
  color: #fff;
  background: #15803d;
  border-radius: 999px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ?tani=1 — uzaktan teşhis için ham bilgi */
.tani-panel {
  margin: 14px 0 0;
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-all;
}

/* ====================================================== TELEFON DÜZENİ */
/* Depocu telefonu bir elde, ürünü diğer elde tutuyor: yalnız BAŞPARMAĞI
   boşta. Bütün dokunmatik kontroller alt bölgede olmalı. */
@media (max-width: 720px) {
  .okutma-bas { align-items: center; }
  .okutma-ad h1 { font-size: 16px; }
  .okutma-kutu { padding: 12px 14px; position: sticky; top: 0; z-index: 5; }

  /* Telefonda klavye okuyucu ikinci plandadır; kutu küçülür */
  #inpOkut { font-size: 17px; padding: 11px; }
  .adet-kutu { width: 74px; }
  .barkod-kutu { min-width: 150px; }

  .kamera-cerceve video { max-height: 40vh; }
  .mesale-btn { width: 62px; height: 62px; font-size: 27px; }
  .yakin-btn { min-width: 62px; height: 62px; border-radius: 31px; }

  .rozet-btn { min-height: 44px; font-size: 15px; }
  .sekme { min-height: 46px; padding: 10px 13px; }
  .btn-ince { min-height: 44px; padding: 10px 14px; font-size: 15px; }

  .son-kart { gap: 12px; }
  /* Alt çubuk telefonda YAPIŞKAN DEĞİL: okutma sırasında gereken düğmeler
     değil bunlar (gezinme, kapatma, rapor). Yapışkan olunca iki sıra yer
     kaplayıp ürün tablosunu örtüyordu. */
  .alt-cubuk { padding-top: 6px; }
}

/* ============================================ TELEFONDA KAMERA MODU */
/* Kamera açıkken (body.kamera-modu) kamera ve SON OKUTULAN ÜRÜNÜN RESMİ aynı
   ekrana sığmalı. Depocu resme bakıp koliye doğru ürünü koyduğunu görür;
   resim ekranın altında kalırsa kaydırmak için ürünü bırakması gerekir.
   Bunun için: site başlığı gizlenir, okutma kutusu tek-iki satıra iner,
   son okutulan kartı kameranın hemen altında küçülür. */
@media (max-width: 720px) {
  body.kamera-modu .ust { display: none; }
  body.kamera-modu .govde { padding-top: 8px; }

  body.kamera-modu .okutma-bas { flex-wrap: nowrap; gap: 10px; }
  body.kamera-modu .okutma-ad { min-width: 0; }
  body.kamera-modu .okutma-ad h1 {
    font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  body.kamera-modu #kaynakAd { display: none; }
  body.kamera-modu .okutma-sayac { font-size: 18px; }
  body.kamera-modu .cubuk-kalin { height: 8px; margin: 6px 0 8px; }

  body.kamera-modu .okutma-kutu {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px;
  }
  body.kamera-modu .rozet-satir { margin-bottom: 0; gap: 8px; }
  body.kamera-modu #rozetKisi { display: none; }
  body.kamera-modu .okutma-girdi { gap: 0; }
  body.kamera-modu .adet-kutu { display: flex; align-items: center; gap: 6px; width: auto; }
  body.kamera-modu .adet-kutu label { margin: 0; }
  body.kamera-modu #inpAdet { width: 56px; padding: 9px 4px; font-size: 18px; }
  /* Barkod kutusu GÖRÜNMEZ ama odaklanabilir kalır: Bluetooth okuyucu yine
     oraya yazar (display: none olsaydı odak alamaz, okutma kaybolurdu). */
  body.kamera-modu .barkod-kutu {
    position: absolute; width: 1px; height: 1px; min-width: 0;
    overflow: hidden; opacity: 0; pointer-events: none;
  }
  body.kamera-modu .ipucu { width: 100%; margin-top: 0; }
  body.kamera-modu .ipucu:not(.ipucu-uyari) { display: none; }
  body.kamera-modu .kamera-dugmeler { width: 100%; margin-top: 0; gap: 8px; flex-wrap: nowrap; }
  body.kamera-modu #btnKamera { flex: 0 0 auto; }
  body.kamera-modu #kameraNot { font-size: 12px; line-height: 1.3; }

  body.kamera-modu .kamera-kart { margin-top: 8px; }
  body.kamera-modu .kamera-cerceve video { max-height: 38vh; }

  body.kamera-modu .son-kart { margin-top: 8px; padding: 10px 12px; gap: 12px; align-items: center; }
  body.kamera-modu .son-resim { width: 96px; height: 96px; }
  body.kamera-modu .son-kod { font-size: 17px; line-height: 1.25; overflow-wrap: anywhere; }
  body.kamera-modu #sonKodlar { display: none; }
  body.kamera-modu .son-sayac { font-size: 24px; margin: 2px 0; }
  body.kamera-modu .son-durum { font-size: 13px; margin-bottom: 6px; }
  body.kamera-modu #btnGeriAl { min-height: 38px; padding: 6px 10px; font-size: 14px; }
}

/* Üst çubuk telefonda yer yemesin: okutma ekranında her piksel değerli.
   Firma adı gizlenir (zaten tek firmadasınız), kullanıcı adı küçülür. */
@media (max-width: 720px) {
  .ust { padding: 7px 12px; gap: 8px; flex-wrap: nowrap; }
  .marka { font-size: 16px; }
  .marka-ek { display: none; }
  .ust-menu { gap: 10px; font-size: 14px; }
  .firma { display: none; }
  .kisi { font-size: 13px; max-width: 90px; overflow: hidden;
          text-overflow: ellipsis; white-space: nowrap; }
  .ust-sag { gap: 8px; }

  /* Yapışkan alt çubuk son tablo satırını örtmesin */
  .govde { padding-bottom: 88px; }
}

/* Sekmeler telefonda alt satıra taşmasın: yatay kaydırılsın.
   Taşarsa "Son okutmalar" tek başına bir satır yiyor. */
@media (max-width: 720px) {
  .sekmeler {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    margin: 14px 0 10px;
  }
  .sekmeler::-webkit-scrollbar { display: none; }
  .sekme { white-space: nowrap; flex: 0 0 auto; }
  .govde { padding-bottom: 32px; }
}

/* ==================================================== AYARLAR / DAVET */

.satir-form { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.satir-form input { flex: 1; min-width: 220px; }

.davet-form {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-top: 12px;
}

.davet-form > div { flex: 1; min-width: 170px; }
.davet-form label { display: block; font-size: 13px; font-weight: 600;
                    color: var(--soluk); margin-bottom: 4px; }
.davet-form .btn-birincil { margin-top: 0; }

.davet-sonuc {
  margin-top: 18px;
  padding: 14px 16px;
  background: var(--basari-zemin);
  border-radius: var(--yuvarlak);
}

.davet-sonuc p { margin: 0 0 8px; }
.davet-sonuc input { background: var(--kart); font-size: 14px; }

.davet-ozet {
  padding: 12px 14px;
  margin-bottom: 16px;
  text-align: center;
  background: var(--zemin);
  border-radius: var(--yuvarlak);
}

.kisi-link { text-decoration: none; }
.kisi-link:hover { color: var(--birincil); text-decoration: underline; }

/* ======================================================== TANITIM SAYFASI */
/* "/" herkese açık. Uygulama sayfalarından ayrı bir düzen: tam genişlik
   bölümler, içerik .tn-kap ile ortalanır. Dış yazı tipi, resim ya da betik
   YOK (CSP default-src 'self'); telefon çizimi de düz CSS. Renkler mevcut
   değişkenlerden, yani koyu tema kendiliğinden çalışır. */

.tn { padding: 0; }

.tn-kap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ----------------------------------------------------------- üst çubuk */
.tn-ust {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--kart);
  border-bottom: 1px solid var(--cizgi);
}

.tn-ust-ic {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 60px;
}

.tn-ust .marka-ek { display: inline; }

.tn-ust-menu { display: flex; align-items: center; gap: 20px; }

.tn-ust-link {
  color: var(--soluk);
  font-weight: 600;
  text-decoration: none;
}

.tn-ust-link:hover { color: var(--birincil); }

.tn-btn-kucuk { min-height: 40px; padding: 8px 16px; }

.tn-btn-buyuk { min-height: 50px; padding: 13px 22px; font-size: 17px; margin-top: 0; }

/* ------------------------------------------------------------- açılış */
.tn-acilis { padding: 56px 0 64px; }

.tn-acilis-ic {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  align-items: center;
  gap: 48px;
}

.tn-etiket {
  display: inline-block;
  margin: 0 0 14px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
  color: var(--birincil);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 999px;
}

.tn-baslik {
  margin: 0 0 16px;
  font-size: clamp(30px, 4.4vw, 46px);
  line-height: 1.15;
  letter-spacing: -.5px;
}

.tn-ozet {
  margin: 0 0 26px;
  font-size: 18px;
  color: var(--soluk);
  max-width: 36em;
}

.tn-dugmeler { display: flex; gap: 12px; flex-wrap: wrap; }

.tn-guvence { margin: 18px 0 0; font-size: 14px; color: var(--soluk); }

/* Çekirdek vaat, başlıktan ayrı ve göz ucuyla okunur: eksik / fazla / yanlış */
.tn-vaatler {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin: -8px 0 26px;
  padding: 0;
  list-style: none;
}

.tn-vaatler li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  font-size: 15px;
  font-weight: 600;
  color: var(--basari);
  background: var(--basari-zemin);
  border-radius: 999px;
}

.tn-vaatler li::before { content: '✓'; font-weight: 800; }

/* ------------------------------------------------ telefon çizimi (süs) */
/* Sabit açık renkler BİLEREK: gerçek okutma ekranının görüntüsünü taklit
   eder, koyu temada da telefon ekranı gibi görünmeli. */
.tn-telefon {
  justify-self: center;
  width: 280px;
  max-width: 100%;
  padding: 12px;
  background: #11151a;
  /* Koyu temada gövde zeminle aynı renge düşüp kayboluyordu */
  border: 1px solid var(--cizgi);
  border-radius: 36px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .25);
}

.tn-telefon-ekran {
  position: relative;               /* hata kilidi bunun üstüne serilir */
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 12px;
  min-height: 480px;
  font-size: 13px;
  /* Renkli emoji yazı tipleri ÖNCE: yoksa Windows ☕ ve 🍽 için tek renkli
     "Segoe UI Symbol" çizimini seçiyor. Latin harfler yine ilk yazı tipinden. */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial,
               "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
  color: #1f2937;
  background: #f5f6f8;
  border-radius: 26px;
  overflow: hidden;
}

.tn-t-ust { display: flex; justify-content: space-between; font-weight: 700; }

.tn-t-koli {
  padding: 1px 9px;
  font-size: 12px;
  color: #fff;
  background: #1f6feb;
  border-radius: 999px;
}

.tn-t-kamera {
  position: relative;
  flex: 0 0 130px;
  background: linear-gradient(135deg, #3b4350, #20252c);
  border-radius: 14px;
  overflow: hidden;
}

/* Kameraya giren ürün etiketi. Başlangıçta kadrajın dışında bekler. */
.tn-t-etiket {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 118px;
  height: 56px;
  margin: -28px 0 0 -59px;
  padding: 8px 10px;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .35);
  opacity: 0;
  transform: translateX(190px) rotate(6deg);
}

.tn-t-barkod {
  display: block;
  height: 100%;
  background: repeating-linear-gradient(90deg,
    #111 0 2px, transparent 2px 4px, #111 4px 5px, transparent 5px 7px,
    #111 7px 10px, transparent 10px 11px, #111 11px 12px, transparent 12px 15px);
}

.tn-t-etiket.giris { animation: tn-giris .4s ease-out forwards; }
.tn-t-etiket.cikis { animation: tn-cikis .35s ease-in forwards; }

@keyframes tn-giris {
  from { opacity: 0; transform: translateX(190px) rotate(6deg); }
  to   { opacity: 1; transform: none; }
}

@keyframes tn-cikis {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateX(-190px) rotate(-6deg); }
}

.tn-t-nisan {
  position: absolute;
  inset: 30px 40px;
  border: 2px solid rgba(255, 255, 255, .8);
  border-radius: 10px;
}

/* Okundu: nişangâh bir an yeşil yanar */
.tn-t-nisan.okundu { animation: tn-okundu .6s ease-out; }

@keyframes tn-okundu {
  0%, 40% { border-color: #22c55e; box-shadow: 0 0 0 4px rgba(34, 197, 94, .45); }
  100%    { border-color: rgba(255, 255, 255, .8); box-shadow: none; }
}

.tn-t-cizgi {
  position: absolute;
  left: 44px;
  right: 44px;
  top: 50%;
  height: 2px;
  background: #ef4444;
  box-shadow: 0 0 8px #ef4444;
}

.tn-t-cizgi.tara { animation: tn-tara .6s ease-in-out; }

@keyframes tn-tara {
  0%   { top: 28%; }
  50%  { top: 72%; }
  100% { top: 50%; }
}

/* Yükseklik ve satır SABİT: ürün adı değiştikçe kart büyüyüp küçülürse
   alttaki liste her okutmada zıplıyordu (telefon genişliğinde metin sarıyordu). */
.tn-t-sonuc {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 64px;
  padding: 10px;
  background: #dcfce7;
  border: 1px solid #86efac;
  border-radius: 12px;
}

.tn-t-sonuc.yeni { animation: tn-yeni .35s ease-out; }
.tn-t-sonuc.tamam { background: #dbeafe; border-color: #93c5fd; }
.tn-t-sonuc.tamam .tn-t-adet { color: #1d4ed8; }

@keyframes tn-yeni {
  from { transform: scale(.94); opacity: .4; }
  to   { transform: none; opacity: 1; }
}

/* Ürün fotoğrafı yerine emoji: dış resim yüklenmez (CSP) ve her yerde çizilir */
.tn-t-resim {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  height: 42px;
  font-size: 24px;
  line-height: 1;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
}

.tn-t-sonuc > div:last-child { min-width: 0; }
.tn-t-ad, .tn-t-adet { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tn-t-ad { font-weight: 700; }
.tn-t-adet { color: #15803d; font-weight: 600; }

.tn-t-ilerleme { height: 6px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.tn-t-ilerleme span {
  display: block;
  height: 100%;
  background: #1f6feb;
  transition: width .4s ease-out;
}

.tn-t-satir {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 10px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
}

.tn-t-satir b { white-space: nowrap; }
.tn-t-satir.vurgu { animation: tn-vurgu .7s ease-out; }
.tn-t-satir.tamam { color: #15803d; background: #dcfce7; border-color: #86efac; }
.tn-t-hata { color: #b91c1c; background: #fee2e2; border-color: #fecaca; }

@keyframes tn-vurgu {
  from { background: #bfdbfe; border-color: #60a5fa; }
}

/* Hata kilidi: telefon ekranının tamamını kaplar, yanıp söner */
.tn-t-kilit {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px;
  text-align: center;
  color: #fff;
  background: #b91c1c;
  animation: tn-kilit .9s steps(1) infinite;
}

@keyframes tn-kilit { 50% { background: #7f1010; } }

.tn-t-kilit-baslik { font-size: 19px; font-weight: 800; letter-spacing: .3px; }

.tn-t-kilit-resim {
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  font-size: 44px;
  line-height: 1;
  background: #fff;
  border-radius: 14px;
}

.tn-t-kilit-ad { font-size: 15px; font-weight: 700; }
.tn-t-kilit-mesaj { font-size: 13px; opacity: .9; }

.tn-t-kilit-btn {
  margin-top: 10px;
  padding: 11px 12px;
  font-size: 11px;
  font-weight: 800;
  color: #b91c1c;
  background: #fff;
  border-radius: 10px;
  transition: transform .12s, background .12s;
}

.tn-t-kilit-btn.basildi { transform: scale(.93); background: #fecaca; }

/* Hareket azaltmayı seçen ziyaretçi: tanitim.js zaten başlamaz; bu da
   herhangi bir animasyonun kazara oynamasını engeller. */
@media (prefers-reduced-motion: reduce) {
  .tn-telefon *, .tn-telefon *::before { animation: none !important; transition: none !important; }
}

/* ------------------------------------------------------------ bölümler */
.tn-bolum { padding: 64px 0; }

.tn-bolum-kart {
  background: var(--kart);
  border-top: 1px solid var(--cizgi);
  border-bottom: 1px solid var(--cizgi);
}

.tn-bolum-baslik {
  margin: 0 0 28px;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.2;
}

.tn-adimlar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tn-adim {
  padding: 24px;
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 14px;
}

.tn-adim h3, .tn-ozellik h3 { margin: 12px 0 6px; font-size: 18px; }
.tn-adim p, .tn-ozellik p { margin: 0; color: var(--soluk); }

.tn-adim-no {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  font-weight: 700;
  color: #fff;
  background: var(--birincil);
  border-radius: 50%;
}

.tn-ozellikler {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 24px;
}

.tn-simge { font-size: 28px; line-height: 1; }

.tn-gerekenler {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tn-gerekenler li {
  padding: 14px 16px;
  color: var(--soluk);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: var(--yuvarlak);
}

.tn-gerekenler strong { color: var(--yazi); }
/* Kart zeminli bölümde kutular zeminden ayrışsın */
.tn-bolum-kart .tn-gerekenler li { background: var(--zemin); }

.tn-bolum-giris {
  max-width: 40em;
  margin: -16px 0 26px;
  font-size: 18px;
  color: var(--soluk);
}

.tn-bolum-alt { margin: 22px 0 0; font-weight: 600; }
.tn-bolum-alt a { color: var(--birincil); text-decoration: none; }
.tn-bolum-alt a:hover { text-decoration: underline; }

/* -------------------------------------------------------- deneme formu */
/* Yapışkan üst çubuk bağlantıyla gelinen başlığı örtmesin */
#nasil, #ozellikler, #ozel, #deneme { scroll-margin-top: 60px; }

.tn-deneme-ic {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 48px;
  align-items: start;
}

.tn-deneme-metin p { margin: 0; font-size: 18px; color: var(--soluk); }

.tn-form-kart { padding: 24px; }
.tn-form-kart .bant { margin-bottom: 8px; }
.tn-form-kart .btn-birincil { margin-top: 14px; }

input[type="tel"],
textarea {
  width: 100%;
  padding: 12px 14px;
  font: inherit;
  font-size: 16px;           /* 16px altı: iOS odakta sayfayı yakınlaştırır */
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 8px;
}

textarea { resize: vertical; min-height: 84px; }
textarea:focus-visible { outline: 2px solid var(--birincil); outline-offset: 1px; }

/* Bal küpü: gözden gizli ama display: none DEĞİL — bazı botlar görünmez
   (display: none) alanları bilerek boş bırakıyor. */
.tn-bal {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.tn-form-kart .form label.tn-onay {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 16px;
  font-weight: 600;
  color: var(--yazi);
  cursor: pointer;
}

.tn-onay input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }
.tn-aydinlatma { margin: 2px 0 0 30px; }

/* ----------------------------------------------------------- alt bilgi */
.tn-alt { padding: 24px 0 32px; border-top: 1px solid var(--cizgi); }

.tn-alt-ic {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 14px;
  color: var(--soluk);
}

.tn-alt a { color: var(--soluk); }

/* ------------------------------------------------- tablet ve telefon */
@media (max-width: 960px) {
  .tn-ozellikler { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .tn-acilis { padding: 32px 0 44px; }
  .tn-acilis-ic, .tn-deneme-ic { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .tn-adimlar, .tn-gerekenler { grid-template-columns: minmax(0, 1fr); }
  .tn-bolum { padding: 44px 0; }
}

@media (max-width: 560px) {
  .tn-kap { padding: 0 16px; }
  .tn-ust-link { display: none; }          /* telefonda yalnız marka + giriş */
  .tn-ozet { font-size: 16px; }
  .tn-dugmeler .btn { flex: 1 1 100%; text-align: center; }
  .tn-ozellikler { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .tn-telefon { width: 250px; }
  .tn-telefon-ekran { min-height: 420px; }
  .tn-form-kart { padding: 18px 16px; }
}

/* ------------------------------------------------------ talepler sayfası */
.talep-soluk td { opacity: .6; }
.talep-tarih { white-space: nowrap; }
.talep-iletisim a { margin-right: 8px; color: var(--birincil); }
.talep-iletisim .btn-ince { display: inline-block; text-decoration: none; margin-top: 4px; }
.talep-not { max-width: 280px; white-space: pre-wrap; overflow-wrap: anywhere; }
.talep-islem { white-space: nowrap; }
.talep-islem form { display: inline-block; margin: 2px 0; }
.talep-sil:hover { color: var(--hata); border-color: var(--hata); }

/* ========================================================= ÜYELİK / DENEME */

.kayit-alt { margin: 14px 0 0; text-align: center; }
.kayit-zarf { font-size: 48px; text-align: center; line-height: 1; margin: 6px 0 12px; }
.kayit-mesaj { text-align: center; }
.kayit-ipucu { margin: 14px 0 0; padding-left: 20px; line-height: 1.6; }
.kayit-dugmeler { display: flex; gap: 10px; flex-wrap: wrap; }

/* Deneme süresi bandı: üst çubuğun hemen altında, ince */
.deneme-bant {
  padding: 7px 16px;
  font-size: 14px;
  text-align: center;
  color: var(--birincil);
  background: var(--kart);
  border-bottom: 1px solid var(--cizgi);
}
.deneme-bant a { font-weight: 600; }
.deneme-bant.deneme-az { color: var(--uyari); background: var(--uyari-zemin); }
.deneme-bant.deneme-doldu { color: var(--uyari); background: var(--uyari-zemin); font-weight: 600; }
/* Telefonda kamera açıkken yer kaplamasın (okutma zaten kapalıysa kilitte yazar) */
@media (max-width: 720px) { body.kamera-modu .deneme-bant { display: none; } }

/* Tanıtım: üst menüde "Ücretsiz dene", deneme bölümünde iki yol */
.tn-ust-dene { margin-top: 0; }
.tn-deneme-ya-da { margin-top: 18px; color: var(--soluk); }

/* ========================================================= ÇEREZ BANDI */

.alt-bilgi { padding: 18px 16px 28px; text-align: center; font-size: 13px; }
.alt-bilgi a { color: var(--soluk); }

.cerez-bant {
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 700;             /* kilit (1000) ve telefon penceresinin (800) altında */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  max-width: 760px;
  margin: 0 auto;
  padding: 14px 16px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--yazi);
  background: var(--kart);
  border: 1px solid var(--cizgi);
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, .18);
}
.cerez-bant p { flex: 1 1 320px; margin: 0; }
.cerez-dugmeler { display: flex; gap: 8px; }
/* Kabul ve Reddet EŞİT görünür: onay yönlendirilmiş olmasın */
.cerez-dugmeler .btn { min-width: 110px; margin: 0; }
