/* Ligaram-me — tema v2 (portado do protótipo Lovable "harmonious-web-redesign").
   CSS puro, sem build. Tokens iguais aos do protótipo. */
/* Fontes alojadas localmente (variáveis, subset latin) — evita o CSS bloqueante do Google Fonts. */
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/manrope-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Sora"; font-style: normal; font-weight: 600 800; font-display: swap; src: url(../fonts/sora-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --radius: .5rem;
  --background: oklch(0.982 0.004 220);
  --foreground: oklch(0.277 0.072 249);
  --card: oklch(1 0 0);
  --primary: oklch(0.539 0.091 210);
  --primary-hover: oklch(0.42 0.085 232);
  --primary-foreground: oklch(0.99 0.002 220);
  --secondary: oklch(0.95 0.026 203);
  --muted: oklch(0.955 0.009 225);
  --muted-foreground: oklch(0.49 0.041 235);
  --surface-strong: oklch(0.277 0.072 249);
  --signal: oklch(0.735 0.098 188);
  --danger: oklch(0.577 0.245 27.325);
  --safe: oklch(0.696 0.17 162.48);
  --safe-text: oklch(0.5 0.12 162);
  --warning: oklch(0.769 0.188 70.08);
  --warning-text: oklch(0.52 0.12 65);
  --warning-foreground: oklch(0.277 0.072 249);
  --danger: oklch(0.577 0.245 27.325);
  --border: oklch(0.9 0.015 230);
  --font-sans: "Manrope", system-ui, sans-serif;
  --font-display: "Sora", "Manrope", system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; border-color: var(--border); }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.v2 { margin: 0; background: var(--background); color: var(--foreground); font-family: var(--font-sans); line-height: 1.5; -webkit-font-smoothing: antialiased; }
:where(.v2) a { color: inherit; text-decoration: none; }
:where(.v2) :is(h1, h2, h3, p, ul, ol, dl, dd) { margin: 0; padding: 0; }
:where(.v2) :is(ul, ol) { list-style: none; }
:where(.v2) :is(button, input, textarea, select) { font: inherit; color: inherit; }
.v2-icon { width: 1rem; height: 1rem; flex: none; }
.v2-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.v2-wrap { max-width: 80rem; margin: 0 auto; padding: 0 1rem; }
@media (min-width: 640px) { .v2-wrap { padding: 0 1.5rem; } }

/* Botões e campos */
.v2-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 2.75rem; padding: 0 1.25rem; border: 0; border-radius: calc(var(--radius) - 2px); background: var(--primary); color: var(--primary-foreground); font-weight: 700; font-size: .875rem; cursor: pointer; transition: background .15s; }
.v2-btn:hover { background: var(--primary-hover); }
.v2-btn--lg { height: 3.5rem; padding: 0 1.5rem; font-size: 1rem; }
.v2-btn--icon { width: 2.75rem; padding: 0; }
.v2-input { height: 2.75rem; width: 100%; border: 1px solid var(--border); border-radius: calc(var(--radius) - 2px); background: var(--background); padding: 0 1rem; font-size: .9375rem; outline: none; }
.v2-card .v2-input, .v2-form .v2-input { background: var(--card); }
textarea.v2-input { height: auto; padding: .75rem; line-height: 1.5; }
.v2-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in oklch, var(--primary) 20%, transparent); }

