/* bi-kitap-film.css — Kitap & Film Kütüphanesi sayfalarına ÖZEL stiller.
   Kariyerler style.css'ten selektör-bazlı çıkarıldı (bi-film-*, bi-fragman-*, bi-kutup-gecis*,
   bi-tmdb-logo, bi-btn-fragman, #bi-particles-js). Paylaşılan style.css'e DOKUNULMADI —
   canlı portal-hero/badge/tema regresyonu olmasın diye izole edildi. Yalnız kitaplar.php+filmler.php yükler. */
/* Arka plan parcacik efekti (particles.js — kurumsal ile ayni kutuphane/mantik). Sabit, tikanmaz,
   icerigin ARKASINDA (pointer-events:none — hicbir butonu/linki engellemez). */
#bi-particles-js { position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .8; }
.bi-theme-apple #bi-particles-js { opacity: .55; }
/* =================================================================
   FİLM KÜTÜPHANESİ (filmler.php) — bi-lobi-apple teması içinde
================================================================= */
.bi-film-wrap { max-width:1280px; margin:0 auto; padding:30px 24px 70px; position:relative; z-index:1; }
.bi-film-hero { text-align:center; margin-bottom:26px; }
.bi-film-hero h1 { font-size:28px; font-weight:800; color:var(--ap-text); letter-spacing:-.02em; display:inline-flex; align-items:center; gap:10px; }
.bi-film-hero h1 i { color:var(--bi-accent); }
.bi-film-hero p { color:var(--ap-text-2); font-size:14.5px; max-width:620px; margin:8px auto 0; line-height:1.6; }
.bi-film-arac { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:16px; }
.bi-film-arama { flex:1; min-width:220px; display:flex; align-items:center; gap:10px; background:var(--ap-surface); border:1px solid var(--ap-border-strong); border-radius:999px; padding:11px 18px; box-shadow:0 1px 4px var(--ap-shadow); }
.bi-film-arama i { color:var(--ap-text-3); }
.bi-film-arama input { flex:1; border:none; background:transparent; outline:none; font-size:14.5px; color:var(--ap-text); font-family:inherit; }
.bi-film-sekme { display:flex; gap:6px; }
.bi-film-sek { display:inline-flex; align-items:center; gap:6px; background:var(--ap-surface); border:1px solid var(--ap-border-strong); border-radius:999px; padding:10px 16px; font-size:13px; font-weight:600; color:var(--ap-text-2); cursor:pointer; font-family:inherit; transition:all .15s; }
.bi-film-sek.active { background:var(--bi-accent); border-color:var(--bi-accent); color:#fff; }
.bi-film-turler { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px; }
.bi-film-tur { background:var(--ap-surface); border:1px solid var(--ap-border-strong); border-radius:999px; padding:7px 14px; font-size:12.5px; font-weight:500; color:var(--ap-text-2); cursor:pointer; font-family:inherit; transition:all .15s; }
.bi-film-tur:hover { border-color:rgba(var(--bi-accent-rgb),.5); color:var(--bi-accent); }
.bi-film-tur.active { background:var(--bi-accent); border-color:var(--bi-accent); color:#fff; }
.bi-film-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:16px; }
.bi-film-kart { cursor:pointer; transition:transform .18s ease; }
.bi-film-kart:hover { transform:translateY(-4px); }
.bi-film-poster { position:relative; aspect-ratio:2/3; border-radius:14px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; padding:14px; box-shadow:0 6px 18px -6px rgba(0,0,0,.4); }
.bi-film-poster::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.55), transparent 55%); }
.bi-film-poster-ad { position:relative; z-index:1; color:#fff; font-size:16px; font-weight:800; line-height:1.2; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.bi-film-poster-yil { position:relative; z-index:1; color:rgba(255,255,255,.85); font-size:12px; font-weight:600; margin-top:2px; }
.bi-film-puan { position:absolute; top:10px; left:10px; z-index:2; background:rgba(0,0,0,.6); color:#ffd166; font-size:11px; font-weight:700; padding:3px 7px; border-radius:999px; }
.bi-film-puan i { font-size:9px; }
.bi-film-fav-rozet { position:absolute; top:10px; right:10px; z-index:2; width:26px; height:26px; border-radius:50%; background:rgba(236,72,153,.92); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; }
/* Gerçek afiş — gradient tipografik posterin üstüne biner; yüklenince fade-in, hata olursa gizlenir (gradient fallback görünür) */
.bi-film-poster-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:1; opacity:0; transition:opacity .35s ease; }
.bi-film-poster-img.bi-img-ok { opacity:1; }
.bi-film-poster-img.bi-img-hata { display:none; }
.bi-film-kart-alt { padding:8px 2px 0; }
/* DÜZELTME: başlık 1 veya 2 satır olabildiği için kart yükseklikleri eşitsizdi ve
   ızgaranın alt hizası kırılıyordu ("Örümcek-Adam: Yepyeni Bir Gün" 2 satır, komşusu 1).
   İki satırlık sabit yer ayır; taşan başlık ... ile kısalsın. */
.bi-film-kart-ad { font-size:13.5px; font-weight:700; color:var(--ap-text); line-height:1.25;
                   display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
                   overflow:hidden; min-height:2.5em; }
.bi-film-kart-tur { font-size:11.5px; color:var(--ap-text-3); margin-top:1px; }
.bi-film-bos { text-align:center; padding:60px 20px; color:var(--ap-text-3); }
.bi-film-bos i { font-size:44px; opacity:.4; margin-bottom:14px; display:block; }
.bi-film-bos p { font-size:14.5px; max-width:360px; margin:0 auto; line-height:1.6; }
/* Detay modal */
.bi-film-modal-box { max-width:560px; padding:0; overflow:hidden; }
.bi-film-modal-box .bi-modal-close { position:absolute; top:14px; right:14px; z-index:5; background:rgba(0,0,0,.35); color:#fff; }
.bi-film-modal-box .bi-modal-body { padding:0; }
.bi-film-detay-ust { padding:34px 26px 22px; }
.bi-film-detay-ust.has-poster { display:flex; gap:18px; align-items:flex-end; }
.bi-film-detay-poster { width:92px; min-width:92px; aspect-ratio:2/3; object-fit:cover; border-radius:10px; box-shadow:0 8px 22px -6px rgba(0,0,0,.55); background:rgba(0,0,0,.15); }
.bi-film-detay-poster.bi-img-hata { display:none; }
/* Canlı arama ayracı + Cinemeta detay künye/not */
.bi-film-ayrac { grid-column:1/-1; margin:6px 2px 0; padding-top:14px; font-size:13px; font-weight:700; color:var(--ap-text-2); display:flex; align-items:center; gap:8px; border-top:1px solid var(--ap-border); }
.bi-film-ayrac i { color:var(--bi-accent); }
.bi-film-kunye { font-size:13px; color:var(--ap-text-2); margin:6px 0; }
.bi-film-kunye strong { color:var(--ap-text); font-weight:700; }
.bi-film-not { margin-top:14px; padding:10px 12px; background:var(--ap-surface-2); border-radius:10px; font-size:12px; color:var(--ap-text-3); display:flex; gap:8px; align-items:flex-start; line-height:1.5; }
.bi-film-not i { color:var(--bi-accent); margin-top:1px; }
.bi-film-daha { text-align:center; margin:26px 0 10px; }
.bi-film-daha .bi-btn { min-width:220px; }
/* Türkiye'de nerede izlenir — platform satırları */
.bi-film-nerede-satir { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-bottom:8px; }
.bi-film-nerede-satir .et { font-size:12px; font-weight:700; color:var(--ap-text-2); min-width:62px; }
/* Kütüphane sayacı + sıralama filtresi */
.bi-film-sayac { margin-top:16px; display:inline-flex; align-items:center; gap:8px; font-size:14px; color:var(--ap-text-2); background:rgba(var(--bi-accent-rgb),.1); padding:8px 18px; border-radius:999px; font-weight:600; }
.bi-film-sayac i { color:var(--bi-accent); }
.bi-film-sayac strong { color:var(--bi-accent); font-weight:800; font-size:15px; }
/* Film <-> Kitap kütüphane geçişi */
.bi-kutup-gecis { margin-top:18px; display:inline-flex; gap:6px; padding:5px; background:rgba(var(--bi-accent-rgb),.07); border:1px solid rgba(var(--bi-accent-rgb),.14); border-radius:999px; }
.bi-kutup-gecis-link { display:inline-flex; align-items:center; gap:7px; padding:8px 20px; border-radius:999px; font-size:14px; font-weight:700; color:var(--ap-text-2); text-decoration:none; transition:all .18s ease; }
.bi-kutup-gecis-link i { font-size:13px; }
.bi-kutup-gecis-link:hover { color:var(--ap-text); background:rgba(var(--bi-accent-rgb),.1); }
.bi-kutup-gecis-link.active { background:var(--bi-accent); color:#fff; box-shadow:0 4px 12px rgba(var(--bi-accent-rgb),.35); }
.bi-film-sirala { padding:0 14px; height:46px; border-radius:12px; border:1px solid var(--ap-border); background:var(--ap-surface-2); color:var(--ap-text); font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; flex-shrink:0; }
.bi-film-sirala:focus { outline:none; border-color:var(--bi-accent); }
@media (max-width:600px) {
  .bi-film-sirala { width:100%; }
}
/* TMDb zorunlu atıf (attribution) — logo app logosundan daha az belirgin */
.bi-film-attribution { margin:44px auto 20px; max-width:620px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; padding:18px; opacity:.85; }
.bi-tmdb-logo { height:22px; width:auto; }
.bi-film-attribution p { font-size:12px; color:var(--ap-text-3); line-height:1.55; margin:0; }
.bi-film-attribution strong { color:var(--ap-text-2); }
/* Fragman (YouTube) site içi oynatıcı — TMDb tarzı */
.bi-film-aksiyon .bi-btn-fragman { background:linear-gradient(135deg,#dc2626,#991b1b); color:#fff; border:none; }
.bi-film-aksiyon .bi-btn-fragman:hover { filter:brightness(1.08); }
.bi-fragman-modal { position:fixed; inset:0; z-index:3000; background:rgba(0,0,0,.9); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; padding:20px; }
.bi-fragman-modal.show { display:flex; }
.bi-fragman-govde { width:100%; max-width:920px; }
.bi-fragman-baslik { color:#fff; font-size:15px; font-weight:700; margin-bottom:10px; text-align:center; opacity:.92; }
.bi-fragman-oran { position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:14px; overflow:hidden; box-shadow:0 20px 60px -12px rgba(0,0,0,.7); }
.bi-fragman-oran iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.bi-fragman-kapat { position:absolute; top:18px; right:20px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.14); color:#fff; border:none; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; z-index:2; }
.bi-fragman-kapat:hover { background:rgba(255,255,255,.28); }
@media (max-width:600px) {
  .bi-fragman-kapat { top:10px; right:12px; width:40px; height:40px; }
  .bi-fragman-modal { padding:10px; }
}
.bi-film-detay-baslik h2 { color:#fff; font-size:24px; font-weight:800; text-shadow:0 1px 6px rgba(0,0,0,.4); }
.bi-film-detay-baslik .orij { color:rgba(255,255,255,.85); font-size:14px; margin-top:2px; }
.bi-film-detay-meta { color:rgba(255,255,255,.9); font-size:13px; font-weight:600; margin-top:8px; }
.bi-film-detay-govde { padding:20px 26px 26px; }
.bi-film-ozet { color:var(--ap-text); font-size:14.5px; line-height:1.65; margin-bottom:18px; }
.bi-film-nerede-blok .lbl, .bi-film-yorum-blok .lbl { font-size:12.5px; font-weight:700; color:var(--ap-text-2); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; display:flex; align-items:center; gap:7px; }
.bi-film-nerede-blok .lbl i, .bi-film-yorum-blok .lbl i { color:var(--bi-accent); }
.bi-film-platformlar { display:flex; gap:7px; flex-wrap:wrap; }
.bi-film-platform { background:rgba(var(--bi-accent-rgb),.1); color:var(--bi-accent); font-size:12.5px; font-weight:600; padding:5px 12px; border-radius:8px; }
.bi-film-platform.bos { background:var(--ap-surface-2); color:var(--ap-text-3); }
.bi-film-jw { display:inline-flex; align-items:center; gap:6px; margin-top:10px; font-size:12.5px; color:var(--bi-accent); text-decoration:none; font-weight:600; }
.bi-film-jw:hover { text-decoration:underline; }
.bi-film-aksiyon { display:flex; gap:10px; margin:20px 0; flex-wrap:wrap; }
.bi-film-aksiyon .bi-btn { flex:1; min-width:150px; justify-content:center; }
.bi-film-yorum-blok { border-top:1px solid var(--ap-border); padding-top:18px; }
.bi-film-yorum-form { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.bi-film-yorum-form textarea { width:100%; min-height:60px; resize:vertical; background:var(--ap-surface-2); border:1px solid var(--ap-border-strong); border-radius:10px; padding:10px 12px; font-size:13.5px; color:var(--ap-text); font-family:inherit; }
.bi-film-puan-sec { display:flex; gap:2px; }
.bi-film-puan-sec .yildiz { font-size:18px; color:var(--ap-border-strong); cursor:pointer; transition:color .1s; }
.bi-film-puan-sec .yildiz.dolu { color:#ffd166; }
.bi-film-yorum-giris, .bi-film-yorum-bos { color:var(--ap-text-3); font-size:13px; padding:8px 0; }
.bi-film-yorum-giris a { color:var(--bi-accent); }
.bi-film-yorum-liste { display:flex; flex-direction:column; gap:10px; }
.bi-film-yorum { background:var(--ap-surface-2); border-radius:10px; padding:10px 13px; }
.bi-film-yorum .ust { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.bi-film-yorum .ad { font-size:13px; font-weight:700; color:var(--ap-text); }
.bi-film-yorum .p { font-size:12px; color:#e0a800; font-weight:600; }
.bi-film-yorum .mtn { font-size:13.5px; color:var(--ap-text-2); line-height:1.5; word-break:break-word; }
@media (max-width:600px) {
  .bi-film-grid { grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; }
  .bi-film-arac { flex-direction:column; align-items:stretch; }
}

/* ═══ FİLM/KİTAP PANELİ ════════════════════════════════════════════════════════
   Arama, tür çipleri ve kart ızgarası sayfada serbest duruyordu; lobi/keşfet ile
   aynı panel kümelemesine alındı. Panelin GÖRÜNÜMÜ style.css'teki .bi-lobi-panel'den
   gelir (kurumsal .table-card dili) — burada yalnız panel içi boşluk düzeltmesi var. */
.bi-film-panel .bi-film-arac { margin-bottom: 14px; padding-bottom: 14px;
    border-bottom: 1px solid var(--bi-panel-basliK-cizgi); }
.bi-film-panel .bi-film-turler { margin-bottom: 16px; }
.bi-film-panel .bi-film-grid { margin-top: 0; }
