/* Fatma Abla — üye paneli + üye giriş/aktivasyon (tanıtım sitesi tasarım diliyle) */
:root {
  --cream: #FBF1EC; --blush: #F6E0DC; --rose: #D9435C; --rose-deep: #B93049;
  --mauve: #C99FA8; --green: #2F6B4C; --gold: #D9B45B; --line: #EAD3CD;
  --ink: #33262B; --ink-soft: #6E5A60; --surface: #FFFFFF;
  --shadow: 0 10px 30px rgba(90, 40, 50, .08);
  --serif: "Iowan Old Style", Palatino, Georgia, serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--cream); color: var(--ink);
       font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
a { color: var(--rose-deep); }
h1, h2, h3 { font-family: var(--serif); }

/* ---------- Giriş / aktivasyon ---------- */
.auth-page { min-height: 100vh; display: flex; align-items: center; justify-content: center;
             padding: 24px; background: linear-gradient(160deg, var(--blush), var(--cream) 55%); }
.auth-box { width: 100%; max-width: 420px; background: var(--surface); border: 1px solid var(--line);
            border-radius: 20px; box-shadow: var(--shadow); padding: 36px 32px; text-align: center; }
.auth-logo { width: 68px; height: 68px; border-radius: 50%; object-fit: cover; margin-bottom: 14px; }
.auth-box h1 { font-size: 24px; margin: 0 0 6px; }
.auth-box .sub { color: var(--ink-soft); margin: 0 0 20px; font-size: 14.5px; }
.auth-box form { text-align: left; }
.auth-box label { display: block; font-size: 13px; font-weight: 700; margin: 14px 0 5px; }
.auth-box input { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px;
                  font-size: 15px; background: var(--cream); }
.auth-box input:focus { outline: 2px solid var(--rose); outline-offset: 1px; background: #fff; }
.auth-box .err { color: var(--rose-deep); font-size: 14px; margin-top: 14px; }
.foot-note { font-size: 13px; color: var(--ink-soft); margin-top: 18px; }

.pbtn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--line);
        background: #fff; color: var(--ink); padding: 10px 18px; border-radius: 999px; font-size: 14.5px;
        font-weight: 700; cursor: pointer; text-decoration: none; transition: transform .12s, box-shadow .12s; }
.pbtn:active { transform: scale(.97); }
.pbtn.primary { background: var(--rose); border-color: var(--rose); color: #fff; }
.pbtn.primary:hover { background: var(--rose-deep); }
.pbtn.ghost:hover { border-color: var(--rose); color: var(--rose-deep); }
.pbtn.wide { width: 100%; margin-top: 20px; }
.pbtn:disabled { opacity: .55; cursor: default; }

/* ---------- Panel iskeleti ---------- */
.pwrap { max-width: 1060px; margin: 0 auto; padding: 0 18px 60px; }
.phead { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line);
         margin-bottom: 22px; flex-wrap: wrap; }
