/* ============================================================
   player.css — kartu profil PEMAIN LAIN.
   Butuh: tokens.css, base.css, components.css, overlay.css,
          home.css, museum.css

   Kartu ini nyaris tidak punya tampilan sendiri, DAN ITU
   DISENGAJA. Isinya dek yang sama persis dengan Home — panel
   karakter, tiga kotak perlengkapan, rak museum — dan semuanya
   memakai kelas yang sama (.fh-deck*, .fh-chr, .fh-stage,
   .fh-load, .fh-mus__*). Yang ditulis di berkas ini cuma tiga hal:

     1. baris identitas di puncaknya, satu-satunya bagian yang
        memang cuma ada di sini;
     2. MENCABUT ISYARAT BISA-DITEKAN dari panel yang dipinjam;
     3. penempatan dek di dalam badan overlay yang menggulung.

   ⚠ JANGAN menimpa warna, bingkai, ukuran ubin, atau tata letak
   panelnya di sini. Kalau panel karakter di Home berubah, kartu
   ini HARUS ikut berubah tanpa disentuh — itu seluruh alasan
   kelasnya dipinjam, bukan disalin. Timpaan pertama di sini adalah
   awal dari dua panel yang perlahan jadi berbeda.
   ============================================================ */


/* ============================================================
   WADAH — kartu mengambang di tengah layar

   .fh-dialog, bukan .fh-ov. Kepala overlay.css memesan .fh-dialog
   untuk konfirmasi pendek saja, dan penyimpangan ini ditulis
   lengkap di markupnya (index.html). Ringkasnya: isi kartu ini
   tidak pernah panjang, dan yang dituju memang kesan menengok
   seseorang di percakapan yang masih terlihat di belakangnya.

   Sedikit lebih lebar dari dialog konfirmasi (344px), dengan alasan
   yang sama seperti .fh-musdlg: isinya panggung gambar, dan
   panggung yang sempit menyia-nyiakan satu-satunya hal yang
   dipamerkan kartu ini.

   88% TINGGI LAYAR, dan angka itu berpasangan dengan panggung
   karakter yang 46% tinggi viewport (lihat `body:not(.fh-scaled)
   .fh-stage` di home.css). Karena keduanya proporsi dari viewport
   yang sama, perbandingannya tidak berubah di layar mana pun:
   di 844px kartunya 743 dan isinya 619; di 667px kartunya 587 dan
   isinya 481. Tidak ada satu pun ukuran mati yang perlu dijaga.
   ============================================================ */

.fh-pldlg{max-width:360px;max-height:88vh}

/* vh mengukur JENDELA ASLI, bukan stage. Di mode terskala tinggi
   maksimumnya harus persen terhadap stage — aturan yang sama
   dengan .fh-sheet di overlay.css dan .fh-musdlg di museum.css. */
body.fh-scaled .fh-pldlg{max-height:88%}

/* Badan kartu. Menggulung hanya kalau terpaksa: di ukuran layar
   mana pun yang wajar isinya muat utuh, dan gulungan di sini
   pertanda kartunya sudah kebanyakan isi — lihat catatan di
   markupnya soal kapan dia harus kembali jadi overlay penuh. */
.fh-pldlg__body{
  flex:1 1 auto;min-height:0;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:var(--sp-md);
}
.fh-pldlg__body::-webkit-scrollbar{width:0}

/* DEK SETINGGI ISINYA, persis seperti di Home — tanpa flex:1 dan
   tanpa tinggi paksaan.

   ⚠ Sempat ditulis flex:1 supaya deknya memenuhi sisa layar, dan
   itu keliru dengan cara yang tidak langsung terlihat: kotak deknya
   memang ikut membesar, tapi barisnya (.fh-deck__track) tetap
   setinggi halaman tertinggi, jadi yang muncul cuma ruang kosong
   antara panel dan baris titik di bawahnya.

   Yang menjaga halaman museum tetap punya tinggi pasti BUKAN
   aturan di sini melainkan halaman karakter di sebelahnya, sama
   seperti di Home: panggungnya bertinggi tetap, raknya tidak punya
   tinggi minimum sama sekali dan menggulung di dalam dirinya
   sendiri. Riwayat lengkapnya di kepala blok DEK (home.css) dan di
   .fh-mus__rakwrap (museum.css). */


/* ============================================================
   IDENTITAS — satu baris di puncak kartu

   SENGAJA BUKAN .fh-pcard, kartu profil sendiri yang bertumpuk
   tegak dan setinggi separuh layar. Yang di sana punya bar XP,
   kartu VIP, dan tombol title — hal-hal untuk DIKERJAKAN. Di sini
   identitas cuma keterangan siapa yang sedang dilihat, dan yang
   jadi isi kartunya panel di bawahnya. Satu baris sudah cukup, dan
   satu baris menyisakan tinggi untuk panelnya.
   ============================================================ */

.fh-plid{
  flex:none;
  display:flex;align-items:center;gap:10px;
  padding:10px 12px;
  border-bottom:1px solid var(--pixel-border);
}

.fh-plid__av{
  --fh-av:44px;
  flex:none;
}
.fh-plid__av.is-vip{border:2px solid var(--pixel-primary)}

.fh-plid__mid{min-width:0;flex:1}

