:root{
  --vz-bg: #1C1C25;
  --vz-bg2: #14141B;
  --vz-card: #20202B;
  --vz-border: rgba(210,211,218,.12);
  --vz-text: #EDEEF6;
  --vz-muted: rgba(237,238,246,.72);
  --vz-accent: #AB0E38;
  --vz-accent2: #6F102B;
  --vz-soft: rgba(171,14,56,.14);
  --vz-shadow: 0 14px 40px rgba(0,0,0,.35);
  --vz-radius: 18px;
}

html[data-theme="light"]{
  --vz-bg: #F6F7FB;
  --vz-bg2: #FFFFFF;
  --vz-card: #FFFFFF;
  --vz-border: rgba(20,20,27,.12);
  --vz-text: #1A1A22;
  --vz-muted: rgba(26,26,34,.70);
  --vz-shadow: 0 14px 40px rgba(0,0,0,.12);
}

body{
  background: radial-gradient(1100px 460px at 12% 0%, rgba(171,14,56,.16), transparent 60%),
              radial-gradient(900px 420px at 88% 8%, rgba(111,16,43,.16), transparent 62%),
              var(--vz-bg);
  color: var(--vz-text);
}

/* Scrollbar (combina com o layout) */
html{ scroll-behavior:smooth; }
body{ scrollbar-width: thin; scrollbar-color: color-mix(in srgb,var(--vz-accent) 55%, var(--vz-border)) transparent; }
body::-webkit-scrollbar{ width: 10px; height: 10px; }
body::-webkit-scrollbar-track{ background: transparent; }
body::-webkit-scrollbar-thumb{
  background: linear-gradient(180deg, color-mix(in srgb,var(--vz-accent) 70%, transparent), color-mix(in srgb,var(--vz-accent2) 70%, transparent));
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--vz-bg) 80%, transparent);
}
body::-webkit-scrollbar-thumb:hover{ filter: brightness(1.06); }

a{ color: inherit; text-decoration: none; }
a:hover{ color: inherit; }

.vz-topbar{
  backdrop-filter: blur(14px);
  background: color-mix(in srgb, var(--vz-bg2) 70%, transparent);
  border-bottom: 1px solid var(--vz-border);
}

.vz-brand{ display:flex; align-items:center; gap:.6rem; }
.vz-brand-badge{
  width: 34px; height: 34px; border-radius: 12px;
  background: linear-gradient(135deg, var(--vz-accent), var(--vz-accent2));
  box-shadow: 0 10px 25px rgba(171,14,56,.35);
}
.vz-brand-icon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  object-fit: cover;
  box-shadow: 0 10px 25px rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.10);
}
.vz-brand-name{ font-weight: 700; letter-spacing:.2px; }

.vz-search .form-control{
  border-radius: 999px;
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 90%, transparent);
  color: var(--vz-text);
  padding-left: 1rem;
  padding-right: 1rem;
}
.vz-search .form-control::placeholder{ color: var(--vz-muted); }

.vz-btn-ghost{
  border-radius: 999px;
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 70%, transparent);
  color: var(--vz-text);
}
.vz-btn-ghost:hover{ filter: brightness(1.06); }

.vz-btn-primary{
  border-radius: 999px;
  border: 0;
  background: linear-gradient(135deg, var(--vz-accent), var(--vz-accent2));
  color: #fff;
  box-shadow: 0 12px 30px rgba(171,14,56,.35);
}
.vz-btn-primary:hover{ filter: brightness(1.06); }

.vz-dot{
  display:inline-block;
  width: 10px; height: 10px; border-radius: 999px;
  background: var(--vz-accent);
  box-shadow: 0 0 0 6px var(--vz-soft);
}

.vz-pill{
  font-size: .84rem;
  padding: .35rem .7rem;
  border-radius: 999px;
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 70%, transparent);
  color: var(--vz-muted);
}
.vz-pill-accent{
  color: #fff;
  border-color: transparent;
  background: linear-gradient(135deg, rgba(171,14,56,.95), rgba(111,16,43,.95));
}

.vz-card{
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 85%, transparent);
  border-radius: var(--vz-radius);
  box-shadow: var(--vz-shadow);
}

.vz-hero{
  border-radius: var(--vz-radius);
  border: 1px solid var(--vz-border);
  background:
    radial-gradient(700px 240px at 10% 10%, rgba(171,14,56,.25), transparent 60%),
    radial-gradient(700px 240px at 90% 10%, rgba(111,16,43,.25), transparent 60%),
    color-mix(in srgb, var(--vz-card) 92%, transparent);
  box-shadow: var(--vz-shadow);
}

