:root {
  --zetv-bg: #060a14;
  --zetv-bg-2: #0a1024;
  --zetv-surface: rgba(12, 18, 38, .82);
  --zetv-surface-2: rgba(255, 255, 255, .075);
  --zetv-surface-3: rgba(255, 255, 255, .11);
  --zetv-border: rgba(125, 159, 255, .22);
  --zetv-border-strong: rgba(27, 196, 255, .44);
  --zetv-text: #f8fbff;
  --zetv-text-soft: #dbe7ff;
  --zetv-muted: #a8b7d2;
  --zetv-muted-2: #7f8da8;
  --zetv-blue: #0ea5ff;
  --zetv-cyan: #21d4ff;
  --zetv-purple: #8b35ff;
  --zetv-pink: #b536ff;
  --zetv-shadow: 0 24px 80px rgba(0, 0, 0, .38);
  --zetv-radius: 24px;
  --zetv-gradient: linear-gradient(135deg, var(--zetv-cyan), var(--zetv-blue) 45%, var(--zetv-purple));
}

* { box-sizing: border-box; }

html {
  min-height: 100%;
  background: var(--zetv-bg);
}

body {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  color: var(--zetv-text);
  background:
    radial-gradient(circle at 12% 0%, rgba(33, 212, 255, .22), transparent 28rem),
    radial-gradient(circle at 88% 6%, rgba(139, 53, 255, .26), transparent 30rem),
    radial-gradient(circle at 50% 100%, rgba(14, 165, 255, .13), transparent 38rem),
    linear-gradient(180deg, #050815 0%, #081126 44%, #050814 100%);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  text-rendering: optimizeLegibility;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(circle at center, #000 0%, transparent 72%);
}

body::after {
  content: "";
  position: fixed;
  inset: auto -10% 0 -10%;
  height: 42vh;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(115deg, transparent 12%, rgba(14, 165, 255, .12), transparent 46%),
    linear-gradient(145deg, transparent 45%, rgba(139, 53, 255, .18), transparent 78%);
  filter: blur(1px);
}

main {
  min-height: calc(100vh - 155px);
}

img, iframe, video { max-width: 100%; }
a { color: inherit; }

.text-muted,
.small.text-muted,
.card-text.text-muted {
  color: var(--zetv-muted) !important;
}

.text-secondary { color: var(--zetv-muted) !important; }
.text-dark { color: var(--zetv-text) !important; }
.bg-dark { background-color: rgba(5, 8, 18, .96) !important; }

.zetv-navbar {
  min-height: 82px;
  background: rgba(5, 9, 21, .78);
  border-bottom: 1px solid rgba(33, 212, 255, .18);
  box-shadow: 0 14px 44px rgba(0, 0, 0, .26);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.zetv-navbar .container {
  gap: 1rem;
}

.navbar-brand,
.nav-link {
  color: var(--zetv-text) !important;
}

.zetv-brand-logo {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  padding: .35rem 0;
  text-decoration: none;
}

.zetv-brand-bandeau {
  display: block;
  width: clamp(210px, 27vw, 360px);
  height: auto;
  max-height: 64px;
  object-fit: contain;
  filter: drop-shadow(0 0 16px rgba(33, 212, 255, .16));
}

.brand-mark { display: none !important; }

.navbar-toggler {
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.07);
  border-radius: 14px;
  padding: .55rem .7rem;
  box-shadow: none !important;
}

.navbar-toggler-icon {
  width: 1.25rem;
  height: 1.25rem;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28248,251,255,.92%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-nav {
  align-items: center;
  gap: .2rem;
}

.nav-link {
  position: relative;
  opacity: .82;
  border-radius: 999px;
  padding: .58rem .88rem !important;
  font-weight: 650;
  letter-spacing: .01em;
  transition: opacity .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.nav-link:hover,
.nav-link:focus,
.nav-link.active {
  opacity: 1;
  color: #fff !important;
  background: rgba(255, 255, 255, .09);
}

.nav-link.active::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: .18rem;
  height: 2px;
  border-radius: 999px;
  background: var(--zetv-gradient);
  box-shadow: 0 0 14px rgba(33, 212, 255, .65);
}

.hero-section,
.page-header {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--zetv-border);
  background:
    radial-gradient(circle at 16% 20%, rgba(33,212,255,.14), transparent 26rem),
    radial-gradient(circle at 86% 22%, rgba(139,53,255,.18), transparent 28rem);
}

.hero-section::after,
.page-header::after,
.detail-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(110deg, transparent, rgba(255,255,255,.035), transparent 55%);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--zetv-text);
  letter-spacing: -.025em;
}

p, li, dd, dt, label, .form-label, .card-text {
  color: var(--zetv-text-soft);
}

.lead,
.detail-overview {
  color: rgba(248,251,255,.90);
}

.search-card,
.toolbar-card,
.media-card,
.empty-state,
.loading-state,
.detail-card,
.person-card,
.season-card,
.card,
.modal-content,
.dropdown-menu,
.list-group-item {
  color: var(--zetv-text);
  background: linear-gradient(180deg, rgba(255,255,255,.105), rgba(255,255,255,.058));
  border: 1px solid var(--zetv-border);
  border-radius: var(--zetv-radius);
  box-shadow: var(--zetv-shadow);
}

.card-header,
.card-footer {
  color: var(--zetv-text);
  background: rgba(255,255,255,.045);
  border-color: var(--zetv-border);
}

