html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/*
  Dogrulama ozeti hata yokken gizlenir.

  Tag helper ozeti her zaman basar; hata yoksa "validation-summary-valid" sinifiyla
  ve bos <ul> ile. Kutuya dogrudan "d-none" yazilirsa hata ciktiginda da gizli kalir
  ve form sessizce geri doner: kullanici Kaydet'e basar, hicbir sey olmaz. Bu yuzden
  gizleme sinifi kutuya degil, cerceve tarafindan yonetilen bu sinifa bagli.
*/
.validation-summary-valid {
  display: none;
}
/*
  select2 <-> Bootstrap 5 uyumu.

  Temanin select2 paketi yalnizca varsayilan stili iceriyor; bootstrap-5 temasi
  yok. Bu yuzden acilir liste kutusu form-select ile ayni yuksekligi, kenarligi
  ve odak rengini alsin diye birkac kural elle yaziliyor. Aksi halde ayni satirda
  duran bir input ile select gorsel olarak kaymis gorunuyordu.
*/
.select2-container--default .select2-selection--single {
  height: calc(1.5em + 0.94rem + 2px);
  padding: 0.47rem 0.75rem;
  border: 1px solid #ced4da;
  border-radius: 0.25rem;
  background-color: #fff;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.5;
  padding-left: 0;
  padding-right: 1.5rem;
  color: #495057;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100%;
  right: 0.5rem;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: #a6b0cf;
  box-shadow: 0 0 0 0.15rem rgba(85, 110, 230, 0.25);
}

/* Tablo icindeki kucuk seciciler: form-select-sm ile ayni olcu. */
.select2-container--default .secici-sm.select2-selection--single {
  height: calc(1.5em + 0.5rem + 2px);
  padding: 0.25rem 0.5rem;
  font-size: 0.8125rem;
}

.select2-container--default .secici-sm .select2-selection__rendered {
  line-height: 1.5;
}

.select2-dropdown.secici-sm {
  font-size: 0.8125rem;
}

/* Acilir panel tablo satirlarinin altinda kalmasin. */
.select2-container--open {
  z-index: 1056;
}

/* Gecersiz isaretlenen zorunlu secicide kenarlik kirmizi kalsin. */
.is-invalid + .select2-container--default .select2-selection--single {
  border-color: #f46a6a;
}

/*
  Ozet kartlari ayni yukseklikte dursun.

  Kartlarin ici farkli satir sayisinda: "Hasilat"in altinda islem sayisi var, "Litre"nin yok. Bootstrap
  kartlari icerik kadar uzattigi icin ayni satirdaki kutular farkli boyda goruluyordu (18.09.2026, mobil).
  Kart, sutunun tamamini kaplar; kart altindaki bosluk (--bs-card-group-margin) disarida birakilir.
*/
/* ⚠️ "​.row >" yazilmaz: panelde kartlar #gunOzeti (display:contents) icinde duruyor ve secici tutmuyordu. */
[class*="col-"] > .card.mini-stats-wid {
  height: calc(100% - var(--bs-card-group-margin, 24px));
}

/*
  Listelerdeki "Yakit" sutunu sabit genislikte.

  Sutun icerik kadar genisliyordu: "LPG" olan satirla "Kursunsuz Benzin 95 Oktan" olan satir arasinda
  tablodan tabloya farkli genislik cikiyor, ekranlar birbirini tutmuyordu (kullanici, 18.09.2026).
  Uzun metin sutunu genisletmez, kendi icinde alt satira gecer.
*/
.sutun-yakit {
  width: 130px;
}

/* Yakit + pompaci + tabanca birlikte duran sutun. */
.sutun-yakit-genis {
  width: 215px;
}

/* Uzun ad sutunu genisletmeyip kendi icinde alt satira gecsin. */
td.sutun-yakit,
td.sutun-yakit-genis,
td.sutun-yakit .badge,
td.sutun-yakit-genis .badge {
  white-space: normal;
}