/* Cabeçalho */
.v2-header { position: sticky; top: 0; z-index: 50; background: color-mix(in oklch, var(--card) 95%, transparent); backdrop-filter: blur(8px); border-bottom: 1px solid var(--border); }
.v2-header__in { display: flex; align-items: center; gap: 1.25rem; min-height: 4rem; }
.v2-brand { display: flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-weight: 800; font-size: 1.125rem; flex: none; }
.v2-brand__mark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: calc(var(--radius) - 2px); background: var(--primary); color: var(--primary-foreground); }
.v2-nav { display: none; align-items: center; gap: 1.5rem; margin-left: auto; font-size: .875rem; font-weight: 600; color: var(--muted-foreground); }
.v2-nav a:hover { color: var(--foreground); }
@media (min-width: 768px) { .v2-nav { display: flex; } }
.v2-header__search { position: relative; margin-left: auto; width: 100%; max-width: 24rem; }
.v2-nav + .v2-header__search { margin-left: 0; }
.v2-header__search .v2-input { padding-right: 3rem; }
.v2-header__search .v2-btn { position: absolute; right: 0; top: 0; border-radius: 0 calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0; }
.v2-brand span.v2-brand__text { display: inline; }
@media (max-width: 639px) {
  .v2-brand span.v2-brand__text { font-size: .8rem; }
  .v2-header:has(.v2-header__search .v2-input:focus) .v2-brand__text,
  .v2-header:has(.v2-header__search .v2-input:not(:placeholder-shown)) .v2-brand__text { display: none; }
}

/* Layout principal */
.v2-main { padding-top: 2.5rem; padding-bottom: 1rem; }
.v2-grid { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 1024px) { .v2-grid { grid-template-columns: minmax(0, 1fr) 20rem; } }
@media (min-width: 1280px) { .v2-grid { gap: 3.5rem; } }
.v2-stack > * + * { margin-top: 3rem; }
.v2-aside > * + * { margin-top: 1.5rem; }
@media (min-width: 1024px) { .v2-aside { position: sticky; top: 6rem; } }
.v2-crumbs { margin-bottom: 2rem; font-size: .75rem; font-weight: 600; color: var(--muted-foreground); }
.v2-crumbs a:hover { color: var(--foreground); }
.v2-crumbs span.sep { margin: 0 .5rem; }
.v2-crumbs strong { color: var(--foreground); }

/* Tipografia utilitária */
.v2-eyebrow { font-size: .875rem; font-weight: 600; color: var(--primary); }
.v2-h2 { margin-top: .25rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; line-height: 1.25; }
.v2-muted { color: var(--muted-foreground); }
.v2-sechead { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--border); }
.v2-sechead small { font-size: .875rem; color: var(--muted-foreground); }

/* Cartões */
.v2-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; }
.v2-soft { background: color-mix(in oklch, var(--secondary) 60%, transparent); border-radius: var(--radius); padding: 1.5rem; }
@media (min-width: 640px) { .v2-soft { padding: 2rem; } }
.v2-list > * + * { margin-top: 1rem; }
.v2-report__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.v2-report__num { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; color: var(--primary); }
.v2-report__num:hover { text-decoration: underline; }
.v2-pill { display: inline-block; border-radius: 999px; background: var(--secondary); padding: .25rem .75rem; font-size: .75rem; font-weight: 700; color: var(--primary); }
.v2-pill--high { background: color-mix(in oklch, var(--danger) 12%, white); color: var(--danger); }
.v2-pill--medium { background: color-mix(in oklch, var(--warning) 15%, white); color: var(--warning-text); }
.v2-pill--low { background: color-mix(in oklch, var(--safe) 14%, white); color: var(--safe-text); }
.v2-report__text { margin-top: .75rem; line-height: 1.75; overflow-wrap: anywhere; }
.v2-time { display: flex; align-items: center; gap: .25rem; margin-top: .75rem; font-size: .75rem; color: var(--muted-foreground); }
.v2-time .v2-icon { width: .75rem; height: .75rem; }
.v2-avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: var(--muted); font-family: var(--font-display); font-weight: 700; color: var(--primary); }
.v2-comment { display: flex; gap: 1rem; align-items: flex-start; }
.v2-comment h3 { font-size: 1rem; font-weight: 700; }
.v2-comment__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; }
.v2-comment__meta span { font-size: .75rem; color: var(--muted-foreground); }
.v2-comment__meta strong { color: var(--primary); }
.v2-empty { color: var(--muted-foreground); line-height: 1.75; }