.phead img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.phead .kim b { display: block; font-size: 16px; }
.phead .kim span { font-size: 12.5px; color: var(--ink-soft); }
.phead .esnek { flex: 1; }
.rozet { font-size: 12px; font-weight: 800; padding: 5px 12px; border-radius: 999px; letter-spacing: .03em; }
.rozet.gold { background: linear-gradient(120deg, #F3D98B, var(--gold)); color: #5C4708; }
.rozet.hak { background: var(--blush); color: var(--rose-deep); }

.pcard { background: var(--surface); border: 1px solid var(--line); border-radius: 18px;
         box-shadow: var(--shadow); padding: 24px; margin-bottom: 22px; }
.pcard > h2 { margin: 0 0 4px; font-size: 21px; }
.pcard > .aciklama { color: var(--ink-soft); font-size: 14px; margin: 0 0 16px; }

/* ---------- "Fatma Abla düşünüyor" animasyonu ---------- */
.dusun { display: none; text-align: center; padding: 34px 10px 26px; }
.dusun.on { display: block; }
.dusun .avatar { width: 86px; height: 86px; border-radius: 50%; object-fit: cover;
                 animation: kalp 1.15s ease-in-out infinite; box-shadow: 0 0 0 0 rgba(217, 67, 92, .35); }
@keyframes kalp {
  0%, 100% { transform: scale(1);   box-shadow: 0 0 0 0 rgba(217, 67, 92, .35); }
  35%      { transform: scale(1.08); box-shadow: 0 0 0 16px rgba(217, 67, 92, 0); }
}
.dusun p { font-family: var(--serif); font-size: 17px; color: var(--ink); margin: 16px 0 4px; min-height: 24px; }
.dusun .noktalar { display: inline-flex; gap: 7px; margin-top: 6px; }
.dusun .noktalar i { width: 9px; height: 9px; border-radius: 50%; background: var(--rose); opacity: .3;
                     animation: nokta 1.2s infinite; }
.dusun .noktalar i:nth-child(2) { animation-delay: .2s; }
.dusun .noktalar i:nth-child(3) { animation-delay: .4s; }
@keyframes nokta { 0%, 80%, 100% { opacity: .3; transform: scale(.8); } 40% { opacity: 1; transform: scale(1); } }

/* ---------- Aday kartları ---------- */
.kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.aday { border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(180deg, #fff, #FFFBF9);
        padding: 18px; position: relative; }
.aday.gizli-giris { opacity: 0; transform: translateY(26px) scale(.96); }
.aday.giris { animation: kartGiris .55s cubic-bezier(.2, .8, .3, 1.1) forwards; }
@keyframes kartGiris {
  from { opacity: 0; transform: translateY(26px) scale(.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.aday .ust { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.aday .harf { width: 46px; height: 46px; border-radius: 50%; background: var(--blush); color: var(--rose-deep);
              display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px;
              font-family: var(--serif); flex: none; }
.aday .ust b { font-size: 15.5px; display: block; }
.aday .ust span { font-size: 12.5px; color: var(--ink-soft); }
.aday .ozet { display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 12px; }
.aday .ozet i { font-style: normal; font-size: 12px; background: var(--cream); border: 1px solid var(--line);
                border-radius: 999px; padding: 4px 10px; color: var(--ink-soft); }
.aday .detay { display: none; font-size: 13.5px; color: var(--ink-soft); border-top: 1px dashed var(--line);
               padding-top: 10px; margin: 8px 0 10px; }
.aday .detay b { color: var(--ink); display: block; margin-bottom: 2px; font-size: 12.5px; }
.aday .detay p { margin: 0 0 10px; white-space: pre-line; }
.aday.acik .detay { display: block; }
.aday .alt { display: flex; gap: 8px; }
.aday .alt .pbtn { padding: 8px 14px; font-size: 13.5px; }
.aday .gonderildi { color: var(--green); font-weight: 700; font-size: 13.5px; display: none;
                    align-items: center; gap: 6px; }
.aday.teklifli .gonderildi { display: inline-flex; }
.aday.teklifli .teklif-btn { display: none; }

/* Skor halkası */
.skor { position: absolute; top: 14px; right: 14px; width: 56px; height: 56px; }
.skor svg { width: 56px; height: 56px; transform: rotate(-90deg); }
.skor circle { fill: none; stroke-width: 5; }
.skor .art { stroke: var(--blush); }
.skor .dolu { stroke: var(--rose); stroke-linecap: round; stroke-dasharray: 138.2;
              stroke-dashoffset: 138.2; transition: stroke-dashoffset 1.1s cubic-bezier(.3, .7, .3, 1); }
.skor.yesil .dolu { stroke: var(--green); }
.skor b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
          font-size: 13px; color: var(--ink); }

/* ---------- Filtre çubuğu ---------- */
.filtreler { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px;
             margin-bottom: 16px; }
.filtreler label { font-size: 11.5px; font-weight: 800; color: var(--ink-soft); display: block;
                   text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.filtreler input, .filtreler select { width: 100%; padding: 9px 11px; border: 1px solid var(--line);
                   border-radius: 10px; font-size: 14px; background: var(--cream); color: var(--ink); }
.filtreler input:focus, .filtreler select:focus { outline: 2px solid var(--rose); background: #fff; }
.yaslar { display: flex; gap: 6px; }

/* ---------- Teklif listeleri ---------- */
.satir { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.satir:last-child { border-bottom: 0; }
.satir .harf { width: 40px; height: 40px; border-radius: 50%; background: var(--blush); color: var(--rose-deep);
               display: flex; align-items: center; justify-content: center; font-weight: 800;
               font-family: var(--serif); flex: none; }
.satir .esnek { flex: 1; min-width: 0; }
.satir b { font-size: 14.5px; }
/* DİKKAT: bu kural `.satir span` olarak yazılırsa harf-avatar'ı da yakalar (0-1-1 > 0-1-0):
   avatar inline-flex'ini kaybeder, harf sola-yukarı kayar ve rengi soluklaşır. .esnek ile sınırlı. */
.satir .esnek span { display: block; font-size: 12.5px; color: var(--ink-soft); }
.satir .pbtn { padding: 7px 13px; font-size: 13px; }
/* Satır içindeki "Reddet" sessiz durur. `background` da SIFIRLANMALI: dosya sonundaki
   `.pbtn.red` (modalın dolu zeminli yıkıcı butonu) burayı da boyuyor, bu kural yalnız
   rengi soluklaştırdığı için soluk metin + koyu gül zemin = okunmaz kontrast çıkıyor. */
.satir .pbtn.red { background: #fff; border-color: var(--line); color: var(--ink-soft); }
.satir .pbtn.red:hover { background: #fff; border-color: var(--rose-deep); color: var(--rose-deep); }
.yakinda { font-size: 12px; font-weight: 800; background: var(--blush); color: var(--rose-deep);
           border-radius: 999px; padding: 4px 11px; }

/* Toast */
.toast { position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 20px); background: var(--ink);
         color: #fff; padding: 11px 20px; border-radius: 999px; font-size: 14px; opacity: 0;
         pointer-events: none; transition: all .25s; max-width: 90vw; text-align: center; z-index: 50; }
.toast.on { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 560px) {
  .pcard { padding: 18px 15px; }
  .kartlar { grid-template-columns: 1fr; }
  .phead .kim b { font-size: 15px; }
}

/* ---------- Ödeme / yenileme ekranı ---------- */
.rozet.uyelik { background: #EAF3EC; color: var(--green); }
.odeme-kutu { border: 1px solid var(--line); border-radius: 14px; background: #FFFBF9; padding: 18px; margin-top: 8px; }
.odeme-kutu .satirlar > div { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line); flex-wrap: wrap; }
.odeme-kutu .satirlar > div:last-child { border-bottom: 0; }
.odeme-kutu .satirlar span { width: 210px; flex: none; font-size: 12px; font-weight: 800; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .04em; }
.odeme-kutu .mono { font-family: ui-monospace, Menlo, monospace; letter-spacing: .02em; }
.odeme-kutu .kod { font-family: ui-monospace, Menlo, monospace; font-size: 20px; color: var(--rose-deep); background: var(--blush); padding: 4px 14px; border-radius: 10px; letter-spacing: .08em; }
.odeme-kutu .uyari { font-size: 13px; color: var(--rose-deep); background: var(--blush); border-radius: 10px; padding: 10px 14px; margin: 14px 0 0; }
.paket-sec { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 10px 0 14px; }
.paket-kart { border: 2px solid var(--line); border-radius: 14px; padding: 14px; text-align: center; cursor: pointer; background: #fff; }
.paket-kart:has(input:checked) { border-color: var(--rose); background: #FFF6F4; }
.paket-kart input { display: none; }
.paket-kart b { display: block; font-family: var(--serif); font-size: 17px; }
.paket-kart span { color: var(--rose-deep); font-weight: 800; }
.ek-sec { display: flex; gap: 9px; align-items: flex-start; font-size: 14px; color: var(--ink-soft); padding: 7px 0; cursor: pointer; }
.ek-sec input { margin-top: 3px; accent-color: var(--rose); }
.basarili { color: var(--green); background: #EAF3EC; border-radius: 10px; padding: 10px 14px; font-size: 14px; font-weight: 700; }
.alan-label { display: block; font-size: 11.5px; font-weight: 800; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .05em; margin: 14px 0 5px; }
.profil-form textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; font: inherit; font-size: 14.5px; background: var(--cream); }
.profil-form textarea:focus { outline: 2px solid var(--rose); background: #fff; }
.kilit-rozet { font-size: 12.5px; font-weight: 700; color: var(--ink-soft); background: var(--cream); border: 1px dashed var(--mauve); border-radius: 999px; padding: 7px 13px; }

/* ---------- Danışma ---------- */
.danis-kutu { border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; margin-bottom: 12px; }
.danis-kutu .tarih { font-size: 11.5px; font-weight: 800; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .04em; }
.danis-kutu p { margin: 4px 0 0; white-space: pre-line; }
.danis-kutu .cevap { margin-top: 10px; background: var(--cream); border-left: 3px solid var(--gold); border-radius: 8px; padding: 10px 12px; }
.danis-kutu .bekliyor-not { color: var(--mauve); font-size: 13px; margin: 8px 0 0; }

/* ---------- Hesap silme ---------- */
.pcard.tehlike { border-color: #E8C9C9; }
.pcard.tehlike h2 { color: var(--rose-deep); }
.tehlike-btn { border-color: var(--rose-deep); color: var(--rose-deep); background: #fff; margin-top: 10px; }
.tehlike-btn:hover { background: var(--rose-deep); color: #fff; }


/* ============================================================
   PANEL v4 — uygulama kabuğu: topbar + sidebar + bottom tabbar
   ============================================================ */
.papp-body { background: var(--cream); }
body.drawer-kilit { overflow: hidden; }
.ico { width: 20px; height: 20px; flex: none; }
.ico.kucuk { width: 14px; height: 14px; }

/* ---------- Topbar ---------- */
.topbar { position: sticky; top: 0; z-index: 40; display: flex; align-items: center; gap: 12px;
          height: 64px; padding: 0 18px; background: rgba(255, 255, 255, .92);
          -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
          border-bottom: 1px solid var(--line); }
.tb-marka { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); }
.tb-marka img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.tb-marka b { font-family: var(--serif); font-size: 17px; display: block; line-height: 1.1; }
.tb-marka i { font-style: normal; font-size: 10.5px; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .06em; }
.tb-esnek { flex: 1; }
.tb-guven { display: flex; align-items: center; gap: 9px; text-decoration: none; color: var(--green);
            background: #EAF3EC; border: 1px solid #D5E6DA; border-radius: 12px; padding: 7px 13px; }
.tb-guven b { font-size: 12.5px; display: block; line-height: 1.15; }
.tb-guven i { font-style: normal; font-size: 10.5px; color: var(--ink-soft); }
.ikonbtn { position: relative; display: inline-flex; align-items: center; justify-content: center;
           width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line);
           background: #fff; color: var(--ink); cursor: pointer; text-decoration: none; }
.ikonbtn:hover { border-color: var(--rose); color: var(--rose-deep); }
.rz { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; border-radius: 999px;
      background: var(--rose); color: #fff; font-size: 11px; font-weight: 800; font-style: normal;
      display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.rz.satirici { position: static; margin-left: 8px; vertical-align: middle; }
.tb-kim { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink);
          border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 5px 14px 5px 5px; }
.tb-kim:hover { border-color: var(--rose); }
.harf-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--blush); color: var(--rose-deep);
               display: inline-flex; align-items: center; justify-content: center; font-weight: 800;
               font-size: 16px; font-family: var(--serif); flex: none; }
.tk-ad b { display: block; font-size: 13.5px; line-height: 1.15; }
.tk-ad i { font-style: normal; font-size: 11px; color: var(--ink-soft); }
.drawer-ac { display: none; }
.drawer-kapat { display: none; position: absolute; top: 14px; right: 14px; }

/* ---------- Sidebar ---------- */
.sidebar { position: fixed; left: 0; top: 64px; bottom: 0; width: 248px; z-index: 45;
           background: var(--surface); border-right: 1px solid var(--line); padding: 18px 14px;
           display: flex; flex-direction: column; overflow-y: auto; }
.snav { display: flex; flex-direction: column; gap: 4px; }
.snav-link { display: flex; align-items: center; gap: 12px; padding: 11px 14px; border-radius: 12px;
             text-decoration: none; color: var(--ink); font-weight: 600; font-size: 14.5px; position: relative; }
.snav-link:hover { background: var(--cream); }
.snav-link.aktif { background: var(--rose); color: #fff; box-shadow: 0 8px 18px rgba(217, 67, 92, .28); }
.snav-link.kilitli { color: var(--ink-soft); opacity: .62; }
.snav-link .rz { position: static; margin-left: auto; }
.snav-link .ico.kucuk { margin-left: auto; }
.snav-cizgi { height: 1px; background: var(--line); margin: 10px 6px; }
.s-soz { margin-top: auto; background: var(--cream); border: 1px solid var(--line); border-radius: 14px;
         padding: 14px 15px; }
.s-soz p { font-family: var(--serif); font-style: italic; font-size: 13px; margin: 0 0 8px; color: var(--ink); }
.s-soz span { font-size: 11.5px; color: var(--ink-soft); }
.drawer-ort { display: none; }

/* ---------- İçerik ---------- */
.picerik { margin-left: 248px; padding: 22px 26px 60px; max-width: 1240px; }
.sayfa-bas { margin: 4px 0 18px; }
.sayfa-bas h1 { font-size: 26px; margin: 0 0 4px; }
.sayfa-bas p { color: var(--ink-soft); margin: 0; font-size: 14.5px; }

/* ---------- Hoş geldin banner ---------- */
.banner { position: relative; overflow: hidden; border-radius: 20px; border: 1px solid var(--line);
          background: linear-gradient(115deg, #FFF7F4 0%, var(--blush) 55%, #F3D9CF 100%);
          padding: 30px 32px; margin-bottom: 22px; box-shadow: var(--shadow); }
.banner h1 { font-size: 30px; margin: 0 0 8px; display: flex; align-items: center; gap: 10px; }
.banner h1 .dal { width: 26px; height: 26px; color: var(--rose); }
.banner p { max-width: 560px; margin: 0 0 14px; color: var(--ink-soft); font-size: 15px; }
.banner-cip { display: inline-flex; align-items: center; gap: 8px; background: rgba(255, 255, 255, .82);
              border: 1px solid var(--line); border-radius: 999px; padding: 8px 15px; font-size: 12.5px;
              font-weight: 700; color: var(--green); }
.banner-sus { position: absolute; right: 22px; top: 0; bottom: 0; width: 150px; pointer-events: none; }
.banner-sus svg { position: absolute; color: var(--rose); opacity: .18; }
.banner-sus .s1 { width: 90px; height: 90px; right: 10px; top: 12px; }
.banner-sus .s2 { width: 44px; height: 44px; right: 92px; bottom: 22px; opacity: .14; }
.banner-sus .s3 { width: 56px; height: 56px; right: 0; bottom: -8px; opacity: .12; }

/* ---------- Dashboard ızgara ---------- */
.pana { min-width: 0; }
.yanyana { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.pcard-bas { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.pcard-bas h2 { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 18.5px; flex: 1; min-width: 0; }
.bas-ikon { color: var(--rose); width: 21px; height: 21px; }
.hepsi { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 700;
         color: var(--rose-deep); text-decoration: none; white-space: nowrap; }
.hepsi:hover { text-decoration: underline; }
.hepsi .ico { width: 14px; height: 14px; }
.bos-kucuk { color: var(--ink-soft); font-size: 13.5px; margin: 8px 0 2px; }
.pbtn.mini { padding: 7px 14px; font-size: 13px; }
.pbtn.tam { width: 100%; margin-top: 12px; }

/* ---------- Mini eşleşme kartları (dashboard) ---------- */
.mini-kartlar { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.mini-aday { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
             gap: 3px; padding: 18px 12px 14px; border: 1px solid var(--line); border-radius: 16px;
             background: linear-gradient(180deg, #fff, #FFFBF9); text-decoration: none; color: var(--ink);
             transition: transform .18s ease, box-shadow .18s ease; }
.mini-aday:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.harf-avatar.buyukav { width: 58px; height: 58px; font-size: 24px; margin-bottom: 6px; }
.harf-avatar.kucukav { width: 40px; height: 40px; font-size: 16px; }
.mini-aday .uyum { position: absolute; top: 10px; right: 10px; background: #EAF3EC; color: var(--green);
                   font-size: 11px; font-weight: 800; border-radius: 999px; padding: 3px 8px; }
.mini-aday .ad { font-size: 14.5px; }
.mini-aday .yer { font-size: 12px; color: var(--ink-soft); }
.mini-aday .cips { display: flex; flex-wrap: wrap; gap: 4px; justify-content: center; margin-top: 7px; }
.mini-aday .cips i { font-style: normal; font-size: 10.5px; background: var(--cream); border: 1px solid var(--line);
                     border-radius: 999px; padding: 3px 8px; color: var(--ink-soft); }
.mini-aday.gizli-giris { opacity: 0; transform: translateY(20px) scale(.96); }
.mini-aday.giris { animation: kartGiris .5s cubic-bezier(.2, .8, .3, 1.1) forwards; }

/* ---------- Üyelik özeti + güven listesi ---------- */
.guven-liste { display: flex; flex-direction: column; gap: 7px; border-top: 1px solid var(--line); padding-top: 12px; }
.guven-liste span { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--ink-soft); }
.guven-liste .ico { width: 15px; height: 15px; color: var(--green); }

/* ---------- Profil tamamlama halkası ---------- */
.tamamla { display: flex; align-items: center; gap: 16px; }
.halka { position: relative; width: 76px; height: 76px; flex: none; }
.halka svg { width: 76px; height: 76px; transform: rotate(-90deg); }
.halka circle { fill: none; stroke-width: 7; }
.halka .art { stroke: var(--blush); }
.halka .dolu { stroke: var(--rose); stroke-linecap: round; stroke-dasharray: 201;
               stroke-dashoffset: calc(201 - 201 * var(--oran, 0) / 100);
               transition: stroke-dashoffset 1s cubic-bezier(.3, .7, .3, 1); }
.halka b { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
           font-size: 15px; }
.tamamla p { margin: 0; font-size: 13.5px; color: var(--ink-soft); }

/* ---------- Öneri + tavsiye kartları ---------- */
.pcard.oneri { background: linear-gradient(165deg, #fff 30%, #FFF3EF); }
.pcard.oneri > p { margin: 4px 0 6px; font-size: 14.5px; }
.pcard.tavsiye blockquote { font-family: var(--serif); font-style: italic; font-size: 15.5px;
                            margin: 6px 0 8px; color: var(--ink); line-height: 1.5; }
.pcard.tavsiye .kaynak { font-size: 12.5px; color: var(--ink-soft); }
.danis-link { display: block; margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line);
              font-size: 13px; font-weight: 700; }

/* ---------- Alt tab bar (mobil) ---------- */
.tabbar { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
          background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
          border-top: 1px solid var(--line); padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
          justify-content: space-around; }
.tab { display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none;
       color: var(--ink-soft); font-size: 10.5px; font-weight: 700; padding: 4px 10px; border-radius: 12px;
       min-width: 58px; }
.tab .t-ikon { position: relative; display: inline-flex; }
.tab.aktif { color: var(--rose-deep); }
.tab.aktif .t-ikon::after { content: ""; position: absolute; inset: -7px -11px; background: var(--blush);
                            border-radius: 12px; z-index: -1; }
.tab.kilitli { opacity: .5; }

/* ---------- Durum ekranları (inceleme / onay) ---------- */
.durum-kapak { text-align: center; padding: 30px 16px 10px; max-width: 640px; margin: 0 auto 18px; }
.durum-kapak h1 { font-size: 26px; margin: 18px 0 10px; }
.durum-kapak .durum-alt { color: var(--ink-soft); font-size: 14.5px; margin: 0; }
.durum-ikon { position: relative; width: 96px; height: 96px; margin: 0 auto; }
.durum-ikon img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
.durum-ikon .halka-donen { position: absolute; inset: -8px; border-radius: 50%;
                           border: 3px solid var(--blush); border-top-color: var(--rose);
                           animation: donen 1.6s linear infinite; }
@keyframes donen { to { transform: rotate(360deg); } }
.durum-ikon.onay { display: flex; align-items: center; justify-content: center; border-radius: 50%;
                   background: var(--green); color: #fff; box-shadow: 0 14px 34px rgba(47, 107, 76, .35);
                   animation: onayPat .6s cubic-bezier(.2, 1.4, .4, 1) both; }
.durum-ikon.onay .ico { width: 44px; height: 44px; }
@keyframes onayPat { from { transform: scale(.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.adimlar-karti { max-width: 640px; margin: 0 auto 16px; }
.surec-adim { display: flex; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--line); }
.surec-adim:last-child { border-bottom: 0; }
.sa-no { width: 30px; height: 30px; border-radius: 50%; background: var(--cream); border: 1px solid var(--line);
         color: var(--ink-soft); font-weight: 800; font-size: 13.5px; display: inline-flex; align-items: center;
         justify-content: center; flex: none; }
.surec-adim.aktif .sa-no { background: var(--rose); border-color: var(--rose); color: #fff; }
.surec-adim b { display: block; font-size: 14.5px; }
.surec-adim span { font-size: 13px; color: var(--ink-soft); }
.aciklama.ortada { text-align: center; max-width: 640px; margin: 0 auto; }
.odeme-sonrasi { display: flex; gap: 10px; align-items: flex-start; background: #EAF3EC;
                 border: 1px solid #D5E6DA; border-radius: 12px; padding: 13px 16px; font-size: 13.5px;
                 color: var(--ink); margin: 14px 0 0; }
.odeme-sonrasi .ico { color: var(--green); margin-top: 1px; }

/* ---------- Konfeti ---------- */
.konfeti-kap { position: fixed; inset: 0; pointer-events: none; z-index: 90; overflow: hidden; }
.konfeti-kap i { position: absolute; top: -20px; display: block; opacity: 0;
                 animation: konfetiDus linear forwards; }
@keyframes konfetiDus {
  0%   { opacity: 1; transform: translate3d(0, 0, 0) rotate(0deg); }
  100% { opacity: .9; transform: translate3d(var(--kay, 0px), 105vh, 0) rotate(var(--don, 360deg)); }
}

/* ---------- Responsive: tablet/mobil — uygulama görünümü ---------- */
@media (max-width: 1080px) {
  .yanyana { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .drawer-ac { display: inline-flex; }
  .drawer-kapat { display: inline-flex; }
  .sidebar { top: 0; transform: translateX(-105%); transition: transform .28s cubic-bezier(.3, .8, .3, 1);
             width: 280px; box-shadow: 0 0 60px rgba(60, 20, 30, .25); padding-top: 56px; }
  .sidebar.acik { transform: translateX(0); }
  .drawer-ort { display: block; position: fixed; inset: 0; z-index: 44; background: rgba(51, 38, 43, .4);
                opacity: 0; pointer-events: none; transition: opacity .25s; }
  .drawer-ort.acik { opacity: 1; pointer-events: auto; }
  .picerik { margin-left: 0; padding: 16px 14px calc(86px + env(safe-area-inset-bottom)); }
  .tabbar { display: flex; }
  .tb-guven { display: none; }
  .tb-kim .tk-ad { display: none; }
  .tb-kim { border: 0; background: none; padding: 0; }
  .tb-marka i { display: none; }
  .banner { padding: 22px 18px; }
  .banner h1 { font-size: 24px; }
  .banner-sus { display: none; }
  .topbar { padding: 0 12px; gap: 9px; }
}
@media (max-width: 560px) {
  .mini-kartlar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sayfa-bas h1 { font-size: 22px; }
  .durum-kapak h1 { font-size: 22px; }
}
.s-yasal { text-align: center; font-size: 12px; color: var(--ink-soft); padding-top: 10px; }
.s-yasal a { color: var(--ink-soft); text-decoration: none; }
.s-yasal a:hover { color: var(--rose-deep); text-decoration: underline; }
.teklif-blok { border-bottom: 1px dashed var(--line); }
.teklif-blok:last-child { border-bottom: 0; }
.teklif-blok .satir { border-bottom: 0; }
/* NOT: mobil satır yerleşimi tek yerde toplandı — dosya sonundaki 620px bloğuna bak.
   Buradaki eski `.teklif-blok .satir .esnek` kuralı `.satir-profil` refactor'undan sonra
   yanlış elemanı hedefliyordu: .esnek artık .satir'ın değil, butonun flex çocuğu. */


/* ============================================================
   PANEL v5 — geniş ekran yerleşimi + iddialı dashboard
   ============================================================ */

/* İçerik ekrana yayılsın: genişlik sınırı yok — her ekranı doldurur */
.picerik { max-width: none; padding: 26px 38px 70px; }
.pcard { border-radius: 20px; padding: 26px; }
.pcard-bas h2 { font-size: 20px; }

/* ---------- Topbar arama ---------- */
.tb-ara { display: flex; align-items: center; gap: 10px; background: var(--cream);
          border: 1px solid var(--line); border-radius: 999px; padding: 9px 18px;
          width: min(420px, 34vw); margin-left: 16px; color: var(--ink-soft); }
.tb-ara:focus-within { border-color: var(--rose); background: #fff; }
.tb-ara .ico { width: 17px; height: 17px; flex: none; }
.tb-ara input { border: 0; background: none; outline: none; font: inherit; font-size: 14px;
                color: var(--ink); width: 100%; }
.tb-ara input::placeholder { color: var(--mauve); }

/* ---------- Banner: sahneli, iddialı ---------- */
.banner { display: flex; align-items: stretch; min-height: 220px; padding: 0; margin-bottom: 26px;
          background: linear-gradient(105deg, #FFF8F5 0%, #F9E4DD 46%, #F1D2C4 78%, #EAC3B2 100%); }
.banner-ic { flex: 1; padding: 40px 44px; display: flex; flex-direction: column; justify-content: center;
             align-items: flex-start; position: relative; z-index: 2; }
.banner h1 { font-size: 36px; margin: 0 0 10px; }
.banner h1 .dal { width: 30px; height: 30px; }
.banner p { font-size: 15.5px; max-width: 600px; margin: 0 0 18px; }
.banner-cip { font-size: 13px; padding: 9px 17px; }

/* Sahne: kemerli pencere + fenerler + çiçekler */
.banner-sahne { position: relative; width: 420px; flex: none; overflow: hidden; }
.banner-sahne .kemer { position: absolute; bottom: -40px; right: 46px; width: 220px; height: 300px;
  border-radius: 110px 110px 0 0; background: linear-gradient(180deg, rgba(255, 255, 255, .55), rgba(255, 240, 232, .15));
  border: 1px solid rgba(255, 255, 255, .65); }
.banner-sahne .kemer.k2 { right: 210px; width: 150px; height: 210px; border-radius: 75px 75px 0 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, .35), rgba(255, 240, 232, .08)); }
.banner-sahne .fener { position: absolute; color: #C99C4A; filter: drop-shadow(0 6px 14px rgba(217, 180, 91, .45)); }
.banner-sahne .fener.f1 { width: 64px; height: 64px; right: 120px; top: 26px; animation: fenerSalla 5s ease-in-out infinite; }
.banner-sahne .fener.f2 { width: 42px; height: 42px; right: 268px; top: 58px; opacity: .75;
  animation: fenerSalla 6s ease-in-out infinite reverse; }
@keyframes fenerSalla { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
.banner-sahne .cicek { position: absolute; color: var(--rose); }
.banner-sahne .cicek.c1 { width: 92px; height: 92px; right: 22px; bottom: 18px; opacity: .5; }
.banner-sahne .cicek.c2 { width: 54px; height: 54px; right: 330px; bottom: 30px; opacity: .35; }
.banner-sahne .cicek.c3 { width: 38px; height: 38px; right: 96px; bottom: 96px; opacity: .3; }
.banner-sahne .kalp { position: absolute; width: 34px; height: 34px; right: 208px; bottom: 64px;
  color: var(--rose); opacity: .35; }

/* ---------- Vitrin: 4'lü zengin aday kartları ---------- */
.vitrin { background: linear-gradient(180deg, #fff 70%, #FFF8F5); }
.mini-kartlar { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.mini-aday { padding: 26px 14px 20px; border-radius: 18px; gap: 4px;
             background: linear-gradient(180deg, #fff, #FFF9F6); }
.mini-aday .ma-ust { position: relative; display: inline-flex; padding: 5px; border-radius: 50%;
  background: conic-gradient(from 210deg, var(--rose), var(--gold), var(--mauve), var(--rose)); margin-bottom: 8px; }
.mini-aday .ma-ust .harf-avatar { border: 3px solid #fff; }
.harf-avatar.buyukav { width: 72px; height: 72px; font-size: 30px; margin-bottom: 0; }
.mini-aday .uyum { top: 12px; right: 12px; font-size: 12px; padding: 4px 10px;
  box-shadow: 0 4px 10px rgba(47, 107, 76, .16); }
.mini-aday .ad { font-size: 16px; font-family: var(--serif); }
.mini-aday .yer { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; }
.mini-aday .yer .ico { width: 13px; height: 13px; color: var(--rose); }
.mini-aday .cips { margin-top: 9px; }
.mini-aday .cips i { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; padding: 4px 10px; }
.mini-aday .cips i .ico { width: 12px; height: 12px; color: var(--rose-deep); }

/* ---------- Alt sıra (4 kart: talepler / danış / güven / tavsiye) ----------
   DİKKAT: burada auto-fit KULLANMA. Kart sayısı sabit 4; auto-fit geniş ekranda
   5-6 kolon üretip sondaki gözleri boş bırakıyor, dar ekranda ise sıçramalı
   (900px'te 1, 1024px'te 2) davranıyordu. Açık kolon sayısı öngörülebilir. */
.uclu { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }
.uclu .pcard { margin-bottom: 0; }
.guven-liste.buyuk { border-top: 0; padding-top: 2px; gap: 11px; }
.guven-liste.buyuk span { font-size: 13.5px; color: var(--ink); }
.guven-liste.buyuk .ico { width: 17px; height: 17px; background: #EAF3EC; border-radius: 50%; padding: 2px; }
.danis-ozet { border-bottom: 1px dashed var(--line); padding: 9px 0; }
.danis-ozet:last-of-type { border-bottom: 0; }
.danis-ozet p { margin: 0 0 4px; font-size: 13.5px; color: var(--ink); font-style: italic; }
.danis-ozet .cevaplandi { display: inline-flex; align-items: center; gap: 5px; font-size: 12px;
  font-weight: 800; color: var(--green); }
.danis-ozet .cevaplandi .ico { width: 13px; height: 13px; }
.danis-ozet .bekliyor { font-size: 12px; font-weight: 700; color: var(--mauve); }

/* ---------- Kart süslemeleri ----------
   .kart-sus mutlak konumlu: kapsayıcısı position:relative + overflow:hidden OLMALI,
   yoksa fener/çiçek kartın dışına taşar. Eskiden `.pyan .pcard`'a bağlıydı; sağ ray
   kaldırılınca tavsiye kartına taşındı. */
.pcard.tavsiye { position: relative; overflow: hidden; }
.kart-sus { position: absolute; right: 10px; bottom: 6px; pointer-events: none; }
.kart-sus .s-fener { width: 44px; height: 44px; color: var(--gold); opacity: .4;
  display: inline-block; vertical-align: bottom; }
.kart-sus .s-cicek { width: 34px; height: 34px; color: var(--rose); opacity: .3;
  display: inline-block; vertical-align: bottom; margin-right: -6px; }
.pcard.tavsiye .tirnak { font-family: var(--serif); font-size: 30px; color: var(--gold);
  line-height: .6; margin-right: 2px; }
.pcard.tavsiye blockquote { font-size: 16.5px; }
.pbtn.tam .ico { width: 15px; height: 15px; }
.halka { width: 92px; height: 92px; }
.halka svg { width: 92px; height: 92px; }
.halka b { font-size: 18px; }

/* ---------- Ara breakpoint'ler ---------- */
/* 1560 → 1180: sağ ray kalkınca içerik ~340px genişledi, eski eşik erken tetikleniyordu
   (1101px kolonda 4 kart rahat sığarken 3'e düşüp aşağı sarıyordu). Şeritler 4 kayıt
   döndürdüğü için üst sınır 4 kolonda sabit — auto-fit boş göz bırakırdı. */
@media (max-width: 1180px) { .mini-kartlar { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* 4 kart 1100px'lik kolonda 262px'e düşüyor (güven listesi metinleri sarıyor);
   2x2 bu genişlikte 4x1'den okunaklı. Tek kolona ancak sidebar kalkınca iniyor. */
@media (max-width: 1560px) { .uclu { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; } }
@media (max-width: 900px)  { .uclu { grid-template-columns: 1fr; } }
@media (max-width: 1180px) {
  .banner-sahne { width: 300px; }
  .banner-sahne .kemer.k2, .banner-sahne .cicek.c2, .banner-sahne .fener.f2, .banner-sahne .kalp { display: none; }
  .tb-ara { width: min(300px, 26vw); }
}
@media (max-width: 1080px) {
  .mini-kartlar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) { .tb-ara { display: none; } }
@media (max-width: 860px) {
  .picerik { padding: 16px 14px calc(86px + env(safe-area-inset-bottom)); }
  .banner { min-height: 0; }
  .banner-ic { padding: 24px 20px; }
  .banner h1 { font-size: 25px; }
  .banner-sahne { display: none; }
  .pcard { padding: 20px 16px; border-radius: 18px; }
}
.uclu .pcard-bas h2 { font-size: 17px; }
.uclu .pcard-bas .hepsi { flex: none; }
.banner-ic { padding: 32px 40px; }
.banner h1 { font-size: 33px; }


/* ============================================================
   Üyelik & Paketler sayfası + standart boş durum bileşeni
   ============================================================ */

/* ---------- Boş durum (tüm ekranlarda aynı format) ---------- */
.bos-durum { display: flex; flex-direction: column; align-items: center; text-align: center;
             gap: 4px; padding: 30px 16px 22px; }
.bos-durum .bd-ikon { width: 62px; height: 62px; border-radius: 50%; background: var(--blush);
  color: var(--rose-deep); display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 8px; animation: bdYuzer 3.4s ease-in-out infinite;
  box-shadow: 0 10px 22px rgba(217, 67, 92, .14); }
.bos-durum .bd-ikon .ico { width: 27px; height: 27px; }
@keyframes bdYuzer { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.bos-durum b { font-family: var(--serif); font-size: 16.5px; color: var(--ink); }
.bos-durum p { margin: 0; font-size: 13.5px; color: var(--ink-soft); max-width: 340px; }
.bos-durum .pbtn { margin-top: 12px; }
.bos-durum.mini { padding: 18px 8px 12px; }
.bos-durum.mini .bd-ikon { width: 50px; height: 50px; }
.bos-durum.mini .bd-ikon .ico { width: 22px; height: 22px; }
.bos-durum.mini b { font-size: 15px; }
@media (prefers-reduced-motion: reduce) { .bos-durum .bd-ikon { animation: none; } }

/* ---------- Üyelik durumu şeridi ---------- */
.uz-durum { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  background: var(--surface); border: 1px solid var(--line); border-radius: 20px; box-shadow: var(--shadow);
  padding: 20px 26px; margin-bottom: 22px; animation: kartGiris .5s cubic-bezier(.2, .8, .3, 1.1) both; }
.uzd-parca { display: flex; align-items: center; gap: 16px; }
.uzd-baslik { display: block; font-family: var(--serif); font-size: 21px; }
.uzd-parca span { font-size: 13.5px; color: var(--ink-soft); }
.halka.kucuk { width: 68px; height: 68px; }
.halka.kucuk svg { width: 68px; height: 68px; }
.halka.kucuk b { font-size: 19px; font-family: var(--serif); }
.uzd-rozetler { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.rozet.sonuk { background: var(--cream); color: var(--mauve); border: 1px dashed var(--line); }

/* ---------- Paket kartları (panel) ---------- */
.pk-kartlar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.pk-kart { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 26px 14px 20px; border: 2px solid var(--line); border-radius: 18px; background: #fff;
  cursor: pointer; text-align: center; opacity: 0;
  animation: kartGiris .5s cubic-bezier(.2, .8, .3, 1.1) forwards;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.pk-kart:nth-child(1) { animation-delay: .05s; }
.pk-kart:nth-child(2) { animation-delay: .15s; }
.pk-kart:nth-child(3) { animation-delay: .25s; }
.pk-kart input { position: absolute; opacity: 0; pointer-events: none; }
.pk-kart > b { font-size: 19px; font-family: var(--serif); }
.pk-kart .pk-gun { font-size: 12.5px; font-weight: 800; color: var(--green); background: #EAF3EC;
  border-radius: 999px; padding: 3px 11px; margin-top: 3px; }
.pk-kart .pk-tutar { font-size: 21px; font-weight: 800; color: var(--rose-deep); margin-top: 8px; }
.pk-kart .pk-rozet { position: absolute; top: -11px; left: 50%; transform: translateX(-50%); white-space: nowrap;
  background: var(--gold); color: #4A3A12; font-size: 11px; font-weight: 800; padding: 3px 11px; border-radius: 999px; }
.pk-kart:hover { transform: translateY(-3px); border-color: var(--rose); }
.pk-kart:has(input:checked) { border-color: var(--rose); background: #FFF6F4;
  box-shadow: 0 12px 28px rgba(217, 67, 92, .18); transform: translateY(-3px); }
.pk-kart:has(input:checked)::after { content: ""; position: absolute; top: 10px; right: 10px; width: 22px; height: 22px;
  border-radius: 50%; background: var(--rose) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12.5l5 5L20 6.5"/></svg>') center/13px no-repeat;
  animation: onayPat .35s cubic-bezier(.2, 1.4, .4, 1) both; }

/* ---------- Eklenti kartları + örnek animasyonlar (panel) ---------- */
.ek-kartlar { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 8px; }
.ek-kart { display: flex; flex-direction: column; gap: 8px; padding: 18px 18px 15px; border: 2px solid var(--line);
  border-radius: 18px; background: #fff; cursor: pointer; opacity: 0;
  animation: kartGiris .5s cubic-bezier(.2, .8, .3, 1.1) forwards;
  transition: border-color .22s ease, box-shadow .22s ease; }
.ek-kart:nth-child(1) { animation-delay: .2s; }
.ek-kart:nth-child(2) { animation-delay: .3s; }
.ek-kart:has(input:checked) { border-color: var(--rose); background: #FFF6F4;
  box-shadow: 0 10px 24px rgba(217, 67, 92, .14); }
.ek-kart .ek-ust { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; }
.ek-kart .ek-ust input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--rose); flex: none; }
.ek-kart .ek-fiyat { font-style: normal; font-weight: 800; color: var(--rose-deep); font-size: 13.5px; }
.ek-kart > p { margin: 0; font-size: 13px; color: var(--ink-soft); }
.ek-kart .ek-not { font-size: 12px; font-weight: 700; color: var(--green); background: #EAF3EC;
  border-radius: 999px; padding: 4px 11px; align-self: flex-start; }
.ek-demo { margin-top: 4px; border: 1px dashed var(--line); border-radius: 12px; background: var(--cream);
  padding: 10px; overflow: hidden; }
.demo-one { display: flex; flex-direction: column; gap: 6px; }
.demo-one .d-kart { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line);
  border-radius: 8px; padding: 7px 10px; }
.demo-one .d-kart i { width: 22px; height: 22px; border-radius: 50%; background: rgba(201, 159, 168, .35); flex: none; }
.demo-one .d-kart em { font-style: normal; font-size: 11px; font-weight: 800; color: var(--rose-deep); }
.demo-one .d-kart.siz { order: -1; border-color: var(--gold); box-shadow: 0 4px 12px rgba(217, 180, 91, .35);
  animation: oneYuksel 3.2s ease-in-out infinite; }
.demo-one .d-kart.siz i { background: var(--gold); }
@keyframes oneYuksel {
  0% { transform: translateY(34px); opacity: .5; }
  30%, 88% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(0); opacity: 1; }
}
.demo-gizli { position: relative; display: flex; align-items: center; justify-content: center; min-height: 78px; }
.demo-gizli .d-profil { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line);
  border-radius: 8px; padding: 8px 14px; animation: gizliSol 3.2s ease-in-out infinite; }
.demo-gizli .d-profil i { width: 24px; height: 24px; border-radius: 50%; background: rgba(201, 159, 168, .35); }
.demo-gizli .d-profil em { font-style: normal; font-size: 11px; font-weight: 800; color: var(--ink-soft); }
.demo-gizli .d-kilit { position: absolute; width: 30px; height: 30px; border-radius: 50%; background: var(--green);
  color: #fff; display: flex; align-items: center; justify-content: center; animation: kilitGel 3.2s ease-in-out infinite; }
.demo-gizli .d-kilit .ico { width: 16px; height: 16px; }
@keyframes gizliSol { 0%, 18% { opacity: 1; filter: blur(0); } 45%, 88% { opacity: .3; filter: blur(1.6px); } 100% { opacity: .3; } }
@keyframes kilitGel { 0%, 18% { opacity: 0; transform: scale(.5); } 45%, 88% { opacity: 1; transform: scale(1); } 100% { opacity: 1; } }

/* ---------- Toplam şeridi ---------- */
.uz-toplam { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  background: linear-gradient(120deg, #fff 40%, #FFF3EF); }
.ut-etiket { display: block; font-size: 11.5px; font-weight: 800; color: var(--ink-soft);
  text-transform: uppercase; letter-spacing: .05em; }
.ut-tutar { font-family: var(--serif); font-size: 38px; color: var(--rose-deep); line-height: 1.1; }
.ut-tl { font-weight: 800; color: var(--rose-deep); margin-left: 6px; font-size: 17px; }
.ut-ozet { display: block; font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; }
.pbtn.buyukbtn { padding: 15px 30px; font-size: 16px; border-radius: 16px; }
.pbtn.buyukbtn .ico { width: 17px; height: 17px; }
.hafif { font-size: 12px; font-weight: 400; color: var(--ink-soft); }
.odeme-goster { animation: kartGiris .5s cubic-bezier(.2, .8, .3, 1.1) both; }

@media (max-width: 900px) {
  .pk-kartlar { grid-template-columns: 1fr; }
  .pk-kart { flex-direction: row; flex-wrap: wrap; justify-content: space-between; text-align: left; padding: 16px 18px; }
  .pk-kart .pk-tutar { margin-top: 0; }
  .ek-kartlar { grid-template-columns: 1fr; }
  .uzd-rozetler { align-items: flex-start; }
  .uz-toplam { flex-direction: column; align-items: stretch; text-align: center; }
  .pbtn.buyukbtn { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .pk-kart, .ek-kart, .uz-durum, .odeme-goster { animation-duration: .01s; }
  .demo-one .d-kart.siz, .demo-gizli .d-profil, .demo-gizli .d-kilit { animation: none; }
}
@media (max-width: 900px) { .pk-kart:has(input:checked)::after { top: -9px; right: -9px; } }


/* Ultra geniş ekranlar: vitrin kartları ve aside oranı */
@media (min-width: 1900px) {
  .mini-kartlar { gap: 20px; }
  .banner-sahne { width: 520px; }
}


/* ============================================================
   Üye Girişi — sahneli tasarım (background.jpg + merkez kart)
   ============================================================ */
.giris-sayfa { margin: 0; background: var(--cream); }
.giris-sahne { min-height: 88vh; display: flex; align-items: center; justify-content: center;
  padding: 34px 16px; position: relative;
  /* Çift katman: üstte fotoğraf, altta degrade — görsel yüklenmezse degrade görünür */
  background-image: url('/img/background.jpg'), linear-gradient(160deg, var(--blush), var(--cream) 55%);
  background-size: cover, cover; background-position: center, center; }
.giris-sahne::before { content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, .06), rgba(90, 40, 50, .16)); }

.giris-kart { position: relative; width: 100%; max-width: 460px; background: rgba(255, 253, 251, .96);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, .8); border-radius: 24px; padding: 34px 38px 30px;
  box-shadow: 0 30px 80px rgba(70, 25, 35, .35); text-align: center;
  animation: kartGiris .55s cubic-bezier(.2, .8, .3, 1.1) both; }

.g-marka { display: flex; flex-direction: column; align-items: center; gap: 3px; margin-bottom: 18px; }
.g-logo-resim { width: 76px; height: 76px; border-radius: 50%; object-fit: cover;
  border: 3px solid #fff; box-shadow: 0 0 0 2px #C99C4A, 0 10px 24px rgba(70, 25, 35, .25); margin-bottom: 6px; }
.g-marka b { font-family: var(--serif); font-size: 21px; letter-spacing: .14em; color: var(--rose-deep); }
.g-marka i { font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .22em;
  text-transform: uppercase; color: #8A6A2C; }
.g-minik-kalp { width: 12px; height: 12px; color: var(--rose); margin-top: 4px; }

/* Alt başlık login'den kaldırıldı (marka sloganıyla aynı şeyi söylüyordu) ama engelli.php
   hâlâ .g-alt basıyor — h1'in alt boşluğu buna göre kendini ayarlar. */
.giris-kart h1 { font-family: var(--serif); font-size: 26px; margin: 0 0 18px; color: var(--ink); }
.giris-kart h1:has(+ .g-alt) { margin-bottom: 4px; }
.g-alt { color: var(--ink-soft); font-size: 14px; margin: 0 0 18px; }
.g-hata { background: #FBE9EC; border: 1px solid #F0C7CE; color: var(--rose-deep); font-size: 13.5px;
  font-weight: 700; border-radius: 12px; padding: 10px 14px; margin: 0 0 14px; }

.giris-kart form { text-align: left; }
.giris-kart label { display: block; font-size: 13px; font-weight: 700; color: var(--ink); margin: 12px 0 6px; }
.g-alan { position: relative; }
.g-alan .gi { position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; color: var(--mauve); pointer-events: none; }
.g-alan input { width: 100%; padding: 12px 44px 12px 42px; border: 1px solid var(--line);
  border-radius: 12px; font-size: 14.5px; background: #fff; color: var(--ink); }
.g-alan input::placeholder { color: #8F7278; }
.g-alan input:focus { outline: 2px solid var(--rose); outline-offset: 1px; }
.g-goz { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0;
  background: none; padding: 8px; cursor: pointer; color: var(--ink-soft); display: flex; border-radius: 8px; }
.g-goz svg { width: 19px; height: 19px; }
.g-goz:hover { color: var(--rose-deep); }
.g-goz.acik { color: var(--rose); }

.g-satir { display: flex; justify-content: flex-end; margin: 10px 0 16px; }
.g-unut { font-size: 13px; font-weight: 700; color: var(--ink-soft); }
.g-unut:hover { color: var(--rose-deep); }

.g-btn { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--rose); color: #fff; border: 0; border-radius: 12px; padding: 14px 20px;
  font-size: 15.5px; font-weight: 800; cursor: pointer; transition: background .15s, transform .12s; }
.g-btn:hover { background: var(--rose-deep); }
.g-btn:active { transform: scale(.985); }
.g-btn svg { width: 18px; height: 18px; }

.g-veya { display: flex; align-items: center; gap: 14px; margin: 18px 0 12px; color: var(--ink-soft); font-size: 12.5px; }
.g-veya::before, .g-veya::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.g-kayit { font-size: 14px; color: var(--ink-soft); margin: 0 0 18px; }
.g-kayit a { display: inline-flex; align-items: center; gap: 5px; font-weight: 800; color: var(--rose-deep); }
.g-kayit a svg { width: 15px; height: 15px; }

.g-guven { display: flex; gap: 11px; align-items: flex-start; text-align: left; background: var(--cream);
  border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; font-size: 12.5px;
  color: var(--ink-soft); }
.g-guven b { display: block; color: var(--ink); font-size: 13px; }
.gg-ikon { width: 34px; height: 34px; flex: none; border-radius: 10px; background: var(--green);
  color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.gg-ikon svg { width: 18px; height: 18px; }

/* Alt güven şeridi */
.giris-serit { display: flex; justify-content: center; gap: clamp(24px, 6vw, 90px); flex-wrap: wrap;
  padding: 22px 18px 26px; background: var(--cream); }
.gs-oge { display: flex; align-items: center; gap: 11px; }
.gs-ikon { width: 40px; height: 40px; border-radius: 50%; background: var(--blush); color: var(--rose-deep);
  display: inline-flex; align-items: center; justify-content: center; flex: none; }
.gs-ikon svg { width: 19px; height: 19px; }
.gs-oge b { display: block; font-size: 14px; color: var(--ink); }
.gs-oge i { font-style: normal; font-size: 12.5px; color: var(--ink-soft); }

@media (max-width: 560px) {
  .giris-sahne { padding: 20px 12px; min-height: 92vh; align-items: flex-start; }
  .giris-kart { padding: 26px 22px 24px; margin-top: 4vh; }
  .giris-serit { flex-direction: column; align-items: flex-start; gap: 14px; padding-left: 28px; }
}
@media (prefers-reduced-motion: reduce) { .giris-kart { animation: none; } }

/* Engellenmiş giriş sayfası (reddedildi/yasaklı) */
.engel-ikon { width: 66px; height: 66px; border-radius: 50%; background: #FBE9EC; color: var(--rose-deep);
  display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.engel-ikon svg { width: 34px; height: 34px; }
.engel-sebep { text-align: left; background: var(--cream); border: 1px solid var(--line);
  border-left: 4px solid var(--rose); border-radius: 12px; padding: 12px 15px; margin: 4px 0 18px; }
.engel-sebep .es-etiket { font-size: 11.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-soft); }
.engel-sebep p { margin: 4px 0 0; font-size: 14px; color: var(--ink); white-space: pre-line; }

/* ---------- Panel onay modalı (çıkış vb.) ---------- */
.p-modal-ort { display: none; position: fixed; inset: 0; z-index: 70; background: rgba(51, 38, 43, .48);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); align-items: center; justify-content: center; padding: 18px; }
.p-modal-ort.acik { display: flex; animation: pmGiris .18s ease both; }
@keyframes pmGiris { from { opacity: 0; } to { opacity: 1; } }
.p-modal { background: #fff; border-radius: 20px; padding: 28px 26px 22px; width: 100%; max-width: 400px;
  text-align: center; box-shadow: 0 30px 70px rgba(50, 20, 30, .38);
  animation: pmKart .28s cubic-bezier(.2, 1.2, .4, 1) both; }
@keyframes pmKart { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
.pm-ikon { width: 56px; height: 56px; border-radius: 50%; background: var(--blush); color: var(--rose-deep);
  display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.pm-ikon .ico { width: 26px; height: 26px; }
.p-modal h3 { font-family: var(--serif); font-size: 20px; margin: 0 0 6px; }
.p-modal p { color: var(--ink-soft); font-size: 13.5px; margin: 0 0 18px; }
.pm-alt { display: flex; gap: 10px; justify-content: center; }
.pm-alt .pbtn { min-width: 118px; justify-content: center; }
@media (prefers-reduced-motion: reduce) { .p-modal-ort.acik, .p-modal { animation: none; } }

/* ---------- Öne Çıkarma (ücretli vitrin) rozetleri ---------- */
/* Rozet akış içinde durur; mutlak konumlanınca isim satırının üstüne biniyordu */
.one-rozet { display: inline-flex; align-self: flex-start; margin-bottom: 10px;
  background: linear-gradient(120deg, #F3D98B, var(--gold)); color: #5C4708;
  font-size: 10px; font-weight: 800; letter-spacing: .06em; border-radius: 999px; padding: 3px 9px;
  box-shadow: 0 4px 10px rgba(217, 180, 91, .4); }
.aday.one-cikan, .mini-aday.one-cikan { position: relative; border-color: var(--gold);
  box-shadow: 0 10px 26px rgba(217, 180, 91, .22); background: linear-gradient(180deg, #FFFDF7, #FFF9F0); }
.aday.one-cikan { display: flex; flex-direction: column; }
.aday.one-cikan .skor { top: 40px; right: 14px; }
/* Mini kartta ayrı rozet yok: kart başlığı zaten "Öne Çıkanlar", altın çerçeve işaret olarak yeter */
.one-cikan-kart { border-color: #EBD9A8; background: linear-gradient(180deg, #fff 70%, #FFFBF2); }
.one-cikan-kart .bas-ikon { color: #C99C4A; }

/* Aday listesi başlık sayacı */
#liste-sayi { color: var(--ink-soft); font-weight: 700; font-size: 13px; }

/* Filtre butonları: dar ekranda 150px'lik ızgara hücresine sığmıyor, tam satıra alınır */
.filtreler .filtre-aksiyon { display: flex; align-items: flex-end; gap: 8px; min-width: 0; }
.filtreler .filtre-aksiyon .pbtn { flex: 1 1 auto; justify-content: center; white-space: nowrap; }
@media (max-width: 620px) { .filtreler .filtre-aksiyon { grid-column: 1 / -1; } }

/* ============================================================
   Aday hikaye kartı — 9:16, altın varak süslemeli açık tema.
   KAYDIRMA YOK: .hik-ic flex kolon; .hik-bas ve .hik-alt sabit,
   yalnız .hik-govde kendi içinde kayar → butonlar hep görünür.
   Işıltı: .isilti-3 (>=85) / .isilti-2 (70-84) / .isilti-1 (50-69) / .isilti-0 (<50)
   ============================================================ */
.hik-ort { position: fixed; inset: 0; z-index: 120; display: none; align-items: center; justify-content: center;
  padding: 18px; background: rgba(74, 40, 52, .5); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); }
.hik-ort.acik { display: flex; animation: hikOrtGir .2s ease forwards; }
@keyframes hikOrtGir { from { opacity: 0; } to { opacity: 1; } }

/* DİKKAT: kapat butonu hem KOYU perdenin hem de AÇIK kartın üstüne denk gelebilir
   (mobilde kart tam ekran, tablette de kartın üstüne biniyor). Bu yüzden yarı saydam
   DEĞİL, dolu zeminli ve koyu ikonlu — her iki zeminde de okunur. */
.hik-kapat { position: absolute; top: 14px; right: 14px; z-index: 6; width: 44px; height: 44px;
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  background: #fff; color: var(--rose-deep); border: 1.5px solid rgba(201, 162, 39, .55);
  box-shadow: 0 4px 16px rgba(60, 25, 38, .28); transition: background .15s, transform .12s; }
.hik-kapat:hover { background: #FDF0EC; }
.hik-kapat:active { transform: scale(.93); }
.hik-kapat:focus-visible { outline: 3px solid var(--rose); outline-offset: 2px; }
.hik-kapat .ico { width: 22px; height: 22px; stroke-width: 2.6; }

/* 9:16 — Instagram hikayesi oranı */
.hik-kart { position: relative; aspect-ratio: 9 / 16; height: min(94vh, 880px); max-width: calc(100vw - 28px);
  border-radius: 20px; overflow: hidden; color: #4A2F38;
  background:
    radial-gradient(120% 60% at 50% 0%, #FFF7F4 0%, transparent 60%),
    linear-gradient(168deg, #FDF0EC 0%, #FBE4DE 52%, #F7D9D3 100%);
  box-shadow: 0 24px 64px rgba(74, 30, 44, .38), 0 0 0 1px rgba(201, 162, 39, .5);
  animation: hikKartGir .4s cubic-bezier(.2, .8, .3, 1.1) both; }
@keyframes hikKartGir { from { opacity: 0; transform: translateY(22px) scale(.95); } to { opacity: 1; transform: none; } }
.hik-ort.yukleniyor .hik-kart { opacity: .4; }

/* Damask doku — çok soluk, altın tonlu */
.hik-kart::before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    radial-gradient(circle at 20% 18%, rgba(201, 162, 39, .09) 0 12px, transparent 13px),
    radial-gradient(circle at 72% 38%, rgba(201, 162, 39, .07) 0 14px, transparent 15px),
    radial-gradient(circle at 38% 72%, rgba(201, 162, 39, .07) 0 11px, transparent 12px),
    radial-gradient(circle at 84% 84%, rgba(201, 162, 39, .06) 0 13px, transparent 14px); }

/* Altın varak çerçeve: ince çift çizgi + köşe süsleri + madalyonlar */
.hik-kart::after { content: ''; position: absolute; inset: 13px; border-radius: 12px; pointer-events: none;
  border: 1.5px solid rgba(201, 162, 39, .55); box-shadow: inset 0 0 0 3.5px rgba(201, 162, 39, .13); }
.hik-kose { position: absolute; width: 74px; height: 74px; z-index: 2; pointer-events: none; }
.hik-kose.ku { top: 8px; left: 8px; }
.hik-kose.su { top: 8px; right: 8px; transform: scaleX(-1); }
.hik-kose.ka { bottom: 8px; left: 8px; transform: scaleY(-1); }
.hik-kose.sa { bottom: 8px; right: 8px; transform: scale(-1); }
.hik-madalyon { position: absolute; left: 50%; width: 108px; height: 36px; margin-left: -54px;
  z-index: 2; pointer-events: none; }
.hik-madalyon.ust { top: 5px; }
.hik-madalyon.alt { bottom: 5px; transform: scaleY(-1); }

/* --- İç yerleşim: üst sabit / orta kayar / alt sabit --- */
.hik-ic { position: relative; z-index: 3; height: 100%; display: flex; flex-direction: column;
  padding: 46px 22px 38px; text-align: center; overflow: hidden; }
.hik-bas { flex: none; display: flex; flex-direction: column; align-items: center; }

.hik-rozetler { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.hik-rozet { font-size: 9.5px; font-weight: 800; letter-spacing: .1em; border-radius: 999px; padding: 4px 10px; }
.hik-rozet.one { background: linear-gradient(120deg, #F6E3B0, #C9A227); color: #4A3405; }
.hik-rozet.pasif { background: #EFE7E4; color: #7A6C67; border: 1px solid #E0D4CF; }

.hik-avatar-kap { position: relative; display: inline-flex; margin: 8px 0 10px; }
.hik-avatar { width: 84px; height: 84px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-size: 35px; font-weight: 700; color: #8A5A2B;
  background: linear-gradient(160deg, #FFF6E4, #F3DCB0);
  border: 3px solid #fff;
  box-shadow: 0 0 0 3px #C9A227, 0 0 0 6px rgba(201, 162, 39, .22), 0 8px 20px rgba(120, 70, 40, .18); }
/* Uyum mührü — avatarın sağ altında, referanstaki onay rozetinin yerinde */
.hik-muhur { position: absolute; right: -16px; bottom: -2px; min-width: 46px; padding: 4px 7px 3px;
  border-radius: 14px; background: linear-gradient(150deg, #F6E3B0, #C9A227); border: 2.5px solid #fff;
  box-shadow: 0 4px 12px rgba(140, 100, 20, .3); display: flex; flex-direction: column; align-items: center; }
.hik-muhur b { font-family: var(--serif); font-size: 15px; line-height: 1; color: #4A3405; }
.hik-muhur i { font-style: normal; font-size: 7.5px; letter-spacing: .14em; text-transform: uppercase; color: #6B4E10; }
.hik-muhur.yesil { background: linear-gradient(150deg, #A8DCC0, #2F6B4C); }
.hik-muhur.yesil b { color: #fff; } .hik-muhur.yesil i { color: #DBF0E4; }

.hik-ad { font-family: var(--serif); font-size: 24px; line-height: 1.15; color: #45242F; }
.hik-yer { font-size: 12.5px; color: #8A6B72; margin-top: 3px; }
.hik-ayrac { width: 88px; height: 12px; margin: 7px 0 6px; }

.hik-alinti { margin: 0 0 11px; font-family: var(--serif); font-style: italic; font-size: 13.5px; line-height: 1.5;
  color: #6E4A55; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Onaylı profil şeridi (eski iki büyük nişan kartının yerine — yer kazandırır) */
.hik-onayli { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 9px;
  padding: 5px 12px; border-radius: 999px; font-size: 11px; font-weight: 700;
  background: #E7F3EC; color: var(--green); border: 1px solid #CFE5D9; }
.hik-onayli .ico { width: 13px; height: 13px; }

/* --- Gövde: TEK kayan alan (gerekirse), akordeon YOK --- */
.hik-govde { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  text-align: left; padding-right: 3px; }
.hik-govde::-webkit-scrollbar { width: 3px; }
.hik-govde::-webkit-scrollbar-thumb { background: rgba(201, 162, 39, .45); border-radius: 3px; }

/* Bilgi ızgarası — dolu olan her alan tek bakışta */
.hik-izgara { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.hik-cip { background: rgba(255, 255, 255, .72); border: 1px solid rgba(201, 162, 39, .28);
  border-radius: 12px; padding: 7px 10px; min-width: 0; }
.hik-cip i { display: block; font-style: normal; font-size: 9px; letter-spacing: .09em;
  text-transform: uppercase; color: #9A7A82; margin-bottom: 1px; }
.hik-cip b { font-size: 12.5px; font-weight: 600; color: #45242F; overflow-wrap: anywhere; }

/* Eşinde aradıkları */
.hik-serbest { margin-top: 11px; }
.hik-serbest b { display: block; font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  color: #B8902F; margin-bottom: 4px; }
.hik-serbest p { margin: 0; font-size: 12.5px; line-height: 1.6; color: #5C3C46; white-space: pre-line; }

/* --- Alt aksiyonlar: SABİT, kaydırma gerektirmez --- */
.hik-alt { flex: none; display: flex; gap: 8px; padding-top: 12px; }
.hik-btn { flex: 1; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 12px 10px; border-radius: 999px; font-size: 14px; font-weight: 700; cursor: pointer;
  border: 1.5px solid var(--rose); background: #fff; color: var(--rose-deep);
  transition: transform .12s, background .16s, color .16s; }
.hik-btn:active { transform: scale(.97); }
/* "Sohbete Git" bir <a> — .hik-btn <button> için yazıldığından alt çizgiyi kendi almalı. */
a.hik-btn { text-decoration: none; }
.hik-btn.birincil { background: var(--rose); border-color: var(--rose); color: #fff; }
.hik-btn.birincil:hover { background: var(--rose-deep); }
.hik-btn:disabled { opacity: .6; cursor: default; }
.hik-btn .ico { width: 16px; height: 16px; flex: none; }
.hik-fav { border-color: rgba(201, 162, 39, .7); color: #96751C; }
.hik-fav:hover { background: #FFFAEE; }
.hik-fav .ico { opacity: .45; transition: opacity .16s; }
.hik-fav.dolu { background: linear-gradient(120deg, #F6E3B0, #C9A227); border-color: #C9A227; color: #4A3405; }
.hik-fav.dolu .ico { opacity: 1; }
.hik-fav.atma .ico { animation: hikYildizAt .5s cubic-bezier(.2, .8, .3, 1.3); }
@keyframes hikYildizAt { 0% { transform: scale(1); } 45% { transform: scale(1.5) rotate(18deg); } 100% { transform: scale(1); } }
.hik-not { flex: 1; display: flex; align-items: center; justify-content: center; text-align: center;
  font-size: 12px; line-height: 1.4; color: #7A5B63; border: 1px dashed rgba(201, 162, 39, .5);
  border-radius: 14px; padding: 9px 10px; }
.hik-not.basarili { color: var(--green); border-color: rgba(47, 107, 76, .45); border-style: solid; background: #EFF7F2; }
.hik-dip { flex: none; display: flex; align-items: center; justify-content: center; gap: 5px;
  padding-top: 9px; font-size: 10px; color: #A08A90; }
.hik-dip .ico { width: 11px; height: 11px; }

/* Üyeliği bitmiş aday: soluk */
.hik-kart.pasif { filter: saturate(.5); }
.hik-kart.pasif .hik-avatar { background: linear-gradient(160deg, #F0EAE7, #D6CBC6); color: #6B5B55;
  box-shadow: 0 0 0 3px #B9A99F, 0 0 0 6px rgba(160, 145, 135, .2); }

/* ---------- Işıltı kademeleri ---------- */
.hik-parlak { position: absolute; inset: 0; z-index: 4; pointer-events: none; opacity: 0;
  background: linear-gradient(105deg, transparent 38%, rgba(255, 246, 220, .55) 47%,
              rgba(255, 252, 238, .85) 51%, rgba(255, 240, 200, .5) 56%, transparent 64%);
  transform: translateX(-120%); mix-blend-mode: overlay; }
.isilti-1 .hik-parlak { opacity: .55; animation: hikParla 8.5s ease-in-out 1.2s infinite; }
.isilti-2 .hik-parlak { opacity: .85; animation: hikParla 5s ease-in-out .8s infinite; }
.isilti-3 .hik-parlak { opacity: 1;  animation: hikParla 3.1s ease-in-out .4s infinite; }
@keyframes hikParla {
  0%   { transform: translateX(-120%); }
  55%  { transform: translateX(120%); }
  100% { transform: translateX(120%); }
}

/* Yıldız serpintisi — DİKKAT: background-size 100% iken background-position ETKİSİZDİR,
   her parçacığın merkezi gradyanın kendi içinde 'circle at X% Y%' ile verilir. */
.hik-isilti { position: absolute; inset: 0; z-index: 4; pointer-events: none; opacity: 0;
  filter: drop-shadow(0 0 3px rgba(201, 162, 39, .8));
  background-image:
    radial-gradient(circle at 13% 15%, rgba(255, 250, 226, 1) 0 2.6px, rgba(214, 172, 60, .5) 3.2px, transparent 8px),
    radial-gradient(circle at 82% 22%, rgba(255, 246, 214, 1) 0 2px, rgba(214, 172, 60, .45) 2.6px, transparent 7px),
    radial-gradient(circle at 30% 44%, rgba(255, 250, 232, 1) 0 3px, rgba(214, 172, 60, .5) 3.6px, transparent 9px),
    radial-gradient(circle at 90% 57%, rgba(240, 205, 120, 1) 0 2.2px, rgba(214, 172, 60, .45) 2.8px, transparent 7px),
    radial-gradient(circle at 18% 74%, rgba(255, 246, 214, 1) 0 2.4px, rgba(214, 172, 60, .45) 3px, transparent 8px),
    radial-gradient(circle at 68% 88%, rgba(255, 250, 226, 1) 0 2.8px, rgba(214, 172, 60, .5) 3.4px, transparent 9px),
    radial-gradient(circle at 52% 30%, rgba(255, 248, 224, 1) 0 2.1px, transparent 6px),
    radial-gradient(circle at 7% 50%, rgba(250, 226, 160, 1) 0 2.5px, transparent 7px),
    radial-gradient(circle at 76% 70%, rgba(255, 252, 240, 1) 0 1.9px, transparent 6px); }
.isilti-1 .hik-isilti { animation: hikSerpKisik 6.5s ease-in-out infinite; }
.isilti-2 .hik-isilti { animation: hikSerp 4.2s ease-in-out infinite; }
.isilti-3 .hik-isilti { animation: hikSerp 2.6s ease-in-out infinite; }
@keyframes hikSerp      { 0%, 100% { opacity: .2; } 50% { opacity: 1; } }
@keyframes hikSerpKisik { 0%, 100% { opacity: .07; } 50% { opacity: .35; } }

/* Çerçeve parıltısı — yalnız yüksek uyumda */
.isilti-2 .hik-kose, .isilti-2 .hik-madalyon { animation: hikKoseParla 4.2s ease-in-out infinite; }
.isilti-3 .hik-kose, .isilti-3 .hik-madalyon { animation: hikKoseParla 2.6s ease-in-out infinite; }
@keyframes hikKoseParla {
  0%, 100% { filter: none; }
  50%      { filter: drop-shadow(0 0 5px rgba(201, 162, 39, .95)); }
}
.isilti-3 { box-shadow: 0 24px 64px rgba(74, 30, 44, .38), 0 0 0 1px rgba(201, 162, 39, .8),
                        0 0 44px rgba(201, 162, 39, .35); }

@media (prefers-reduced-motion: reduce) {
  .hik-kart, .hik-parlak, .hik-isilti, .hik-kose, .hik-madalyon, .hik-fav.atma .ico { animation: none !important; }
  .hik-isilti { opacity: .3; }
}

/* Mobil: tam ekran, oran serbest — yerleşim yine kaydırmasız */
@media (max-width: 560px) {
  .hik-ort { padding: 0; }
  .hik-kart { height: 100dvh; width: 100vw; max-width: 100vw; aspect-ratio: auto; border-radius: 0; }
  .hik-kart::after { inset: 9px; }
  .hik-kose { width: 64px; height: 64px; }
  .hik-kose.ku { top: 5px; left: 5px; } .hik-kose.su { top: 5px; right: 5px; }
  .hik-kose.ka { bottom: 5px; left: 5px; } .hik-kose.sa { bottom: 5px; right: 5px; }
  .hik-ic { padding: 62px 20px calc(42px + env(safe-area-inset-bottom)); }
  .hik-kapat { top: calc(10px + env(safe-area-inset-top)); right: 12px; }
}

/* Kısa ekranlarda üst blok küçülür ki butonlar hep sığsın */
@media (max-height: 700px) {
  .hik-avatar { width: 74px; height: 74px; font-size: 31px; }
  .hik-ad { font-size: 22px; }
  .hik-ayrac { margin: 6px 0 5px; }
  .hik-alinti { -webkit-line-clamp: 1; margin-bottom: 8px; }
  .hik-ic { padding-top: 42px; padding-bottom: 38px; }
}

/* ---------- Favorilerim ---------- */
.fav-liste { display: flex; flex-direction: column; gap: 10px; }
.fav-kart { display: flex; align-items: stretch; gap: 8px; border: 1px solid var(--line); border-radius: 16px;
  background: linear-gradient(180deg, #fff, #FFFBF9); transition: transform .16s, box-shadow .16s, opacity .22s; }
.fav-kart:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.fav-kart.cikiyor { opacity: 0; transform: translateX(24px); }
.fav-kart.one-cikan { border-color: var(--gold); background: linear-gradient(180deg, #FFFDF7, #FFF9F0); }
.fav-govde { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 14px 4px 14px 14px;
  background: none; border: 0; cursor: pointer; text-align: left; font: inherit; color: inherit; }
.fav-avatar { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--blush);
  color: var(--rose-deep); display: flex; align-items: center; justify-content: center;
  font-family: var(--serif); font-weight: 800; font-size: 19px; }
.fav-bilgi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.fav-bilgi > b { font-size: 15px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.fav-one { font-style: normal; font-size: 9px; font-weight: 800; letter-spacing: .08em; border-radius: 999px;
  padding: 2px 7px; background: linear-gradient(120deg, #F3D98B, var(--gold)); color: #5C4708; }
.fav-bilgi > i { font-style: normal; font-size: 12.5px; color: var(--ink-soft); }
.fav-ozet { font-size: 12px; color: var(--ink-soft); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fav-durum { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700;
  color: #6B6560; background: #EFECEA; border-radius: 999px; padding: 3px 9px; align-self: flex-start; margin-top: 3px; }
.fav-durum .ico { width: 12px; height: 12px; }
.fav-skor { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 58px; font-weight: 800; font-size: 15px; color: var(--rose-deep); }
.fav-skor.yesil { color: var(--green); }
.fav-skor i { font-style: normal; font-size: 9.5px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-soft); }
.fav-cikar { flex: none; width: 46px; border: 0; border-left: 1px solid var(--line); background: none;
  color: var(--gold); cursor: pointer; border-radius: 0 16px 16px 0; transition: background .16s, color .16s; }
.fav-cikar:hover { background: #FFF6E4; color: #B8912F; }
.fav-cikar:disabled { opacity: .5; cursor: default; }
.fav-cikar .ico { width: 19px; height: 19px; }

/* Süresi dolanlar: gri pasif fon, listenin altında ayrı kartta */
.fav-pasif-kart { background: linear-gradient(180deg, #FAF8F7, #F4F1EF); border-color: #E4DEDA; }
.fav-kart.pasif { background: #F2EFED; border-color: #E2DBD7; }
.fav-kart.pasif:hover { transform: none; box-shadow: none; }
.fav-kart.pasif .fav-avatar { background: #E2DBD7; color: #7A716C; }
.fav-kart.pasif .fav-bilgi > b, .fav-kart.pasif .fav-skor { color: #6B6560; }
.fav-kart.pasif .fav-cikar { color: #A39992; border-left-color: #E2DBD7; }

@media (max-width: 560px) {
  .fav-govde { padding: 12px 2px 12px 12px; gap: 10px; }
  .fav-avatar { width: 42px; height: 42px; font-size: 17px; }
  .fav-skor { min-width: 48px; font-size: 14px; }
  .fav-cikar { width: 40px; }
}

/* Aday kartı: tıklanabilir + yıldız butonu */
.aday.tiklanir { cursor: pointer; }
.aday.tiklanir:hover { border-color: var(--mauve); box-shadow: var(--shadow); }
.kart-fav { flex: none; width: 38px; height: 38px; border-radius: 50%; cursor: pointer;
  border: 1px solid var(--line); background: #fff; color: #C9B487;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .16s, color .16s, border-color .16s, transform .12s; }
.kart-fav:hover { border-color: var(--gold); color: var(--gold); background: #FFFCF4; }
.kart-fav:active { transform: scale(.92); }
.kart-fav.dolu { background: linear-gradient(120deg, #F3D98B, var(--gold)); border-color: var(--gold); color: #fff; }
.kart-fav:disabled { opacity: .55; cursor: default; }
.kart-fav .ico { width: 18px; height: 18px; }
.kart-fav.atma .ico { animation: hikYildizAt .5s cubic-bezier(.2, .8, .3, 1.3); }

/* mini-aday artık <button> — buton varsayılanlarını sıfırla */
button.mini-aday { font: inherit; color: inherit; cursor: pointer; width: 100%; }

/* Satır içindeki tıklanabilir profil bloğu (eşleşmeler sayfası) */
.satir-profil { flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px;
  background: none; border: 0; padding: 4px 6px 4px 4px; margin: -4px 0 -4px -4px; border-radius: 12px;
  cursor: pointer; text-align: left; font: inherit; color: inherit;
  transition: background .16s; }
.satir-profil:hover { background: #FDF4F1; }
.satir-profil:focus-visible { outline: 2px solid var(--rose); outline-offset: 1px; }
.satir-profil .esnek { flex: 1; min-width: 0; display: block; }
.satir-profil .esnek b { display: block; font-size: 14.5px; }
.satir-profil .esnek > span { display: block; font-size: 12.5px; color: var(--ink-soft); }

/* SVG sprite: display:none OLAMAZ — içindeki gradyan boya sunucusu çözülmez.
   Görsel olarak gizlenir ama render ağacında kalır. */
.hik-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ============================================================
   Kapsamlı Eşleşme Formu — 6 adımlı sihirbaz
   ============================================================ */
/* DİKKAT: sarmalın max-width'i VAR (uzun satır okunmaz) ama margin-inline:auto ŞART —
   yoksa geniş ekranda sola yapışır. Geniş ekranda soru kartları iki kolona geçer. */
.ef-sarmal { max-width: 780px; margin-inline: auto; }
.ef-ilerleme { margin-bottom: 16px; }
.ef-cubuklar { display: flex; gap: 5px; }
.ef-cubuk { flex: 1; height: 5px; border-radius: 999px; background: var(--line); transition: background .3s; }
.ef-cubuk.on { background: var(--rose); }
.ef-ilerleme-alt { display: flex; justify-content: space-between; align-items: center;
  margin-top: 7px; font-size: 12.5px; color: var(--ink-soft); }
#ef-yuzde-etiket b { color: var(--rose-deep); font-size: 14px; }

.ef-adim { display: none; }
.ef-adim.on { display: block; animation: efGir .35s cubic-bezier(.2, .8, .3, 1) both; }
@keyframes efGir { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* --- Adım başlığı: her adımın kendi teması --- */
.ef-header { position: relative; overflow: hidden; border-radius: 20px; padding: 22px 24px 20px;
  margin-bottom: 18px; color: #fff; }
.ef-header h2 { margin: 2px 0 4px; font-size: 24px; }
.efh-no { display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; opacity: .85; }
.efh-ozet { margin: 0; font-size: 14px; opacity: .92; }
.efh-ikon { position: absolute; top: 20px; right: 22px; width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255, 255, 255, .18); display: flex; align-items: center; justify-content: center; }
.efh-ikon .ico { width: 23px; height: 23px; }
.efh-desen { position: absolute; inset: 0; opacity: .16; pointer-events: none;
  background-image:
    radial-gradient(circle at 12% 20%, #fff 0 20px, transparent 21px),
    radial-gradient(circle at 88% 78%, #fff 0 26px, transparent 27px),
    radial-gradient(circle at 62% 12%, #fff 0 14px, transparent 15px); }
.efh-neden { position: relative; display: flex; gap: 9px; margin-top: 14px; padding: 11px 13px;
  background: rgba(255, 255, 255, .16); border-radius: 13px; font-size: 12.5px; line-height: 1.55; }
.efh-neden .ico { width: 16px; height: 16px; flex: none; margin-top: 1px; opacity: .9; }
.ef-header.tema-gul      { background: linear-gradient(135deg, #D9435C, #B93049); }
.ef-header.tema-yesil    { background: linear-gradient(135deg, #3E8C64, #2F6B4C); }
.ef-header.tema-mor      { background: linear-gradient(135deg, #A87A88, #7E5464); }
.ef-header.tema-lacivert { background: linear-gradient(135deg, #4A5B86, #33405F); }
.ef-header.tema-altin    { background: linear-gradient(135deg, #C9A227, #8E6F16); }

/* --- Sorular --- */
.ef-sorular { display: flex; flex-direction: column; gap: 14px; }
.ef-soru { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; }
.ef-metin { font-size: 15px; font-weight: 700; margin-bottom: 11px; }
.ef-secenekler { display: flex; flex-wrap: wrap; gap: 8px; }
.ef-sec { position: relative; cursor: pointer; }
.ef-sec input { position: absolute; opacity: 0; width: 0; height: 0; }
.ef-sec span { display: inline-block; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px;
  font-size: 13.5px; background: var(--cream); transition: all .15s; }
.ef-sec:hover span { border-color: var(--mauve); }
.ef-sec.secili span { background: var(--rose); border-color: var(--rose); color: #fff; font-weight: 700; }
.ef-sec.sessiz span { background: #fff; color: var(--ink-soft); font-size: 12.5px; border-style: dashed; }
.ef-sec.sessiz.secili span { background: var(--ink-soft); border-color: var(--ink-soft); color: #fff; border-style: solid; }
.ef-sec input:focus-visible + span { outline: 2px solid var(--rose); outline-offset: 2px; }
.ef-metin-alan { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 12px;
  font: inherit; font-size: 14px; background: var(--cream); resize: vertical; }
.ef-metin-alan:focus { outline: 2px solid var(--rose); background: #fff; }
.ef-ipucu { margin: 9px 0 0; font-size: 11.5px; color: var(--ink-soft); line-height: 1.5; }

/* --- Önem seviyesi --- */
.ef-onem { margin-top: 13px; padding-top: 12px; border-top: 1px dashed var(--line); }
.ef-onem-baslik { display: block; font-size: 12px; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ink-soft); margin-bottom: 8px; }
.ef-onem-secenekler { display: flex; flex-wrap: wrap; gap: 7px; }
.ef-onem-sec { position: relative; cursor: pointer; }
.ef-onem-sec input { position: absolute; opacity: 0; width: 0; height: 0; }
.ef-onem-sec span { display: inline-block; padding: 7px 12px; border: 1px solid var(--line);
  border-radius: 9px; font-size: 12.5px; background: #fff; transition: all .15s; }
.ef-onem-sec.secili span { background: var(--gold); border-color: var(--gold); color: #4A3405; font-weight: 700; }
.ef-onem-sec input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }

/* --- Gezinme --- */
.ef-gezinme { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.ef-gezinme .pbtn { min-width: 120px; justify-content: center; }
#ef-ileri { margin-left: auto; }
.ef-kaydet-not { font-size: 12.5px; color: var(--green); font-weight: 700; }

/* --- Bitiş --- */
.ef-bitis-ic { text-align: center; background: var(--surface); border: 1px solid var(--line);
  border-radius: 22px; padding: 44px 28px; box-shadow: var(--shadow); }
.ef-bitis-halka { display: inline-flex; align-items: center; justify-content: center;
  width: 110px; height: 110px; border-radius: 50%; margin-bottom: 18px;
  background: conic-gradient(from 200deg, var(--rose), var(--gold), var(--green), var(--rose));
  box-shadow: 0 10px 26px rgba(217, 67, 92, .22); }
.ef-bitis-halka b { display: flex; align-items: center; justify-content: center; width: 90px; height: 90px;
  border-radius: 50%; background: #fff; font-family: var(--serif); font-size: 26px; color: var(--rose-deep); }
.ef-bitis-ic h2 { font-size: 26px; margin: 0 0 8px; }
.ef-bitis-ic p { color: var(--ink-soft); font-size: 14.5px; margin: 0 auto 22px; max-width: 460px; line-height: 1.6; }
.ef-bitis-alt { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* DİKKAT: bu blok .ef-sorular'ın koşulsuz `display:flex` kuralından SONRA gelmek ZORUNDA —
   daha yukarıda dursa kaskad sırası yüzünden grid'i flex eziyor. */
@media (min-width: 1280px) {
  .ef-sarmal { max-width: 1120px; }
  .ef-sorular { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: start; }
  /* Çoklu seçim ve serbest metin tam satır kaplar — şıkları sıkışmasın */
  .ef-soru[data-tur="coklu"], .ef-soru[data-tur="metin"] { grid-column: 1 / -1; }
}
@media (min-width: 1700px) { .ef-sarmal { max-width: 1280px; } }

@media (max-width: 620px) {
  .ef-header { padding: 18px 18px 16px; border-radius: 16px; }
  .ef-header h2 { font-size: 20px; }
  .efh-ikon { width: 38px; height: 38px; top: 16px; right: 16px; }
  .ef-soru { padding: 14px; }
  .ef-gezinme .pbtn { min-width: 0; flex: 1; }
  .ef-kaydet-not { display: none; }
}

/* --- Ana ekran: eşleşme formu çağrı kartı (todo -> success) --- */
.form-cagri { position: relative; overflow: hidden;
  background: linear-gradient(135deg, #FFF3EE, #FDE7E0); border-color: #F2D4CB; }
.form-cagri.tamam { background: linear-gradient(135deg, #EFF7F2, #E4F1EA); border-color: #CFE5D9; }
.fc-desen { position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background-image:
    radial-gradient(circle at 90% 18%, rgba(217, 180, 91, .18) 0 34px, transparent 35px),
    radial-gradient(circle at 78% 88%, rgba(217, 67, 92, .09) 0 26px, transparent 27px); }
.fc-ic { position: relative; display: flex; align-items: center; gap: 16px; }
.fc-ikon { flex: none; width: 50px; height: 50px; border-radius: 15px; display: flex;
  align-items: center; justify-content: center; background: var(--rose); color: #fff;
  box-shadow: 0 8px 18px rgba(217, 67, 92, .28); }
.fc-ikon.basarili { background: var(--green); box-shadow: 0 8px 18px rgba(47, 107, 76, .25); }
.fc-ikon .ico { width: 25px; height: 25px; }
.fc-metin { flex: 1; min-width: 0; }
.fc-metin > b { display: block; font-family: var(--serif); font-size: 18px; margin-bottom: 4px; }
.fc-metin p { margin: 0; font-size: 13px; color: var(--ink-soft); line-height: 1.55; }
.fc-btn { flex: none; white-space: nowrap; }

@media (max-width: 700px) {
  .fc-ic { flex-wrap: wrap; }
  .fc-metin { flex: 1 1 100%; order: 3; }
  .fc-btn { width: 100%; justify-content: center; order: 4; margin-top: 4px; }
}

/* --- Ortak yönler (uyum puanının açıklaması) --- */
button.hik-muhur { border: 2.5px solid #fff; cursor: pointer; font: inherit; }
button.hik-muhur:hover { transform: scale(1.06); }
button.hik-muhur { transition: transform .15s; }
.hik-ortak-ac { display: flex; align-items: center; justify-content: center; gap: 7px; width: 100%;
  margin-top: 12px; padding: 10px; border-radius: 12px; cursor: pointer; font: inherit;
  font-size: 12.5px; font-weight: 700; color: var(--rose-deep);
  background: rgba(255, 255, 255, .7); border: 1px dashed rgba(217, 67, 92, .4);
  transition: background .16s; }
.hik-ortak-ac:hover { background: #fff; }
.hik-ortak-ac .ico { width: 14px; height: 14px; }

.hik-geri { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 10px; padding: 5px 11px 5px 8px;
  border-radius: 999px; cursor: pointer; font: inherit; font-size: 11.5px; font-weight: 700;
  color: #8A6B72; background: rgba(255, 255, 255, .75); border: 1px solid rgba(201, 162, 39, .3); }
.hik-geri:hover { color: var(--rose-deep); }
.hik-geri .ico { width: 13px; height: 13px; transform: rotate(180deg); }
.hik-ortak-bas { display: block; font-family: var(--serif); font-size: 16px; color: #45242F; margin-bottom: 10px; }
.hik-ortak-liste { display: flex; flex-direction: column; gap: 7px; }
.hik-ortak-sat { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 12px;
  background: rgba(255, 255, 255, .78); border: 1px solid rgba(47, 107, 76, .22); font-size: 12.5px; color: #45242F; }
.hik-ortak-sat i { flex: none; width: 24px; height: 24px; border-radius: 50%; background: #E4F2EA;
  color: var(--green); display: flex; align-items: center; justify-content: center; }
.hik-ortak-sat i .ico { width: 13px; height: 13px; }
.hik-ortak-bos { padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .6);
  border: 1px dashed rgba(201, 162, 39, .4); font-size: 12.5px; color: #7A5B63; text-align: center; }
.hik-ortak-not { margin: 12px 0 0; font-size: 11px; line-height: 1.55; color: #94757C; }

/* Form girişindeki mahremiyet notu */
.ef-mahrem { display: flex; align-items: flex-start; gap: 8px; margin: 10px 0 0; padding: 10px 13px;
  border-radius: 12px; background: #EFF7F2; border: 1px solid #CFE5D9;
  font-size: 12.5px; line-height: 1.55; color: #2F5B45; }
.ef-mahrem .ico { width: 15px; height: 15px; flex: none; margin-top: 1px; color: var(--green); }
.ef-mahrem > span { flex: 1; min-width: 0; }

/* ============================================================
   Profilim — görselleştirilmiş sayfa
   ============================================================ */
/* Panel içerik sarmalayıcısına max-width KOYULMAZ — geniş ekranı kaplasın. */
.pr-sarmal { max-width: none; }

/* Kapak */
.pr-kapak { position: relative; overflow: hidden; border-radius: 22px; padding: 26px 28px 22px;
  margin-bottom: 18px; background: linear-gradient(135deg, #D9435C, #A8324B); color: #fff; }
.pr-desen { position: absolute; inset: 0; opacity: .18; pointer-events: none;
  background-image:
    radial-gradient(circle at 88% 18%, #fff 0 46px, transparent 47px),
    radial-gradient(circle at 70% 92%, #fff 0 30px, transparent 31px),
    radial-gradient(circle at 96% 62%, #fff 0 18px, transparent 19px); }
.pr-kimlik { position: relative; display: flex; align-items: center; gap: 18px; }
.pr-avatar { position: relative; flex: none; width: 96px; height: 96px; border-radius: 50%; padding: 0;
  cursor: pointer; overflow: hidden; background: rgba(255, 255, 255, .2);
  border: 4px solid rgba(255, 255, 255, .85); box-shadow: 0 10px 26px rgba(70, 20, 34, .3);
  display: flex; align-items: center; justify-content: center; transition: transform .16s; }
.pr-avatar:hover { transform: scale(1.04); }
.pr-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pr-harf { font-family: var(--serif); font-size: 40px; font-weight: 700; color: #fff; }
 /* Büyütme ipucu: köşe rozeti DEĞİL, avatar üzerinde hover kaplaması —
    sağ alt köşe düzenle (kalem) butonuna ayrıldı, iki rozet çakışıyordu. */
.pr-buyut { position: absolute; inset: 0; border-radius: 50%; opacity: 0;
  background: rgba(60, 20, 34, .45); color: #fff;
  display: flex; align-items: center; justify-content: center; transition: opacity .16s; }
.pr-avatar:hover .pr-buyut, .pr-avatar:focus-visible .pr-buyut { opacity: 1; }
.pr-buyut .ico { width: 22px; height: 22px; }
.pr-kim { min-width: 0; }
.pr-kim > b { display: block; font-family: var(--serif); font-size: 26px; line-height: 1.15; }
.pr-kim > span { display: block; font-size: 13.5px; opacity: .9; margin-top: 2px; }
.pr-degistir { margin-top: 10px; background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .45);
  color: #fff; }
.pr-degistir:hover { background: rgba(255, 255, 255, .32); border-color: #fff; color: #fff; }
.pr-rozetler { position: relative; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pr-rozet { display: flex; flex-direction: column; padding: 8px 14px; border-radius: 13px;
  background: rgba(255, 255, 255, .17); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase;
  opacity: .95; }
.pr-rozet b { font-size: 16px; letter-spacing: 0; text-transform: none; font-family: var(--serif); }
/* Favori rozeti <a> — kapak üstünde durduğu için rengi kapaktan miras alır. */
a.pr-rozet { color: inherit; text-decoration: none; transition: background .14s; }
a.pr-rozet:hover { background: rgba(255, 255, 255, .32); }

/* Galeri */
.pr-galeri { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 12px; }
.pr-sec { position: relative; aspect-ratio: 1; border-radius: 50%; overflow: hidden; cursor: pointer; padding: 0;
  border: 3px solid var(--line); background: var(--cream); transition: transform .14s, border-color .14s, box-shadow .14s;
  display: flex; align-items: center; justify-content: center; }
.pr-sec img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pr-sec:hover { transform: translateY(-3px); border-color: var(--mauve); }
.pr-sec.secili { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(217, 67, 92, .22), var(--shadow); }
.pr-sec.bos span { font-family: var(--serif); font-size: 26px; font-weight: 700; color: var(--rose-deep); }
.pr-sec:focus-visible { outline: 3px solid var(--rose); outline-offset: 2px; }

/* Bilgiler bölüm başlıkları */
.pr-bolum { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--rose-deep); margin: 20px 0 10px; padding-bottom: 7px; border-bottom: 1px dashed var(--line); }
.pr-bolum:first-of-type { margin-top: 4px; }

/* Hesap yönetimi satırları */
.pr-satir { display: flex; align-items: center; gap: 16px; padding: 15px 0; border-bottom: 1px dashed var(--line); }
.pr-satir:last-of-type { border-bottom: 0; }
.pr-satir-metin { flex: 1; min-width: 0; }
.pr-satir-metin b { display: block; font-size: 15px; margin-bottom: 3px; }
.pr-satir-metin p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--ink-soft); }
.pr-satir .pbtn { flex: none; }
.pr-satir.tehlikeli .pr-satir-metin b { color: var(--rose-deep); }

/* Avatar büyütme modalı */
.pr-modal-ort { position: fixed; inset: 0; z-index: 130; display: none; align-items: center; justify-content: center;
  padding: 24px; background: rgba(50, 25, 34, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.pr-modal-ort.acik { display: flex; animation: hikOrtGir .2s ease forwards; }
.pr-buyut-kutu { position: relative; text-align: center; }
.pr-buyut-ic { width: min(72vw, 340px); height: min(72vw, 340px); border-radius: 50%; overflow: hidden;
  border: 6px solid #fff; box-shadow: 0 20px 50px rgba(0, 0, 0, .4); background: var(--blush);
  display: flex; align-items: center; justify-content: center;
  animation: hikKartGir .35s cubic-bezier(.2, .8, .3, 1.1) both; }
.pr-buyut-ic img { width: 100%; height: 100%; object-fit: cover; }
.pr-buyut-harf { font-family: var(--serif); font-size: 120px; font-weight: 700; color: var(--rose-deep); }
.pr-buyut-ad { display: block; margin-top: 16px; font-family: var(--serif); font-size: 22px; color: #fff; }
.pr-modal-kapat { position: absolute; top: -14px; right: -14px; z-index: 2; width: 44px; height: 44px;
  border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center;
  background: #fff; color: var(--rose-deep); border: 1.5px solid rgba(201, 162, 39, .55);
  box-shadow: 0 4px 16px rgba(60, 25, 38, .3); }
.pr-modal-kapat .ico { width: 21px; height: 21px; stroke-width: 2.6; }

/* Askı ekranı */
.aski-ekran { max-width: 640px; margin-inline: auto; text-align: center; padding: 38px 30px; }
.ae-ikon { display: inline-flex; align-items: center; justify-content: center; width: 76px; height: 76px;
  border-radius: 50%; background: #FBEEDA; color: #B8902F; margin-bottom: 16px; }
.ae-ikon .ico { width: 36px; height: 36px; }
.aski-ekran h1 { font-size: 27px; margin: 0 0 8px; }
.ae-ozet { color: var(--ink-soft); font-size: 14.5px; margin: 0 auto 20px; max-width: 460px; line-height: 1.6; }
.ae-uyari { display: flex; gap: 11px; text-align: left; padding: 14px 16px; border-radius: 14px;
  background: #FFF8E8; border: 1px solid #EBD9A8; font-size: 13px; line-height: 1.6; color: #6B5314; }
.ae-uyari .ico { width: 19px; height: 19px; flex: none; margin-top: 2px; color: #B8902F; }
.ae-liste { list-style: none; padding: 0; margin: 18px 0 22px; text-align: left; display: flex;
  flex-direction: column; gap: 9px; }
.ae-liste li { display: flex; gap: 10px; font-size: 13.5px; color: var(--ink-soft); line-height: 1.5; }
.ae-liste .ico { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--green); }
.ae-btn { width: 100%; max-width: 340px; padding: 13px; font-size: 15px; }
.ae-not { font-size: 12px; color: var(--ink-soft); margin: 14px 0 0; }

/* Üst çubuk avatarı görselli olabilir */
.harf-avatar.gorselli { padding: 0; overflow: hidden; }
.harf-avatar.gorselli img { width: 100%; height: 100%; object-fit: cover; display: block; }

@media (max-width: 620px) {
  .pr-kapak { padding: 20px 18px 18px; border-radius: 18px; }
  .pr-kimlik { gap: 14px; }
  .pr-avatar { width: 76px; height: 76px; }
  .pr-harf { font-size: 32px; }
  .pr-kim > b { font-size: 21px; }
  .pr-satir { flex-direction: column; align-items: stretch; gap: 10px; }
  .pr-satir .pbtn { width: 100%; justify-content: center; }
  .pr-galeri { grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 10px; }
}

/* Askıya alınmış üye rozeti (eşleşme listelerinde) */
.aski-rozet { font-style: normal; font-size: 9px; font-weight: 800; letter-spacing: .08em;
  border-radius: 999px; padding: 2px 8px; background: #EFECEA; color: #6B6560; border: 1px solid #E0DAD6; }
.yakinda.pasif { background: #EFECEA; color: #6B6560; }
.satir-profil .esnek b { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }

/* "Ön puan" rozeti — kapsamlı formu doldurmamış adayda puanın dayanağını belirtir */
.on-puan { display: inline-block; font-size: 9px; font-weight: 800; letter-spacing: .09em;
  border-radius: 999px; padding: 3px 9px; background: #EEF1F6; color: #56637C; border: 1px solid #DDE3EC; }
.aday .on-puan { align-self: flex-start; margin-bottom: 8px; }
.hik-rozet.on-puan { background: #EEF1F6; color: #56637C; border: 1px solid #DDE3EC; }

/* --- Avatar üzerindeki düzenle butonu --- */
.pr-kimlik { position: relative; }
.pr-kalem { position: absolute; left: 70px; top: 66px; z-index: 2; width: 34px; height: 34px; border-radius: 50%;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  background: #fff; color: var(--rose-deep); border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(70, 20, 34, .3); transition: transform .14s, background .14s; }
.pr-kalem:hover { transform: scale(1.08); background: #FFF3F0; }
.pr-kalem:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.pr-kalem .ico { width: 16px; height: 16px; }

/* --- Profil görseli modalı --- */
.pr-modal-ort.gorsel { align-items: flex-start; overflow-y: auto; padding: 28px 18px; }
.pr-gorsel-kutu { position: relative; width: 100%; max-width: 560px; margin: auto;
  background: var(--surface); border-radius: 22px; padding: 26px 26px 24px;
  box-shadow: 0 24px 60px rgba(50, 20, 32, .4);
  animation: hikKartGir .32s cubic-bezier(.2, .8, .3, 1.1) both; }
.pr-gorsel-kutu h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 16px; font-size: 21px; }
.pr-gorsel-kutu h3 .ico { width: 19px; height: 19px; color: var(--rose); }

.pg-uyari { display: flex; gap: 11px; padding: 13px 15px; border-radius: 14px; margin-bottom: 20px;
  background: #EFF7F2; border: 1px solid #CFE5D9; font-size: 12.5px; line-height: 1.6; color: #2F5B45; }
.pg-uyari .ico { width: 17px; height: 17px; flex: none; margin-top: 2px; color: var(--green); }
.pg-uyari b { color: #1F4433; }

.pg-bolum { margin-bottom: 20px; }
.pg-bolum:last-child { margin-bottom: 0; }
.pg-baslik { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
  color: var(--rose-deep); margin-bottom: 11px; }
.pg-baslik i { font-style: normal; font-weight: 600; letter-spacing: 0; text-transform: none;
  color: var(--ink-soft); font-size: 11.5px; }

.pg-yukle-kutu { text-align: center; padding: 22px 18px; border-radius: 16px;
  border: 2px dashed var(--line); background: var(--cream); }
.pg-yukle-ikon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px;
  border-radius: 50%; background: #fff; color: var(--mauve); margin-bottom: 10px;
  box-shadow: 0 3px 10px rgba(90, 40, 50, .1); }
.pg-yukle-ikon .ico { width: 22px; height: 22px; }
.pg-yukle-kutu b { display: block; font-size: 14.5px; margin-bottom: 5px; }
.pg-yukle-kutu p { margin: 0 auto 14px; max-width: 360px; font-size: 12.5px; line-height: 1.55; color: var(--ink-soft); }

@media (max-width: 620px) {
  .pr-kalem { left: 54px; top: 52px; width: 30px; height: 30px; }
  .pr-gorsel-kutu { padding: 22px 18px 20px; border-radius: 18px; }
  .pr-modal-ort.gorsel { padding: 16px 12px; }
}

/* --- Eşleşme sonlandırma modalı --- */
.p-modal.genis { max-width: 520px; text-align: left; }
.p-modal.genis h3 { display: block; margin-left: auto; margin-right: auto; text-align: center; }
/* pm-ikon: display:block DEĞİL, display:flex. block yapılırsa içindeki kilit SVG'si
   flex ortalamasını kaybedip dairenin sol-üstüne kayıyordu. flex (blok seviyeli)
   hem auto-margin ile kutuyu ortalar hem iç ikonu ortada tutar. */
.p-modal.genis .pm-ikon { display: flex; margin-left: auto; margin-right: auto; }
/* textarea VE select birlikte stillenmeli — select için kural yokken tarayıcının
   varsayılan görünümüne (mavi odak halkası, sistem oku) düşüyor ve modalda
   yamalı duruyordu. appearance:none + kendi okumuz. */
.p-modal.genis textarea,
.p-modal.genis select { width: 100%; padding: 11px 13px; border: 1px solid var(--line);
  border-radius: 12px; font: inherit; font-size: 14px; color: var(--ink);
  background: var(--cream); }
.p-modal.genis textarea { resize: vertical; min-height: 84px; }
.p-modal.genis select { -webkit-appearance: none; appearance: none; cursor: pointer;
  padding-right: 38px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236E5A60' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 13px center; background-size: 15px; }
.p-modal.genis textarea:focus,
.p-modal.genis select:focus { outline: 0; border-color: var(--rose); background-color: #fff;
  box-shadow: 0 0 0 3px rgba(217, 67, 92, .14); }
.sn-secenekler { display: flex; flex-direction: column; gap: 9px; margin: 14px 0 4px; }
.sn-sec { display: flex; gap: 10px; padding: 12px 13px; border: 1.5px solid var(--line);
  border-radius: 13px; cursor: pointer; transition: border-color .15s, background .15s; }
.sn-sec:hover { border-color: var(--mauve); }
.sn-sec input { margin-top: 3px; accent-color: var(--rose); flex: none; }
.sn-sec span { font-size: 12.5px; line-height: 1.55; color: var(--ink-soft); }
.sn-sec span b { display: block; font-size: 14px; color: var(--ink); margin-bottom: 3px; }
.sn-sec:has(input:checked) { border-color: var(--rose); background: #FFF7F5; }
.pbtn.red { background: var(--rose-deep); border-color: var(--rose-deep); color: #fff; }
.pbtn.red:hover { background: #9E2740; }
.es-bitir { flex: none; }
.satir .pbtn.mini { padding: 6px 12px; font-size: 12.5px; }

/* Mobilde satır iki kata iner: üst kat profil (tam genişlik), alt kat durum + aksiyonlar.
   DİKKAT: .satir'a flex-wrap VERMEDEN butona width:100% verilirse satır sığmaz —
   sayfa yatay kayar ve position:fixed tabbar viewport yerine doküman genişliğine uzayıp
   "bottom'a sabitlenmemiş" görünür. Wrap ile genişlik, flex'e bırakıldı. */
@media (max-width: 620px) {
  .p-modal.genis { max-width: none; }
  .satir { flex-wrap: wrap; row-gap: 10px; }
  .satir-profil { flex: 1 1 100%; }
  .satir .yakinda { flex: 0 1 auto; }
  .satir .pbtn { flex: 1 1 auto; justify-content: center; }
  .satir .pbtn.mini { padding: 8px 12px; }
}

/* ============================================================
   Durum şeridi — eski sağ rayın (aside.pyan) yerini alır
   ============================================================
   Ray 340px genişken 1065px yüksekliğindeydi, yanındaki kolon ise 2984px:
   sayfanın %64'ü sağda ölü alandı. Yatay şerit bu boşluğu tamamen kaldırır
   ve "üyeliğin bitiyor" uyarısını rayın dibinden sayfanın tepesine taşır. */
.durum-serit { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
/* Karo sayısı sabit 4 → auto-fit değil, açık kolon. auto-fit geniş ekranda 8 kolon
   üretip şeridin sağ yarısını boş bırakıyordu. */
.ds-kutular { flex: 1 1 460px; min-width: 0; display: grid;
              grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ds-kutu { min-width: 0; display: flex; flex-direction: column; gap: 3px;
           padding: 12px 14px; border-radius: 14px;
           background: var(--cream); border: 1px solid var(--line); }
.ds-kutu.acil { background: #FFF3F4; border-color: #F0C4CB; }
.ds-etiket { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800;
             letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); }
.ds-etiket .ico { width: 14px; height: 14px; flex: none; color: var(--rose-deep); }
/* margin-top:auto → uzun etiket ("Bekleyen teklifin") sarınca değerler yine de
   karolar arasında aynı hizada kalır. */
.ds-deger { margin-top: auto; font-family: var(--serif); font-size: 21px; line-height: 1.2; color: var(--ink); }
.ds-kutu.acil .ds-deger { color: var(--rose-deep); }
.ds-alt { font-size: 12px; color: var(--ink-soft); }
.ds-alt.bag { color: var(--rose-deep); font-weight: 700; text-decoration: none; align-self: flex-start; }
.ds-alt.bag:hover { text-decoration: underline; }
.ds-aksiyon { flex: none; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
              justify-content: flex-end; }

/* Profil tamamlama çağrısı — yalnız profil %100'den azken basılır */
.profil-cagri { display: flex; align-items: center; gap: 18px; }
.pc-metin { flex: 1; min-width: 0; }
.pc-metin b { display: block; font-size: 16px; margin-bottom: 3px; }
.pc-metin p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ink-soft); }
.profil-cagri .pbtn { flex: none; }

@media (max-width: 820px) {
  .ds-aksiyon { flex: 1 1 100%; justify-content: flex-start; }
  .ds-aksiyon .pbtn { flex: 1 1 auto; justify-content: center; }
}
@media (max-width: 700px) { .ds-kutular { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) {
  .profil-cagri { flex-wrap: wrap; gap: 14px; }
  .profil-cagri .pbtn { flex: 1 1 100%; }
}

/* ============================================================
   Sohbet ekranı
   ============================================================
   Akış kendi içinde kayar (.sohbet-akis overflow-y), sayfa değil: yazma alanı
   her zaman ekranda kalsın. Yükseklik dvh ile — mobil tarayıcıda adres çubuğu
   gizlenince vh sıçrıyor, dvh sıçramıyor. */
.sohbet-sarmal { display: flex; flex-direction: column; gap: 12px;
  height: calc(100dvh - 150px); min-height: 420px; max-width: 860px; margin-inline: auto;
  /* Yatay kaymaya karşı KAPSAMLI koruma. Klavye açılınca (iOS) düzen bir an için
     görünüm alanından geniş hesaplanıp sağa yaslı baloncuklar ekran dışına kayıyordu.
     `clip` seçildi, `hidden` değil: `hidden` bu kutuyu kaydırma kabı yapıp içerideki
     position:sticky davranışını da bozuyor. */
  overflow-x: clip; }

.sohbet-bas { display: flex; align-items: center; gap: 12px; flex: none;
  background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 12px 16px; }
.sb-geri { flex: none; width: 34px; height: 34px; display: inline-flex; align-items: center;
  justify-content: center; border-radius: 50%; background: var(--cream); color: var(--ink-soft);
  text-decoration: none; transform: rotate(180deg); }
.sb-geri:hover { background: var(--blush); color: var(--rose-deep); }
.sb-kim { flex: 1; min-width: 0; }
.sb-kim b { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-size: 15px; }
.sb-kim span { display: block; font-size: 12px; color: var(--ink-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sb-sikayet { flex: none; width: 36px; height: 36px; border: 1px solid var(--line); background: #fff;
  border-radius: 50%; color: var(--ink-soft); cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; }
.sb-sikayet:hover { border-color: var(--rose-deep); color: var(--rose-deep); }

/* KVKK ifşası — <details>: özet daima görünür, tam metin tek dokunuşla açılır.
   Akışın İÇİNDE ilk öğe: sabit değil, sohbetle birlikte yukarı kayar.
   align-self:stretch şart — akış flex-column ve öğeler sağa/sola yaslanıyor,
   verilmezse not da baloncuk gibi daralıp yamuk duruyor. */
.sohbet-not { flex: none; align-self: stretch; margin: 0 0 4px; padding: 9px 13px;
  background: #EFF7F2; border: 1px solid #CFE5D9; border-radius: 13px;
  font-size: 12px; line-height: 1.55; color: #2F5B45; }
.sohbet-not summary { display: flex; gap: 8px; align-items: flex-start; cursor: pointer;
  list-style: none; font-weight: 600; }
.sohbet-not summary::-webkit-details-marker { display: none; }
.sohbet-not summary > span { flex: 1; min-width: 0; }
/* Açık/kapalı işareti — metnin sonunda, kendi hizasında. */
.sohbet-not summary::after { content: "Ayrıntı"; flex: none; align-self: center;
  font-size: 11px; font-weight: 800; color: var(--green); text-decoration: underline; }
.sohbet-not[open] summary::after { content: "Kapat"; }
.sohbet-not .ico { width: 15px; height: 15px; flex: none; margin-top: 1px; color: var(--green); }
.sohbet-not p { margin: 8px 0 2px; padding-top: 8px; border-top: 1px dashed #CFE5D9; font-weight: 400; }
.sohbet-not a { color: var(--green); font-weight: 700; }

.sohbet-akis { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  display: flex; flex-direction: column; gap: 10px; padding: 4px 10px 4px 2px; }
/* Mesajlar YUKARIDAN başlar, aşağı doğru birikir.
   Önce alta yaslamıştım (margin-top:auto) ama geniş ekranda sohbet ekranın
   dibinden başlıyor, üstte kocaman boşluk kalıyordu — yazışma "yeni başladı"
   yerine "bitmiş" gibi duruyor. Doğal akış daha okunur. */

/* Yapı tanıtım sitesindeki #chatdemo ile aynı: baloncuğun ÜSTÜNDE "kim" satırı,
   altında baloncuk. Bu yüzden .msj artık kutu değil, sarmalayıcı. */
.msj { max-width: min(78%, 520px); display: flex; flex-direction: column; }
.msj-bub { padding: 10px 14px; border-radius: 18px; font-size: 14px; line-height: 1.55;
  overflow-wrap: anywhere; }
.msj-who { font-size: 10.5px; color: var(--ink-soft); margin: 0 6px 3px; }

.msj.benim { align-self: flex-end; align-items: flex-end; }
.msj.benim .msj-bub { background: var(--rose-deep); color: #fff; border-bottom-right-radius: 6px; }
.msj.karsi { align-self: flex-start; }
.msj.karsi .msj-bub { background: var(--surface); color: var(--ink);
  border: 1px solid var(--line); border-bottom-left-radius: 6px; }
/* Fatma Abla — tanıtım sitesindeki simülasyonla aynı görünüm:
   avatarlı "kim" satırı + "Dijital Rehber" rozeti + ALTIN SOL KENAR.
   Sola yaslı: marka onu "sohbetteki üçüncü katılımcı" sayıyor, sistem duyurusu değil. */
.msj.fatma { align-self: flex-start; max-width: min(88%, 600px); }
.msj.fatma .msj-bub { background: rgba(201, 159, 168, .15);
  border: 1px solid rgba(201, 159, 168, .45); border-left: 3px solid var(--gold);
  border-bottom-left-radius: 6px; color: var(--ink); font-size: 13.5px; }
.msj.fatma .msj-who { display: flex; align-items: center; gap: 6px;
  font-weight: 700; color: var(--ink); font-size: 11px; }
.msj.fatma .msj-who img { width: 20px; height: 20px; border-radius: 50%; object-fit: cover; }
.msj.fatma .msj-who .tg { font-size: 9px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; color: var(--rose); background: rgba(217, 67, 92, .1);
  border-radius: 999px; padding: 2px 8px; }
/* AYNI kişiden art arda gelen mesajlarda "kim" satırını tekrarlama.
   Tanıtım simülasyonunda konuşmacılar hep dönüşümlü olduğu için bu görünmüyordu;
   gerçek sohbette biri üst üste 7 mesaj atınca rumuz 7 kez yazılıp gürültü oluyor.
   :not(.yaziyor) ŞART — gizli baloncuklar da DOM'da kardeş olduğu için bu kural
   "yazıyor…" göstergesini de yakalıyor ve kimin yazdığı görünmez oluyordu. */
.msj.fatma + .msj.fatma:not(.yaziyor) .msj-who,
.msj.karsi + .msj.karsi .msj-who,
.msj.benim + .msj.benim .msj-who { display: none; }
.msj.reddedildi .msj-bub { background: #F3EDEE; color: var(--ink-soft); border: 1px dashed #D8BFC4; }
.msj-damga { display: block; margin-top: 6px; font-size: 11px; font-weight: 700; color: var(--rose-deep); }

/* ---------- Tarih ayracı (Bugün / Dün / Çarşamba / 10.06.2026) ----------
   Etiketi SUNUCU üretiyor (trGunEtiketi) — JS tarih ayrıştırmıyor. */
.msj-tarih { align-self: center; margin: 6px 0 2px; }
.msj-tarih span { display: inline-block; padding: 4px 14px; border-radius: 999px;
  background: rgba(255, 255, 255, .82); border: 1px solid var(--line);
  font-size: 11.5px; font-weight: 800; letter-spacing: .02em; color: var(--ink-soft); }

/* ---------- Mesaj saati ----------
   Baloncuğun sağ altına yerleşir. Metnin son satırıyla çakışmasın diye
   .msj-metin'e sağ tarafta boşluk ayrılıyor (float yerine padding: daha öngörülebilir). */

.msj-saat { display: block; margin-top: 2px; font-size: 10.5px; line-height: 1;
  text-align: right; opacity: .62; }
.msj.benim .msj-saat { color: #fff; }
.msj.karsi .msj-saat { color: var(--ink-soft); }
.msj.fatma .msj-saat { color: var(--ink-soft); }
.msj.reddedildi .msj-saat { color: var(--ink-soft); }
/* "yazıyor…" göstergesinde saat yok. */
.msj.yaziyor .msj-saat { display: none; }

/* Fatma Abla yazıyor… — üç nokta */
.msj.yaziyor .msj-bub { display: flex; align-items: center; gap: 5px; padding: 13px 16px; }
.yz-nokta { width: 7px; height: 7px; border-radius: 50%; background: var(--gold-deep, #8A6A1F);
  opacity: .35; animation: yzZipla 1.1s infinite ease-in-out; }
.yz-nokta:nth-child(3) { animation-delay: .16s; }
.yz-nokta:nth-child(4) { animation-delay: .32s; }
@keyframes yzZipla {
  0%, 60%, 100% { transform: translateY(0);    opacity: .35; }
  30%           { transform: translateY(-4px); opacity: .9; }
}

/* Yeni gelen baloncuk yumuşak girsin (açılış dizisi + gelen mesajlar). */
.msj.yeni-geldi { animation: msjGiris .26s cubic-bezier(.2, .8, .3, 1.1) both; }
@keyframes msjGiris {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to   { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .msj.yeni-geldi { animation: none; }
  .yz-nokta { animation: none; }
}

/* Engellenme sebebi — toast kaybolur, bu akışta kalır ki kullanıcı ne yapacağını bilsin. */
.msj-uyari { align-self: center; max-width: min(92%, 620px); padding: 11px 15px;
  background: #FBE9EC; border: 1px solid #F0C7CE; border-radius: 14px;
  font-size: 12.5px; line-height: 1.6; color: #7A2233; }
.msj-uyari b { display: block; margin-bottom: 3px; }

.sohbet-yazac { flex: none; display: flex; align-items: flex-end; gap: 10px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 10px 12px; }
/* Yazma alanı: hap biçimli çerçeve + ayrı yuvarlak gönder düğmesi (WhatsApp düzeni).
   Kapsayıcının kendi zemini yok; kutu görüntüsünü textarea'nın sarmalı veriyor. */
.sohbet-yazac { background: none; border: 0; padding: 8px 0 2px; gap: 8px; }
.yz-kutu { flex: 1; min-width: 0; display: flex; align-items: flex-end; gap: 8px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 22px;
  padding: 9px 16px; transition: border-color .16s, box-shadow .16s; }
.yz-kutu:focus-within { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(217, 67, 92, .12); }
.sohbet-yazac textarea { flex: 1; min-width: 0; border: 0; outline: 0; resize: none;
  font: inherit; font-size: 15px; line-height: 1.45; background: none; color: var(--ink);
  max-height: 132px; padding: 2px 0; }
.sohbet-yazac textarea::placeholder { color: var(--mauve); }
.sohbet-yazac .pbtn { flex: none; width: 46px; height: 46px; padding: 0; border-radius: 50%;
  box-shadow: 0 4px 12px rgba(185, 48, 73, .28); }
.sohbet-yazac .pbtn .ico { width: 20px; height: 20px; }
/* Boşken düğme sessizleşir — "yazacak bir şey yok" ipucu. */
.sohbet-yazac .pbtn.bos { background: var(--blush); border-color: var(--blush);
  color: var(--mauve); box-shadow: none; }

.sohbet-kapali { flex: none; text-align: center; padding: 16px;
  background: var(--cream); border: 1px dashed var(--line); border-radius: 16px; }
.sohbet-kapali b { display: block; font-size: 14px; margin-bottom: 3px; }
.sohbet-kapali span { font-size: 12.5px; color: var(--ink-soft); }

/* ---------- Mobil: sohbet tüm ekranı kaplar (WhatsApp düzeni) ----------
   Panel topbar'ı ve alt tabbar'ı gizleniyor. Sebep: sohbet ekranında zaten
   kendi başlığı (geri + kim + şikayet) var; üstte ikinci bir başlık, altta
   sekme çubuğu varken yazışmaya kalan yer avuç içi kadar oluyordu.
   Masaüstünde gizlemiyoruz — orada yer bol, gezinmeyi kaldırmak kayıp. */
@media (max-width: 860px) {
  .papp-body.tam-ekran .topbar,
  .papp-body.tam-ekran .tabbar { display: none; }
  /* .picerik'in tabbar için ayırdığı alt boşluk da kalkmalı, yoksa altta şerit kalır. */
  .papp-body.tam-ekran .picerik { padding: 0; }
  .papp-body.tam-ekran .sohbet-sarmal {
    /* --vv-h: VisualViewport'tan gelen GERÇEK görünür yükseklik (bkz. sohbet.php).
       interactive-widget'ı desteklemeyen eski iOS sürümlerinde 100dvh klavye
       açılınca küçülmüyor; o durumda JS bu değişkeni yazıyor. Destekleyen
       tarayıcıda değişken hiç yazılmaz, 100dvh yedeği kullanılır. */
    height: var(--vv-h, 100dvh); max-width: none; gap: 0;
    padding: env(safe-area-inset-top) 12px calc(8px + env(safe-area-inset-bottom));
  }
  /* Başlık ekranın tepesine yapışır; kart görünümü yerine çubuk. */
  /* Başlık zaten kaymaz: kaydırılan kap .sohbet-akis, .sohbet-bas onun KARDEŞİ.
     Eskiden buraya position:sticky yazılmıştı — sticky'nin tutunacağı bir kaydırma
     kabı olmadığı için hiçbir işe yaramıyor, sadece "sabitlenmiş" yanılgısı veriyordu.
     Gerçek sabitleme dvh + interactive-widget=resizes-content ile sağlanıyor. */
  .papp-body.tam-ekran .sohbet-bas {
    border-radius: 0; border-width: 0 0 1px; margin: 0 -12px; padding: 0 14px;
    min-height: 64px; flex: none;   /* genel topbar (64px) ile aynı yükseklik — geçişte zıplamasın */
  }
  /* Akış sağda ekranın EN KENARINA ulaşsın (negatif margin, sarmalın 12px'ini yutar),
     ama baloncuklar kaydırma çubuğuna değmesin diye sağda 10px iç boşluk kalsın. */
  .papp-body.tam-ekran .sohbet-akis { padding: 10px 10px 4px 0; margin-right: -12px; }
  .msj { max-width: 86%; }
}

/* ---------- İndirim gösterimi (panel: üyelik + ödeme ekranları) ---------- */
.pk-tutar s, .ozet-satir s {
  display: block; font-size: .62em; font-weight: 600; color: var(--ink-soft);
  text-decoration-thickness: 2px; opacity: .75; }
.indirim-rozet { display: inline-flex; align-items: center; gap: 6px; padding: 5px 13px;
  border-radius: 999px; background: var(--rose); color: #fff;
  font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

/* ---------- Kimlik merdiveni ---------- */
.sb-kimlik { flex: none; width: 36px; height: 36px; border: 1px solid var(--line); background: #fff;
  border-radius: 50%; color: var(--ink-soft); cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; }
.sb-kimlik:hover { border-color: var(--gold); color: var(--gold-deep, #8A6A1F); }

.krd { border: 1px solid var(--line); border-radius: 14px; padding: 13px 15px; margin-bottom: 10px;
  background: var(--surface); }
.krd.acik { border-color: #CFE5D9; background: #F3FAF6; }
.krd.kilitli { opacity: .62; }
.krd-ust { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.krd-ust b { font-size: 15px; }
.krd-rz { font-size: 10.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 999px; }
.krd-rz.acik  { background: #E4EFE8; color: var(--green); }
.krd-rz.kilit { background: var(--cream); color: var(--mauve); }
.krd-rz.bekle { background: var(--blush); color: var(--rose-deep); }
.krd-rz.cagri { background: #FDECC9; color: #8A6A1F; }
.krd-ac { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--ink-soft); }
.krd-veri { margin-top: 9px; padding: 9px 13px; border-radius: 10px; background: #fff;
  border: 1px solid #CFE5D9; font-weight: 700; font-size: 15px; color: var(--ink);
  overflow-wrap: anywhere; }
.krd-alt { margin-top: 10px; display: flex; justify-content: flex-end; }
#merdiven-modal .pbtn.mini { padding: 7px 15px; font-size: 13px; }
#sosyal-form input { width: 100%; padding: 11px 13px; border: 1px solid var(--line);
  border-radius: 12px; font: inherit; font-size: 14.5px; background: var(--cream); }
#sosyal-form input:focus { outline: 0; border-color: var(--rose); background: #fff;
  box-shadow: 0 0 0 3px rgba(217, 67, 92, .12); }

/* ---------- Icebreaker: canlandır butonu + otomatik ayar ---------- */
.yz-canlandir { flex: none; width: 44px; height: 44px; padding: 0; border-radius: 50%;
  border: 1px solid var(--line); background: #fff; color: var(--gold-deep, #8A6A1F);
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.yz-canlandir:hover { border-color: var(--gold); background: #FFF9EE; }
.yz-canlandir:disabled { opacity: .5; cursor: default; }
.yz-canlandir .ico { width: 20px; height: 20px; }

.krd-ayar { display: flex; align-items: flex-start; gap: 12px; margin-top: 4px;
  padding: 12px 14px; border-radius: 14px; background: var(--cream); border: 1px solid var(--line);
  cursor: pointer; }
.krd-ayar span { flex: 1; min-width: 0; font-size: 12px; line-height: 1.5; color: var(--ink-soft); }
.krd-ayar span b { display: block; font-size: 13.5px; color: var(--ink); margin-bottom: 2px; }
/* Anahtar görünümlü checkbox */
.krd-ayar input { flex: none; appearance: none; -webkit-appearance: none; width: 42px; height: 24px;
  border-radius: 999px; background: var(--mauve); position: relative; cursor: pointer;
  transition: background .16s; margin-top: 2px; }
.krd-ayar input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 20px; height: 20px;
  border-radius: 50%; background: #fff; transition: transform .16s; }
.krd-ayar input:checked { background: var(--green); }
.krd-ayar input:checked::after { transform: translateX(18px); }

/* ---------- Sohbetlerim: konuşma listesi (WhatsApp tarzı) ---------- */
.sohbetler-card { padding: 6px 10px; }
.sohbet-liste { list-style: none; margin: 0; padding: 0; }
.sl-satir { display: flex; align-items: center; gap: 13px; padding: 11px 8px; border-radius: 14px;
  text-decoration: none; color: inherit; border-bottom: 1px dashed var(--line); transition: background .14s; }
.sohbet-liste li:last-child .sl-satir { border-bottom: 0; }
.sl-satir:hover { background: var(--cream); }
.sl-satir .harf-avatar { width: 50px; height: 50px; font-size: 20px; flex: none; margin: 0; }
.sl-orta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sl-ust { display: flex; align-items: baseline; gap: 8px; }
.sl-ad { font-size: 15px; font-weight: 700; color: var(--ink); flex: 1; min-width: 0;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sl-mudet { font-style: normal; font-size: 10px; font-weight: 700; letter-spacing: .02em;
  color: var(--mauve); background: var(--blush); padding: 1px 7px; border-radius: 999px; margin-left: 7px; }
.sl-zaman { flex: none; font-size: 11.5px; color: var(--ink-soft); }
.sl-alt { display: flex; align-items: center; gap: 8px; }
.sl-onizleme { flex: 1; min-width: 0; font-size: 13px; color: var(--ink-soft);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sl-rozet { flex: none; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px;
  background: var(--rose); color: #fff; font-size: 11.5px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(217, 67, 92, .3); }
/* Okunmamış satırda ad + önizleme koyulaşır, saat gül rengine döner */
.sl-satir.okunmamis .sl-ad { font-weight: 800; }
.sl-satir.okunmamis .sl-onizleme { color: var(--ink); font-weight: 600; }
.sl-satir.okunmamis .sl-zaman { color: var(--rose); font-weight: 700; }

/* ---------- Sohbet içi ad-soyad paylaşım kartı (kimlik isteği) ---------- */
.kimlik-kart { align-self: stretch; display: flex; gap: 11px; padding: 12px 14px;
  background: rgba(201, 159, 168, .13); border: 1px solid rgba(201, 159, 168, .42);
  border-left: 3px solid var(--gold); border-radius: 14px; }
.kimlik-kart .kk-ikon { flex: none; width: 34px; height: 34px; border-radius: 50%;
  background: var(--blush); color: var(--rose-deep); display: inline-flex; align-items: center; justify-content: center; }
.kimlik-kart .kk-ikon .ico { width: 18px; height: 18px; }
.kk-govde { flex: 1; min-width: 0; }
.kk-baslik { font-size: 13.5px; font-weight: 700; color: var(--ink); line-height: 1.4; }
.kk-durum { font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; line-height: 1.5; }
.kk-veri { margin-top: 5px; font-size: 15px; font-weight: 800; color: var(--rose-deep); }
.kk-veri i { font-weight: 600; font-style: normal; color: var(--ink-soft); font-size: 12.5px; }
.kk-alt { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.kk-alt .pbtn.mini { padding: 7px 14px; font-size: 13px; }

/* Küçük onay penceresi (kilit ikonundan) — gövde JS ile dolar */
#kimlik-modal-govde { text-align: left; }
#kimlik-modal-govde h3 { font-family: var(--serif); font-size: 19px; margin: 0 0 8px; text-align: center; }
#kimlik-modal-govde p { color: var(--ink-soft); font-size: 13.5px; line-height: 1.6; margin: 0 0 4px; }
#kimlik-modal-govde .kk-veri.buyuk { text-align: center; font-size: 21px; margin: 12px 0 4px; }
.kimlik-sosyal-link { display: block; width: 100%; margin-top: 14px; padding-top: 12px;
  border: 0; border-top: 1px dashed var(--line); background: none; cursor: pointer;
  font-size: 12.5px; color: var(--rose-deep); font-weight: 600; text-align: center; }
.kimlik-sosyal-link:hover { text-decoration: underline; }

/* ---------- Mobil: klavye açılınca otomatik yakınlaştırmayı önle ----------
   iOS Safari, font-size'ı 16px'ten KÜÇÜK bir alana odaklanınca sayfayı kendiliğinden
   büyütür — "klavye açılınca ekran büyüyor, yatay kayıyor, elle küçültmek gerekiyor"
   şikâyetinin kaynağı budur. 16px eşiği bu otomatik zoom'u tamamen kaldırır (viewport'a
   user-scalable=no yazmak iOS'ta yok sayıldığı için asıl çözüm budur). Yalnız mobilde:
   masaüstünde otomatik-zoom davranışı yok, tasarım 14–15px kalıyor.
   !important gerekli: .profil-form textarea / .tb-ara input gibi sınıf kuralları (daha
   yüksek özgüllük) aksi halde bu genel kuralı ezerdi. Onay kutusu/radyo hariç. */
@media (max-width: 860px) {
  input:not([type="checkbox"]):not([type="radio"]), textarea, select { font-size: 16px !important; }
}