/* min-width:0 pada namanya WAJIB: tanpa itu nama panjang mendorong
   mahkota keluar kotak alih-alih dipotong sendiri. Aturan yang
   sama dengan .fh-mline di chat.css — dan memang baris yang sama
   isinya, cuma lebih besar. */
.fh-plid__name{display:flex;align-items:center;gap:6px;max-width:100%}
.fh-plid__name b{
  font-size:15px;font-weight:600;
  min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fh-plid__name.is-vip b{color:var(--pixel-primary);letter-spacing:.2px}
.fh-plid__name .fh-crown{width:16px;height:12px;flex:none}
.fh-plid__name .fh-clan{flex:none}

.fh-plid__sub{
  display:flex;align-items:center;gap:8px;
  margin-top:4px;min-width:0;
}
.fh-plid__lv{
  flex:none;
  font-family:var(--font-pixel);font-size:8px;letter-spacing:.5px;
  color:var(--pixel-primary);
}
/* Title dipotong, bukan dibungkus: baris identitas harus setinggi
   sama untuk semua orang, dan title panjang milik satu orang tidak
   boleh membuat kartunya lebih tinggi dari kartu orang lain. */
.fh-plid__title{
  min-width:0;
  font-size:9px;line-height:1;letter-spacing:.3px;
  color:var(--pixel-muted);text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Tombol tutup DI DALAM baris identitas, bukan di baris judul
   sendiri di atasnya — itu seluruh baris yang dihemat popup ini
   (lihat markupnya). flex:none supaya dia tidak pernah ikut
   menyusut waktu nama panjang mendorong kolom tengah. */
.fh-plid .fh-btn-x{flex:none;margin-left:2px}

/* Kotak gagal muat: jaraknya ke dek di bawahnya. */
.fh-pl .fh-lock{margin-bottom:var(--sp-md)}


/* ============================================================
   PANEL YANG DIPINJAM — isyarat bisa-ditekan DICABUT

   .fh-stage dan .fh-slot lahir sebagai tombol di Home: keduanya
   membuka overlay ganti perlengkapan, jadi keduanya bercursor
   pointer dan mengkerut saat ditekan. Di kartu ini tidak ada yang
   bisa diganti, dan isyarat yang tertinggal adalah janji yang
   langsung diingkari — pemain menekan panggung karakter orang
   lain, panelnya mengkerut menjawab, lalu tidak terjadi apa-apa.

   DICABUT DI SINI, bukan di home.css, karena di sanalah keduanya
   MEMANG tombol. Yang menyimpang kartu ini, jadi kartu ini yang
   menuliskan penyimpangannya.

   Peran/tabindex-nya sudah tidak ada sejak markup dan render
   (FH.panelLoadout dipanggil dengan bisaTap=false), jadi yang
   tersisa cuma sisa gayanya.
   ============================================================ */

.fh-pl .fh-stage,
.fh-pl .fh-slot{cursor:default}
.fh-pl .fh-stage:active{background:linear-gradient(180deg,
  var(--pixel-raised),var(--pixel-sunken))}
.fh-pl .fh-slot:active{transform:none}

/* Kotak museumnya tetap bisa ditekan — popup detail satu-satunya
   hal yang boleh dilakukan di kartu ini, dan dia cuma membaca.
   Aturannya sudah benar di museum.css; yang ditulis di sini cuma
   penegasan bahwa TIDAK ADA yang dicabut untuknya. */


/* ============================================================
   RAK MUSEUM ORANG LAIN

   Bentuknya sama persis dengan rak sendiri (museum.css). Yang
   TIDAK ada di sini: seluruh blok atur letak — .is-angkat,
   .is-sasar, .is-atur, .is-simpan, dan ubin melayang .fh-mus__drag.
   Museum orang lain tidak bisa disusun, jadi tidak ada satu pun
   keadaan itu yang bisa terjadi, dan menuliskan gayanya berarti
   menyimpan aturan untuk keadaan yang tidak ada.
   ============================================================ */

/* ⚠ TINGGI PANGGUNG DAN SPRITE SENGAJA TIDAK DITIMPA di sini.

   Sempat ditimpa jadi clamp(220px,52vw,300px) dengan alasan
   "panggung 360px mendorong perlengkapan keluar layar", dan itu
   salah di dua tingkat sekaligus:

   Pertama, timpaannya tidak pernah berlaku. home.css sudah punya
   `body:not(.fh-scaled) .fh-stage` — kekhususan (0,3,1) yang
   mengalahkan `.fh-pl .fh-stage` (0,2,0) — jadi yang tergambar
   tetap aturan Home dan timpaan di sini cuma baris yang tidak
   melakukan apa-apa.

   Kedua, alasannya sendiri tidak berdiri. Aturan Home itu bukan
   360px mati melainkan 46% tinggi viewport dijepit 260-400px, jadi
   dia sudah menyusut sendiri di layar pendek. Di 844px: 55 (kepala)
   + 78 (identitas) + 388 (panggung) + 121 (perlengkapan) + 44
   (titik) masih muat; di 667px panggungnya jadi 306 dan tetap muat.

   Kalau suatu saat panggung di kartu ini memang harus lebih pendek
   daripada di Home, yang dibutuhkan kekhususan yang cukup —
   `body:not(.fh-scaled) .fh-pl .fh-stage` — bukan menaikkan
   angkanya di selektor yang kalah. */
