/*
Theme Name: Tokenized.Video NetRumble
Theme URI: https://tokenized.video/
Author: Immutifi
Author URI: https://wota.network/
Description: A Netflix-inspired, Rumble-simple WordPress theme for video-first sites. Includes a Premiere/Event calendar (online + in-person).
Version: 1.2.5
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tokenized-video-netrumble
Tags: dark, entertainment, one-column, two-columns, custom-logo, featured-images, block-styles
*/

:root{
  --tv-red:#e50914;
  --tv-bg:#0b0c10;
  --tv-panel:#0f1117;
  --tv-panel2:#121523;
  --tv-text:#e9ecf1;
  --tv-muted:#a9b0be;
  --tv-border: rgba(255,255,255,.08);
  --tv-accent:#f6c445;
  --tv-accent2:#f6c445;
  --tv-radius:16px;
  --tv-shadow: 0 10px 30px rgba(0,0,0,.35);
  --tv-max: 1180px;
  --tv-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--tv-font);
  background: radial-gradient(1200px 700px at 20% -10%, rgba(229,9,20,.22), transparent 60%),
              radial-gradient(1100px 600px at 80% 0%, rgba(246,196,69,.10), transparent 55%),
              var(--tv-bg);
  color:var(--tv-text);
  line-height:1.45;
}
a{color:inherit; text-decoration:none}
a:hover{opacity:.95}
img{max-width:100%; height:auto; display:block}

.container{max-width:var(--tv-max); margin:0 auto; padding:0 18px}
.skip-link{position:absolute; left:-9999px}
.skip-link:focus{left:18px; top:18px; padding:10px 12px; background:var(--tv-panel); border:1px solid var(--tv-border); border-radius:10px; z-index:9999}

.tv-header{
  position:sticky; top:0; z-index:50;
  background: rgba(11,12,16,.7);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--tv-border);
}
.tv-header-inner{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:6px 0;
}
.tv-brand{display:flex; align-items:center; gap:10px; min-width:auto}
.tv-brand .site-title{font-weight:800; letter-spacing:.2px}
.tv-nav{display:flex; align-items:center; gap:10px; flex:1; min-width:0}
.tv-nav a{
  padding:8px 10px; border-radius:999px; color:var(--tv-muted);
  transition: all .15s ease;
}
.tv-nav a:hover{background:rgba(255,255,255,.06); color:var(--tv-text)}
.tv-nav .current-menu-item > a,
.tv-nav .current_page_item > a{color:var(--tv-text); background:rgba(255,255,255,.08)}

.tv-actions{display:flex; align-items:center; gap:10px}
.tv-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--tv-border);
  background:rgba(255,255,255,.06);
  color:var(--tv-text);
  box-shadow:none;
  cursor:pointer;
  font-weight:650;
}
.tv-btn:hover{background:rgba(255,255,255,.10)}

.tv-btn.primary:hover{filter:brightness(1.03)}
.tv-btn.ghost{background:transparent}
.tv-badge{display:inline-flex; padding:3px 8px; border-radius:999px; border:1px solid var(--tv-border); color:var(--tv-muted); font-size:12px}

.tv-search{position:relative; flex:0 0 240px; max-width:240px}
.tv-search input[type="search"]{
  width:100%;
  padding:8px 12px 8px 36px;
  border-radius:999px;
  border:1px solid var(--tv-border);
  background: rgba(255,255,255,.05);
  color:var(--tv-text);
  outline:none;
}
.tv-search input[type="search"]::placeholder{color:rgba(169,176,190,.75)}
.tv-search .icon{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  opacity:.8;
}

.tv-shell{display:grid; grid-template-columns: 260px 1fr; gap:18px; padding:20px 0 40px}
.tv-sidebar{
  position:sticky; top:62px; align-self:start;
  padding:16px;
  border:1px solid var(--tv-border);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border-radius:var(--tv-radius);
  box-shadow:var(--tv-shadow);
}
.tv-side-title{margin:0 0 10px; font-size:14px; color:var(--tv-muted); letter-spacing:.3px; text-transform:uppercase}
.tv-side-links a{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 10px; border-radius:12px; color:var(--tv-text);
}
.tv-side-links a:hover{background:rgba(255,255,255,.06)}
.tv-side-links .muted{color:var(--tv-muted); font-size:12px}