/* Hero (home) */
.v2-hero { background: var(--surface-strong); background-image: linear-gradient(135deg, oklch(0.277 0.072 249) 0%, oklch(0.34 0.08 235) 55%, oklch(0.45 0.09 210) 100%); color: var(--primary-foreground); }
.v2-hero__in { max-width: 56rem; margin: 0 auto; padding: 4rem 1rem; text-align: center; }
@media (min-width: 1024px) { .v2-hero__in { padding: 6rem 1.5rem; } }
.v2-hero__eyebrow { font-size: .875rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--signal); }
.v2-hero h1 { margin-top: 1rem; font-family: var(--font-display); font-size: 2.25rem; font-weight: 800; line-height: 1.1; }
@media (min-width: 640px) { .v2-hero h1 { font-size: 3.75rem; } }
.v2-hero__lead { max-width: 42rem; margin: 1.25rem auto 0; font-size: 1.125rem; line-height: 2rem; opacity: .75; }
.v2-hero__form { display: flex; gap: .5rem; max-width: 36rem; margin: 2.25rem auto 0; }
.v2-hero__form .v2-input { height: 3.5rem; flex: 1; padding: 0 1.25rem; color: var(--foreground); }
.v2-hero__note { margin-top: 1rem; font-size: .75rem; opacity: .6; }
.v2-ad-wrap { padding-top: 2rem; }

