/* ===========================================================================
 *  CUSTOM BRANDING - Vaultwarden Web Vault
 * ---------------------------------------------------------------------------
 *  Di-inject nginx tepat sebelum </head>, jadi selalu dimuat SETELAH stylesheet
 *  bawaan web vault dan menang pada spesifisitas yang sama.
 *
 *  Terapkan:  docker compose restart webserver
 *  Lalu hard-refresh browser (Cmd/Ctrl + Shift + R).
 *
 *  Selector di bawah diverifikasi terhadap web-vault v2026.7.0 dengan membaca
 *  DOM yang benar-benar dirender, bukan ditebak.
 * =========================================================================== */

/* ===========================================================================
 *  1. LOGO
 * ---------------------------------------------------------------------------
 *  Ada DUA jenis logo di web vault, dan keduanya perlu ditangani berbeda:
 *
 *  (a) Logo pada KOTAK LOGIN adalah <img class="new-logo-themed"> yang
 *      sumbernya diatur CSS: url(images/logo.svg) / url(images/logo-white.svg).
 *      Ini otomatis tertimpa oleh berkas di branding/images/ - TIDAK butuh CSS.
 *
 *  (b) Logo di HEADER kiri-atas adalah INLINE <svg> di dalam <bit-svg>, bukan
 *      <img>. Karena isinya tertanam di dokumen, ia tidak bisa ditimpa lewat
 *      berkas gambar. Blok di bawah menyembunyikan SVG bawaan lalu memasang
 *      logo instansi sebagai background.
 * ------------------------------------------------------------------------- */

/* Selector dikunci ke kelas .tw-fill-marketing-logo, BUKAN ke aria-label.
 * Kelas itu hanya dipakai oleh dua SVG di seluruh bundel web vault - keduanya
 * adalah wordmark merek (header halaman login dan logo sidebar setelah login).
 * Memakai aria-label tidak cukup: komponen sidebar (bit-nav-logo) memberi
 * label lewat jalur berbeda, sehingga logo di dalam aplikasi tidak ikut
 * terganti.
 *
 * visibility:hidden (bukan display:none) dipakai supaya SVG asli tetap
 * menempati ruang. Dengan begitu kotak induknya mempertahankan ukuran alami
 * di kedua tempat, dan logo pengganti tinggal ditampilkan sebagai background -
 * tanpa perlu menebak tinggi/lebar untuk tiap lokasi.
 */
/*  ADA DUA SVG MEREK YANG BERBEDA - keduanya harus ditangani terpisah:
 *
 *    viewBox="0 0 290 60"  kelas .tw-fill-marketing-logo  -> HALAMAN LOGIN
 *    viewBox="0 0 60 60"   kelas .tw-fill-fg-nav          -> SIDEBAR
 *
 *  Mengunci pada .tw-fill-marketing-logo saja TIDAK PERNAH menjangkau sidebar,
 *  karena kelas itu memang tidak ada di sana. Untuk sidebar, targetnya adalah
 *  komponennya langsung (<bit-nav-logo>) sehingga tidak bergantung pada isi
 *  SVG-nya sama sekali - ini juga membuatnya tahan terhadap perubahan bentuk
 *  ikon antar versi web vault.
 *
 *  visibility:hidden (bukan display:none) dipakai supaya SVG asli tetap
 *  menempati ruang; di sidebar SVG-nya position:absolute sehingga background
 *  harus dipasang pada <a> yang punya tinggi eksplisit (tw-h-[73px]).
 */

/* --- 1a. Halaman login --------------------------------------------------- */
a:has(.tw-fill-marketing-logo) svg {
  visibility: hidden !important;
}

