/* ============================================================================
   TEMA "TOGEL Z1PLAY" — dipakai HANYA oleh TESSA77.

   8 Sep 2026: dipalet ulang dari hitam-kuning (skin OXPLAY black-yellow) ke
   NAVY + MINT mengikuti referensi https://nexusrivo.wo3yulsti.com yang
   diminta pemilik. Yang berubah cuma warna dan tata letak mobile; struktur
   selector lama dipertahankan supaya tidak ada markup yang perlu diubah.

   Palet baru:
     halaman                #0a1a26 (navy tua)
     panel/kartu            #12242f, garis #1f394a, TEKS TERANG
     aksen (tombol, ikon)   #2fe3a5 → #12b98a, teks di atas aksen HITAM
     radius                 12px (dulu 5px — referensi memakai sudut membulat)
     kolom konten           1200px
     font                   Avenir, "Helvetica Neue", Arial

   Aturan penting yang berbalik dari versi lama: panel TIDAK lagi kuning, jadi
   teks di atas panel sekarang TERANG (--tg-panel-ink). Yang tetap hitam hanya
   teks di atas tombol aksen mint.
   ========================================================================= */

body.theme-togel_z1play {
  --tg-page: #0a1a26;
  --tg-surface: #12242f;
  --tg-surface-2: #17303e;
  --tg-panel: #2fe3a5;          /* aksen mint (dulu kuning) */
  --tg-panel-2: #12b98a;
  --tg-panel-line: #1f394a;
  --tg-panel-ink: #e6f2f0;
  --tg-panel-ink-soft: #8ba7b5;
  --tg-btn-login: #2fe3a5;
  --tg-tile: #0f2230;
  --tg-col: 1200px;

  /* Token bersama app.css + theme-cohesion.css: diisi ulang supaya komponen
     generik (live casino, jackpot, loading screen, form login mobile) ikut
     navy-mint tanpa perlu aturan satu per satu. */
  --navy: #0a1a26;
  --navy2: #12242f;
  --gold: #2fe3a5;
  --gold2: #7ff0cb;
  --line: #1f394a;
  --ink: #e6f2f0;
  --muted: #8ba7b5;
  --theme-accent: #2fe3a5;
  --theme-accent-soft: #7ff0cb;
  --theme-dark: #0a1a26;
  --theme-dark-2: #12242f;
  --theme-border: #1f394a;
  --theme-radius: 12px;
  --process-dark: #0a1a26;
  /* app.css memakai `--paper:#eef1f4` (abu terang) sebagai latar halaman, dan
     userarea.css memakainya untuk latar banner member. Tema lama tidak pernah
     mengisi ulang token ini, jadi di halaman member muncul pita putih di kiri
     dan kanan banner. */
  --paper: #0a1a26;

  background: var(--tg-page) !important;
  background-image:
    radial-gradient(1100px 620px at 50% -160px, #10394a 0%, rgba(16, 57, 74, 0) 72%),
    linear-gradient(180deg, #0a1a26 0%, #08131c 100%) !important;
  background-attachment: fixed !important;
  color: var(--tg-panel-ink);
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif !important;
}

/* Ornamen tepi kiri/kanan menggantikan wallpaper CDN pihak lain. */
body.theme-togel_z1play::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    repeating-linear-gradient(115deg, rgba(47, 227, 165, .05) 0 2px, rgba(0, 0, 0, 0) 2px 26px),
    radial-gradient(520px 520px at 0% 32%, rgba(47, 227, 165, .12), rgba(0, 0, 0, 0) 70%),
    radial-gradient(520px 520px at 100% 32%, rgba(47, 227, 165, .12), rgba(0, 0, 0, 0) 70%);
}

/* ---------------------------------------------------------------- kolom isi
   Isi kembali dikurung kolom 1200px seperti situs aslinya. SATU pengecualian
   (permintaan pemilik, 31 Agu 2026): banner menempel penuh kiri-kanan. Caranya
   `main` dibiarkan selebar layar tanpa padding samping, lalu yang dikurung
   1200px adalah `.reference-home` — banner yang duduk di luar pembungkus itu
   otomatis memenuhi layar tanpa perlu trik `100vw` (yang selalu memunculkan
   scrollbar mendatar selebar batang gulir). */
body.theme-togel_z1play .public-desktop-nav-bar > div,
body.theme-togel_z1play .topbar-inner,
body.theme-togel_z1play .footer-inner,
body.theme-togel_z1play .footer-bottom {
  width: min(var(--tg-col), 100%);
  max-width: none;
  margin-inline: auto;
}
body.theme-togel_z1play main {
  width: 100%;
  max-width: none;
  margin-inline: auto;
  padding: 0 0 24px;
  background: var(--tg-page);
  box-shadow: none;
}
body.theme-togel_z1play .reference-home,
body.theme-togel_z1play .global-mobile-inline-login,
body.theme-togel_z1play .global-mobile-inline-register {
  width: min(var(--tg-col), calc(100% - 32px));
  max-width: none;
  margin-inline: auto;
}
/* Banner penuh kiri-kanan: tanpa radius dan tanpa garis samping supaya benar
   benar menempel ke tepi layar. */
body.theme-togel_z1play .public-home-banner {
  width: 100%;
  max-width: none;
  padding: 0;
}
body.theme-togel_z1play .banner-slider {
  width: 100%;
  max-width: none;
  border-radius: 0;
  border-inline: 0;
}
body.theme-togel_z1play .banner-slide img { border-radius: 0; }

/* -------------------------------------------------------------------- header */
body.theme-togel_z1play .topbar {
  background: var(--tg-page);
  border: 0;
  border-bottom: 2px solid var(--tg-panel);
  box-shadow: 0 3px 4px rgba(0, 0, 0, .5);
}
body.theme-togel_z1play .topbar-inner {
  height: 62px;
  padding: 0 16px;
  gap: 16px;
}
/* Logo dibesarkan sedikit (permintaan pemilik, 31 Agu 2026): 34px -> 44px.
   Tinggi bilah header ikut naik 53px -> 62px supaya logo tetap punya ruang
   napas di atas dan bawah, bukan mepet garis. */
body.theme-togel_z1play .brand img { max-height: 44px; }
body.theme-togel_z1play .account-nav { gap: 8px; align-items: center; }

/* ------------------------------------------------------- tombol MASUK/DAFTAR
   Redesain 31 Agu 2026. Sebelumnya keduanya blok padat berukuran sama (amber +
   kuning) sehingga tidak ada yang menonjol dan dua warna itu saling berebut
   perhatian. Sekarang bertingkat: DAFTAR tombol utama kuning padat, MASUK
   tombol sekunder bergaris kuning dengan isi kosong. Tanpa bayangan, gradient,
   maupun glow — hover hanya menukar isi dan garisnya. */
body.theme-togel_z1play .account-nav .login-btn,
body.theme-togel_z1play .account-nav .register-btn {
  height: 38px;
  min-width: 104px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border-radius: 4px;
  font: 900 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: none;
  text-shadow: none;
  transition: background-color .15s linear, color .15s linear, border-color .15s linear;
}
body.theme-togel_z1play .account-nav .login-btn {
  border: 1px solid var(--tg-panel);
  background: transparent;
  color: var(--tg-panel);
}
body.theme-togel_z1play .account-nav .login-btn:hover {
  background: var(--tg-panel);
  color: #000;
}
body.theme-togel_z1play .account-nav .register-btn {
  border: 1px solid var(--tg-panel);
  background: var(--tg-panel);
  color: #000;
}
body.theme-togel_z1play .account-nav .register-btn:hover {
  background: #7ff0cb;
  border-color: #7ff0cb;
}
body.theme-togel_z1play .account-nav .login-btn:focus-visible,
body.theme-togel_z1play .account-nav .register-btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

/* Login inline di header, kalau varian ini nanti mengaktifkan blok classic. */
body.theme-togel_z1play .classic-inline-login .classic-login-field {
  background: #fff;
  border-radius: 3px;
  height: 30px;
  padding: 0 8px;
}
body.theme-togel_z1play .classic-inline-login .classic-login-field input { color: #162b38; }
body.theme-togel_z1play .classic-inline-login button[type="submit"] { background: var(--tg-btn-login); color: #000; }
body.theme-togel_z1play .classic-inline-login .classic-register { background: var(--tg-panel); color: #000; }

/* ------------------------------------------------------- teks berjalan kuning
   `.notice` = pita pengumuman di atas header. Bawaannya (marquee-notice.css)
   punya dua hiasan yang tidak cocok di sini: latar gradient dan peredam
   gradient gelap selebar 56px di tepi kanan (`:after`) yang di atas kuning
   terlihat seperti noda menyala. Keduanya dimatikan — pita ini rata, tanpa
   bayangan, tanpa gradient, tanpa efek apa pun. Lebarnya ikut kolom isi dan
   menyusut sendiri di layar sempit. */
/* DISEMBUNYIKAN atas permintaan pemilik (31 Agu 2026). Aturan tampilannya
   sengaja ditinggal utuh di bawah supaya tinggal menghapus baris ini kalau
   pita pengumuman mau dihidupkan lagi. */
body.theme-togel_z1play .notice { display: none !important; }

body.theme-togel_z1play .notice {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  width: min(calc(var(--tg-col) - 32px), calc(100% - 32px));
  height: 34px;
  margin: 8px auto 0;
  padding: 0;
  border: 1px solid var(--tg-panel-line);
  border-radius: 5px;
  background: var(--tg-surface) !important;
  color: var(--tg-panel-ink);
  box-shadow: none;
  text-shadow: none;
}
/* Label tetap di kiri: kotak hitam, bukan emoji dan bukan pelat gradient. */
body.theme-togel_z1play .notice::before {
  content: "INFO";
  position: relative;
  inset: auto;
  z-index: 2;
  flex: none;
  align-self: stretch;
  display: flex;
  align-items: center;
  padding: 0 13px;
  background: #000;
  color: var(--tg-panel);
  font: 900 10px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .18em;
  text-shadow: none;
}
/* Peredam gradient di tepi kanan dibuang seluruhnya. */
body.theme-togel_z1play .notice::after { content: none; display: none; }
body.theme-togel_z1play .notice-marquee {
  flex: 1;
  min-width: 0;
  padding: 0 12px;
  overflow: hidden;
}
body.theme-togel_z1play .notice-track {
  animation-duration: 38s;
  will-change: auto;
}
body.theme-togel_z1play .notice-track span {
  padding: 0 22px;
  font: 700 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .01em;
  color: var(--tg-panel-ink) !important;
  text-shadow: none;
}
body.theme-togel_z1play .notice-track i {
  color: var(--tg-panel-ink) !important;
  opacity: 1;
  font-size: 11px;
  text-shadow: none;
}

/* ------------------------------------------------- baris ikon kategori (nav) */
body.theme-togel_z1play .public-desktop-nav-bar {
  background: var(--tg-page);
  border: 0;
  box-shadow: inset 0 -1px 0 rgba(47, 227, 165, .18);
}
body.theme-togel_z1play .public-desktop-nav-bar > div {
  display: flex;
  justify-content: center;
  gap: 22px;
  flex-wrap: wrap;
  width: min(var(--tg-col), 100%);
  height: auto;
  padding: 8px 16px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
body.theme-togel_z1play .public-desktop-nav-bar a {
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  background: none !important;
  border: 0 !important;
  padding: 0;
  min-width: 62px;
}
/* Ikon memakai artwork asli togel.z1play.co (di-host sendiri di
   static/togel-nav/), jadi TIDAK diberi pelat bundar emas — gambarnya sudah
   berbentuk lencana sendiri. */
body.theme-togel_z1play .public-desktop-nav-bar a i {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  background: none;
  border: 0;
  box-shadow: none;
  transition: transform .18s ease;
}
body.theme-togel_z1play .public-desktop-nav-bar a i img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  display: block;
}
body.theme-togel_z1play .public-desktop-nav-bar a:hover i { transform: translateY(-2px); }
body.theme-togel_z1play .public-desktop-nav-bar a span small { display: none; }
body.theme-togel_z1play .public-desktop-nav-bar a span b {
  font: 700 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  white-space: nowrap;
  color: #fff;
  text-transform: none;
}
body.theme-togel_z1play .public-desktop-nav-bar a.active span b,
body.theme-togel_z1play .public-desktop-nav-bar a:hover span b { color: var(--tg-panel); }

/* ------------------------------------------------------------------- banner */
body.theme-togel_z1play .banner-slider {
  border-block: 1px solid var(--tg-panel-line);
  overflow: hidden;
}
/* Vignette gelap bawaan di dalam banner (bayangan inset 60px dari bawah)
   dimatikan — pemilik minta tampilan tanpa efek. */
body.theme-togel_z1play .banner-slider::before { box-shadow: none; }
/* Banner diam (permintaan pemilik, 31 Agu 2026): pergantian otomatis tiap 5
   detik dimatikan lewat `data-autoplay="off"` di home.html, dan di sini sisa
   geraknya ikut dihapus — tanpa fade, tanpa zoom, tanpa batang progres. Panah
   dan titik navigasi tetap hidup untuk pindah banner secara manual. */
body.theme-togel_z1play .banner-slide {
  transition: none;
  transform: none;
}
body.theme-togel_z1play .banner-slide.active { transform: none; }
body.theme-togel_z1play .banner-progress { display: none; }

/* ------------------------------------------ pita tab kategori bawah banner
   DIHAPUS di desktop (permintaan pemilik, 31 Agu 2026): isinya duplikat dengan
   baris ikon kategori di atas banner. `global-mobile-public.css` sudah
   menyembunyikan `.global-mobile-game-menu` secara bawaan dan hanya
   memunculkannya di bawah 900px, jadi cukup TIDAK memaksanya tampil di sini —
   di ponsel ia tetap muncul karena di sana baris ikon atas yang disembunyikan. */

/* --------------------------------------------------------------- jackpot bar */
body.theme-togel_z1play .jp { margin: 12px 0 0; border-color: var(--tg-panel-line); }
body.theme-togel_z1play .jp-frame {
  background: linear-gradient(180deg, var(--tg-surface-2), var(--tg-surface));
  border: 1px solid var(--tg-panel-line);
  border-radius: 12px;
  box-shadow: none;
  padding: 8px 16px;
}
body.theme-togel_z1play .jp-label span,
body.theme-togel_z1play .jp-label span b,
body.theme-togel_z1play .jp-label small { color: var(--tg-panel-ink) !important; text-shadow: none; }
body.theme-togel_z1play .jp-label span b { color: var(--tg-panel) !important; }
body.theme-togel_z1play .jp-crown { color: var(--tg-panel) !important; text-shadow: none; }
body.theme-togel_z1play .jp-amount {
  background: var(--tg-page) !important;
  border: 1px solid var(--tg-panel-line);
  box-shadow: none;
}
body.theme-togel_z1play .jp-cur { color: var(--tg-panel) !important; }
body.theme-togel_z1play .jp-digits { color: #fff; text-shadow: none; }
body.theme-togel_z1play .jp-digits i { color: var(--tg-panel) !important; }

/* ---------------------------------------------------- tiga kartu keterangan */
body.theme-togel_z1play .reference-feature {
  grid-template-columns: 1fr;
  margin-top: 12px;
}
body.theme-togel_z1play .reference-feature > aside {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
body.theme-togel_z1play .reference-feature article {
  padding: 12px 14px;
  border: 1px solid var(--tg-panel-line);
  border-bottom: 1px solid var(--tg-panel-line);
  border-radius: 5px;
  background: var(--tg-surface);
  box-shadow: none;
}
body.theme-togel_z1play .reference-feature article i {
  background: #000;
  color: var(--tg-panel);
  border: 0;
}
body.theme-togel_z1play .reference-feature article b { color: var(--tg-panel-ink); }
body.theme-togel_z1play .reference-feature article small { color: var(--tg-panel-ink-soft); }

/* ============================================================ panel permainan */
body.theme-togel_z1play .reference-popular,
body.theme-togel_z1play .reference-live-casino,
body.theme-togel_z1play .reference-sportsbook {
  background: var(--tg-surface) !important;
  border: 1px solid var(--tg-panel-line) !important;
  border-radius: 5px;
  margin-top: 12px;
  padding: 0 0 14px;
  box-shadow: none;
}
body.theme-togel_z1play .reference-popular > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px 10px;
  border: 0;
  background: none;
}
body.theme-togel_z1play .reference-popular-title-default span { display: none; }
body.theme-togel_z1play .reference-popular h2,
body.theme-togel_z1play .reference-live-casino h2,
body.theme-togel_z1play .reference-sportsbook h2 {
  margin: 0;
  font: 700 17px/1.2 Avenir, "Helvetica Neue", Arial, sans-serif;
  color: var(--tg-panel-ink) !important;
  text-transform: none;
  letter-spacing: 0;
  position: relative;
  padding-left: 34px;
}
/* Lencana bundar hitam di kiri judul, seperti ikon bundar situs asli. */
body.theme-togel_z1play .reference-popular-title-default h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 25%, #24404f, #000 70%);
  box-shadow: inset 0 -2px 3px rgba(255, 255, 255, .12);
}
body.theme-togel_z1play .reference-popular-title-default h2 span { display: inline; color: var(--tg-panel-ink-soft); }
body.theme-togel_z1play .reference-popular > header > a {
  background: #000;
  border: 1px solid #000;
  border-radius: 4px;
  color: var(--tg-panel);
  font: 700 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  padding: 8px 14px;
}
body.theme-togel_z1play .reference-popular > header > a:hover { background: #17303e; }
body.theme-togel_z1play .reference-popular > header > a b { color: var(--tg-panel); }

/* Grid game: enam kolom, gambar 3:2, nama hitam di atas panel kuning. */
body.theme-togel_z1play .reference-game-grid {
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
  padding: 0 16px;
}
body.theme-togel_z1play .reference-game-grid article {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
body.theme-togel_z1play .reference-game-grid article > div,
body.theme-togel_z1play .reference-live-casino .reference-game-grid article > div,
body.theme-togel_z1play .reference-sportsbook .reference-game-grid article > div {
  border: 1px solid #000;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 3px 6px rgba(0, 0, 0, .35);
  aspect-ratio: 3 / 2;
  background: var(--tg-tile);
}
body.theme-togel_z1play .reference-game-grid article > div img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
body.theme-togel_z1play .reference-game-grid article:hover > div img { transform: scale(1.06); }
body.theme-togel_z1play .reference-game-grid article > div > a {
  background: var(--tg-panel) !important;
  color: #000 !important;
  border-radius: 3px;
  font: 700 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  padding: 8px 18px;
  border: 0;
}
body.theme-togel_z1play .reference-game-grid h3 {
  margin: 6px 0 0;
  font: 700 12px/1.3 Avenir, "Helvetica Neue", Arial, sans-serif;
  color: var(--tg-panel-ink);
  text-align: left;
}
body.theme-togel_z1play .reference-game-grid p {
  margin: 1px 0 0;
  font-size: 11px;
  color: var(--tg-panel-ink-soft);
  text-align: left;
}
body.theme-togel_z1play .reference-mobile-game-rail article > div {
  border: 1px solid #000;
  border-radius: 4px;
  background: var(--tg-tile);
}
body.theme-togel_z1play .reference-mobile-game-rail h3,
body.theme-togel_z1play .reference-mobile-game-rail p { color: var(--tg-panel-ink); }

/* -------------------------------------------------- blok proses & pembayaran */
body.theme-togel_z1play .reference-process-service,
body.theme-togel_z1play .reference-payment-methods,
body.theme-togel_z1play .reference-service {
  background: var(--tg-surface);
  border: 1px solid var(--tg-panel-line);
  border-radius: 5px;
  margin-top: 12px;
  box-shadow: none;
  color: var(--tg-panel-ink);
}
body.theme-togel_z1play .reference-process-service article,
body.theme-togel_z1play .reference-service article,
body.theme-togel_z1play .reference-payment-methods li {
  background: rgba(0, 0, 0, .06);
  border: 1px solid rgba(0, 0, 0, .28);
  border-radius: 4px;
  color: var(--tg-panel-ink);
}
body.theme-togel_z1play .reference-process-service :is(h2, h3, b, strong, span),
body.theme-togel_z1play .reference-payment-methods :is(h2, h3, b, strong, span),
body.theme-togel_z1play .reference-service :is(h2, h3, b, strong, span) { color: var(--tg-panel-ink); }
body.theme-togel_z1play .reference-process-service :is(p, small, em),
body.theme-togel_z1play .reference-payment-methods :is(p, small, em),
body.theme-togel_z1play .reference-service :is(p, small, em) { color: var(--tg-panel-ink-soft); }
body.theme-togel_z1play .reference-process-service i,
body.theme-togel_z1play .reference-service i,
body.theme-togel_z1play .reference-payment-methods i {
  background: #000;
  color: var(--tg-panel);
}

/* ==================================================================== footer
   Redesain 31 Agu 2026. Sebelumnya footer hanya satu blok di tengah (logo,
   satu kalimat, lencana 18+, hak cipta) — luas tapi kosong. Sekarang empat
   kolom: identitas, daftar permainan, layanan, dan sosial media; ditutup baris
   bawah berisi hak cipta dan catatan bermain bertanggung jawab. Kolom
   tautannya ditambahkan di base.html, digerbangi template_key, jadi tenant
   lain tetap footer ringkas mereka. */
body.theme-togel_z1play .public-footer {
  background: #000;
  border-top: 2px solid var(--tg-panel);
  padding: 30px 24px 16px !important;
  color: #fff;
}
body.theme-togel_z1play .footer-inner {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 32px;
  text-align: left;
}
body.theme-togel_z1play .footer-about { gap: 12px; }
body.theme-togel_z1play .footer-brand img { max-height: 44px; }
body.theme-togel_z1play .footer-about p {
  margin: 0 !important;
  max-width: 40ch;
  color: #9a9a9a;
  font-size: 12px;
  line-height: 1.7;
}
body.theme-togel_z1play .footer-age {
  width: 38px;
  height: 38px;
  border: 1px solid var(--tg-panel);
  border-radius: 4px;
  background: transparent;
  color: var(--tg-panel);
  font-weight: 900;
}
/* Kolom tautan */
body.theme-togel_z1play .footer-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
}
body.theme-togel_z1play .footer-inner h3 {
  margin: 0 0 4px;
  color: var(--tg-panel);
  font: 900 11px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .16em;
  text-transform: uppercase;
}
body.theme-togel_z1play .footer-links a {
  color: #9a9a9a;
  font-size: 12.5px;
  line-height: 1.2;
  transition: color .15s linear;
}
body.theme-togel_z1play .footer-links a:hover { color: var(--tg-panel); }
/* Baris bawah */
body.theme-togel_z1play .footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 24px;
  padding-top: 14px;
  border-top: 1px solid #162b38;
  color: #7a7a7a;
  font-size: 11.5px;
}
body.theme-togel_z1play .footer-note { color: #7a7a7a; }
body.theme-togel_z1play .public-footer a { color: #9a9a9a; }
body.theme-togel_z1play .public-footer a:hover { color: var(--tg-panel); }

/* ==================================================================== mobile */
@media (max-width: 900px) {
  body.theme-togel_z1play main {
    max-width: none;
    padding: 0 0 16px;
    box-shadow: none;
  }
  body.theme-togel_z1play .reference-home,
  body.theme-togel_z1play .global-mobile-inline-login,
  body.theme-togel_z1play .global-mobile-inline-register {
    width: calc(100% - 16px);
  }
  body.theme-togel_z1play .notice { width: auto; margin: 0 8px; }
  body.theme-togel_z1play .global-mobile-header {
    background: var(--tg-page);
    border-bottom: 2px solid var(--tg-panel);
  }
  body.theme-togel_z1play .global-mobile-ticker { background: var(--tg-surface); }
  body.theme-togel_z1play .global-mobile-ticker span,
  body.theme-togel_z1play .global-mobile-ticker i { color: var(--tg-panel-ink); }
  /* Rel kategori bawaan (5 item per layar, geser mendatar) hanya diwarnai ulang. */
  body.theme-togel_z1play .global-mobile-game-menu {
    display: flex !important;
    gap: 0;
    margin: 0;
    background: var(--tg-surface);
    border-top: 1px solid var(--tg-panel-line);
    border-bottom: 1px solid var(--tg-panel-line);
  }
  body.theme-togel_z1play .global-mobile-game-menu a {
    flex-direction: column;
    height: 62px;
    padding: 0;
    gap: 5px;
    border: 0;
    border-right: 1px solid rgba(0, 0, 0, .18);
    border-radius: 0;
    background: none;
  }
  body.theme-togel_z1play .global-mobile-game-menu a:active,
  body.theme-togel_z1play .global-mobile-game-menu a:first-child { background: rgba(0, 0, 0, .08); }
  body.theme-togel_z1play .global-mobile-game-menu a i { width: auto; height: 22px; }
  body.theme-togel_z1play .global-mobile-game-menu a i img { width: 22px; height: 22px; }
  body.theme-togel_z1play .global-mobile-game-menu a span { font-size: 8px; font-weight: 900; color: var(--tg-panel-ink); }
  body.theme-togel_z1play .reference-game-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 0 10px; }
  body.theme-togel_z1play .reference-popular > header { padding: 10px 10px 8px; }
  body.theme-togel_z1play .reference-popular h2 { font-size: 15px; }
  body.theme-togel_z1play .public-mobile-dock {
    background: var(--tg-page);
    border-top: 2px solid var(--tg-panel);
  }
  body.theme-togel_z1play .public-mobile-dock a.active,
  body.theme-togel_z1play .public-mobile-dock a.dock-main { color: var(--tg-panel); }
}

/* ===================================================== koreksi kontras kuning
   theme-cohesion.css memaksa `color:#fff !important` pada judul Live Casino
   lewat selector ber-`:is()` yang spesifisitasnya lebih tinggi (0,3,3), jadi
   judul putih di atas panel kuning. Ditimpa dengan bentuk selector yang sama. */
body.theme-togel_z1play .reference-live-casino,
body.theme-togel_z1play .reference-sportsbook { color: var(--tg-panel-ink) !important; }
body.theme-togel_z1play .reference-live-casino :is(h2, .reference-popular-title-mobile h2 span),
body.theme-togel_z1play .reference-sportsbook :is(h2, .reference-popular-title-mobile h2 span) {
  color: var(--tg-panel-ink) !important;
}
body.theme-togel_z1play .reference-live-casino :is(h3, .reference-game-grid h3),
body.theme-togel_z1play .reference-sportsbook :is(h3, .reference-game-grid h3) { color: var(--tg-panel-ink) !important; }
body.theme-togel_z1play .reference-live-casino :is(p, .reference-game-grid p),
body.theme-togel_z1play .reference-sportsbook :is(p, .reference-game-grid p) { color: var(--tg-panel-ink-soft) !important; }


/* Kartu metode pembayaran berlatar hitam — teksnya harus terang, bukan hitam. */
body.theme-togel_z1play .reference-payment-methods article {
  background: #000;
  border: 1px solid #000;
}
body.theme-togel_z1play .reference-payment-methods article b { color: #fff; }
body.theme-togel_z1play .reference-payment-methods article small { color: rgba(255, 255, 255, .7); }
body.theme-togel_z1play .reference-payment-methods article i { background: none; color: var(--tg-panel); }
body.theme-togel_z1play .reference-payment-methods article i svg { stroke: var(--tg-panel); fill: none; }

/* ============================================== koreksi kontras versi mobile
   Di layar kecil judul panel memakai `.reference-popular-title-mobile` dan
   tombol "Lihat semua" dirender lewat `::after` berwarna `var(--gold)` —
   keduanya kuning di atas panel kuning kalau tidak ditimpa. */
@media (max-width: 900px) {
  body.theme-togel_z1play .reference-popular-title-mobile h2,
  body.theme-togel_z1play .reference-popular-title-mobile h2 span,
  body.theme-togel_z1play .reference-popular-title-mobile h2 em,
  body.theme-togel_z1play .reference-popular-title-mobile > b { color: var(--tg-panel-ink) !important; }
  body.theme-togel_z1play :is(.reference-popular, .reference-live-casino, .reference-sportsbook) > header > a {
    background: #000 !important;
    border: 1px solid #000 !important;
  }
  body.theme-togel_z1play :is(.reference-popular, .reference-live-casino, .reference-sportsbook) > header > a::after {
    color: var(--tg-panel) !important;
  }
  /* Kolom login inline di beranda ponsel ikut bahasa form yang baru: kotak
     gelap bergaris abu, bukan pil putih. */
  body.theme-togel_z1play .global-mobile-inline-login {
    background: var(--surface-bg);
    border-color: var(--surface-line);
  }
  body.theme-togel_z1play .global-mobile-inline-login label {
    border: 1px solid var(--surface-line);
    border-radius: 4px;
    background: var(--surface-soft);
  }
  body.theme-togel_z1play .global-mobile-inline-login label:focus-within {
    border-color: var(--tg-panel);
    box-shadow: none;
  }
  body.theme-togel_z1play .global-mobile-inline-login label span {
    border-right: 1px solid var(--surface-line);
    background: #000;
    color: var(--tg-panel);
  }
  body.theme-togel_z1play .global-mobile-inline-login input {
    background: var(--surface-soft);
    color: #fff;
  }
  body.theme-togel_z1play .global-mobile-inline-login input::placeholder { color: #6f6f6f; }
  body.theme-togel_z1play .global-mobile-inline-login :is(button, > a) { border-radius: 4px; }

  /* Tombol login/daftar inline: kuning dengan teks hitam, bukan teks putih. */
  body.theme-togel_z1play .global-mobile-inline-login button {
    background: var(--tg-btn-login) !important;
    color: #000 !important;
    box-shadow: none !important;
  }
  body.theme-togel_z1play .global-mobile-inline-login > a,
  body.theme-togel_z1play .global-mobile-inline-register .register-submit {
    background: var(--tg-panel) !important;
    color: #000 !important;
    box-shadow: none !important;
  }
}

/* ==========================================================================
   FORM MASUK & DAFTAR (modal maupun halaman penuh) — redesain 31 Agu 2026.

   Sebelumnya kedua form memakai permukaan terang bawaan (`--surface-bg:#fff`)
   sementara sisa situs hitam-kuning, jadi begitu modal dibuka warnanya
   melompat jadi putih dengan garis kuning yang menyilaukan. Kerangka form ini
   digerakkan token (`--surface-*`, `--pa-*`), jadi bagian terbesar diselesaikan
   dengan mengisi ulang tokennya; sisanya hanya membuang hiasan yang tidak
   diminta: gradient, bayangan, blur, dan animasi.
   ========================================================================== */
body.theme-togel_z1play {
  --surface-bg: #0d0d0d;
  --surface-soft: #132430;
  --surface-fg: #ffffff;
  --surface-muted: #9a9a9a;
  --surface-line: #223d4c;
}

/* --------------------------------------------------------------- rangka modal */
body.theme-togel_z1play .auth-modal-panel {
  border: 1px solid var(--tg-panel);
  border-radius: 6px;
  background: var(--surface-bg);
  box-shadow: none;
  animation: none;
}
body.theme-togel_z1play .auth-modal-panel::before {
  height: 3px;
  background: var(--tg-panel);          /* pita datar, bukan gradient berkilau */
}
body.theme-togel_z1play .auth-modal-backdrop { background: rgba(0, 0, 0, .82); }
body.theme-togel_z1play .auth-modal-close {
  border: 1px solid var(--surface-line);
  border-radius: 4px;
  background: var(--surface-soft);
  color: var(--tg-panel);
  box-shadow: none;
  backdrop-filter: none;
  transition: background-color .15s linear, color .15s linear;
}
body.theme-togel_z1play .auth-modal-close:hover {
  transform: none;                       /* tanpa putaran 90 derajat */
  background: var(--tg-panel);
  color: #000;
  border-color: var(--tg-panel);
}
body.theme-togel_z1play .auth-modal-loading span { color: var(--surface-muted); }

/* ------------------------------------------------------- kolom kiri (branding) */
body.theme-togel_z1play .player-login-brand {
  background: #000;
  border-right: 1px solid var(--surface-line);
}
body.theme-togel_z1play .player-login-copy small,
body.theme-togel_z1play .player-login-heading p { color: var(--tg-panel); letter-spacing: .16em; }
body.theme-togel_z1play .player-login-copy h1,
body.theme-togel_z1play .player-login-heading h2 { color: #fff; }
body.theme-togel_z1play .player-login-copy p,
body.theme-togel_z1play .player-login-heading span { color: var(--surface-muted); }
body.theme-togel_z1play .player-login-secure {
  border: 1px solid var(--surface-line);
  background: var(--surface-soft);
  box-shadow: none;
}
body.theme-togel_z1play .player-login-secure i { background: var(--tg-panel); color: #000; }
body.theme-togel_z1play .player-login-secure b { color: #fff; }
body.theme-togel_z1play .player-login-secure small { color: var(--surface-muted); }
body.theme-togel_z1play .player-login-form-panel { background: var(--surface-bg); }

/* ------------------------------------------------------------------ isian form
   Satu aturan untuk semua kolom di kedua form: kotak gelap, garis abu, fokus
   memakai garis kuning — tanpa cincin cahaya. */
body.theme-togel_z1play :is(.player-login-form, .register-form) :is(input[type="text"], input[type="password"], input[type="email"], input[type="tel"], input[type="number"], input:not([type]), select, textarea) {
  height: 42px;
  border: 1px solid var(--surface-line);
  border-radius: 4px;
  background: var(--surface-soft);
  color: #fff;
  box-shadow: none;
  font-size: 13px;
}
body.theme-togel_z1play :is(.player-login-form, .register-form) textarea { height: auto; }
body.theme-togel_z1play :is(.player-login-form, .register-form) :is(input, select, textarea)::placeholder { color: #6f6f6f; }
body.theme-togel_z1play :is(.player-login-form, .register-form) :is(input, select, textarea):focus {
  border-color: var(--tg-panel);
  outline: none;
  box-shadow: none;
}
body.theme-togel_z1play :is(.player-login-form, .register-form) label > span,
body.theme-togel_z1play .register-grid label > span {
  color: var(--surface-muted);
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
body.theme-togel_z1play .player-password button { color: var(--surface-muted); background: none; border: 0; }
body.theme-togel_z1play .player-password button:hover { color: var(--tg-panel); }
body.theme-togel_z1play :is(.player-login-error, .register-errors, .auth-modal-error) {
  border: 1px solid #ff5252;
  border-radius: 4px;
  background: rgba(255, 82, 82, .1);
  color: #ff8a8a;
  box-shadow: none;
}

/* ------------------------------------------------------------ tombol & tautan */
body.theme-togel_z1play :is(.player-login-submit, .register-submit) {
  height: 46px;
  border: 0;
  border-radius: 4px;
  background: var(--tg-panel) !important;
  background-image: none !important;
  color: #000 !important;
  font: 900 13px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: none !important;
  text-shadow: none;
  transition: background-color .15s linear;
}
body.theme-togel_z1play :is(.player-login-submit, .register-submit):hover { background: #7ff0cb !important; }
body.theme-togel_z1play :is(.player-login-register, .register-login) { color: var(--surface-muted); }
body.theme-togel_z1play :is(.player-login-register, .register-login) a { color: var(--tg-panel); font-weight: 700; }

/* ------------------------------------------------------------- form pendaftaran */
body.theme-togel_z1play .register-page { background: var(--surface-bg); }
body.theme-togel_z1play .register-brand-banner {
  background: #000;
  border-bottom: 1px solid var(--tg-panel);
  box-shadow: none;
}
body.theme-togel_z1play .register-brand-note { color: var(--surface-muted); }
body.theme-togel_z1play .register-brand-note i,
body.theme-togel_z1play .register-brand-note b { color: var(--tg-panel); }
body.theme-togel_z1play .register-section {
  border: 1px solid var(--surface-line);
  border-radius: 5px;
  background: var(--surface-bg);
  box-shadow: none;
}
body.theme-togel_z1play .register-section-heading span {
  background: var(--tg-panel);
  color: #000;
  box-shadow: none;
}
body.theme-togel_z1play .register-section-heading h2 { color: #fff; }
body.theme-togel_z1play .register-section-heading p { color: var(--surface-muted); }
body.theme-togel_z1play .register-grid label small { color: #6f6f6f; }
/* Pilihan Bank / E-Wallet */
body.theme-togel_z1play .payment-type label {
  border: 1px solid var(--surface-line);
  border-radius: 4px;
  background: var(--surface-soft);
  color: var(--surface-muted);
  box-shadow: none;
}
body.theme-togel_z1play .payment-type input:checked + span,
body.theme-togel_z1play .payment-type label:has(input:checked) {
  border-color: var(--tg-panel);
  background: rgba(47, 227, 165, .08);
  color: var(--tg-panel);
}
body.theme-togel_z1play :is(.register-form, .player-login-form) :is(input[type="radio"], input[type="checkbox"]) {
  accent-color: var(--tg-panel);
  height: auto;
}
body.theme-togel_z1play .privacy-check { color: var(--surface-muted); }
body.theme-togel_z1play .privacy-check a { color: var(--tg-panel); }
body.theme-togel_z1play .verification-row b {
  border: 1px solid var(--tg-panel);
  border-radius: 4px;
  background: rgba(47, 227, 165, .08);
  color: var(--tg-panel);
  letter-spacing: .2em;
}
/* Penanda langkah versi ponsel */
body.theme-togel_z1play .register-wizard-progress i { color: var(--surface-muted); }
body.theme-togel_z1play .register-wizard-progress i.active b { background: var(--tg-panel); color: #000; }
body.theme-togel_z1play :is(.register-next, .register-back) {
  border: 1px solid var(--tg-panel);
  border-radius: 4px;
  background: transparent;
  color: var(--tg-panel);
  box-shadow: none;
}
body.theme-togel_z1play .register-next { background: var(--tg-panel); color: #000; }

/* ============================================================================
   LOADING SCREEN — dirancang untuk ponsel (31 Agu markup, tanpa ubah HTML).
   Markup yang ada: .site-loading-screen > .site-loading-stage >
   (i.site-loading-orbit, .site-loading-logo, p.site-loading-status, .site-loading-progress).
   theme-cohesion.css memakai body[class*="theme-"] (spesifisitas 0,2,1) dan
   menyembunyikan beberapa pseudo-element; berkas ini dimuat SETELAHNYA dengan
   spesifisitas sama, jadi cukup mendefinisikan ulang — tidak perlu !important.
   Panggung diubah jadi kolom flex supaya elemen mengalir rapi di layar sempit,
   bukan lagi ditempel absolut ke dasar panggung.
   ========================================================================= */
body.theme-togel_z1play .site-loading-screen {
  padding: max(28px, env(safe-area-inset-top)) 20px max(28px, env(safe-area-inset-bottom));
  background:
    radial-gradient(130% 60% at 50% -6%, rgba(47, 227, 165, .11), rgba(47, 227, 165, 0) 62%),
    radial-gradient(100% 46% at 50% 104%, rgba(225, 172, 0, .09), rgba(225, 172, 0, 0) 68%),
    #000;
}
/* Kisi halus yang meredup ke tepi — memberi kedalaman tanpa gambar tambahan. */
body.theme-togel_z1play .site-loading-screen:before {
  display: block;
  inset: 0;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background:
    repeating-linear-gradient(0deg, rgba(47, 227, 165, .05) 0 1px, transparent 1px 36px),
    repeating-linear-gradient(90deg, rgba(47, 227, 165, .05) 0 1px, transparent 1px 36px);
  -webkit-mask-image: radial-gradient(72% 52% at 50% 46%, #000, transparent 76%);
  mask-image: radial-gradient(72% 52% at 50% 46%, #000, transparent 76%);
  transform: none;
  animation: none;
}
/* Halo emas berdenyut di belakang logo. */
body.theme-togel_z1play .site-loading-screen:after {
  display: block;
  left: 50%;
  top: 46%;
  width: min(96vw, 460px);
  height: min(96vw, 460px);
  border: 0;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(47, 227, 165, .17), rgba(47, 227, 165, .05) 46%, rgba(47, 227, 165, 0) 70%);
  transform: translate(-50%, -50%);
  animation: tg-splash-halo 2.8s ease-in-out infinite;
}
body.theme-togel_z1play .site-loading-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: min(88vw, 340px);
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
body.theme-togel_z1play .site-loading-screen.is-leaving .site-loading-stage {
  opacity: 0;
  transform: translateY(-10px) scale(.96);
  filter: blur(2px);
}
body.theme-togel_z1play .site-loading-logo {
  order: 1;
  position: relative;
  overflow: visible;
  width: fit-content;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 8px 0;
  animation: tg-splash-logo .8s cubic-bezier(.2, .9, .25, 1) both;
}
body.theme-togel_z1play .site-loading-logo img {
  width: auto;
  max-width: min(76vw, 292px);
  max-height: 104px;
  filter: drop-shadow(0 0 18px rgba(47, 227, 165, .2)) drop-shadow(0 10px 22px rgba(0, 0, 0, .7));
  animation: tg-splash-glow 2.6s ease-in-out infinite;
}
/* Downline tanpa berkas logo memakai inisial: dibuat jadi lencana kuning. */
body.theme-togel_z1play .site-loading-logo span {
  display: grid;
  place-items: center;
  width: 84px;
  height: 84px;
  border: 0;
  border-radius: 22px;
  background: linear-gradient(155deg, #2fe3a5, #12b98a);
  color: #000;
  font: 800 38px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  box-shadow: 0 0 34px rgba(47, 227, 165, .35);
}
/* Kilau pita dimatikan: logonya PNG beralas transparan, jadi pita putih
   terlihat sebagai balok abu di area kosong. Diganti pendar yang mengikuti
   bentuk huruf lewat drop-shadow beranimasi. */
body.theme-togel_z1play .site-loading-logo:after { display: none; }
/* .site-loading-orbit dipakai ulang sebagai garis emas + cahaya berjalan. */
body.theme-togel_z1play .site-loading-orbit {
  order: 2;
  position: relative;
  left: auto;
  top: auto;
  width: min(66vw, 226px);
  height: 1px;
  margin: 16px 0 0;
  border: 0;
  border-radius: 0;
  background: linear-gradient(90deg, transparent, rgba(47, 227, 165, .5), transparent);
  box-shadow: none;
  transform: none;
  animation: none;
}
body.theme-togel_z1play .site-loading-orbit:before {
  display: block;
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  inset: -2px auto auto 0;
  width: 46px;
  /* Digeser selebar dirinya sendiri supaya cahaya berhenti PAS di ujung kanan
     garis, tidak menggantung di luar garis seperti balok terang. */
  margin-left: -46px;
  height: 4px;
  border: 0;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, #2fe3a5, transparent);
  box-shadow: 0 0 16px rgba(47, 227, 165, .7);
  animation: tg-splash-travel 1.7s linear infinite;
}
body.theme-togel_z1play .site-loading-orbit:after { display: none; }
body.theme-togel_z1play .site-loading-status {
  order: 3;
  position: static;
  margin: 16px 0 0;
  gap: 7px;
}
body.theme-togel_z1play .site-loading-status b {
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .34em;
  /* Imbangi spasi huruf terakhir supaya teks benar-benar di tengah. */
  text-indent: .34em;
}
body.theme-togel_z1play .site-loading-status span {
  color: rgba(47, 227, 165, .72);
  font-size: 10px;
  letter-spacing: .05em;
}
body.theme-togel_z1play .site-loading-progress {
  order: 4;
  position: static;
  width: min(62vw, 212px);
  height: 4px;
  margin: 18px 0 0;
  border-radius: 99px;
  background: rgba(255, 255, 255, .07);
  box-shadow: inset 0 0 0 1px rgba(47, 227, 165, .16);
}
body.theme-togel_z1play .site-loading-progress i {
  width: 34%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgba(47, 227, 165, 0), #2fe3a5 45%, #fff 70%, rgba(47, 227, 165, 0));
  box-shadow: 0 0 10px rgba(47, 227, 165, .45);
  animation: tg-splash-progress 1.15s ease-in-out infinite;
}
@keyframes tg-splash-halo { 50% { transform: translate(-50%, -50%) scale(1.09); opacity: .55; } }
@keyframes tg-splash-logo { from { opacity: 0; transform: translateY(14px) scale(.94); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes tg-splash-glow { 50% { filter: drop-shadow(0 0 30px rgba(47, 227, 165, .42)) drop-shadow(0 10px 22px rgba(0, 0, 0, .7)); } }
@keyframes tg-splash-travel { 0% { left: 0; opacity: 0; } 14% { opacity: 1; } 72% { opacity: 1; } 100% { left: 100%; opacity: 0; } }
@keyframes tg-splash-progress { from { transform: translateX(-118%); } to { transform: translateX(320%); } }
/* Layar lega: semuanya naik satu tingkat, komposisi tetap sama. */
@media (min-width: 781px) {
  body.theme-togel_z1play .site-loading-stage { width: min(70vw, 420px); }
  body.theme-togel_z1play .site-loading-logo img { max-width: 340px; max-height: 128px; }
  body.theme-togel_z1play .site-loading-orbit { width: 280px; }
  body.theme-togel_z1play .site-loading-status b { font-size: 12px; }
  body.theme-togel_z1play .site-loading-status span { font-size: 11px; }
  body.theme-togel_z1play .site-loading-progress { width: 260px; }
}
@media (prefers-reduced-motion: reduce) {
  body.theme-togel_z1play .site-loading-screen:after,
  body.theme-togel_z1play .site-loading-logo,
  body.theme-togel_z1play .site-loading-logo img,
  body.theme-togel_z1play .site-loading-orbit:before,
  body.theme-togel_z1play .site-loading-progress i { animation: none; }
}

/* ============================================================================
   HEADER MEMBER (mobile) — .member-header-menu di templates/base.html.
   Bawaannya pelat abu-abu dari frontend-lux.css yang bertabrakan dengan skin
   hitam-kuning; di sini diganti bar hitam beraksen kuning, tiap tab dapat ikon
   (SVG data-URI dipasang sebagai mask, jadi warnanya ikut currentColor dan
   markup tidak perlu diubah), tab aktif jadi pelat kuning berteks hitam sesuai
   aturan tema. Kolom kelima = tombol Keluar, sengaja lebih sempit + merah muda
   supaya tidak tertukar dengan menu navigasi.
   Bar ini hanya tampil di bawah 781px (desktop memakai tombol di topbar).
   ========================================================================= */
body.theme-togel_z1play .member-header-menu {
  height: auto;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 58px;
  border-top: 1px solid rgba(47, 227, 165, .22);
  border-bottom: 1px solid var(--tg-panel-line);
  background: linear-gradient(180deg, #12242f, #000 72%);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .55);
}
body.theme-togel_z1play .member-header-menu a,
body.theme-togel_z1play .member-header-menu button {
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding: 8px 3px 7px;
  border-right: 1px solid rgba(47, 227, 165, .14);
  background: none;
  color: rgba(255, 255, 255, .8);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
body.theme-togel_z1play .member-header-menu form { border-right: 0; }
body.theme-togel_z1play .member-header-menu a:before,
body.theme-togel_z1play .member-header-menu button:before {
  content: "";
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: center / contain no-repeat var(--tg-ico);
  mask: center / contain no-repeat var(--tg-ico);
}
body.theme-togel_z1play .member-header-menu a:nth-child(1) { --tg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 11 8-7 8 7v9h-6v-6h-4v6H4z'/%3E%3C/svg%3E"); }
body.theme-togel_z1play .member-header-menu a:nth-child(2) { --tg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v11m0 0 4-4m-4 4-4-4M4 19h16'/%3E%3C/svg%3E"); }
body.theme-togel_z1play .member-header-menu a:nth-child(3) { --tg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V10m0 0 4 4m-4-4-4 4M4 5h16'/%3E%3C/svg%3E"); }
body.theme-togel_z1play .member-header-menu a:nth-child(4) { --tg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
body.theme-togel_z1play .member-header-menu button { --tg-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v8'/%3E%3Cpath d='M7.6 7.2a7 7 0 1 0 8.8 0'/%3E%3C/svg%3E"); }
body.theme-togel_z1play .member-header-menu a.active {
  background: linear-gradient(180deg, #2fe3a5, #12b98a);
  color: #000;
}
body.theme-togel_z1play .member-header-menu a.active:after { display: none; }
body.theme-togel_z1play .member-header-menu a:hover,
body.theme-togel_z1play .member-header-menu button:hover { background: rgba(47, 227, 165, .1); color: #fff; }
body.theme-togel_z1play .member-header-menu button {
  color: #ff9b9b;
  font-size: 8px;
}
body.theme-togel_z1play .member-header-menu button:hover { background: rgba(255, 60, 60, .16); color: #ff9b9b; }
body.theme-togel_z1play .member-header-menu a:active,
body.theme-togel_z1play .member-header-menu button:active { transform: translateY(1px); }
body.theme-togel_z1play .member-header-menu a:focus-visible,
body.theme-togel_z1play .member-header-menu button:focus-visible {
  outline: 2px solid var(--tg-panel);
  outline-offset: -3px;
}


/* ============================================================================
   BOTTOM DOCK MOBILE — .mobile-dock (member) + .public-mobile-dock (belum login).
   global-mobile-public.css memaksa dock jadi bar penuh menempel dasar layar
   (left/right/bottom/border-radius pakai !important), jadi desain ini tetap
   memakai bentuk bar penuh, bukan "pulau" melayang. theme-cohesion.css juga
   memakai !important untuk dock publik — karena itu sejumlah properti di sini
   ikut ber-!important, bukan karena malas menghitung spesifisitas.
   Ciri desain: bar hitam + hairline kuning, ikon 22-24px, item aktif memakai
   sorotan elips + pita kuning di tepi atas (bukan kotak gelap), dan tombol
   tengah jadi cakram kuning bercincin hitam. Label kedua dock disamakan dengan
   bar menu header: huruf kapital kecil, tebal, tidak boleh patah dua baris.
   ========================================================================= */
@media (max-width: 900px) {
  body.theme-togel_z1play .mobile-dock,
  body.theme-togel_z1play .public-mobile-dock {
    height: 64px;
    border-top: 1px solid var(--tg-panel-line);
    background: linear-gradient(180deg, #12242f, #000 62%) !important;
    box-shadow: 0 -10px 26px rgba(0, 0, 0, .65);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body.theme-togel_z1play .mobile-dock > a,
  body.theme-togel_z1play .public-mobile-dock > a {
    gap: 4px;
    height: 100% !important;
    border-radius: 0;
    background: none !important;
    color: rgba(255, 252, 230, .64) !important;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .02em;
  }
  body.theme-togel_z1play .mobile-dock > a > i,
  body.theme-togel_z1play .public-mobile-dock > a > i {
    width: 24px;
    height: 24px;
    transition: transform .16s ease;
  }
  body.theme-togel_z1play .mobile-dock a svg,
  body.theme-togel_z1play .public-mobile-dock a svg { width: 22px !important; height: 22px !important; stroke-width: 1.7; }
  /* Label kedua dock disamakan: huruf besar kecil-kecil seperti bar menu header. */
  body.theme-togel_z1play .mobile-dock > a > span,
  body.theme-togel_z1play .public-mobile-dock > a > span {
    color: inherit !important;
    font-size: 8.5px !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    /* Jangan sampai "LUCKY WHEEL" patah dua baris dan mendorong ikonnya naik. */
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap !important;
    text-overflow: ellipsis;
  }
  /* Item aktif: tanpa kotak gelap, cukup kuning + pita tipis di tepi atas. */
  body.theme-togel_z1play .mobile-dock > a.active,
  body.theme-togel_z1play .public-mobile-dock > a.active {
    /* Sorotan berbentuk elips supaya tidak ada tepi kotak yang kelihatan. */
    background: radial-gradient(62% 100% at 50% 0%, rgba(47, 227, 165, .16), rgba(47, 227, 165, 0) 74%) !important;
    color: var(--tg-panel) !important;
    font-weight: 800;
  }
  body.theme-togel_z1play .mobile-dock > a.active:after,
  body.theme-togel_z1play .public-mobile-dock > a.active:after {
    content: "";
    position: absolute;
    inset: 0 auto auto 50%;
    bottom: auto;
    width: 30px;
    height: 3px;
    border-radius: 0 0 4px 4px;
    background: var(--tg-panel);
    box-shadow: 0 0 12px rgba(47, 227, 165, .6);
    transform: translateX(-50%);
  }
  body.theme-togel_z1play .mobile-dock > a:active > i,
  body.theme-togel_z1play .public-mobile-dock > a:active > i { transform: scale(.9); }
  /* Tombol tengah: cakram kuning yang menyembul dari bar. */
  body.theme-togel_z1play .mobile-dock > .dock-main,
  body.theme-togel_z1play .public-mobile-dock > .dock-main {
    justify-content: flex-end;
    padding-bottom: 7px;
    background: none !important;
    color: var(--tg-panel) !important;
    font-weight: 800 !important;
  }
  body.theme-togel_z1play .mobile-dock > .dock-main:after,
  body.theme-togel_z1play .public-mobile-dock > .dock-main:after { display: none; }
  body.theme-togel_z1play .mobile-dock > .dock-main > i,
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i {
    width: 52px !important;
    height: 52px !important;
    margin-top: -32px !important;
    border: 4px solid #000 !important;
    border-radius: 50% !important;
    background: linear-gradient(160deg, #2fe3a5, #12b98a) !important;
    color: #000 !important;
    box-shadow: 0 10px 22px rgba(47, 227, 165, .28), 0 4px 10px rgba(0, 0, 0, .6) !important;
  }
  body.theme-togel_z1play .mobile-dock > .dock-main svg,
  body.theme-togel_z1play .public-mobile-dock > .dock-main svg {
    width: 24px !important;
    height: 24px !important;
    stroke: #000 !important;
    stroke-width: 2.1;
  }
  body.theme-togel_z1play .mobile-dock > .dock-main > i img,
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i img { width: 26px !important; height: 26px !important; }
  body.theme-togel_z1play .mobile-dock > .dock-main:active > i,
  body.theme-togel_z1play .public-mobile-dock > .dock-main:active > i { transform: scale(.93); }
}

@media (max-width: 360px) {
  body.theme-togel_z1play .mobile-dock > a > span,
  body.theme-togel_z1play .public-mobile-dock > a > span { font-size: 7.5px !important; letter-spacing: .01em !important; }
  body.theme-togel_z1play .mobile-dock > .dock-main > i,
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i { width: 48px !important; height: 48px !important; margin-top: -29px !important; }
}


/* ============================================================================
   HALAMAN MEMBER /userarea/ — kartu saldo, menu kategori, dan ubin akses cepat.
   userarea.css memakai palet navy-ungu + chip ikon warna-warni per nth-child;
   di skin hitam-kuning itu terbaca kotor. Lapisan ini menyamakan semuanya ke
   hitam + kuning tanpa mengubah markup. Banyak aturan di userarea.css memakai
   !important pada blok mobile (@media max-width:600px), jadi sebagian properti
   di sini ikut ber-!important supaya benar-benar menimpa.
   ========================================================================= */
body.theme-togel_z1play .ua-page { --tg-card: #0b0b06; }

/* --- Kartu saldo ---------------------------------------------------------- */
body.theme-togel_z1play .ua-wallet-card {
  border: 1px solid rgba(47, 227, 165, .3) !important;
  border-radius: 12px !important;
  background:
    radial-gradient(130% 100% at 100% -10%, rgba(47, 227, 165, .1), rgba(47, 227, 165, 0) 62%),
    linear-gradient(180deg, #10202c, #000) !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .55) !important;
}
/* userarea.css menempel lingkaran emas blur 190px di sudut kanan-atas kartu
   (.ua-dashboard-home .ua-wallet-card:after) — di skin ini ia terbaca sebagai
   noda zaitun, jadi dimatikan dan diganti pendar tipis dari gradien di atas. */
body.theme-togel_z1play .ua-wallet-card:after { display: none !important; }
body.theme-togel_z1play .ua-wallet-card small { color: var(--tg-panel) !important; letter-spacing: .14em; }
body.theme-togel_z1play .ua-wallet-main strong { color: #fff !important; }
body.theme-togel_z1play .ua-wallet-main span,
body.theme-togel_z1play .ua-wallet-stat span { color: rgba(255, 255, 255, .45) !important; }
body.theme-togel_z1play .ua-wallet-stat {
  border: 1px solid rgba(47, 227, 165, .22) !important;
  border-left: 3px solid var(--tg-panel) !important;
  border-radius: 8px !important;
  background: rgba(47, 227, 165, .04) !important;
}
body.theme-togel_z1play .ua-wallet-stat b { color: var(--tg-panel) !important; }
body.theme-togel_z1play .ua-wallet-buttons a {
  border-radius: 7px !important;
  background: linear-gradient(180deg, #2fe3a5, #12b98a) !important;
  color: #000 !important;
  font-weight: 900 !important;
  box-shadow: 0 6px 16px rgba(47, 227, 165, .2) !important;
}
body.theme-togel_z1play .ua-wallet-buttons a + a {
  background: transparent !important;
  border: 1px solid rgba(47, 227, 165, .45) !important;
  color: var(--tg-panel) !important;
  box-shadow: none !important;
}
body.theme-togel_z1play .ua-wallet-buttons button {
  border: 1px dashed rgba(47, 227, 165, .3) !important;
  border-radius: 7px !important;
  background: transparent !important;
  color: rgba(47, 227, 165, .75) !important;
  font-weight: 800 !important;
}

/* --- Pemisah bagian ------------------------------------------------------- */
body.theme-togel_z1play .ua-section-divider { color: var(--tg-panel) !important; }
body.theme-togel_z1play .ua-section-divider:before { background: linear-gradient(90deg, transparent, rgba(47, 227, 165, .35)) !important; }
body.theme-togel_z1play .ua-section-divider:after { background: linear-gradient(90deg, rgba(47, 227, 165, .35), transparent) !important; }

/* --- Menu kategori -------------------------------------------------------- */
body.theme-togel_z1play .ua-category-menu {
  border-color: rgba(47, 227, 165, .25) !important;
  background: linear-gradient(180deg, #10202c, #000) !important;
}
body.theme-togel_z1play .ua-category-menu a { color: #fff !important; }
body.theme-togel_z1play .ua-category-menu a + a:before { background: linear-gradient(transparent, rgba(47, 227, 165, .25), transparent) !important; }
body.theme-togel_z1play .ua-category-menu i {
  border: 1px solid rgba(47, 227, 165, .28) !important;
  background: rgba(47, 227, 165, .07) !important;
  box-shadow: none !important;
}
body.theme-togel_z1play .ua-category-menu i:after { background: rgba(47, 227, 165, .25) !important; }
body.theme-togel_z1play .ua-category-menu a:hover {
  border-color: rgba(47, 227, 165, .5) !important;
  background: rgba(47, 227, 165, .08) !important;
}

/* --- Ubin akses cepat ----------------------------------------------------- */
body.theme-togel_z1play .ua-shortcuts a {
  border: 1px solid rgba(47, 227, 165, .18) !important;
  border-radius: 11px !important;
  background: linear-gradient(180deg, #0e1e2a, #000) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .45) !important;
}
/* Semua chip ikon disamakan; userarea.css memberi warna pelangi per nth-child
   (kuning, biru, hijau, ungu, merah muda, oranye) yang tidak nyambung dengan
   skin hitam-kuning. */
body.theme-togel_z1play .ua-shortcuts a i,
body.theme-togel_z1play .ua-shortcuts a:nth-child(n) i {
  border: 1px solid rgba(47, 227, 165, .35) !important;
  border-radius: 10px !important;
  background: rgba(47, 227, 165, .08) !important;
  color: var(--tg-panel) !important;
}
body.theme-togel_z1play .ua-shortcuts b { color: #fff !important; }
body.theme-togel_z1play .ua-shortcuts small { color: rgba(255, 255, 255, .4) !important; }
/* Ubin terakhir (Lucky Wheel) tidak lagi melebar penuh saat jumlahnya ganjil. */
body.theme-togel_z1play .ua-shortcuts a:last-child:nth-child(odd) { grid-column: auto !important; }
body.theme-togel_z1play .ua-shortcuts a:active { transform: scale(.97); }

/* --- Kartu isi lain ------------------------------------------------------- */
body.theme-togel_z1play .ua-card,
body.theme-togel_z1play .ua-provider-catalog {
  border: 1px solid rgba(47, 227, 165, .18) !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #0c1c27, #000) !important;
}
body.theme-togel_z1play .ua-card > header h2 { color: #fff !important; }
body.theme-togel_z1play .ua-card > header small { color: var(--tg-panel) !important; }
body.theme-togel_z1play .ua-empty { color: rgba(255, 255, 255, .4) !important; }


/* ============================================================================
   IKON KATEGORI VERSI PONSEL = SET IKON NAV DESKTOP.
   Pita kategori di beranda (.global-mobile-game-menu, templates/core/home.html)
   dan menu kategori member (.ua-category-menu, core/_member_shared_top.html)
   memakai PNG dari flaticon/googleusercontent yang di-hardcode di template dan
   DIPAKAI BERSAMA semua tenant — jadi tidak diubah di templatenya. Di sini
   <img> disembunyikan dan <i> diberi ikon latar dari static/togel-nav/*.svg,
   set yang sama dengan baris ikon nav desktop, hanya untuk tenant ini.
   Urutan kedua menu sama: togel, slot, live, sportsbook, arcade, poker, sabung.
   Path-nya relatif terhadap berkas CSS ini, jadi resolusinya /static/togel-nav/.
   ========================================================================= */
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a > i > img { display: none !important; }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a > i {
  background-image: var(--tg-cat-ico) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 24px 24px !important;
}
/* Di pita kategori publik, <i> memang selebar gambarnya (width:auto). Karena
   <img>-nya disembunyikan, kotaknya harus diberi ukuran sendiri — kalau tidak,
   lebarnya nol dan ikon latar tidak kelihatan sama sekali. */
body.theme-togel_z1play .global-mobile-game-menu a > i {
  width: 34px !important;
  height: 34px !important;
  /* Ikon nav desktop itu emas-perak dan dirancang untuk latar hitam; di pita
     kuning ia tenggelam. Diberi cakram hitam di belakangnya — sekaligus meniru
     tampilan di header desktop. */
  border-radius: 50% !important;
  background-color: #000 !important;
  background-size: 23px 23px !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .35) !important;
}
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(1) > i { --tg-cat-ico: url("togel-nav/lotto.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(2) > i { --tg-cat-ico: url("togel-nav/slots.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(3) > i { --tg-cat-ico: url("togel-nav/casino.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(4) > i { --tg-cat-ico: url("togel-nav/sports.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(5) > i { --tg-cat-ico: url("togel-nav/arcade.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(6) > i { --tg-cat-ico: url("togel-nav/poker.svg"); }
body.theme-togel_z1play :is(.global-mobile-game-menu, .ua-category-menu) a:nth-child(7) > i { --tg-cat-ico: url("togel-nav/sabung.png"); }


/* ============================================================================
   HALAMAN KATALOG /?category= — pita tab kategori + judul halaman.
   Markup: templates/core/category_providers.html (cabang non-z1play, ikon PNG
   flaticon yang di-hardcode dan dipakai bersama 16 tenant, jadi tidak diubah
   di templatenya). <img> disembunyikan lalu <i> memakai ikon nav desktop dari
   static/togel-nav/ seperti pita kategori beranda dan menu member.
   Tab aktif = pelat kuning berteks hitam, ikonnya tetap di atas cakram hitam.
   Judul: semua ragam heading (slot/arcade, live, sportsbook+sabung, togel,
   poker) disamakan — pita kuning di kiri, eyebrow kuning, judul sans tebal
   (bukan serif Cormorant dari frontend-lux), keterangan redup.
   ========================================================================= */
/* --- Pita tab kategori ----------------------------------------------------- */
body.theme-togel_z1play .category-provider-tabs {
  background: linear-gradient(180deg, #12242f, #000) !important;
  border-bottom: 1px solid var(--tg-panel-line) !important;
}
body.theme-togel_z1play .category-provider-tabs a {
  gap: 7px !important;
  border-right: 1px solid rgba(47, 227, 165, .14) !important;
  background: none !important;
  color: #fff !important;
}
body.theme-togel_z1play .category-provider-tabs a > span {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .05em !important;
}
body.theme-togel_z1play .category-provider-tabs a > i > img { display: none !important; }
body.theme-togel_z1play .category-provider-tabs a > i {
  width: 36px !important;
  height: 36px !important;
  border: 1px solid rgba(47, 227, 165, .28) !important;
  border-radius: 50% !important;
  background-color: #0a0a05 !important;
  background-image: var(--tg-cat-ico) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 23px 23px !important;
  box-shadow: none !important;
}
body.theme-togel_z1play .category-provider-tabs a:nth-child(1) > i { --tg-cat-ico: url("togel-nav/lotto.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(2) > i { --tg-cat-ico: url("togel-nav/slots.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(3) > i { --tg-cat-ico: url("togel-nav/casino.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(4) > i { --tg-cat-ico: url("togel-nav/sports.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(5) > i { --tg-cat-ico: url("togel-nav/arcade.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(6) > i { --tg-cat-ico: url("togel-nav/poker.svg"); }
body.theme-togel_z1play .category-provider-tabs a:nth-child(7) > i { --tg-cat-ico: url("togel-nav/sabung.png"); }
/* Tab aktif memakai pelat kuning seperti bar menu header; ikonnya tetap di atas
   cakram hitam supaya ikon emas tidak tenggelam di kuning. */
body.theme-togel_z1play .category-provider-tabs a.active {
  background: linear-gradient(180deg, #2fe3a5, #12b98a) !important;
  color: #000 !important;
}
body.theme-togel_z1play .category-provider-tabs a.active > i {
  border-color: rgba(0, 0, 0, .35) !important;
  background-color: #000 !important;
}

/* --- Judul halaman kategori ------------------------------------------------ */
body.theme-togel_z1play :is(.category-provider-heading, .live-section-title, .sb-section-title, .lottery-provider-heading, .poker-section-title) {
  padding-left: 11px;
  border-left: 3px solid var(--tg-panel);
}
body.theme-togel_z1play :is(.category-provider-heading, .live-section-title, .sb-section-title, .lottery-provider-heading, .poker-section-title) small {
  color: var(--tg-panel) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: .22em !important;
}
/* frontend-lux.css memasang serif Cormorant untuk semua h1-h3; di skin ini
   judulnya harus satu keluarga dengan sisa halaman. */
body.theme-togel_z1play :is(.category-provider-heading, .live-section-title, .sb-section-title, .lottery-provider-heading, .poker-section-title) :is(h1, h2) {
  margin: 4px 0 0 !important;
  color: #fff !important;
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 21px !important;
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
}
body.theme-togel_z1play :is(.category-provider-heading, .live-section-title, .sb-section-title, .lottery-provider-heading, .poker-section-title) p {
  margin-top: 5px !important;
  color: rgba(255, 255, 255, .5) !important;
  font-size: 11px !important;
}
/* Keterangan kanan ("Semua provider tersedia") jadi pil bergaris kuning. */
body.theme-togel_z1play :is(.live-section-title, .sb-section-title, .poker-section-title) > span {
  padding: 6px 11px !important;
  border: 1px solid rgba(47, 227, 165, .35) !important;
  border-radius: 999px !important;
  background: rgba(47, 227, 165, .06) !important;
  color: var(--tg-panel) !important;
  font-size: 9px !important;
  font-weight: 800 !important;
}
/* Tombol "← Beranda" */
body.theme-togel_z1play .category-provider-heading a,
body.theme-togel_z1play .category-provider-page > .category-provider-heading + a {
  border: 1px solid rgba(47, 227, 165, .45) !important;
  border-radius: 999px !important;
  background: rgba(47, 227, 165, .06) !important;
  color: var(--tg-panel) !important;
  font-weight: 800 !important;
}


/* ============================================================================
   PENCOCOKAN WARNA — sisa aksen yang belum ikut skin hitam-kuning.
   Ditemukan dengan memindai computed style halaman live (kartu provider,
   lencana, dan halaman promo):
     * kartu provider katalog: badan kartu nila/plum/marun + garis toska
       (category-providers.css memakai #178d78/#159170 untuk sportsbook)
     * lencana "● LIVE"/"● ONLINE" dan titik status: hijau toska
     * tombol "Masuk Sportsbook": gradien hijau-biru
     * halaman promo: ungu #a855f7 di puluhan aturan
   Warna platform (Facebook/WhatsApp/Telegram di tombol sosial) SENGAJA tidak
   diubah — itu identitas layanan, bukan aksen tema.
   ========================================================================= */

/* --- Kartu provider di semua halaman kategori ------------------------------ */
body.theme-togel_z1play .category-provider-card {
  border-color: rgba(47, 227, 165, .22) !important;
  background: linear-gradient(180deg, #0b1a25, #000) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .5) !important;
}
body.theme-togel_z1play .category-provider-card:hover { border-color: rgba(47, 227, 165, .55) !important; }
body.theme-togel_z1play .category-provider-card > span { background: linear-gradient(160deg, #11222e, #000) !important; }
body.theme-togel_z1play .category-provider-name {
  border-top-color: rgba(47, 227, 165, .18) !important;
  background: linear-gradient(180deg, #0a1823, #000) !important;
  color: #fff !important;
}
body.theme-togel_z1play .category-provider-name em {
  background: linear-gradient(180deg, #2fe3a5, #12b98a) !important;
  color: #000 !important;
}
/* Lencana sudut kartu: "● LIVE" (sportsbook) dan "● ONLINE" (togel) */
body.theme-togel_z1play .category-provider-card > span::before,
body.theme-togel_z1play .category-provider-card::after {
  border-color: rgba(47, 227, 165, .4) !important;
  background: rgba(0, 0, 0, .82) !important;
  color: var(--tg-panel) !important;
}
body.theme-togel_z1play .sb-notes li { border-color: rgba(47, 227, 165, .18) !important; }
/* Titik status hijau di judul bagian */
body.theme-togel_z1play :is(.sb-section-title, .live-section-title, .poker-section-title) span i {
  background: var(--tg-panel) !important;
  box-shadow: 0 0 8px rgba(47, 227, 165, .55) !important;
}

/* --- Halaman promo --------------------------------------------------------- */
/* Isi promo ditulis di backoffice dan membawa <style> sendiri yang menyetel
   :root{--tessa-gold:#a855f7!important} (ungu). Variabel custom mengikuti
   leluhur terdekat, jadi mendefinisikan ulang di <body> sudah cukup menang. */
body.theme-togel_z1play {
  --tessa-gold: #2fe3a5 !important;
  --tessa-light-gold: #7ff0cb !important;
  --tessa-dark-gold: #12b98a !important;
}
/* Apa pun yang tadinya ungu berteks putih kini berlatar kuning — teksnya wajib
   hitam (aturan keras tema). */
body.theme-togel_z1play :is(.tessa-section-number, .tessa-telegram-button, .tessa-promo-arrow) { color: #000 !important; }
body.theme-togel_z1play .tessa-promo-section li::before { color: #000 !important; }
body.theme-togel_z1play :is(.member-promo-badge, .member-promo-section-head p) i {
  background: var(--tg-panel) !important;
  box-shadow: 0 0 8px rgba(47, 227, 165, .5) !important;
}
body.theme-togel_z1play .member-promo-badge {
  border-color: rgba(47, 227, 165, .35) !important;
  background: rgba(47, 227, 165, .07) !important;
  color: var(--tg-panel) !important;
}

/* Isi promo memakai ungu #a855f7 yang di-hardcode di puluhan aturan (bukan
   hanya lewat variabel), jadi komponen ber-prefix .tessa- ditimpa di sini.
   Idealnya warna ini juga dibetulkan di sumbernya (editor promo backoffice). */
body.theme-togel_z1play [class^="tessa-"],
body.theme-togel_z1play [class*=" tessa-"] { border-color: rgba(47, 227, 165, .45) !important; }
body.theme-togel_z1play :is(.tessa-promo-arrow, .tessa-section-number, .tessa-telegram-button, .tessa-prize-table-header) {
  background: linear-gradient(135deg, #2fe3a5, #12b98a) !important;
  color: #000 !important;
  box-shadow: 0 0 12px rgba(47, 227, 165, .28) !important;
}
body.theme-togel_z1play .tessa-promo-list li::before {
  border-color: rgba(47, 227, 165, .5) !important;
  background: var(--tg-panel) !important;
  color: #000 !important;
  box-shadow: 0 0 10px rgba(47, 227, 165, .35) !important;
}
body.theme-togel_z1play :is(.tessa-promo-list strong, .tessa-turnover-box strong, .tessa-summary-card strong, .tessa-promo-section h3, .tessa-header-star, .tessa-prize-note, .tessa-prize-stake) {
  color: var(--tg-panel) !important;
}
body.theme-togel_z1play :is(.tessa-turnover-box, .tessa-turnover-result, .tessa-prize-table) { background-color: rgba(47, 227, 165, .05) !important; }
body.theme-togel_z1play .tessa-summary-card {
  background: linear-gradient(145deg, rgba(47, 227, 165, .09), rgba(255, 255, 255, .02)) !important;
}
body.theme-togel_z1play .tessa-promo-inner {
  background:
    radial-gradient(circle at top right, rgba(47, 227, 165, .12), transparent 30%),
    radial-gradient(circle at bottom left, rgba(18, 185, 138, .1), transparent 32%),
    linear-gradient(160deg, #0c1c27, #000) !important;
}
body.theme-togel_z1play :is(.tessa-promo-inner, .tessa-promo-section, .tessa-summary-card, .tessa-promo-button) {
  box-shadow: 0 10px 26px rgba(0, 0, 0, .5) !important;
}


/* ===========================================================================
   LAPISAN TATA LETAK MOBILE 2026 — mengikuti referensi nexusrivo (8 Sep 2026)
   Ditambahkan PALING AKHIR supaya menang atas aturan mobile di atasnya tanpa
   perlu mengubahnya satu per satu. Hanya berlaku di bawah 900px; tampilan
   desktop TESSA77 tidak tersentuh.
   ======================================================================== */
@media (max-width: 900px) {

  /* ---------------------------------------------------------------- header
     Logo kiri + tombol Masuk/Daftar kanan (dulu logo sendirian di tengah). */
  body.theme-togel_z1play .global-mobile-header {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    height: 58px;
    padding: 0 12px;
    background: var(--tg-page);
    border-bottom: 1px solid var(--tg-panel-line);
  }
  body.theme-togel_z1play .global-mobile-brand {
    margin: 0 auto 0 0;
    justify-content: flex-start;
  }
  body.theme-togel_z1play .global-mobile-brand img { max-height: 34px; width: auto; }
  body.theme-togel_z1play .tg-mobile-auth { display: flex; gap: 8px; flex: 0 0 auto; }
  body.theme-togel_z1play .tg-mobile-auth a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 66px;
    height: 34px;
    padding: 0 14px;
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .01em;
    text-decoration: none;
  }
  body.theme-togel_z1play .tg-auth-login {
    color: var(--tg-panel);
    border: 1px solid rgba(47, 227, 165, .45);
    background: rgba(47, 227, 165, .08);
  }
  body.theme-togel_z1play .tg-auth-register {
    color: #06231a;
    border: 1px solid transparent;
    background: linear-gradient(160deg, var(--tg-panel), var(--tg-panel-2));
  }

  /* ------------------------------------------------------------ pita info
     Sempat jadi pil gelap berjarak tepi; dikembalikan MENEMPEL PENUH ke
     kiri-kanan (8 Sep 2026), sejalan dengan banner. Rangka kelilingnya
     diganti garis bawah saja supaya tidak ada garis tipis di tepi layar. */
  body.theme-togel_z1play .global-mobile-ticker {
    margin: 0;
    /* Padding vertikal DIHAPUS: tinggi bilah dikunci 34px (border-box) di
       global-mobile-public.css, jadi padding 7px membuat jalur grid mulai di
       bawah titik tengah dan ikon horn 26px turun ~3px dari tengah bilah. */
    padding: 0 12px 0 8px;
    border: 0;
    border-bottom: 1px solid var(--tg-panel-line);
    border-radius: 0;
    background: var(--tg-surface);
  }
  body.theme-togel_z1play .global-mobile-ticker > i {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: linear-gradient(160deg, var(--tg-panel), var(--tg-panel-2));
    color: #06231a;
  }
  body.theme-togel_z1play .global-mobile-ticker > i svg { width: 15px; height: 15px; }
  body.theme-togel_z1play .global-mobile-ticker span {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--tg-panel-ink);
  }

  /* -------------------------------------------------------------- banner
     Sempat jadi kartu membulat berjarak tepi; dikembalikan MENEMPEL PENUH ke
     kiri-kanan atas permintaan pemilik (8 Sep 2026). Wadah `.public-home-banner`
     sudah selebar 100vw dari global-mobile-public.css, jadi di sini cukup
     menghapus margin/rangka/radius yang tadinya membentuk kartu. */
  body.theme-togel_z1play .public-home-banner { padding: 0; }
  body.theme-togel_z1play .banner-slider {
    margin: 0 !important;
    width: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  body.theme-togel_z1play .banner-slider img { border-radius: 0; }
  body.theme-togel_z1play .banner-dots { bottom: 8px; gap: 5px; }
  body.theme-togel_z1play .banner-dots button {
    width: 6px;
    height: 6px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .35);
    transition: width .2s ease;
  }
  body.theme-togel_z1play .banner-dots button.active { width: 18px; background: var(--tg-panel); }
  body.theme-togel_z1play :is(.banner-prev, .banner-next) {
    background: rgba(10, 26, 38, .6);
    border: 1px solid var(--tg-panel-line);
    color: var(--tg-panel-ink);
  }

  /* ------------------------------------------------------ rel kategori
     Bentuknya DISAMAKAN dengan menu kategori halaman member (.ua-category-menu)
     atas permintaan pemilik 8 Sep 2026: pita rata bergaris pemisah tipis, lima
     ikon per layar, digeser mendatar — bukan kotak kartu. Ikonnya sendiri
     ditangani blok "IKON KATEGORI VERSI PONSEL" di atas, jadi di sini hanya
     rangka dan pelatnya. Markup tetap `.global-mobile-game-menu a > i + span`. */
  body.theme-togel_z1play .global-mobile-game-menu {
    display: grid !important;
    grid-auto-flow: column;
    grid-auto-columns: 20%;
    grid-template-columns: none;
    gap: 0 !important;
    width: auto !important;
    /* Tanpa jarak atas: rel menempel langsung di bawah banner (permintaan
       pemilik 8 Sep 2026). Jarak bawah tetap sebagai pemisah ke kotak jackpot. */
    margin: 0 0 12px !important;
    padding: 0 !important;
    box-sizing: border-box;
    border: 1px solid rgba(47, 227, 165, .25);
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    background: linear-gradient(180deg, #10202c, #06121b) !important;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body.theme-togel_z1play .global-mobile-game-menu::-webkit-scrollbar { display: none; }
  body.theme-togel_z1play .global-mobile-game-menu a {
    position: relative;
    /* Rel bawaan mengunci tiap item ke `flex:0 0 78px; white-space:nowrap;
       overflow:hidden` — labelnya jadi terpotong "TO"/"SLO". */
    flex: none !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 60px;
    height: auto;
    padding: 7px 2px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    white-space: normal !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    overflow: visible;
    box-sizing: border-box;
  }
  /* Garis pemisah tipis antar ikon, persis seperti di menu kategori member. */
  body.theme-togel_z1play .global-mobile-game-menu a + a::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    bottom: 9px;
    width: 1px;
    background: linear-gradient(transparent, rgba(47, 227, 165, .25), transparent);
  }
  body.theme-togel_z1play .global-mobile-game-menu a:active { opacity: .75; }
  /* Ikon DISERAHKAN ke mekanisme lama di bagian "IKON KATEGORI VERSI PONSEL"
     di atas: <img> disembunyikan, ikon dipasang sebagai latar <i> dari
     static/togel-nav/. Jadi di sini <i> HANYA diberi bentuk pelatnya, persis
     seperti .ua-category-menu i di halaman member. JANGAN memunculkan kembali
     <img>-nya di sini; itu yang dulu membuat kedua rel terlihat beda. */
  body.theme-togel_z1play .global-mobile-game-menu a i {
    display: grid !important;
    place-items: center;
    flex: 0 0 30px;
    width: 30px !important;
    height: 30px !important;
    border: 1px solid rgba(47, 227, 165, .28) !important;
    border-radius: 8px !important;
    overflow: hidden;
    background-color: rgba(47, 227, 165, .07) !important;
    background-size: 23px 23px !important;
    box-shadow: none !important;
  }
  body.theme-togel_z1play .global-mobile-game-menu a span {
    display: block;
    width: 100%;
    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1.2;
    letter-spacing: .02em !important;
    text-align: center;
    text-transform: uppercase;
    overflow: visible !important;
    color: var(--tg-panel-ink) !important;
  }

  /* -------------------------------------------------------- dock bawah
     Tombol tengah jadi HEKSAGON mint yang menyembul, sesuai referensi. */
  body.theme-togel_z1play .public-mobile-dock,
  body.theme-togel_z1play .mobile-dock {
    background: rgba(11, 27, 39, .96);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--tg-panel-line);
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i,
  body.theme-togel_z1play .mobile-dock > .dock-main > i {
    width: 54px !important;
    height: 60px !important;
    border-radius: 0 !important;
    border: 0 !important;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    background: linear-gradient(160deg, var(--tg-panel), var(--tg-panel-2)) !important;
    color: #06231a !important;
    box-shadow: 0 8px 22px rgba(47, 227, 165, .32) !important;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i img {
    filter: none;
    width: 24px;
    height: 24px;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > span,
  body.theme-togel_z1play .mobile-dock > .dock-main > span { color: var(--tg-panel) !important; }

  /* --------------------------------------------------- panel & kartu isi
     Radius seragam 14px seperti referensi (dulu 5px bersudut tajam). */
  body.theme-togel_z1play :is(.reference-popular, .reference-live-casino,
    .reference-sportsbook, .reference-process-service, .reference-payment-methods,
    .reference-service, .reference-feature article, .global-mobile-inline-login,
    .global-mobile-inline-register) {
    border-radius: 14px !important;
  }
  body.theme-togel_z1play .reference-game-grid article > div { border-radius: 10px; overflow: hidden; }
}

/* Footer ikut navy, bukan hitam pekat. */
body.theme-togel_z1play .public-footer { background: var(--tg-page); }
body.theme-togel_z1play .reference-payment-methods article {
  background: var(--tg-page);
  border: 1px solid var(--tg-panel-line);
}

/* Reel angka jackpot masih emas karena diwarnai app.css/theme-cohesion.css
   dengan text-shadow emas berlapis. Dinolkan lalu diwarnai ulang di sini. */
body.theme-togel_z1play .jp-digits,
body.theme-togel_z1play .jp-digits b,
body.theme-togel_z1play .jp-digits em,
body.theme-togel_z1play .jp-digits u,
body.theme-togel_z1play .jp-digits i {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-shadow: none !important;
  background: none !important;
}
body.theme-togel_z1play .jp-digits i { color: var(--tg-panel) !important; -webkit-text-fill-color: var(--tg-panel) !important; }
body.theme-togel_z1play .jp-cur {
  color: var(--tg-panel) !important;
  -webkit-text-fill-color: var(--tg-panel) !important;
  text-shadow: none !important;
}

/* Ornamen "koin emas" di kiri-kanan kotak jackpot (jp-amount::before/::after)
   berasal dari app.css dan tidak ikut dipalet ulang. Disembunyikan, diganti
   garis mint tipis supaya kotaknya bersih seperti referensi. */
body.theme-togel_z1play .jp-amount::before,
body.theme-togel_z1play .jp-amount::after { display: none !important; }
body.theme-togel_z1play .jp-amount {
  /* Cincin emas yang tersisa itu `outline`, bukan border — datang dari app.css
     dan tidak ikut terpalet ulang. */
  outline: 1px solid rgba(47, 227, 165, .45) !important;
  outline-offset: 0 !important;
  border: 1px solid rgba(47, 227, 165, .55) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 0 26px rgba(47, 227, 165, .1) !important;
}


/* ===========================================================================
   HALAMAN MEMBER (setelah login) — sisa warna yang tidak ikut token tema.
   Ditemukan 8 Sep 2026 saat menyisir userarea dengan akun uji.
   ======================================================================== */

/* Banner member: latarnya `var(--paper)` dari userarea.css. Tokennya sudah
   diperbaiki di atas; bentuknya mengikuti banner publik — sejak 8 Sep 2026
   MENEMPEL PENUH ke kiri-kanan, bukan kartu membulat berjarak tepi. Kalau
   suatu saat banner publik diubah lagi, ubah keduanya bersamaan. */
body.theme-togel_z1play.userarea-app .ua-public-banner { background: var(--tg-page); }
@media (max-width: 900px) {
  body.theme-togel_z1play.userarea-app .ua-public-banner .banner-slider {
    margin: 0 !important;
    width: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }
}

/* Lucky Wheel: lucky-wheel-member.css punya token emas sendiri. */
body.theme-togel_z1play .lw2,
body.theme-togel_z1play .lw2-stage {
  --lw-gold: #2fe3a5;
  --lw-gold-soft: #7ff0cb;
  --lw-navy: #0a1a26;
  --lw-navy2: #17303e;
}
body.theme-togel_z1play .lw2-dividers path { stroke: rgba(230, 242, 240, .75) !important; }

/* Rebate: member-rebates.css memakai emas tertulis langsung, bukan token. */
body.theme-togel_z1play .rebate-hero span,
body.theme-togel_z1play .rebate-stats b,
body.theme-togel_z1play .rebate-list span { color: var(--tg-panel) !important; }
body.theme-togel_z1play .rebate-hero {
  background:
    radial-gradient(circle at 90% 0, rgba(47, 227, 165, .22), transparent 38%),
    linear-gradient(145deg, var(--tg-surface), var(--tg-surface-2)) !important;
}
body.theme-togel_z1play .rebate-list dd.unknown { color: #ffd579; }

/* Cincin fokus bawaan peramban mengikuti `accent-color`; tanpa ini kolom
   password di halaman Keamanan memunculkan cincin oranye. */
body.theme-togel_z1play :is(input, select, textarea, progress) { accent-color: var(--tg-panel); }

/* lucky-wheel-member.css juga menaburkan `rgba(242,196,81,…)` tertulis langsung
   di 13 aturan — tidak lewat token, jadi tidak ikut berubah saat --lw-gold
   diganti. Ditimpa satu per satu di sini dengan rona mint yang setara. */
body.theme-togel_z1play .lw2-back:hover { border-color: rgba(47, 227, 165, .4) !important; }
body.theme-togel_z1play .lw2-chip {
  border-color: rgba(47, 227, 165, .35) !important;
  background: rgba(47, 227, 165, .12) !important;
}
body.theme-togel_z1play .lw2-stage {
  border-color: rgba(47, 227, 165, .18) !important;
  background:
    radial-gradient(circle at 30% 20%, rgba(47, 227, 165, .14), transparent 42%),
    linear-gradient(160deg, var(--tg-surface-2), var(--tg-surface)) !important;
}
body.theme-togel_z1play .lw2-aura { background: radial-gradient(circle, rgba(47, 227, 165, .16), transparent 62%) !important; }
body.theme-togel_z1play .lw2-stage.is-won .lw2-aura { background: radial-gradient(circle, rgba(47, 227, 165, .34), transparent 65%) !important; }
body.theme-togel_z1play .lw2-hub { box-shadow: 0 10px 24px rgba(0, 0, 0, .5), 0 0 0 6px rgba(47, 227, 165, .12) !important; }
body.theme-togel_z1play .lw2-hub:hover { box-shadow: 0 12px 28px rgba(0, 0, 0, .55), 0 0 0 9px rgba(47, 227, 165, .18) !important; }
body.theme-togel_z1play .lw2-counter {
  border-color: rgba(47, 227, 165, .28) !important;
  background: linear-gradient(180deg, rgba(47, 227, 165, .14), rgba(255, 255, 255, .03)) !important;
}
body.theme-togel_z1play .lw2-spin { box-shadow: 0 12px 26px rgba(47, 227, 165, .32) !important; }
body.theme-togel_z1play .lw2-spin:hover:not(:disabled) { box-shadow: 0 16px 32px rgba(47, 227, 165, .4) !important; }
body.theme-togel_z1play .lw2-rules i { background: rgba(47, 227, 165, .16) !important; }
body.theme-togel_z1play .lw2-empty { border-color: rgba(47, 227, 165, .3) !important; }
body.theme-togel_z1play .lw2-empty i { background: rgba(47, 227, 165, .14) !important; }
/* `accent-color` saja tidak mengubah cincin fokus bawaan `outline:auto` di
   Chromium, jadi cincinnya dinyatakan tegas. */
body.theme-togel_z1play :is(input, select, textarea, button, a):focus-visible {
  outline: 2px solid var(--tg-panel) !important;
  outline-offset: 1px !important;
}

/* ===========================================================================
   HOT SLOT GAMES versi ponsel — diperbaiki 8 Sep 2026
   theme-cohesion.css memaksa SEMUA rel bertema jadi kartu 150x100 (rasio 3:2)
   dan menyembunyikan judul. Untuk seksi slot itu keliru: artwork slot berformat
   PERSEGI, jadi `object-fit:cover` memotong nama game di gambarnya, sementara
   nama game + provider ikut hilang. Live casino & sportsbook SENGAJA dibiarkan
   3:2 karena bannernya memang mendatar — jangan disamakan.
   ======================================================================== */
@media (max-width: 900px) {
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail {
    gap: 10px;
    /* Jarak kiri-kanan supaya kartu pertama/terakhir tidak menempel rangka. */
    padding: 2px 12px 12px !important;
    /* JANGAN pakai scroll-padding/scroll-snap di rel ini: dengan
       `scroll-snap-align:start` di kartunya, peramban langsung menggeser rel
       sebesar padding kiri saat muat sehingga kartu pertama terpotong. */
    scroll-snap-type: none;
  }
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail article {
    width: 112px;
    min-width: 112px;
  }
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail article > div {
    width: 112px;
    aspect-ratio: 1;
    border: 1px solid var(--tg-panel-line);
    border-radius: 10px;
    background: var(--tg-tile);
  }
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail :is(h3, p) {
    display: block !important;
    max-width: 112px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-align: left;
  }
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail h3 {
    margin: 7px 1px 0;
    font: 800 10px/1.25 Avenir, "Helvetica Neue", Arial, sans-serif;
    color: var(--tg-panel-ink);
  }
  body.theme-togel_z1play .reference-popular .reference-mobile-game-rail p {
    margin: 2px 1px 0;
    font-size: 8.5px;
    font-weight: 600;
    color: var(--tg-panel-ink-soft);
  }
}

/* ===========================================================================
   HOT SLOT GAMES — redesain 8 Sep 2026 (permintaan pemilik: "lebih bagus dan
   responsif"). Hanya menyentuh seksi slot pilihan, yaitu `.reference-popular`
   yang BUKAN live casino / sportsbook — dua seksi itu memakai banner mendatar
   3:2 dan sengaja dibiarkan apa adanya.

   Yang diperbaiki:
   1. Rasio kartu jadi PERSEGI. Artwork slot itu 1:1; aturan lama memaksanya
      3:2 sehingga nama game di dalam gambar terpotong atas-bawah. (Versi
      ponsel sudah dibetulkan 8 Sep pagi, desktop belum.)
   2. Rangka hitam pekat sisa skin lama diganti garis navy + sorot mint,
      selaras palet baru.
   3. Tangga kolom: 6 → 4 → rel geser, jadi 12 kartu selalu habis rata dan
      tidak ada kartu gepeng di lebar tanggung (901–1080px).
   4. Rel ponsel memakai lebar cair `clamp()` (dulu paten 112px) supaya di HP
      320px tetap muat 3 kartu dan di tablet kecil tidak kelihatan mungil.
   ======================================================================== */

/* Alias pembaca: HOT = panel slot pilihan saja. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) {
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(47, 227, 165, .07), rgba(47, 227, 165, 0) 55%),
    var(--tg-surface) !important;
  border-radius: 14px;
  overflow: hidden;
}

/* ------------------------------------------------------------------ header */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header {
  align-items: center;
  gap: 10px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--tg-panel-line);
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-default h2 {
  font-size: clamp(15px, 1.35vw, 19px);
  letter-spacing: .01em;
  padding-left: 40px;
}
/* reference-home.css memperlakukan `header span` sebagai eyebrow 8px, jadi kata
   "HOT" tampil kerdil di sebelah "SLOT GAMES". Disamakan supaya judulnya
   terbaca satu kesatuan, dengan "HOT" berwarna mint. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-default h2 span {
  color: var(--tg-panel);
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
}
/* Lencana bundar: dulu hitam pekat, sekarang mint bergradasi dengan ikon api. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-default h2::before {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
  box-shadow: 0 4px 12px rgba(47, 227, 165, .28);
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-default h2::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: #06231a;
  /* Ikon api (mask), jadi warnanya ikut token dan tidak perlu file gambar. */
  -webkit-mask: var(--tg-flame) center/contain no-repeat;
  mask: var(--tg-flame) center/contain no-repeat;
}
body.theme-togel_z1play {
  --tg-flame: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 1.5c.4 3.1-1 4.7-2.4 6.2C9.6 9.3 8.2 10.8 8.6 14c-1-.8-1.6-2-1.8-3.3C5.4 12 4.5 13.9 4.5 16a7.5 7.5 0 0 0 15 0c0-4.9-2.6-8.7-6-14.5z'/%3E%3C/svg%3E");
}
/* Tombol "Lihat semua": pil garis mint, terisi penuh saat disentuh. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header > a {
  flex: 0 0 auto;
  background: rgba(47, 227, 165, .1);
  border: 1px solid rgba(47, 227, 165, .38);
  border-radius: 999px;
  color: var(--tg-panel);
  padding: 8px 15px;
  letter-spacing: .03em;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header > a b {
  color: inherit;
  margin-left: 8px;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header > a:hover {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
  border-color: transparent;
  color: #06231a;
  transform: translateY(-1px);
}

/* -------------------------------------------------------------- grid kartu */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(8px, .9vw, 14px);
  padding: 14px 16px 4px;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article {
  min-width: 0;
}
/* PERSEGI — bukan 3:2. Artwork slot tidak lagi terpotong. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article > div {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--tg-panel-line);
  border-radius: 12px;
  background: var(--tg-tile);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .32);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article:hover > div {
  transform: translateY(-4px);
  border-color: rgba(47, 227, 165, .55);
  box-shadow: 0 12px 26px rgba(0, 0, 0, .45), 0 0 0 1px rgba(47, 227, 165, .22);
}
/* Selubung gelap dari bawah supaya tombol MAIN terbaca di artwork terang. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article > div::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 55%;
  background: linear-gradient(180deg, rgba(6, 18, 25, 0), rgba(6, 18, 25, .78));
  opacity: 0;
  transition: opacity .2s ease;
  pointer-events: none;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article:hover > div::after {
  opacity: 1;
}
/* reference-home.css meredupkan gambar ke brightness(.65) saat hover. Digabung
   selubung gradasi di atas, kartunya jadi terlalu gelap — dilembutkan. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article > div img {
  transition: transform .28s ease, filter .28s ease;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article:hover img {
  filter: brightness(.86);
  transform: scale(1.07);
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid article > div > a {
  inset: auto 10px 10px;
  padding: 9px 0;
  border-radius: 8px;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  font: 800 11px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .08em;
  box-shadow: 0 6px 14px rgba(0, 0, 0, .4);
  z-index: 2;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid h3 {
  margin: 9px 2px 0;
  font: 700 12px/1.3 Avenir, "Helvetica Neue", Arial, sans-serif;
  color: var(--tg-panel-ink);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid p {
  margin: 2px 2px 0;
  font: 600 10.5px/1.3 Avenir, "Helvetica Neue", Arial, sans-serif;
  color: var(--tg-panel-ink-soft);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Lencana HOT pada tiga kartu teratas — penanda seksi, bukan hiasan acak. */
body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) :is(.reference-game-grid, .reference-mobile-game-rail) article:nth-child(-n+3) > div::before {
  content: "HOT";
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 2;
  padding: 3px 7px;
  border-radius: 999px;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
  color: #06231a;
  font: 900 8px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .09em;
  box-shadow: 0 3px 8px rgba(0, 0, 0, .38);
  pointer-events: none;
}

body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-empty {
  padding: 26px 16px;
  color: var(--tg-panel-ink-soft);
  font-size: 12px;
}

/* Lebar tanggung (tablet mendatar): 6 kolom bikin kartu terlalu kecil, jadi
   turun ke 4 — 12 kartu tetap habis rata tanpa baris pincang. */
@media (min-width: 901px) and (max-width: 1080px) {
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-game-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ------------------------------------------------------- rel versi ponsel */
@media (max-width: 900px) {
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header {
    padding: 12px 12px 10px;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-mobile {
    gap: 8px;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-mobile h2 {
    /* `!important` wajib: global-mobile-public.css mematok 13px dengan
       `!important`, jadi shorthand biasa kalah. */
    font-size: clamp(13px, 3.8vw, 16px) !important;
    font-weight: 800;
    line-height: 1.2;
    padding-left: 0;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-mobile h2 em {
    color: var(--tg-panel) !important;
    font-style: normal;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-mobile h2 span {
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-popular-title-mobile > img {
    width: 20px;
    height: 20px;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) > header > a {
    background: rgba(47, 227, 165, .12) !important;
    border: 1px solid rgba(47, 227, 165, .34) !important;
    padding: 7px 11px !important;
  }

  /* Kartu cair: 3 kartu penuh di HP 360px, tidak menyusut di HP 320px, dan
     tidak melar jadi 2 kartu raksasa di tablet 780px. */
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail {
    gap: 10px;
    padding: 12px 12px 14px !important;
    scroll-padding-left: 12px;
    scroll-snap-type: x mandatory;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail article {
    width: clamp(104px, 29vw, 138px);
    min-width: clamp(104px, 29vw, 138px);
    scroll-snap-align: start;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail article > div {
    width: 100%;
    aspect-ratio: 1 / 1;
    border: 1px solid var(--tg-panel-line);
    border-radius: 12px;
    background: var(--tg-tile);
    box-shadow: 0 5px 14px rgba(0, 0, 0, .32);
    transition: transform .18s ease, border-color .18s ease;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail article > div:active {
    transform: scale(.96);
    border-color: rgba(47, 227, 165, .5);
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail :is(h3, p) {
    display: block !important;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-align: left;
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail h3 {
    margin: 8px 1px 0;
    font: 800 clamp(9.5px, 2.7vw, 11.5px)/1.25 Avenir, "Helvetica Neue", Arial, sans-serif;
    color: var(--tg-panel-ink);
  }
  body.theme-togel_z1play .reference-popular:not(.reference-live-casino):not(.reference-sportsbook) .reference-mobile-game-rail p {
    margin: 2px 1px 0;
    font: 600 clamp(8px, 2.2vw, 9.5px)/1.25 Avenir, "Helvetica Neue", Arial, sans-serif;
    color: var(--tg-panel-ink-soft);
  }
}

/* Hormati preferensi "kurangi gerak" milik sistem pengguna. */
@media (prefers-reduced-motion: reduce) {
  body.theme-togel_z1play .reference-popular :is(article, article > div, article > div img, header > a) {
    transition: none !important;
    transform: none !important;
  }
}

/* ===========================================================================
   LIVE CASINO & SPORTSBOOK — redesain 8 Sep 2026, menyusul HOT SLOT GAMES.

   Dua panel ini memakai kelas `.reference-popular` yang sama dengan seksi slot,
   jadi setelah seksi slot dipermak keduanya jadi terlihat ketinggalan: lencana
   judul masih bundar hitam kusam, tombol "Lihat semua" masih kotak hitam pekat,
   kartunya bersudut tajam tanpa reaksi sentuh.

   Bahasa visualnya kini disamakan (lencana mint, pil mint, sudut 12px, angkat +
   cincin mint saat hover) TAPI rasio kartu tetap 3:2 — banner provider live
   casino & sportsbook memang mendatar, bukan persegi seperti artwork slot.
   ======================================================================== */

body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) {
  border-radius: 14px;
  overflow: hidden;
}

/* ------------------------------------------------------------------ header */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--tg-panel-line);
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-default h2 {
  font-size: clamp(15px, 1.35vw, 19px);
  letter-spacing: .01em;
  padding-left: 40px;
}
/* Lencana judul: kotak membulat mint, bukan lagi bundaran hitam kusam. */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-default h2::before {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
  box-shadow: 0 4px 12px rgba(47, 227, 165, .28);
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-default h2::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background: #06231a;
  -webkit-mask: var(--tg-icon) center/contain no-repeat;
  mask: var(--tg-icon) center/contain no-repeat;
}
/* Ikon per seksi — mask SVG sebaris, jadi warnanya ikut token dan tidak perlu
   berkas gambar tambahan. */
body.theme-togel_z1play .reference-live-casino {
  --tg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 5.5 9.2C4 10.9 4 13.6 5.8 15.2c1.7 1.5 4.3 1.3 5.2-.4V19H8v2h8v-2h-3v-4.2c.9 1.7 3.5 1.9 5.2.4 1.8-1.6 1.8-4.3.3-6L12 2z'/%3E%3C/svg%3E");
}
body.theme-togel_z1play .reference-sportsbook {
  --tg-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 2.2 3.1 2.2-1.2 3.6h-3.8L8.9 6.4 12 4.2zM5.6 8.1l2.9.3 1.2 3.6-2.3 3.1-2.8-.9a7.9 7.9 0 0 1 1-6.1zm2.6 10.2-.9-2.8 2.3-3.1h3.8l2.3 3.1-.9 2.8a7.8 7.8 0 0 1-6.6 0zm10.6-4.1-2.8.9-2.3-3.1 1.2-3.6 2.9-.3a7.9 7.9 0 0 1 1 6.1z'/%3E%3C/svg%3E");
}
/* Tombol "Lihat semua": pil garis mint. `!important` wajib karena aturan lama
   di berkas ini memaksa latar hitam pada ketiga panel. */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header > a {
  flex: 0 0 auto;
  background: rgba(47, 227, 165, .1) !important;
  border: 1px solid rgba(47, 227, 165, .38) !important;
  border-radius: 999px;
  color: var(--tg-panel);
  font: 700 12px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  padding: 8px 15px;
  letter-spacing: .03em;
  white-space: nowrap;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header > a b { color: inherit; margin-left: 8px; }
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header > a:hover {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  border-color: transparent !important;
  color: #06231a;
  transform: translateY(-1px);
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header > a:hover b { color: #06231a; }

/* -------------------------------------------------------------- grid kartu */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(8px, .9vw, 14px);
  padding: 14px 16px 4px;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article { min-width: 0; }
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article > div {
  aspect-ratio: 3 / 2;   /* banner provider memang mendatar — jangan dipersegikan */
  border: 1px solid var(--tg-panel-line) !important;
  border-radius: 12px;
  background: var(--tg-tile) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .32);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article:hover > div {
  transform: translateY(-4px);
  border-color: rgba(47, 227, 165, .55) !important;
  box-shadow: 0 12px 26px rgba(0, 0, 0, .45), 0 0 0 1px rgba(47, 227, 165, .22);
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article > div img {
  transition: transform .28s ease;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article:hover img {
  transform: scale(1.05);
}
/* Logo provider yang dipakai sebagai gantinya jangan ikut dipotong `cover`. */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid img.provider-logo-card {
  object-fit: contain;
  padding: 12px;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid h3 {
  margin: 9px 2px 0;
  font: 700 12px/1.3 Avenir, "Helvetica Neue", Arial, sans-serif;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
/* Baris kategori di bawah tiap kartu selalu mengulang judul seksi ("Live
   Casino" sepuluh kali di bawah judul "Live Casino"). Tidak menambah informasi,
   cuma bikin panel padat — disembunyikan, nama provider yang jadi fokus. */
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid p {
  display: none;
}
body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article > div > a {
  border-radius: inherit;
}

/* Lebar tanggung: 6 kolom bikin banner 3:2 terlalu mungil, turun ke 4. */
@media (min-width: 901px) and (max-width: 1080px) {
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* ------------------------------------------------------- rel versi ponsel */
@media (max-width: 900px) {
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header {
    padding: 12px 12px 10px;
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-mobile {
    gap: 8px;
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-mobile h2 {
    font-size: clamp(13px, 3.8vw, 16px) !important;
    font-weight: 800;
    line-height: 1.2;
    padding-left: 0;
  }
  /* Sama seperti seksi slot: `header span` diperlakukan eyebrow 8px oleh
     reference-home.css, jadi "LIVE"/"SPORTS" tampil kerdil di sebelah
     "CASINO"/"BOOK". Disamakan supaya judul terbaca satu kesatuan. */
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-mobile h2 span {
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-mobile h2 em {
    color: var(--tg-panel) !important;
    font-style: normal;
  }
  /* Glyph ♠ / ● jadi ubin mint, sepadan dengan lencana api di seksi slot. */
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-popular-title-mobile > b {
    width: 24px !important;
    height: 24px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 8px;
    background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
    color: #06231a !important;
    font-size: 13px !important;
    line-height: 1;
    box-shadow: 0 3px 10px rgba(47, 227, 165, .28);
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) > header > a::after {
    color: var(--tg-panel) !important;
  }

  /* Kartu cair: 2 kartu penuh di HP 360px, tidak melar di tablet kecil. */
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid {
    gap: 10px !important;
    padding: 12px 12px 14px !important;
    scroll-padding-left: 12px;
    scroll-snap-type: x mandatory;
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article {
    width: clamp(138px, 40vw, 190px);
    min-width: clamp(138px, 40vw, 190px);
    scroll-snap-align: start;
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article > div {
    width: 100%;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .32);
  }
  body.theme-togel_z1play :is(.reference-live-casino, .reference-sportsbook) .reference-game-grid article > div:active {
    transform: scale(.97);
    border-color: rgba(47, 227, 165, .5) !important;
  }
}

/* ===========================================================================
   HALAMAN KATALOG LIVE CASINO & SPORTSBOOK — 8 Sep 2026.
   Tujuan "Lihat semua" dari panel beranda: /?category=live dan
   /?category=sportsbook (`templates/core/category_providers.html`).

   CACAT NYATA yang diperbaiki: tombol "Masuk Lobby →" / "Masuk Sportsbook →"
   praktis tak terbaca. `category-providers.css` menyetel `em` ke **7px** di
   desktop dan **6px** di ponsel; untuk sportsbook masih ada padding pil, tapi
   untuk live casino tidak ada padding sama sekali — lalu tema ini mengecatnya
   dengan gradasi mint, sehingga kotak mint menempel ketat pada huruf 7px dan
   tampak seperti teks terpotong.

   Sekalian disamakan dengan bahasa kartu baru di beranda: sudut 14px, garis
   navy, angkat + cincin mint saat hover, dan kolom yang mengalir mengikuti
   lebar layar (halaman live casino tadinya dipaku 3 kolom, jadi kartunya
   raksasa dan cuma muat sedikit per layar).

   `.sabung-provider-page` ikut memakai kelas `.sports-provider-page`, jadi
   aturan tata letak diberi `:not(.sabung-provider-page)` — arena sabung punya
   kartu tunggal berdeskripsi yang tidak boleh ikut mengalir.
   ======================================================================== */

/* ------------------------------------------------ tombol "Masuk ..." (cacat) */
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name em {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px !important;
  border-radius: 999px !important;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  font: 800 11px/1 Avenir, "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: .04em !important;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
  transition: transform .18s ease, box-shadow .18s ease;
}
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-card:hover .category-provider-name em {
  transform: translateY(-1px);
  box-shadow: 0 7px 18px rgba(47, 227, 165, .3);
  filter: none;
}

/* ------------------------------------------------------------------- kartu */
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-card {
  border-radius: 14px !important;
  overflow: hidden;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease !important;
}
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 14px 30px rgba(0, 0, 0, .5), 0 0 0 1px rgba(47, 227, 165, .22) !important;
}
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-card > span {
  border-radius: 14px 14px 0 0 !important;
}
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name {
  gap: 8px !important;
  padding: 12px 13px 14px !important;
}
body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name > span {
  font: 700 13px/1.3 Avenir, "Helvetica Neue", Arial, sans-serif;
}

/* Halaman live casino dipaku `repeat(3, ...)` sehingga kartunya raksasa dan
   isinya cuma banner. Dibuat mengalir seperti halaman sportsbook. */
body.theme-togel_z1play .live-provider-page .category-provider-grid {
  grid-template-columns: repeat(auto-fill, minmax(216px, 1fr));
  gap: 14px;
}

/* Latar berpendar bawaan halaman ini masih marun-emas (live) dan toska-biru
   (sportsbook) — sisa palet lama. Diganti pendar mint tipis. */
body.theme-togel_z1play .live-provider-page::before,
body.theme-togel_z1play .sports-provider-page::before {
  background:
    radial-gradient(circle at 16% 14%, rgba(47, 227, 165, .12), transparent 26%),
    radial-gradient(circle at 84% 10%, rgba(18, 185, 138, .1), transparent 27%) !important;
}

@media (max-width: 900px) {
  body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name em {
    padding: 6px 11px !important;
    font-size: 10px !important;
  }
  body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name {
    gap: 7px !important;
    padding: 10px 9px 12px !important;
  }
  body.theme-togel_z1play :is(.live-provider-page, .sports-provider-page) .category-provider-name > span {
    font-size: 11px;
  }
  body.theme-togel_z1play .live-provider-page .category-provider-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
  }
}

/* ===========================================================================
   HALAMAN PROMOSI (/promo/) — 8 Sep 2026.

   Isi tiap kotak promo ditulis di backoffice (field `description`, dirender
   `|safe`) dan membawa <style> sendiri bergaya ungu #a855f7. Tema ini sudah
   lama menimpa `--tessa-gold` jadi mint, tapi banyak nilai di HTML itu
   HARDCODE ungu — bukan lewat variabel — jadi masih tersisa: halo ungu di tiap
   <strong>, gradasi ungu di kartu bagian, dan garis ungu di kotak turnover.

   CACAT NYATA yang diperbaiki: label "LIHAT SYARAT & KETENTUAN" dipasang
   `position:absolute` di dasar banner dengan tirai gelap, sehingga MENUTUPI
   baris info milik banner itu sendiri ("AMAN & TERPERCAYA · PROSES CEPAT ·
   DEPOSIT MINIMAL · MENANG MAKSIMAL"). Paling parah di banner EVENT SCATTER
   dan di ponsel, tulisannya saling tumpuk. Sekarang label itu diturunkan
   menjadi baris tersendiri DI BAWAH gambar (`position:static`), jadi artwork
   utuh dan ajakan tetap terbaca.

   CATATAN: aturan di bawah menyasar nama kelas `tessa-*` dari HTML backoffice.
   Kalau isi promo ditulis ulang dengan struktur kelas lain, aturan ini tidak
   berlaku lagi — periksa kembali halaman promo setelah mengganti isinya.
   ======================================================================== */

/* ------------------------------------- label CTA: dari menimpa jadi di bawah */
body.theme-togel_z1play .tessa-promo-overlay {
  position: static !important;
  padding: 12px 15px !important;
  border-top: 1px solid rgba(47, 227, 165, .22) !important;
  background: linear-gradient(180deg, #12242f, #0a1a26) !important;
  color: var(--tg-panel) !important;
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif !important;
  letter-spacing: .06em !important;
  text-shadow: none !important;
}
body.theme-togel_z1play .tessa-promo-button {
  border-color: rgba(47, 227, 165, .3) !important;
  background: var(--tg-surface) !important;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .45) !important;
}
body.theme-togel_z1play .tessa-promo-button:hover {
  border-color: rgba(47, 227, 165, .6) !important;
  box-shadow: 0 16px 34px rgba(0, 0, 0, .55), 0 0 0 1px rgba(47, 227, 165, .2) !important;
}
body.theme-togel_z1play .tessa-promo-arrow {
  border-color: rgba(6, 35, 26, .35) !important;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .4) !important;
  text-shadow: none !important;
}

/* ------------------------------------------- sisa ungu yang hardcode di HTML */
/* Halo ungu di sekeliling tiap <strong> mint — bikin teks tampak keunguan. */
body.theme-togel_z1play .member-promo-page :is(.tessa-promo-list, .tessa-turnover-box, .tessa-promo-inner) strong {
  text-shadow: none !important;
}
body.theme-togel_z1play .member-promo-page :is(.tessa-promo-section, .tessa-summary-card,
  .tessa-turnover-box, .tessa-turnover-result, .tessa-prize-row, .tessa-prize-note,
  .tessa-turnover-calculation div) {
  border-color: rgba(47, 227, 165, .22) !important;
}
/* Panel isi promo tadinya hitam pekat (#020202–#151515) sementara seluruh situs
   navy — panelnya terbaca seperti lubang. Digeser ke navy, tetap gelap. */
body.theme-togel_z1play .tessa-promo-inner {
  border-color: rgba(47, 227, 165, .3) !important;
  background:
    radial-gradient(circle at 14% 18%, rgba(47, 227, 165, .08), transparent 26%),
    radial-gradient(circle at 86% 12%, rgba(255, 255, 255, .04), transparent 20%),
    linear-gradient(145deg, #08161f 0%, #12242f 45%, #08161f 100%) !important;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .05),
    0 18px 44px rgba(0, 0, 0, .55) !important;
}
body.theme-togel_z1play :is(.tessa-promo-section, .tessa-summary-card, .tessa-turnover-box,
  .tessa-turnover-result, .tessa-turnover-calculation div, .tessa-prize-row) {
  background-image: none !important;
  background-color: rgba(10, 26, 38, .72) !important;
}
body.theme-togel_z1play :is(.tessa-promo-section, .tessa-summary-card, .tessa-turnover-box,
  .tessa-final-warning)::before {
  background: linear-gradient(145deg, rgba(255, 255, 255, .035), transparent 40%) !important;
}
/* Garis animasi di tepi atas panel masih memakai --lux-gold-* (emas/ungu). */
body.theme-togel_z1play .tessa-promo-inner::before {
  background: linear-gradient(90deg, transparent, var(--tg-panel), transparent) !important;
  filter: drop-shadow(0 0 6px rgba(47, 227, 165, .5)) !important;
}
body.theme-togel_z1play .tessa-promo-inner::after {
  border-color: rgba(47, 227, 165, .12) !important;
  box-shadow: none !important;
}

/* Tombol klaim: teks di atas mint WAJIB gelap (aturan keras tema), dan halo
   ungunya dihapus supaya hurufnya tidak tampak berkabut. */
body.theme-togel_z1play .tessa-telegram-button {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  text-shadow: none !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .4) !important;
}
body.theme-togel_z1play .tessa-telegram-button span { color: inherit !important; }

/* ------------------------------------------------------- kerangka halaman */
/* Judul "Promo terbaru" memakai Georgia serif dari promo-page.css, satu-satunya
   serif di tema yang seluruhnya Avenir. */
body.theme-togel_z1play .member-promo-section-head h2,
body.theme-togel_z1play .member-promo-content :is(h1, h2) {
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif !important;
}
body.theme-togel_z1play .member-promo-section-head > div > span { color: var(--tg-panel); }
body.theme-togel_z1play .member-promo-box {
  border-color: var(--tg-panel-line);
  border-radius: 14px;
  background: var(--tg-surface);
}
body.theme-togel_z1play .member-promo-box:hover {
  border-color: rgba(47, 227, 165, .45);
}
/* Catatan "Pastikan membaca…" tampil sama persis di SETIAP kotak promo. Tidak
   dihapus (isinya peringatan), tapi dikecilkan supaya tidak memakan ruang
   sebesar isi promonya sendiri. */
body.theme-togel_z1play .member-promo-note {
  margin-top: 14px;
  padding: 9px 12px;
  border-color: rgba(47, 227, 165, .18);
  background: rgba(47, 227, 165, .05);
  font-size: 10px;
  line-height: 1.5;
}
body.theme-togel_z1play .member-promo-note > i {
  width: 17px;
  height: 17px;
  background: var(--tg-panel);
  color: #06231a;
  font-size: 9px;
}

@media (max-width: 900px) {
  body.theme-togel_z1play .tessa-promo-overlay {
    padding: 10px 12px !important;
    font-size: 11px !important;
  }
  body.theme-togel_z1play .member-promo-content.no-image .member-promo-content-inner {
    padding: 14px 12px;
  }
  body.theme-togel_z1play .member-promo-list { gap: 12px; }
  /* Ruang kosong besar antara promo terakhir dan footer di ponsel. */
  body.theme-togel_z1play .member-promo-page { margin-bottom: 24px; }
}

/* ---------------------------------------------------------------------------
   Ungu yang BERTAHAN karena `-webkit-text-fill-color`.

   Tiap kotak promo menyuntikkan <style> sendiri ke dokumen yang sama, jadi
   kelima blok itu saling menimpa dan semuanya ber-`!important`. Beberapa di
   antaranya mengecat teks lewat `-webkit-text-fill-color` (dan teks bergradasi
   `background-clip:text`) — properti itu MENANG atas `color`, sehingga menyetel
   `color` saja tidak mengubah apa pun yang terlihat. Itu sebabnya angka di
   "PERHITUNGAN TURNOVER" tetap ungu dan tulisan tombol klaim tetap putih di
   atas mint meskipun `color`-nya sudah gelap.

   Karena itu setiap aturan di bawah menyetel `color` DAN
   `-webkit-text-fill-color` sekaligus, plus menetralkan `background-clip:text`.
   Berkas tema dimuat di <head> — kalah urutan terhadap <style> di <body> — jadi
   kemenangannya bergantung pada awalan `body.theme-togel_z1play` yang menaikkan
   bobot selektor. Jangan hapus awalan itu.
   ------------------------------------------------------------------------ */

/* Judul bagian & header promo: putih bersih di atas navy. */
body.theme-togel_z1play .member-promo-page :is(.tessa-promo-header h2, .tessa-promo-header p,
  .tessa-promo-section h3) {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: none !important;
  background-clip: initial !important;
  -webkit-background-clip: initial !important;
}

/* Nilai penting (nominal, simbol hitung, bintang): mint. */
body.theme-togel_z1play .member-promo-page :is(.tessa-header-star, .tessa-summary-card strong,
  .tessa-promo-list strong, .tessa-turnover-box strong, .tessa-turnover-calculation div strong,
  .tessa-turnover-result strong, .tessa-math-symbol) {
  color: var(--tg-panel) !important;
  -webkit-text-fill-color: var(--tg-panel) !important;
  background: none !important;
  background-clip: initial !important;
  -webkit-background-clip: initial !important;
  text-shadow: none !important;
  filter: none !important;
}

/* Teks isi: terang tapi tidak sepenuh putih, supaya nilai mint tetap menonjol. */
body.theme-togel_z1play .member-promo-page :is(.tessa-promo-list li, .tessa-summary-card span,
  .tessa-turnover-box p, .tessa-turnover-box span, .tessa-turnover-result,
  .tessa-prize-row > span, .tessa-prize-row > strong, .tessa-prize-note) {
  color: var(--tg-panel-ink) !important;
  -webkit-text-fill-color: var(--tg-panel-ink) !important;
}
/* Baris kepala tabel hadiah BERLATAR mint, jadi tulisannya wajib gelap — bukan
   putih seperti sisa tabel. */
body.theme-togel_z1play .member-promo-page .tessa-prize-table-header span {
  color: #06231a !important;
  -webkit-text-fill-color: #06231a !important;
  text-shadow: none !important;
}
/* Pita catatan di kaki tabel masih berpendar ungu. */
body.theme-togel_z1play .member-promo-page .tessa-prize-note {
  background:
    radial-gradient(circle at 50% 0%, rgba(47, 227, 165, .1), transparent 58%),
    linear-gradient(90deg, #08161f, #12242f, #08161f) !important;
  border-top-color: rgba(47, 227, 165, .2) !important;
}
/* Kecuali nominal di dalamnya, yang tetap mint (aturan di atas menanganinya). */
body.theme-togel_z1play .member-promo-page :is(.tessa-prize-row > strong) {
  color: var(--tg-panel) !important;
  -webkit-text-fill-color: var(--tg-panel) !important;
}

/* Nomor bagian 01–06: ubin mint, jadi angkanya WAJIB gelap. Aturan promo lain
   memaksanya putih lewat -webkit-text-fill-color — kontrasnya jadi buruk. */
body.theme-togel_z1play .member-promo-page .tessa-section-number {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  border-color: rgba(6, 35, 26, .25) !important;
  color: #06231a !important;
  -webkit-text-fill-color: #06231a !important;
  text-shadow: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .35) !important;
}
/* Nomor bagian TETAP mint semua, termasuk bagian ber-`tessa-warning-section`
   (02 "Game yang tidak diperbolehkan"). Sempat dibuat merah, tapi itu memutus
   irama urutan 01–06 tanpa alasan kuat — judulnya sendiri sudah menyatakan
   larangan. Kotak "PERHATIAN" di kaki promo (`.tessa-final-warning`) sengaja
   TIDAK disentuh dan tetap merah; di situlah peringatan sesungguhnya.  */

/* Ceklis ✓ di depan tiap butir: latar ungu → mint. */
body.theme-togel_z1play .member-promo-page .tessa-promo-list li::before {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  -webkit-text-fill-color: #06231a !important;
}

/* Tombol klaim: mint dengan teks gelap. */
body.theme-togel_z1play .member-promo-page :is(.tessa-telegram-button,
  .tessa-telegram-button:visited, .tessa-telegram-button:focus, .tessa-telegram-button:active,
  .tessa-telegram-button span) {
  border-color: rgba(6, 35, 26, .3) !important;
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2)) !important;
  color: #06231a !important;
  -webkit-text-fill-color: #06231a !important;
  text-shadow: none !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .4) !important;
}
body.theme-togel_z1play .member-promo-page .tessa-telegram-button:hover {
  background: linear-gradient(150deg, var(--tg-panel-2), var(--tg-panel)) !important;
  border-color: rgba(6, 35, 26, .45) !important;
  box-shadow: 0 16px 32px rgba(0, 0, 0, .5), 0 0 24px rgba(47, 227, 165, .3) !important;
}

/* Label CTA di bawah banner: mint, bukan putih berkabut. */
body.theme-togel_z1play .member-promo-page .tessa-promo-overlay {
  color: var(--tg-panel) !important;
  -webkit-text-fill-color: var(--tg-panel) !important;
}
body.theme-togel_z1play .member-promo-page .tessa-promo-arrow {
  color: #06231a !important;
  -webkit-text-fill-color: #06231a !important;
}

/* ===========================================================================
   MODAL MASUK & DAFTAR — 8 Sep 2026.

   Di TESSA77 tombol Masuk/Daftar tidak membuka halaman penuh melainkan modal
   yang isinya diambil lewat fetch (lihat `templates/base.html`). Perbaikan
   fungsionalnya ada di sana dan di `core/forms.py`; blok ini hanya menangani
   sisi tampilan.

   Halaman di belakang modal masih ikut tergulir: `registration.css` mengunci
   `body{overflow:hidden}`, tapi elemen <html> tetap bisa digulir, dan guliran
   di dalam modal merambat ke halaman induk begitu mentok. Dikunci di sini.
   ======================================================================== */

html:has(body.theme-togel_z1play.auth-modal-open) {
  overflow: hidden;
}
body.theme-togel_z1play .auth-modal-body {
  /* Cegah guliran modal merambat ke halaman di belakangnya. */
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(47, 227, 165, .45) transparent;
}
body.theme-togel_z1play .auth-modal-body::-webkit-scrollbar { width: 8px; }
body.theme-togel_z1play .auth-modal-body::-webkit-scrollbar-thumb {
  border-radius: 8px;
  background: rgba(47, 227, 165, .4);
}

/* Formulir daftar itu panjang — tombol DAFTAR berada jauh di bawah lipatan dan
   harus digulir di dalam modal. Jarak antar bagian dirapatkan supaya lebih
   banyak yang terlihat sekaligus tanpa membuatnya sesak. */
/* CATATAN: aturan ber-awalan `.modal-embed` di bawah ini TIDAK PERNAH cocok.
   Kelas itu hanya dipasang pada halaman `?modal=1` yang berdiri sendiri,
   sedangkan modal menyuntikkan fragmen ke halaman induk. Padding formulir di
   dalam modal diatur di blok "REDESAIN MODAL MASUK & DAFTAR" paling bawah. */
body.theme-togel_z1play .modal-embed .register-form { padding: 20px 26px 24px; }
body.theme-togel_z1play .register-section { margin-top: 16px; padding-top: 15px; }
body.theme-togel_z1play .register-section-heading { margin-bottom: 11px; }
body.theme-togel_z1play .register-grid { gap: 13px; }
body.theme-togel_z1play .privacy-check { margin: 15px 0; }

/* Pilihan Bank / E-Wallet: yang terpilih ditandai mint, bukan sekadar garis. */
body.theme-togel_z1play .payment-type label {
  border-color: var(--tg-panel-line);
  background: var(--tg-tile);
  color: var(--tg-panel-ink);
}
body.theme-togel_z1play .payment-type label:has(input:checked) {
  border-color: var(--tg-panel) !important;
  background: rgba(47, 227, 165, .12) !important;
  color: var(--tg-panel);
  box-shadow: 0 0 0 2px rgba(47, 227, 165, .16) !important;
}
body.theme-togel_z1play .payment-type input,
body.theme-togel_z1play .privacy-check input { accent-color: var(--tg-panel); }

/* Kode verifikasi: kotaknya gelap dengan angka mint, sepadan bahasa tema. */
body.theme-togel_z1play .verification-row b {
  background: var(--tg-page);
  border: 1px solid rgba(47, 227, 165, .3);
  color: var(--tg-panel);
}

/* Tombol mata pada field password. */
body.theme-togel_z1play .player-password button {
  background: rgba(47, 227, 165, .12);
  border: 1px solid rgba(47, 227, 165, .28);
  color: var(--tg-panel);
  cursor: pointer;
}
body.theme-togel_z1play .player-password button:hover {
  background: rgba(47, 227, 165, .2);
}

/* Cincin fokus bawaan tema terlalu menyilaukan di dalam modal gelap. */
body.theme-togel_z1play :is(.player-login-form, .register-form) :is(input, select, textarea):focus {
  border-color: var(--tg-panel) !important;
  box-shadow: 0 0 0 3px rgba(47, 227, 165, .18) !important;
  outline: none !important;
}

@media (max-width: 780px) {
  body.theme-togel_z1play .modal-embed .register-form { padding: 18px 15px 22px; }
  body.theme-togel_z1play .register-grid { gap: 11px; }
}

/* ============================================================================
   REDESAIN MODAL MASUK & DAFTAR — TESSA77 (8 Sep 2026)

   Sebelum ini modal masih memakai sisa palet hitam-kuning: kanvas #0d0d0d,
   sudut 6px, tanpa logo di desktop, dan formulir daftar tampil sebagai
   tumpukan kotak berbingkai. Sekarang disamakan dengan sisa situs (navy+mint)
   dan diberi kepala baru: logo + tab Masuk/Daftar (`core/_tg_auth_head.html`,
   hanya dirender saat `?modal=1`).

   Semua di sini DIBATASI ke dalam `.auth-modal` — token `--surface-*` ditulis
   ulang pada `.auth-modal-panel` saja supaya halaman member (yang memakai token
   yang sama) tidak ikut berubah warna.

   Blok ini ditaruh PALING BAWAH berkas: aturan modal lama (baris ~790 dst)
   sengaja dibiarkan sebagai dasar, yang di sini hanya menimpanya.
   ========================================================================== */

/* --------------------------------------------------------- kanvas & rangka */
body.theme-togel_z1play .auth-modal-panel {
  /* Token dibatasi ke dalam panel — jangan dipindah ke `body`. */
  --surface-bg: #132633;
  --surface-soft: #0b1c27;
  --surface-fg: #eaf6f2;
  --surface-muted: #8ba7b5;
  --surface-line: #23414f;

  height: auto;
  border: 1px solid rgba(47, 227, 165, .3);
  border-radius: 20px;
  background:
    radial-gradient(120% 60% at 50% -12%, rgba(47, 227, 165, .13), rgba(47, 227, 165, 0) 62%),
    linear-gradient(180deg, #16303f 0%, #102534 46%, #0b1a25 100%);
  box-shadow:
    0 34px 90px rgba(0, 0, 0, .62),
    0 0 0 1px rgba(47, 227, 165, .07) inset;
  animation: tg-auth-in .28s cubic-bezier(.2, .8, .3, 1);
}
body.theme-togel_z1play .auth-modal.auth-login .auth-modal-panel {
  width: min(calc(100vw - 40px), 452px);
  max-height: min(92dvh, 720px);
}
body.theme-togel_z1play .auth-modal.auth-register .auth-modal-panel {
  width: min(calc(100vw - 40px), 660px);
  max-height: min(92dvh, 880px);
}
body.theme-togel_z1play .auth-modal-panel::before {
  height: 2px;
  background: linear-gradient(90deg, rgba(47, 227, 165, 0), #2fe3a5, #7ff0cb, #2fe3a5, rgba(47, 227, 165, 0));
}
body.theme-togel_z1play .auth-modal-backdrop {
  background:
    radial-gradient(circle at 50% 28%, rgba(47, 227, 165, .1), rgba(0, 0, 0, 0) 46%),
    rgba(3, 11, 16, .86);
  backdrop-filter: blur(10px) saturate(.9);
}
body.theme-togel_z1play .auth-modal-close {
  z-index: 8;
  right: 13px;
  top: 13px;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(234, 246, 242, .16);
  border-radius: 50%;
  background: rgba(234, 246, 242, .07);
  color: #cfe4dd;
  font: 300 22px/32px Arial, sans-serif;
}
body.theme-togel_z1play .auth-modal-close:hover {
  background: var(--tg-panel);
  border-color: var(--tg-panel);
  color: #04141d;
}
@keyframes tg-auth-in {
  from { opacity: 0; transform: translate(-50%, -50%) scale(.96); }
  to   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Wadah formulir dibuat tembus supaya gradasi panel yang terlihat, dan
   `overflow` dilepas — tanpa itu kepala `position:sticky` tidak bekerja. */
body.theme-togel_z1play .auth-modal-body :is(.player-login-shell, .register-page) {
  /* `.register-page` bawaan registration.css memakai `margin:28px auto` — di
     dalam modal itu menyisakan pita kosong di atas kepala sampai isi digulir. */
  width: 100%;
  margin: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
body.theme-togel_z1play .auth-modal-body .player-login-form-panel { background: transparent; }
/* Merek lama diganti kepala baru. */
body.theme-togel_z1play .auth-modal-body .player-login-mobile-brand,
body.theme-togel_z1play .auth-modal-body .register-brand-banner { display: none; }

/* ------------------------------------------------------- kepala: logo + tab */
body.theme-togel_z1play .tg-auth-head {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 13px;
  padding: 22px 20px 15px;
  /* WAJIB buram: kepala ini `sticky` di atas isi yang tergulir — versi
     setengah tembus membuat judul seksi terbaca menembus tab. */
  background: linear-gradient(180deg, #16303f, #142c3a);
  border-bottom: 1px solid rgba(47, 227, 165, .14);
  box-shadow: 0 12px 22px rgba(4, 14, 20, .45);
}
body.theme-togel_z1play .tg-auth-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 54px;                    /* ruang untuk tombol tutup (47px + jeda) */
}
body.theme-togel_z1play .tg-auth-brand img {
  max-width: 186px;
  max-height: 50px;
  object-fit: contain;
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, .55));
}
body.theme-togel_z1play .tg-auth-brand b {
  color: #fff;
  font-size: 19px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
body.theme-togel_z1play .tg-auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  width: 100%;
  max-width: 320px;
  padding: 5px;
  border: 1px solid #22404f;
  border-radius: 14px;
  background: rgba(6, 20, 28, .72);
}
body.theme-togel_z1play .tg-auth-tabs a {
  display: grid;
  place-items: center;
  height: 38px;
  border-radius: 10px;
  color: #8ba7b5;
  font: 800 11.5px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color .16s linear, color .16s linear;
}
body.theme-togel_z1play .tg-auth-tabs a:hover { color: #d7ece5; background: rgba(255, 255, 255, .05); }
body.theme-togel_z1play .tg-auth-tabs a.is-active {
  background: linear-gradient(135deg, #4ff0b8, #12b98a);
  color: #04141d;
  box-shadow: 0 8px 18px rgba(47, 227, 165, .26);
}
body.theme-togel_z1play .tg-auth-note {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: #7f9dab;
  font-size: 10px;
  letter-spacing: .04em;
}
body.theme-togel_z1play .tg-auth-note i {
  display: grid;
  place-items: center;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: rgba(47, 227, 165, .16);
  color: var(--tg-panel);
  font-style: normal;
  font-size: 9px;
  font-weight: 900;
}

/* ------------------------------------------------------------ isi form masuk */
body.theme-togel_z1play .auth-modal-body .player-login-form-panel {
  gap: 15px;
  padding: 18px 26px 24px;
}
body.theme-togel_z1play .auth-modal-body .player-login-heading { text-align: center; gap: 4px; }
body.theme-togel_z1play .auth-modal-body .player-login-heading p { display: none; }
body.theme-togel_z1play .auth-modal-body .player-login-heading h2 { font-size: 19px; letter-spacing: -.01em; }
body.theme-togel_z1play .auth-modal-body .player-login-heading span { font-size: 11.5px; }
/* Ikon di dalam kolom: aturan lama memakai shorthand `background:` sehingga
   ikon dari player-auth.css terhapus. Di sini warnanya diatur terpisah agar
   `background-image` tetap hidup. */
body.theme-togel_z1play .auth-modal-body .player-login-form input[type="text"],
body.theme-togel_z1play .auth-modal-body .player-login-form input[type="password"] {
  height: 50px;
  padding: 0 15px 0 44px;
  border: 1px solid #23414f;
  border-radius: 12px;
  background-color: #0b1c27;
  background-repeat: no-repeat;
  background-position: left 15px center;
  background-size: 17px 17px;
  color: #eaf6f2;
  font-size: 14px;
  transition: border-color .16s linear, box-shadow .16s linear;
}
body.theme-togel_z1play .auth-modal-body .player-login-form input[type="text"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f93a3' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
body.theme-togel_z1play .auth-modal-body .player-login-form input[type="password"] {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236f93a3' stroke-width='1.8' stroke-linecap='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
}
body.theme-togel_z1play .auth-modal-body .player-login-form input:focus {
  border-color: var(--tg-panel);
  box-shadow: 0 0 0 3px rgba(47, 227, 165, .16);
}
body.theme-togel_z1play .auth-modal-body .player-password button {
  right: 8px;
  border: 0;
  background: transparent;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  color: #7f9dab;
}
body.theme-togel_z1play .auth-modal-body .player-password button:hover {
  background: rgba(47, 227, 165, .14);
  color: var(--tg-panel);
}
body.theme-togel_z1play .auth-modal-body .player-login-register {
  padding-top: 13px;
  border-top: 1px solid #1c3644;
  font-size: 11.5px;
}
/* Pemberitahuan alasan keluar (?reason=) — versi navy, bukan biru terang. */
body.theme-togel_z1play .auth-modal-body .player-login-notice {
  margin-top: 0;
  border: 1px solid #23414f;
  border-left: 3px solid var(--tg-panel);
  border-radius: 11px;
  background: rgba(47, 227, 165, .07);
  color: #c3d8e0;
}
body.theme-togel_z1play .auth-modal-body .player-login-notice > i { background: var(--tg-panel); color: #04141d; }
body.theme-togel_z1play .auth-modal-body .player-login-notice b { color: #fff; }

/* ------------------------------------------------------ isi form pendaftaran */
body.theme-togel_z1play .auth-modal-body .register-form { padding: 18px 26px 26px; }
body.theme-togel_z1play .auth-modal-body .register-section {
  margin-top: 18px;
  padding: 16px 0 0;
  border: 0;
  border-top: 1px solid #1c3644;
  border-radius: 0;
  background: transparent;
}
body.theme-togel_z1play .auth-modal-body .register-section-heading {
  gap: 9px;
  margin-bottom: 13px;
}
body.theme-togel_z1play .auth-modal-body .register-section-heading span {
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  border-radius: 9px;
  background: linear-gradient(135deg, #4ff0b8, #12b98a);
  color: #04141d;
  font-size: 11px;
  font-weight: 900;
}
body.theme-togel_z1play .auth-modal-body .register-section-heading h2 {
  font: 800 14px/1.2 Avenir, "Helvetica Neue", Arial, sans-serif;
  color: #fff;
}
body.theme-togel_z1play .auth-modal-body .register-section-heading p { font-size: 10px; }
body.theme-togel_z1play .auth-modal-body .register-grid { gap: 14px; }
body.theme-togel_z1play .auth-modal-body .register-grid label > span {
  margin-bottom: 6px;
  font-size: 9px;
  letter-spacing: .14em;
  color: #7f9dab;
}
body.theme-togel_z1play .auth-modal-body .register-form :is(input[type="text"], input[type="password"], input[type="email"], input[type="tel"], input[type="number"], input:not([type]), select) {
  height: 46px;
  min-height: 46px;
  border: 1px solid #23414f;
  border-radius: 11px;
  background: #0b1c27;
  color: #eaf6f2;
  font-size: 13.5px;
  transition: border-color .16s linear, box-shadow .16s linear;
}
body.theme-togel_z1play .auth-modal-body .register-form :is(input, select):focus {
  border-color: var(--tg-panel);
  box-shadow: 0 0 0 3px rgba(47, 227, 165, .16);
}
body.theme-togel_z1play .auth-modal-body .register-grid label small { font-size: 9.5px; color: #6d8896; }
/* Pilihan Bank / E-Wallet */
body.theme-togel_z1play .auth-modal-body .payment-type label {
  min-height: 46px;
  border: 1px solid #23414f;
  border-radius: 11px;
  background: #0b1c27;
  color: #9fbcc8;
  font-size: 12.5px;
  font-weight: 700;
  transition: border-color .16s linear, background-color .16s linear, color .16s linear;
}
body.theme-togel_z1play .auth-modal-body .payment-type label:hover { border-color: rgba(47, 227, 165, .45); }
body.theme-togel_z1play .auth-modal-body .payment-type label:has(input:checked) {
  border-color: var(--tg-panel);
  background: rgba(47, 227, 165, .1);
  color: var(--tg-panel);
  box-shadow: 0 0 0 2px rgba(47, 227, 165, .13);
}
/* Kode verifikasi */
body.theme-togel_z1play .auth-modal-body .verification-row b {
  min-width: 122px;
  border: 1px dashed rgba(47, 227, 165, .55);
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(47, 227, 165, .14), rgba(47, 227, 165, .05));
  color: var(--tg-panel);
  font: 800 19px/1 "SF Mono", Menlo, monospace;
  letter-spacing: .22em;
  text-indent: .22em;                 /* imbangi jarak huruf agar tetap di tengah */
}
body.theme-togel_z1play .auth-modal-body .privacy-check {
  margin: 18px 0 16px;
  color: #9fbcc8;
  font-size: 11px;
}
/* Aturan label seksi ini memakai `label > span`, dan kalimat persetujuan
   privasi kebetulan berbentuk sama — tanpa penyetelan ulang di bawah, satu
   kalimat penuh tampil KAPITAL ber-spasi lebar dan sulit dibaca. */
body.theme-togel_z1play .auth-modal-body .privacy-check > span {
  font-size: 11px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
  color: #9fbcc8;
  line-height: 1.55;
}
/* Tab Masuk/Daftar di kepala sudah menggantikan tautan tukar di dasar kedua
   formulir; membiarkannya berarti dua jalan yang sama di satu layar, dan di
   ponsel tautan itu justru tertutup tombol kirim yang melekat. */
body.theme-togel_z1play .auth-modal-body :is(.register-login, .player-login-register) { display: none; }
body.theme-togel_z1play .auth-modal-body :is(.register-errors, .player-login-error) {
  border-radius: 11px;
  font-size: 11.5px;
}

/* ------------------------------------------------------------ tombol kirim */
body.theme-togel_z1play .auth-modal-body :is(.player-login-submit, .register-submit) {
  height: 52px;
  min-height: 52px;
  border-radius: 13px;
  background: linear-gradient(135deg, #4ff0b8, #12b98a) !important;
  color: #04141d !important;
  font: 900 12.5px/1 Avenir, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .18em;
  box-shadow: 0 14px 28px rgba(47, 227, 165, .24) !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
body.theme-togel_z1play .auth-modal-body :is(.player-login-submit, .register-submit):hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
}
body.theme-togel_z1play .auth-modal-body :is(.player-login-submit, .register-submit):active { transform: none; }

/* Formulir daftar selalu lebih panjang dari panel, jadi tombol kirimnya
   dilekatkan ke dasar area gulir — di ponsel isinya ±8 layar dan tanpa ini
   tombol berada jauh di bawah lipatan. `sticky` baru bekerja karena
   `.register-page` di dalam modal disetel `overflow:visible` di atas; nilai
   bawaan `overflow:hidden` dari registration.css mematikannya.
   Cincin `box-shadow` pertama berfungsi sebagai alas: tanpa itu tombol
   melayang tepat di atas kolom isian yang sedang tergulir. */
body.theme-togel_z1play .auth-modal-body .register-submit {
  position: sticky;
  bottom: calc(4px + env(safe-area-inset-bottom, 0px));
  z-index: 3;
  margin-top: 4px;
  box-shadow:
    0 0 0 12px #0b1a25,
    0 -12px 18px 6px rgba(9, 22, 31, .7),
    0 12px 26px rgba(47, 227, 165, .2) !important;
}

/* ------------------------------------------------------------- batang gulir */
body.theme-togel_z1play .auth-modal-body { scrollbar-color: #2c5262 transparent; }
body.theme-togel_z1play .auth-modal-body::-webkit-scrollbar-thumb {
  background: #2c5262;
  border-radius: 99px;
}

/* --------------------------------------------------- ponsel: lembar bawah
   Di layar sempit modal dipasang menempel tepi bawah (bottom sheet) seperti
   aplikasi: lebih dekat ke jempol, dan tidak ada lagi celah kosong di atas
   dan bawah panel. Garis atas panel dipakai ulang sebagai gagang tarik. */
@media (max-width: 560px) {
  body.theme-togel_z1play .auth-modal.auth-login .auth-modal-panel,
  body.theme-togel_z1play .auth-modal.auth-register .auth-modal-panel {
    left: 0;
    top: auto;
    bottom: 0;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: 94dvh;
    transform: none;
    border-width: 1px 0 0;
    border-radius: 22px 22px 0 0;
    animation: tg-auth-sheet-in .3s cubic-bezier(.2, .8, .3, 1);
  }
  body.theme-togel_z1play .auth-modal-panel::before {
    inset: auto;
    z-index: 5;                       /* kepala modal juga z-index 2 dan datang
                                         belakangan di DOM — tanpa ini gagang
                                         tarik tertutup olehnya */
    left: 50%;
    top: 8px;
    width: 42px;
    height: 4px;
    border-radius: 99px;
    background: rgba(234, 246, 242, .3);
    transform: translateX(-50%);
  }
  body.theme-togel_z1play .tg-auth-head { padding: 18px 16px 12px; gap: 10px; }
  body.theme-togel_z1play .tg-auth-brand { min-height: 40px; }
  body.theme-togel_z1play .tg-auth-brand img { max-width: 152px; max-height: 40px; }
  body.theme-togel_z1play .tg-auth-tabs { max-width: 300px; padding: 4px; }
  body.theme-togel_z1play .tg-auth-tabs a { height: 36px; }
  body.theme-togel_z1play .auth-modal-close { right: 10px; top: 16px; width: 32px; height: 32px; font-size: 20px; line-height: 30px; }
  body.theme-togel_z1play .auth-modal-body .player-login-form-panel,
  body.theme-togel_z1play .auth-modal-body .register-form {
    padding: 16px 18px calc(24px + env(safe-area-inset-bottom, 0px));
  }
  /* iOS memperbesar halaman saat kolom berfont < 16px difokuskan — di lembar
     bawah efeknya merusak tata letak, jadi semua kolom dipaksa 16px. */
  body.theme-togel_z1play .auth-modal-body :is(.player-login-form, .register-form) :is(input, select) { font-size: 16px; }
  body.theme-togel_z1play .auth-modal-body .register-grid { gap: 12px; }
  body.theme-togel_z1play .auth-modal-body .verification-row b { min-width: 104px; font-size: 17px; }
}
@keyframes tg-auth-sheet-in {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  body.theme-togel_z1play .auth-modal-panel { animation: none; }
}

/* ===========================================================================
   DASHBOARD MEMBER (/userarea/) — 8 Sep 2026.

   `userarea.css` menaruh warna aksennya di satu token, `--ua-gold: #e1b94f`
   (emas, sisa skin lama). Tema ini menimpa puluhan aturan `.ua-*` satu per satu
   tapi TIDAK PERNAH menimpa tokennya, jadi apa pun yang masih memakai
   `var(--ua-gold)` tetap keluar emas di tengah tema mint — paling kentara tombol
   "Lanjut Main" pada kartu Lanjutkan bermain. Menimpa tokennya sekali beres
   semuanya sekaligus.
   ======================================================================== */
body.theme-togel_z1play .ua-page {
  --ua-gold: var(--tg-panel);
}
/* Teks di atas aksen mint wajib gelap (aturan keras tema). */
body.theme-togel_z1play .ua-continue > a {
  background: linear-gradient(150deg, var(--tg-panel), var(--tg-panel-2));
  color: #06231a;
  font-weight: 800;
}
body.theme-togel_z1play .ua-welcome-status {
  border-color: rgba(47, 227, 165, .28);
  background: rgba(47, 227, 165, .07);
  color: var(--tg-panel);
}
body.theme-togel_z1play .ua-welcome-status > i {
  background: var(--tg-panel);
  box-shadow: 0 0 0 3px rgba(47, 227, 165, .18);
}
body.theme-togel_z1play .ua-welcome h1 { color: #fff; }

/* ===========================================================================
   PERAPIAN SEKSI "KELEBIHAN LAYANAN" & "METODE PEMBAYARAN" — 8 Sep 2026.

   Markup di `templates/core/home.html` (.reference-process-service dan
   .reference-payment-methods) TIDAK diubah sama sekali; semuanya dari sisi
   gaya. Blok ini sengaja diletakkan di akhir berkas supaya menang atas aturan
   lama untuk selector yang sama di baris ~526, ~703, dan ~1939.

   Empat hal yang dirapikan:
   1. Kepala seksi. Yang satu rata kiri, yang satu rata tengah, dan kata kedua
      ("LAYANAN"/"PEMBAYARAN") memakai serif Cormorant dari frontend-lux
      sedangkan kata pertama sans — judulnya seperti tertukar font. Tema ini
      sudah mencabut serif itu untuk judul lain (blok `.category-provider-heading`
      di atas); dua seksi ini saja yang terlewat. Sekarang keduanya memakai
      satu pola: kicker mint + judul sans tebal, rata kiri.
   2. Palet. Ikon dan bar "PROSES WITHDRAW" berwarna oranye (#ffbf69/#f0a84b)
      bawaan theme-cohesion.css — satu-satunya warna hangat di halaman
      navy-mint. Diganti mint muda: tetap bisa dibedakan dari deposit tanpa
      keluar palet.
   3. Kartu kedua seksi disamakan radius, garis, latar, dan ukuran ikonnya,
      supaya dua seksi bertetangga ini terbaca sebagai satu keluarga.
   4. Ponsel. Label kartu metode pembayaran dikecilkan cohesion sampai
      clamp(5.5px,1.65vw,7px) — di layar 390px sekitar 6,4px dan praktis tak
      terbaca. Keterangan kecil di atas label hanya mengulang isi label, jadi
      disembunyikan di layar sempit dan ruangnya dipakai memperbesar label.
   ======================================================================== */

/* ------------------------------------------------------------ kepala seksi */
body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header {
  display: flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 8px;
  margin-bottom: 13px;
}
body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header span {
  color: var(--tg-panel);
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header h2 {
  margin: 0;
  color: #fff;
  font-family: Avenir, "Helvetica Neue", Arial, sans-serif;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: .01em;
}

/* ------------------------------------------------------------ rangka seksi */
body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) {
  padding: 16px 18px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 12px;
  background: var(--tg-surface);
}
body.theme-togel_z1play .reference-payment-methods { margin-top: 12px; }

/* --------------------------------------------------------------- kartu isi */
body.theme-togel_z1play .reference-process-service article,
body.theme-togel_z1play .reference-payment-methods article {
  padding: 13px 15px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 11px;
  background: var(--tg-tile);
  color: var(--tg-panel-ink);
}
body.theme-togel_z1play .reference-process-service article > i,
body.theme-togel_z1play .reference-payment-methods article > i {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 11px;
  background: rgba(47, 227, 165, .1);
  box-shadow: inset 0 0 0 1px rgba(47, 227, 165, .22);
  color: var(--tg-panel);
}
/* Withdraw dibedakan dengan mint muda, bukan oranye. */
body.theme-togel_z1play .reference-process-service .process-withdraw > i {
  background: rgba(127, 240, 203, .1);
  box-shadow: inset 0 0 0 1px rgba(127, 240, 203, .24);
  color: #7ff0cb;
}
body.theme-togel_z1play .reference-process-service article > span b {
  color: #fff;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .04em;
}
body.theme-togel_z1play .reference-process-service article > span small {
  color: var(--tg-panel-ink-soft);
  font-size: 9.5px;
}
body.theme-togel_z1play .reference-process-service article > span u {
  background: rgba(47, 227, 165, .14);
}
body.theme-togel_z1play .reference-process-service .process-deposit > span u:after { background: var(--tg-panel); }
body.theme-togel_z1play .reference-process-service .process-withdraw > span u:after { background: #7ff0cb; }
body.theme-togel_z1play .reference-process-service article > strong { color: var(--tg-panel-ink-soft); }
body.theme-togel_z1play .reference-process-service article > strong b { color: #fff; font-size: 26px; }

/* Catatan bintang: ikut rata kiri seperti kepala seksi, tidak lagi mengambang
   di tengah, dan warnanya sama dengan keterangan kartu. */
body.theme-togel_z1play .reference-process-note {
  margin-top: 11px;
  color: var(--tg-panel-ink-soft);
  font-size: 9.5px;
  font-style: normal;
  text-align: left;
}

/* -------------------------------------------------------- metode pembayaran */
body.theme-togel_z1play .reference-payment-methods > div { gap: 12px; }
body.theme-togel_z1play .reference-payment-methods article > span { gap: 3px; }
body.theme-togel_z1play .reference-payment-methods article small {
  color: var(--tg-panel-ink-soft);
  font-size: 9px;
  letter-spacing: .04em;
}
body.theme-togel_z1play .reference-payment-methods article b {
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
}
body.theme-togel_z1play .reference-payment-methods article > i svg { stroke: currentColor; }

/* -------------------------------------------------------------------- ponsel */
@media (max-width: 900px) {
  body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) {
    padding: 14px 13px;
  }
  body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header {
    margin-bottom: 11px;
  }
  body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header span { font-size: 10px; }
  body.theme-togel_z1play :is(.reference-process-service, .reference-payment-methods) > header h2 { font-size: 15px; }
  /* Kartu proses versi ponsel menumpuk ke tengah (aturan theme-cohesion.css).
     Jaraknya dirapatkan supaya dua seksi bertetangga ini tidak memakan lebih
     dari satu layar penuh. */
  body.theme-togel_z1play .reference-process-service article { min-height: 0; padding: 9px 6px; gap: 3px; }
  body.theme-togel_z1play .reference-process-service article > i { width: 34px; height: 34px; flex: 0 0 34px; margin-bottom: 1px; }
  body.theme-togel_z1play .reference-process-service article > span b { font-size: 11px; }
  body.theme-togel_z1play .reference-process-service article > span small { font-size: 9px; }
  body.theme-togel_z1play .reference-process-service article > strong { margin-top: 3px; }
  body.theme-togel_z1play .reference-process-service article > strong b { font-size: 21px; }
  body.theme-togel_z1play .reference-process-note { text-align: left; }
}
@media (max-width: 560px) {
  /* Tiga kartu tetap sejajar, tapi dibuat terbaca. theme-cohesion.css
     memampatkan labelnya jadi clamp(5.5px,1.65vw,7px) — di layar 390px itu
     sekitar 6,4px, praktis tak terbaca. Keterangan kecil di atas label
     ("transfer manual", "dompet elektronik", "pulsa provider") hanya
     mengulang isi label, jadi disembunyikan di layar sempit dan ruangnya
     dipakai untuk memperbesar labelnya. */
  body.theme-togel_z1play .reference-payment-methods > div { gap: 7px; }
  body.theme-togel_z1play .reference-payment-methods article {
    min-height: 0;
    gap: 7px;
    padding: 9px 5px;
  }
  body.theme-togel_z1play .reference-payment-methods article > i {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
  }
  body.theme-togel_z1play .reference-payment-methods article > i svg { width: 18px; height: 18px; }
  body.theme-togel_z1play .reference-payment-methods article small { display: none; }
  body.theme-togel_z1play .reference-payment-methods article b {
    font-size: 10.5px;
    letter-spacing: .02em;
  }
}

/* ===========================================================================
   REDESAIN DOCK BAWAH PONSEL — 8 Sep 2026.

   Tiga masalah yang diperbaiki (dua di antaranya cacat tata letak, bukan
   selera):

   1. DOCK LEBIH LEBAR DARI LAYAR. `.mobile-dock` memakai `box-sizing:
      content-box` dengan `padding: 4px 5px 0` dan lima kolom `1fr` yang
      terhitung dari lebar layar penuh — totalnya 400px di layar 390px. Item
      kelima ("LAYANAN") karenanya menggantung 10px di luar layar dan
      labelnya terpotong. Diperbaiki dengan `box-sizing: border-box`.
   2. IKON CAMPUR-CAMPUR. Ikon dock diambil dari GlobalBottomNavigationSetting
      (dipakai bersama semua tenant) yang isinya PNG berwarna hasil hotlink ke
      cdn-icons-png.flaticon.com, sementara item kelima jatuh ke glyph "☏".
      Untuk tema ini ikonnya diganti SVG monoline lewat
      `templates/core/_tg_dock_icon.html` — data navigasi tenant lain tidak
      disentuh. Aturan di sini yang memberi warna dan ketebalan garisnya.
   3. HEKSAGON TENGAH MENABRAK ISI HALAMAN. Tombol tengah menyembul 28px ke
      atas tanpa alas, jadi ujungnya menimpa panel terakhir beranda. Sekarang
      menyembulnya dikurangi dan diberi alas heksagon warna halaman, sehingga
      terbaca sengaja "menembus" bar, bukan menabrak.

   Ditambah ruang aman iOS (env(safe-area-inset-bottom)) supaya label tidak
   bertumpuk dengan garis home indicator.
   ======================================================================== */
@media (max-width: 900px) {
  body.theme-togel_z1play .mobile-dock,
  body.theme-togel_z1play .public-mobile-dock {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: 64px;
    padding: 4px 4px calc(env(safe-area-inset-bottom, 0px) * .6) !important;
    overflow: visible;
  }
  body.theme-togel_z1play .mobile-dock > a,
  body.theme-togel_z1play .public-mobile-dock > a {
    min-width: 0;
    padding: 0 2px;
  }

  /* Ikon SVG: satu ketebalan garis untuk semua item, warna ikut warna teks
     item (redup saat tidak aktif, mint saat aktif). */
  body.theme-togel_z1play .public-mobile-dock > a > i > svg,
  body.theme-togel_z1play .mobile-dock > a > i > svg {
    width: 23px !important;
    height: 23px !important;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  body.theme-togel_z1play .public-mobile-dock > a > i {
    display: grid;
    place-items: center;
  }

  /* --------------------------------------------------------- tombol tengah */
  body.theme-togel_z1play .public-mobile-dock > .dock-main,
  body.theme-togel_z1play .mobile-dock > .dock-main {
    position: relative;
    overflow: visible;
  }
  /* Alas heksagon sewarna halaman: memberi jeda antara tombol dan isi
     halaman di belakangnya. Dipasang di ::before karena ::after sudah dipakai
     pita penanda item aktif. */
  body.theme-togel_z1play .public-mobile-dock > .dock-main:before,
  body.theme-togel_z1play .mobile-dock > .dock-main:before {
    content: "";
    position: absolute;
    left: 50%;
    top: -24px;
    width: 58px;
    height: 64px;
    clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    background: var(--tg-page);
    transform: translateX(-50%);
    pointer-events: none;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i,
  body.theme-togel_z1play .mobile-dock > .dock-main > i {
    position: relative;
    z-index: 1;
    width: 48px !important;
    height: 53px !important;
    margin-top: -19px !important;
    box-shadow: 0 6px 18px rgba(47, 227, 165, .3) !important;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i > svg,
  body.theme-togel_z1play .mobile-dock > .dock-main > i > svg {
    width: 24px !important;
    height: 24px !important;
    stroke: #06231a !important;
    stroke-width: 2;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main > span,
  body.theme-togel_z1play .mobile-dock > .dock-main > span {
    position: relative;
    z-index: 1;
  }
}

/* Layar sangat sempit: heksagon dan alasnya ikut mengecil supaya tetap
   sebanding dengan empat item lainnya. */
@media (max-width: 360px) {
  body.theme-togel_z1play .public-mobile-dock > .dock-main > i,
  body.theme-togel_z1play .mobile-dock > .dock-main > i {
    width: 44px !important;
    height: 49px !important;
    margin-top: -17px !important;
  }
  body.theme-togel_z1play .public-mobile-dock > .dock-main:before,
  body.theme-togel_z1play .mobile-dock > .dock-main:before {
    top: -21px;
    width: 54px;
    height: 59px;
  }
  body.theme-togel_z1play .public-mobile-dock > a > i > svg,
  body.theme-togel_z1play .mobile-dock > a > i > svg { width: 21px !important; height: 21px !important; }
}

/* ---------------------------------------------------------------------------
   Pita penanda item aktif — perbaikan 8 Sep 2026.

   Gejalanya: garis mint di atas ikon tidak berada di tengah ikon, melainkan
   melenceng ±18px ke kiri (pusat pita di x=24, pusat ikon di x=42 pada layar
   390px).

   Sebabnya tabrakan dua rancangan pita yang setengah-setengah saling menimpa:
   blok dock di atas menggambar pita sebagai batang 30px dengan
   `left:50%` + `transform:translateX(-50%)`, sedangkan theme-cohesion.css
   (baris ~571) memaksa `left:26% !important; right:26% !important;
   width:auto !important` — bentuk yang SUDAH di tengah dengan sendirinya dan
   tidak butuh transform. Yang ber-!important menang untuk left/right/width,
   tapi `transform` tidak ikut ditimpa karena cohesion memang tidak
   menyetelnya. Jadilah pita yang sudah pas di tengah digeser lagi setengah
   lebarnya ke kiri.

   Diselesaikan dengan menetapkan geometri pita secara utuh di satu tempat —
   lebar tetap 28px (sepadan lebar ikon 27px), menempel tepi atas, dan
   transform yang memang berpasangan dengan `left:50%`. Dipakai untuk dock
   publik maupun dock member supaya keduanya sama.
   ------------------------------------------------------------------------ */
@media (max-width: 900px) {
  body.theme-togel_z1play .public-mobile-dock > a.active:after,
  body.theme-togel_z1play .mobile-dock > a.active:after {
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    width: 28px !important;
    height: 2px !important;
    border-radius: 0 0 3px 3px !important;
    background: var(--tg-panel) !important;
    box-shadow: 0 0 10px rgba(47, 227, 165, .55) !important;
    transform: translateX(-50%) !important;
  }
}

/* ===========================================================================
   HALAMAN PROVIDER (/games/<slug>/?category=...) — 9 Sep 2026.

   Halaman ini satu-satunya sudut TESSA77 yang masih memakai palet UNGU bawaan
   `provider-pagination.css` (rel provider aktif, pil "PROVIDER", cincin fokus
   pencarian, tombol "Muat Game Berikutnya") di atas kartu biru-nila
   `provider-game-card-2026.css` — dua warna yang tidak ada di skin navy+mint.
   Blok ini mengecat ulang seluruh halaman dan menaikkan kepala provider dari
   label 7px menjadi kepala berisi logo + nama + jumlah game + kategori.

   Semua di-scope `body.theme-togel_z1play` — tenant lain tidak tersentuh.
   Berkas tema dimuat SESUDAH extra_css, jadi kebanyakan aturan menang tanpa
   `!important`; yang memakainya hanya tempat lapisan lama memaksa nilainya.
   ========================================================================= */

body.theme-togel_z1play .provider-landing { width: min(1200px, 100%); margin: 0 auto; padding-top: 14px; }

/* ------------------------------------------------------- kepala provider */
body.theme-togel_z1play .provider-catalog-tools {
  gap: 16px;
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 16px;
  background:
    radial-gradient(520px 200px at 88% -60%, rgba(47, 227, 165, .17), transparent 70%),
    linear-gradient(135deg, #12242f, #0b1c26);
  box-shadow: 0 14px 34px rgba(3, 12, 18, .42);
}
body.theme-togel_z1play .provider-catalog-mark {
  width: 74px;
  height: 74px;
  flex: 0 0 74px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(47, 227, 165, .3);
  border-radius: 18px;
  background: #0f2230;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .03);
}
body.theme-togel_z1play .provider-catalog-mark img { width: 82%; height: 82%; object-fit: contain; }
body.theme-togel_z1play .provider-catalog-mark b { color: var(--tg-panel); font-size: 21px; font-weight: 900; }
body.theme-togel_z1play .provider-catalog-name { min-width: 0; flex: 1 1 auto; padding: 0; }
body.theme-togel_z1play .provider-catalog-name small {
  color: var(--tg-panel);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .2em;
}
body.theme-togel_z1play .provider-catalog-name h1 {
  margin: 4px 0 0;
  color: var(--tg-panel-ink);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.15;
}
body.theme-togel_z1play .provider-catalog-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 9px 0 0;
}
body.theme-togel_z1play .provider-catalog-meta b,
body.theme-togel_z1play .provider-catalog-meta span {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .1em;
}
body.theme-togel_z1play .provider-catalog-meta b {
  border: 1px solid rgba(47, 227, 165, .34);
  background: rgba(47, 227, 165, .11);
  color: var(--tg-panel);
}
body.theme-togel_z1play .provider-catalog-meta span {
  border: 1px solid var(--tg-panel-line);
  background: rgba(255, 255, 255, .03);
  color: var(--tg-panel-ink-soft);
}

/* --------------------------------------------------------------- pencarian */
body.theme-togel_z1play .provider-search {
  flex: 0 1 340px;
  height: 46px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 12px;
  background: #0a1c26;
}
body.theme-togel_z1play .provider-search:focus-within {
  border-color: var(--tg-panel);
  box-shadow: 0 0 0 3px rgba(47, 227, 165, .16);
}
body.theme-togel_z1play .provider-search > i { color: var(--tg-panel); }
body.theme-togel_z1play .provider-search input { color: var(--tg-panel-ink); font-size: 11px; font-weight: 700; }
/* `input[type=search]` bawaan Chromium memunculkan tombol silang SENDIRI di
   ujung kanan — bertumpuk dengan tombol hapus milik halaman — dan cincin fokus
   mint tebal di dalam bingkai kita. Keduanya dimatikan; penanda fokus tetap
   ada, yaitu cincin `:focus-within` pada wadahnya. */
body.theme-togel_z1play .provider-search input::-webkit-search-cancel-button,
body.theme-togel_z1play .provider-search input::-webkit-search-decoration { -webkit-appearance: none; display: none; }
/* `!important` di sini menimpa cincin fokus global tema (blok "accent-color"
   di atas, juga `!important`). Bukan mengurangi aksesibilitas: penanda
   fokusnya PINDAH ke bingkai luar `.provider-search:focus-within` yang justru
   sebesar kotak pencariannya; kalau tidak, ada dua kotak mint bersarang. */
body.theme-togel_z1play .provider-search input:focus,
body.theme-togel_z1play .provider-search input:focus-visible { outline: 0 !important; box-shadow: none; }
body.theme-togel_z1play .provider-search input::placeholder { color: var(--tg-panel-ink-soft); opacity: 1; }
body.theme-togel_z1play .provider-search button { background: rgba(47, 227, 165, .14); color: var(--tg-panel); }

/* ------------------------------------------------------------ rel provider */
body.theme-togel_z1play .slot-provider-shortcuts { gap: 8px; margin: 0 0 14px; padding: 2px 1px 10px; }
body.theme-togel_z1play .slot-provider-shortcuts a {
  min-width: 96px;
  height: 76px;
  flex: 0 0 96px;
  gap: 7px;
  padding: 8px 6px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 13px;
  background: linear-gradient(180deg, #12242f, #0b1c26);
  color: var(--tg-panel-ink-soft);
  transition: transform .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
}
body.theme-togel_z1play .slot-provider-shortcuts a:hover {
  transform: translateY(-2px);
  border-color: rgba(47, 227, 165, .45);
  color: var(--tg-panel-ink);
}
body.theme-togel_z1play .slot-provider-shortcuts img,
body.theme-togel_z1play .slot-provider-shortcuts i {
  width: 100%;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 8px;
  background: transparent;
  object-fit: contain;
  color: var(--tg-panel);
  font-size: 9px;
}
body.theme-togel_z1play .slot-provider-shortcuts span { font-size: 8px; font-weight: 800; color: inherit; }
body.theme-togel_z1play .slot-provider-shortcuts a.active {
  border-color: var(--tg-panel);
  background: linear-gradient(180deg, rgba(47, 227, 165, .18), rgba(47, 227, 165, .04));
  color: var(--tg-panel-ink);
  box-shadow: 0 10px 22px rgba(47, 227, 165, .16), inset 0 -2px var(--tg-panel);
}

/* ----------------------------------------------------------- kartu game */
body.theme-togel_z1play .provider-game-grid .game-card {
  border: 1px solid var(--tg-panel-line);
  background: linear-gradient(180deg, #12242f, #0a1b25);
  box-shadow: 0 10px 24px rgba(3, 12, 18, .38);
}
body.theme-togel_z1play .provider-game-grid .game-card:hover,
body.theme-togel_z1play .provider-game-grid .game-card:focus-within {
  border-color: rgba(47, 227, 165, .55);
  box-shadow: 0 18px 34px rgba(3, 12, 18, .5), 0 0 0 1px rgba(47, 227, 165, .22);
}
body.theme-togel_z1play .provider-game-grid .cover { background: #0a1c26; }
body.theme-togel_z1play .provider-game-grid .hot-game-badge {
  border: 0;
  background: linear-gradient(135deg, var(--tg-panel), var(--tg-panel-2));
  color: #06231a;
  box-shadow: 0 4px 12px rgba(47, 227, 165, .3);
}
body.theme-togel_z1play .provider-game-grid .game-overlay {
  background: linear-gradient(180deg, rgba(5, 18, 26, .38), rgba(5, 18, 26, .88));
}
body.theme-togel_z1play .provider-game-grid .game-overlay a { color: var(--tg-panel-ink); }
body.theme-togel_z1play .provider-game-grid .game-overlay i {
  background: linear-gradient(160deg, var(--tg-panel), var(--tg-panel-2));
  color: #06231a;
  box-shadow: 0 10px 22px rgba(47, 227, 165, .35);
}
body.theme-togel_z1play .provider-game-grid .game-info {
  border-top: 1px solid var(--tg-panel-line);
  background: linear-gradient(180deg, rgba(47, 227, 165, .05), transparent);
}
body.theme-togel_z1play .provider-game-grid .game-info h3 { color: var(--tg-panel-ink); }
/* RTP dipentaskan 92-98,5% (core/views.py), jadi tingkat "low"/"medium" praktis
   tidak pernah muncul — tiga warna merah/kuning/hijau bawaan cuma memecah
   palet. Semuanya disatukan jadi mint. */
body.theme-togel_z1play .provider-game-grid .game-rtp,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-low,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-medium,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-high { color: var(--tg-panel); }
body.theme-togel_z1play .provider-game-grid .game-rtp span,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-low span,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-medium span,
body.theme-togel_z1play .provider-game-grid .game-rtp.rtp-high span { color: var(--tg-panel); }
body.theme-togel_z1play .provider-game-grid .game-rtp > i { background: rgba(47, 227, 165, .14); }
body.theme-togel_z1play .provider-game-grid .game-rtp > i > b {
  background: linear-gradient(90deg, var(--tg-panel-2), var(--tg-panel));
  box-shadow: 0 0 8px rgba(47, 227, 165, .5);
}

/* --------------------------------------------- kosong & muat berikutnya */
body.theme-togel_z1play .provider-game-grid .empty {
  grid-column: 1 / -1;
  padding: 34px 18px;
  border: 1px dashed var(--tg-panel-line);
  border-radius: 14px;
  background: rgba(18, 36, 47, .5);
  text-align: center;
}
/* `font-family: inherit` wajib: app.css memberi SEMUA h3 font serif Cormorant,
   dan di sini judulnya jadi satu-satunya teks serif di halaman. */
body.theme-togel_z1play .provider-game-grid .empty h3 { margin: 0; color: var(--tg-panel-ink); font-family: inherit; font-size: 13px; font-weight: 800; }
body.theme-togel_z1play .provider-game-grid .empty p { margin: 6px 0 0; color: var(--tg-panel-ink-soft); font-size: 10px; }
body.theme-togel_z1play .provider-load-more { margin: 26px 0 14px; }
body.theme-togel_z1play .provider-load-more button {
  min-width: 240px;
  padding: 13px 22px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--tg-panel), var(--tg-panel-2));
  color: #06231a;
  letter-spacing: .08em;
  box-shadow: 0 12px 26px rgba(47, 227, 165, .24);
}
body.theme-togel_z1play .provider-load-more button:hover { box-shadow: 0 16px 32px rgba(47, 227, 165, .32); }
body.theme-togel_z1play .provider-load-more small { color: var(--tg-panel-ink-soft); }

/* ------------------------------------------------------------------ ponsel */
@media (max-width: 640px) {
  /* Kepala provider di ponsel: logo + nama sebaris, pencarian di baris kedua.
     `provider-pagination.css` menumpuknya jadi satu kolom (flex-direction:
     column) — dengan logo baru itu membuat logo duduk sendirian di atas. */
  body.theme-togel_z1play .provider-catalog-tools {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "mark name" "search search";
    align-items: center;
    gap: 9px 10px;
    padding: 9px 10px;
    border: 1px solid rgba(47, 227, 165, .22);
    border-radius: 14px;
    background: rgba(11, 28, 38, .96);
    box-shadow: 0 10px 26px rgba(3, 12, 18, .42);
    backdrop-filter: blur(12px);
  }
  body.theme-togel_z1play .provider-catalog-mark { grid-area: mark; width: 44px; height: 44px; flex-basis: 44px; border-radius: 12px; }
  body.theme-togel_z1play .provider-catalog-name { grid-area: name; flex-direction: column; align-items: flex-start; gap: 0; }
  body.theme-togel_z1play .provider-catalog-name small { padding: 0; border-radius: 0; background: none; font-size: 6.5px; }
  body.theme-togel_z1play .provider-catalog-name h1 { margin: 2px 0 0; font-size: 13px; }
  body.theme-togel_z1play .provider-catalog-meta { gap: 5px; margin: 5px 0 0; }
  body.theme-togel_z1play .provider-catalog-meta b,
  body.theme-togel_z1play .provider-catalog-meta span { padding: 3px 7px; font-size: 6.5px; }
  body.theme-togel_z1play .provider-search { grid-area: search; flex-basis: auto; width: 100%; height: 40px; border-radius: 11px; }
  body.theme-togel_z1play .provider-search input { font-size: 10px; }

  /* Rel provider: kotak 4 per layar bawaan dipertahankan, hanya warnanya. */
  body.theme-togel_z1play .slot-provider-shortcuts { background: rgba(8, 22, 30, .72); }
  body.theme-togel_z1play .slot-provider-shortcuts a {
    min-width: calc((100vw - 38px) / 4);
    height: calc((100vw - 38px) / 4);
    flex-basis: calc((100vw - 38px) / 4);
    padding: 4px;
    border-radius: 10px;
  }
  body.theme-togel_z1play .slot-provider-shortcuts img,
  body.theme-togel_z1play .slot-provider-shortcuts i {
    height: calc(100% - 21px);
    flex-basis: calc(100% - 21px);
  }
  body.theme-togel_z1play .slot-provider-shortcuts a.active:after { background: var(--tg-panel); color: #06231a; }

  /* Pita kategori: penanda aktif bawaan masih UNGU (inset box-shadow). */
  body.theme-togel_z1play .provider-category-menu a.active {
    background: none !important;
    box-shadow: inset 0 -2px var(--tg-panel) !important;
  }
  body.theme-togel_z1play .provider-category-menu a.active span { color: var(--tg-panel) !important; }
  body.theme-togel_z1play .provider-category-menu a.active > i {
    border-color: var(--tg-panel) !important;
    background-color: rgba(47, 227, 165, .18) !important;
  }
  body.theme-togel_z1play .provider-category-menu a:first-child { color: inherit; }

  body.theme-togel_z1play .provider-load-more button { min-width: 210px; padding: 12px 18px; }

  /* Selubung gelap tombol "MAIN SEKARANG" TIDAK boleh ikut di ponsel. Di sana
     `provider-game-card-2026.css` membuat `.game-overlay` permanen
     (`opacity:1`) dan transparan — bukan lagi lapisan hover, melainkan tautan
     setinggi kartu supaya seluruh gambar bisa disentuh. Memberinya gradasi
     berarti SETIAP artwork tertutup lapisan hitam. */
  body.theme-togel_z1play .provider-game-grid .game-overlay { background: none; }

  /* Jarak tepi 8px. Bawaannya 2px (provider-landing.css) sehingga kartu game
     nyaris menempel bingkai layar sementara kepala provider berupa kartu
     berbingkai — dua jarak yang berbeda di satu halaman. Rel provider TIDAK
     ikut: ia memang sengaja 100vw dengan padding sendiri. */
  body.theme-togel_z1play .provider-landing { padding: 10px 8px 0; }
  body.theme-togel_z1play .provider-game-grid.games { gap: 8px; }
}

/* Ponsel kecil (≤380px) bawaannya turun ke DUA kolom — di layar 360px kartunya
   jadi ~170px, lebih besar daripada di layar 390px. Tiga kolom dipertahankan
   sampai 340px; di bawah itu barulah dua kolom. */
@media (max-width: 380px) and (min-width: 341px) {
  body.theme-togel_z1play .provider-game-grid.games { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.theme-togel_z1play .provider-game-grid .game-info h3 { font-size: 9px; }
  body.theme-togel_z1play .provider-game-grid .game-info .game-rtp { font-size: 7px; }
}

/* ===========================================================================
   KATALOG KATEGORI BERGAYA SEKSI (/?category=slot) — 9 Sep 2026.

   Permintaan pemilik: tata letaknya (bukan warnanya) meniru
   https://bydseal77.com/slot — pemain langsung melihat GAME, dikelompokkan
   per provider, bukan sekadar kisi logo provider. Bedanya dengan referensi:
   di sana SEMUA game dirender (halamannya >100.000 px), di sini tiap provider
   hanya memajang 12 game lalu "Lihat semua" menuju halaman provider.

   Markup: `templates/core/category_providers.html` (blok `provider_sections`,
   hanya diisi views untuk tenant togel_z1play). Kisi logo provider yang lama
   tetap dipakai 15 tenant lain.
   ========================================================================= */

body.theme-togel_z1play .catalog-game-sections {
  display: grid;
  gap: 12px;
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0 8px 8px;
}
body.theme-togel_z1play .catalog-game-section {
  padding: 10px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 14px;
  background: linear-gradient(180deg, #12242f, #0b1c26);
  box-shadow: 0 10px 24px rgba(3, 12, 18, .3);
}

/* ---------------------------------------------------------- judul provider */
body.theme-togel_z1play .cgs-head {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 2px 2px 10px;
  color: inherit;
  text-decoration: none;
}
body.theme-togel_z1play .cgs-logo {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(47, 227, 165, .28);
  border-radius: 10px;
  background: #0f2230;
}
body.theme-togel_z1play .cgs-logo img { width: 100%; height: 100%; object-fit: cover; }
body.theme-togel_z1play .cgs-logo i {
  color: var(--tg-panel);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
}
body.theme-togel_z1play .cgs-head b {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  color: var(--tg-panel-ink);
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.theme-togel_z1play .cgs-head small {
  padding: 3px 8px;
  border: 1px solid rgba(47, 227, 165, .3);
  border-radius: 999px;
  background: rgba(47, 227, 165, .1);
  color: var(--tg-panel);
  font-size: 7.5px;
  font-weight: 900;
  letter-spacing: .08em;
  white-space: nowrap;
}
body.theme-togel_z1play .cgs-chev {
  color: var(--tg-panel);
  font-size: 17px;
  font-style: normal;
  line-height: 1;
}

/* ------------------------------------------------------------- kisi game */
body.theme-togel_z1play .cgs-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
body.theme-togel_z1play .cgs-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  color: inherit;
  text-decoration: none;
}
body.theme-togel_z1play .cgs-art {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border: 1px solid var(--tg-panel-line);
  border-radius: 10px;
  background: #0a1c26;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body.theme-togel_z1play .cgs-art img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  /* Kalau gambarnya gagal dimuat, jangan tampilkan teks `alt` yang berantakan
     di atas ubin — cukup ubin gelap kosong. `alt` tetap ada untuk pembaca
     layar, hanya tidak digambar. */
  color: transparent;
  font-size: 0;
}
body.theme-togel_z1play .cgs-card b {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: var(--tg-panel-ink-soft);
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}
body.theme-togel_z1play .cgs-card:active .cgs-art { transform: scale(.97); }
body.theme-togel_z1play .cgs-card:hover .cgs-art,
body.theme-togel_z1play .cgs-card:focus-visible .cgs-art {
  border-color: rgba(47, 227, 165, .55);
  box-shadow: 0 10px 22px rgba(3, 12, 18, .45);
}
body.theme-togel_z1play .cgs-card:hover b { color: var(--tg-panel-ink); }

/* ----------------------------------------------------------- lihat semua */
body.theme-togel_z1play .cgs-more {
  display: block;
  width: fit-content;
  margin: 11px auto 2px;
  padding: 7px 16px;
  border: 1px solid rgba(47, 227, 165, .35);
  border-radius: 999px;
  background: rgba(47, 227, 165, .08);
  color: var(--tg-panel);
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .06em;
  text-decoration: none;
}
body.theme-togel_z1play .cgs-more:hover {
  border-color: var(--tg-panel);
  background: rgba(47, 227, 165, .16);
}

/* --------------------------------------------------------------- tablet+ */
@media (min-width: 641px) {
  body.theme-togel_z1play .catalog-game-sections { gap: 14px; padding: 0 12px 12px; }
  body.theme-togel_z1play .catalog-game-section { padding: 14px; border-radius: 16px; }
  body.theme-togel_z1play .cgs-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  body.theme-togel_z1play .cgs-logo { width: 40px; height: 40px; flex-basis: 40px; }
  body.theme-togel_z1play .cgs-head b { font-size: 15px; }
  body.theme-togel_z1play .cgs-card b { font-size: 10px; }
  body.theme-togel_z1play .cgs-more { font-size: 9.5px; padding: 8px 18px; }
}
@media (min-width: 1081px) {
  body.theme-togel_z1play .cgs-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
  body.theme-togel_z1play .cgs-card:hover .cgs-art { transform: translateY(-3px); }
}

/* =========================================================================
   BARIS LOGO PROVIDER (/?category=slot) — 10 Sep 2026.

   Menggantikan header teks "KATALOG PERMAINAN / Provider Slot / deskripsi /
   ← Beranda" atas permintaan pemilik: yang dilihat pemain sekarang langsung
   artwork provider, digeser ke samping. Markup:
   `templates/core/category_providers.html`, blok `catalog-provider-rail`.

   Kenapa `.cpr-track` dan bukan `overflow-x` langsung di `<nav>`: padding
   kanan pada elemen yang menggulir tidak terlihat di sebagian browser mobile,
   sehingga kartu terakhir menempel di tepi layar. Padding dipasang di track.
   ========================================================================= */

body.theme-togel_z1play .catalog-provider-rail {
  width: min(1200px, 100%);
  margin: 0 auto 10px;
  /* Artwork provider sudah jadi "judul" halaman, jadi tidak ada teks lain. */
  overflow: hidden;
}
body.theme-togel_z1play .cpr-track {
  display: flex;
  gap: 8px;
  padding: 10px 8px 8px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
body.theme-togel_z1play .cpr-track::-webkit-scrollbar { display: none; }

body.theme-togel_z1play .cpr-item {
  flex: 0 0 auto;
  width: 88px;
  scroll-snap-align: start;
  display: grid;
  gap: 5px;
  padding: 7px 6px 8px;
  border: 1px solid var(--tg-panel-line);
  border-radius: 13px;
  background: linear-gradient(180deg, #12242f, #0b1c26);
  box-shadow: 0 8px 18px rgba(3, 12, 18, .28);
  color: inherit;
  text-decoration: none;
  transition: border-color .16s, transform .16s;
}
body.theme-togel_z1play .cpr-item:hover,
body.theme-togel_z1play .cpr-item:focus-visible {
  border-color: rgba(47, 227, 165, .55);
  transform: translateY(-2px);
}
body.theme-togel_z1play .cpr-art {
  display: grid;
  place-items: center;
  overflow: hidden;
  aspect-ratio: 1;
  border-radius: 10px;
  background: #0f2230;
}
body.theme-togel_z1play .cpr-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Nama panjang pada gambar yang gagal muat tidak boleh tergambar sebagai
     teks alt di dalam kotak (jebakan yang sama dengan `.cgs-art`). */
  color: transparent;
  font-size: 0;
}
body.theme-togel_z1play .cpr-art i {
  color: var(--tg-panel);
  font-size: 15px;
  font-style: normal;
  font-weight: 900;
}
body.theme-togel_z1play .cpr-item b {
  /* Dua baris, bukan elipsis: dipotong satu baris "Pragmatic Play" —  merek
     terpenting di katalog — terbaca "Pragmatic Pl…". `min-height` menjaga
     kartu satu-baris tetap sejajar dengan tetangganya. */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.5em;
  color: var(--tg-panel-ink);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

@media (min-width: 700px) {
  body.theme-togel_z1play .cpr-item { width: 104px; }
  body.theme-togel_z1play .cpr-item b { font-size: 11px; }
}