/* Páginas de número */
.v2-title { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.v2-title h1 { font-family: var(--font-display); font-size: 2.25rem; font-weight: 800; line-height: 1.1; }
@media (min-width: 640px) { .v2-title h1 { font-size: 3rem; } }
.v2-chip { display: inline-flex; align-items: center; gap: .5rem; border-radius: 999px; background: var(--secondary); padding: .5rem 1rem; font-size: .75rem; font-weight: 700; text-transform: uppercase; color: var(--primary); }
.v2-chip--high { background: color-mix(in oklch, var(--danger) 12%, white); color: var(--danger); }
.v2-chip--medium { background: color-mix(in oklch, var(--warning) 15%, white); color: var(--warning-text); }
.v2-chip--low { background: color-mix(in oklch, var(--safe) 14%, white); color: var(--safe-text); }
.v2-chip--unknown { background: var(--muted); color: var(--muted-foreground); }
.v2-lead { margin-top: 1rem; max-width: 42rem; line-height: 1.75; color: var(--muted-foreground); }
.v2-facts { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 2rem; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); }
@media (min-width: 768px) { .v2-facts { grid-template-columns: repeat(4, 1fr); } }
.v2-facts > div { padding: 1.25rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.v2-facts > div:nth-child(2n) { border-right: 0; }
@media (min-width: 768px) { .v2-facts > div { border-bottom: 0; } .v2-facts > div:nth-child(2n) { border-right: 1px solid var(--border); } .v2-facts > div:last-child { border-right: 0; } }
.v2-facts dt { font-size: .75rem; font-weight: 700; text-transform: uppercase; color: var(--muted-foreground); }
.v2-facts dd { margin-top: .5rem; font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; }
.v2-facts .risk--high dd { color: var(--danger); }
.v2-facts .risk--medium dd { color: var(--warning-text); }
.v2-facts .risk--low dd { color: var(--safe-text); }
.v2-summary { background: var(--surface-strong); color: var(--primary-foreground); border-radius: var(--radius); padding: 1.5rem; }
@media (min-width: 640px) { .v2-summary { padding: 2rem; } }
.v2-summary__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.v2-summary small.k { font-size: .75rem; font-weight: 700; text-transform: uppercase; color: var(--signal); }
.v2-summary h2 { margin-top: .5rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 700; }
.v2-summary .badge { border: 1px solid rgb(255 255 255 / .15); border-radius: 999px; padding: .25rem .75rem; font-size: .75rem; }
.v2-summary__cols { display: grid; gap: 1.5rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .v2-summary__cols { grid-template-columns: 1fr 1fr; } }
.v2-summary__cols > div { border-left: 2px solid var(--signal); padding-left: 1rem; }
.v2-summary__cols strong { display: block; font-size: 1.125rem; }
.v2-summary__cols span { display: block; margin-top: .25rem; font-size: .875rem; opacity: .7; }
.v2-bars { margin-top: 1.75rem; font-size: .875rem; }
.v2-bars li { display: grid; grid-template-columns: 9rem 1fr 4.5rem; align-items: center; gap: .75rem; margin-bottom: .5rem; }
.v2-bars .bar { height: .5rem; border-radius: 999px; background: rgb(255 255 255 / .15); overflow: hidden; }
.v2-bars .bar span { display: block; height: 100%; background: var(--signal); }
.v2-bars .n { text-align: right; opacity: .75; }
@media (max-width: 480px) { .v2-bars li { grid-template-columns: 6.5rem 1fr 3.5rem; } }

/* Escala de risco (Seguro / Incómodo / Perigoso) */
.v2-risk { background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; }
@media (min-width: 640px) { .v2-risk { padding: 2rem; } }
.v2-risk__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem; }
.v2-risk__head small { font-size: .875rem; color: var(--muted-foreground); }
.v2-gauge { margin-top: 2rem; }
.v2-gauge__track { position: relative; }
.v2-gauge__bar { display: flex; height: .75rem; border-radius: 999px; overflow: hidden; }
.v2-gauge__bar span { width: 33.3333%; }
.v2-gauge__bar .s { background: color-mix(in oklch, var(--safe) 25%, transparent); }
.v2-gauge__bar .w { background: var(--warning); }
.v2-gauge__bar .d { background: color-mix(in oklch, var(--danger) 25%, transparent); }
.v2-gauge--low .v2-gauge__bar .s, .v2-gauge--high .v2-gauge__bar .d { background: var(--safe); }
.v2-gauge--high .v2-gauge__bar .d { background: var(--danger); }
.v2-gauge--low .v2-gauge__bar .w, .v2-gauge--high .v2-gauge__bar .w { background: color-mix(in oklch, var(--warning) 25%, transparent); }
.v2-gauge__dot { position: absolute; top: 50%; width: 1.5rem; height: 1.5rem; transform: translate(-50%, -50%); border: 4px solid var(--card); border-radius: 50%; box-shadow: 0 1px 3px rgb(0 0 0 / .25); }
.v2-gauge--low .v2-gauge__dot { left: 16.6667%; background: var(--safe); }
.v2-gauge--medium .v2-gauge__dot { left: 50%; background: var(--warning); }
.v2-gauge--high .v2-gauge__dot { left: 83.3333%; background: var(--danger); }
.v2-gauge__labels { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: .75rem; text-align: center; font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.v2-gauge__labels .s { color: var(--safe-text); } .v2-gauge__labels .w { color: var(--warning-text); } .v2-gauge__labels .d { color: var(--danger); }
.v2-levels { display: grid; gap: 1rem; margin-top: 2rem; }
@media (min-width: 640px) { .v2-levels { grid-template-columns: repeat(3, 1fr); } }
.v2-level { border: 1px solid var(--border); border-radius: var(--radius); padding: 1.25rem; }
.v2-level h3 { display: flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-size: .875rem; font-weight: 700; }
.v2-level h3 .v2-icon { width: 1.25rem; height: 1.25rem; }
.v2-level p { margin-top: .5rem; font-size: .75rem; line-height: 1.25rem; color: var(--muted-foreground); }
.v2-level .now { margin-left: auto; border-radius: 999px; padding: .125rem .5rem; font-family: var(--font-sans); font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--warning-foreground); }
.v2-level--s .v2-icon { color: var(--safe); } .v2-level--w .v2-icon { color: var(--warning); } .v2-level--d .v2-icon { color: var(--danger); }
.v2-level--s.is-on { border-color: var(--safe); background: color-mix(in oklch, var(--safe) 10%, transparent); } .v2-level--s .now { background: var(--safe); color: white; }
.v2-level--w.is-on { border-color: var(--warning); background: color-mix(in oklch, var(--warning) 10%, transparent); } .v2-level--w .now { background: var(--warning); }
.v2-level--d.is-on { border-color: var(--danger); background: color-mix(in oklch, var(--danger) 10%, transparent); } .v2-level--d .now { background: var(--danger); color: white; }
.v2-insights { margin-top: 2rem; border-top: 1px solid var(--border); }
.v2-insights > div { display: flex; align-items: flex-start; gap: 1rem; padding: 1rem 0; }
.v2-insights > div + div { border-top: 1px solid var(--border); }
.v2-insights .ic { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: none; border-radius: 50%; background: var(--secondary); color: var(--primary); }
.v2-insights h3 { font-size: .875rem; font-weight: 700; }
.v2-insights p { margin-top: .25rem; font-size: .875rem; line-height: 1.5rem; color: var(--muted-foreground); }

