/* ================= TV Poty Web v18 — UI/UX, dark mode e blocos modulares ================= */
:root{
  --tvp-surface-2:#eef3fb;
  --tvp-border:#e2e8f0;
  --tvp-shadow:0 8px 24px rgba(15,23,42,.08);
  --tvp-radius-lg:calc(var(--tvp-radius,8px) * 1.75);
  --tvp-space:clamp(14px, 2.2vw, 28px);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--tvp-bg);color:var(--tvp-text);
  transition:background-color .25s ease,color .25s ease;
  font-size:clamp(15px, .45vw + 14px, var(--tvp-font-size-base,16px));line-height:1.65}
img,video,iframe{max-width:100%;height:auto}
h1,h2,h3,h4{line-height:1.22;letter-spacing:-.015em}
h1{font-size:clamp(1.7rem, 3.4vw, var(--tvp-font-size-h1,2.4rem))}
h2{font-size:clamp(1.3rem, 2.4vw, var(--tvp-font-size-h2,1.8rem))}
a{color:var(--tvp-link)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid color-mix(in srgb, var(--tvp-primary) 55%, transparent);outline-offset:2px;border-radius:6px}
::selection{background:color-mix(in srgb, var(--tvp-primary) 30%, transparent)}

/* -------- Superfícies e cards (claro + escuro) -------- */
.tvp-card,.widget,.tvp-block-card,.tvp-sidebar .widget,.tvp-post-card,.tvp-news-item{
  background:var(--tvp-surface);color:var(--tvp-text);
  border:1px solid var(--tvp-border);border-radius:var(--tvp-radius-lg);
  box-shadow:var(--tvp-shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.tvp-card:hover,.tvp-post-card:hover,.tvp-news-item:hover{transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(2,8,23,.14);border-color:color-mix(in srgb, var(--tvp-primary) 35%, var(--tvp-border))}
.widget-title,.tvp-block-title{font-family:var(--tvp-font-heading);font-weight:800}
.tvp-block-title{display:flex;align-items:center;gap:.6rem}
.tvp-block-title::before{content:"";width:6px;height:1.1em;border-radius:99px;background:var(--tvp-primary)}

/* -------- CTAs / botões -------- */
.tvp-btn,.tvp-footer-cta,.tvp-cta,button.tvp-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.72rem 1.25rem;border-radius:999px;border:0;cursor:pointer;
  font-weight:700;font-size:.98rem;line-height:1;text-decoration:none;
  background:var(--tvp-primary);color:#fff;
  box-shadow:0 6px 18px color-mix(in srgb, var(--tvp-primary) 35%, transparent);
  transition:transform .15s ease,filter .15s ease,box-shadow .15s ease;min-height:44px}
.tvp-btn:hover,.tvp-footer-cta:hover{transform:translateY(-2px);filter:brightness(1.06);color:#fff}
.tvp-btn:active{transform:translateY(0)}
.tvp-btn-ghost{background:transparent;color:var(--tvp-text);border:1.5px solid var(--tvp-border);box-shadow:none}
.tvp-btn-ghost:hover{border-color:var(--tvp-primary);color:var(--tvp-primary)}
button,input,select,textarea{font:inherit}
input[type=text],input[type=search],input[type=email],textarea,select{
  background:var(--tvp-surface);color:var(--tvp-text);border:1px solid var(--tvp-border);
  border-radius:12px;padding:.62rem .85rem}

/* -------- Botão de tema claro/escuro -------- */
.tvp-theme-toggle{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:999px;border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);color:inherit;cursor:pointer;padding:0;font-size:16px;line-height:1}
.tvp-theme-toggle:hover{background:rgba(255,255,255,.2)}
.tvp-theme-ico{transition:opacity .2s ease,transform .3s ease;position:absolute}
html[data-tvp-theme="light"] .tvp-theme-ico-sun{opacity:0;transform:rotate(-45deg) scale(.6)}
html[data-tvp-theme="light"] .tvp-theme-ico-moon{opacity:1;transform:none}
html[data-tvp-theme="dark"] .tvp-theme-ico-moon{opacity:0;transform:rotate(45deg) scale(.6)}
html[data-tvp-theme="dark"] .tvp-theme-ico-sun{opacity:1;transform:none}
.tvp-theme-toggle-float{position:fixed;right:16px;bottom:96px;z-index:9998;background:var(--tvp-surface);
  color:var(--tvp-text);border:1px solid var(--tvp-border);box-shadow:var(--tvp-shadow);display:none}

/* -------- Regiões modulares -------- */
.tvp-region{margin:0 0 var(--tvp-space)}
.tvp-region-header-banner{margin:0 0 var(--tvp-space);padding-top:var(--tvp-space)}
.tvp-block-grid{display:grid;gap:var(--tvp-space);grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}
.tvp-block-grid-1{--cols:1}.tvp-block-grid-2{--cols:2}.tvp-block-grid-3{--cols:3}.tvp-block-grid-4{--cols:4}
.tvp-block-stack{display:flex;flex-direction:column;gap:var(--tvp-space)}
.tvp-block-card{padding:clamp(14px,2vw,22px)}
.tvp-region-footer-blocks{background:transparent;padding:var(--tvp-space) 0}
.tvp-region-footer-blocks .tvp-block-card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);
  color:var(--tvp-footer-fg);box-shadow:none}