.search-card,
.toolbar-card {
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.dropdown-menu {
  padding: .55rem;
  border-radius: 18px;
  background: rgba(8, 13, 29, .97);
}

.dropdown-item {
  color: var(--zetv-text-soft);
  border-radius: 12px;
}

.dropdown-item:hover,
.dropdown-item:focus {
  color: #fff;
  background: rgba(33, 212, 255, .12);
}

.form-control,
.form-select,
.input-group-text,
textarea {
  background: rgba(255,255,255,.085) !important;
  border-color: rgba(255,255,255,.16) !important;
  color: var(--zetv-text) !important;
  border-radius: 16px;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text {
  border-radius: 0;
}

.input-group > :first-child { border-top-left-radius: 16px; border-bottom-left-radius: 16px; }
.input-group > :last-child { border-top-right-radius: 16px; border-bottom-right-radius: 16px; }

.form-control:focus,
.form-select:focus {
  background: rgba(255,255,255,.12) !important;
  color: var(--zetv-text) !important;
  border-color: rgba(33, 212, 255, .78) !important;
  box-shadow: 0 0 0 .25rem rgba(33, 212, 255, .16);
}

.form-control::placeholder { color: rgba(219,231,255,.55); }
.form-select option { color: #07111f; }

.btn {
  border-radius: 999px;
  font-weight: 700;
}

.btn-primary,
.btn-info {
  color: #fff;
  background: var(--zetv-gradient);
  border: 0;
  box-shadow: 0 12px 34px rgba(14, 165, 255, .22);
}

.btn-primary:hover,
.btn-info:hover {
  color: #fff;
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.btn-outline-light,
.btn-outline-secondary,
.btn-secondary {
  color: var(--zetv-text) !important;
  border-color: rgba(255,255,255,.22) !important;
  background: rgba(255,255,255,.06);
}

.btn-outline-light:hover,
.btn-outline-secondary:hover,
.btn-secondary:hover {
  color: #fff !important;
  background: rgba(255,255,255,.14) !important;
}

.badge,
.detail-pill {
  color: var(--zetv-text);
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.10);
}

.media-card {
  position: relative;
  overflow: hidden;
  height: 100%;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.media-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 0%, rgba(33,212,255,.12), transparent 42%);
  opacity: 0;
  transition: opacity .18s ease;
}

.media-card > * { position: relative; z-index: 1; }

.media-card:hover {
  transform: translateY(-5px);
  border-color: var(--zetv-border-strong);
  box-shadow: 0 26px 90px rgba(0,0,0,.42), 0 0 0 1px rgba(33,212,255,.08);
}

.media-card:hover::before { opacity: 1; }

.media-card-link,
.person-card-link,
.mini-media-card,
.genre-link,
.inline-link {
  color: inherit;
  text-decoration: none;
}

.media-card-link {
  display: block;
  height: 100%;
}

.poster-wrap {
  position: relative;
  aspect-ratio: 2 / 3;
  background: linear-gradient(145deg, rgba(14, 165, 255, .13), rgba(139, 53, 255, .13));
  overflow: hidden;
}

.poster-wrap img,
.person-card img,
.mini-media-card img,
.actor-image-grid img,
.season-card img {
  background: rgba(255,255,255,.055);
}

.poster-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .24s ease, filter .24s ease;
}

.media-card:hover .poster-wrap img {
  transform: scale(1.035);
  filter: saturate(1.08) contrast(1.03);
}

.rating {
  position: absolute;
  top: .75rem;
  right: .75rem;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .38rem .6rem;
  border-radius: 999px;
  background: rgba(4, 8, 18, .76);
  border: 1px solid rgba(255,255,255,.14);
  color: #fff;
  font-size: .8rem;
  font-weight: 800;
  backdrop-filter: blur(10px);
}

.empty-state,
.loading-state {
  padding: clamp(1.5rem, 4vw, 2.6rem);
  text-align: center;
  color: var(--zetv-muted);
}

.zetv-footer {
  color: var(--zetv-muted);
  border-top: 1px solid var(--zetv-border);
  background: rgba(5, 9, 21, .72);
  backdrop-filter: blur(12px);
}

.detail-hero {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  border-bottom: 1px solid var(--zetv-border);
}

.detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(5,8,18,.96), rgba(5,8,18,.82) 48%, rgba(5,8,18,.70)),
    radial-gradient(circle at 78% 20%, rgba(139,53,255,.24), transparent 27rem),
    radial-gradient(circle at 22% 80%, rgba(33,212,255,.18), transparent 25rem);
}

.detail-hero > .container {
  position: relative;
  z-index: 1;
}

.detail-poster,
.actor-profile-img {
  width: 100%;
  max-width: 330px;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 28px 90px rgba(0,0,0,.52);
  background: rgba(255,255,255,.06);
}

.detail-overview {
  max-width: 980px;
  font-size: 1.05rem;
  line-height: 1.75;
}

.detail-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .5rem .78rem;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 700;
}

.person-card {
  overflow: hidden;
  height: 100%;
}

.person-card img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  display: block;
}

.detail-list dt {
  color: var(--zetv-muted);
  font-size: .82rem;
  font-weight: 800;
  margin-top: .9rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.detail-list dd {
  margin-bottom: 0;
  color: var(--zetv-text-soft);
}

.mini-media-card {
  display: block;
  color: var(--zetv-text);
  transition: transform .18s ease;
}

.mini-media-card:hover {
  color: #fff;
  transform: translateY(-3px);
}

.mini-media-card img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid var(--zetv-border);
  margin-bottom: .65rem;
  box-shadow: 0 12px 36px rgba(0,0,0,.25);
}

.mini-media-card span {
  display: block;
  color: var(--zetv-text);
  font-size: .9rem;
  font-weight: 750;
  line-height: 1.25;
}

.season-card {
  padding: .85rem;
  transition: transform .18s ease, border-color .18s ease;
}

.season-card:hover {
  transform: translateY(-3px);
  border-color: var(--zetv-border-strong);
}

.season-card img {
  width: 82px;
  min-width: 82px;
  height: 123px;
  object-fit: cover;
  border-radius: 16px;
}

.provider-title {
  display: flex;
  align-items: center;
  color: var(--zetv-text);
  font-weight: 800;
  font-size: .94rem;
  margin-bottom: .75rem;
}

.provider-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: .75rem;
}

.provider-item {
  min-height: 112px;
  padding: .75rem .55rem;
  border: 1px solid var(--zetv-border);
  border-radius: 18px;
  background: rgba(255,255,255,.075);
  text-align: center;
}

.provider-item img {
  width: 46px;
  height: 46px;
  object-fit: cover;
  border-radius: 12px;
  display: block;
  margin: 0 auto .55rem;
}

.provider-item span {
  display: block;
  font-size: .78rem;
  line-height: 1.2;
  color: var(--zetv-text-soft);
}

.person-card-link {
  display: block;
  height: 100%;
  transition: transform .18s ease, border-color .18s ease;
}

.person-card-link:hover {
  color: inherit;
  transform: translateY(-3px);
}

.actor-image-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: .75rem;
}

.actor-image-grid img {
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid var(--zetv-border);
}

.actor-credit-meta {
  display: block;
  color: var(--zetv-muted);
  font-size: .78rem;
  margin-top: .25rem;
}

.external-links,
.genre-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.inline-link {
  color: #dff6ff;
  border-bottom: 1px dotted rgba(33,212,255,.55);
}

.inline-link:hover {
  color: #fff;
  border-bottom-color: var(--zetv-purple);
}

.genre-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .58rem .9rem;
  border-radius: 999px;
  border: 1px solid var(--zetv-border);
  background: rgba(255,255,255,.085);
  color: var(--zetv-text);
  font-weight: 750;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.genre-link:hover {
  color: #fff;
  transform: translateY(-2px);
  border-color: var(--zetv-border-strong);
  background: rgba(33,212,255,.12);
}

.table {
  --bs-table-color: var(--zetv-text-soft);
  --bs-table-bg: transparent;
  --bs-table-border-color: rgba(255,255,255,.12);
  color: var(--zetv-text-soft);
}

.table thead th {
  color: var(--zetv-text);
  border-bottom-color: rgba(33,212,255,.24);
}

.alert {
  color: var(--zetv-text);
  border-radius: 18px;
  border-color: rgba(255,255,255,.15);
  background: rgba(255,255,255,.08);
}

.ratio iframe,
iframe {
  border-radius: 20px;
  border: 1px solid var(--zetv-border);
  background: #000;
}

.video-error,
.error-video {
  color: #fff;
  background: rgba(255, 80, 120, .11);
  border: 1px solid rgba(255, 120, 160, .28);
  border-radius: 18px;
  padding: 1rem;
}


.video-frame-shell {
  position: relative;
  background: radial-gradient(circle at 50% 0%, rgba(33, 212, 255, .18), transparent 38%), #02040b;
}