/* Rozet metin kadar degil sutun kadar genis: satirlar alt alta ayni hizada dursun. */
td.sutun-yakit .badge,
td.sutun-yakit-genis .badge {
  display: block;
  width: 100%;
}

/*
  Plaka satirin en cok okunan bilgisi; calisan musterinin soyledigi plakayi bir bakista buluyor.
  Ayni satirdaki diger yazilardan bir tik buyuk (kullanici, 18.09.2026).
*/
.plaka {
  font-size: 1.15em;
}


/*
  Kart indirimi: dagitim sirketine fatura edilecek tutar. Duz yesil yazi satir icinde
  kayboluyordu; her listede rozetle vurgulanir (kullanici, 22.09.2026).
  Renkler WCAG AA: #0f5c3f / #d8efe4 ~ 7:1.
*/
.indirim {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 0.25rem;
  background-color: #d8efe4;
  color: #0f5c3f;
  font-weight: 600;
  white-space: nowrap;
}

/* Elle endeks sutunu: iki kucuk alan alt alta; daraldiginda sayilar okunmaz olmasin. */
.sutun-elle-endeks {
  min-width: 140px;
}

/*
  Rapor yazdirma: ekranda duran menu, ust cubuk ve dugmeler kagida basilmamali.
  Delil niteligindeki raporlar cikti aliniyor (kullanici, 23.09.2026).
*/
/* Rapor yazdirma basligi: ekranda gizli (_PaylasMenusu). */
.rapor-baslik { display: none; }
.rapor-baslik-ad { font-size: 16pt; font-weight: 700; }

@media print {
  /* Rapor yazdirma (SABIT-DESENLER "Rapor yazdirma"): baslik gorunur; suzgec formu, input, dugme, sekme ve sayfa
     basligi basilmaz; rapor govdesi tam genislik; tablolar kesilmez. */
  .rapor-baslik { display: block !important; margin-bottom: 4mm; }
  .page-content form[method="get"],
  .page-content .btn,
  .page-content .nav-tabs,
  .page-content input,
  .page-content select,
  .page-title-box,
  .list-filter {
    display: none !important;
  }
  .rapor-govde { flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important; }
  .table-responsive { overflow: visible !important; }

  .yazdirma-disi,
  .vertical-menu,
  #page-topbar,
  .navbar-header,
  footer,
  .right-bar {
    display: none !important;
  }

  .main-content,
  .page-content {
    margin: 0 !important;
    padding: 0 !important;
  }

  .card {
    border: none !important;
    box-shadow: none !important;
  }
}

/*
  Destek oturumu seridi: sifresiz acilan oturumda her sayfada duran uyari.
  Renk WCAG AA: koyu metin acik sari uzerinde.
*/
.destek-seridi {
  background-color: #ffe08a;
  color: #3d2c00;
  z-index: 1050;
  font-size: 0.875rem;
  border-top: 2px solid #b8860b;
}

/*
  ------------------------------------------------------------------
  IKON BOYUTLARI
  ------------------------------------------------------------------
  Temanin ikonlari govde yazisina gore olcekleniyordu: tabloda yazi
  0.8125rem, ikon da onun kadar -- yaklasik 13px. Kasadaki ekran uzaktan
  okunuyor ve dokunmatik; kalem ile cop kutusu birbirinden ayirt
  edilemiyordu (kullanici, 23.09.2026).

  Kural TEK YERDE ve GORECELI (em): her ikon icinde bulundugu ogeye gore
  buyur, dugme icindeki dugmeyle, tablodaki satirla orantili kalsin.
  Gorunumlere tek tek font-size yazmak otuz ekranda bakim demekti.
*/
.bx {
  font-size: 1.3em;
  vertical-align: -0.125em;
}

/* Yalniz ikon tasiyan kucuk dugmeler: glif kutuyu doldursun, bosluk degil. */
.btn-sm .bx {
  font-size: 1.4em;
}

