/* Identidade inspirada em hunt.ia.br: mesmos tokens de cor, fontes e raios. */
@font-face { font-family: 'Plus Jakarta Sans'; src: url(/jakarta.woff2) format('woff2'); font-weight: 600 800; font-display: swap; }
@font-face { font-family: 'Inter'; src: url(/inter.woff2) format('woff2'); font-weight: 400 600; font-display: swap; }
:root {
  --violet-300: #b9a2ff; --violet-350: #8b6bff; --violet-400: #6a40f1; --violet-500: #5e2ff0; --violet-600: #5227dd;
  --purple-700: #693bcc; --night: #0c0717; --bar: #120630;
  --lav-50: #f9f8fb; --lav-100: #f3eff9; --lav-200: #ebe5f3; --lav-300: #b7aacf;
  --ink: #0f0a1a; --ink-soft: #3d3550; --on-dark: #d6ccee; --on-dark-soft: #9c8fbf;
  --whatsapp: #25d366; --whatsapp-d: #0f7a41; --danger: #c0264a;
  --grad-dark: radial-gradient(120% 80% at 80% 0%, #3c1c69 0%, #1c045b 45%, #0c0717 100%);
  --r-sm: 10px; --r-md: 18px; --r-lg: 28px;
  --shadow: 0 10px 30px -12px rgba(60, 28, 105, .18);
  --shadow-hover: 0 22px 44px -16px rgba(60, 28, 105, .32);
  --display: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif; --text: 'Inter', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; scroll-padding-top: 88px; }
body { margin: 0; min-height: 100dvh; -webkit-tap-highlight-color: transparent; display: flex; flex-direction: column; background: var(--lav-50); color: var(--ink); font: 400 16px/1.6 var(--text); -webkit-font-smoothing: antialiased; overflow-x: clip; }
main { flex: 1; width: 100%; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--display); line-height: 1.1; letter-spacing: -.02em; margin: 0; }
p, ul { margin: 0; padding: 0; }
ul { list-style: none; }
.wrap { width: min(1180px, 100%); margin-inline: auto; padding-inline: 20px; }
.page { padding-block: 40px 88px; }
.muted { color: var(--ink-soft); font-size: 14px; }

