/* ============================================================
   BILDIRIMLERIM  —  /bildirimler  (gorev 7bc93b31)

   Panel tasarim dilinin (pn*) ustune oturur; renkler --pn* belirtecleri
   uzerinden gelir, boylece acik tema tek yerden doner. Bu dosyadaki
   "bl" onekli sinifler yalnizca bildirim sayfasina aittir.

   Satir izgarasi SABIT bes sutun: serit · tur ikonu · kimlik · eylem · rozet.
   Son iki sutun okunmus satirlarda da BOS birakilir; aksi halde baslik
   kolonu 30px oynuyor ve uc nokta satirdan satira kayiyor.
   ============================================================ */

/* ---- okunmamis rengi ----
   Panelin --pnIndigo tonu (#5C61D6) kart uzerinde fazla parlakti; bildirim
   sayfasi paletin mor ailesini kullanir. Acik temada ayni mor, zemin ve
   cerceve saydamligi duser. */
body{--blMor:#343891;--blMorInk:#9FA3F0;
  --blMorZemin:rgba(52,56,145,.30);--blMorCizgi:rgba(52,56,145,.70);
  /* PENCERE KABUGU: tasarimda pencereler sayfadan ayri bir kabuk. Govde
     zemini, ondan bir ton KOYU baslik seridi, belirgin dis cerceve (panelin
     --pnLine'i pencere kenari icin fazla soluk kaliyor) ve genis golge. */
  --blPencere:#20212B;--blPencereBas:#1C1D26;--blPencereCizgi:#4E4F5C;
  --blPencereGolge:0 30px 70px rgba(0,0,0,.5);
  /* Filtre kutusu: tasarimda 44px'lik sade bir kutu. Sitenin .formControl'u
     (15px kose, 2px cerceve, dolu ikon kutusu) bu olcuyu tasimiyor. */
  --blGirdi:#1B1C26;--blGirdiCizgi:#333444}
body.light{--blMorInk:#343891;
  --blMorZemin:rgba(52,56,145,.10);--blMorCizgi:rgba(52,56,145,.34);
  --blPencere:#FFFFFF;--blPencereBas:#F5F4EE;--blPencereCizgi:#C7C5BC;
  --blPencereGolge:0 24px 56px rgba(31,30,29,.14);
  --blGirdi:#F5F4EE;--blGirdiCizgi:#E3E1D9}

/* ---- baslik ---- */
.blBasAd{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.blSayac{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 8px;
  border-radius:999px;background:var(--blMorZemin);border:1px solid var(--blMorCizgi);
  font-size:10.5px;font-weight:800;color:var(--blMorInk);white-space:nowrap}
.blSayac .nk{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}
.blSayac.gizli{display:none}
.pnBasEylem .pnBtn{height:34px;padding:0 12px;font-size:11.5px}
.pnBasEylem .pnBtn svg{flex:none;display:block}

/* ---- filtre satiri ----
   Panel filtresi dort kutu; burada besinci hucre "Yalniz okunmamis"
   anahtari. Anahtar icerik boyunda kalir (auto sutun). */
/* Panel dili sayfa govdesinde <style> ile basiliyor, bu dosya ise head'de:
   ayni ozgullukte panelinki kazanirdi. Iki sinif birlikte yazilip ustte tutulur. */
.pnFiltre.blFiltre{grid-template-columns:minmax(170px,1.7fr) repeat(3,minmax(115px,1fr)) auto}
/* ---- filtre kutulari ----
   Sitenin .formControl'u 15px kose + 2px cerceve + sagda DOLU 40x39 ikon
   kutusu basiyor; tasarimda 44px'lik sade bir kutu ve icinde duran, zeminsiz
   bir ikon var. Kural yalnizca .blFiltre icinde gecerli, sitenin diger
   formlari degismez. Yarıçap sitede !important oldugu icin burada da sart. */
.blFiltre .formGroup{gap:0;justify-content:center}
.blFiltre .formControl{height:44px;padding:0 12px!important;border-radius:10px!important;
  border:1px solid var(--blGirdiCizgi);background:var(--blGirdi);color:var(--pnInk);
  font-size:12.5px;font-weight:500;box-shadow:none}
.blFiltre .formControl::placeholder{color:var(--pnDim);font-weight:500}
.blFiltre .formControl:focus{background:var(--blGirdi);border-color:var(--pnDim);
  box-shadow:none;color:var(--pnInk)}
/* Acik temada sitenin `body.light .formGroup .formControl` kurali (0,3,0)
   yukarıdakini (0,2,0) eziyor: kutu beyaza, cerceve #bdbdbd'ye doner.
   Ayni ozgullukte yeniden yaziliyor. */
body.light .blFiltre .formControl,
body.light .blFiltre .formControl:focus{background:var(--blGirdi);
  border-color:var(--blGirdiCizgi);color:var(--pnInk)}
body.light .blFiltre .formControl:focus{border-color:var(--pnDim)}
.blFiltre .formGroup.withIcon .formControl{padding-right:38px!important}
/* ikon: dolu kutu degil, kutunun icinde duran sade sembol */
.blFiltre .formGroup.withIcon .icon{width:auto;height:auto;top:50%!important;bottom:auto;
  right:12px;transform:translateY(-50%);background:transparent;border-radius:0;
  font-size:14px;color:var(--pnGreen);pointer-events:auto}
body.light .blFiltre .formGroup.withIcon .icon{background:transparent}
/* arama kutusunun buyuteci tasarimda notr, tarih ikonlari accent */
.blFiltre .formGroup:first-child .icon{color:var(--pnDim)}
.blFiltre .formGroup.withIcon .icon.iconCancel{color:var(--pnDim);cursor:pointer}
.blFiltre .formGroup.withIcon .icon.iconCancel:hover{color:var(--pnRed)}

.blOkunmamis{display:flex;align-items:center;gap:9px;padding:0 13px;cursor:pointer;
  white-space:nowrap;border-radius:9px;background:var(--pnCard);
  border:1px solid var(--pnLine);user-select:none}
.blOkunmamis input{position:absolute;opacity:0;width:0;height:0}
/* display:block SART — ayarlar penceresinde anahtar <label> icinde duruyor,
   inline kalirsa genislik/yukseklik tutmuyor ve ince bir cizgiye donuyor. */
.blAnahtar{display:block;flex:none;position:relative;width:34px;height:19px;border-radius:999px;
  background:var(--pnCard2);border:1px solid var(--pnLine);transition:background .15s,border-color .15s}
.blAnahtar::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;
  border-radius:50%;background:var(--pnDim);transition:left .15s,background .15s}
.blOkunmamis span{font-size:12px;font-weight:750;color:var(--pnDim)}
.blOkunmamis input:checked ~ .blAnahtar{background:var(--pnGreen);border-color:var(--pnGreen)}
.blOkunmamis input:checked ~ .blAnahtar::after{left:16px;background:var(--pnGreenInk)}
.blOkunmamis:has(input:checked){background:rgba(128,241,177,.10);border-color:rgba(128,241,177,.40)}
.blOkunmamis:has(input:checked) span{color:var(--pnGreen)}
.blOkunmamis input:focus-visible ~ .blAnahtar{outline:2px solid var(--pnGreen);outline-offset:2px}

/* ---- select2 kabugu ----
   Eklenti <select>'i kendi kabuguyla degistiriyor; olculeri sinifla veriyoruz
   (selectionCssClass/dropdownCssClass). Acilir liste GOVDEYE ekleniyor, bu
   yuzden .blAcilir sayfa kapsaminin disindan hedeflenir. */
.blFiltre .select2-container{width:100%!important;display:block}
.select2-container--default .blSecim.select2-selection--single{height:44px;border-radius:10px;
  background:var(--blGirdi);border:1px solid var(--blGirdiCizgi);outline:0;transition:border-color .15s}
.select2-container--default .blSecim .select2-selection__rendered{line-height:42px;
  padding:0 34px 0 12px;font-size:12.5px;font-weight:500;color:var(--pnInk)}
/* select2.min.css icinde sitenin `body.light ...` ozellestirmeleri var (0,3,1)
   ve yukaridaki kurallari (0,3,0) eziyor: acik temada kutu beyaza, cerceve
   #bdbdbd'ye doner. Ayni kurallar body.light ile yeniden yaziliyor. */
body.light .select2-container--default .blSecim.select2-selection--single{
  background:var(--blGirdi);border:1px solid var(--blGirdiCizgi)}
body.light .select2-container--default.select2-container--open .blSecim.select2-selection--single,
body.light .select2-container--default.select2-container--focus .blSecim.select2-selection--single{
  border-color:var(--pnDim)}
body.light .select2-container--default .blSecim .select2-selection__rendered{color:var(--pnInk)}
.select2-container--default.select2-container--open .blSecim.select2-selection--single,
.select2-container--default.select2-container--focus .blSecim.select2-selection--single{border-color:var(--pnDim)}
.select2-container--default .blSecim .select2-selection__arrow{height:42px;width:32px;right:0}
.select2-container--default .blSecim .select2-selection__arrow b{border:0;width:7px;height:7px;
  margin:-6px 0 0 -4px;border-right:2px solid var(--pnDim);border-bottom:2px solid var(--pnDim);
  transform:rotate(45deg);transition:transform .15s}
/* Acik durumda select2'nin KENDI kurali ok icin border-width/color yaziyor
   (0 4px 5px 4px, #888) ve yalniz transform vermek yetmiyor: isaret bozulup
   yana bakan dolu bir ucgene donuyordu. Kenarlik burada bastan tanimlanir. */
.select2-container--default.select2-container--open .blSecim .select2-selection__arrow b{
  border:0;width:7px;height:7px;
  border-right:2px solid var(--pnDim);border-bottom:2px solid var(--pnDim);
  transform:rotate(-135deg);margin:-2px 0 0 -4px}
.blAcilir.select2-dropdown{background:var(--blPencere);border:1px solid var(--blPencereCizgi);
  border-radius:10px;box-shadow:var(--blPencereGolge);margin-top:4px;padding:5px;overflow:hidden;z-index:30}
.blAcilir.select2-dropdown--above{margin-top:-4px}
.blAcilir .select2-results>.select2-results__options{max-height:260px;
  scrollbar-width:thin;scrollbar-color:var(--blPencereCizgi) transparent}
.blAcilir .select2-results__option{padding:9px 10px;border-radius:7px;font-size:12.5px;
  font-weight:500;color:var(--pnDim)}
.blAcilir .select2-results__option--highlighted.select2-results__option--selectable{
  background:var(--pnCard2);color:var(--pnInk)}
.blAcilir .select2-results__option--selected{background:rgba(128,241,177,.12);
  color:var(--pnGreen);font-weight:700}
.blAcilir .select2-results__option--selected.select2-results__option--highlighted{
  background:rgba(128,241,177,.18);color:var(--pnGreen)}

/* ---- flatpickr takvimi ----
   Takvim govdeye ekleniyor, sayfa kapsamina girmiyor; kendi sinifiyla
   (blTakvim, onReady'de ekleniyor) hedefleniyor. Eklentinin dark.css'i
   YUKLENMIYOR: sabit renkli ve acik temada yanlis duruyor. */
.flatpickr-calendar.blTakvim{background:var(--blPencere);border:1px solid var(--blPencereCizgi);
  border-radius:12px;box-shadow:var(--blPencereGolge);padding:4px}
.flatpickr-calendar.blTakvim.arrowTop:before,.flatpickr-calendar.blTakvim.arrowTop:after,
.flatpickr-calendar.blTakvim.arrowBottom:before,.flatpickr-calendar.blTakvim.arrowBottom:after{display:none}
.blTakvim .flatpickr-months,.blTakvim .flatpickr-month,.blTakvim .flatpickr-innerContainer,
.blTakvim .flatpickr-rContainer,.blTakvim .flatpickr-weekdays,.blTakvim .flatpickr-days,
.blTakvim span.flatpickr-weekday{background:transparent}
.blTakvim .flatpickr-months .flatpickr-month,.blTakvim .flatpickr-current-month input.cur-year,
.blTakvim .flatpickr-current-month .flatpickr-monthDropdown-months{color:var(--pnInk);fill:var(--pnInk)}
.blTakvim .flatpickr-current-month .flatpickr-monthDropdown-months option{background:var(--blPencere);color:var(--pnDim)}
.blTakvim .flatpickr-months .flatpickr-prev-month svg,
.blTakvim .flatpickr-months .flatpickr-next-month svg{fill:var(--pnDim)}
.blTakvim .flatpickr-months .flatpickr-prev-month:hover svg,
.blTakvim .flatpickr-months .flatpickr-next-month:hover svg{fill:var(--pnGreen)}
.blTakvim span.flatpickr-weekday{color:var(--pnDimmer);font-size:10.5px;font-weight:800;text-transform:uppercase}
.blTakvim .flatpickr-day{color:var(--pnDim);border-radius:8px;border-color:transparent;font-weight:600}
.blTakvim .flatpickr-day:hover{background:var(--pnCard2);border-color:transparent;color:var(--pnInk)}
.blTakvim .flatpickr-day.today{border-color:var(--blPencereCizgi)}
.blTakvim .flatpickr-day.selected,.blTakvim .flatpickr-day.selected:hover,
.blTakvim .flatpickr-day.startRange,.blTakvim .flatpickr-day.endRange{
  background:var(--pnGreen);border-color:var(--pnGreen);color:var(--pnGreenInk)}
.blTakvim .flatpickr-day.prevMonthDay,.blTakvim .flatpickr-day.nextMonthDay{color:var(--pnDimmer);opacity:.55}
.blTakvim .flatpickr-day.flatpickr-disabled,.blTakvim .flatpickr-day.flatpickr-disabled:hover{
  color:var(--pnDimmer);opacity:.35;background:transparent}
.blTakvim .numInputWrapper span{border-color:var(--blGirdiCizgi)}
.blTakvim .numInputWrapper span:hover{background:var(--pnCard2)}
.blTakvim .numInputWrapper span.arrowUp:after{border-bottom-color:var(--pnDim)}
.blTakvim .numInputWrapper span.arrowDown:after{border-top-color:var(--pnDim)}

/* ---- kategori sekmeleri (yalniz center_v2 acikken) ----
   Panel sekmesi alt cizgili; bildirimde pill. Yatayda kaydirilir,
   kaydirma cubugu gizlenir. */
.blSekmeler{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;margin-bottom:11px;
  border-bottom:0;scrollbar-width:none}
.blSekmeler::-webkit-scrollbar{display:none}
.blSekme{flex:none;display:flex;align-items:center;gap:7px;height:32px;padding:0 13px;
  border-radius:9px;background:var(--pnCard);border:1px solid var(--pnLine);
  font:inherit;font-size:12px;font-weight:600;color:var(--pnDim);white-space:nowrap;cursor:pointer}
.blSekme:hover{background:var(--pnCard2);color:var(--pnInk)}
.blSekme.aktif{background:rgba(128,241,177,.12);border-color:rgba(128,241,177,.34);
  color:var(--pnGreen);font-weight:750}
.blSekme .nk{width:9px;height:9px;border-radius:50%;flex:none}

/* ---- liste ---- */
.blListe{background:var(--pnCard2);border:1px solid var(--pnLine);border-radius:13px;overflow:hidden}
.blSatir{display:grid;grid-template-columns:3px 46px minmax(0,1fr) 30px 58px;gap:12px;
  align-items:center;padding:0 14px 0 0;border-bottom:1px solid var(--pnLine);
  cursor:pointer;color:inherit;transition:background .14s}
.blSatir:last-child{border-bottom:0}
.blSatir:hover{background:var(--pnCard)}
.blSerit{width:3px;align-self:stretch;background:transparent}
.blSatir.yeni .blSerit{background:var(--blMor)}

/* tur ikonu: renk sinifta, govde SVG olarak gelir (FontAwesome subset'e
   yeni glif eklemek gerekmesin diye satir ici SVG secildi) */
.blIk{--blT:var(--pnDim);--blTz:var(--pnCard);
  width:34px;height:34px;margin-left:12px;border-radius:10px;background:var(--blTz);
  display:grid;place-items:center;color:var(--blT);flex:none}
.blIk svg{display:block;width:16px;height:16px}
.blIk.order{--blT:#80F1B1;--blTz:rgba(128,241,177,.12)}
.blIk.pay{--blT:#5C9CD6;--blTz:rgba(92,156,214,.14)}
.blIk.market{--blT:#C9A227;--blTz:rgba(232,185,58,.13)}
.blIk.bid{--blT:#D68A5C;--blTz:rgba(214,138,92,.13)}
.blIk.sec{--blT:#E07A5F;--blTz:rgba(224,122,95,.13)}
.blIk.review{--blT:#B08AD6;--blTz:rgba(176,138,214,.14)}
.blIk.promo{--blT:#5FBFA8;--blTz:rgba(95,191,168,.13)}
/* Acik temada ayni aile, koyulastirilmis tonlar: koyu zeminde okunan
   parlak renkler beyaz uzerinde AA altinda kaliyor. */
body.light .blIk.order{--blT:#137E4C;--blTz:rgba(19,126,76,.09)}
body.light .blIk.pay{--blT:#2F6FA8;--blTz:rgba(47,111,168,.10)}
body.light .blIk.market{--blT:#8A6D12;--blTz:rgba(138,109,18,.11)}
body.light .blIk.bid{--blT:#9C5A2C;--blTz:rgba(156,90,44,.10)}
body.light .blIk.sec{--blT:#B3462C;--blTz:rgba(179,70,44,.10)}
body.light .blIk.review{--blT:#6D4A99;--blTz:rgba(109,74,153,.10)}
body.light .blIk.promo{--blT:#2E7F6C;--blTz:rgba(46,127,108,.10)}

.blAd{min-width:0;padding:11px 0;display:flex;flex-direction:column;gap:3px}
.blAd b{font-size:12.5px;font-weight:600;line-height:1.35;color:var(--pnDim);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blSatir.yeni .blAd b{font-weight:750;color:var(--pnInk)}
.blAd small{font-size:10.5px;color:var(--pnDimmer)}
.blAd small span{cursor:help}

/* satir ici eylem: yalnizca "okundu isaretle". Hucre okunmus satirlarda da
   yerinde durur, yoksa baslik kolonu oynardi. */
.blEylem{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .14s}
.blSatir:hover .blEylem{opacity:1}
.blEylem button{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;
  background:transparent;border:0;color:var(--pnGreen);cursor:pointer;padding:0}
.blEylem button:hover{background:var(--pnCard2)}
.blEylem button svg{display:block;width:12px;height:12px}
.blEylem button:focus-visible{outline:2px solid var(--pnGreen);outline-offset:1px}

.blRozetYuva{text-align:right}
.blYeni{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;
  border-radius:999px;border:1px solid var(--blMorCizgi);background:var(--blMorZemin);
  font-size:9.5px;font-weight:800;color:var(--blMorInk);white-space:nowrap}
.blYeni .nk{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none;
  animation:pnYanip 1.6s ease-in-out infinite}

/* ---- bos durumlar ----
   BULGU: "hic bildirim yok" ile "filtreye uyan yok" ayni ekrani gosteriyordu;
   filtre doluyken bile "Henuz bildirimin yok" yaziyordu. Ikisi ayri. */
.blBos{display:flex;flex-direction:column;align-items:center;gap:10px;padding:54px 24px;
  background:var(--pnCard2);border:1px solid var(--pnLine);border-radius:13px;text-align:center}
.blBos .ik{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;
  background:var(--pnCard);color:var(--pnDimmer)}
.blBos .ik svg{display:block;width:26px;height:26px}
.blBos b{font-size:14.5px;font-weight:750;color:var(--pnInk)}
.blBos p{max-width:400px;margin:0;font-size:12.5px;line-height:1.6;color:var(--pnDim)}

/* ---- yukleme iskeleti ----
   Satir izgarasi korunur; icerik gri bloklarla. Liste yerine gecer, boylece
   filtre degisiminde kart yuksekligi zıplamaz. */
.blIskeletSatir{display:grid;grid-template-columns:3px 46px minmax(0,1fr) auto;gap:12px;
  align-items:center;padding:0 14px 0 0;border-bottom:1px solid var(--pnLine)}
.blIskeletSatir:last-child{border-bottom:0}
.blIskeletSatir i{display:block;width:34px;height:34px;margin-left:12px;border-radius:10px;
  background:var(--pnCard)}
.blIskeletSatir div{min-width:0;padding:12px 0;display:flex;flex-direction:column;gap:7px}
.blIskeletSatir div span{display:block;height:11px;width:67%;border-radius:4px;background:var(--pnCard)}
.blIskeletSatir div span+span{height:9px;width:28%;opacity:.6}
.blIskeletSatir em{display:block;width:52px;height:18px;border-radius:999px;background:var(--pnCard);opacity:.6}
.blIskelet{animation:blNefes 1.2s ease-in-out infinite}
@keyframes blNefes{0%,100%{opacity:1}50%{opacity:.55}}

/* ---- pencere kabugu (detay + ayarlar ORTAK) ----
   Sitenin varsayilan modal kabugu sayfa zeminini kullaniyor ve baslik seridi
   govdeden ayrilmiyor; tasarimda pencere kendi kabugu olan bir yuzey. */
#notifyDetailModal .modal-content,
#notifySettingsModal .modal-content{background:var(--blPencere);
  border:1px solid var(--blPencereCizgi);border-radius:14px;overflow:hidden;
  box-shadow:var(--blPencereGolge)}
#notifyDetailModal .modal-header,
#notifySettingsModal .modal-header{background:var(--blPencereBas);
  border-bottom:1px solid var(--pnLine);gap:10px;align-items:center}
#notifyDetailModal .modal-header{padding:14px 18px}
#notifySettingsModal .modal-header{padding:15px 20px}
#notifyDetailModal .modal-title,#notifySettingsModal .modal-title{color:var(--pnInk)}
#notifyDetailModal .modal-body{padding:18px;display:flex;flex-direction:column;gap:14px}
#notifySettingsModal .modal-body{padding:16px 20px 20px}
/* Sitenin scrollAuto cubugu (kalin, parlak yesil) pencere icinde one cikip
   satirlarin onune geciyor. Tasarimda pencere ici kaydirma ongorulmemisti;
   turlerin hepsi listelendigi icin kaciniImaz, cubuk sessizlestirildi.
   Yalniz bu iki pencereye ozel; sitenin diger modallari degismez. */
#notifyDetailModal .modal-body,#notifySettingsModal .modal-body{
  scrollbar-width:thin;scrollbar-color:var(--blPencereCizgi) transparent}
#notifyDetailModal .modal-body::-webkit-scrollbar,
#notifySettingsModal .modal-body::-webkit-scrollbar{width:6px}
#notifyDetailModal .modal-body::-webkit-scrollbar-track,
#notifySettingsModal .modal-body::-webkit-scrollbar-track{background:transparent}
#notifyDetailModal .modal-body::-webkit-scrollbar-thumb,
#notifySettingsModal .modal-body::-webkit-scrollbar-thumb{background:var(--blPencereCizgi);
  border-radius:999px}
#notifyDetailModal .modal-body::-webkit-scrollbar-thumb:hover,
#notifySettingsModal .modal-body::-webkit-scrollbar-thumb:hover{background:var(--pnDim)}

/* Kapat: sitenin ciplak 20px carpisi yerine tasarimin 32px kutulu dugmesi.
   Gezinme dugmeleriyle ayni boyda durur. */
.blKapat{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;
  background:transparent;border:1px solid var(--blPencereCizgi);color:var(--pnDim);
  cursor:pointer;padding:0;opacity:1}
.blKapat:hover{color:var(--pnInk);background:var(--pnCard2)}
.blKapat svg{display:block;width:14px;height:14px}
.blKapat:focus-visible{outline:2px solid var(--pnGreen);outline-offset:1px}

/* ---- detay penceresi ---- */
#notifyDetailModal .modal-dialog{max-width:700px}
.blDetayBas{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.blDetayBas .blIk{margin-left:0}
.blDetayAd{min-width:0;display:flex;flex-direction:column;gap:2px}
.blDetayAd b{font-size:14.5px;font-weight:800;color:var(--pnInk);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blDetayAd small{font-size:11px;color:var(--pnDim)}
.blDetayAd small i{font-style:normal;color:var(--blPencereCizgi)}
/* gezinme: BULGU — pencerede onceki/sonraki yoktu, her bildirim icin
   listeye donup yeniden tiklamak gerekiyordu */
.blGez{flex:none;display:flex;align-items:center;gap:3px}
.blGez button{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;
  background:transparent;border:1px solid var(--pnLine);color:var(--pnDim);cursor:pointer;padding:0}
.blGez button:hover:not(:disabled){color:var(--pnInk);border-color:var(--pnDim)}
.blGez button:disabled{opacity:.35;cursor:default}
.blGez button svg{display:block;width:13px;height:13px}
.blGez .sayac{font-family:ui-monospace,Consolas,monospace;font-size:11px;color:var(--pnDimmer);
  padding:0 4px;font-variant-numeric:tabular-nums;white-space:nowrap}
/* gezinme ile kapat arasindaki dikey ayirici */
.blGez .ayrac{width:1px;height:18px;background:var(--pnLine);margin:0 5px;flex:none}
.blDetayMetin{font-size:13.5px;line-height:1.7;color:var(--pnDim)}
.blDetayMetin b,.blDetayMetin strong{color:var(--pnInk);font-weight:700}
.blDetayAlt{display:flex;align-items:center;justify-content:flex-end;gap:9px;
  padding-top:12px;border-top:1px solid var(--pnLine)}
.blDetayAlt .pnBtn{height:40px;padding:0 18px;font-size:12.5px;font-weight:800}

/* ---- bildirim ayarlari ----
   BULGU: 17 anahtar duz listeydi, adlar sistem dilindeydi. Artik KONU
   bazinda; bir anahtar grubun tum turlerini birlikte acar kapatir. */
#notifySettingsModal .modal-dialog{max-width:760px}
/* Baslik: sitenin .fs-5'i (20px) tasarimdaki 15px'ten buyuk kaliyor. */
#notifySettingsModal .modal-title{font-size:15px;font-weight:800;line-height:1.3}
.blAyarBas small{display:block;margin-top:2px;font-size:11.5px;color:var(--pnDim);line-height:1.45}
.blAyarBaslik{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:10px;align-items:end;
  padding-bottom:10px;border-bottom:1px solid var(--pnLine)}
.blAyarBaslik span{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:var(--pnDimmer)}
.blAyarBaslik span+span{text-align:center;letter-spacing:.06em}
.blAyarSat{display:grid;grid-template-columns:minmax(0,1fr) 74px;gap:10px;align-items:center;
  padding:12px 0;border-bottom:1px solid var(--pnLine)}
.blAyarSat:last-child{border-bottom:0}
.blAyarAd{display:flex;align-items:center;gap:11px;min-width:0}
.blAyarAd .blIk{width:32px;height:32px;margin-left:0;border-radius:9px}
.blAyarMetin{min-width:0;display:flex;flex-direction:column;gap:2px}
.blAyarMetin b{font-size:12.5px;font-weight:700;color:var(--pnInk)}
.blAyarMetin small{font-size:11px;line-height:1.45;color:var(--pnDimmer)}
.blAyarKutu{display:flex;align-items:center;justify-content:center;gap:6px}
.blAyarKutu label{display:block;margin:0;cursor:pointer}
.blAyarKutu input{position:absolute;opacity:0;width:0;height:0}
.blAyarKutu input:checked ~ .blAnahtar{background:var(--pnGreen);border-color:var(--pnGreen)}
.blAyarKutu input:checked ~ .blAnahtar::after{left:16px;background:var(--pnGreenInk)}
.blAyarKutu input:focus-visible ~ .blAnahtar{outline:2px solid var(--pnGreen);outline-offset:2px}
/* kilitli satir: guvenlik bildirimleri kapatilamaz */
.blAyarSat.kilit .blAnahtar{background:var(--pnCard);border-color:var(--pnLine);opacity:.5;cursor:not-allowed}
.blAyarSat.kilit .blAnahtar::after{left:16px;background:var(--pnDim)}
.blAyarSat.kilit .blKilit{flex:none;color:var(--pnDimmer);display:grid;place-items:center}
.blAyarSat.kilit .blKilit svg{display:block;width:12px;height:12px}
/* Alt gruplar (gorev 43e0d2ee): ana anahtarin altinda girintili, ana kapaliyken gizli. */
.blAyarAltlar{margin:-2px 0 0 43px;padding:0 0 4px 12px;border-left:2px solid var(--pnLine);border-bottom:1px solid var(--pnLine)}
.blAyarAltlar.kapali{display:none}
.blAyarAlt{padding:8px 0;border-bottom:1px dashed var(--pnLine)}
.blAyarAlt:last-child{border-bottom:0}
.blAyarAlt .blAyarMetin b{font-size:12px;font-weight:600}
@media (max-width:575px){ .blAyarAltlar{margin-left:10px} }
.blAyarNot{display:flex;align-items:center;gap:10px;margin-top:14px;padding:11px 13px;
  border-radius:10px;background:rgba(224,122,95,.07);border:1px solid rgba(224,122,95,.26)}
.blAyarNot .ik{flex:none;color:#E07A5F;display:grid;place-items:center}
body.light .blAyarNot .ik{color:#B3462C}
.blAyarNot .ik svg{display:block;width:16px;height:16px}
.blAyarNot p{flex:1;min-width:0;margin:0;font-size:11.5px;line-height:1.5;color:var(--pnDim)}
.blAyarNot a{color:var(--pnGreen);font-weight:700}

/* ---- mobil ----
   BULGU: ilk bildirime ~330px kaydirmak gerekiyordu (baslik + dugmeler +
   Telegram daveti + dort filtre kutusu alt alta). Filtreler katlanir;
   ustte yalnizca okunmamis anahtari ile "Filtre" dugmesi kalir. */
/* Mobil filtre serit: masaustunde hic gorunmez, anahtar filtre izgarasinin
   besinci hucresinde durur. */
.blFiltreUst{display:none}
.blFiltreAc{display:none}
/* Kirilim 991.98: Bootstrap'in modal-fullscreen-lg-down esigiyle ayni olsun,
   detay ve ayarlar penceresi tam sayfaya AYNI genislikte gecsin. */
@media(max-width:991.98px){
  .pnBasSir .pnBasEylem .pnBtn{width:36px;height:36px;padding:0;justify-content:center}
  .pnBasSir .pnBasEylem .pnBtn span{display:none}
  .blFiltreUst{display:flex;align-items:center;gap:8px;margin-bottom:9px}
  .blFiltreUst .blOkunmamis{flex:1;min-width:0;height:40px}
  .blFiltreAc{display:flex;align-items:center;gap:7px;flex:none;height:40px;padding:0 13px;
    border-radius:10px;background:var(--pnCard);border:1px solid var(--pnLine);
    font:inherit;font-size:12px;font-weight:750;color:var(--pnDim);cursor:pointer}
  .blFiltreAc.acik{background:rgba(128,241,177,.10);border-color:rgba(128,241,177,.40);color:var(--pnGreen)}
  .blFiltreAc svg{display:block;width:15px;height:15px;flex:none}
  .blFiltreAc .ok{width:12px;height:12px;transition:transform .15s}
  .blFiltreAc.acik .ok{transform:rotate(180deg)}
  .pnFiltre.blFiltre{grid-template-columns:1fr 1fr;gap:8px}
  .pnFiltre.blFiltre.kapali{display:none}
  .blFiltre .formGroup:first-child,.blFiltre .formGroup:nth-child(2){grid-column:1 / -1}
  /* anahtar ust satira tasindi */
  .blFiltre .blOkunmamis{display:none}
  /* dokunmatikte hover yok: okundu noktasi kalici */
  .blSatir{grid-template-columns:3px 44px minmax(0,1fr) 34px;gap:10px;padding:0 12px 0 0}
  .blEylem{opacity:1;justify-content:center}
  .blEylem button{width:32px;height:32px}
  .blRozetYuva{display:none}
  .blSatir.yeni .blAd b{color:var(--pnInk)}
  .blIk{width:32px;height:32px;border-radius:9px}
  /* detay ve ayarlar tam sayfa: kose yuvarlakligi ve golge kalkar */
  #notifyDetailModal .modal-dialog,#notifySettingsModal .modal-dialog{max-width:none}
  #notifyDetailModal .modal-content,#notifySettingsModal .modal-content{border:0;
    border-radius:0;box-shadow:none}
  #notifyDetailModal .modal-header{padding:12px 14px}
  #notifySettingsModal .modal-header{padding:12px 14px}
  #notifyDetailModal .modal-body{padding:14px}
  #notifySettingsModal .modal-body{padding:12px 14px 16px}
  .blDetayAlt{position:sticky;bottom:0;background:var(--pnCard);margin:0 -16px -16px;
    padding:12px 16px;border-top:1px solid var(--pnLine)}
  .blDetayAlt .pnBtn{width:100%;height:48px;justify-content:center;font-size:13.5px}
  .blAyarSat{grid-template-columns:minmax(0,1fr) 56px}
  .blAyarBaslik{grid-template-columns:minmax(0,1fr) 56px}
}

@media(min-width:1600px){
  .blAd b{font-size:14px}
  .blAd small{font-size:11.5px}
  .blSayac{font-size:11.5px;height:23px}
  .blYeni{font-size:10.5px;height:22px}
  .blSekme{font-size:13px}
  .blAyarMetin b{font-size:13.5px}
  .blAyarMetin small{font-size:12px}
  .blBos b{font-size:15.5px}
  .blBos p{font-size:13.5px}
  .blDetayMetin{font-size:14.5px}
}
