/* ==========================================================================
   BİLET + KOD ETKİNLİKLERİ v3: sayfaya özgü ekler (önek .bt-)
   Temel bileşenler assets/nx-etkinlik-r.css'te (.er-): canlı vitrin, büyük
   kart (.er-pk), geçmiş bölümü, mini kart, detay. Burada yalnız iki sayfanın
   ihtiyacı olan ekler: ek durum renkleri, "Biletlerim" penceresi (ref .tkm),
   bilgi kutusu (ref .single-info), ödül kademeleri, kazandın kutusu,
   kod şeridi ve şart listesi. Renkler marka tokenları (--rs-*).
   ========================================================================== */

/* ---------- ek durum renkleri ---------- */
.er-pk-durum.bt-yakinda{color:#cbb8ff; background:rgba(139,92,246,.18); border-color:rgba(139,92,246,.45)}
.er-pk-durum.bt-yakinda i{background:#a78bfa; animation:none}
.er-pk-durum.bt-alindi{color:#6ee7b7; background:rgba(52,211,153,.14); border-color:rgba(52,211,153,.4)}
.er-pk-durum.bt-alindi i{background:#34d399; animation:none}
.er-td-durum.bt-yakinda{color:#b9a3ff}
.er-td-durum.bt-canli{color:#ff6b6b}
.er-td-durum.bt-alindi{color:#34d399}
.er-bitti-tx.bt-canli{color:#ff8a8a; font-weight:700}
.er-mini-durum.bt-alindi{background:rgba(52,211,153,.16); color:#34d399}
.er-ist .bt-vurgu{color:rgba(245,196,81,.75)}
.er-ist .bt-vurgu b{color:var(--rs-vurgu)}
.er-ist .bt-vurgu i{font-size:10px}

/* ---------- vitrin kartı ekleri (CANLI VİTRİN v2 ile uyumlu) ---------- */
.bt-pk-logo-ad{margin-left:9px; font-size:13px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.85)}
.er-pk-logo .fa-ticket, .er-pk-logo .fa-key{font-size:22px; color:var(--rs-vurgu)}
.er-pk > .bt-pk-et{margin:12px 16px -6px; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.5)}
.er-pk > .bt-pk-sartlar{display:flex; flex-wrap:wrap; gap:5px; margin:10px 16px 0}
.er-pk-tarih.bt-pk-tarih{margin-top:8px}
.er-pk > .bt-pk-surekli{display:flex; align-items:center; gap:7px; color:rgba(255,255,255,.55); font-weight:600}
.bt-pk-surekli i{color:var(--rs-vurgu); font-size:12px}
.er-vitrin.n-4 .er-pk > .bt-pk-et, .er-vitrin.n-4 .er-pk > .bt-pk-sartlar{margin-left:14px; margin-right:14px}
.er-pk.bt-pk-yakinda{--er-rgb:139,92,246}
.er-pk.bt-pk-canli .er-pk-durum{color:#fff; background:#ff4444; border-color:#ff4444}
.er-pk.bt-pk-canli .er-pk-durum i{background:#fff}
.er-pk-cip.bt-sart-ok i{color:#34d399}
.er-pk-cip.bt-sart-eksik{color:#ffb4b4; background:rgba(255,68,68,.1); border-color:rgba(255,68,68,.28)}
.er-pk-cip.bt-sart-eksik i{color:#ff7a7a}

/* ---------- canlı nokta (detay düğmesi) ---------- */
.bt-canli-nokta{width:8px; height:8px; flex:none; border-radius:50%; background:#ff4444; box-shadow:0 0 0 0 rgba(255,68,68,.6); animation:erNabiz 1.6s infinite}

/* ---------- detay içeriği ---------- */
.bt-bolum + .bt-bolum{margin-top:22px}
.bt-bolum h3{margin:0 0 10px}
.bt-adimlar li span b{color:#fff; margin-right:4px}

/* bilgi kutusu (ref .single-info) */
.bt-bilgi{display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; padding:12px; border-radius:10px; background:rgba(245,196,81,.08); border:1px solid rgba(245,196,81,.2)}
.bt-bilgi > i{flex:none; width:20px; font-size:17px; line-height:20px; text-align:center; color:var(--rs-vurgu)}
.bt-bilgi p{margin:0; font-size:13px; font-weight:600; line-height:1.5; color:rgba(255,255,255,.85)}
.bt-bilgi p b{color:#fff}
.bt-bilgi-alt{margin:12px 0 0}

/* kazandın kutusu */
.bt-kazandin{display:flex; align-items:center; gap:14px; margin-bottom:14px; padding:14px 16px; border-radius:12px; background:linear-gradient(135deg, rgba(245,196,81,.18), rgba(245,196,81,.05)); border:1px solid rgba(245,196,81,.34); box-shadow:0 16px 40px -26px rgba(245,196,81,.7)}
.bt-kazandin-i{width:42px; height:42px; flex:none; border-radius:11px; display:grid; place-items:center; background:linear-gradient(135deg,#ffe08a,var(--rs-vurgu)); color:var(--rs-vurgu-yazi); font-size:18px}
.bt-kazandin b{display:block; font-size:16px; font-weight:800; color:var(--rs-vurgu)}
.bt-kazandin span{display:block; margin-top:2px; font-size:12px; font-weight:600; line-height:1.5; color:rgba(255,255,255,.78)}
.bt-kazandin strong{color:#fff; font-weight:800}

/* üyenin durumu (ref .tkm__summary) */
.bt-ozet{display:flex; align-items:center; gap:12px; margin-bottom:14px; padding:14px 16px; border-radius:10px; background:rgba(245,196,81,.06); border:1px solid rgba(245,196,81,.12)}
.bt-ozet-i{width:40px; height:40px; min-width:40px; border-radius:10px; display:grid; place-items:center; background:rgba(245,196,81,.12); color:var(--rs-vurgu); font-size:18px}
.bt-ozet-tx{display:flex; flex-direction:column; min-width:0}
.bt-ozet-tx b{font-size:17.2px; font-weight:800; line-height:1.1; color:var(--rs-vurgu); font-variant-numeric:tabular-nums}
.bt-ozet-tx span{font-size:11px; font-weight:600; color:rgba(255,255,255,.4)}
.bt-ozet-ek{display:flex; gap:18px; margin-left:auto; text-align:right}
.bt-ozet-ek div{display:flex; flex-direction:column}
.bt-ozet-ek b{font-size:13px; font-weight:700; color:rgba(255,255,255,.9); font-variant-numeric:tabular-nums}
.bt-ozet-ek span{font-size:11px; font-weight:600; color:rgba(255,255,255,.4)}
.bt-ozet-ek .is-bekleyen b{color:#ffc107}

/* ödül kademeleri */
.bt-kademeler{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px}
.bt-kademe{display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06)}
.bt-kademe:first-child{background:rgba(245,196,81,.07); border-color:rgba(245,196,81,.16)}
.bt-kademe-no{font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:rgba(255,255,255,.42)}
.bt-kademe b{font-size:17px; font-weight:800; color:var(--rs-vurgu); font-variant-numeric:tabular-nums}
.bt-kademe span:last-child{font-size:11px; font-weight:600; color:rgba(255,255,255,.55)}

/* sonuçlarda bilet numarası */
.bt-lb-bilet{display:inline-flex; align-items:center; height:20px; margin-left:8px; padding:0 7px; border-radius:6px; background:rgba(245,196,81,.1); color:var(--rs-vurgu); font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap}
.er-pod .bt-lb-bilet{margin:6px 0 0}
.er-lb-odul b{font-weight:800}

/* ---------- Biletlerim penceresi (ref .app-modal.sm + .tkm) ---------- */
.bt-modal{position:fixed; inset:0; z-index:9000; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(4,2,12,.62); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); font-family:var(--rs-f); color:#fff; font-weight:700}
.bt-modal[hidden]{display:none}
.bt-modal *{box-sizing:border-box}
.bt-modal button{font:inherit; color:inherit; cursor:pointer; border:0; background:none; padding:0}
.bt-modal :focus-visible{outline:2px solid var(--rs-vurgu); outline-offset:2px}
.bt-modal-kutu{position:relative; display:flex; flex-direction:column; width:420px; max-width:100%; max-height:90vh; padding:20px; border-radius:14px; background:var(--rs-panel); border:1px solid var(--rs-cizgi); box-shadow:0 24px 60px rgba(0,0,0,.5); animation:btModal .25s ease-out}
@keyframes btModal{from{opacity:0; transform:translateY(10px) scale(.98)}}
.bt-modal-bas{display:flex; align-items:center; gap:10px; padding-right:40px; flex:none}
.bt-modal-bas img{height:28px; width:auto; max-width:120px; object-fit:contain}
.bt-modal-bas h3{margin:0; font-size:15.6px; font-weight:700}
.bt-modal-kapat{position:absolute; top:12px; right:12px; width:32px!important; height:32px; border-radius:8px; display:grid!important; place-items:center; background:rgba(255,255,255,.05)!important; color:rgba(255,255,255,.55)!important; font-size:13px; transition:background .2s}
.bt-modal-kapat:hover{background:rgba(255,255,255,.1)!important; color:#fff!important}
.bt-modal-govde{min-height:0; margin-top:12px; overflow-y:auto; padding-right:4px}
.bt-modal .bt-ozet{margin-bottom:12px}
.bt-ara{position:relative; margin-bottom:12px}
.bt-ara i{position:absolute; left:13px; top:50%; transform:translateY(-50%); font-size:14px; color:rgba(255,255,255,.35); pointer-events:none}
.bt-ara input{width:100%; height:42px; padding:0 12px 0 38px; border-radius:10px; border:1px solid var(--rs-cizgi); background:var(--rs-panel); color:rgba(255,255,255,.9); font:700 12px/1 var(--rs-f); font-variant-numeric:tabular-nums; outline:none; transition:border-color .15s, box-shadow .15s}
.bt-ara input:focus{border-color:rgba(245,196,81,.45); box-shadow:0 0 0 3px rgba(245,196,81,.1)}
.bt-ara input::placeholder{color:rgba(255,255,255,.35); font-weight:500}
.bt-kaydir{max-height:46vh; overflow-y:auto; padding-right:4px}
.bt-kaydir::-webkit-scrollbar, .bt-modal-govde::-webkit-scrollbar{width:5px}
.bt-kaydir::-webkit-scrollbar-thumb, .bt-modal-govde::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14); border-radius:4px}
.bt-grup{padding:12px; border-radius:10px; background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.05)}
.bt-grup-bas{display:flex; align-items:center; gap:8px; margin-bottom:10px}
.bt-grup-rozet{padding:3px 8px; border-radius:6px; font-size:11px; font-weight:700; color:var(--rs-vurgu); background:rgba(245,196,81,.1)}
.bt-grup-et{font-size:11px; font-weight:600; color:rgba(255,255,255,.38)}
.bt-numaralar{display:flex; flex-wrap:wrap; gap:5px}
.bt-numara{display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 10px; border-radius:10px; background:var(--rs-panel); border:1px solid var(--rs-cizgi); font-size:12px; font-weight:800; letter-spacing:.3px; color:rgba(255,255,255,.9); font-variant-numeric:tabular-nums; transition:transform .12s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease}
.bt-numara:hover{transform:translateY(-1px); border-color:rgba(245,196,81,.4); color:var(--rs-vurgu); box-shadow:0 4px 12px -6px rgba(245,196,81,.5)}
.bt-numara.is-kazanan{background:linear-gradient(135deg,#ffe08a,var(--rs-vurgu)); border-color:transparent; color:var(--rs-vurgu-yazi)}
.bt-numara[hidden]{display:none}
.bt-bos{text-align:center; padding:32px 16px}
.bt-bos[hidden]{display:none}
.bt-bos i{display:block; margin-bottom:10px; font-size:30px; color:rgba(255,255,255,.12)}
.bt-bos p{margin:0; font-size:12px; font-weight:600; line-height:1.5; color:rgba(255,255,255,.38)}

/* ---------- KOD: kod şeridi (detayda başlığın hemen altında) ---------- */
.bt-kod-serit{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 20px; border-bottom:1px solid rgba(255,255,255,.06); background:linear-gradient(90deg, rgba(245,196,81,.06), transparent 70%)}
.bt-kod-et{display:flex; flex-direction:column; gap:2px; min-width:0}
.bt-kod-et b{font-size:13px; color:rgba(255,255,255,.9)}
.bt-kod-et span{font-size:11px; font-weight:600; color:rgba(255,255,255,.45)}
.bt-kod{flex:1; min-width:240px; display:flex; align-items:center; gap:10px; min-height:52px; padding:6px 6px 6px 16px; border-radius:12px; background:rgba(8,4,20,.45); border:1px dashed rgba(245,196,81,.38); transition:border-color .2s, background .2s}
.bt-kod-tx{flex:1; min-width:0; font:800 19px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.24em; color:rgba(255,255,255,.32); overflow-wrap:anywhere}
.bt-kod[data-durum="acik"]{border-style:solid; border-color:rgba(245,196,81,.6); background:rgba(245,196,81,.08); cursor:copy}
.bt-kod[data-durum="acik"] .bt-kod-tx{color:var(--rs-vurgu); letter-spacing:.08em; user-select:all}
.bt-kopya{width:40px!important; height:40px; flex:none; display:grid!important; place-items:center; border-radius:10px; background:linear-gradient(135deg,#ffe08a,var(--rs-vurgu))!important; color:var(--rs-vurgu-yazi)!important; transition:filter .15s, transform .12s}
.bt-kopya:hover{filter:brightness(1.07)}
.bt-kopya:active{transform:scale(.95)}
.bt-kopya svg{width:18px; height:18px}
.bt-kod-durum{flex-basis:100%; min-height:16px; margin-top:-4px; font-size:12px; font-weight:600; color:rgba(255,255,255,.5)}
.bt-kod-durum:empty{display:none}
.bt-kod-durum.ok{color:#34d399}
.bt-kod-durum.uyari{color:#ff9b9b}

/* kod şartları (veriden; hangisi eksikse işaretli) */
.bt-sartlar{display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none}
.bt-sart{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); font-size:12px; font-weight:600; color:rgba(255,255,255,.82)}
.bt-sart-i{width:22px; height:22px; flex:none; border-radius:6px; display:grid; place-items:center; font-size:11px; background:rgba(255,68,68,.12); color:#ff8a8a}
.bt-sart.is-tamam .bt-sart-i{background:rgba(52,211,153,.14); color:#34d399}
.bt-sart.is-bilgi .bt-sart-i{background:rgba(245,196,81,.1); color:var(--rs-vurgu)}
.bt-sart-durum{margin-left:auto; padding-left:10px; font-size:11px; font-weight:700; text-align:right; color:#ff8a8a}
.bt-sart.is-tamam .bt-sart-durum{color:#34d399}
.bt-sart.is-bilgi .bt-sart-durum{color:rgba(255,255,255,.5)}
.bt-sart-durum a{color:var(--rs-vurgu)!important; text-decoration:underline!important; text-underline-offset:2px}
.bt-aciklama{margin:0; font-size:13px; font-weight:600; line-height:1.7; color:rgba(255,255,255,.75)}

/* ---------- boş durum düğmesi ---------- */
.bt-bos-btn{margin-top:14px; height:40px!important}

/* ---------- duyarlı ---------- */
@media (max-width:768px){
  /* ortak dosyada .er-vitrin.n-2 / .n-4 kuralları tek sınıflı mobil kuralı eziyor;
     bu iki sayfada mobilde vitrin her zaman tek sütun */
  .bt .er-vitrin[class*="n-"]{grid-template-columns:minmax(0,1fr)}
  .bt-ozet{flex-wrap:wrap}
  .bt-ozet-ek{width:100%; margin-left:0; padding-top:10px; border-top:1px solid rgba(255,255,255,.06); justify-content:space-between; text-align:left}
  .bt-kod-serit{padding:12px 14px}
  .bt-kod{min-width:0; flex-basis:100%}
  .bt-kod-tx{font-size:16px}
  .bt-modal{padding:12px; align-items:flex-end}
  .bt-modal-kutu{width:100%; max-height:86vh; border-radius:16px 16px 12px 12px}
}
@media (max-width:560px){
  .bt-kademeler{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bt-kazandin{padding:12px}
  .bt-pk-logo-ad{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  .bt-modal-kutu, .bt-canli-nokta{animation:none!important}
}
