/* TAHAKKUK SAYFASI — bağımsız stil (faz48p). mutabakat.css ile aynı kurallar; tahakkuk.ghmuhasebe.com.tr bu klasörden açılıyor. */

/* ===================================================================
   ONAY SAYFASI — dışa açık

   Panelin dışındaki tek sayfa. Menü yok, araç çubuğu yok. Karşı taraf
   büyük olasılıkla telefondan açıyor ve muhasebeci değil: tek soru,
   iki düğme, bir isim alanı.
   =================================================================== */

body.onay-sayfa {
  margin: 0;
  padding: 1.5rem 1rem 3rem;
  background: #f4f2ee;
  color: #221f1b;
  font-family: "GH Panel Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}

main.onay-kutu {
  max-width: 34rem;
  margin: 0 auto;
  padding: 1.5rem 1.4rem 1.75rem;
  border: 1px solid #ddd9d2;
  border-radius: 10px;
  background: #fff;
}

.onay-antet { margin: 0 0 1.25rem; }

.onay-antet h1 {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.onay-gonderen {
  margin: 0.25rem 0 0;
  font-size: 0.95rem;
  color: #6b6660;
}

/* Özet: asıl bilgi. Etiket solda küçük, değer sağda büyük. */
.onay-ozet {
  margin: 0 0 1.4rem;
  padding: 1rem 1.1rem;
  border: 1px solid #e6e3dd;
  border-radius: 8px;
  background: #faf9f6;
}

.onay-ozet dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.45rem 1rem;
  margin: 0;
}

.onay-ozet dt {
  font-size: 0.85rem;
  color: #6b6660;
}

.onay-ozet dd {
  margin: 0;
  font-weight: 600;
  text-align: right;
}

.onay-tutar {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  line-height: 1.2;
}

.onay-yon {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: #6b6660;
}

.onay-not {
  margin: 0.9rem 0 0;
  padding-top: 0.8rem;
  border-top: 1px solid #e6e3dd;
  font-size: 0.88rem;
  color: #4a4642;
}

/* Form */
.onay-form { display: flex; flex-direction: column; gap: 0.45rem; }

.onay-form > label {
  margin-top: 0.5rem;
  font-size: 0.88rem;
  font-weight: 550;
}

.onay-form input[type="text"],
.onay-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 0.55rem 0.65rem;
  border: 1px solid #ccc8c1;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  color: inherit;
}

.onay-form input[type="text"]:focus,
.onay-form textarea:focus {
  border-color: #4a3d8f;
  outline: 2px solid rgba(74, 61, 143, 0.18);
  outline-offset: 1px;
}

.onay-gerek {
  font-size: 0.75rem;
  font-weight: 500;
  color: #a3232f;
}

.onay-secim {
  margin: 0 0 0.5rem;
  padding: 0;
  border: 0;
}

.onay-secim legend {
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
}

/* İki büyük seçenek. Telefonda parmakla basılacak kadar geniş. */
.onay-secenek {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-bottom: 0.4rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #ccc8c1;
  border-radius: 8px;
  cursor: pointer;
}