.tv-main{min-width:0}

.tv-hero{
  position:relative;
  border-radius: calc(var(--tv-radius) + 10px);
  overflow:hidden;
  border:1px solid var(--tv-border);
  box-shadow:var(--tv-shadow);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
}
.tv-hero-bg{
  position:absolute; inset:0; opacity:.35;
  background-size:cover; background-position:center;
  filter: blur(0px) saturate(1.05);
}
.tv-hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(90deg, rgba(11,12,16,.92) 0%, rgba(11,12,16,.72) 55%, rgba(11,12,16,.35) 100%);
}
.tv-hero-content{
  position:relative;
  padding:28px 22px;
  display:grid;
  grid-template-columns: 1fr;
  gap:18px;
  align-items:end;
}
.tv-hero h1{margin:0 0 8px; font-size:34px; line-height:1.1}
.tv-hero p{margin:0 0 14px; color:rgba(233,236,241,.88); max-width:60ch}
.tv-hero-actions{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.tv-hero-meta{display:flex; gap:8px; flex-wrap:wrap; align-items:center; justify-content:flex-end}
.tv-hero-meta .chip{
  padding:6px 10px; border-radius:999px; border:1px solid var(--tv-border);
  background:rgba(255,255,255,.05); color:var(--tv-muted); font-size:12px;
}

.section{margin-top:18px}
.section-head{
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  margin:0 0 10px;
}
.section-head h2{margin:0; font-size:18px}
.section-head a{color:var(--tv-muted); font-size:13px}
.section-head a:hover{color:var(--tv-text)}

.row{
  display:flex;
  gap:12px;
  overflow-x:auto;
  padding:6px 2px 12px;
  scroll-snap-type:x mandatory;
}
.row::-webkit-scrollbar{height:8px}
.row::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10); border-radius:999px}
.card{
  flex:0 0 240px;
  scroll-snap-align:start;
  border:1px solid var(--tv-border);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border-radius:16px;
  overflow:hidden;
  transition: transform .18s ease, border-color .18s ease;
}
.card:hover{transform: translateY(-3px) scale(1.01); border-color: rgba(255,255,255,.18)}
.card .thumb{aspect-ratio: 16/9; background:rgba(0,0,0,.35); overflow:hidden}
.card .thumb img{width:100%; height:100%; object-fit:cover}
.card .body{padding:12px}
.card .title{margin:0 0 6px; font-size:14px; font-weight:750}
.card .meta{margin:0; color:var(--tv-muted); font-size:12px; display:flex; gap:8px; flex-wrap:wrap}
.card .meta span{display:inline-flex; align-items:center; gap:6px}

.grid{
  display:grid;
  gap:14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid .card{flex:unset}

.tv-post{
  border:1px solid var(--tv-border);
  background: rgba(255,255,255,.04);
  border-radius: var(--tv-radius);
  padding:18px;
}
.tv-post h1{margin:0 0 8px; font-size:28px}
.tv-post .tv-post-meta{color:var(--tv-muted); font-size:13px; margin:0 0 12px}
.tv-post .tv-post-thumb{border-radius:18px; overflow:hidden; border:1px solid var(--tv-border); margin:12px 0 16px}

.tv-footer{
  border-top:1px solid var(--tv-border);
  padding:28px 0 40px;
  color:var(--tv-muted);
}
.tv-footer a{color:var(--tv-text)}
.footer-grid{
  display:grid; gap:16px;
  grid-template-columns: 1.2fr .8fr .8fr;
}
.small{font-size:13px; color:var(--tv-muted)}

.notice{
  border:1px dashed rgba(255,255,255,.18);
  background: rgba(255,255,255,.03);
  border-radius: 14px;
  padding: 12px 14px;
  color: var(--tv-muted);
}

.tv-calendar-wrap{
  border:1px solid var(--tv-border);
  background: rgba(255,255,255,.03);
  border-radius: var(--tv-radius);
  padding: 14px;
  overflow:hidden;
  box-shadow: var(--tv-shadow);
}
.tv-modal{
  position:fixed; inset:0; z-index:999;
  background: rgba(0,0,0,.65);
  display:none;
  align-items:center; justify-content:center;
  padding:18px;
}
.tv-modal.is-open{display:flex}
.tv-modal-card{
  width:min(720px, 100%);
  border:1px solid var(--tv-border);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(18,21,35,.98), rgba(11,12,16,.98));
  box-shadow: var(--tv-shadow);
  overflow:hidden;
}
.tv-modal-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 16px;
  border-bottom:1px solid var(--tv-border);
}
.tv-modal-head h3{margin:0; font-size:16px}
.tv-modal-body{padding:14px 16px}
.tv-modal-body p{margin:0 0 10px; color:rgba(233,236,241,.92)}
.tv-modal-body .k{color:var(--tv-muted); font-size:12px; text-transform:uppercase; letter-spacing:.3px; margin-top:12px}