.vz-product-card{
  height: 100%;
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 85%, transparent);
  border-radius: 16px;
  overflow: hidden;
  transition: transform .18s ease, filter .18s ease;
  display: flex;
  flex-direction: column;
}
.vz-product-card:hover{
  transform: translateY(-3px);
  filter: brightness(1.02);
}
.vz-product-img{
  aspect-ratio: 1/1;
  width:100%;
  object-fit: cover;
  background: var(--vz-bg2);
}


/* Overlay com gradiente na imagem (de baixo para cima) */
.vz-product-card > a{ position: relative; display:block; }
.vz-product-card > a::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.58) 0%, rgba(0,0,0,0) 55%);
  pointer-events:none;
}
.ml-list-img::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 55%);
  pointer-events:none;
}
.ml-list-badge{ z-index: 5; }
.ml-free-ship-corner{ z-index: 6; }
.vz-product-body{
  display:flex;
  flex-direction:column;
  flex: 1;
}

.vz-product-meta{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.vz-product-title{
  line-height: 1.15;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: calc(1.15em * 2);
}

.vz-actions{
  margin-top: auto;
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 10px;
}
.vz-actions .btn{min-height:46px;font-weight:800;letter-spacing:.2px;}

/* Botão "Adicionar" (somente ícone) */
.vz-btn-cartonly{
  padding: 0;
  width: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.vz-btn-cartonly svg{ width: 20px; height: 20px; }
.vz-btn-cartonly:active{ transform: translateY(1px); }

.vz-btn-ico{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-right: 8px;
  opacity:.95;
}

.vz-btn-buy{
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.12);
  color: var(--vz-text);
}
.vz-btn-buy:hover{ filter: brightness(1.05); }
.vz-btn-buy:active{ transform: translateY(1px); }

.vz-paygrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
@media (min-width: 992px){
  .vz-paygrid{ grid-template-columns: 1fr; }
}

.vz-payopt{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-card) 85%, transparent);
  cursor:pointer;
  user-select:none;
}
.vz-payopt:hover{ filter: brightness(1.05); }
.vz-payopt input{ accent-color: var(--vz-accent); }
.vz-paylabel{ font-weight: 600; }
.vz-badge{
  position:absolute; top:.65rem; left:.65rem;
  padding:.3rem .55rem;
  border-radius: 999px;
  font-size:.78rem;
  background: rgba(171,14,56,.92);
  color:#fff;
  border: 1px solid rgba(255,255,255,.12);
}

.vz-price{ font-weight: 800; letter-spacing: .2px; }
.vz-price-old{ opacity:.65; text-decoration: line-through; font-size: .92rem; }

.vz-footer{
  border-top: 1px solid var(--vz-border);
  background: color-mix(in srgb, var(--vz-bg2) 75%, transparent);
}

.form-control, .form-select, .btn{
  border-radius: 14px;
}
.form-control, .form-select{
  background: color-mix(in srgb, var(--vz-card) 92%, transparent);
  border: 1px solid var(--vz-border);
  color: var(--vz-text);
}
.form-control::placeholder{ color: var(--vz-muted); }

.table{
  --bs-table-bg: transparent;
  --bs-table-color: var(--vz-text);
  --bs-table-border-color: var(--vz-border);
}

.vz-admin-nav a{
  color: var(--vz-muted);
}
.vz-admin-nav a.active, .vz-admin-nav a:hover{
  color: var(--vz-text);
}

/* Charts (admin) */
.vz-chart{
  position: relative;
  height: 240px;
}
.vz-chart canvas{
  width: 100% !important;
  height: 100% !important;
}
@media (max-width: 576px){
  .vz-chart{ height: 220px; }
}

@media (max-width: 576px){
  .vz-search{ display:none; }
  .vz-brand-name{ display:none; }
}

/* ===== Marketplace (estrutura tipo Mercado Livre), mantendo a paleta VisãoCorp ===== */
.ml-navstrip{display:flex;gap:.5rem;overflow:auto;padding:.25rem 0;scrollbar-width:thin;}
.ml-navstrip::-webkit-scrollbar{height:8px;}
.ml-navstrip::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--vz-border) 60%,transparent);border-radius:999px;}