/* Formulário */
.v2-form-box { border: 1px solid color-mix(in oklch, var(--primary) 20%, transparent); }
.v2-form { display: grid; gap: 1.25rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .v2-form { grid-template-columns: 1fr 1fr; } .v2-form .full { grid-column: 1 / -1; } }
.v2-form label { display: grid; gap: .5rem; font-size: .875rem; font-weight: 600; }
.v2-form label > span em { font-style: normal; font-weight: 400; color: var(--muted-foreground); }
/* Opções de classificação (cartões de escolha) */
.v2-opts { border: 0; margin: 0; padding: 0; min-width: 0; }
.v2-opts legend { padding: 0; font-size: .875rem; font-weight: 600; }
.v2-opts__hint { margin-top: .25rem; font-size: .75rem; line-height: 1.25rem; color: var(--muted-foreground); }
.v2-opts__grid { display: grid; gap: .75rem; margin-top: 1rem; }
@media (min-width: 640px) { .v2-opts__grid { grid-template-columns: 1fr 1fr; } }
.v2-form label.v2-opt { position: relative; display: flex; align-items: flex-start; gap: .75rem; padding: 1rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); cursor: pointer; font-weight: 400; transition: border-color .15s, background .15s; }
.v2-opt:hover { border-color: color-mix(in oklch, var(--primary) 40%, transparent); background: color-mix(in oklch, var(--secondary) 50%, transparent); }
.v2-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.v2-opt:has(input:focus-visible) { box-shadow: 0 0 0 3px color-mix(in oklch, var(--primary) 30%, transparent); }
.v2-opt__icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; flex: none; border-radius: 50%; background: var(--muted); color: var(--primary); }
.v2-opt__icon .v2-icon { width: 1rem; height: 1rem; }
.v2-opt__body { min-width: 0; flex: 1; display: block; }
.v2-opt__top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.v2-opt__top strong { font-family: var(--font-display); font-size: .875rem; font-weight: 700; }
.v2-opt__check { display: grid; place-items: center; width: 1.25rem; height: 1.25rem; flex: none; border: 1px solid var(--border); border-radius: 50%; background: var(--card); color: transparent; }
.v2-opt__check .v2-icon { width: .75rem; height: .75rem; }
.v2-opt__desc { display: block; margin-top: .25rem; font-size: .75rem; line-height: 1.25rem; color: var(--muted-foreground); }
.v2-opt:has(input:checked) .v2-opt__check { border-color: transparent; background: var(--primary); color: var(--primary-foreground); }
.v2-opt:has(input:checked) { border-color: var(--primary); background: color-mix(in oklch, var(--secondary) 70%, transparent); }
.v2-opt--warning .v2-opt__icon { background: color-mix(in oklch, var(--warning) 15%, transparent); color: var(--warning-text); }
.v2-opt--danger .v2-opt__icon { background: color-mix(in oklch, var(--danger) 15%, transparent); color: var(--danger); }
.v2-opt--safe .v2-opt__icon { background: color-mix(in oklch, var(--safe) 15%, transparent); color: var(--safe-text); }
.v2-opt--warning:has(input:checked) { border-color: var(--warning); background: color-mix(in oklch, var(--warning) 10%, transparent); }
.v2-opt--danger:has(input:checked) { border-color: var(--danger); background: color-mix(in oklch, var(--danger) 10%, transparent); }
.v2-opt--safe:has(input:checked) { border-color: var(--safe); background: color-mix(in oklch, var(--safe) 10%, transparent); }
.v2-alert { margin-top: 1.25rem; padding: 1rem 1.25rem; border-radius: calc(var(--radius) - 2px); font-size: .9rem; font-weight: 600; background: var(--card); }
.v2-alert--ok { color: var(--primary); display: flex; align-items: center; gap: .75rem; }
.v2-alert--err { color: var(--danger); border: 1px solid color-mix(in oklch, var(--danger) 35%, white); }
.v2-alert--test { color: var(--warning-text); border: 1px dashed var(--warning); }
.v2-hp { position: absolute; left: -9999px; }