.video-frame-shell iframe {
  opacity: 0;
  transform: scale(1.01);
  transition: opacity .35s ease, transform .35s ease;
}

.video-frame-shell.is-video-loaded iframe {
  opacity: 1;
  transform: scale(1);
}

.video-loader {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: 1.5rem;
  text-align: center;
  color: var(--zetv-text);
  background:
    radial-gradient(circle at 50% 15%, rgba(33, 212, 255, .24), transparent 34%),
    linear-gradient(135deg, rgba(8, 13, 29, .98), rgba(6, 8, 22, .96));
  border: 1px solid var(--zetv-border);
  pointer-events: none;
  transition: opacity .35s ease, visibility .35s ease;
}

.video-frame-shell.is-video-loaded .video-loader {
  opacity: 0;
  visibility: hidden;
}

.video-loader strong {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 800;
}

.video-loader small {
  max-width: 26rem;
  color: var(--zetv-muted);
}

.video-loader-spinner {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  border: 3px solid rgba(255,255,255,.16);
  border-top-color: var(--zetv-cyan);
  box-shadow: 0 0 28px rgba(33, 212, 255, .22);
  animation: zetv-video-spin .85s linear infinite;
}

@keyframes zetv-video-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 1199.98px) {
  .zetv-brand-bandeau { width: clamp(205px, 31vw, 320px); }
  .nav-link { padding-inline: .68rem !important; }
}

@media (max-width: 991.98px) {
  .zetv-navbar { min-height: 72px; }
  .navbar-collapse {
    margin-top: .85rem;
    padding: .85rem;
    border: 1px solid var(--zetv-border);
    border-radius: 22px;
    background: rgba(5, 9, 21, .95);
    box-shadow: var(--zetv-shadow);
  }
  .navbar-nav { align-items: stretch; gap: .25rem; }
  .nav-link { padding: .72rem .9rem !important; }
  .nav-link.active::after { display: none; }
  .detail-hero { text-align: left; }
}

@media (max-width: 767.98px) {
  body {
    background:
      radial-gradient(circle at 10% 0%, rgba(33,212,255,.18), transparent 20rem),
      radial-gradient(circle at 95% 5%, rgba(139,53,255,.20), transparent 22rem),
      linear-gradient(180deg, #050815 0%, #071023 100%);
  }
  .container { padding-left: 1rem; padding-right: 1rem; }
  h1, .h1 { font-size: clamp(2rem, 10vw, 3rem); }
  h2, .h2 { font-size: clamp(1.45rem, 7vw, 2rem); }
  .lead, .detail-overview { font-size: 1rem; line-height: 1.62; }
  .detail-poster,
  .actor-profile-img { max-width: 240px; }
  .provider-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .season-card img { width: 70px; min-width: 70px; height: 105px; }
}

@media (max-width: 575.98px) {
  .zetv-brand-bandeau {
    width: min(205px, 64vw);
    max-height: 46px;
  }
  .zetv-navbar .container { gap: .5rem; }
  .navbar-toggler { padding: .45rem .55rem; }
  .search-card,
  .toolbar-card,
  .detail-card,
  .card { border-radius: 20px; }
  .media-card { border-radius: 18px; }
  .poster-wrap { border-radius: 18px 18px 0 0; }
  .provider-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  .provider-item { min-height: 104px; padding: .65rem .45rem; }
  .actor-image-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 380px) {
  .zetv-brand-bandeau { width: 178px; }
  .navbar-toggler-icon { width: 1.1rem; height: 1.1rem; }
}

:root {
    --zetv-bg-900: #070817;
    --zetv-bg-850: #0b1022;
    --zetv-bg-800: #11172d;
    --zetv-text: #f8fbff;
    --zetv-muted: rgba(226, 232, 240, .78);
    --zetv-border: rgba(255, 255, 255, .12);
    --zetv-pink: #ff3fa4;
    --zetv-purple: #7c4dff;
    --zetv-blue: #24c6ff;
    --zetv-green: #36f5b8;
}

.zetvboo-body {
    background:
        radial-gradient(circle at top left, rgba(124, 77, 255, .18), transparent 32rem),
        radial-gradient(circle at top right, rgba(36, 198, 255, .14), transparent 30rem),
        var(--zetv-bg-900);
    color: var(--zetv-text);
}

.zetv-site-header {
    z-index: 1040;
    border-bottom: 1px solid var(--zetv-border);
    background: rgba(6, 8, 22, .82);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 16px 50px rgba(0, 0, 0, .26);
}

.zetv-navbar {
    min-height: 82px;
    padding: .65rem 0;
}

.zetv-navbar-container {
    gap: 1rem;
    max-width: 1480px;
    padding-left: clamp(1rem, 3vw, 2rem);
    padding-right: clamp(1rem, 3vw, 2rem);
}

.zetv-brand {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-width: 0;
    margin-right: 0;
    padding: .25rem 0;
}

.zetv-brand-glow {
    position: absolute;
    inset: 6% 3%;
    z-index: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(255, 63, 164, .34), rgba(36, 198, 255, .24), rgba(54, 245, 184, .18));
    filter: blur(22px);
    opacity: .85;
    pointer-events: none;
}

.zetv-brand-banner {
    position: relative;
    z-index: 1;
    display: block;
    width: clamp(190px, 23vw, 315px);
    max-width: 100%;
    height: auto;
    max-height: 64px;
    object-fit: contain;
    object-position: left center;
    filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .32));
}

.zetv-navbar-collapse {
    gap: 1rem;
}

.zetv-nav {
    align-items: center;
    gap: .25rem;
    padding: .2rem;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 999px;
    background: rgba(255, 255, 255, .045);
}

.zetv-nav .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 42px;
    padding: .6rem .9rem;
    border: 1px solid transparent;
    border-radius: 999px;
    color: rgba(248, 251, 255, .82);
    font-weight: 700;
    font-size: .92rem;
    line-height: 1;
    letter-spacing: -.01em;
    transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.zetv-nav .nav-link i {
    width: 1.05rem;
    text-align: center;
    color: rgba(54, 245, 184, .82);
    font-size: .92rem;
}

.zetv-nav .nav-link:hover,
.zetv-nav .nav-link:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .09);
    border-color: rgba(255, 255, 255, .12);
    transform: translateY(-1px);
}

.zetv-nav .nav-link.active {
    color: #fff;
    background: linear-gradient(135deg, rgba(255, 63, 164, .28), rgba(124, 77, 255, .28), rgba(36, 198, 255, .20));
    border-color: rgba(255, 255, 255, .18);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 12px 28px rgba(0, 0, 0, .22);
}

.zetv-header-search {
    position: relative;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: min(100%, 315px);
    min-height: 46px;
    padding: .25rem .25rem .25rem .85rem;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
}

.zetv-header-search i {
    color: rgba(54, 245, 184, .92);
    font-size: .95rem;
}

.zetv-header-search input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: #fff;
    font-weight: 600;
    font-size: .95rem;
}

.zetv-header-search input::placeholder {
    color: rgba(226, 232, 240, .62);
}