.btn .bx {
  line-height: 1;
}

/*
  Yan menu: 1.25rem idi. Yazi 13-14px oldugu icin ikon onun yaninda kayboluyordu.
  Renk de degisti: temanin #6a7187 tonu koyu menude ~2.3:1 kaliyordu, WCAG metin disi
  ogeler icin 3:1 istiyor. Yeni ton menü yazisiyla ayni ailede ve ~5:1.
*/
#sidebar-menu ul li a i {
  min-width: 2rem;
  font-size: 1.5rem;
  line-height: 1.5rem;
  color: #a6b0cf;
}

#sidebar-menu ul li a:hover i,
#sidebar-menu ul li.mm-active > a i,
#sidebar-menu ul li a.active i {
  color: #fff;
}

/* Ust cubuk: bildirim zili, kullanici ve istasyon secici. */
.noti-icon i,
.header-item .bx {
  font-size: 26px;
}

/* Bos durum ve uyari kutularindaki buyuk ikonlar zaten font-size-24 ile geliyor;
   yukaridaki 1.3em onlari da bir tik buyutuyor, ayrica kural gerekmiyor. */

/*
  Temanin kendi baslik kurali da buyuk harfe ceviriyordu (.page-title-box h4).
  Ayni Turkce sorunu: "Karti" -> "KARTI" yerine "KARTI". Kapatildi.
*/
.page-title-box h4 {
  text-transform: none;
}

/*
  ------------------------------------------------------------------
  LISTE SUZGEC PANELI
  ------------------------------------------------------------------
  ERP'de her liste solda sekmeli bir suzgecle aranir (stok, cari, fatura,
  irsaliye). Panel uzun listede sayfayla birlikte kaymasin: ekranda kalir,
  kullanici asagi kaydirip sonuclara bakarken "Ara" dugmesi elinin altinda.
*/
@media (min-width: 992px) {
  .suzgec-paneli {
    position: sticky;
    top: 80px;
    max-height: calc(100vh - 100px);
    overflow-y: auto;
  }
}

/* Sol suzgec sutunu her ekranda AYNI genislikte (kullanici 06.10.2026: "biri normal, biri dar, biri genis").
   Sutun sinifi: sol "col-lg-auto suzgec-sutunu", sag "col-lg sonuc-sutunu" — genislik yalniz burada. */
@media (min-width: 992px) {
  .suzgec-sutunu { width: 320px; }
  .sonuc-sutunu { min-width: 0; }
}
/* Panel gizli (suzgec-gizle.js): sonuc sutunu tam genislige yayilir. */
body.suzgec-gizli .suzgec-sutunu { display: none !important; }

/* Suzgec alanlari dar sutunda sigsin: etiket ustte, kutu tam genislikte. */
.suzgec-paneli .form-label {
  margin-bottom: 0.15rem;
  font-size: 0.8125rem;
}

.suzgec-paneli .form-control,
.suzgec-paneli .form-select {
  margin-bottom: 0.5rem;
}

/* Cari Isle / Fis: tek dugme, degisen yazi — iki durumda ayni genislik (_FisDugmesi). */
.fis-dugmesi > .btn:first-child { min-width: 12.5em; }

/* Menu suzgeci: dar (katlanmis) menude gizli. */
body.vertical-collpsed .menu-suzgec { display: none; }

/* Zorunlu alan: basligin yaninda kirmizi * (zorunlu-alan.js). */
label.zorunlu::after { content: " *"; color: var(--bs-danger); font-weight: 600; }

/* Dogrulama mesaji alanin altinda kendi satirinda (bir sonraki basligin yanina dusmesin). */
.field-validation-error { display: block; margin-top: .25rem; }
.input-validation-error, .input-validation-error + .select2 .select2-selection { border-color: var(--bs-danger) !important; }