/* Texto, chips, FAQ */
.v2-prose p { max-width: 48rem; line-height: 2; color: var(--muted-foreground); }
.v2-prose p + p { margin-top: 1.25rem; }
.v2-prose strong { color: var(--foreground); }
.v2-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.v2-chips > * { border-radius: calc(var(--radius) - 2px); background: var(--muted); padding: .35rem .8rem; font-size: .875rem; color: var(--muted-foreground); white-space: nowrap; }
.v2-chips a { color: var(--primary); font-weight: 600; }
.v2-chips a:hover { background: var(--secondary); }
.v2-chips a small { margin-left: .4rem; font-weight: 700; opacity: .7; }
.v2-faq { margin-top: 1.25rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.v2-faq details { padding: 1.25rem 0; }
.v2-faq details + details { border-top: 1px solid var(--border); }
.v2-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; cursor: pointer; list-style: none; font-weight: 600; }
.v2-faq summary::-webkit-details-marker { display: none; }
.v2-faq summary .v2-icon { transition: transform .15s; }
.v2-faq details[open] summary .v2-icon { transform: rotate(180deg); }
.v2-faq p { max-width: 48rem; margin-top: .75rem; padding-right: 2rem; font-size: .875rem; line-height: 1.75; color: var(--muted-foreground); }

/* Sidebar */
.v2-widget-title { display: flex; align-items: center; gap: .5rem; font-family: var(--font-display); font-size: 1rem; font-weight: 700; }
.v2-widget-title .v2-icon { width: 1.25rem; height: 1.25rem; color: var(--primary); }
.v2-ranking { margin-top: 1.25rem; }
.v2-ranking li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .75rem 0; font-size: .875rem; }
.v2-ranking li + li { border-top: 1px solid var(--border); }
.v2-ranking a { font-weight: 600; color: var(--primary); }
.v2-ranking a:hover { text-decoration: underline; }
.v2-count { border-radius: 4px; background: var(--muted); padding: .25rem .5rem; font-size: .75rem; font-weight: 700; color: var(--muted-foreground); }
.v2-tips { margin-top: 1.25rem; font-size: .875rem; line-height: 1.5; color: var(--muted-foreground); }
.v2-tips li { display: flex; gap: .5rem; }
.v2-tips li + li { margin-top: .75rem; }
.v2-tips .v2-icon { margin-top: .2rem; color: var(--primary); }
.v2-note { display: flex; align-items: flex-start; gap: .5rem; padding: 0 .25rem; font-size: .75rem; line-height: 1.4; color: var(--muted-foreground); }
.v2-note .v2-icon { margin-top: .1rem; width: 1rem; height: 1rem; }

/* Home: categorias e passos */
.v2-cats { display: grid; gap: 1rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .v2-cats { grid-template-columns: 1fr 1fr; } }
.v2-cats .v2-icon { width: 1.5rem; height: 1.5rem; color: var(--primary); }
.v2-cats h3 { margin-top: 1rem; font-weight: 700; }
.v2-cats p { margin-top: .5rem; font-size: .875rem; line-height: 1.5; color: var(--muted-foreground); }
.v2-steps { display: grid; gap: 1.5rem; margin-top: 1.5rem; }
@media (min-width: 640px) { .v2-steps { grid-template-columns: repeat(3, 1fr); } }
.v2-steps .ic { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--primary); color: var(--primary-foreground); }
.v2-steps .ic .v2-icon { width: 1.25rem; height: 1.25rem; }
.v2-steps h3 { margin-top: .75rem; font-weight: 700; }
.v2-steps p { margin-top: .25rem; font-size: .875rem; color: var(--muted-foreground); }