.zetv-header-search button {
    flex: 0 0 auto;
    min-width: 48px;
    min-height: 36px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--zetv-pink), var(--zetv-purple) 52%, var(--zetv-blue));
    color: #fff;
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .02em;
    box-shadow: 0 10px 22px rgba(124, 77, 255, .28);
}


.zetv-search-autocomplete {
    position: absolute;
    top: calc(100% + .65rem);
    right: 0;
    left: 0;
    z-index: 1080;
    display: none;
    width: min(440px, calc(100vw - 1.5rem));
    max-height: min(520px, calc(100vh - 130px));
    margin-left: auto;
    overflow-y: auto;
    padding: .55rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 22px;
    background: rgba(8, 12, 29, .98);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .48), 0 0 0 1px rgba(36, 198, 255, .08);
    backdrop-filter: blur(18px);
}

.zetv-search-autocomplete.is-visible {
    display: block;
}

.zetv-search-autocomplete-item {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: .72rem;
    align-items: center;
    padding: .58rem;
    border-radius: 16px;
    color: #fff;
    text-decoration: none;
}

.zetv-search-autocomplete-item:hover,
.zetv-search-autocomplete-item:focus-visible {
    color: #fff;
    background: rgba(255, 255, 255, .09);
    outline: 0;
}

.zetv-search-autocomplete-item img {
    width: 46px;
    height: 62px;
    border-radius: 12px;
    object-fit: cover;
    background: rgba(255, 255, 255, .08);
}

.zetv-search-autocomplete-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: .16rem;
}

.zetv-search-autocomplete-label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: rgba(54, 245, 184, .92);
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.zetv-search-autocomplete-label i {
    font-size: .75rem;
}