/* Ust cubuk sube secicisi: mobilde de gorunur, ad kisaltilir (04.10.2026). */
.sube-adi { max-width: 7.5rem; }
@media (min-width: 768px) { .sube-adi { max-width: 16rem; } }

/* Ozet kartlari: mobilde sag ustteki ikon gizlenir, rakama yer kalir (04.10.2026). */
@media (max-width: 767.98px) { .mini-stats-wid .mini-stat-icon { display: none !important; } }

/* Ayarlanabilir sutunlu tablo (tablo-sutunlari.js, 04.10.2026): tablo daralmaz, sayfa saga kayar. */
.tablo-genis th, .tablo-genis td { white-space: nowrap; }
.sutun-baslik { position: relative; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.sutun-tutamak { position: absolute; top: 0; right: -3px; width: 7px; height: 100%; cursor: col-resize; z-index: 2; }
.sutun-tutamak::after { content: ""; position: absolute; top: 20%; bottom: 20%; left: 3px; width: 1px; background: #b9bdcc; }
.sutun-tutamak:hover { background: rgba(85, 110, 230, .35); }
.sutun-tutamak:hover::after { background: #556ee6; }
.sutun-birak { box-shadow: inset 3px 0 0 #556ee6; }
.sutun-menu { display: none; min-width: 240px; background: var(--bs-body-bg, #fff); border: 1px solid var(--bs-border-color, #e9e9ef); border-radius: .375rem; font-size: .875rem; }
.sutun-menu.acik { display: block; }
@media print { .sutun-dugme, .sutun-tutamak { display: none !important; } }

/* Cari arama motoru (_CariAramaMotoru, 04.10.2026): sonuc listesi ve alan secimi kutunun altinda acilir. */
.cari-arama-sonuc { position: absolute; left: 0; right: 0; top: 100%; z-index: 1060; max-height: 320px; overflow-y: auto; }
.cari-arama-alanlar { position: absolute; right: 0; top: 100%; z-index: 1061; min-width: 200px; background: var(--bs-body-bg, #fff); }

/*
  Ornek metin (placeholder) asil degerden ayirt edilsin (kullanici 08.10.2026: "placeholder ile doldurulan yazi
  birbirinden ayirt edilemiyor"). Program geneli: soluk ve italik. Tema rengini ezmek icin !important.
*/
.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: #b9bec7 !important;
  font-style: italic;
  opacity: 1;
}

/* Daraltilmis menudeki marka rozeti (logo-sm): "B" harfi, tema ana rengi (kullanici 08.10.2026). */
.logo-rozet {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--bs-primary);
  color: #fff;
  font-weight: 700;
  font-size: 18px;
  line-height: 1;
  letter-spacing: 0;
}

/* Favorileri Duzenle (kullanici 09.10.2026): agac ve liste kaydirilir; surukle hedefi ve secim belirgin. */
/* Tema menu basligini tiklanamaz yapar (.menu-title pointer-events: none): Favorileri Duzenle kalemi baslikta. */
[data-favori-baslik] a { pointer-events: auto; cursor: pointer; }
.fav-agac, .fav-liste { max-height: 55vh; overflow: auto; min-height: 12rem; }
.fav-liste { border: 1px dashed var(--bs-border-color); border-radius: .25rem; padding: .25rem; }
.fav-satir { cursor: grab; border-radius: .25rem; }
.fav-satir > div:hover { background: var(--bs-light); }
.fav-secili > div:first-child { background: rgba(85, 110, 230, .15); }
.fav-hedef > div:first-child { outline: 2px dashed #556ee6; }

/* Tablo icindeki uc nokta menusu (_SatirIslemleri): table-responsive kaydirma kutusu acik menuyu kirpiyordu (Firmalar, 11.10.2026).
   Menu acikken kutu tasmaya izin verir. Sabit konum (popper "fixed") olmaz: tema .dropdown-menu.show'a top:100% !important veriyor. */
.table-responsive:has(.dropdown-menu.show) {
    overflow: visible;
}