.tv-pagination{display:flex; gap:10px; justify-content:center; padding:18px 0}
.tv-pagination a,.tv-pagination span{
  padding:8px 12px; border-radius:999px; border:1px solid var(--tv-border);
  color:var(--tv-muted);
}
.tv-pagination .current{color:var(--tv-text); background:rgba(255,255,255,.06)}

@media (max-width: 980px){
  .tv-shell{grid-template-columns: 1fr}
  .tv-sidebar{position:relative; top:auto}
  .tv-hero-content{grid-template-columns: 1fr}
  .tv-hero-meta{justify-content:flex-start}
  .grid{grid-template-columns: repeat(2, minmax(0, 1fr))}
  .tv-brand{min-width:auto}
  .tv-search{display:none}
}
@media (max-width: 560px){
  .grid{grid-template-columns: 1fr}
  .card{flex-basis: 82%}
  .tv-hero h1{font-size:26px}
}


/* Header-only width so menu fits */
.tv-header .container{max-width:1400px}

.custom-logo-link img{height:120px; width:auto; max-width:320px}

/* Keep menu on one line; horizontal scroll if crowded */
.tv-nav ul.menu{flex-wrap:nowrap; overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch}
.tv-nav ul.menu::-webkit-scrollbar{height:6px}
.tv-nav ul.menu::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10); border-radius:999px}
.tv-nav ul.menu li{white-space:nowrap}

.custom-logo-link{display:flex; align-items:center; line-height:1}

/* Header search: icon button + popover */
.tv-search{display:none !important}
.tv-actions{position:relative}
.tv-searchbtn{width:38px; height:38px; border-radius:999px; padding:0; display:inline-flex; align-items:center; justify-content:center}
.tv-search-pop{position:absolute; right:0; top:46px; width:min(520px, calc(100vw - 36px)); border:1px solid var(--tv-border);
  background: linear-gradient(180deg, rgba(18,21,35,.98), rgba(11,12,16,.98));
  border-radius:18px; box-shadow:var(--tv-shadow); padding:12px; display:none; z-index:9999}
.tv-search-pop.is-open{display:block}
.tv-search-pop .row{display:flex; gap:10px; overflow:visible; padding:0}
.tv-search-pop input[type="search"]{flex:1; padding:10px 12px; border-radius:14px; border:1px solid var(--tv-border);
  background: rgba(255,255,255,.05); color: var(--tv-text); outline:none}
.tv-search-pop .hint{margin-top:8px; color:var(--tv-muted); font-size:12px}

/* Sidebar widget styling */
.tv-sidebar .widget{margin-top:14px}
.tv-sidebar .widget ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px}
.tv-sidebar .widget li a{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 10px;
  border-radius:12px;
  background: rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.06);
  color: var(--tv-text);
}
.tv-sidebar .widget li a:hover{background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12)}
.tv-sidebar .widget .tagcloud{display:flex; flex-wrap:wrap; gap:8px}
.tv-sidebar .widget .tagcloud a{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: var(--tv-muted);
  font-size:12px !important;
}
.tv-sidebar .widget .tagcloud a:hover{color:var(--tv-text); background: rgba(255,255,255,.06)}