.zetv-search-autocomplete-body strong {
    overflow: hidden;
    color: #fff;
    font-size: .94rem;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zetv-search-autocomplete-body small {
    overflow: hidden;
    color: rgba(226, 232, 240, .68);
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.zetv-search-autocomplete-all,
.zetv-search-autocomplete-empty {
    display: block;
    padding: .78rem .85rem;
    border-radius: 16px;
    color: rgba(226, 232, 240, .82);
    text-decoration: none;
    font-size: .92rem;
    font-weight: 700;
}

.zetv-search-autocomplete-all {
    margin-top: .25rem;
    color: #fff;
    background: linear-gradient(135deg, rgba(255, 63, 164, .22), rgba(124, 77, 255, .20), rgba(36, 198, 255, .16));
}

.zetv-search-autocomplete-all:hover,
.zetv-search-autocomplete-all:focus-visible {
    color: #fff;
    background: linear-gradient(135deg, rgba(255, 63, 164, .30), rgba(124, 77, 255, .28), rgba(36, 198, 255, .22));
    outline: 0;
}

.zetv-toggler {
    width: 46px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 14px;
    background: rgba(255, 255, 255, .07);
    box-shadow: none;
}

.zetv-toggler:focus {
    box-shadow: 0 0 0 .18rem rgba(36, 198, 255, .22);
}

.zetv-toggler-line {
    display: block;
    width: 20px;
    height: 2px;
    margin: 4px auto;
    border-radius: 999px;
    background: #fff;
}

.zetv-main-content {
    min-height: calc(100vh - 82px);
}


.video-frame-shell {
  position: relative;
  background: radial-gradient(circle at 50% 0%, rgba(33, 212, 255, .18), transparent 38%), #02040b;
}

.video-frame-shell iframe {
  opacity: 0;
  transform: scale(1.01);
  transition: opacity .35s ease, transform .35s ease;
}

.video-frame-shell.is-video-loaded iframe {
  opacity: 1;
  transform: scale(1);
}

.video-loader {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: 1.5rem;
  text-align: center;
  color: var(--zetv-text);
  background:
    radial-gradient(circle at 50% 15%, rgba(33, 212, 255, .24), transparent 34%),
    linear-gradient(135deg, rgba(8, 13, 29, .98), rgba(6, 8, 22, .96));
  border: 1px solid var(--zetv-border);
  pointer-events: none;
  transition: opacity .35s ease, visibility .35s ease;
}

.video-frame-shell.is-video-loaded .video-loader {
  opacity: 0;
  visibility: hidden;
}

.video-loader strong {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 800;
}

.video-loader small {
  max-width: 26rem;
  color: var(--zetv-muted);
}

.video-loader-spinner {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  border: 3px solid rgba(255,255,255,.16);
  border-top-color: var(--zetv-cyan);
  box-shadow: 0 0 28px rgba(33, 212, 255, .22);
  animation: zetv-video-spin .85s linear infinite;
}

@keyframes zetv-video-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 1199.98px) {
    .zetv-nav .nav-link {
        padding-left: .72rem;
        padding-right: .72rem;
        font-size: .86rem;
    }

    .zetv-nav .nav-link i {
        display: none;
    }

    .zetv-header-search {
        width: min(100%, 270px);
    }
}

@media (max-width: 991.98px) {
    .zetv-site-header {
        background: rgba(6, 8, 22, .94);
    }

    .zetv-navbar {
        min-height: 70px;
        padding: .45rem 0;
    }

    .zetv-brand-banner {
        width: min(62vw, 250px);
        max-height: 54px;
    }

    .zetv-navbar-collapse {
        margin-top: .7rem;
        padding: .85rem;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 24px;
        background:
            linear-gradient(135deg, rgba(255, 63, 164, .10), rgba(36, 198, 255, .08)),
            rgba(10, 14, 31, .98);
        box-shadow: 0 22px 55px rgba(0, 0, 0, .35);
    }

    .zetv-nav {
        align-items: stretch;
        gap: .45rem;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .zetv-nav .nav-link {
        justify-content: flex-start;
        width: 100%;
        min-height: 48px;
        padding: .85rem 1rem;
        border-radius: 16px;
        background: rgba(255, 255, 255, .055);
        font-size: .98rem;
    }

    .zetv-nav .nav-link i {
        display: inline-block;
    }

    .zetv-header-search {
        width: 100%;
        min-height: 50px;
        margin-top: .4rem;
        padding-left: 1rem;
        border-radius: 18px;
    }

    .zetv-header-search button {
        min-width: 58px;
        min-height: 40px;
    }

    .zetv-main-content {
        min-height: calc(100vh - 70px);
    }
}

@media (max-width: 575.98px) {
    .zetv-navbar-container {
        padding-left: .85rem;
        padding-right: .85rem;
    }

    .zetv-brand-banner {
        width: min(66vw, 210px);
        max-height: 46px;
    }

    .zetv-toggler {
        width: 42px;
        height: 40px;
        border-radius: 13px;
    }

    .zetv-navbar-collapse {
        border-radius: 20px;
        padding: .75rem;
    }

    .zetv-nav .nav-link {
        min-height: 46px;
        padding: .78rem .9rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .zetv-nav .nav-link,
    .zetv-header-search button {
        transition: none;
    }
}
/* Accueil Zetv.boo moderne - à coller à la fin de assets/css/style.css */
.zetv-home-container{width:min(100%,1440px);margin:0 auto;padding-left:clamp(1rem,3vw,2.5rem);padding-right:clamp(1rem,3vw,2.5rem)}
.zetv-home-hero{position:relative;overflow:hidden;min-height:620px;display:flex;align-items:center;background:radial-gradient(circle at 15% 10%,rgba(82,98,255,.34),transparent 34%),radial-gradient(circle at 85% 20%,rgba(255,42,156,.24),transparent 31%),#070816;color:#fff}.zetv-home-hero:before{content:"";position:absolute;inset:0;background-image:var(--zetv-hero-bg);background-size:cover;background-position:center;opacity:.22;filter:blur(1px) saturate(1.1);transform:scale(1.03)}.zetv-home-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,8,22,.96),rgba(7,8,22,.76) 48%,rgba(7,8,22,.92))}.zetv-home-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,420px);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(3rem,7vw,6rem) 0}.zetv-home-hero-content h1{max-width:850px;margin:.9rem 0 1rem;font-size:clamp(2.2rem,5vw,5.2rem);line-height:.96;font-weight:900;letter-spacing:-.06em}.zetv-home-hero-content p{max-width:720px;margin:0 0 1.5rem;color:rgba(255,255,255,.78);font-size:clamp(1rem,1.6vw,1.22rem);line-height:1.7}.zetv-home-eyebrow{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem .85rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);backdrop-filter:blur(12px);font-weight:800;color:#fff}.zetv-home-eyebrow i{color:#66f6c7}.zetv-home-search{display:flex;align-items:center;gap:.85rem;max-width:760px;margin:1.7rem 0;padding:.55rem;border:1px solid rgba(255,255,255,.16);border-radius:1.35rem;background:rgba(255,255,255,.1);box-shadow:0 20px 55px rgba(0,0,0,.28);backdrop-filter:blur(18px)}.zetv-home-search i{margin-left:.8rem;color:#66f6c7}.zetv-home-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#fff;font-size:1rem}.zetv-home-search input::placeholder{color:rgba(255,255,255,.55)}.zetv-home-search button,.zetv-home-btn{border:0;border-radius:1rem;padding:.85rem 1.1rem;font-weight:900;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;white-space:nowrap}.zetv-home-search button,.zetv-home-btn-primary{background:linear-gradient(135deg,#35e9bc,#5d7cff 55%,#ff3da6);color:#fff;box-shadow:0 15px 35px rgba(80,115,255,.34)}.zetv-home-btn-secondary{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff}.zetv-home-actions{display:flex;flex-wrap:wrap;gap:.8rem}.zetv-home-feature{border:1px solid rgba(255,255,255,.16);border-radius:2rem;background:rgba(255,255,255,.08);box-shadow:0 25px 70px rgba(0,0,0,.38);overflow:hidden;backdrop-filter:blur(18px)}.zetv-home-feature img{width:100%;aspect-ratio:2/2.55;object-fit:cover;display:block}.zetv-home-feature-body{padding:1.25rem}.zetv-home-feature-body span{display:block;margin-bottom:.35rem;color:#66f6c7;font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.zetv-home-feature-body h2{margin:0 0 .55rem;font-weight:900;font-size:1.35rem}.zetv-home-feature-body p{margin:0 0 .85rem;color:rgba(255,255,255,.72);line-height:1.55}.zetv-home-feature-body a{color:#fff;font-weight:900;text-decoration:none}.zetv-home-section{padding:clamp(2.2rem,5vw,4.5rem) 0;background:#080918;color:#fff}.zetv-home-tight{padding-top:3rem}.zetv-home-alt{background:linear-gradient(180deg,#0b0d21,#070816)}.zetv-home-last{padding-bottom:5rem}.zetv-home-section-title{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}.zetv-home-section-title span{display:block;color:#66f6c7;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.zetv-home-section-title h2{margin:.2rem 0 0;font-size:clamp(1.55rem,3vw,2.45rem);font-weight:900;letter-spacing:-.04em}.zetv-home-section-title a{color:#fff;text-decoration:none;font-weight:900;opacity:.88}.zetv-home-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}.zetv-home-grid-small{grid-template-columns:repeat(4,minmax(0,1fr))}.zetv-home-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(165px,1fr);gap:1rem;overflow-x:auto;padding-bottom:.65rem;scroll-snap-type:x proximity}.zetv-home-card{min-width:0;border:1px solid rgba(255,255,255,.1);border-radius:1.25rem;background:rgba(255,255,255,.055);overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.2);transition:transform .18s ease,border-color .18s ease,background .18s ease}.zetv-home-card:hover{transform:translateY(-4px);border-color:rgba(102,246,199,.34);background:rgba(255,255,255,.08)}.zetv-home-card-poster{position:relative;display:block;background:#11152b}.zetv-home-card-poster img{width:100%;aspect-ratio:2/3;display:block;object-fit:cover}.zetv-home-rating{position:absolute;top:.65rem;right:.65rem;display:inline-flex;align-items:center;gap:.3rem;padding:.38rem .52rem;border-radius:999px;background:rgba(0,0,0,.72);color:#fff;font-size:.8rem;font-weight:900;backdrop-filter:blur(8px)}.zetv-home-rating i{color:#ffd35a}.zetv-home-card-body{padding:.85rem}.zetv-home-card-body h3{font-size:.98rem;line-height:1.2;margin:0 0 .35rem;font-weight:900}.zetv-home-card-body h3 a{color:#fff;text-decoration:none}.zetv-home-card-body p{margin:0;color:rgba(255,255,255,.62);font-size:.88rem}.zetv-home-genre-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}.zetv-home-genre{display:flex;align-items:center;gap:.75rem;min-height:82px;padding:1rem;border-radius:1.25rem;border:1px solid rgba(255,255,255,.11);background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035));color:#fff;text-decoration:none;font-weight:900}.zetv-home-genre i{color:#66f6c7}.zetv-home-empty{padding:1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:1.25rem;background:rgba(255,255,255,.06);color:rgba(255,255,255,.75)}
@media (max-width:1199.98px){.zetv-home-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.zetv-home-genre-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.zetv-home-hero-grid{grid-template-columns:1fr}.zetv-home-feature{display:grid;grid-template-columns:160px 1fr;max-width:680px}.zetv-home-feature img{height:100%;aspect-ratio:auto}}
@media (max-width:767.98px){.zetv-home-hero{min-height:auto}.zetv-home-hero-grid{padding:2.4rem 0 2.8rem}.zetv-home-hero-content h1{font-size:2.35rem}.zetv-home-search{align-items:stretch;flex-wrap:wrap;border-radius:1.1rem}.zetv-home-search input{flex-basis:calc(100% - 48px);height:42px}.zetv-home-search button{width:100%}.zetv-home-actions{display:grid;grid-template-columns:1fr}.zetv-home-feature{grid-template-columns:96px 1fr;border-radius:1.25rem}.zetv-home-feature-body{padding:.9rem}.zetv-home-feature-body p{display:none}.zetv-home-grid,.zetv-home-grid-small{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.zetv-home-genre-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.zetv-home-section-title{align-items:start}.zetv-home-section-title a{font-size:.9rem}.zetv-home-card-body{padding:.7rem}.zetv-home-card-body h3{font-size:.9rem}}
@media (max-width:420px){.zetv-home-grid,.zetv-home-grid-small{grid-template-columns:repeat(2,minmax(0,1fr))}.zetv-home-genre-grid{grid-template-columns:1fr}.zetv-home-feature{display:none}}

/* Accueil Zetv.boo v3 - slides, filtres et catégories */
.zetv-home-hero-slider .zetv-home-hero-grid{grid-template-columns:minmax(0,1fr) minmax(260px,390px)}
.zetv-home-filter-nav{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.zetv-home-filter-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.62rem .9rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;text-decoration:none;font-weight:900;font-size:.92rem;backdrop-filter:blur(12px)}
.zetv-home-filter-nav a:hover,.zetv-home-filter-nav a.is-active{border-color:rgba(102,246,199,.55);background:linear-gradient(135deg,rgba(53,233,188,.24),rgba(93,124,255,.18));color:#fff}
.zetv-home-main-carousel{position:relative;border:1px solid rgba(255,255,255,.16);border-radius:2rem;background:rgba(255,255,255,.08);box-shadow:0 25px 70px rgba(0,0,0,.38);overflow:hidden;backdrop-filter:blur(18px)}
.zetv-home-main-carousel .carousel,.zetv-home-main-carousel .carousel-inner,.zetv-home-main-carousel .carousel-item{height:100%}
.zetv-home-main-carousel a{position:relative;display:block;color:#fff;text-decoration:none}
.zetv-home-main-carousel img{width:100%;aspect-ratio:2/3;object-fit:cover;display:block;background:#11152b}
.zetv-home-main-carousel a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:44%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.86))}
.zetv-home-main-carousel span{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;display:block;font-weight:950;font-size:1.15rem;line-height:1.16;text-shadow:0 4px 18px rgba(0,0,0,.55)}
.zetv-home-main-carousel .carousel-control-prev,.zetv-home-main-carousel .carousel-control-next{width:18%;opacity:.9}
.zetv-home-poster-slider{grid-auto-columns:minmax(150px,185px);scrollbar-width:thin;scrollbar-color:rgba(102,246,199,.45) rgba(255,255,255,.08)}
.zetv-home-poster-slider::-webkit-scrollbar{height:10px}.zetv-home-poster-slider::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:999px}.zetv-home-poster-slider::-webkit-scrollbar-thumb{background:rgba(102,246,199,.45);border-radius:999px}
.zetv-home-poster-slider .zetv-home-card{scroll-snap-align:start}
.zetv-home-section:nth-of-type(odd){background:#080918}.zetv-home-section:nth-of-type(even){background:linear-gradient(180deg,#0b0d21,#070816)}
@media (max-width:1199.98px){.zetv-home-hero-slider .zetv-home-hero-grid{grid-template-columns:1fr}.zetv-home-main-carousel{max-width:360px}.zetv-home-poster-slider{grid-auto-columns:minmax(145px,175px)}}
@media (max-width:767.98px){.zetv-home-main-carousel{max-width:none;border-radius:1.3rem}.zetv-home-main-carousel img{aspect-ratio:16/10}.zetv-home-poster-slider{grid-auto-columns:minmax(132px,42vw);gap:.8rem}.zetv-home-filter-nav{overflow-x:auto;flex-wrap:nowrap;padding-bottom:.35rem}.zetv-home-filter-nav a{white-space:nowrap}}



/* Pagination Zetv.boo */
.zetv-pagination{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;margin:1rem 0 0}
.zetv-page-link,.zetv-page-dots{min-width:42px;height:42px;padding:0 .85rem;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(255,255,255,.07);color:#fff;text-decoration:none;font-weight:900;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:transform .16s ease,border-color .16s ease,background .16s ease}
.zetv-page-link:hover{transform:translateY(-2px);border-color:rgba(102,246,199,.42);background:rgba(102,246,199,.14);color:#fff}
.zetv-page-link.is-active{border-color:rgba(102,246,199,.72);background:linear-gradient(135deg,rgba(53,233,188,.35),rgba(93,124,255,.24));color:#fff;box-shadow:0 14px 34px rgba(53,233,188,.14)}
.zetv-page-link.is-disabled{opacity:.38;pointer-events:none;cursor:not-allowed}
.zetv-page-dots{border-color:transparent;background:transparent;color:rgba(255,255,255,.55);min-width:28px;padding:0 .2rem}
.zetv-page-link[type="button"]{cursor:pointer}
@media (max-width:575.98px){.zetv-pagination{gap:.35rem}.zetv-page-link,.zetv-page-dots{min-width:36px;height:36px;padding:0 .65rem;font-size:.9rem}}

/* Chaînes IPTV-org */
.channel-logo-wrap,
.channel-detail-logo,
.channel-logo-mini,
.channel-info-box {
  border: 1px solid var(--zetv-border);
  background: rgba(255,255,255,.06);
  border-radius: 22px;
}

.channel-logo-wrap {
  display: grid;
  place-items: center;
  min-height: 132px;
  padding: 1.25rem;
}

.channel-logo-wrap img {
  max-width: 100%;
  max-height: 92px;
  object-fit: contain;
  filter: drop-shadow(0 10px 22px rgba(0,0,0,.28));
}

.channel-logo-wrap i {
  font-size: 2.5rem;
  color: var(--zetv-cyan);
}

.channel-detail-logo {
  display: grid;
  place-items: center;
  min-height: 220px;
  padding: 2rem;
  box-shadow: var(--zetv-shadow);
}

.channel-detail-logo img {
  max-width: 100%;
  max-height: 160px;
  object-fit: contain;
}

.channel-detail-logo i {
  font-size: 4rem;
  color: var(--zetv-cyan);
}

.channel-info-box {
  padding: 1rem;
}

.channel-logo-mini {
  display: grid;
  gap: .65rem;
  place-items: center;
  min-height: 132px;
  padding: .85rem;
  color: inherit;
  text-align: center;
  text-decoration: none;
}

.channel-logo-mini:hover {
  color: #fff;
  border-color: var(--zetv-border-strong);
}

.channel-logo-mini img {
  max-width: 100%;
  max-height: 76px;
  object-fit: contain;
}

.channel-logo-mini span {
  color: var(--zetv-muted);
  font-size: .78rem;
}

.zetv-table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--zetv-text-soft);
  --bs-table-border-color: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.12);
}

.zetv-channel-result-card {
  min-height: 100%;
}

.zetv-channel-result-logo {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 16 / 10;
  padding: 1rem;
  margin-bottom: .8rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 1rem;
  background: rgba(255,255,255,.055);
}

.zetv-channel-result-logo img {
  max-width: 100%;
  max-height: 86px;
  object-fit: contain;
}

.zetv-channel-result-logo i {
  color: var(--zetv-cyan);
  font-size: 2rem;
}

/* Lecteur chaînes IPTV-org */
.zetv-player-modal .modal-content {
  background: rgba(7, 10, 24, .98);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 28px 80px rgba(0, 0, 0, .55);
}
.zetv-player-modal .modal-header {
  border-bottom: 1px solid rgba(255, 255, 255, .10);
  color: #fff;
  background: linear-gradient(135deg, rgba(30, 64, 175, .45), rgba(20, 184, 166, .20));
}
.zetv-stream-frame {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 420px;
  border: 0;
  background: #030712;
}
.zetv-player-body {
  margin: 0;
  min-height: 100vh;
  color: #f8fafc;
  background: #030712;
  overflow: hidden;
}
.zetv-player-shell {
  position: relative;
  width: 100vw;
  min-height: 100vh;
  background: radial-gradient(circle at top left, rgba(37, 99, 235, .22), transparent 34%), #030712;
}
.zetv-player-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .75rem 1rem;
  background: rgba(3, 7, 18, .92);
  border-bottom: 1px solid rgba(255, 255, 255, .10);
}
.zetv-player-topbar strong {
  display: block;
  line-height: 1.15;
}
.zetv-player-topbar span {
  display: inline-block;
  margin-top: .2rem;
  color: #94a3b8;
  font-size: .78rem;
  letter-spacing: .08em;
}
.zetv-player-topbar a {
  color: #bfdbfe;
  text-decoration: none;
  white-space: nowrap;
}
.zetv-html5-player,
.zetv-embedded-player {
  display: block;
  width: 100%;
  height: calc(100vh - 58px);
  border: 0;
  background: #000;
}
.zetv-html5-player {
  object-fit: contain;
}
.zetv-player-message {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: 2rem;
  text-align: center;
  color: #e5e7eb;
  background: radial-gradient(circle at center, rgba(37, 99, 235, .18), transparent 38%), #030712;
}
.zetv-player-message i {
  font-size: 2.4rem;
  color: #38bdf8;
  margin-bottom: .5rem;
}
.zetv-player-notice {
  position: absolute;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  padding: .9rem 1rem;
  color: #f8fafc;
  background: rgba(15, 23, 42, .92);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px;
}
@media (max-width: 767.98px) {
  .zetv-stream-frame {
    min-height: 260px;
  }
  .zetv-player-topbar {
    align-items: flex-start;
    flex-direction: column;
  }
  .zetv-html5-player,
  .zetv-embedded-player {
    height: calc(100vh - 92px);
  }
}


.zetv-home-how{background:linear-gradient(180deg,#070816,#0b0d21);padding-top:clamp(2rem,4vw,3.5rem)}
.zetv-home-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.zetv-home-step{position:relative;min-height:210px;padding:1.35rem;border:1px solid rgba(255,255,255,.12);border-radius:1.5rem;background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.035));box-shadow:0 18px 48px rgba(0,0,0,.24);color:#fff}
.zetv-home-step>span{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#35e9bc,#5d7cff 55%,#ff3da6);font-weight:900;color:#fff;box-shadow:0 12px 28px rgba(80,115,255,.26)}
.zetv-home-step>i{position:absolute;right:1.2rem;top:1.2rem;color:#66f6c7;font-size:1.35rem}
.zetv-home-step h3{margin:1.1rem 0 .55rem;font-weight:900;font-size:1.2rem;letter-spacing:-.02em}
.zetv-home-step p{margin:0;color:rgba(255,255,255,.74);line-height:1.6}
@media (max-width:767.98px){.zetv-home-steps{grid-template-columns:1fr}.zetv-home-step{min-height:auto}}


.zetv-home-faq-short{background:linear-gradient(180deg,#0b0d21,#070816)}
.zetv-home-faq-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.zetv-home-faq-grid article{min-height:170px;padding:1.25rem;border:1px solid rgba(255,255,255,.12);border-radius:1.35rem;background:linear-gradient(135deg,rgba(255,255,255,.085),rgba(255,255,255,.035));box-shadow:0 18px 44px rgba(0,0,0,.22)}
.zetv-home-faq-grid h3{margin:0 0 .6rem;font-size:1rem;font-weight:900;letter-spacing:-.02em;color:#fff}
.zetv-home-faq-grid p{margin:0;color:rgba(255,255,255,.72);line-height:1.55;font-size:.93rem}
.zetv-faq-page .accordion-item,.zetv-auth-faq .accordion-item{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.055);color:var(--zetv-text)}
.zetv-faq-page .accordion-button,.zetv-auth-faq .accordion-button{background:rgba(255,255,255,.05);color:var(--zetv-text);font-weight:800;box-shadow:none}
.zetv-faq-page .accordion-button:not(.collapsed),.zetv-auth-faq .accordion-button:not(.collapsed){background:rgba(33,212,255,.12);color:#fff}
.zetv-faq-page .accordion-body,.zetv-auth-faq .accordion-body{color:var(--zetv-text-soft);line-height:1.7}
.zetv-faq-page .list-group-item{background:transparent;border-color:rgba(255,255,255,.1);color:var(--zetv-text-soft)}
.zetv-faq-page .list-group-item:hover{color:#fff}
.zetv-faq-final-cta p{color:var(--zetv-text-soft)}
.zetv-auth-faq .accordion-item{border-left:0;border-right:0;border-radius:0!important}
.zetv-auth-faq .accordion-button{padding-left:0;padding-right:0;font-size:.95rem;background:transparent}
.zetv-auth-faq .accordion-body{padding-left:0;padding-right:0}
@media (max-width:1199.98px){.zetv-home-faq-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767.98px){.zetv-home-faq-grid{grid-template-columns:1fr}.zetv-home-faq-grid article{min-height:auto}.zetv-faq-page .sticky-lg-top{position:static!important}}

/* Correctifs lisibilité + responsive formulaires Zetv.boo */
:root {
  --zetv-readable: #f8fbff;
  --zetv-readable-soft: rgba(232, 241, 255, .88);
  --zetv-readable-muted: rgba(211, 224, 246, .78);
  --zetv-success: #36f5b8;
  --zetv-danger: #ff6b9d;
  --zetv-warning: #ffd35a;
}

/* Neutralise les textes Bootstrap trop sombres sur fond dark/glassmorphism */
.text-body,
.text-body-secondary,
.text-body-tertiary,
.text-black,
.text-black-50,
.text-muted,
.text-secondary,
.card,
.card-body,
.card-title,
.card-subtitle,
.card-text,
.modal-title,
.modal-body,
.offcanvas,
.offcanvas-title,
.offcanvas-body,
.list-group,
.list-group-item,
.accordion,
.accordion-item,
.form-text,
.help-block,
figcaption,
caption {
  color: var(--zetv-readable-soft) !important;
}

.card-title,
.modal-title,
.offcanvas-title,
.accordion-button,
.fw-semibold,
.fw-bold,
strong,
b {
  color: var(--zetv-readable) !important;
}

small,
.small,
.text-muted small,
.card-subtitle,
.form-text {
  color: var(--zetv-readable-muted) !important;
}

/* Messages de validation Bootstrap visibles sur fond sombre */
.invalid-feedback,
.invalid-tooltip,
.text-danger {
  color: #ff8ab3 !important;
}

.valid-feedback,
.valid-tooltip,
.text-success {
  color: #79ffd4 !important;
}

.text-warning {
  color: var(--zetv-warning) !important;
}

/* Liens dans cartes, alertes et formulaires */
.card a:not(.btn),
.alert a:not(.btn),
.form-check-label a,
.zetv-auth-faq a:not(.btn),
.zetv-faq-page a:not(.btn) {
  color: #dff6ff;
  font-weight: 800;
  text-decoration-color: rgba(33, 212, 255, .55);
  text-underline-offset: .18em;
}

.card a:not(.btn):hover,
.alert a:not(.btn):hover,
.form-check-label a:hover,
.zetv-auth-faq a:not(.btn):hover,
.zetv-faq-page a:not(.btn):hover {
  color: #fff;
  text-decoration-color: rgba(54, 245, 184, .9);
}

/* Cases à cocher/radio Bootstrap plus lisibles */
.form-check-label {
  color: var(--zetv-readable-soft) !important;
}

.form-check-input {
  background-color: rgba(255, 255, 255, .12);
  border-color: rgba(255, 255, 255, .34);
}

.form-check-input:checked {
  background-color: var(--zetv-blue);
  border-color: var(--zetv-blue);
}

.form-check-input:focus {
  border-color: rgba(33, 212, 255, .78);
  box-shadow: 0 0 0 .22rem rgba(33, 212, 255, .18);
}

/* Bloc règles mot de passe */
.zetv-password-rules {
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 18px;
  color: var(--zetv-readable-soft);
  background:
    radial-gradient(circle at 10% 0%, rgba(54, 245, 184, .10), transparent 40%),
    linear-gradient(135deg, rgba(255, 255, 255, .095), rgba(255, 255, 255, .045));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 12px 34px rgba(0, 0, 0, .18);
}

.zetv-password-rules .fw-semibold {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin-bottom: .8rem !important;
  color: #fff !important;
  font-size: .94rem;
  line-height: 1.35;
}

.zetv-password-rules .fw-semibold::before {
  content: "\f023";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--zetv-success);
  font-size: .9rem;
}

.zetv-password-rules .row {
  --bs-gutter-x: .6rem;
  --bs-gutter-y: .6rem;
}

.zetv-rule {
  display: flex;
  align-items: center;
  gap: .45rem;
  width: 100%;
  min-height: 38px;
  padding: .55rem .7rem;
  border: 1px solid rgba(255, 255, 255, .115);
  border-radius: 14px;
  color: var(--zetv-readable-soft);
  background: rgba(255, 255, 255, .06);
  line-height: 1.25;
  font-weight: 700;
}

.zetv-rule i {
  flex: 0 0 auto;
  color: rgba(211, 224, 246, .74);
  font-size: .86rem;
}

.zetv-rule.is-valid,
.zetv-rule.valid,
.zetv-rule[data-valid="1"],
.zetv-rule[data-state="valid"] {
  color: #eafff8;
  border-color: rgba(54, 245, 184, .36);
  background: rgba(54, 245, 184, .115);
}

.zetv-rule.is-valid i,
.zetv-rule.valid i,
.zetv-rule[data-valid="1"] i,
.zetv-rule[data-state="valid"] i {
  color: var(--zetv-success);
}

.zetv-rule.is-invalid,
.zetv-rule.invalid,
.zetv-rule[data-valid="0"],
.zetv-rule[data-state="invalid"] {
  color: #ffe9f1;
  border-color: rgba(255, 107, 157, .30);
  background: rgba(255, 107, 157, .09);
}

.zetv-rule.is-invalid i,
.zetv-rule.invalid i,
.zetv-rule[data-valid="0"] i,
.zetv-rule[data-state="invalid"] i {
  color: var(--zetv-danger);
}

/* Accordéons Bootstrap : texte et icône visibles */
.accordion-button::after {
  filter: invert(1) grayscale(1) brightness(1.8);
  opacity: .9;
}

.accordion-button:focus {
  border-color: rgba(33, 212, 255, .46);
  box-shadow: 0 0 0 .22rem rgba(33, 212, 255, .14);
}

/* Boutons de fermeture Bootstrap sur modales/offcanvas sombres */
.btn-close {
  filter: invert(1) grayscale(1) brightness(1.9);
  opacity: .86;
}

.btn-close:hover,
.btn-close:focus {
  opacity: 1;
}

/* Tables, pagination et textes faibles */
.table td,
.table small,
.zetv-table td,
.zetv-table small,
.zetv-pagination,
.zetv-page-dots {
  color: var(--zetv-readable-soft) !important;
}

/* Responsive général des cartes/formulaires */
@media (max-width: 575.98px) {
  .zetv-password-rules {
    padding: .85rem;
    border-radius: 16px;
  }

  .zetv-password-rules .fw-semibold {
    align-items: flex-start;
    font-size: .9rem;
  }

  .zetv-rule {
    min-height: 36px;
    padding: .55rem .65rem;
    border-radius: 13px;
    font-size: .88rem;
  }

  .card-body,
  .modal-body,
  .accordion-body,
  .alert {
    overflow-wrap: anywhere;
  }

  .btn,
  .form-control,
  .form-select {
    min-height: 44px;
  }
}

/* Player Zetv pour les vidéos YouTube */
.zetv-youtube-player {
  position: relative;
  background: linear-gradient(135deg, rgba(8, 13, 29, .98), rgba(3, 6, 18, .98));
  border: 1px solid rgba(33, 212, 255, .26);
  box-shadow: 0 24px 70px rgba(0, 0, 0, .42);
}

.zetv-youtube-brandbar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  min-height: 58px;
  padding: .72rem 1rem;
  color: rgba(248, 251, 255, .82);
  background:
    radial-gradient(circle at 0% 0%, rgba(33, 212, 255, .20), transparent 34%),
    linear-gradient(135deg, rgba(5, 9, 21, .96), rgba(8, 13, 29, .94));
  border-bottom: 1px solid rgba(255, 255, 255, .10);
}

.zetv-youtube-brandbar img {
  display: block;
  width: clamp(150px, 24vw, 260px);
  max-height: 36px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(33, 212, 255, .18));
}

.zetv-youtube-brandbar span {
  color: var(--zetv-muted);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}

.zetv-youtube-viewport {
  border-radius: 0 !important;
}

.zetv-youtube-viewport iframe {
  border: 0;
  border-radius: 0;
}

.zetv-youtube-watermark {
  position: absolute;
  right: clamp(.75rem, 2vw, 1.25rem);
  bottom: clamp(.75rem, 2vw, 1.25rem);
  z-index: 4;
  width: clamp(130px, 20vw, 260px);
  opacity: .36;
  pointer-events: none;
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .45));
}

.zetv-youtube-watermark img,
.zetv-video-loader-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.zetv-video-loader-logo {
  max-width: clamp(170px, 28vw, 320px);
  margin-bottom: .15rem;
  opacity: .92;
  filter: drop-shadow(0 0 18px rgba(33, 212, 255, .18));
}

@media (max-width: 575.98px) {
  .zetv-youtube-brandbar {
    align-items: flex-start;
    flex-direction: column;
    gap: .45rem;
  }

  .zetv-youtube-brandbar span {
    white-space: normal;
  }

  .zetv-youtube-watermark {
    width: 118px;
    opacity: .30;
  }
}