/* Listas de prefixos / números */
.v2-linklist { border: 1px solid var(--border); border-radius: var(--radius); background: var(--card); overflow: hidden; }
.v2-linklist a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.25rem; font-weight: 600; }
.v2-linklist a + a { border-top: 1px solid var(--border); }
.v2-linklist a:hover { background: var(--secondary); color: var(--primary); }
.v2-linklist small { font-weight: 400; color: var(--muted-foreground); }

/* Texto legal */
.v2-legal h1 { font-family: var(--font-display); font-size: 2.25rem; font-weight: 800; }
.v2-legal h2, .v2-legal h3 { margin-top: 2rem; font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; }
.v2-legal p, .v2-legal li { margin-top: 1rem; max-width: 48rem; line-height: 1.85; color: var(--muted-foreground); }
.v2-legal ul { list-style: disc; padding-left: 1.5rem; }
.v2-legal a { color: var(--primary); text-decoration: underline; }

/* Publicidade */
.v2-ad { width: 100%; }
.v2-ad__label { margin-bottom: .25rem; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-foreground); }
.v2-ad__box { display: flex; align-items: center; justify-content: center; width: 100%; border-radius: var(--radius); overflow: hidden; font-size: .75rem; color: var(--muted-foreground); }
/* O AdSense mede a largura do <ins>: tem de ocupar toda a caixa (com 0 px dá «No slot size for availableWidth=0» e não mostra anúncio). */
.v2-ad__box > ins.adsbygoogle { display: block; flex: 1 1 100%; width: 100%; min-width: 0; }
.v2-ad__box.v2-ad--leaderboard { min-height: 90px; } .v2-ad__box.v2-ad--inline { min-height: 120px; } .v2-ad__box.v2-ad--sidebar { min-height: 250px; }
@media (min-width: 768px) { .v2-ad__box.v2-ad--leaderboard { min-height: 100px; } }

.v2-subtitle { margin-top: 1.5rem; font-size: .875rem; font-weight: 700; color: var(--muted-foreground); }
.v2-subtitle + .v2-chips { margin-top: .75rem; }
.v2-facts dd a { color: var(--primary); }
.v2-facts dd a:hover { text-decoration: underline; }
.v2-report__text a { color: var(--primary); text-decoration: underline; overflow-wrap: anywhere; }
/* Rodapé grande: marca + 4 colunas */
.v2-footer { margin-top: 3rem; border-top: 1px solid var(--border); background: var(--card); }
.v2-footer__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; padding-top: 3rem; padding-bottom: 2.5rem; }
.v2-footer__brand { grid-column: 1 / -1; max-width: 28rem; }
@media (min-width: 900px) { .v2-footer__grid { grid-template-columns: 1.7fr repeat(4, minmax(0, 1fr)); gap: 2rem; } .v2-footer__brand { grid-column: auto; } }
.v2-footer__brand p { margin-top: 1rem; font-size: .9rem; line-height: 1.7; color: var(--muted-foreground); }
.v2-footer__col h2 { font-family: var(--font-display); font-size: .9rem; font-weight: 700; color: var(--foreground); }
.v2-footer__col ul { margin-top: 1rem; }
.v2-footer__col li + li { margin-top: .6rem; }
.v2-footer__col a { font-size: .9rem; color: var(--muted-foreground); transition: color .15s; }
.v2-footer__col a:hover { color: var(--primary); text-decoration: underline; }
.v2-footer__bottom { border-top: 1px solid var(--border); }
.v2-footer__bottom-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding-top: 1.25rem; padding-bottom: 1.25rem; font-size: .8125rem; color: var(--muted-foreground); }
.v2-testbar { background: var(--warning); color: var(--warning-foreground); text-align: center; font-size: .75rem; font-weight: 700; padding: .35rem 1rem; }
.v2-testbar a { text-decoration: underline; }

@keyframes v2-enter-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.v2-enter { animation: v2-enter-up .5s cubic-bezier(.16, 1, .3, 1) both; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .v2-enter { animation: none; } }