.ml-navlink{flex:0 0 auto;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 75%,transparent);color:var(--vz-muted);font-size:.86rem;white-space:nowrap;}
.ml-navlink:hover{filter:brightness(1.06);}
.ml-navlink.active{color:#fff;border-color:transparent;background:linear-gradient(135deg, rgba(171,14,56,.95), rgba(111,16,43,.95));}

.ml-home-hero{border-radius:var(--vz-radius);border:1px solid var(--vz-border);background:radial-gradient(900px 320px at 18% 10%, rgba(171,14,56,.20), transparent 60%),radial-gradient(900px 320px at 86% 12%, rgba(111,16,43,.18), transparent 62%),color-mix(in srgb,var(--vz-card) 92%,transparent);box-shadow:var(--vz-shadow);overflow:hidden;}
.ml-hero-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:1rem;}
@media (max-width: 992px){.ml-hero-grid{grid-template-columns:1fr;}}

.ml-hero-banner{min-height:260px;border-radius:calc(var(--vz-radius) - 4px);border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 85%,transparent);overflow:hidden;position:relative;}
.ml-hero-banner img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.02);}
.ml-hero-banner .ml-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg, rgba(0,0,0,.55), rgba(0,0,0,.05));}
html[data-theme="light"] .ml-hero-banner .ml-hero-overlay{background:linear-gradient(90deg, rgba(255,255,255,.75), rgba(255,255,255,.05));}

.ml-hero-copy{position:absolute;inset:0;padding:1.25rem;display:flex;flex-direction:column;justify-content:flex-end;gap:.6rem;}

.ml-quickcards{display:grid;grid-template-columns:1fr;gap:.75rem;}
.ml-qcard{border-radius:16px;border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 85%,transparent);box-shadow:var(--vz-shadow);padding:1rem;}

.ml-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:1.2rem 0 .75rem;}
.ml-section-title h2{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:.2px;}
.ml-section-title a{color:var(--vz-muted);font-size:.9rem;}

/* Carousel (scroll-snap) */
.ml-carousel-wrap{position:relative;}
.ml-carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:12px;padding:2px 2px 10px;}
.ml-carousel>*{flex:0 0 auto;width:210px;scroll-snap-align:start;}
@media (max-width: 576px){.ml-carousel>*{width:170px;}}

.ml-carousel-btn{position:absolute;top:42%;transform:translateY(-50%);width:42px;height:42px;border-radius:999px;border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-bg2) 70%,transparent);backdrop-filter:blur(10px);color:var(--vz-text);display:none;}
.ml-carousel-btn:hover{filter:brightness(1.07);}
.ml-carousel-btn.prev{left:-10px;}
.ml-carousel-btn.next{right:-10px;}
@media (min-width: 992px){.ml-carousel-btn{display:inline-flex;align-items:center;justify-content:center;}}

/* Vitrine (tabs) */
.ml-tabs{margin-top:10px;}
.ml-tabbar{display:flex;gap:8px;align-items:center;flex-wrap:nowrap;overflow:auto;padding:6px;border:1px solid var(--vz-border);border-radius:999px;background:color-mix(in srgb,var(--vz-bg2) 65%,transparent);backdrop-filter:blur(10px);}
.ml-tabbar::-webkit-scrollbar{height:6px;}
.ml-tabbar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--vz-text) 18%,transparent);border-radius:999px;}
.ml-tab{white-space:nowrap;border:0;background:transparent;color:var(--vz-text2);padding:8px 12px;border-radius:999px;font-weight:700;font-size:14px;line-height:1;}
.ml-tab:hover{filter:brightness(1.05);}
.ml-tab.active{background:color-mix(in srgb,var(--vz-bg2) 86%,transparent);color:var(--vz-text);box-shadow:0 6px 18px rgba(0,0,0,.08);}
.ml-tab-timer{margin-left:8px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,#ff7a18,#af002d 60%,#319197);box-shadow:0 10px 24px rgba(0,0,0,.12);}
.ml-tabpanes{margin-top:12px;}
.ml-tabpane{display:none;}
.ml-tabpane.active{display:block;}

/* Catálogo */
.ml-results{display:grid;grid-template-columns:280px 1fr;gap:16px;}
@media (max-width: 992px){.ml-results{grid-template-columns:1fr;}}

.ml-sidebar{border-radius:var(--vz-radius);border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 85%,transparent);box-shadow:var(--vz-shadow);}
.ml-toolbar{border-radius:var(--vz-radius);border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 80%,transparent);box-shadow:var(--vz-shadow);}

.ml-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
@media (max-width: 1200px){.ml-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width: 768px){.ml-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width: 480px){.ml-grid{grid-template-columns:1fr;}}