.tvp-region-footer-blocks .widget-title{color:#fff}
@media (max-width:1024px){.tvp-block-grid-4{--cols:2}.tvp-block-grid-3{--cols:2}}
@media (max-width:680px){.tvp-block-grid{--cols:1 !important}}

/* -------- Responsividade geral -------- */
.tvp-container{width:min(100% - 2rem, var(--tvp-container,1240px));margin-inline:auto}
.tvp-home-grid{display:grid;gap:var(--tvp-space);grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start}
.tvp-sidebar{position:sticky;top:12px;display:flex;flex-direction:column;gap:var(--tvp-space)}
@media (max-width:1024px){.tvp-home-grid{grid-template-columns:1fr}.tvp-sidebar{position:static}}
@media (max-width:768px){
  .tvp-topbar-inner{flex-wrap:wrap;gap:.5rem;justify-content:center;text-align:center}
  .tvp-topbar-search{width:100%}
  .tvp-header-inner{flex-direction:column;gap:.75rem;text-align:center}
  .tvp-menu{flex-direction:column}
  .tvp-theme-toggle-float{display:inline-flex}
}
@media (max-width:480px){
  :root{--tvp-space:14px}
  .tvp-block-card{padding:14px}
  .tvp-btn{width:100%}
}
/* alvos de toque confortáveis no mobile */
@media (pointer:coarse){.tvp-menu a,.tvp-topbar a,.tvp-footer a{min-height:42px;display:inline-flex;align-items:center}}

/* -------- Chat: refinos v18 -------- */
.tvp-chat{background:var(--tvp-surface);color:var(--tvp-text);border:1px solid var(--tvp-border)}
.tvp-chat-body{scroll-behavior:smooth;overscroll-behavior:contain}
.tvp-chat-msg-row{animation:tvpFadeUp .22s ease both}
@keyframes tvpFadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tvp-chat-jump{position:absolute;right:14px;bottom:96px;z-index:5;border:0;cursor:pointer;
  background:var(--tvp-primary);color:#fff;border-radius:999px;padding:.45rem .8rem;font-size:.8rem;font-weight:700;
  box-shadow:0 6px 18px rgba(0,0,0,.25);display:none}
.tvp-chat-jump.is-on{display:inline-flex;align-items:center;gap:.35rem}
.tvp-chat{position:relative}
html[data-tvp-theme="dark"] .tvp-chat-msg-in{background:var(--tvp-surface-2)}
html[data-tvp-theme="dark"] img:not([src*=".svg"]){filter:brightness(.94)}
html[data-tvp-theme="dark"] .tvp-topbar,html[data-tvp-theme="dark"] .tvp-header,
html[data-tvp-theme="dark"] .tvp-mainnav{border-bottom:1px solid var(--tvp-border)}

@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms !important;transition-duration:.01ms !important}}