.onay-secenek small { color: #6b6660; }

.onay-secenek input { margin-top: 0.25rem; }

.onay-secenek.iyi:has(input:checked) {
  border-color: #3d8f43;
  background: #f0f7f0;
}

.onay-secenek.kotu:has(input:checked) {
  border-color: #a3232f;
  background: #fbf0f1;
}

/* :has() desteklemeyen tarayıcıda odak yine görünsün. */
.onay-secenek:focus-within { border-color: #4a3d8f; }

.onay-gonder {
  margin-top: 0.9rem;
  padding: 0.7rem 1rem;
  border: 0;
  border-radius: 6px;
  background: #4a3d8f;
  font: inherit;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
}

.onay-gonder:hover { background: #3d3277; }

/* Verilmiş cevap */
.onay-verilen {
  padding: 1rem 1.1rem;
  border: 1px solid #e6e3dd;
  border-radius: 8px;
  background: #faf9f6;
}

.onay-verilen h2 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  font-weight: 650;
}

.onay-verilen p { margin: 0 0 0.45rem; }

.onay-verilen-durum { font-weight: 600; }
.onay-verilen-durum.iyi  { color: #2d6b32; }
.onay-verilen-durum.kotu { color: #8d1d27; }

.onay-verilen-not {
  padding: 0.5rem 0.65rem;
  border-left: 2px solid #ddd9d2;
  background: #fff;
  font-size: 0.9rem;
}

.onay-alt {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid #e6e3dd;
}

.onay-alt p { margin: 0 0 0.2rem; }

/* Onay sayfası panelin tema seçicisini kullanmıyor (dışa açık, tercih
   saklanmıyor) ama telefonun koyu kipinde bembeyaz patlamasın. */
@media (prefers-color-scheme: dark) {
  body.onay-sayfa { background: #1a1816; color: #ece9e3; }
  main.onay-kutu  { border-color: #3a3631; background: #221f1c; }
  .onay-ozet, .onay-verilen { border-color: #3a3631; background: #1c1a17; }
  .onay-gonderen, .onay-ozet dt, .onay-yon, .onay-secenek small { color: #9b958d; }
  .onay-not { border-top-color: #3a3631; color: #c9c4bc; }
  .onay-form input[type="text"], .onay-form textarea {
    border-color: #4a453f; background: #15130f; color: inherit;
  }
  .onay-secenek { border-color: #4a453f; }
  .onay-secenek.iyi:has(input:checked)  { border-color: #4e9b54; background: #1b2a1c; }
  .onay-secenek.kotu:has(input:checked) { border-color: #b8313d; background: #2a1b1d; }
  .onay-verilen-not { border-left-color: #4a453f; background: #221f1c; }
  .onay-alt { border-top-color: #3a3631; }
}

/* ===================================================================
   FİRMA MUTABAKAT ÖZETİ — mükellefin kendi sayfası (faz35q)

   Karşı taraf sayfasından iki farkı var:

     1. Tek cari değil, defterin tamamı. Dar kutu yetmiyor —
        34rem yerine 54rem.
     2. Telefonda doldurulacak. Her cari bir "kart"; tablo DEĞİL,
        çünkü yedi sütunlu bir tablo 400 piksellik ekranda
        okunmuyor. Kart geniş ekranda iki sütuna açılıyor.
   =================================================================== */

main.firma-kutu {
  max-width: 54rem;
  margin: 0 auto;
  padding: 1.5rem 1.4rem 1.75rem;
  border: 1px solid #ddd9d2;
  border-radius: 10px;
  background: #fffdfa;
}

/* ---------- Kapı: son dört hane ---------- */

.firma-giris-not { margin: 0 0 1rem; }

.firma-giris {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 0.6rem;
  margin: 0 0 1rem;
}

.firma-giris label {
  display: block;
  width: 100%;
  margin: 0 0 0.2rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.firma-giris input {
  width: 7rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 1.3rem;
  letter-spacing: 0.3em;
  text-align: center;
}

.firma-giris button {
  padding: 0.65rem 1.4rem;
  border: 0;
  border-radius: 6px;
  background: #221f4a;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

/* ---------- Antet ---------- */

.firma-antet { margin: 0 0 1.25rem; }
.firma-antet h1 { margin: 0 0 0.2rem; font-size: 1.35rem; }
.firma-unvan { margin: 0; font-weight: 600; }
.firma-tarih { margin: 0.15rem 0 0; color: #6f6a62; font-size: 0.9rem; }

/* ---------- Yönerge ---------- */

.firma-yonerge {
  margin: 0 0 1.25rem;
  padding: 0.9rem 1rem;
  border: 1px solid #e6e3dd;
  border-radius: 8px;
  background: #faf8f4;
}

.firma-yonerge h2 { margin: 0 0 0.5rem; font-size: 1rem; }
.firma-yonerge ol { margin: 0 0 0.75rem; padding-left: 1.2rem; }
.firma-yonerge li { margin: 0 0 0.3rem; }

.firma-sorumluluk-not {
  margin: 0;
  padding-top: 0.6rem;
  border-top: 1px solid #e6e3dd;
  color: #6f6a62;
  font-size: 0.85rem;
}

.firma-sayfa-bilgi {
  margin: 0 0 1rem;
  color: #6f6a62;
  font-size: 0.85rem;
}

/* ---------- Gruplar ---------- */

.firma-grup { margin: 0 0 1.5rem; }

.firma-grup h2 {
  margin: 0 0 0.15rem;
  font-size: 0.95rem;
  letter-spacing: 0.08em;
}

.firma-grup-not {
  margin: 0 0 0.75rem;
  color: #6f6a62;
  font-size: 0.85rem;
}

/* ---------- Cari satırı ----------

   Önce her cari beş alanlı bir kart idi; 101 carili bir firmada
   sayfa okunamaz hâle geldi. Artık satır tek sıra: kutu, ünvan,
   tutar. Ayrıntı <details> ile açılıyor — JavaScript yok, çünkü
   bu sayfa tanımadığımız telefonlarda açılıyor. */

.firma-satir {
  border-bottom: 1px solid #ece9e3;
}

.firma-satir:last-child { border-bottom: 0; }

.firma-sira {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  padding: 0.5rem 0.2rem;
}

/* SINIF ADI "firma-kutu" DEĞİL (faz35t).

   Öyleydi ve sayfayı bozdu: <main> etiketinin sınıfı da
   "firma-kutu". Onay kutusuna yazdığım width:1.25rem sayfanın
   KENDİSİNE uygulandı, bütün içerik 20 piksellik bir sütuna
   sıkıştı.

   Ders: sayfanın kabuğu ile içindeki küçük bir parça aynı adı
   taşımamalı. "kutu" iki ayrı şeyin adıydı — biri sayfa kutusu,
   biri onay kutusu.

   Dokunma hedefi bilerek büyük: telefonda küçük kareyi
   ıskalamak en can sıkıcı şey. */
.firma-onay {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  align-self: center;
  accent-color: #1f6b3a;
}

.firma-kilit-im {
  flex: 0 0 auto;
  width: 1.25rem;
  align-self: center;
  color: #3d8f43;
  text-align: center;
}

/* Ünvan etiketin kendisi: satırın her yerine basınca kutu
   işaretleniyor, küçük kareyi hedeflemek gerekmiyor. */
.firma-sira-ad {
  flex: 1 1 auto;
  min-width: 0;
  cursor: pointer;
  line-height: 1.35;
}

.firma-cari-unvan { font-weight: 600; }

.firma-rozet {
  margin-left: 0.4rem;
  color: #6f6a62;
  font-size: 0.78rem;
  white-space: nowrap;
}

.firma-rozet.kotu { color: #a3232f; }

.firma-cari-tutar {
  flex: 0 0 auto;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.firma-yon {
  margin-left: 0.3rem;
  color: #6f6a62;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

.firma-satir.kilitli .firma-sira { opacity: 0.65; }

/* ---------- Ayrıntı ---------- */

.firma-ayrinti {
  margin: 0 0 0.6rem 1.85rem;
  font-size: 0.92rem;
}

.firma-ayrinti > summary {
  display: inline-block;
  padding: 0.2rem 0;
  color: #0153a7;
  cursor: pointer;
  font-size: 0.85rem;
}

.firma-ayrinti > summary:hover { text-decoration: underline; }

.firma-ayrinti[open] > summary { margin-bottom: 0.5rem; font-weight: 600; }

/* ---------- Ayrıntı panelindeki alanlar ----------

   faz35s'de kart düzeni kaldırılırken bu kurallar yanlışlıkla
   silindi; kutular biçimsiz kaldı. Geri kondu.

   Geniş ekranda etiket solda, kutu sağda; telefonda alt alta.
   Kutular tam genişlik: dar ekranda yarım kutu kullanılmıyor. */

.firma-alanlar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.15rem 0.8rem;
  padding: 0.6rem 0.7rem;
  border-left: 2px solid #e0ddd6;
  background: #faf8f4;
}

@media (min-width: 42rem) {
  .firma-alanlar { grid-template-columns: 11rem 1fr; align-items: center; }
  .firma-alanlar label { margin: 0; }
}

.firma-alanlar label {
  margin: 0.4rem 0 0.1rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.firma-alanlar input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  padding: 0.5rem 0.6rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.95rem;
}

.firma-degil-kutu {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  grid-column: 1 / -1;
  margin: 0 0 0.4rem;
  font-weight: 600;
  cursor: pointer;
}

.firma-tek-sefer { margin: 0.5rem 0 0; }
.firma-tek-sefer-ust {
  margin: 0.75rem 0 0;
  padding-top: 0.6rem;
  border-top: 1px solid #e6e3dd;
  font-size: 0.88rem;
}

/* ---------- Firmanın kendi gönderimi ---------- */

.firma-wa {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.6rem;
  margin: 0.7rem 0 0;
  padding-top: 0.6rem;
  border-top: 1px solid #efede8;
}

.firma-wa-dugme {
  padding: 0.45rem 0.85rem;
  border: 1px solid #1f8a4c;
  border-radius: 6px;
  background: #e9f6ed;
  color: #14683a;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
}

.firma-wa-dugme:hover { background: #d9efe0; }

/* ---------- Düğmeler ---------- */

/* .firma-dugmeler'in asıl tanımı aşağıda, "Sabit kaydetme
   şeridi" bölümünde (faz35s). Buradaki eski tanım kaldırıldı:
   aynı seçiciyi iki yerde tanımlamak, hangisinin kazandığını
   kaynak sırasına bağlı kılıyor. */

.firma-dugmeler button {
  padding: 0.65rem 1.3rem;
  border: 0;
  border-radius: 6px;
  background: #221f4a;
  color: #fff;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.firma-dugmeler button.ikincil {
  border: 1px solid #ccc7bf;
  background: #fff;
  color: #221f1b;
}

/* ---------- Bitirme ---------- */

.firma-bitir {
  padding: 1rem 1.1rem;
  border: 1px solid #e0ddd6;
  border-radius: 8px;
  background: #faf8f4;
}

.firma-bitir h2 { margin: 0 0 0.6rem; font-size: 1rem; }

/* SORUMLULUK KUTUSU KIRMIZI (faz36p).

   Burası bir beyan: firma onayladığında cevaplanmamış bakiyeler
   "mutabık" sayılıyor ve e-defter o şekilde yükleniyor. Sarı
   çizgili sakin bir not olarak okunmadan geçiliyordu.

   Yalnız ONAY kutusundaki kopyası kırmızı; sayfanın yukarısındaki
   .firma-sorumluluk-not aynı metni sakin bir dipnot olarak
   veriyor ve orada bağırmasına gerek yok. */
.firma-sorumluluk {
  margin: 0 0 0.8rem;
  padding: 0.8rem 0.9rem;
  border: 1px solid #e8b4ae;
  border-left: 5px solid #b42318;
  border-radius: 3px;
  background: #fff4f2;
  color: #7a1c14;
  font-size: 0.95rem;
  line-height: 1.5;
}

.firma-dikkat {
  color: #b42318;
  font-size: 1rem;
  letter-spacing: 0.04em;
}

.firma-onay-kutu {
  display: flex;
  align-items: start;
  gap: 0.5rem;
  margin: 0 0 0.9rem;
  font-size: 0.92rem;
  cursor: pointer;
}

.firma-bitir label[for="ad"] {
  display: block;
  margin: 0 0 0.2rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.firma-bitir input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 0.8rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
}

.firma-gonder {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 0;
  border-radius: 6px;
  background: #1f6b3a;
  color: #fff;
  font: inherit;
  font-size: 1.02rem;
  font-weight: 600;
  cursor: pointer;
}

.firma-gonder:hover { background: #185730; }

/* ---------- Koyu kip ---------- */

@media (prefers-color-scheme: dark) {
  main.firma-kutu { border-color: #3a3631; background: #221f1c; }

  .firma-tarih, .firma-grup-not, .firma-sayfa-bilgi,
  .firma-yon, .firma-kilit-not, .firma-sorumluluk-not { color: #9b958d; }

  .firma-yonerge, .firma-bitir { border-color: #3a3631; background: #1c1a17; }
  .firma-sorumluluk-not { border-top-color: #3a3631; }

    .firma-satir { border-bottom-color: #302c28; }
  .firma-alanlar { border-left-color: #3a3631; background: #15130f; }
  .firma-tek-sefer-ust { border-top-color: #3a3631; }
  .firma-ayrinti > summary { color: #7fb3ec; }

  .firma-giris input, .firma-alanlar input,
  .firma-bitir input[type="text"] {
    border-color: #4a453f; background: #15130f; color: inherit;
  }

  .firma-sorumluluk {
    border-color: #7d2a22;
    border-left-color: #e5564a;
    background: #2a1b1d;
    color: #f0b5ae;
  }
  .firma-dikkat { color: #ff6b5c; }

  .firma-wa { border-top-color: #3a3631; }
  .firma-wa-dugme { border-color: #2f7f52; background: #15251b; color: #8fd6a8; }
  .firma-wa-dugme:hover { background: #1b3124; }

  .firma-dugmeler button.ikincil {
    border-color: #4a453f; background: #1c1a17; color: #ece9e3;
  }
}

/* ---------- Toplu işaretleme şeridi (faz35s) ----------

   Bu şeridi BETİK ekliyor; HTML'de yok. Betik çalışmazsa ölü
   düğme kalmasın diye. */

.firma-toplu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding: 0.6rem 0.7rem;
  border: 1px solid #e6e3dd;
  border-radius: 8px;
  background: #faf8f4;
}

.firma-toplu-dugme {
  padding: 0.4rem 0.8rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.85rem;
  cursor: pointer;
}

.firma-toplu-dugme:hover { background: #f1efe9; }

.firma-toplu-sayi {
  margin-left: auto;
  color: #6f6a62;
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
}

/* ---------- Sabit kaydetme şeridi ----------

   Yüz satırlık listede "Kaydet" düğmesini aramak için en alta
   inmek gerekiyordu. Artık ekranın altında sabit. */

.firma-dugmeler {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 1.25rem 0;
  padding: 0.7rem;
  border: 1px solid #ddd9d2;
  border-radius: 8px;
  background: #fffdfa;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.06);
}

.firma-durum {
  margin-left: auto;
  font-size: 0.85rem;
  color: #6f6a62;
}

.firma-durum.iyi      { color: #1f6b3a; font-weight: 600; }
.firma-durum.kotu     { color: #a3232f; font-weight: 600; }
.firma-durum.bekliyor { color: #8a6d0d; }

@media (prefers-color-scheme: dark) {
  .firma-toplu { border-color: #3a3631; background: #1c1a17; }
  .firma-toplu-dugme {
    border-color: #4a453f; background: #15130f; color: #ece9e3;
  }
  .firma-toplu-dugme:hover { background: #1f1c18; }
  .firma-toplu-sayi, .firma-durum { color: #9b958d; }
  .firma-dugmeler {
    border-color: #3a3631; background: #221f1c;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.4);
  }
  .firma-durum.iyi      { color: #7fd09b; }
  .firma-durum.kotu     { color: #e98a92; }
  .firma-durum.bekliyor { color: #d9b556; }
}

/* ---------- Firmanın kendi gönderdiği mutabakat (faz35u) ----------

   Yönlendirme yerine sayfanın üstünde duran sonuç kutusu. Üç parça
   bir arada: düğme, adres, mesaj metni. WhatsApp açılmazsa link
   kopyalanıp elle gönderilebilsin diye — bu iş tek bir yola bağlı
   kalmamalı. */

.firma-wa-sonuc {
  margin: 0 0 1.25rem;
  padding: 0.9rem 1rem 1rem;
  border: 1px solid #bfe0cd;
  border-radius: 8px;
  background: #f3faf5;
}

.firma-wa-sonuc h2 { margin: 0 0 0.7rem; font-size: 1rem; }

.firma-wa-ac {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.8rem;
  margin: 0 0 0.8rem;
}

.firma-wa-baglanti {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border-radius: 6px;
  background: #1f6b3a;
  color: #fff;
  font-weight: 600;
  text-decoration: none;
}

.firma-wa-baglanti:hover { background: #185730; }

.firma-wa-sonuc label {
  display: block;
  margin: 0.5rem 0 0.2rem;
  font-size: 0.85rem;
  font-weight: 600;
}

.firma-wa-kopya {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0.5rem 0.6rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.88rem;
}

textarea.firma-wa-kopya { line-height: 1.5; resize: vertical; }

@media (prefers-color-scheme: dark) {
  .firma-wa-sonuc { border-color: #2f7f52; background: #15251b; }
  .firma-wa-kopya { border-color: #4a453f; background: #15130f; color: inherit; }
}

/* SMS bağlantısı — ikinci yol (faz35w).

   WhatsApp yalnız WhatsApp'ı OLAN numaraya gidiyor. Olmayan
   numarada "bu numara WhatsApp kullanmıyor" diyor ve orada
   duruyor; bizim aşabileceğimiz bir şey değil. SMS her telefona
   gidiyor, o yüzden yanında duruyor — ama ikinci yol olduğu için
   sakin renkte. */

.firma-sms-baglanti {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  color: #221f1b;
  font-weight: 600;
  text-decoration: none;
}

.firma-sms-baglanti:hover { background: #f1efe9; }

.firma-wa-not { margin: 0 0 0.8rem; }

@media (prefers-color-scheme: dark) {
  .firma-sms-baglanti {
    border-color: #4a453f; background: #1c1a17; color: #ece9e3;
  }
  .firma-sms-baglanti:hover { background: #221f1c; }
}

/* Kopyalama satırı (faz35x): kutu + "Kopyala" düğmesi yan yana.
   Düğmeyi betik ekliyor; betik yoksa kutu tek başına kalıyor ve
   elle seçilip kopyalanabiliyor. */

.firma-kopya-satir {
  display: flex;
  gap: 0.4rem;
  align-items: stretch;
}

.firma-kopya-satir > .firma-wa-kopya { flex: 1 1 auto; min-width: 0; }

.firma-kopyala {
  flex: 0 0 auto;
  padding: 0.5rem 0.8rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  font: inherit;
  font-size: 0.85rem;
  white-space: nowrap;
  cursor: pointer;
}

.firma-kopyala:hover { background: #f1efe9; }

@media (prefers-color-scheme: dark) {
  .firma-kopyala {
    border-color: #4a453f; background: #1c1a17; color: #ece9e3;
  }
  .firma-kopyala:hover { background: #221f1c; }
}

/* Mutabakat mektubu bağlantısı (faz35z). "Metni kopyala"nın
   yanında, aynı sakin görünümde: ikisi de ikinci yol. */
.firma-mektup-baglanti {
  display: inline-block;
  padding: 0.6rem 1.2rem;
  border: 1px solid #ccc7bf;
  border-radius: 6px;
  background: #fff;
  color: #221f1b;
  font-weight: 600;
  text-decoration: none;
}

.firma-mektup-baglanti:hover { background: #f1efe9; }

@media (prefers-color-scheme: dark) {
  .firma-mektup-baglanti {
    border-color: #4a453f; background: #1c1a17; color: #ece9e3;
  }
  .firma-mektup-baglanti:hover { background: #221f1c; }
}


/* ---- Ekstre yükleme (faz36h) ----

   "Mutabık değiliz" seçilince beliriyor. Sayfadaki diğer
   alanlardan ayrı dursun diye hafif bir kutu içinde: isteğe
   bağlı olduğu bir bakışta anlaşılsın, zorunlu bir adım gibi
   durmasın. */

.onay-ekstre {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.7rem;
  padding: 0.75rem 0.85rem;
  background: #f7f6f3;
  border: 1px solid #e6e3dd;
  border-radius: 8px;
}

.onay-ekstre > label { margin-top: 0; font-size: 0.88rem; font-weight: 550; }

/* Dosya seçicinin kendi düğmesi tarayıcıdan geliyor; yalnız
   taşmasını engelliyoruz. Telefonda dosya adı uzun olabiliyor. */
.onay-ekstre input[type="file"] {
  width: 100%;
  box-sizing: border-box;
  font: inherit;
  font-size: 0.9rem;
}

.onay-ekstre p { margin: 0; }

/* hidden özniteliği: betik yüklenmezse alan açık kalıyor. Panelin
   taban kuralları [hidden] etiketini bazı yerlerde eziyor, burada
   kesinleştiriyoruz. */
.onay-ekstre[hidden] { display: none; }

/* ---- Bildirim kutuları (faz36h) ----

   .mesaj / .iyi / .tehlike-kutu sayfanın başından beri
   kullanılıyordu ama bu stil dosyasında KARŞILIĞI YOKTU: hata ve
   teşekkür metinleri düz paragraf olarak çıkıyordu. Panelin
   stil.css'inde tanımlılar, bu küçük dosyaya hiç geçmemişler.

   faz36h'de ekstre yüklemesi iki yeni hata metni getirdi ("dosya
   çok büyük", "ekstreniz alınamadı") ve eksiklik görünür oldu.
   Renkler panelinkilerle aynı aileden. */

.onay-kutu .mesaj {
  margin: 0 0 0.9rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid #e6e3dd;
  border-left-width: 3px;
  border-radius: 6px;
  background: #f7f6f3;
  font-size: 0.92rem;
  line-height: 1.5;
}

.onay-kutu .mesaj.iyi {
  border-color: #bfe0cd;
  border-left-color: #0f7a45;
  background: #e9f5ee;
  color: #11532f;
}

.onay-kutu .mesaj.tehlike-kutu {
  border-color: #f0c9c5;
  border-left-color: #b42318;
  background: #fdeceb;
  color: #8e1d13;
}

.onay-kutu .soluk { color: #6f6a62; }
.onay-kutu .kucuk { font-size: 0.82rem; }

/* ==========================================================
   faz41a — BANKA EKSTRESİ İSTEĞİ (?b=)
   ========================================================== */
.banka-donem { margin: 0.2rem 0 0; font-weight: 700; }
.banka-liste, .banka-gelen { list-style: none; margin: 0 0 1rem; padding: 0; }
.banka-kalem {
  padding: 0.8rem 0.9rem;
  margin: 0 0 0.6rem;
  border: 1px solid #e4dfd6;
  border-radius: 10px;
  background: #fff;
}
.banka-ad { font-weight: 700; }
.banka-tarih { margin: 0.15rem 0 0.5rem; color: #8a4d0d; font-weight: 600; font-size: 0.92rem; }
.banka-dvz {
  display: inline-block; padding: 0 0.45rem; border-radius: 999px; font-size: 0.72rem;
  background: #e7eef9; color: #1d4f8a; vertical-align: 1px;
}
.banka-form { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.banka-form input[type=file] { flex: 1 1 14rem; max-width: 100%; font: inherit; font-size: 0.9rem; }
.banka-form button {
  padding: 0.5rem 1.2rem; border: 0; border-radius: 999px;
  background: #221f4a; color: #fff; font: inherit; font-weight: 600; cursor: pointer;
}
.banka-form button:hover { background: #3a3670; }
.banka-baslik { font-size: 1rem; margin: 1.2rem 0 0.5rem; }
.banka-gelen li { padding: 0.35rem 0; border-bottom: 1px dashed #e4dfd6; font-size: 0.92rem; }

/* faz43n: ekstre gönderimi sürerken */
.banka-form.gonderiliyor button { opacity: .7; cursor: progress; }
.banka-form.gonderiliyor input[type=file] { pointer-events: none; opacity: .6; }

/* faz46n: beyanname ve tahakkuk sayfası (?t=) */
.thk-ozet { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1rem; }
.thk-ozet > div { flex: 1 1 10rem; border: 1px solid #e4dfd6; border-radius: 8px; padding: .6rem .8rem; }
.thk-ozet span { display: block; font-size: .85rem; color: #6b645a; }
.thk-ozet strong { font-size: 1.2rem; }
.thk-liste { list-style: none; margin: 0 0 1rem; padding: 0; }
.thk-liste li { border-bottom: 1px dashed #e4dfd6; }
.thk-form { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .45rem 0; }
.thk-ad { flex: 1 1 12rem; font-weight: 600; }
.thk-tutar { font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.thk-form button { padding: .3rem .9rem; border: 0; border-radius: 6px; background: #2b2760; color: #fff; font: inherit; cursor: pointer; }
.thk-form button:hover { background: #3a3670; }

/* faz46r: ödeme kalemleri satırında belge düğmeleri */
.thk-ac { display: inline; margin: 0; }
.thk-ac button { padding: .25rem .7rem; border: 0; border-radius: 6px; background: #2b2760; color: #fff; font: inherit; font-size: .85rem; cursor: pointer; }
.thk-ac button:hover { background: #3a3670; }
.thk-tur { font-size: .92rem; margin: .8rem 0 .3rem; color: #6b645a; }

/* faz46s: tahakkuk sayfasında ofis hesapları — IBAN'a dokununca tamamı seçilir. */
.thk-hesaplar li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem .8rem; padding: .55rem 0; }
.thk-iban { font-variant-numeric: tabular-nums; font-weight: 600; letter-spacing: .02em; user-select: all; -webkit-user-select: all; }
.thk-not { font-size: .8em; }

/* ===================================================================
   LİNKSİZ AÇILAN SAYFA (faz48p) — lib/kapi_sayfa.php
   Ortada logo, altında ghmuhasebe.com; ikisi de siteye gider.
   =================================================================== */
body.kapi {
  margin: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f4f2ee;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
}
body.kapi a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .9rem;
  color: #6b655d;
  font-size: .95rem;
  letter-spacing: .02em;
  text-decoration: none;
}
body.kapi img { width: 180px; height: auto; }
body.kapi a:hover span,
body.kapi a:focus-visible span { color: #221f1b; text-decoration: underline; }