/* Lista (modo alternativo de visualização) */
.ml-list{display:flex;flex-direction:column;gap:12px;}
.ml-list-row{display:grid;grid-template-columns:150px 1fr 160px;gap:14px;align-items:stretch;border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 85%,transparent);border-radius:16px;box-shadow:var(--vz-shadow);overflow:hidden;}
.ml-list-img{position:relative;display:block;background:var(--vz-bg2);}
.ml-list-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;display:block;}
.ml-list-badge{position:absolute;top:.65rem;left:.65rem;padding:.28rem .55rem;border-radius:999px;font-size:.78rem;background:rgba(171,14,56,.92);color:#fff;border:1px solid rgba(255,255,255,.12);}
.ml-list-body{padding:12px 6px 12px 14px;min-width:0;}
.ml-list-actions{padding:12px 14px;display:flex;align-items:center;justify-content:flex-end;}
.ml-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
@media (max-width: 768px){
  .ml-list-row{grid-template-columns:120px 1fr;}
  .ml-list-actions{grid-column:1 / -1;justify-content:flex-start;padding-top:0;}
}

.ml-catlist a{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.45rem .6rem;border-radius:12px;border:1px solid transparent;color:var(--vz-muted);} 
.ml-catlist a:hover{background:color-mix(in srgb,var(--vz-card) 70%,transparent);color:var(--vz-text);} 
.ml-catlist a.active{background:var(--vz-soft);border-color:color-mix(in srgb,var(--vz-accent) 40%,transparent);color:var(--vz-text);} 

.ml-catlist-scroll{
  max-height: 52vh;
  overflow:auto;
  padding-right: 6px;
}

.ml-catlist-scroll::-webkit-scrollbar{width:10px;height:10px;}
.ml-catlist-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:999px;border:2px solid rgba(0,0,0,.15);} 
.ml-catlist-scroll::-webkit-scrollbar-track{background:transparent;}

.ml-mini-badge{font-size:.78rem;padding:.1rem .45rem;border-radius:999px;border:1px solid var(--vz-border);color:var(--vz-muted);} 

.ml-free-ship{display:inline-block;font-size:.78rem;padding:.12rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--vz-accent) 16%,transparent);border:1px solid color-mix(in srgb,var(--vz-accent) 25%,transparent);color:var(--vz-text);} 

/* Selo "Frete grátis" no canto superior direito do card (sobre a imagem) */
.ml-free-ship-corner{
  position:absolute;
  top:.65rem;
  right:.65rem;
  z-index: 4;
  padding:.28rem .6rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, var(--vz-accent), var(--vz-accent2));
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 12px 26px rgba(0,0,0,.22);
  pointer-events: none;
}


/* Selo com cronômetro aleatório (urgência) */
@keyframes vzUrgencyPulse{0%,100%{transform:translateY(0);filter:brightness(1);}50%{transform:translateY(-1px);filter:brightness(1.06);}}
.ml-urgency-badge{
  font-size: .74rem;
  font-weight: 900;
  background: linear-gradient(135deg, color-mix(in srgb, var(--vz-accent) 70%, #ff7a00), var(--vz-accent2));
  animation: vzUrgencyPulse 1.4s ease-in-out infinite;
}
.ml-urgency-badge .ml-cd{font-variant-numeric: tabular-nums; font-weight: 900;}

.ml-discount{font-size:.82rem;color:color-mix(in srgb,var(--vz-accent) 85%, #fff);font-weight:700;} 

/* Header */
.vz-topbar .ml-toprow{display:flex;align-items:center;gap:.8rem;}
.vz-topbar .ml-toprow .vz-search{display:block;}
@media (max-width: 576px){.vz-topbar .ml-toprow{gap:.5rem;}}

/* Categorias (home) */
.ml-catgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;}
@media(max-width:1200px){.ml-catgrid{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(max-width:768px){.ml-catgrid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:480px){.ml-catgrid{grid-template-columns:repeat(2,minmax(0,1fr));}}

.ml-catcard{border-radius:16px;border:1px solid var(--vz-border);background:color-mix(in srgb,var(--vz-card) 85%,transparent);box-shadow:var(--vz-shadow);padding:.9rem;display:flex;gap:.75rem;align-items:center;min-height:72px;}
.ml-catcard img{width:44px;height:44px;border-radius:12px;object-fit:cover;border:1px solid var(--vz-border);background:var(--vz-bg2);}
.ml-catcard .name{font-weight:800;font-size:.92rem;line-height:1.1;}
.ml-catcard .hint{font-size:.8rem;color:var(--vz-muted);}