/* Creator Upload + Premiere Submit */
.tv-form{border:1px solid var(--tv-border); background:rgba(255,255,255,.04); border-radius:var(--tv-radius); padding:16px}
.tv-form h1{margin:0 0 10px; font-size:22px}
.tv-form .help{color:var(--tv-muted); font-size:13px; margin:0 0 14px}
.tv-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.tv-form label{display:block; font-weight:650; margin:0 0 6px}
.tv-form input[type="text"], .tv-form input[type="url"], .tv-form input[type="datetime-local"], .tv-form textarea, .tv-form select{
  width:100%;
  border:1px solid var(--tv-border);
  background:rgba(255,255,255,.05);
  color:var(--tv-text);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
}
.tv-form textarea{min-height:120px; resize:vertical}
.tv-form .actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.tv-form .note{margin-top:10px; color:var(--tv-muted); font-size:12px}
@media(max-width:780px){.tv-form .row2{grid-template-columns:1fr}}

/* Homepage editable block area (Gutenberg content) */
.tv-home-content{
  margin: 18px 0 0;
  padding: 0;
}
.tv-home-content .wp-block{
  color: var(--tv-text);
}
/* Make wide/full align blocks behave nicely inside our container */
.tv-home-content .alignwide{max-width: 100%;}
.tv-home-content .alignfull{width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);}
.tv-home-content .wp-block-image img{border-radius: 18px; border:1px solid var(--tv-border);}


/* If the passport plugin uses white panels, ensure borders remain visible */
.wota-passport .card, #wota-passport .card,
.wota-passport .panel, #wota-passport .panel{
  border-color: rgba(0,0,0,.10) !important;
}


/* ===== Theme overrides v1.1.0 ===== */
/* Editable header colors (set in Customizer) */
:root{
  --tv-header-bg: #0b0c10;
  --tv-header-text: #e9ecf1;
}
.tv-header{
  background: var(--tv-header-bg) !important;
  color: var(--tv-header-text) !important;
  backdrop-filter: blur(10px);
}
.tv-header a{ color: var(--tv-header-text) !important; }
.tv-nav a{ color: var(--tv-header-text) !important; opacity:.86; }
.tv-nav a:hover{ opacity:1; }

/* Calendar: left-side event details panel */
.tv-cal-grid{display:grid; grid-template-columns: 320px 1fr; gap:12px; align-items:start}
.tv-cal-details{
  border:1px solid var(--tv-border);
  background: rgba(255,255,255,.03);
  border-radius: var(--tv-radius);
  padding:12px;
  min-height: 420px;
}
.tv-cal-details h3{margin:0 0 8px; font-size:16px}
.tv-cal-details .k{color:var(--tv-muted); font-size:12px; text-transform:uppercase; letter-spacing:.3px; margin-top:10px}
.tv-cal-details p{margin:6px 0 0; color:rgba(233,236,241,.92)}
.tv-cal-details .badges{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.tv-cal-details .badges a,.tv-cal-details .badges span{display:inline-flex; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); color: var(--tv-muted); font-size:12px}
.tv-cal-details .badges a:hover{color:var(--tv-text); background: rgba(255,255,255,.06)}
.tv-cal-details .actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.tv-cal-details .actions a{font-size:13px; padding:8px 12px}
@media (max-width: 980px){
  .tv-cal-grid{grid-template-columns: 1fr}
  .tv-cal-details{min-height:auto}
}