a:has(.tw-fill-marketing-logo) {
  background-image: var(--brand-logo-light, url("/branding/images/logo.svg"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  min-height: var(--brand-logo-height, 44px);
}

.theme_dark a:has(.tw-fill-marketing-logo) {
  background-image: var(--brand-logo-dark, url("/branding/images/logo-white.svg"));
}

/* --- 1b. Sidebar (vault & Admin Console) ---------------------------------- */
bit-nav-logo svg,
bit-nav-logo bit-svg {
  visibility: hidden !important;
}

bit-nav-logo a {
  background-image: var(--brand-logo-light, url("/branding/images/logo.svg"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.theme_dark bit-nav-logo a {
  background-image: var(--brand-logo-dark, url("/branding/images/logo-white.svg"));
}

/* Cadangan untuk browser lawas yang belum mendukung :has()
 * (Chrome/Edge/Safari <105, Firefox <121). Hanya menangkap logo header. */
@supports not selector(:has(*)) {
  bit-svg[role="img"][aria-label*="logo" i] > svg { visibility: hidden !important; }
  bit-svg[role="img"][aria-label*="logo" i] {
    background-image: var(--brand-logo-light, url("/branding/images/logo.svg"));
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    min-height: 32px;
  }
  .theme_dark bit-svg[role="img"][aria-label*="logo" i] {
    background-image: var(--brand-logo-dark, url("/branding/images/logo-white.svg"));
  }
}

/* ---------------------------------------------------------------------------
 *  LOGO DI KOTAK LOGIN
 *
 *  Web vault mengaturnya lewat CSS bawaan:
 *      .theme_light img.new-logo-themed { content: url(images/logo.svg); }
 *      .theme_dark  img.new-logo-themed { content: url(images/logo-white.svg); }
 *
 *  Kalau kamu memakai berkas bernama logo.svg / logo-white.svg, cukup taruh
 *  berkasnya - aturan bawaan itu sudah menunjuk ke sana dan nginx menyajikan
 *  punyamu.
 *
 *  Kalau memakai PNG (atau nama lain), aturan bawaan tetap menunjuk .svg,
 *  sehingga perlu ditimpa di sini. Itulah yang dilakukan blok di bawah -
 *  jalurnya mengikuti BRAND_LOGO_* di .env.
 * ------------------------------------------------------------------------- */
:root img.new-logo-themed,
.theme_light img.new-logo-themed {
  content: var(--brand-logo-light, url("/branding/images/logo.svg")) !important;
}
.theme_dark img.new-logo-themed {
  content: var(--brand-logo-dark, url("/branding/images/logo-white.svg")) !important;
}

/* Lebar logo dikunci 128px oleh web vault. Sesuaikan bila rasio logo instansi
   jauh berbeda. */
img.new-logo-themed {
  width: 160px;
  height: auto;
}

/* ---------------------------------------------------------------------------
 *  ILUSTRASI TENGAH pada halaman login (gambar brankas biru di atas "Log in")
 *
 *  Ini BUKAN logo merek - ia ilustrasi dekoratif (role="presentation"), jadi
 *  tidak ikut terganti oleh aturan di atas. Hapus komentar untuk menggantinya
 *  dengan lambang instansi, atau untuk menyembunyikannya sama sekali.
 *
 *  .tw-size-20 adalah pembungkusnya dan hanya muncul sekali di halaman.
 * ------------------------------------------------------------------------- */
/*
.tw-size-20 > bit-svg > svg { display: none !important; }
.tw-size-20 > bit-svg {
  display: block;
  background-image: var(--brand-icon, url("/branding/images/icon.svg"));
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  height: 100%;
}
*/

/* Sembunyikan ilustrasi latar (roda gigi, orang, pesawat kertas) di halaman
   login. Hapus komentar bila ingin latar polos. */
/*
.tw-hidden.md\:tw-block:has(.tw-fill-illustration-bg-primary) { display: none !important; }
*/

/* ===========================================================================
 *  2. FOOTER
 * ---------------------------------------------------------------------------
 *  Footer halaman login memuat tiga baris:
 *      div[bittypography="body2"]  -> "Vaultwarden Web"
 *      div[bittypography="body2"]  -> nomor versi
 *      div[bittypography="helper"] -> disclaimer merek Bitwarden
 *
 *  Menyembunyikan nomor versi juga menguntungkan keamanan: tidak perlu
 *  mengumumkan versi persis ke pengunjung yang belum login.
 *
 *  Blok <div> pertama (tanpa bittypography) sengaja DIBIARKAN karena berisi
 *  environment-selector yang fungsional.
 * ------------------------------------------------------------------------- */
bit-landing-footer div[bittypography="body2"],
bit-landing-footer div[bittypography="helper"] {
  display: none !important;
}

/* Ganti dengan keterangan instansi sendiri.
   Kosongkan content: "" bila tidak ingin ada teks apa pun. */
bit-landing-footer footer::after {
  content: "2026 © PT REKONESIA";
  display: block;
  padding-top: 4px;
  font-size: 12px;
  opacity: .6;
}

/* ===========================================================================
 *  3. WARNA
 * ---------------------------------------------------------------------------
 *  Web vault memakai CSS custom property bergaya Tailwind. Nilainya TIGA KANAL
 *  RGB DIPISAH SPASI - bukan hex, bukan rgb().
 *
 *      BENAR :  --color-primary-600: 29 78 216;
 *      SALAH :  --color-primary-600: #1d4ed8;
 *
 *  Token didefinisikan di :root (tema terang) dan ditimpa di .theme_dark.
 * ------------------------------------------------------------------------- */
:root {
  --color-primary-600: 29 78 216;   /* #1d4ed8 - aksen utama */
  --color-primary-700: 30 58 138;   /* #1e3a8a - varian gelap/hover */
}

.theme_dark {
  --color-primary-600: 96 165 250;  /* #60a5fa - lebih terang agar kontras */
  --color-primary-700: 147 197 253; /* #93c5fd */
}

/* ===========================================================================
 *  4. SEMBUNYIKAN AJAKAN DAFTAR SENDIRI
 * ---------------------------------------------------------------------------
 *  Dengan SIGNUPS_ALLOWED=false, Vaultwarden MENOLAK pendaftaran mandiri -
 *  tapi web vault tetap menampilkan tautan "Create account". Pengguna yang
 *  menekannya mendapat pesan "Registration not allowed or user already exists"
 *  yang membingungkan.
 *
 *  Blok ini menyembunyikan tautan itu supaya satu-satunya jalan masuk adalah
 *  undangan dari admin/organization.
 *
 *  CATATAN: ini hanya kosmetik. Penegakan sesungguhnya ada di server
 *  (SIGNUPS_ALLOWED=false); menyembunyikan tombol bukan kontrol keamanan.
 *
 *  Hapus/komentari blok ini kalau pendaftaran mandiri memang diinginkan.
 * ------------------------------------------------------------------------- */
/*  PERHATIAN sebelum mengaktifkan blok ini:
 *  Pengguna yang ditambahkan admin lewat panel /admin TETAP harus membuka
 *  halaman pendaftaran untuk menetapkan master password mereka sendiri.
 *  Menyembunyikan tautannya akan membuat mereka tidak punya jalan masuk.
 *
 *  Aktifkan HANYA bila semua pengguna diarahkan lewat tautan langsung
 *  (mis. dari email undangan SMTP). Hapus tanda komentar untuk mengaktifkan.
 */
/*
a[routerlink="/signup"],
a[href="#/signup"],
a[href$="/register"],
a[routerlink="/register"] {
  display: none !important;
}

bit-form-control:has(> a[href="#/signup"]),
div:has(> a[href="#/signup"]):not(:has(input)) {
  display: none !important;
}
*/

/* ===========================================================================
 *  5. OPSIONAL
 * ------------------------------------------------------------------------- */

/* Sembunyikan tautan keluar ke situs Bitwarden. Hapus komentar bila perlu.
a[href*="bitwarden.com"] { display: none !important; }
*/