/* Topo */
.top { position: sticky; top: 0; z-index: 50; background: rgba(18, 6, 48, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255, 255, 255, .08); transition: background .3s, border-color .3s; }
.top.over { position: fixed; inset: 0 0 auto; background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-color: transparent; }
.top.over.scrolled { background: rgba(18, 6, 48, .82); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-color: rgba(255, 255, 255, .08); }
.top-in { display: flex; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 72px; flex-wrap: wrap; padding-block: 10px; }
.brand { display: flex; align-items: center; gap: 9px; color: #fff; text-decoration: none; font: 800 20px var(--display); letter-spacing: -.02em; }
.brand em { font-style: normal; font-weight: 600; color: var(--violet-300); margin-left: 4px; }
.brand.small { font-size: 16px; }
.nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.nav a, .navlink { color: #dcd2f5; text-decoration: none; font: 500 15px var(--text); padding: 8px 14px; border-radius: 999px; background: none; border: 0; cursor: pointer; transition: background .2s, color .2s; }
.nav a:hover, .navlink:hover { color: #fff; background: rgba(255, 255, 255, .07); }
.nav form { margin: 0; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 26px; border: 0; border-radius: 999px; background: var(--violet-500); color: #fff; font: 600 16px var(--text); text-decoration: none; cursor: pointer; white-space: nowrap; box-shadow: 0 10px 30px -8px rgba(94, 47, 240, .7); transition: transform .2s, box-shadow .2s, background .2s; }
.btn:hover { transform: translateY(-2px); background: var(--violet-400); box-shadow: 0 16px 40px -8px rgba(94, 47, 240, .85); }
.btn:disabled { opacity: .6; cursor: progress; transform: none; }
.btn svg { width: 20px; height: 20px; flex: none; }
.btn.small { padding: 11px 18px; font-size: 14px; }
.btn.ghost { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18); box-shadow: none; }
.btn.ghost:hover { background: rgba(255, 255, 255, .14); }
.btn.alt { background: transparent; color: var(--violet-500); box-shadow: inset 0 0 0 1.5px rgba(94, 47, 240, .35); }
.btn.alt:hover { background: rgba(94, 47, 240, .06); box-shadow: inset 0 0 0 1.5px var(--violet-500); }
.btn.wa { background: var(--whatsapp-d); box-shadow: 0 10px 30px -10px rgba(18, 140, 75, .7); }
.btn.wa:hover { background: #0c6636; box-shadow: 0 16px 36px -10px rgba(18, 140, 75, .8); }
.link { background: none; border: 0; padding: 0; font: 500 14px var(--text); color: var(--violet-500); text-decoration: none; cursor: pointer; }
.link:hover { text-decoration: underline; }
.link.danger { color: var(--danger); }
:focus-visible { outline: 3px solid var(--violet-300); outline-offset: 2px; }

/* Áreas escuras */
.dark { position: relative; background: var(--grad-dark); color: #fff; overflow: hidden; clip-path: inset(0); isolation: isolate; }
.dots::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(ellipse at 60% 30%, #000 20%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 60% 30%, #000 20%, transparent 70%); }
.orb { position: absolute; border-radius: 50%; filter: blur(70px); z-index: -1; opacity: .6; pointer-events: none; animation: float 14s ease-in-out infinite; }
.orb.a { width: 420px; height: 420px; background: var(--violet-500); top: -120px; right: -80px; }
.orb.b { width: 320px; height: 320px; background: #2b0a7f; bottom: -120px; left: -100px; animation-delay: -6s; }
@keyframes float { 50% { transform: translate(-30px, 30px); } }
.grad-text { background: linear-gradient(90deg, #b9a2ff 0%, #8b6bff 50%, #c9b8ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--violet-500); }
.eyebrow::before { content: ""; width: 18px; height: 2px; background: currentColor; border-radius: 2px; }
.dark .eyebrow { color: var(--violet-300); }

/* Hero */
.hero { padding: 150px 0 110px; }
.hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.pill { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 8px; border-radius: 999px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); font-size: 13px; font-weight: 500; color: #dcd2f5; }
.pill b { background: var(--violet-500); color: #fff; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.hero h1 { font-size: clamp(42px, 6vw, 74px); font-weight: 800; margin: 22px 0; }
.hero .grad-text { display: block; padding-bottom: .14em; margin-bottom: -.14em; }
.lead { font-size: clamp(17px, 1.6vw, 20px); color: var(--on-dark); max-width: 540px; }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.proof { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 34px; font-size: 14px; color: var(--lav-300); }
.proof li { display: inline-flex; align-items: center; gap: 8px; }
.proof svg { width: 17px; height: 17px; color: var(--violet-350); }

.glass { display: flex; flex-direction: column; gap: 8px; padding: 16px; background: rgba(14, 6, 36, .72); border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--r-lg); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .6), 0 0 40px rgba(94, 47, 240, .45); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.latest { position: relative; display: block; border-radius: var(--r-md); overflow: hidden; text-decoration: none; aspect-ratio: 16 / 10; margin-bottom: 8px; }
.latest img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.latest:hover img { transform: scale(1.04); }
.latest-b { position: absolute; inset: auto 0 0; display: flex; flex-direction: column; gap: 1px; padding: 44px 16px 14px; background: linear-gradient(transparent, rgba(12, 7, 23, .92)); }
.latest-b small { font-size: 12px; color: var(--violet-300); font-weight: 600; }
.latest-b strong { font: 700 16px/1.25 var(--display); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.latest-b b { font: 800 18px var(--display); }
.glass-t { padding: 4px 8px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark-soft); }
.cat { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 14px; text-decoration: none; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .06); transition: background .2s, border-color .2s; }
.cat:hover { background: rgba(255, 255, 255, .09); border-color: rgba(185, 162, 255, .35); }
.cat > svg { width: 18px; height: 18px; color: var(--violet-300); flex: none; transition: transform .2s; }
.cat:hover > svg { transform: translateX(3px); }
.cat-i { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: rgba(94, 47, 240, .3); color: #d9ceff; }
.cat-i svg { width: 21px; height: 21px; }
.cat-n { flex: 1; min-width: 0; display: flex; flex-direction: column; font-weight: 600; font-size: 15px; line-height: 1.3; }
.cat-n small { font-weight: 400; font-size: 13px; color: var(--on-dark-soft); }

.band { padding: 64px 0 56px; }
.band h1 { font-size: clamp(34px, 5vw, 52px); font-weight: 800; margin-top: 10px; }

/* Seções e vitrine */
.section { padding: 96px 0; }
.section.tight { padding-block: 40px 96px; }
.section-head { max-width: 720px; margin: 0 auto 34px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.section-head h2 { font-size: clamp(30px, 4vw, 46px); font-weight: 800; }
.section-head p { font-size: 18px; color: var(--ink-soft); }
.tabs { display: flex; gap: 8px; margin-bottom: 14px; overflow-x: auto; padding: 2px 2px 20px; scrollbar-width: none; }
.tabs.center { justify-content: safe center; }
.tab { padding: 9px 18px; border-radius: 999px; background: #fff; color: var(--ink-soft); box-shadow: inset 0 0 0 1px var(--lav-200); text-decoration: none; font-weight: 500; font-size: 15px; white-space: nowrap; transition: color .2s, box-shadow .2s; }
.tab:hover { color: var(--violet-500); box-shadow: inset 0 0 0 1px var(--violet-300); }
.tab.on { background: var(--violet-500); color: #fff; box-shadow: 0 8px 20px -8px rgba(94, 47, 240, .7); }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
.card { display: flex; flex-direction: column; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); overflow: hidden; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.thumb, .stage { position: relative; background: var(--lav-100); display: grid; place-items: center; overflow: hidden; }
.thumb { aspect-ratio: 4 / 3; }
.thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.card:hover .thumb img { transform: scale(1.04); }
.card.sold .thumb img { filter: grayscale(1) opacity(.7); }
.nophoto { color: var(--ink-soft); font-size: 14px; }
.stamp { position: absolute; top: 12px; left: 12px; background: var(--night); color: #fff; padding: 4px 12px; border-radius: 999px; font: 700 13px var(--display); }
.card-b { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.card-b h3 { font-size: 17px; font-weight: 700; line-height: 1.25; flex: 1; }
.tag { align-self: flex-start; font-size: 12px; font-weight: 600; color: var(--violet-500); background: var(--lav-100); padding: 3px 10px; border-radius: 999px; }
.price { font: 800 21px var(--display); color: var(--violet-500); }
.empty { text-align: center; padding: 56px 24px; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.empty h3 { font-size: 22px; }
.empty p { color: var(--ink-soft); }
.empty .btn { margin-top: 10px; }

/* Anúncio */
.crumb { font-size: 14px; color: var(--ink-soft); margin-bottom: 20px; }
.crumb a { color: var(--violet-500); text-decoration: none; }
.ad { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.gallery { min-width: 0; }
.stage { border-radius: var(--r-md); aspect-ratio: 4 / 3; box-shadow: var(--shadow); }
.track { display: flex; width: 100%; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.track::-webkit-scrollbar { display: none; }
.slide { flex: 0 0 100%; height: 100%; padding: 0; border: 0; background: none; scroll-snap-align: center; scroll-snap-stop: always; cursor: zoom-in; }
.slide img { width: 100%; height: 100%; object-fit: contain; }
.count { position: absolute; right: 12px; bottom: 12px; padding: 3px 11px; border-radius: 999px; background: rgba(12, 7, 23, .68); color: #fff; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; pointer-events: none; }
.lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgba(12, 7, 23, .94); }
.lightbox[open] { display: grid; place-items: center; }
.lightbox::backdrop { background: rgba(12, 7, 23, .94); }
.lightbox img { max-width: 100%; max-height: 100dvh; object-fit: contain; }
.lightbox .react-x { color: #fff; top: max(10px, env(safe-area-inset-top)); width: 44px; height: 44px; }
.strip { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; padding: 2px; }
.strip button { flex: 0 0 76px; height: 76px; padding: 0; border: 0; border-radius: 12px; overflow: hidden; cursor: pointer; background: none; opacity: .7; transition: opacity .2s; }
.strip button:hover { opacity: 1; }
.strip button.on { opacity: 1; box-shadow: 0 0 0 2px var(--lav-50), 0 0 0 4px var(--violet-500); }
.strip img { width: 100%; height: 100%; object-fit: cover; }
.info { display: flex; flex-direction: column; gap: 14px; padding: 26px; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); position: sticky; top: 96px; grid-row: span 2; }
.info h1 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; overflow-wrap: anywhere; }
.bigprice { font: 800 clamp(32px, 4vw, 42px) var(--display); color: var(--violet-500); }
.soldnote { font-weight: 600; }
.desc { padding: 26px; background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); min-width: 0; }
.desc h2 { font-size: 22px; font-weight: 800; margin-bottom: 10px; }
.desc p { white-space: pre-line; overflow-wrap: anywhere; color: var(--ink-soft); }

.foot { background: var(--night); color: var(--on-dark-soft); padding: 26px 0; font-size: 14px; }
.foot-in { display: flex; justify-content: space-between; align-items: center; gap: 10px 24px; flex-wrap: wrap; }
.foot a { color: var(--on-dark); }
.wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 40; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: var(--whatsapp); color: #fff; box-shadow: 0 12px 28px -8px rgba(18, 140, 75, .8); transition: transform .2s; }
.wa-float:hover { transform: scale(1.07); }
.wa-float svg { width: 32px; height: 32px; }

/* Admin */
.is-admin .page { max-width: 880px; }
.bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 22px; }
.bar h1 { font-size: 32px; font-weight: 800; }
.bar small { font: 500 17px var(--text); color: var(--ink-soft); }
.panel { background: #fff; border-radius: var(--r-md); box-shadow: var(--shadow); padding: 26px; margin-bottom: 20px; display: flex; flex-direction: column; gap: 16px; }
.panel h2 { font-size: 20px; font-weight: 800; }
.panel.narrow { max-width: 400px; margin: 56px auto; }
.panel.narrow h1 { font-size: 28px; font-weight: 800; }
label, .flabel { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 14px; }
.flabel { flex-direction: row; gap: 8px; align-items: baseline; }
.flabel small { font-weight: 400; color: var(--ink-soft); }
.field { display: flex; flex-direction: column; gap: 10px; }
input:not([type=file]), select, textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--lav-200); border-radius: var(--r-sm); background: var(--lav-50); color: var(--ink); font: 400 16px var(--text); transition: border-color .2s, background .2s; }
input:not([type=file]):focus, select:focus, textarea:focus { outline: 0; border-color: var(--violet-500); background: #fff; box-shadow: 0 0 0 3px rgba(94, 47, 240, .14); }
.upload { flex-direction: row; align-self: flex-start; }
.inline { display: flex; gap: 10px; }
.inline .btn { flex: none; }
.steps { margin: 0; padding-left: 20px; color: var(--ink-soft); }
details summary { cursor: pointer; font-size: 14px; color: var(--ink-soft); }
details[open] { display: flex; flex-direction: column; gap: 10px; }
.note { background: var(--lav-100); border-radius: var(--r-sm); padding: 12px 16px; margin: 0 0 18px; color: var(--ink-soft); }
.note a { color: var(--violet-500); }
.err { background: #fdecef; border-radius: var(--r-sm); padding: 12px 16px; color: #8f1c37; }
[hidden] { display: none !important; }
.photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
.photos:empty { display: none; }
.photo { border-radius: 12px; overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--lav-200); }
.photo:first-child { box-shadow: 0 0 0 2px var(--violet-500); }
.photo img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.photo div { display: flex; }
.photo button { flex: 1; min-height: 36px; background: none; border: 0; font-size: 17px; color: var(--ink-soft); cursor: pointer; }
.photo button:hover { background: var(--lav-100); color: var(--violet-500); }
.rows { display: flex; flex-direction: column; gap: 10px; }
.row { display: flex; align-items: center; gap: 14px; background: #fff; border-radius: 14px; box-shadow: var(--shadow); padding: 10px 16px 10px 10px; flex-wrap: wrap; }
.rthumb { flex: 0 0 60px; width: 60px; height: 60px; border-radius: 10px; overflow: hidden; background: var(--lav-100); }
.rthumb img { width: 100%; height: 100%; object-fit: cover; }
.rmain { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; }
.rmain a { text-decoration: none; }
.row select { width: auto; padding: 7px 10px; font-size: 14px; }

@media (max-width: 900px) {
  .hero { padding: 132px 0 72px; }
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .ad { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .info { position: static; grid-row: auto; }
  .section { padding: 72px 0; }
}
@media (max-width: 640px) {
  .top-cta { display: none; }
  .nav a { padding: 6px 12px 6px 0; font-size: 14px; }
  .hero-ctas .btn { width: 100%; }
  .inline { flex-direction: column; }
  .page { padding-block: 24px 88px; }
  .wa-float { width: 52px; height: 52px; right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .orb { animation: none; }
  .card, .btn, .thumb img, .latest img { transition: none; }
}

/* Preço e reação */
.price-cta { display: inline-flex; align-items: center; gap: 6px; font: 700 15px var(--display); color: var(--violet-500); }
.price-cta svg { width: 16px; height: 16px; transition: transform .2s; }
.card:hover .price-cta svg { transform: translateX(3px); }
.card.sold .price-cta { color: var(--ink-soft); }
.card.sold .price-cta svg { display: none; }
.cta-row { display: flex; flex-direction: column; gap: 14px; }
.info .btn, #priceBox .btn { width: 100%; }
.react { border: 0; border-radius: var(--r-lg); padding: 30px 26px 26px; width: min(440px, calc(100vw - 32px)); color: var(--ink); box-shadow: 0 40px 80px -30px rgba(12, 7, 23, .6); text-align: center; }
.react::backdrop { background: rgba(12, 7, 23, .6); backdrop-filter: blur(3px); }
.react h2 { font-size: 24px; font-weight: 800; margin-bottom: 20px; }
.react-x { position: absolute; top: 10px; right: 14px; background: none; border: 0; font-size: 26px; line-height: 1; color: var(--ink-soft); cursor: pointer; padding: 6px; }
.react-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.react-opts button { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 6px; border: 0; border-radius: var(--r-md); background: var(--lav-100); color: var(--ink); font: 600 15px var(--text); cursor: pointer; transition: transform .2s, background .2s; }
.react-opts button:hover { transform: translateY(-3px); background: var(--lav-200); }
.react-opts span { font-size: 30px; line-height: 1; }
.react-done { display: flex; flex-direction: column; gap: 16px; color: var(--ink-soft); }

/* Vendedor */
.agent-launch { position: fixed; right: 22px; bottom: 22px; z-index: 45; display: grid; place-items: center; width: 58px; height: 58px; border: 0; border-radius: 50%; background: var(--violet-500); color: #fff; cursor: pointer; box-shadow: 0 12px 28px -8px rgba(94, 47, 240, .8); transition: transform .2s; }
.agent-launch:hover { transform: scale(1.07); }
.agent-launch svg { width: 26px; height: 26px; }
.has-wa .agent-launch { bottom: 92px; }
.agent-teaser { position: fixed; right: 92px; bottom: 26px; z-index: 45; width: min(300px, calc(100vw - 116px)); background: #fff; border-radius: 16px 16px 4px 16px; box-shadow: 0 20px 44px -14px rgba(60, 28, 105, .45); padding: 12px 14px 8px; animation: msg-in .3s ease both; }
.has-wa .agent-teaser { bottom: 96px; }
.teaser-text { display: block; width: 100%; background: none; border: 0; padding: 0; text-align: left; font: 400 14px/1.45 var(--text); color: var(--ink); cursor: pointer; }
.teaser-x { background: none; border: 0; padding: 6px 0 2px; font: 500 13px var(--text); color: var(--ink-soft); cursor: pointer; text-decoration: underline; }
.agent { position: fixed; right: 22px; bottom: 22px; z-index: 60; display: flex; flex-direction: column; width: min(370px, calc(100vw - 32px)); height: min(540px, calc(100dvh - 96px)); background: #fff; border-radius: var(--r-md); overflow: hidden; box-shadow: 0 40px 80px -24px rgba(12, 7, 23, .55); animation: msg-in .25s ease both; }
.agent-h { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: var(--grad-dark); color: #fff; }
.agent-h strong { display: block; font: 700 15px var(--display); }
.agent-h small { color: var(--on-dark); font-size: 12px; }
.agent-x { background: none; border: 0; color: #fff; font-size: 26px; line-height: 1; cursor: pointer; padding: 4px; }
.agent-log { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 8px; background: var(--lav-50); }
.msg { max-width: 86%; padding: 9px 13px; border-radius: 15px; font-size: 14px; line-height: 1.45; overflow-wrap: anywhere; }
.msg.bot { align-self: flex-start; background: #fff; box-shadow: inset 0 0 0 1px var(--lav-200); border-bottom-left-radius: 4px; }
.msg.me { align-self: flex-end; background: var(--violet-500); color: #fff; border-bottom-right-radius: 4px; }
.msg.typing { color: var(--ink-soft); }
.agent-log .btn { align-self: flex-start; white-space: normal; text-align: center; }
.sugs { display: flex; flex-direction: column; gap: 6px; }
.sug { display: flex; align-items: center; gap: 10px; padding: 6px 12px 6px 6px; background: #fff; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--lav-200); text-decoration: none; font-size: 13px; font-weight: 500; line-height: 1.3; transition: box-shadow .2s; }
.sug:hover { box-shadow: inset 0 0 0 1.5px var(--violet-500); }
.sug img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: none; }
.sug span { flex: 1; min-width: 0; }
.sug b { color: var(--violet-500); font-weight: 600; }
.agent-f { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--lav-200); }
.agent-f input { flex: 1; min-width: 0; padding: 10px 14px; border-radius: 999px; font-size: 16px; }
@keyframes msg-in { from { opacity: 0; transform: translateY(10px); } }

/* Configuração da IA */
.fit { align-self: flex-start; }
.stack { display: flex; flex-direction: column; gap: 14px; }
.note.ok { margin: 0; }

/* Respostas de um toque */
.quick { display: flex; flex-wrap: wrap; gap: 8px; }
.quick:empty { display: none; }
.quick button { min-height: 44px; padding: 8px 15px; border: 0; border-radius: 999px; background: var(--lav-100); color: var(--violet-500); box-shadow: inset 0 0 0 1px rgba(94, 47, 240, .3); font: 600 14px/1.2 var(--text); cursor: pointer; transition: background .2s, color .2s; }
.quick button:hover, .quick button:active { background: var(--violet-500); color: #fff; }
.agent-teaser .quick { margin-top: 10px; }
.agent-log .quick { justify-content: flex-end; }

/* Microfone do chat */
.agent-mic { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--lav-100); color: var(--violet-500); cursor: pointer; transition: background .2s, color .2s; }
.agent-mic svg { width: 21px; height: 21px; }
.agent-mic:hover { background: var(--lav-200); }
.agent-mic.rec { background: var(--danger); color: #fff; animation: mic-pulse 1.4s ease-in-out infinite; }
.agent-f input:disabled { opacity: .75; }
@keyframes mic-pulse { 50% { box-shadow: 0 0 0 8px rgba(192, 38, 74, .18); } }
@media (prefers-reduced-motion: reduce) { .agent-mic.rec { animation: none; } }

/* Fotos no admin */
.drop { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 22px; border: 1.5px dashed var(--lav-300); border-radius: var(--r-md); background: var(--lav-50); text-align: center; font-weight: 400; cursor: pointer; transition: border-color .2s, background .2s; }
.drop strong { color: var(--violet-500); font-size: 15px; }
.drop span { color: var(--ink-soft); font-size: 14px; }
.drop:hover, .drop.over { border-color: var(--violet-500); background: var(--lav-100); }

/* Relatórios */
.is-admin .page:has(.tiles) { max-width: 1040px; }
.tabs.flat { margin: 0; padding: 2px; }
.lede { margin: -12px 0 20px; }
.bar-h { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.panel .tiles { margin-bottom: 0; }
.tiles.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tile { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: #fff; border-radius: 14px; box-shadow: var(--shadow); }
.panel .tile { background: var(--lav-50); box-shadow: none; }
.tile span { font-size: 13px; color: var(--ink-soft); }
.tile strong { font: 800 28px/1.1 var(--display); color: var(--ink); }
.bars { display: flex; align-items: flex-end; gap: 2px; height: 150px; border-bottom: 1px solid var(--lav-200); }
.bar-col { position: relative; flex: 1; height: 100%; display: flex; align-items: flex-end; min-width: 0; }
.vbar { width: 100%; max-width: 22px; margin-inline: auto; background: var(--violet-500); border-radius: 4px 4px 0 0; }
.bar-col:hover .vbar, .bar-col:focus .vbar { background: var(--violet-400); }
.tip { position: absolute; bottom: calc(100% - 26px); left: 50%; transform: translateX(-50%); padding: 4px 9px; border-radius: 8px; background: var(--night); color: #fff; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; z-index: 2; }
.bar-col:hover .tip, .bar-col:focus .tip { opacity: 1; }
.bars-axis { display: flex; justify-content: space-between; font-size: 12px; color: var(--ink-soft); }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: right; padding: 8px 10px; font-size: 12px; font-weight: 600; color: var(--ink-soft); white-space: nowrap; border-bottom: 1px solid var(--lav-200); }
td { text-align: right; padding: 11px 10px; border-bottom: 1px solid var(--lav-100); font-variant-numeric: tabular-nums; white-space: nowrap; }
th:first-child, td.t-title { text-align: left; }
td.t-title { white-space: normal; min-width: 200px; font-weight: 500; }
td.t-title a { text-decoration: none; }
td.t-title a:hover { color: var(--violet-500); }
td.t-title small { display: block; font-weight: 400; color: var(--ink-soft); }
.best { padding: 16px 18px; border-radius: 14px; background: var(--grad-dark); color: #fff; }
.best span { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--violet-300); }
.best strong { display: block; font: 800 20px/1.2 var(--display); margin: 4px 0 6px; }
.best p { color: var(--on-dark); font-size: 15px; }
.potentials { display: flex; flex-direction: column; gap: 10px; }
.potential { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 12px; background: var(--lav-50); font-size: 15px; }
.potential-h { display: flex; justify-content: space-between; gap: 12px; }
.potential-h b { color: var(--violet-500); white-space: nowrap; font-family: var(--display); }
.panel h3 { font-size: 16px; font-weight: 700; }
.steps-list { list-style: disc; padding-left: 20px; color: var(--ink-soft); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { padding: 6px 13px; border-radius: 999px; background: var(--lav-100); font-size: 14px; }
.chips b { color: var(--violet-500); }
.chatlog { border-top: 1px solid var(--lav-100); padding-top: 10px; }
.chatlog summary { color: var(--ink); }
.chatlog p { font-size: 14px; padding: 7px 12px; border-radius: 10px; max-width: 86%; overflow-wrap: anywhere; }
.chatlog .from-user { align-self: flex-end; background: var(--lav-100); }
.chatlog .from-bot { align-self: flex-start; box-shadow: inset 0 0 0 1px var(--lav-200); }
.prose { max-width: 720px; display: flex; flex-direction: column; gap: 14px; }
.prose h1 { font-size: 36px; font-weight: 800; }
.prose p { color: var(--ink-soft); }
@media (max-width: 760px) {
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile strong { font-size: 24px; }
  .agent { right: 8px; bottom: 8px; width: calc(100vw - 16px); height: calc(100dvh - 16px); }
  .wa-float { z-index: 44; }
  .has-wa .agent-launch { bottom: 78px; right: 16px; width: 52px; height: 52px; }
  .agent-launch { right: 16px; bottom: 16px; width: 52px; height: 52px; }
  .agent-teaser { right: 76px; bottom: 20px; }
  .has-wa .agent-teaser { bottom: 82px; }
}
@media (prefers-reduced-motion: reduce) { .agent, .agent-teaser { animation: none; } }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Celular: anúncios primeiro, ações no alcance do polegar */
:root { --safe-b: env(safe-area-inset-bottom, 0px); --cta-h: 72px; }
@media (hover: none) {
  .card:hover, .btn:hover { transform: none; }
  .card:hover { box-shadow: var(--shadow); }
  .card:hover .thumb img, .latest:hover img { transform: none; }
  .card:active { transform: scale(.98); }
  .btn:active, .react-opts button:active { transform: scale(.97); }
  .tab:hover:not(.on) { color: var(--ink-soft); box-shadow: inset 0 0 0 1px var(--lav-200); }
}
@media (max-width: 760px) {
  .orb { animation: none; filter: blur(50px); }
  .row select, .agent-f input, input:not([type=file]), select, textarea { font-size: 16px; }
  .photo button { min-height: 44px; }
  details summary { min-height: 44px; display: flex; align-items: center; gap: 6px; }
  .link, .crumb a, .foot a { display: inline-flex; align-items: center; min-height: 44px; }
  .row { gap: 6px 12px; }
  .row select { min-height: 44px; }
  .bar .tabs.flat { flex: 0 1 auto; }
  .tiles { gap: 10px; }
  .panel { padding: 20px 18px; }
}
@media (max-width: 640px) {
  body { font-size: 15px; }
  .wrap { padding-inline: 16px; }
  .top-in { min-height: 60px; padding-block: 8px; flex-wrap: nowrap; }
  .brand { min-height: 44px; font-size: 18px; }
  .brand img { width: 28px; height: 28px; }
  .top .nav { display: none; }
  .is-admin .top-in { flex-wrap: wrap; padding-bottom: 0; gap: 0; }
  .is-admin .top .nav { display: flex; flex-wrap: nowrap; width: 100%; overflow-x: auto; scrollbar-width: none; margin-inline: -8px; }
  .is-admin .nav a, .is-admin .navlink { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; padding-inline: 10px; }

  .hero { padding: 80px 0 26px; }
  .hero .pill, .hero .hero-ctas, .hero .proof, .hero .glass { display: none; }
  .hero h1 { font-size: clamp(32px, 9.4vw, 40px); margin: 0 0 10px; }
  .lead { font-size: 15px; }
  .band { padding: 22px 0 20px; }
  .band h1 { font-size: 30px; margin-top: 4px; }
  .section, .section.tight { padding: 0 0 56px; }
  .section-head { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

  .tabs, .tabs.center { position: sticky; top: 60px; z-index: 20; justify-content: flex-start; margin: 0 -16px 8px; padding: 10px 16px; background: var(--lav-50); }
  .top.over ~ main .tabs { top: 60px; }
  .tab { display: inline-flex; align-items: center; min-height: 44px; }
  .tab.on { box-shadow: none; }
  .tabs.flat { position: static; margin: 0; padding: 0; background: none; }

  .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .card { border-radius: 14px; }
  .card-b { padding: 10px 12px 12px; gap: 4px; }
  .card-b h3 { font-size: 14px; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .tag { font-size: 11px; padding: 2px 8px; }
  .price-cta { font-size: 13px; }
  .stamp { top: 8px; left: 8px; font-size: 12px; padding: 3px 10px; }

  .page { padding-block: 0 56px; }
  .is-admin .page { padding-block: 20px 56px; }
  .crumb { font-size: 13px; margin: 0; padding-block: 2px; }
  .ad { gap: 14px; }
  .stage { margin-inline: -16px; border-radius: 0; box-shadow: none; aspect-ratio: 1; }
  .slide img { object-fit: cover; }
  .strip { display: none; }
  .info, .desc { padding: 18px; border-radius: 14px; }
  .info { gap: 10px; }
  .info h1 { font-size: 22px; }

  /* Barra de ação fixa no anúncio */
  .cta-row { position: fixed; inset: auto 0 0; z-index: 30; flex-direction: row; align-items: center; gap: 10px; padding: 10px 16px calc(10px + var(--safe-b)); background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 -8px 24px -14px rgba(60, 28, 105, .4); }
  .cta-row > * { flex: 1 1 0; min-width: 0; }
  .cta-row .btn { width: 100%; min-height: 52px; padding: 0 12px; box-shadow: none; }
  .cta-row .wa-long { display: none; }
  .cta-row .bigprice { font-size: clamp(21px, 6.4vw, 26px); text-align: center; white-space: nowrap; }
  body:has(.cta-row) .foot { padding-bottom: calc(var(--cta-h) + 20px + var(--safe-b)); }
  body[data-ad] .wa-float { display: none; }
  body:has(.cta-row) .agent-launch, body:has(.cta-row).has-wa .agent-launch { bottom: calc(var(--cta-h) + 14px + var(--safe-b)); }
  body:has(.cta-row) .agent-teaser, body:has(.cta-row).has-wa .agent-teaser { bottom: calc(var(--cta-h) + 14px + var(--safe-b)); }

  /* Flutuantes */
  .wa-float { right: 16px; bottom: calc(16px + var(--safe-b)); width: 52px; height: 52px; }
  .agent-launch { right: 16px; bottom: calc(16px + var(--safe-b)); width: 52px; height: 52px; }
  .has-wa .agent-launch { right: 16px; bottom: calc(78px + var(--safe-b)); }
  .agent-teaser { right: 76px; left: 16px; width: auto; bottom: calc(16px + var(--safe-b)); }
  .has-wa .agent-teaser { bottom: calc(78px + var(--safe-b)); }
  /* Com o chat ligado, ele já leva ao WhatsApp: um flutuante só sobre a grade. */
  body[data-ai] .wa-float { display: none; }
  body[data-ai].has-wa:not(:has(.cta-row)) .agent-launch, body[data-ai].has-wa:not(:has(.cta-row)) .agent-teaser { bottom: calc(16px + var(--safe-b)); }
  .teaser-x { min-height: 44px; display: inline-flex; align-items: center; }

  /* Popup e chat sobem de baixo */
  .react { margin: auto 0 0; width: 100%; max-width: none; border-radius: var(--r-lg) var(--r-lg) 0 0; padding: 26px 18px calc(20px + var(--safe-b)); animation: sheet-in .25s ease both; }
  .react h2 { font-size: 21px; margin-bottom: 16px; padding-inline: 28px; }
  .react-x { width: 44px; height: 44px; top: 6px; right: 6px; padding: 0; }
  .react-opts button { min-height: 92px; padding: 14px 4px; }
  .agent { inset: auto 0 var(--kb, 0px) 0; width: 100%; height: min(var(--vh, 100dvh), 78dvh); border-radius: var(--r-md) var(--r-md) 0 0; box-shadow: 0 -20px 60px rgba(12, 7, 23, .45); animation: sheet-in .25s ease both; }
  .agent-x { width: 44px; height: 44px; }
  .agent-log { overscroll-behavior: contain; }
  .agent-f { padding: 8px 10px calc(8px + var(--safe-b)); }
  .agent-f .btn { min-height: 44px; }
  .sug { min-height: 56px; }
  .agent-log .btn.small { min-height: 44px; }
  .foot-in { gap: 0 16px; }
  .inline .btn { width: 100%; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .agent { height: calc(var(--vh, 100dvh) - 84px); bottom: var(--kb, 8px); }
  .react { max-height: 100dvh; padding-block: 14px; }
  .react h2 { margin-bottom: 10px; }
  .react-opts button { min-height: 64px; padding: 8px 4px; }
  .stage { aspect-ratio: 16 / 9; }
}
@keyframes sheet-in { from { transform: translateY(100%); } }
@media (prefers-reduced-motion: reduce) { .react, .agent { animation: none; } }