/* ===== Black card + gold UI (v1.1.1) ===== */
/* Make video cards match the player vibe: black panels, white text, gold accents */
.card{
  border: 1px solid rgba(255,255,255,.10) !important;
  background: radial-gradient(900px 500px at 20% 0%, rgba(246,196,69,.10), transparent 55%),
              linear-gradient(180deg, rgba(16,18,22,.98), rgba(6,7,10,.98)) !important;
}
.card .thumb{background: rgba(0,0,0,.45) !important;}
.card .body{
  background: rgba(0,0,0,.62) !important;
  border-top: 1px solid rgba(255,255,255,.08);
}
.card .title{color:#ffffff !important;}
.card .meta{color: rgba(233,236,241,.82) !important;}
.card .meta span{color: rgba(233,236,241,.82) !important;}

/* Badges: gold outline */
.tv-badge{
  border-color: rgba(246,196,69,.28) !important;
  color: rgba(246,196,69,.92) !important;
  background: rgba(246,196,69,.06) !important;
}

/* Panels: darker, higher contrast */
.tv-post, .tv-calendar-wrap, .tv-sidebar{
  border-color: rgba(255,255,255,.10) !important;
  background: linear-gradient(180deg, rgba(16,18,22,.92), rgba(7,8,11,.92)) !important;
}
.tv-post h1, .tv-post h2, .tv-post h3{color:#fff !important;}

/* Default buttons: subtle gold border */
.tv-btn{border-color: rgba(246,196,69,.22) !important;}
.tv-btn:hover{border-color: rgba(246,196,69,.34) !important;}

/* ===== Passport styling (scoped) v1.1.2 =====
   Problem: theme styles (e.g., .card) can accidentally style the Passport widget.
   Fix: apply an explicit reset inside the passport widget wrapper using a body class.
   Customizer: Appearance → Customize → Tokenized.Video Theme → Passport style.
*/

/* DEFAULT: match WOTAPassport.com (white card, dark text) */
body.tvnr-passport-default [id*="passport"],
body.tvnr-passport-default [class*="passport"]{
  color: #111827 !important;
}
body.tvnr-passport-default [id*="passport"] .card,
body.tvnr-passport-default [id*="passport"] .panel,
body.tvnr-passport-default [id*="passport"] .container,
body.tvnr-passport-default [class*="passport"] .card,
body.tvnr-passport-default [class*="passport"] .panel,
body.tvnr-passport-default [class*="passport"] .container{
  background: #ffffff !important;
  color: #111827 !important;
  border-color: rgba(0,0,0,.10) !important;
}
body.tvnr-passport-default [id*="passport"] *,
body.tvnr-passport-default [class*="passport"] *{
  color: #111827 !important;
  text-shadow: none !important;
  opacity: 1 !important;
}
body.tvnr-passport-default [id*="passport"] a,
body.tvnr-passport-default [class*="passport"] a{ color: #0b5fff !important; }

/* DARK: match Tokenized.Video black/gold vibe */
body.tvnr-passport-dark [id*="passport"],
body.tvnr-passport-dark [class*="passport"]{
  background: radial-gradient(900px 500px at 20% 0%, rgba(246,196,69,.10), transparent 55%),
              linear-gradient(180deg, rgba(16,18,22,.96), rgba(6,7,10,.96)) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 18px !important;
  padding: 16px !important;
  color: #ffffff !important;
}
body.tvnr-passport-dark [id*="passport"] *,
body.tvnr-passport-dark [class*="passport"] *{
  color: #ffffff !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
body.tvnr-passport-dark [id*="passport"] .muted,
body.tvnr-passport-dark [id*="passport"] .hint,
body.tvnr-passport-dark [id*="passport"] small,
body.tvnr-passport-dark [class*="passport"] .muted,
body.tvnr-passport-dark [class*="passport"] .hint,
body.tvnr-passport-dark [class*="passport"] small{
  color: rgba(233,236,241,.78) !important;
}
body.tvnr-passport-dark [id*="passport"] input,
body.tvnr-passport-dark [id*="passport"] textarea,
body.tvnr-passport-dark [id*="passport"] select,
body.tvnr-passport-dark [class*="passport"] input,
body.tvnr-passport-dark [class*="passport"] textarea,
body.tvnr-passport-dark [class*="passport"] select{
  background: rgba(0,0,0,.45) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  color: #ffffff !important;
}

/* ===== Passport wrapper scoping v1.1.3 =====
   Fixes CSS collisions with the passport widget (it uses generic classes like .card).
   We wrap the shortcode output with <div class="tvnr-passport-wrap"> via functions.php.
*/

.tvnr-passport-wrap{margin: 16px 0}

/* DEFAULT (white, match wotapassport.com) */
body.tvnr-passport-default .tvnr-passport-wrap{
  background:#ffffff !important;
  border:1px solid rgba(0,0,0,.10) !important;
  border-radius: 18px !important;
  padding: 16px !important;
}
body.tvnr-passport-default .tvnr-passport-wrap,
body.tvnr-passport-default .tvnr-passport-wrap *{
  color:#111827 !important;
  opacity: 1 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tvnr-passport-default .tvnr-passport-wrap a{ color:#0b5fff !important; }
body.tvnr-passport-default .tvnr-passport-wrap .card,
body.tvnr-passport-default .tvnr-passport-wrap .panel,
body.tvnr-passport-default .tvnr-passport-wrap .container{
  background:#ffffff !important;
  border-color: rgba(0,0,0,.10) !important;
}

/* DARK (black + gold, match tokenized.video player vibe) */
body.tvnr-passport-dark .tvnr-passport-wrap{
  background: radial-gradient(900px 500px at 20% 0%, rgba(246,196,69,.10), transparent 55%),
              linear-gradient(180deg, rgba(16,18,22,.96), rgba(6,7,10,.96)) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  border-radius: 18px !important;
  padding: 16px !important;
}
body.tvnr-passport-dark .tvnr-passport-wrap,
body.tvnr-passport-dark .tvnr-passport-wrap *{
  color:#ffffff !important;
  opacity: 1 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tvnr-passport-dark .tvnr-passport-wrap a{ color: rgba(246,196,69,.95) !important; }
body.tvnr-passport-dark .tvnr-passport-wrap .card,
body.tvnr-passport-dark .tvnr-passport-wrap .panel,
body.tvnr-passport-dark .tvnr-passport-wrap .container{
  background: rgba(0,0,0,.25) !important;
  border-color: rgba(255,255,255,.12) !important;
}

/* Make disabled/pending steps still readable */
.tvnr-passport-wrap [class*="pending"],
.tvnr-passport-wrap [class*="disabled"]{
  opacity: 1 !important;
}
/* If plugin uses opacity on whole rows, counteract it */
.tvnr-passport-wrap [style*="opacity"]{opacity:1 !important}

/* Buttons inside passport: inherit our gold primary feel */
body.tvnr-passport-dark .tvnr-passport-wrap button,
body.tvnr-passport-dark .tvnr-passport-wrap .button,
body.tvnr-passport-dark .tvnr-passport-wrap input[type="button"],
body.tvnr-passport-dark .tvnr-passport-wrap input[type="submit"]{
  background: var(--tv-accent) !important;
  color:#101217 !important;
  border: 1px solid rgba(246,196,69,.45) !important;
  border-radius: 12px !important;
}

/* FullCalendar weekday headers: white + bold (v1.1.5) */
.fc .fc-col-header-cell-cushion{
  color: #ffffff !important;
  font-weight: 800 !important;
  opacity: 1 !important;
}
.fc .fc-col-header-cell{
  background: rgba(0,0,0,.20);
}

/* Hide empty buttons (prevents stray pill shapes) */
.tv-btn:empty{display:none !important}

/* Primary button final (gold gradient + black text) */
.tv-btn.primary{
  border-color: rgba(246,196,69,.45) !important;
  background: linear-gradient(180deg, rgba(246,196,69,.98), rgba(210,152,25,.98)) !important;
  color:#101217 !important;
  text-shadow:none !important;
}
.tv-btn.primary:hover{
  filter: brightness(1.02);
}

/* Zero-count genres gray (v1.2.0) */
.tv-genres .tv-genre-item.is-zero a{ opacity:.55; }
.tv-genres .tv-genre-item.is-zero a:hover{ opacity:.75; }
.tv-genres .tv-genre-count{ margin-left:8px; color: rgba(233,236,241,.85); }
.tv-genres .tv-genre-item.is-zero .tv-genre-count{ color: rgba(233,236,241,.55); }

/* Creator-defined overlays (v1.2.2) */
.thumb, .tv-post-thumb{position:relative}
.tv-media-overlay{
  position:absolute; inset:0;
  pointer-events:none;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:10px;
}
.tv-ov-top{
  align-self:center;
  margin-bottom:auto;
  margin-top:8px;
  max-width:min(92%, 360px);
  background:rgba(14,16,22,.78);
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  backdrop-filter: blur(6px);
  padding:8px 12px;
  box-shadow: 0 6px 20px rgba(0,0,0,.28);
}
.tv-ov-label{
  color:#fff; font-weight:800; font-size:12px; letter-spacing:.4px; text-transform:uppercase;
  text-align:center;
}
.tv-ov-clock{
  margin-top:4px;
  color:var(--tv-accent); font-weight:900; letter-spacing:1px;
  text-align:center; font-size:18px; line-height:1.1;
  text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.tv-media-overlay.tv-ov-player .tv-ov-clock{font-size:clamp(20px, 4vw, 40px)}
.tv-media-overlay.tv-ov-player .tv-ov-top{max-width:min(94%, 520px); padding:10px 14px}
.tv-ov-note{
  margin-top:8px;
  align-self:center;
  max-width:min(92%, 420px);
  background:rgba(14,16,22,.58);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  border-radius:12px;
  padding:8px 12px;
  text-align:center;
  font-size:12px;
}
.tv-media-overlay.tv-ov-player .tv-ov-note{font-size:14px}
.tv-ov-badge{
  align-self:center;
  margin-top:10px;
  max-width:min(92%, 360px);
  background:linear-gradient(180deg, rgba(24,29,42,.88), rgba(12,14,20,.92));
  border:1px solid rgba(255,255,255,.14);
  border-radius:12px;
  padding:8px 12px;
  color:#fff;
  text-align:center;
  font-weight:700;
}
.tv-ov-badge small{
  display:block; color:rgba(233,236,241,.86); font-weight:600; font-size:11px; margin-top:2px;
}
.tv-overlay-fields{
  margin-top:14px;
  border:1px solid var(--tv-border);
  background:rgba(255,255,255,.02);
  border-radius:14px;
  padding:12px;
}
.tv-overlay-fields h3{
  margin:0 0 6px; font-size:14px; letter-spacing:.2px;
}
.tv-overlay-fields .hint{color:var(--tv-muted); font-size:12px; margin:0 0 10px}

/* Share to TV button (v1.2.3) */
.tv-player-actions{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:12px 0 10px;
}
.tv-share-tv{
  display:inline-flex; align-items:center; gap:8px;
}
.tv-share-tv .tv-cast-ico{
  width:16px; height:16px; display:inline-block; position:relative; flex:0 0 16px;
}
.tv-share-tv .tv-cast-ico:before,
.tv-share-tv .tv-cast-ico:after{
  content:""; position:absolute; box-sizing:border-box;
}
.tv-share-tv .tv-cast-ico:before{
  inset:0;
  border:2px solid currentColor;
  border-radius:2px;
  opacity:.95;
}
.tv-share-tv .tv-cast-ico:after{
  left:-1px; bottom:-1px;
  width:9px; height:9px;
  border-left:2px solid currentColor;
  border-top:2px solid currentColor;
  border-top-left-radius:10px;
  opacity:.95;
}
.tv-player-actions .tv-share-status{
  color:var(--tv-muted);
  font-size:12px;
}
.tv-player-actions .tv-share-status.ok{ color: rgba(246,196,69,.95); }
.tv-player-actions .tv-share-status.err{ color: #ff9aa1; }

/* Cast / AirPlay buttons (v1.2.4) */
.tv-player-actions .tv-btn{min-height:38px}
.tv-btn.tv-cast-btn, .tv-btn.tv-airplay-btn{
  border-color: rgba(255,255,255,.14) !important;
  background: rgba(255,255,255,.03);
  color: var(--tv-text);
}
.tv-btn .tv-cast-ico, .tv-btn .tv-airplay-ico{
  width:16px; height:16px; display:inline-block; position:relative; flex:0 0 16px;
}
.tv-btn .tv-cast-ico:before, .tv-btn .tv-cast-ico:after,
.tv-btn .tv-airplay-ico:before, .tv-btn .tv-airplay-ico:after{
  content:""; position:absolute; box-sizing:border-box;
}
/* Cast icon */
.tv-btn .tv-cast-ico:before{ inset:0; border:2px solid currentColor; border-radius:2px; opacity:.95; }
.tv-btn .tv-cast-ico:after{
  left:-1px; bottom:-1px; width:9px; height:9px;
  border-left:2px solid currentColor; border-top:2px solid currentColor;
  border-top-left-radius:10px; opacity:.95;
}
/* AirPlay icon */
.tv-btn .tv-airplay-ico:before{
  left:1px; right:1px; top:1px; height:8px;
  border:2px solid currentColor; border-radius:2px;
}
.tv-btn .tv-airplay-ico:after{
  left:4px; right:4px; bottom:1px; height:0;
  border-left:4px solid transparent; border-right:4px solid transparent; border-top:6px solid currentColor;
}
.tv-btn.is-loading{opacity:.75; pointer-events:none}

/* Auto-hide unsupported transport buttons (v1.2.5) */
.tv-hide-unsupported{ display:none !important; }
