.es-pay{margin:0;padding:0;background:transparent;border:0;box-shadow:none;color:#1F2937}
.es-pay__top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 0 14px;padding:0 2px}
.es-pay__top h2{margin:0;font-size:1.05rem;font-weight:900;color:#1F2937;letter-spacing:-.02em}
.es-pay__lead{margin:2px 0 0;font-size:12px;color:#6B7280;line-height:1.4;font-weight:650}
.es-pay-feed{display:flex;flex-direction:column;gap:14px;max-height:none;overflow:visible;padding:0 0 8px}
.es-pay-card{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:1.35rem;overflow:hidden;border:1px solid rgba(229,231,235,.95);box-shadow:0 1px 2px rgba(15,23,42,.04),0 8px 22px rgba(15,23,42,.05);position:relative}
.es-pay-card--muhtar{border-color:#FBBF24;background:linear-gradient(165deg,#FFFBEB 0%,#FFFFFF 58%);box-shadow:0 0 0 1px rgba(217,119,6,.2),0 8px 22px rgba(217,119,6,.16)}
.es-pay-card--hoca{border-color:#34D399;background:linear-gradient(165deg,#ECFDF5 0%,#FFFFFF 58%);box-shadow:0 0 0 1px rgba(5,150,105,.18),0 8px 22px rgba(5,150,105,.12)}
.es-pay-card__muhtar{position:absolute;top:8px;left:8px;z-index:4;display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;font-size:11.5px;font-weight:750;line-height:1;color:#92400E;background:linear-gradient(135deg,#FFFBEB,#FDE68A);border:1px solid #FBBF24;box-shadow:0 0 0 1px rgba(217,119,6,.2),0 4px 12px rgba(217,119,6,.15);pointer-events:none}
.es-pay-card__hoca{position:absolute;top:8px;left:8px;z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;color:#065F46;background:linear-gradient(135deg,#ECFDF5,#6EE7B7);border:1px solid #34D399;pointer-events:none}
.es-pay-card__unvan{position:absolute;top:8px;left:8px;z-index:4;display:inline-flex;align-items:center;padding:6px 11px;border-radius:999px;font-size:11.5px;font-weight:750;line-height:1;pointer-events:none;border:1px solid transparent}
.es-pay-card__unvan--vat-gurme{color:#9A3412;background:linear-gradient(135deg,#FFF7ED,#FDBA74);border-color:#F97316}
.es-pay-card__unvan--vat-seyyah{color:#1E3A8A;background:linear-gradient(135deg,#EFF6FF,#93C5FD);border-color:#3B82F6}
.es-pay-card__unvan--vat-haber{color:#4A044E;background:linear-gradient(135deg,#FAE8FF,#E879F9);border-color:#C026D3}
.es-pay-card__unvan--vat-usta{color:#14532D;background:linear-gradient(135deg,#ECFDF5,#6EE7B7);border-color:#059669}
.es-pay-card__unvan--vat-iyilik{color:#7C2D12;background:linear-gradient(135deg,#FFF7ED,#FDE68A);border-color:#D97706}
.es-pay-card__head{display:flex;align-items:center;gap:10px;padding:12px 14px 8px}
.es-pay-card__who{display:flex;align-items:center;gap:10px;min-width:0;flex:1;text-decoration:none;color:inherit}
.es-pay-card__av{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#E5E7EB;flex:0 0 auto;display:grid;place-items:center;font-weight:850;font-size:14px;color:#1F2937}
.es-pay-card__av--ini{border:1px solid #E5E7EB}
.es-pay-card__meta-col{display:flex;flex-direction:column;gap:1px;min-width:0}
.es-pay-card__meta-col strong{font-size:14px;font-weight:850;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.es-pay-card__unvan-ad{margin-left:6px;font-size:11px;font-weight:750;color:#D97706}
.es-pay-card__meta-col small{font-size:11px;font-weight:650;color:#6B7280}
/* [EK GOREV 53 IS 8] Adin yaninda kompakt Takip et pili -- karoda degil,
   yalniz __head gorunurken ACIK goruntude (v3 grid ayrica gizler asagida). */
.es-pay-card__takip{flex:0 0 auto;border:1px solid #D97706;background:#fff;color:#D97706;font-weight:800;font-size:11px;padding:6px 10px;border-radius:999px;cursor:pointer;margin-left:4px}
.es-pay-card__takip[data-es-rel-action="unfollow"],.es-pay-card__takip[data-es-rel-action="unfollow_anon"]{border-color:#E5E7EB;background:#F9FAFB;color:#6B7280}
.es-pay-card__tur{flex:0 0 auto;font-size:10px;font-weight:800;color:#92400E;background:#FFF7ED;padding:4px 8px;border-radius:999px;white-space:nowrap}
.es-pay-card__koken{flex:0 0 auto;font-size:10px;font-weight:800;color:#334155;background:#F1F5F9;padding:4px 8px;border-radius:999px;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}
.es-pay-card__media{margin:0;aspect-ratio:1/1;background:#F3F4F6;overflow:hidden;position:relative}
.es-pay-card__media img,.es-pay-card__media video{width:100%;height:100%;object-fit:cover;display:block}
.es-pay-card__media--vid video:not([poster]){background:linear-gradient(135deg,#1F2937,#374151)}
.es-pay-card__vid-sure{position:absolute;right:8px;bottom:8px;background:rgba(15,23,42,.72);color:#fff;font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;pointer-events:none;line-height:1.5}
.es-pay-vid-ses{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.es-pay-vid-ses__b{appearance:none!important;-webkit-appearance:none!important;width:28px;height:28px;margin:0;border:0!important;background:transparent!important;box-shadow:none!important;font:700 18px/1 sans-serif;cursor:pointer;padding:0}
.es-pay-card__body{padding:12px 14px 14px}
.es-pay-card__body h3{margin:0 0 6px;font-size:15px;font-weight:850;color:#1F2937;line-height:1.3}
.es-pay-card__body p{margin:0 0 8px;font-size:14px;line-height:1.45;color:#374151}
.es-pay-sent{height:1px;margin:4px 0 0}
.es-pay-sent[data-state="loading"]{height:28px;border-radius:999px;background:linear-gradient(90deg,#F3F4F6,#E5E7EB,#F3F4F6);background-size:200% 100%;animation:es-pay-pulse 1.1s linear infinite}
@keyframes es-pay-pulse{to{background-position:-200% 0}}
.es-pay-more{display:none}
.es-pay-compose{margin:0 0 14px;border-radius:1.25rem;border:1px solid #E5E7EB;background:rgba(255,255,255,.88);overflow:hidden}
.es-pay-compose>summary{list-style:none;cursor:pointer;padding:14px 16px;font-weight:850;font-size:14px;color:#1F2937;display:flex;align-items:center;justify-content:space-between;gap:8px}
.es-pay-compose>summary::-webkit-details-marker{display:none}
.es-pay-compose>summary span{font-size:12px;font-weight:650;color:#6B7280}
.es-pay-compose[open]>summary{border-bottom:1px solid #F3F4F6}
/* GOREV 152 IS 3 + GOREV 153 IS 0 duzeltmesi, 30.08 -- M277/M290:
   Cekmece zaten Yayinlaya basinca acik geliyor, Paylas basligina bir
   daha basmak ikinci dokunustu (patron gerek yok dedi). Sarmalayici
   (details etiketi) SILINMEDI cunku es-paylas-form capasi hala ona
   guveniyor, icine METIN BASILMIYOR (summary bos). [DUZELTME, Eftal
   M290 -- height:0+overflow:hidden GIZLEMEYDI, patronun kuraliyla
   catisiyordu] Simdi yalniz dolgu/kenarlik sifirlaniyor -- icerik zaten
   bos oldugu icin dogal yukseklik kendiliginden sifira yakin kaliyor,
   ayrica bir yukseklik/overflow zorlamasi YOK. */
.es-pay-compose--tek>summary{padding:0;margin:0;border:0}
.es-pay-form{padding:14px 16px 16px}
.es-pay-form h3{display:none}
.es-pay-form .es-pay-row{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;font-size:13px;font-weight:700}
.es-pay-form input,.es-pay-form textarea,.es-pay-form select{padding:12px;border:1px solid #E5E7EB;border-radius:12px;font-weight:400;font-size:15px}
.es-pay-form input[type=file]{padding:14px;border:2px dashed #FDBA74;background:#FFFBEB}
.es-pay-form button[type=submit]{background:#1F2937;color:#fff;border:0;padding:12px 18px;border-radius:12px;font-weight:800;cursor:pointer;width:100%}
.es-mh__akis .es-pay{border:0;box-shadow:none;padding:0;background:transparent}
.es-mh__akis>.es-mh__sec-h,.es-mh__akis>.es-mh__hint{display:none!important}
.es-pay-ok{background:#dcfce7;color:#166534;padding:10px 12px;border-radius:8px;margin:0 0 12px}
.es-pay-kimlik{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px;font-weight:700;line-height:1.4}
.es-pay-err{background:#fee2e2;color:#991b1b;padding:10px 12px;border-radius:8px;margin:0 0 12px}
/* [GOREV 96 IS 2③] Basarili gonderimin onizlemesi — yuklenen dosya gorunur.
   Renk UYDURULMADI: hemen ustundeki .es-pay-ok seridiyle ayni zemin, metin
   de paletin --es-ok'u (0004-9004-es-tema.php). Yeni bir yesil tonu
   sisteme sokulmadi. */
.es-pay-onizleme{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:8px;border-radius:10px;background:#dcfce7;color:var(--es-ok,#166534)}
.es-pay-onizleme span{font-size:12px;font-weight:800}
.es-pay-onizleme__medya{width:96px;height:96px;object-fit:cover;border-radius:8px;display:block}
.es-pay-mah-uyari{margin:0 0 6px;padding:9px 12px;border-radius:8px;background:#fef3c7;color:#92400e;font-size:12px;font-weight:800;line-height:1.4}
select[name="mahalle_id"]:required:invalid{border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.18)}
.es-pay-rule{font-size:12px;color:#6B7280;background:#F9FAFB;border:1px solid #E5E7EB;padding:10px;border-radius:8px;margin:0 0 14px;line-height:1.4}
.es-sp-pay-mod{margin:0 0 24px;padding:16px;background:#fff7ed;border:2px solid #f26522;border-radius:14px}
.es-sp-pay-mod h2{margin:0 0 8px;font-size:18px;color:#9a3412}
.es-sp-pay-badge{display:inline-block;background:#f26522;color:#fff;font-size:12px;font-weight:800;padding:3px 8px;border-radius:999px;margin-left:6px;vertical-align:middle}
.es-sp-pay-item{padding:12px 0;border-bottom:1px solid #fed7aa}
.es-sp-pay-item img{max-width:120px;border-radius:8px;display:block;margin:8px 0}
.es-sp-pay-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.es-sp-pay-actions button{border:0;padding:10px 14px;border-radius:8px;font-weight:700;cursor:pointer}
.es-sp-pay-actions .ok{background:#15803d;color:#fff}
.es-sp-pay-actions .no{background:#b91c1c;color:#fff}
.es-pay-oy{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.es-pay-oy button{border:1px solid #E5E7EB;background:#F9FAFB;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer;font-size:12px;color:#1F2937}
/* [EK GOREV 53 IS 7, M86] Esnaf kartinin acilinca gosterdigi Ara/Yol
   tarifi/Magazayi kesfet -- YENI stil yazilmadi, es-pay-oy sinifinin
   ayni pil gorunumu <a> etiketine de uygulandi (paylasimda button,
   esnafta navigasyon linki -- eylem farkli, gorunum ayni, M81). */
.es-pay-oy a{border:1px solid #E5E7EB;background:#F9FAFB;border-radius:999px;padding:8px 12px;font-weight:700;font-size:12px;color:#1F2937;text-decoration:none;display:inline-flex;align-items:center}
.es-pay-oy button.es-pay-oy--bad{border-color:#FECACA;background:#FEF2F2;color:#991B1B}
.es-pay-oy button.is-done{opacity:.7;cursor:default}
.es-pay-oy--sikayet{margin-left:auto;border:1px solid #FDE68A!important;background:#FFFBEB!important;color:#92400E!important;border-radius:999px!important;width:34px;height:34px;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center;cursor:pointer}
/* [GOREV 263 Is 2, patron 01.09: "Sikayet ete bastigim zaman gene butonun
   altinda kaliyor"] 259 ile AYNI SINIF SORUN, farkli bilesen: sayfa
   dibine yapisan sheet (align-items:flex-end) ile alt cubuk
   (.es-mobil-nav, 1170-3679) ust uste biniyor. Cozum yine DOLGU, z-index
   yarisi YOK: kapsayiciya --es-mobil-nav-yukseklik + safe-area dolgusu.
   Sabit piksel yazilmadi; 1000-3390 .es-mh-sheet ve 0070-4399 atlas
   cekmecesi ile BIREBIR ayni hazir kalip (D6/M78). */
.es-ilan-sikayet-sheet{position:fixed;inset:0;z-index:1000030;display:flex;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.5);padding-bottom:calc(var(--es-mobil-nav-yukseklik,68px) + env(safe-area-inset-bottom,0px) + 6px);box-sizing:border-box}
.es-ilan-sikayet-sheet[hidden]{display:none}
.es-ilan-sikayet-sheet__panel{width:min(480px,100%);max-height:82vh;overflow:auto;background:#fff;border-radius:1.25rem 1.25rem 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px))}
/* [GOREV 263 Is 2] Yukaridaki kuralin renk/yerlesimine DOKUNULMADI (ayri
   satir, tema-hex olcumu bozulmasin). Kapsayiciya dolgu verilince 82vh
   kisa ekranlarda kalan alandan buyuk kalabilir; flex-end oldugu icin
   panel bu kez USTTEN tasip basligi goturur -- 259 ile ayni emniyet. */
.es-ilan-sikayet-sheet__panel{max-height:min(82vh,calc(100vh - var(--es-mobil-nav-yukseklik,68px) - env(safe-area-inset-bottom,0px) - 24px))}
.es-ilan-sikayet-sheet__grab{width:40px;height:4px;border-radius:4px;background:#E5E7EB;margin:0 auto 12px}
.es-ilan-sikayet-sheet__panel h3{margin:0 0 12px;font-size:16px;font-weight:900;color:#1F2937}
.es-ilan-sikayet__reasons{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.es-ilan-sikayet__reason{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #E5E7EB;border-radius:12px;font-weight:700;font-size:14px;color:#1F2937;cursor:pointer}
.es-ilan-sikayet__reason input{width:18px;height:18px}
.es-ilan-sikayet__reason--acil{border-color:#FCA5A5;background:#FEF2F2;color:#991B1B}
.es-ilan-sikayet__not-lab{display:block;font-size:12px;font-weight:700;color:#64748b;margin:0 0 12px}
.es-ilan-sikayet__not-lab textarea{width:100%;box-sizing:border-box;margin-top:6px;padding:10px;border:1px solid #cbd5e1;border-radius:10px;font-family:inherit}
.es-ilan-sikayet-sheet__panel button[type="submit"]{width:100%;min-height:48px;border:0;border-radius:12px;background:#0f172a;color:#fff;font-weight:800;cursor:pointer;margin-top:4px}
.es-ilan-sikayet__vazgec{width:100%;min-height:44px;border:1px solid #E5E7EB;background:#fff;border-radius:12px;color:#1F2937;font-weight:700;cursor:pointer;margin-top:8px}
.es-pay-card__more{flex:0 0 auto;border:0;background:transparent;color:#6B7280;width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.es-pay-card__more:hover,.es-pay-card__more:focus{background:#F3F4F6;color:#1F2937;outline:0}
.es-pay-card__more svg{width:18px!important;height:18px!important;flex:0 0 auto!important;display:block!important}
.es-pay-more__nav{display:flex;flex-direction:column;gap:8px}
.es-pay-more__row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;box-sizing:border-box;text-align:left;padding:12px 14px;border:1px solid #E5E7EB;border-radius:12px;background:#F8FAFC;font-size:14px;font-weight:800;color:#1F2937;cursor:pointer;font-family:inherit}
.es-pay-more__row small{font-size:11px;font-weight:650;color:#6B7280}
.es-pay-more__row--danger{color:#991B1B;border-color:#FCA5A5;background:#FEF2F2}
.es-pay-more__row--danger small{color:#B91C1C}
.es-pay-more__row--cancel{align-items:center;text-align:center;background:#fff;margin-top:2px}
.es-pay-mah-kaldir{margin:10px 0 0}
.es-pay-mah-btn{appearance:none;border:1px solid #E5E7EB;background:#fff;border-radius:9px;padding:8px 12px;font-weight:700;cursor:pointer;font-size:12px;color:#1F2937}
.es-pay-hedef{gap:8px!important}
.es-pay-kod{font-size:11px!important;color:#64748b!important;margin:6px 0 0!important}
/* [GÖREV 504 İş 2, 07.09] Yorum düğmesi -- GÖREV 50 içinde kurulan
   `.es-py` kutusunu (0975-9008) YENİ bir tetikleyiciyle açıyor.
   `.es-py{display:none}` o dosyada tanımlı (DOKUNULMADI) -- burada
   DAHA ÖZGÜL bir seçiciyle (`.is-yorum-acik .es-py`, 3 sınıf) ezildi,
   kaynak sırasından bağımsız (CSS özgüllük kuralı, `!important` YOK). */
.es-pay-yorum-tetik{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:9px 12px;border:1px solid #E5E7EB;background:#F9FAFB;border-radius:999px;font-size:12px;font-weight:700;color:#1F2937;cursor:pointer;font-family:inherit}
.es-pay-yorum-tetik:hover,.es-pay-yorum-tetik:focus{background:#F3F4F6;outline:0}
.es-pay-yorum-tetik svg{flex:0 0 auto}
/* [GÖREV 551, 07.09] Kaydet -- `.es-pay-yorum-tetik` ile AYNI görsel dil
   (D6: pill/border/renk kopyalandı), yalnız metinsiz/dar -- ikon tek
   başına şeritte yer kaplamasın (390px taşma riski, kabul ölçütü ④). */
.es-pay-kaydet{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;width:34px;height:34px;padding:0;border:1px solid #E5E7EB;background:#F9FAFB;border-radius:999px;color:#1F2937;cursor:pointer;font-family:inherit;flex:0 0 auto}
.es-pay-kaydet:hover,.es-pay-kaydet:focus{background:#F3F4F6;outline:0}
.es-pay-kaydet.is-kayitli{color:#D97706;border-color:rgba(217,119,6,.35);background:#FFFBEB}
.es-pay-kaydet svg{flex:0 0 auto}
.es-pay-card.is-yorum-acik .es-py{display:block;width:100%;margin-top:10px;padding-top:10px;border-top:1px solid #E5E7EB;max-height:38vh;overflow-y:auto;color:#1F2937;-webkit-overflow-scrolling:touch}
/* [GÖREV 504 İş 2] `.es-py__*` iç renkleri 0975-9008 dosyasında KOYU
   zemin (tam ekran overlay, `rgba(15,23,42,.94)`) için yazılmıştı --
   burada kart AÇIK RENK (`rgba(255,255,255,.92)`). O dosyaya
   DOKUNULMADI (DOKUNULACAK DOSYALAR dışında); bu üç-sınıflı seçiciler
   (yalnız `.is-yorum-acik` altında) DAHA ÖZGÜL olduğu için rengi
   burada, kaynak sırasından bağımsız, yalnız BU bağlamda eziyor. */
.es-pay-card.is-yorum-acik .es-py__satir{background:#F9FAFB;border-color:#E5E7EB}
.es-pay-card.is-yorum-acik .es-py__ust strong{color:#1F2937}
.es-pay-card.is-yorum-acik .es-py__ust small{color:#6B7280}
.es-pay-card.is-yorum-acik .es-py__metin{color:#374151}
.es-pay-card.is-yorum-acik .es-py__kapali,.es-pay-card.is-yorum-acik .es-py__bos{color:#6B7280}
.es-pay-card.is-yorum-acik .es-py__sil{color:#94A3B8}
.es-pay-card.is-yorum-acik .es-py__sil:hover,.es-pay-card.is-yorum-acik .es-py__sil:focus-visible{background:#F3F4F6;color:#1F2937}
.es-pay-card.is-yorum-acik .es-py__giris{background:#F1F5F9;border-color:#E5E7EB;color:#1F2937}
.es-pay-card.is-yorum-acik .es-py__wrap textarea{background:#fff;border-color:#E5E7EB;color:#1F2937}
.es-pay-card.is-yorum-acik .es-py__wrap textarea::placeholder{color:#9CA3AF}
/* [74. tur, C4-4] 3-sutun 1:1 izgara — Instagram Kesfet referansi. Kapsayici
   sinifi bu dosyanin KENDI cagiran govdesinde eklendi (D6, bayrak kapaliyken
   .es-pay-feed--v3 hic basilmiyor, eski dikey akis aynen kalir). */
.es-pay-feed--v3{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}
/* [GÖREV 543, 07.09] Akış katmanı açıkken sol üstte görünür geri oku --
   patron onayladı: "sol standart dursun". Görünüm 0270-4359 dosyasındaki
   .es-mlb-chrome__x ile AYNI dil (koyu yuvarlak, safe-area payı) --
   yeni bir görsel dil İCAT EDİLMEDİ (D6), yalnız sağ yerine SOL, x yerine
   ok. Varsayılan GİZLİ -- yalnız akış açıkken JS ile hidden kaldırılır
   (aynı 538 script dosyası D6 ile ikinci bir görünürlük mantığı
   yazmadan çalışıyor). */
/* [GÖREV 559, 07.09 — patron: "çok büyük duruyor, bizim simgemizden
   bir tık küçült, okun arka çizgisini kaybet, renk dolmasına gerek
   yok"] Canlıda ÖLÇÜLDÜ (390px, Claude Browser): "bizim simgemiz"
   patronun kastettiği yanındaki mahalle logosu (`.es-mh-logo`,
   0850-3654) — gerçek boyutu `30,64px` (32 değil, kod okuyarak
   varsayılmadı). "Bir tık küçük" olması için buton `26px`e indirildi
   (rozetten `~4,6px` küçük, görev metninin kendi payı "4px küçük"
   kuralına en yakın tam sayı). SVG oranı korunarak (`18/32`) `14px`e,
   `stroke-width` `2`ye indi. Dolgu tamamen kalkmadı (`#0F172A` dolu
   yerine yarı saydam) — buton fotoğrafın üstünde durduğu için beyaz
   chevron beyaz zeminde kaybolmasın diye (`backdrop-filter` hız kara
   listesinde değil, `41`de ölçümle çürütülmüştü, tek elemanda
   maliyeti yok). */
.es-pay-geri{position:fixed;top:max(10px,env(safe-area-inset-top,0px));left:max(10px,env(safe-area-inset-left,0px));width:26px;height:26px;border-radius:999px;background:rgba(15,23,42,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.35);color:#fff;z-index:999990;display:flex;align-items:center;justify-content:center;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.es-pay-geri svg{width:14px;height:14px;flex:0 0 auto;display:block;pointer-events:none}
.es-pay-geri[hidden]{display:none!important}
/* [GÖREV 220, 31.08 -- M338] Patron: Kesfette videolar cok kucuk,
   anlasilmiyor; kart/izgara buyusun, sayi (12) ayni kalsin. Canlida
   375 piksel genislikte olculdu: kart 99x99px, 3 sutun. Sayi DEGISMEDI
   (D6: bu grid yalniz CSS ile dizilir, PHP tarafi zaten 12 donduruyor)
   -- yalniz dar ekranda 2 sutuna dusuluyor (yaklasik yuzde 80 buyume).
   Genis ekran (769px ve uzeri) DEGISMEDI, 3 sutun aynen kaliyor --
   media query bunun disinda hicbir kural degistirmiyor.
   [!] Ikinci, ayri kayip da olculmustu: ekran 375 piksel, .es-mh 330
   piksel (45 piksel kayip). .es-mh sinifinin kendi yatay dolgusu KESIN
   biliniyor (10px, bu dosyanin DISINDA, D6: deger buradan okunmadan
   kopyalanmadi, 1000-3390 dosyasindaki mahalle standardi) -- kod
   tabaninin kendi deseniyle (1000-3390 dosyasindaki es-mh--meydan
   es-medya kurali negatif yan margin kullaniyor, D6: ayni teknik,
   width 100vw KULLANILMADI -- masaustunde yatay kaydirma actigi bilgisi
   kod tabaninda zaten yazili) yalniz izgaranin kendi kapsayicisi
   negatif margin ile genisletiliyor, .es-mh sinifinin kendi dolgusu
   KALKMIYOR (diger bolumleri hizalamaya devam ediyor). body.es-mh-page
   ile sinirlandi -- bu bilesenin baska bir sayfada farkli dolguyla
   kullanilip kullanilmadigi OLCULMEDI.
   [!] KALAN FARK (Astra temasinin ast-container sinifinin kendi yatay
   dolgusu, 45 pikselin geri kalani) kod tabaninda BULUNAMADI --
   customizer/tema degeri, bu dosyada yazili degil. Kesin piksel degeri
   verilmeden ona dokunmak tahmin olurdu; dokunulmadi, canli olcum
   Eftalde (N19). */
@media(max-width:768px){
	body.es-mh-page .es-pay-feed--v3{grid-template-columns:repeat(2,1fr);margin-left:-10px;margin-right:-10px}
}
.es-pay-feed--v3 .es-pay-card{position:relative;aspect-ratio:1/1;border-radius:2px;border:0;box-shadow:none;background:#111827;backdrop-filter:none;-webkit-backdrop-filter:none}
.es-pay-feed--v3 .es-pay-card--muhtar{box-shadow:0 0 0 2px #FBBF24,0 0 0 4px rgba(217,119,6,.35),0 0 18px rgba(251,191,36,.45)}
.es-pay-feed--v3 .es-pay-card__muhtar,.es-pay-feed--v3 .es-pay-card__unvan{top:6px;left:6px;font-size:10px;padding:4px 9px}
/* Gorseli/videosu olmayan (yalniz metin) paylasim karede bos kalmasin —
   K37/K49 bos satir basilmaz, sahte kare doldurulmaz. */
.es-pay-feed--v3 .es-pay-card:not(.es-pay-card--media){display:none}
.es-pay-feed--v3 .es-pay-card__head,.es-pay-feed--v3 .es-pay-card__body{display:none}
.es-pay-feed--v3 .es-pay-card__media{position:absolute;inset:0;margin:0;aspect-ratio:auto;height:100%}
/* [GOREV 258, patron 01.09] .es-pay-card__koken-ov KURALLARI KALDIRILDI
   (GOREV 51 IS 2 icinde eklenmislerdi). Patron: "Kesfet sayfasinin ustundeyken
   gozukmesin, tikladiginda gozuksun sadece." O kopya YALNIZ v3 kapali
   izgarada gosteriliyordu; orada artik istenmiyor, baska hicbir gorunumde
   gorunmuyordu -- span kendisi de yukarida es_pay_kart icinde
   kaldirildi. Koken bilgisi KAYBOLMADI: kart tiklaninca .is-open ile
   .es-pay-card__head{display:flex} geri geliyor (asagida) ve baslikteki
   ASIL rozet .es-pay-card__koken orada okunuyor. */
.es-pay-feed--v3 .es-pay-card__tur{position:absolute;top:6px;right:6px;z-index:2;font-size:9px;padding:3px 7px;background:rgba(255,255,255,.85)}
/* Is V CANLI BULGU duzeltmesi, 32. oturum sonrasi -- patron: mahalle
   kesfetindeki videolardan bahsetmisti. Onceden burada kart yalniz IZGARA
   ICINDE buyuyordu (tam ekran degildi). Karar geregi (DURUM.md, KARE
   VITRIN + TAM EKRAN GEZGIN maddesi), es-meydan-lb gibi YENI bir lightbox
   YAZILMADI (D6) -- var olan is-open mekanizmasi CSS ile tam ekrana
   cevrildi, cila (0270-4359) kendi chrome+swipe ozelligini buna da
   (polishPayFeed) baglar. */
/* [GÖREV 400, 05.09 — patron ekran görüntüsüyle] Yorum kutusu/"Gönder"
   düğmesi `.es-mobil-nav` (68px, sabit) ARKASINDA kalıyordu — kaydırılabilir
   gövdenin (`overflow-y:auto`, yukarıda) alt boşluğu yoktu, içerik menünün
   altına akıyordu. Menü GİZLENMEDİ (`gizleme-cozum-degil`) — yalnız alt
   boşluk eklendi. `68px` ELLE YAZILMADI: `1170-3679`de zaten tanımlı
   `--es-mobil-nav-yukseklik` değişkeni kullanıldı (aynı dosyanın kendi
   `.es-ilan-sikayet-sheet` kuralıyla AYNI desen, `:1446` — D6, yeni bir
   mekanizma icat edilmedi), menü yüksekliği değişirse burası da otomatik
   izler. Uzun/dikey görsellerde de geçerli — bu, KUTUNUN kendisinin alt
   boşluğu, resmin boyutundan bağımsız. */
.es-pay-feed--v3 .es-pay-card.is-open{position:fixed;inset:0;z-index:999985;grid-column:auto;aspect-ratio:auto;border-radius:0;border:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;gap:10px;background:rgba(15,23,42,.94);padding:20px;padding-bottom:calc(20px + var(--es-mobil-nav-yukseklik,68px) + env(safe-area-inset-bottom,0px));box-sizing:border-box;overflow-y:auto}
.es-pay-feed--v3 .es-pay-card.is-open.es-pay-card--muhtar{background:linear-gradient(180deg,rgba(120,53,15,.35),rgba(15,23,42,.94) 28%)}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__muhtar{top:20px;left:20px}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__head{display:flex;order:2;color:#F8FAFC}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__head .es-pay-card__meta-col strong{color:#F8FAFC}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__unvan-ad{color:#FBBF24}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__head .es-pay-card__meta-col small{color:#CBD5E1}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__body{display:block;order:3;color:#F1F5F9}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__body h3{color:#F8FAFC}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__body p{color:#E2E8F0}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__media{position:relative;inset:auto;order:1;aspect-ratio:auto;height:auto;flex:0 0 auto;max-height:60vh;border-radius:1.15rem;overflow:hidden}
.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__media img,.es-pay-feed--v3 .es-pay-card.is-open .es-pay-card__media video{width:100%;height:100%;max-height:60vh;object-fit:contain;background:#000}
.es-pay-feed--v3 .es-pay-ilce-band,.es-pay-feed--v3>p.es-pay__lead{grid-column:1/-1}
/* [EK GOREV 52 IS 2, M82 ③ + M72 ①] Rotasyon uyeleri (esnaf/hikaye/ilan)
   tek ortak sarmalayicidan (es_mh_v3_akis_serit_html, 1000-3390) geciyor
   -- D6: uye fonksiyonlari (es_mahalle_vitrin_serit_esnaf/ilan/hikaye)
   DEGISTIRILMEDI. [GOREV 187 Is 1/2/3, 30.08 -- M307, patron ozeti:
   esnafin magaza kartinin buyuklugu gonderi kartiyla ayni olacak, oran
   ceyrekte sabit kalacak (esnaf sayisi buyuse bile), hikayeler de ayni
   kurala tabi] ESKIDEN her uye grid-column:1/-1 ile satirin TAMAMINI
   kaplayan, kendi ic mini serit/ray duzenini tasiyan bir kutuydu -- kart
   boyu gonderi kartindan KUCUKTU. Artik yalniz davet (ilce bandi, ilk
   seritte kosulsuz basilan tek istisna, asagida --davet) tam satiri
   kaplar; esnaf/hikaye/ilan uyeleri (--kare) display:contents ile kendi
   sarmalayicilarini ERITIR -- ic kartlar (.es-pay-card / .es-khh__bubble)
   DOGRUDAN #es-pay-feed izgarasinin cocugu olur, boylece gonderi
   kartinin AYNI CSS kurallarini (yukarida satir ~1004-1005) miras alir,
   yeni bir boyut kurali YAZILMADI (D6). Gorunen sayi nth-child(n+3) ile
   ikiye sabitleniyor -- tetikleyici her 6 gonderide bir calistigi icin
   (asagida akis dongusu, i mod 6) oran daima 2 bolu 8 yani ceyrekte
   kalir; esnaf/hikaye kaydi 300-500e ciksa da BUYUMEZ, cunku sinir
   veriden degil bu CSS sabitinden geliyor. */
.es-pay-feed--v3 .es-mh-akis-serit--davet{grid-column:1/-1}
/* [GOREV 261 Is 2, patron 01.09: "Izgara bozulmasin. On iki gonderide bir,
   bir sira... ekrani toplasin, bosluk kalmasin"] --kare ARTIK display:
   contents DEGIL, TAM SATIR. Onceki hal ic kartlari dogrudan izgaraya
   dokuyordu; kartlar izgara hucrelerine tek tek dustugu icin serit
   izgarayi kaydiriyor, satir sonunda BOSLUK birakiyordu.
   [!] SUTUN SAYISI YAZILMADI (PHP tarafina da, buraya da): izgara genis ekranda
   3, mahalle sayfasinda dar ekranda 2 sutun (asagida/yukarida iki ayri
   kural) -- sunucu ekran genisligini bilemez, sabit "3" yazilsa 2 sutunlu
   gorunumde serit 1,5 satir olurdu. Bunun yerine KURAL yazildi:
   grid-column:1/-1 satiri kaplar, grid-auto-flow:column + grid-auto-
   columns:1fr ic kartlari kac tane olursa olsun o satira ESIT boler.
   Boylece 1, 2 ya da 3 kart gelse de satir TAM dolar, iki sutun sayisinda
   da bosluk kalmaz. Ic .es-mh-kapi__serit display:contents ile erimeye
   DEVAM ediyor (asagida) -- kartlar dogrudan bu satirin hucreleri olur,
   gonderi kartinin AYNI CSS kurallarini miras almaya devam eder (D6). */
/* [GOREV 263, patron 01.09 canli: "Kesfette gene bosluk olusmus...
   biz uc tane esnafa sigdiracagiz diye yukarida bosluk yaptik...
   tarayicida uc tane siginiyor ama telefon iki tane sigiyor... boyutlari
   da degismis"] 261 Is 2 icindeki grid-auto-columns COZUMU GERI ALINDI.
   OLCULDU: serit KENDI grid kabi olunca 3 kart, MOBILDE 2 sutunluk satirin
   genisligine bolunuyordu -- kartlar daraliyor, aspect-ratio 1/1 yuzunden
   kisaliyor, satir yuksekligi gonderi kartindan FARKLI kaliyor ve ustte
   bosluk aciliyordu. Patronun tarifi birebir bu.
   YENI KURAL: serit yine display:contents (kartlar DOGRUDAN izgara
   hucrelerine duser, gonderi kartiyla BIREBIR ayni boyut), tam satiri
   ise KART SAYISI saglar -- masaustunde 3, mobilde 2 (asagida). Sutun
   sayisi yine PHP tarafina yazilmadi; CSS, izgaranin sutununu degistiren AYNI
   medya sorgusunda serit tavanini da degistiriyor, ikisi hep uyumlu. */
.es-pay-feed--v3 .es-mh-akis-serit--kare{display:contents}
.es-pay-feed--v3 .es-mh-akis-serit--kare>.es-mh-kapi__serit-bas{display:none}
.es-pay-feed--v3 .es-mh-akis-serit--kare>.es-mh-kapi__serit{display:contents}
/* [GOREV 194 Is 1, 30.08 -- M324-EK] n+3 -> n+4: patron izgarada ucun
   katini istiyor (3/6/9), 2 tek sayiyla izgarayi bozuyordu. Bu secici
   yalniz .es-pay-card siniflari cocuklari (ILAN kartlari) kapsiyor --
   esnaf karti (<a>, .es-pay-card tasimiyor) zaten CSSten degil
   PHPdeki array_sliceten (Is 2) sinirlaniyor, olculup rapora yazildi. */
.es-pay-feed--v3 .es-mh-akis-serit--kare>.es-mh-kapi__serit>.es-pay-card:nth-child(n+4){display:none}
/* [GOREV 263] MOBILDE TAVAN 2. Izgara ayni medya sorgusunda 2 sutuna
   dusuyor (yukarida) -- serit 3 kart tasirsa satir tasar/bozulur.
   Ikisi TEK yerde, ayni kosulda tutuluyor ki bir daha ayrisamasinlar. */
@media(max-width:768px){
	body.es-mh-page .es-pay-feed--v3 .es-mh-akis-serit--kare>.es-mh-kapi__serit>.es-pay-card:nth-child(n+3){display:none}
	body.es-mh-page .es-pay-feed--v3 .es-mh-akis-serit--kare .es-khh__bubble:nth-child(n+3){display:none}
}
/* [GOREV 261 Is 5, 01.09] Hikaye uyesi ROTASYONDAN CIKTI (patron:
   "hikayeyi cikartalim, zaten yukarida standart") -- asagidaki dort kural
   bugun ekranda calismiyor. Bu CSS kurallari SILINMEDI (D6) -- ama
   saglayici fonksiyon es_mahalle_vitrin_serit_hikaye() `GÖREV 387`de
   (05.09) GERCEKTEN SILINDI (grep: sifir cagri, olu ikiz istisnasi) --
   uye geri gelirse yeni bir saglayici yazilmasi gerekir. Yeni yerlesim (--kare
   artik tam satir) hikaye kartlarinda da aynen calisir -- .es-khh
   display:contents ile eriyip .es-khh__bubble kutulari satirin hucreleri olur. */
/* Hikaye uyesi (.es-khh, --izgara bayragiyla zaten birim kare -- bkz.
   0780-3675 EK GOREV 53 Is 2b) ayni eritme + ikiye sabitleme burada da
   uygulanir; yeni bir hikaye motoru YAZILMADI (D6), sadece sarmalayicilar
   eritildi. */
.es-pay-feed--v3 .es-mh-akis-serit--kare .es-khh{display:contents}
.es-pay-feed--v3 .es-mh-akis-serit--kare .es-khh__head{display:none}
.es-pay-feed--v3 .es-mh-akis-serit--kare .es-khh__rail{display:contents}
/* [GOREV 194 Is 1, 30.08 -- M324-EK] n+3 -> n+4, ayni gerekce (hikaye). */
.es-pay-feed--v3 .es-mh-akis-serit--kare .es-khh__bubble:nth-child(n+4){display:none}
/* [74. tur, K54] Detay acildiginda aksiyonlar salt ikon.
   [GOREV 547 Is 4, 07.09] Eski es-pay-oy__lab gizleme kurali yalniz
   izgara gorunumune ozeldi, akista (538den sonra varsayilan gorunum)
   kelime hala gorunuyordu (Eftal canlida saydi: 10 dogru, 10 yanlis).
   489un dersiyle ayni desen (D6): metin artik span olarak markuptan
   tamamen kalkti (asagida, kart ureten kod), yerine dugmenin kendi aria
   label ozniteligi tasiyor, ekran okuyucu aynen okumaya devam ediyor.
   Bu CSS kurali artik konusuz, kalinti kalmasin diye silindi. */
.es-pay-feed--v3 .es-pay-oy button{display:inline-flex;align-items:center;gap:5px;padding:9px 12px;border-radius:999px}
.es-pay-feed--v3 .es-pay-oy__ico{flex:0 0 auto}
/* [GÖREV 98, 28.08 — M55/M193] Üç ekranlı paylaşım sihirbazı. */
.es-pay-wiz{display:flex;flex-direction:column;gap:14px}
.es-pay-wiz__screen{display:flex;flex-direction:column;gap:14px}
.es-pay-wiz__screen[hidden]{display:none}
.es-pay-wiz__pick{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* [GÖREV 148, 30.08 — patron ÜÇÜNCÜ kez, "sadece ikon"] Kutu artık TEK
   öğe (ikon) taşıyor — `flex-direction:column`+`gap` (metin satırlarını
   dikeyde ayırmak içindi) kalktı, kalın dolgu (26px) ikona yakışan
   ölçüye indi.
   [GOREV 155 IS 2, 30.08 -- M297] Sari kesikli cerceve BU TURDA kalkti
   (yukaridaki eski karar patron tarafindan degistirildi, 30.08: "bu
   sari kesik kesik cerceve zorunlu mu... yukaridaki QR kutusu gibi
   olsa olmuyor mu"). Yeni renk UYDURULMADI -- ayni cekmecenin (Yayinla
   sihirbazi) kendi QR kutusuyla (1170-3679, .es-mobil-paylas button.
   es-mobil-paylas__btn) AYNI kenarlik/zemin/kose yaricapi buraya
   tasindi. Tiklama alani/label/input yapisi DEGISMEDI (D6) -- yalniz
   border/background/border-radius. `.es-pay-form input[type=file]`
   kutusu (satir ~915) BU TURUN KAPSAMI DISINDA, dokunulmadi. Renkler
   literal hex DEGIL -- sitenin tek paleti (0004-9004-es-tema.php,
   GOREV 93) zaten --es-line/--es-paper tanimliyor, o degiskenler
   kullanildi (yeni renk yazilmadi; yalniz :active satirindaki -- 1170-
   3679 dosyasinin kendi rgba() literalinden BIREBIR kopyalanan -- ton
   icin tema-hex sinavi isaretli kalir). */
.es-pay-wiz__btn{display:flex;align-items:center;justify-content:center;padding:14px 10px;border:1px solid var(--es-line,#e2e8f0);border-radius:13px;background:var(--es-paper,#f8fafc);cursor:pointer;text-align:center}
.es-pay-wiz__btn:active{background:#fff3ec;border-color:rgba(242,101,34,.4)}
/* [GÖREV 138] `hidden` yerine — iOS'ta bazen dosya seçiciyi öldürüyordu.
   Ekran-okuyucu deseni (es-pay-oy__lab ile AYNI kalıp, D6/D24): kutu
   GERÇEKTEN render ediliyor, görsel olarak yok. */
.es-pay-wiz__file-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.es-pay-wiz__ico{font-size:32px;line-height:1}
.es-pay-wiz__skip{align-self:center;border:0;background:transparent;color:#6B7280;font-weight:650;font-size:12px;text-decoration:underline;cursor:pointer;padding:4px}
.es-pay-wiz__prev,.es-pay-wiz__prevmini{display:flex;justify-content:center;background:#F3F4F6;border-radius:14px;overflow:hidden}
.es-pay-wiz__prev{min-height:220px;align-items:center}
.es-pay-wiz__prev img,.es-pay-wiz__prev video{max-width:100%;max-height:60vh;display:block}
.es-pay-wiz__prevmini{width:64px;height:64px;flex:0 0 auto;border-radius:10px}
.es-pay-wiz__prevmini:empty{display:none}
.es-pay-wiz__prevmini img,.es-pay-wiz__prevmini video{width:100%;height:100%;object-fit:cover;display:block}
.es-pay-wiz__nav{display:flex;gap:10px;align-items:center}
.es-pay-wiz__nav button[type=submit]{flex:1}
.es-pay-wiz__back{border:1px solid #E5E7EB;background:#fff;color:#1F2937;font-weight:700;font-size:13px;padding:12px 14px;border-radius:12px;cursor:pointer}
.es-pay-wiz__ileri{flex:1;border:0;background:#1F2937;color:#fff;font-weight:800;padding:12px 14px;border-radius:12px;cursor:pointer}
.es-pay-kes{display:flex;flex-direction:column;gap:8px;margin:0}
.es-pay-kes[hidden]{display:none}
.es-pay-kes__btns{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.es-pay-kes__btn{border:2px solid #E5E7EB;background:#fff;color:#1F2937;font-weight:800;font-size:13px;padding:12px 8px;border-radius:12px;cursor:pointer;font-family:inherit}
.es-pay-kes__btn.is-on{border-color:#1F2937;background:#F3F4F6}
.es-pay-kes__not{margin:0;font-size:12px;font-weight:650;color:#6B7280}
.es-pay-row-lab{display:block;font-size:13px;font-weight:800;color:#1F2937;margin:0 0 6px}
.es-pay-etiket{margin:0 0 12px}
.es-pay-etiket-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 6px}
.es-pay-etiket-chips:empty{display:none}
.es-pay-etiket-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-radius:999px;background:#EEF2FF;color:#3730A3;font-size:12px;font-weight:700}
.es-pay-etiket-chip button{border:0;background:transparent;color:inherit;font-size:14px;line-height:1;cursor:pointer;padding:2px}
.es-pay-etiket-input{width:100%;box-sizing:border-box}
.es-pay-etiket-oneri{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0}
.es-pay-etiket-oneri-el{border:1px solid #E5E7EB;background:#F9FAFB;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;color:#1F2937;cursor:pointer}
/* [GÖREV 100 İŞ 2, 28.08 — M204] Kademe 4: "Nereye gönderilecek?" */
.es-pay-wiz__hedef{display:flex;flex-direction:column;gap:10px}
.es-pay-wiz__hedefbtn{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:2px solid #E5E7EB;border-radius:14px;background:#fff;text-decoration:none;color:#1F2937;font-weight:800;font-size:14px;cursor:pointer;text-align:left;font-family:inherit;appearance:none}
.es-pay-wiz__hedefbtn small{font-weight:600;color:#6B7280;font-size:12px}
.es-pay-wiz__hedefbtn.is-on{border-color:#1F2937;background:#F3F4F6}
.es-pay-wiz__hedefpanel{margin-top:2px}
