/* car_detail_v3.css — redesign da página de detalhes do CAR (v8).
   Carregado SÓ pela rota /imoveis/car-*. Sobrepõe detail-page.css.

   Estrutura macro: hero card SERP-style no topo, tabs horizontais para
   navegação entre seções (Visão geral, Análise espacial, Crédito rural,
   Áreas, Histórico), e sidebar slim com Downloads + Relatórios + Status.

   Tipografia alinhada com _painel_styles.jinja:
     --car-fs-h1 (20px) = título do hero
     --car-fs-h2 (16px) = section headers
     --car-fs-h3 (14.7px) = stat values, lock labels
     --car-fs-body (14px) = body text, KV values
     --car-fs-small (12.5px) = tabs, sidebar, hints
     --car-fs-micro (10.9px) = kickers uppercase, badges

   Pesos: 700 só em kickers, 600 em títulos, 500 em UI/body bold.
*/
:root {
    --rr-moss: #356854;
    --rr-moss-ink: #1F4035;
    --rr-moss-soft: #ecf3ef;
    /* Adotando tokens do painel (_painel_styles.jinja) para consistência: */
    --car-fs-h1: 1.25rem;
    --car-fs-h2: 1rem;
    --car-fs-h3: .92rem;
    --car-fs-body: .88rem;
    --car-fs-small: .78rem;
    --car-fs-micro: .68rem;
    --car-lh-tight: 1.15;
    --car-lh-normal: 1.4;
    --car-radius: 12px;
    --car-radius-sm: 8px;
    --car-shadow-card: 0 1px 2px rgba(0,0,0,.03);
    --car-shadow-hover: 0 8px 28px rgba(0,0,0,.06);
}

/* (removido .crm-rail — rail superior foi descontinuado em v7; saldo UCP
   agora vive no sidebar ou em snapshot lateral.) */

/* === UCP chip: pílula com ícone da moeda + número ===
   Por padrão usa o ícone de moeda única (ucp_single.svg). Quando o custo é 2+,
   o template adiciona .ucp-chip--multi pra trocar pelo stack duplo. */
.ucp-chip {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: var(--car-fs-micro); font-weight: 600;
    color: var(--detail-text-muted);
    font-variant-numeric: tabular-nums;
    background: var(--detail-bg-soft);
    border-radius: 4px;
    padding: 1px 6px;
    border: 1px solid var(--detail-border);
    letter-spacing: .01em;
    line-height: 1.4;
    vertical-align: middle;
    margin-left: 4px;
    text-decoration: none;
}
.ucp-chip__icon {
    width: 14px; height: 14px;
    display: inline-block;
    flex-shrink: 0;
}
.ucp-chip--ghost {
    background: transparent;
    border: 0;
    padding: 1px 2px 1px 4px;
}

/* === Unlocked tag (estado pós-desbloqueio) === */
.unlocked-tag {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: var(--car-fs-micro); font-weight: 500;
    color: #16a34a;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
}
.unlocked-tag svg { width: 11px; height: 11px; }

/* === Lock section pattern (corpo bloqueado dentro de uma section) ===
   Usado quando a seção inteira é gated; mostra um placeholder com CTA. */
.lock-section {
    position: relative;
    background:
        repeating-linear-gradient(
            -45deg,
            transparent 0,
            transparent 9px,
            var(--detail-bg-soft) 9px,
            var(--detail-bg-soft) 10px
        ),
        var(--detail-bg);
    border: 1px dashed var(--detail-border);
    border-radius: var(--detail-radius-sm);
    padding: 18px;
    display: flex; align-items: center; gap: 14px;
}
.lock-section__icon {
    width: 32px; height: 32px;
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    border-radius: 50%;
    display: grid; place-items: center;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.lock-section__icon svg { width: 14px; height: 14px; }
.lock-section__body { flex: 1; min-width: 0; }
.lock-section__label {
    font-size: var(--car-fs-body); font-weight: 600;
    color: var(--detail-text-strong);
    line-height: var(--car-lh-tight);
}
.lock-section__hint {
    font-size: var(--car-fs-small); color: var(--detail-text-muted);
    margin-top: 3px;
    line-height: var(--car-lh-normal);
}

/* === Lock row (linha bloqueada dentro de um card de seção) === */
.lock-row {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 11px 0;
    border-bottom: 1px solid var(--detail-divider);
}
.lock-row:last-child { border-bottom: 0; }
@media (max-width: 700px) {
    .lock-row { grid-template-columns: 1fr; gap: 4px; }
    .lock-row__cta { justify-self: flex-start; }
}
.lock-row__label {
    font-size: var(--car-fs-small); color: var(--detail-text-muted); font-weight: 500;
}
.lock-row__value {
    font-size: var(--car-fs-body); color: var(--detail-text-strong);
    min-width: 0; word-break: break-word;
}
.lock-row__value--masked {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    color: var(--detail-text-subtle);
    letter-spacing: .04em;
}

/* === Botão de unlock — espelha .rr-unlock-btn da SERP pra consistência visual ===
   Pill, dashed por default, solid quando enfatizado (CTA de seção). */
.btn-unlock {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 10px 3px 9px;
    background: var(--detail-bg);
    color: #374151;
    border: 1px dashed var(--detail-border);
    border-radius: 999px;
    font-family: inherit;
    font-size: var(--car-fs-small); font-weight: 500;
    cursor: pointer;
    text-decoration: none;
    line-height: 1.5;
    white-space: nowrap;
    transition: border-color .15s, color .15s, background .15s;
}
.btn-unlock:hover {
    border-color: var(--rr-moss);
    color: var(--rr-moss-ink);
    background: var(--detail-bg);
    text-decoration: none;
}
.btn-unlock svg { width: 11px; height: 11px; flex-shrink: 0; color: var(--detail-text-subtle); }
.btn-unlock:hover svg { color: var(--rr-moss); }
.btn-unlock--sm { padding: 2px 8px; font-size: var(--car-fs-micro); }
/* Variante solid pra CTAs de header de seção (mais ênfase) */
.btn-unlock--solid {
    border-style: solid;
    border-color: var(--rr-moss);
    color: var(--rr-moss-ink);
}
.btn-unlock--solid:hover {
    background: #f0f6f2;
    border-color: var(--rr-moss-ink);
}
.btn-unlock--solid svg { color: var(--rr-moss); }

/* === Quando a seção é desbloqueada (data-unlocked="true"): mostra o
   conteúdo real e esconde o lock-section. Hook usado pelo JS. === */
[data-section-lock] [data-locked-content] { display: block; }
[data-section-lock] [data-unlocked-content] { display: none; }
[data-section-lock][data-unlocked="true"] [data-locked-content] { display: none; }
[data-section-lock][data-unlocked="true"] [data-unlocked-content] { display: block; }

/* Quando uma linha é desbloqueada individualmente */
[data-row-lock][data-unlocked="true"] .lock-row__value--masked { display: none; }
[data-row-lock] .lock-row__value--revealed { display: none; }
[data-row-lock][data-unlocked="true"] .lock-row__value--revealed { display: inline; }
[data-row-lock][data-unlocked="true"] .btn-unlock { display: none; }

/* ========================================================================
   SaaS layout — fundo puro branco, sections com borda sutil (sem sombra)
   ======================================================================== */
.detail-canvas { background: #fff !important; }
body { background: #fff; }

/* Page shell — override do .container Bootstrap. Conteúdo encosta na sidebar
   (margem esquerda baixa) e expande pra direita (sem max-width restritivo).
   Padding lateral reduzido pra que o card hero ocupe mais largura. */
.car-page-shell {
    max-width: none;
    margin: 0;
    /* 28px laterais = mesmo padding do .rr-gh-c (topbar/searchbar) — alinha
       searchbar, breadcrumb e card hero na mesma vertical à esquerda. */
    padding: 1rem 28px 2.5rem;
    width: 100%;
    box-sizing: border-box;
}
@media (max-width: 767.98px) {
    .car-page-shell { padding: 1rem 16px 2rem; }
}

/* Breadcrumb com mais respiro acima/abaixo (ajusta margem com a searchbar
   da topbar acima + main content abaixo). */
.detail-canvas .detail-breadcrumb {
    padding: 14px 0 10px;
    font-size: var(--car-fs-small);
}
.detail-canvas .detail-breadcrumb__list { gap: 6px; }

/* v7 density: compacta tudo pra caber acima da dobra desktop. */
.car-layout {
    display: grid;
    grid-template-columns: 1fr 264px;
    gap: 24px;
    margin-top: 10px;
    align-items: start;
}
@media (max-width: 1024px) {
    .car-layout { grid-template-columns: 1fr; gap: 16px; }
}
.car-layout__main { min-width: 0; font-size: var(--car-fs-body); line-height: var(--car-lh-normal); }
.car-layout__rail {
    position: sticky;
    top: 12px;
    align-self: start;
    display: flex;
    flex-direction: column;
    gap: 14px;
    font-size: var(--car-fs-small);
    line-height: var(--car-lh-normal);
}
@media (max-width: 1024px) {
    .car-layout__rail { position: static; }
}

/* Sections FLAT — sem borda, espaço enxuto */
.car-layout__main .detail-section,
.car-layout__main > .detail-overview-extra {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    margin: 0 0 18px;
    box-shadow: none;
}
.car-layout__main .detail-section:last-child,
.car-layout__main > .detail-overview-extra:last-child { margin-bottom: 0; }

/* === Card KV — padrão painel === */
.car-kv {
    background: transparent;
    padding: 2px 0;
}
.car-kv__label {
    font-size: var(--car-fs-micro);
    font-weight: 600;
    color: var(--detail-text-muted);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 3px;
    line-height: 1.2;
}
.car-kv__value {
    font-size: var(--car-fs-body);
    color: var(--detail-text-strong);
    font-weight: 500;
    margin: 0;
    line-height: var(--car-lh-normal);
    word-break: break-word;
}
.car-kv__value .badge {
    /* Refresh bootstrap badges pra ficarem mais modernos */
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: var(--car-fs-micro);
}
.car-kv__value .badge.bg-primary { background: #eff6ff !important; color: #1d4ed8 !important; }
.car-kv__value .badge.bg-info    { background: #ecfdf5 !important; color: #047857 !important; }
.car-kv__value .badge.bg-danger  { background: #fef2f2 !important; color: #b91c1c !important; }
.car-kv__value .badge.bg-warning { background: #fffbeb !important; color: #b45309 !important; }
.car-kv__value .badge.bg-dark    { background: #1f2937 !important; color: #fff !important; }

/* Bootstrap utilities override (dentro do main da CAR page) — compacta */
.car-layout__main .my-2 { margin-top: .25rem !important; margin-bottom: .25rem !important; }
.car-layout__main .mb-3, .car-layout__main .mb-4, .car-layout__main .mb-5 { margin-bottom: .75rem !important; }
.car-layout__main .row { --bs-gutter-x: .75rem; --bs-gutter-y: .25rem; }

/* Subseção compacta */
.car-layout__main .detail-subsection { margin-bottom: 14px; }
.car-layout__main .detail-subsection + .detail-subsection {
    padding-top: 14px;
    border-top: 1px solid var(--detail-divider);
}
.car-layout__main .detail-subsection__title {
    font-size: var(--car-fs-micro);
    font-weight: 700;
    color: var(--detail-text-dim, #9ca3af);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 10px;
    display: flex; align-items: center; gap: 7px;
}
.car-layout__main .detail-subsection__title i {
    color: var(--detail-text-muted);
    font-size: var(--car-fs-micro);
}

/* === Identidade / Quick facts grid === */
.car-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px 18px;
    margin: 0;
    padding: 0;
}
@media (max-width: 720px) {
    .car-facts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .car-facts { grid-template-columns: 1fr; }
}
/* .car-facts removido — Identidade consolidada no hero-v7 em v7. */

/* Section headers — padrão painel */
.car-layout__main .detail-section__header {
    margin-bottom: 10px;
    padding-bottom: 0;
    border-bottom: 0;
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 14px;
}
.car-layout__main .detail-section__title {
    display: none;
}
.car-layout__main .detail-section__h2 {
    font-size: var(--car-fs-h2);
    font-weight: 600;
    color: var(--detail-text-strong);
    margin: 0;
    line-height: var(--car-lh-tight);
}
.car-layout__main .detail-section__subtitle {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin: 3px 0 0;
    line-height: var(--car-lh-normal);
}

/* (v9: layout-list overrides foram pra serp_card.css — arquivo compartilhado
   com a SERP de /imoveis/. Garante paridade visual exata.) */

/* ========================================================================
   Histórico — teaser de eventos SICOR (preview blurrado)
   ======================================================================== */
.history-credit-teaser {
    margin-top: 16px;
    padding: 14px 16px;
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    border-radius: var(--car-radius-sm);
}
.history-credit-teaser__head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.history-credit-teaser__icon {
    width: 32px; height: 32px;
    background: var(--rr-moss-soft);
    color: var(--rr-moss-ink);
    border-radius: 8px;
    display: grid; place-items: center;
    flex-shrink: 0;
}
.history-credit-teaser__icon svg { width: 15px; height: 15px; }
.history-credit-teaser__body { flex: 1; min-width: 0; }
.history-credit-teaser__title {
    font-size: var(--car-fs-body);
    font-weight: 600;
    color: var(--detail-text-strong);
    margin: 0 0 3px;
    line-height: var(--car-lh-tight);
}
.history-credit-teaser__sub {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin: 0;
    line-height: var(--car-lh-normal);
}
.history-credit-teaser__sub b { color: var(--detail-text-strong); font-weight: 600; }
.history-credit-teaser__cta {
    flex-shrink: 0;
    font-size: var(--car-fs-small);
    font-weight: 600;
    color: var(--rr-moss-ink);
    text-decoration: none;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid #cfe1d6;
    background: #fff;
}
.history-credit-teaser__cta:hover {
    background: var(--rr-moss-soft);
    text-decoration: none;
}
.history-credit-teaser__list {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
    display: flex; flex-direction: column;
    gap: 4px;
}
.history-credit-teaser__item {
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: 14px;
    padding: 5px 0;
    font-size: var(--car-fs-small);
    border-top: 1px solid var(--detail-divider);
}
.history-credit-teaser__year {
    color: var(--detail-text-muted);
    font-variant-numeric: tabular-nums;
}
.history-credit-teaser__produto {
    color: var(--detail-text);
    font-weight: 500;
}
.history-credit-teaser__blur {
    color: var(--detail-text-subtle);
    font-family: ui-monospace, monospace;
    filter: blur(2px);
    letter-spacing: .02em;
    text-align: right;
}

/* ========================================================================
   v7 — Tabs e Sidebar slim (hero agora é o SERP card, ver serp_card.css)
   ======================================================================== */

/* (.hero-v7* removido — hero agora é o SERP card .rr-fav-card-v2, ver serp_card.css) */

/* === Tabs (compactas) === */
.car-tabs {
    display: flex;
    gap: 0;
    border-bottom: 1px solid var(--detail-border);
    margin: 0 0 16px;
    overflow-x: auto;
    scrollbar-width: none;
}
.car-tabs::-webkit-scrollbar { display: none; }
.car-tab {
    appearance: none;
    background: transparent;
    border: 0;
    padding: 9px 0;
    margin-right: 20px;
    font-family: inherit;
    font-size: var(--car-fs-small);
    font-weight: 500;
    color: var(--detail-text-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    text-decoration: none;
    white-space: nowrap;
    display: inline-flex; align-items: center; gap: 6px;
    transition: color .12s, border-color .12s;
    line-height: var(--car-lh-normal);
}
.car-tab:hover { color: var(--detail-text-strong); text-decoration: none; }
.car-tab.is-active {
    color: var(--detail-text-strong);
    border-bottom-color: var(--rr-moss);
    font-weight: 600;
}
.car-tab__count {
    background: var(--detail-bg-soft);
    color: var(--detail-text-muted);
    border-radius: 999px;
    padding: 1px 7px;
    font-size: var(--car-fs-micro);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.car-tab.is-active .car-tab__count { background: var(--rr-moss-soft); color: var(--rr-moss-ink); }

.car-tab-panel { display: none; scroll-margin-top: 12px; }
.car-tab-panel.is-active { display: block; }

/* === Sidebar slim v7 (denso, sem dividers entre items) === */
.side-v7 { display: flex; flex-direction: column; gap: 14px; }
.side-v7__group { display: flex; flex-direction: column; gap: 2px; }
.side-v7__title {
    font-size: var(--car-fs-micro);
    font-weight: 700;
    color: var(--detail-text-dim, #9ca3af);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 6px;
    line-height: 1.2;
}

/* Downloads list — sem border-bottom, só gap */
.side-v7__dl { display: flex; flex-direction: column; gap: 1px; margin: 0; }
.side-v7__dl-item {
    display: flex; align-items: center; gap: 9px;
    padding: 6px 8px;
    font-size: var(--car-fs-small);
    color: var(--detail-text);
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: 0;
    text-align: left;
    font-family: inherit;
    width: 100%;
    border-radius: 6px;
    line-height: var(--car-lh-tight);
}
.side-v7__dl-item:hover {
    background: var(--detail-bg-soft);
    color: var(--rr-moss-ink);
    text-decoration: none;
}
.side-v7__dl-item__ic {
    width: 22px; height: 22px;
    background: var(--detail-bg-soft);
    border-radius: 5px;
    display: grid; place-items: center;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.side-v7__dl-item__ic svg { width: 11px; height: 11px; }
.side-v7__dl-item__ic .fa-file-pdf {
    font-size: 12px;
    line-height: 1;
}
.side-v7__dl-item:hover .side-v7__dl-item__ic { background: var(--rr-moss-soft); color: var(--rr-moss); }
.side-v7__dl-item__body { flex: 1; min-width: 0; line-height: 1.25; }
.side-v7__dl-item__name { font-weight: 500; }
.side-v7__dl-item__sub {
    display: none; /* downloads: só o nome; relatório usa --visible */
}
.side-v7__dl-item__sub--visible {
    display: block;
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    margin-top: 1px;
    line-height: 1.3;
}
.side-v7__dl-item__tag {
    flex-shrink: 0;
    font-size: var(--car-fs-micro);
    font-weight: 600;
    color: var(--detail-text-muted);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.side-v7__dl-item__quota {
    color: var(--rr-moss-ink);
}
.side-v7__dl-item__price {
    color: var(--detail-text-strong);
}
.side-v7__dl-item--report {
    align-items: flex-start;
    padding-top: 8px;
    padding-bottom: 8px;
}
.side-v7__dl-item--report .side-v7__dl-item__arrow {
    margin-top: 2px;
}
.side-v7__dl-item--loading {
    pointer-events: none;
    opacity: .75;
}
.side-v7__dl-item--loading .side-v7__dl-item__arrow svg {
    display: none;
}
.side-v7__dl-item--loading .side-v7__dl-item__arrow::after {
    content: '';
    display: block;
    width: 13px;
    height: 13px;
    border: 2px solid var(--detail-text-subtle);
    border-top-color: var(--rr-moss);
    border-radius: 50%;
    animation: side-v7-dl-spin .7s linear infinite;
}
@keyframes side-v7-dl-spin {
    to { transform: rotate(360deg); }
}
.side-v7__dl-item__free {
    /* (mantido apenas pra retrocompat — novos botões usam .side-v7__dl-item__arrow) */
    font-size: var(--car-fs-micro); font-weight: 600;
    color: #047857;
    text-transform: uppercase; letter-spacing: .06em;
    flex-shrink: 0;
}
.side-v7__dl-item__arrow {
    flex-shrink: 0;
    color: var(--detail-text-subtle);
    display: inline-grid; place-items: center;
    transition: color .15s, transform .15s;
}
.side-v7__dl-item__arrow svg { width: 13px; height: 13px; }
.side-v7__dl-item:hover .side-v7__dl-item__arrow {
    color: var(--rr-moss);
    transform: translateY(1px);
}
/* Report featured */
.side-v7__report {
    background: var(--rr-moss-soft);
    border: 1px solid #cfe1d6;
    border-radius: 8px;
    padding: 11px 12px;
    cursor: pointer;
    text-decoration: none;
    display: block;
    color: inherit;
}
.side-v7__report:hover { background: #dbe7e0; text-decoration: none; color: inherit; }
.side-v7__report__title {
    font-size: var(--car-fs-body); font-weight: 600;
    color: var(--detail-text-strong);
    margin: 0 0 3px;
    line-height: var(--car-lh-tight);
}
.side-v7__report__desc {
    font-size: var(--car-fs-small); color: var(--detail-text-muted);
    margin: 0 0 8px;
    line-height: var(--car-lh-normal);
}
.side-v7__report__price {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: var(--car-fs-body); font-weight: 600;
    color: var(--detail-text-strong);
    font-variant-numeric: tabular-nums;
}
.side-v7__report__badge {
    background: #fff;
    color: var(--rr-moss-ink);
    border: 1px solid #cfe1d6;
    border-radius: 999px;
    padding: 1px 7px;
    font-size: var(--car-fs-micro);
    font-weight: 700;
    text-transform: uppercase; letter-spacing: .06em;
}
.side-v7__report__hint {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    font-weight: 500;
}

/* Status rows — padrão painel */
.side-v7__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 3px 0;
    font-size: var(--car-fs-small);
    line-height: var(--car-lh-normal);
}
.side-v7__status__label { color: var(--detail-text-muted); font-weight: 400; }
.side-v7__status__value {
    color: var(--detail-text-strong);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

/* Side action buttons compactos */
.side-v7__buttons { display: flex; flex-direction: column; gap: 4px; }
.side-v7__btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 10px;
    background: transparent;
    border: 0;
    border-radius: 6px;
    font-family: inherit;
    font-size: var(--car-fs-small); font-weight: 500;
    color: var(--detail-text);
    cursor: pointer;
    text-decoration: none;
    transition: background .12s;
    line-height: var(--car-lh-normal);
}
.side-v7__btn:hover {
    background: var(--detail-bg-soft);
    color: var(--detail-text-strong);
    text-decoration: none;
}
.side-v7__btn svg { width: 13px; height: 13px; color: var(--detail-text-muted); }
.side-v7__btn:hover svg { color: var(--detail-text-strong); }

/* === Rail nav — substitui subnav top com vertical sticky list === */
.rail-nav {
    background: #fff;
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius);
    padding: 5px;
    display: flex; flex-direction: column; gap: 1px;
}
.rail-nav__item {
    display: flex; align-items: center; gap: 9px;
    padding: 8px 11px;
    border-radius: var(--detail-radius-sm);
    font-size: var(--car-fs-small); font-weight: 500;
    color: var(--detail-text);
    text-decoration: none;
    transition: background .12s, color .12s;
    line-height: 1.3;
}
.rail-nav__item:hover {
    background: var(--detail-bg-soft);
    color: var(--detail-text-strong);
    text-decoration: none;
}
.rail-nav__item.is-active {
    background: var(--rr-moss-soft);
    color: var(--rr-moss-ink);
    font-weight: 600;
}
.rail-nav__item svg {
    width: 14px; height: 14px;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.rail-nav__item.is-active svg { color: var(--rr-moss); }
.rail-nav__count {
    margin-left: auto;
    background: var(--detail-bg-soft);
    color: var(--detail-text-muted);
    border-radius: 999px;
    padding: 1px 7px;
    font-size: var(--car-fs-micro);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.5;
}
.rail-nav__item.is-active .rail-nav__count { background: rgba(53,104,84,.12); color: var(--rr-moss-ink); }

/* (rail-card / rail-status-row / rail-actions / rail-action / rail-map /
   rail-sicor-stat removidos — substituídos por .side-v7 em v7.) */

/* (.car-health* e .car-chip* removidos — viviam dentro do hero-v7 antigo;
   hero atual usa o SERP card que tem chip/badge próprios.) */

/* (.btn-action-primary removido — agora vem do serp_card.css, com tom moss
   no escopo .rr-fav-card-v2 .btn-action-primary que é o "Ver no mapa" do hero) */

/* ========================================================================
   Sobreposições — overrides escopados em .sobreposicao-card (modernizar
   sem reescrever o markup do _content que tem 800+ linhas).
   ======================================================================== */
#panel-sobreposicoes h6.text-danger,
#panel-sobreposicoes h6.text-primary,
#panel-sobreposicoes h4.text-primary {
    color: var(--detail-text-strong) !important;
    font-size: var(--car-fs-micro) !important;
    font-weight: 700 !important;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-bottom: 10px !important;
    display: flex; align-items: center; gap: 6px;
}
#panel-sobreposicoes h6.text-danger i,
#panel-sobreposicoes h6.text-primary i,
#panel-sobreposicoes h4.text-primary i {
    font-size: 11px !important;
    color: var(--detail-text-muted);
}

#panel-sobreposicoes .sobreposicao-card {
    border: 1px solid var(--detail-border) !important;
    border-left-width: 3px !important;
    border-radius: var(--car-radius-sm) !important;
    background: #fff !important;
    transition: border-color .15s, box-shadow .15s !important;
}
#panel-sobreposicoes .sobreposicao-card:hover {
    border-color: var(--detail-border-strong) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,.04) !important;
}
#panel-sobreposicoes .sobreposicao-card.problematica { border-left-color: #d97706 !important; }
#panel-sobreposicoes .sobreposicao-card.importante   { border-left-color: #dc2626 !important; }
#panel-sobreposicoes .sobreposicao-card.informativa  { border-left-color: #2563eb !important; }
#panel-sobreposicoes .sobreposicao-card.insignificante { border-left-color: var(--detail-border) !important; opacity: .8; }

#panel-sobreposicoes .sobreposicao-card .card-body {
    padding: 12px 14px !important;
}
#panel-sobreposicoes .sobreposicao-card h6 {
    font-size: var(--car-fs-body) !important;
    font-weight: 600 !important;
    color: var(--detail-text-strong) !important;
    line-height: var(--car-lh-tight);
}
#panel-sobreposicoes .sobreposicao-card h6 a {
    color: inherit !important;
}
#panel-sobreposicoes .sobreposicao-card .text-muted {
    color: var(--detail-text-muted) !important;
    font-size: var(--car-fs-small) !important;
}
#panel-sobreposicoes .sobreposicao-card .badge {
    font-weight: 600 !important;
    padding: 2px 8px !important;
    border-radius: 999px !important;
    font-size: var(--car-fs-micro) !important;
}
#panel-sobreposicoes .badge.bg-danger { background: #fef2f2 !important; color: #b91c1c !important; }
#panel-sobreposicoes .badge.bg-primary { background: #eff6ff !important; color: #1d4ed8 !important; }
#panel-sobreposicoes .badge.bg-warning { background: #fffbeb !important; color: #b45309 !important; }
#panel-sobreposicoes .badge.bg-info { background: #ecfdf5 !important; color: #047857 !important; }

#panel-sobreposicoes .sobreposicao-card .btn-sm {
    font-size: var(--car-fs-small) !important;
    padding: 5px 10px !important;
    border-radius: 6px !important;
    font-weight: 500 !important;
}
#panel-sobreposicoes .sobreposicao-card .btn-outline-dark {
    border-color: var(--detail-border) !important;
    color: var(--detail-text) !important;
}
#panel-sobreposicoes .sobreposicao-card .btn-outline-dark:hover {
    background: var(--detail-bg-soft) !important;
    border-color: var(--detail-border-strong) !important;
    color: var(--detail-text-strong) !important;
}
#panel-sobreposicoes .sobreposicao-card .btn-dark {
    background: var(--detail-text-strong) !important;
    border-color: var(--detail-text-strong) !important;
}

/* "Ver todos os embargos (X)" toggle button — pra abrir os insignificantes */
#panel-sobreposicoes .btn-outline-secondary {
    font-size: var(--car-fs-small) !important;
    padding: 6px 12px !important;
    border-radius: 6px !important;
    border-color: var(--detail-border) !important;
    color: var(--detail-text-muted) !important;
    background: var(--detail-bg) !important;
    font-weight: 500 !important;
}
#panel-sobreposicoes .btn-outline-secondary:hover {
    background: var(--detail-bg-soft) !important;
    border-color: var(--detail-border-strong) !important;
    color: var(--detail-text) !important;
}

/* Demonstrativo SICAR table (fallback quando não há overlaps) */
#panel-sobreposicoes .table {
    font-size: var(--car-fs-small);
}
#panel-sobreposicoes .table thead th {
    font-weight: 600;
    color: var(--detail-text-muted);
    font-size: var(--car-fs-micro);
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--detail-bg-soft);
    border-bottom: 1px solid var(--detail-border);
}
#panel-sobreposicoes .alert-secondary {
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    color: var(--detail-text-muted);
    font-size: var(--car-fs-small);
    border-radius: var(--car-radius-sm);
}

/* ========================================================================
   Sobreposições v3 — substitui blur overlay
   ======================================================================== */
.so-list { display: flex; flex-direction: column; gap: 10px; }
.so-card {
    background: var(--detail-bg);
    border: 1px solid var(--detail-border);
    border-left: 3px solid var(--detail-border);
    border-radius: var(--detail-radius-sm);
    padding: 12px 14px;
    transition: border-color .12s;
}
.so-card:hover { border-color: var(--detail-border-strong); }
.so-card--restricao { border-left-color: #dc2626; }
.so-card--alerta    { border-left-color: #d97706; }
.so-card--relacao   { border-left-color: #2563eb; }
.so-card--insignif  { border-left-color: var(--detail-border); opacity: .85; }

.so-card__head {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 12px;
    margin-bottom: 6px;
}
.so-card__title {
    font-size: var(--car-fs-body);
    font-weight: 600;
    color: var(--detail-text-strong);
    margin: 0;
    line-height: var(--car-lh-tight);
    word-break: break-word;
}
.so-card__title a { color: inherit; }
.so-card__title a:hover { color: var(--rr-moss-ink); }
.so-card__cat {
    flex-shrink: 0;
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: var(--car-fs-micro); font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase;
    border: 1px solid;
    white-space: nowrap;
    line-height: 1.4;
}
.so-card__cat--restricao { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }
.so-card__cat--alerta    { background: #fffbeb; border-color: #fde68a; color: #b45309; }
.so-card__cat--relacao   { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; }

.so-card__meta {
    display: flex; flex-wrap: wrap; gap: 12px;
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin-bottom: 6px;
    line-height: var(--car-lh-normal);
}
.so-card__meta b { color: var(--detail-text); font-weight: 500; }

.so-card__actions {
    display: flex; gap: 6px; justify-content: flex-end;
    margin-top: 4px;
}
.so-card__actions a {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 10px;
    background: transparent;
    border: 1px solid var(--detail-border);
    border-radius: 5px;
    font-size: var(--car-fs-small); font-weight: 500;
    color: var(--detail-text);
    text-decoration: none;
}
.so-card__actions a:hover {
    background: var(--detail-bg-soft);
    border-color: var(--detail-border-strong);
    color: var(--detail-text-strong);
    text-decoration: none;
}
.so-card__actions a.so-action--primary {
    background: var(--detail-text-strong);
    border-color: var(--detail-text-strong);
    color: #fff;
}
.so-card__actions a.so-action--primary:hover {
    background: #000;
    border-color: #000;
    color: #fff;
}

.so-cat-header {
    display: flex; align-items: center; gap: 8px;
    margin: 16px 0 8px;
    font-size: var(--car-fs-micro); font-weight: 700;
    color: var(--detail-text-dim, #9ca3af);
    letter-spacing: .06em;
    text-transform: uppercase;
}
.so-cat-header svg { width: 13px; height: 13px; }
.so-cat-header--restricao { color: #b91c1c; }
.so-cat-header--alerta    { color: #b45309; }
.so-cat-header--relacao   { color: #1d4ed8; }
.so-cat-header__count {
    margin-left: auto;
    color: var(--detail-text-muted);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
}
.so-cat-header__count b { color: var(--detail-text); font-weight: 600; }

/* Estado bloqueado das sobreposições (não-assinante) */
.so-locked {
    background: var(--detail-bg);
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius);
    padding: 18px 20px;
}
.so-locked__head {
    display: flex; align-items: flex-start; gap: 14px;
    margin-bottom: 12px;
}
.so-locked__icon {
    width: 36px; height: 36px;
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    border-radius: 8px;
    display: grid; place-items: center;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.so-locked__icon svg { width: 15px; height: 15px; }
.so-locked__body { flex: 1; min-width: 0; }
.so-locked__title {
    font-size: var(--car-fs-h3);
    font-weight: 600;
    color: var(--detail-text-strong);
    margin: 0 0 3px;
    line-height: var(--car-lh-tight);
}
.so-locked__sub {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin: 0;
    line-height: var(--car-lh-normal);
}
.so-locked__cta { flex-shrink: 0; }
.so-locked__breakdown {
    list-style: none;
    padding: 12px 0 0;
    margin: 12px 0 0;
    border-top: 1px solid var(--detail-divider);
    display: flex; flex-wrap: wrap; gap: 18px;
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
}
.so-locked__breakdown li { display: inline-flex; align-items: center; gap: 7px; }
.so-locked__breakdown b { color: var(--detail-text-strong); font-weight: 600; font-variant-numeric: tabular-nums; }
.so-locked__dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.so-locked__dot--danger { background: #dc2626; }
.so-locked__dot--warn   { background: #d97706; }
.so-locked__dot--info   { background: #2563eb; }

.so-toggle-insignif {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px;
    background: var(--detail-bg);
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius-sm);
    font-size: var(--car-fs-small); font-weight: 500;
    color: var(--detail-text-muted);
    cursor: pointer;
    margin-top: 10px;
}
.so-toggle-insignif:hover { background: var(--detail-bg-soft); color: var(--detail-text); border-color: var(--detail-border-strong); }

/* ========================================================================
   Timeline / Histórico v3 — substitui detail-lock-overlay
   ======================================================================== */
.car-history-locked {
    background:
        repeating-linear-gradient(
            -45deg,
            transparent 0,
            transparent 9px,
            var(--detail-bg-soft) 9px,
            var(--detail-bg-soft) 10px
        ),
        var(--detail-bg);
    border: 1px dashed var(--detail-border);
    border-radius: var(--detail-radius-sm);
    padding: 18px;
    margin-top: 14px;
    display: flex; align-items: center; gap: 14px;
}
.car-history-locked__icon {
    width: 36px; height: 36px;
    background: var(--detail-bg);
    border: 1px solid var(--detail-border);
    border-radius: 50%;
    display: grid; place-items: center;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.car-history-locked__icon svg { width: 15px; height: 15px; }
.car-history-locked__body { flex: 1; }
.car-history-locked__title {
    font-size: var(--car-fs-h3); font-weight: 600;
    color: var(--detail-text-strong);
    line-height: var(--car-lh-tight);
}
.car-history-locked__sub {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin-top: 3px;
    line-height: var(--car-lh-normal);
}

/* ========================================================================
   Seção SICOR — Crédito rural
   ======================================================================== */
.sicor-summary {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 18px;
}
@media (max-width: 800px) {
    .sicor-summary { grid-template-columns: repeat(2, 1fr); }
}
.sicor-stat {
    background: var(--detail-bg);
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius-sm);
    padding: 12px 14px;
}
.sicor-stat__label {
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin: 0 0 6px;
    line-height: 1.2;
}
.sicor-stat__value {
    font-size: var(--car-fs-h3);
    color: var(--detail-text-strong);
    font-weight: 600;
    margin: 0;
    line-height: var(--car-lh-tight);
    font-variant-numeric: tabular-nums;
}
.sicor-stat__value--date { font-size: var(--car-fs-body); font-weight: 600; }
.sicor-stat__value--brl::before {
    content: 'R$ ';
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    font-weight: 400;
    margin-right: 2px;
}
.sicor-stat__sub {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin: 3px 0 0;
    line-height: var(--car-lh-normal);
}

/* Tabela de operações */
.sicor-ops-wrap {
    overflow-x: auto;
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius-sm);
    background: var(--detail-bg);
}
.sicor-ops {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--car-fs-small);
}
.sicor-ops thead th {
    text-align: left;
    font-weight: 600;
    font-size: var(--car-fs-micro);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--detail-text-muted);
    padding: 8px 10px;
    border-bottom: 1px solid var(--detail-border);
    background: var(--detail-bg-soft);
    white-space: nowrap;
}
.sicor-ops tbody td {
    padding: 10px 10px;
    border-bottom: 1px solid var(--detail-divider);
    vertical-align: top;
    color: var(--detail-text);
    font-size: var(--car-fs-small);
    line-height: var(--car-lh-normal);
}
.sicor-ops tbody tr:last-child td { border-bottom: 0; }
.sicor-ops tbody tr:hover td { background: var(--detail-bg-soft); }
.sicor-ops__produto {
    font-weight: 500;
    color: var(--detail-text-strong);
    line-height: 1.2;
}
.sicor-ops__modalidade {
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    margin-top: 2px;
    line-height: var(--car-lh-normal);
}
.sicor-ops__date {
    font-variant-numeric: tabular-nums;
    color: var(--detail-text);
    white-space: nowrap;
}
.sicor-ops__date-sub {
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    margin-top: 1px;
}
.sicor-ops__valor {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--detail-text-strong);
    text-align: right;
    white-space: nowrap;
}
.sicor-ops__prog {
    display: inline-flex; align-items: center;
    padding: 2px 7px;
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    border-radius: 4px;
    font-size: var(--car-fs-micro);
    font-weight: 600;
    color: var(--detail-text);
    letter-spacing: .02em;
    white-space: nowrap;
}
.sicor-ops__status {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: var(--car-fs-micro); font-weight: 500;
    white-space: nowrap;
}
.sicor-ops__status--ativa { color: #16a34a; }
.sicor-ops__status--ativa::before { content: '●'; font-size: 7px; }
.sicor-ops__status--vencida { color: var(--detail-text-muted); }
.sicor-ops__status--vencida::before { content: '○'; font-size: 7px; }
.sicor-ops__benef {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: var(--car-fs-micro);
    color: var(--detail-text-subtle);
    letter-spacing: .02em;
    white-space: nowrap;
}

/* Breakdown por produto/programa */
.sicor-breakdown {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 14px;
}
@media (max-width: 700px) {
    .sicor-breakdown { grid-template-columns: 1fr; }
}
.sicor-breakdown__col {
    background: var(--detail-bg-softer);
    border: 1px solid var(--detail-divider);
    border-radius: var(--detail-radius-sm);
    padding: 12px 14px;
}
.sicor-breakdown__title {
    font-size: var(--car-fs-micro);
    font-weight: 700;
    color: var(--detail-text-dim, #9ca3af);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin: 0 0 8px;
}
.sicor-breakdown__row {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
    padding: 4px 0;
    font-size: var(--car-fs-small);
    align-items: center;
    border-bottom: 1px solid var(--detail-divider);
}
.sicor-breakdown__row:last-child { border-bottom: 0; }
.sicor-breakdown__row-name {
    color: var(--detail-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sicor-breakdown__row-count { color: var(--detail-text-muted); font-size: var(--car-fs-micro); }
.sicor-breakdown__row-value {
    color: var(--detail-text-strong);
    font-variant-numeric: tabular-nums;
    font-weight: 500;
    text-align: right;
}

.sicor-preview-note {
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    margin: 0 0 10px;
}
.sicor-preview-note b { color: var(--detail-text); font-weight: 600; }

/* === Timeline — eventos SICOR mesclados (kind='sicor') === */
.detail-timeline__item--sicor {
    --tl-accent: var(--rr-moss-ink, #25553a);
}
.detail-timeline__item--sicor::before,
.detail-timeline__item--sicor::after {
    background: var(--tl-accent) !important;
}
.detail-timeline__date-chip--sicor {
    background: var(--rr-moss-soft, #eaf3ec);
    color: var(--rr-moss-ink, #25553a);
    border: 1px solid #cfe1d6;
}
.detail-timeline__sicor-prog {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    font-size: var(--car-fs-micro);
    font-weight: 700;
    color: var(--rr-moss-ink, #25553a);
    background: var(--rr-moss-soft, #eaf3ec);
    border-radius: 999px;
    vertical-align: middle;
    letter-spacing: .02em;
}
.detail-timeline__sicor-active {
    color: #16a34a;
    font-weight: 600;
}
.detail-timeline__sicor-kv {
    margin-top: 8px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px 14px;
    padding: 10px 12px;
    background: var(--detail-bg-soft);
    border: 1px solid var(--detail-border);
    border-radius: var(--detail-radius-sm, 8px);
}
@media (max-width: 700px) {
    .detail-timeline__sicor-kv { grid-template-columns: 1fr; }
}
.detail-timeline__sicor-kv-row {
    display: flex; flex-direction: column;
    gap: 2px; min-width: 0;
}
.detail-timeline__sicor-kv-label {
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 600;
}
.detail-timeline__sicor-kv-value {
    font-size: var(--car-fs-small);
    color: var(--detail-text-strong);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}
.detail-timeline__sicor-cta { margin-top: 10px; }

/* Real ↔ máscara dentro de cada item SICOR. Server-side define o
   estado inicial via data-sicor-locked; JS troca pra "false" após
   unlock bem-sucedido. */
.tl-sicor-real, .tl-sicor-mask { display: inline; font-variant-numeric: tabular-nums; }
.tl-sicor-mask {
    color: var(--detail-text-subtle);
    filter: blur(4px);
    user-select: none;
    letter-spacing: .02em;
}
.detail-timeline__item--sicor[data-sicor-locked="true"]  .tl-sicor-real { display: none; }
.detail-timeline__item--sicor[data-sicor-locked="false"] .tl-sicor-mask { display: none; }
.detail-timeline__item--sicor[data-sicor-locked="false"] .detail-timeline__sicor-cta { display: none; }

/* === SICOR — lista com células bloqueadas (blur + CTA único) === */
.sicor-ops-section { position: relative; }
.sicor-ops--gated .sicor-ops__th-gated { color: var(--detail-text-muted); }
.sicor-ops__th-gated::after {
    content: '🔒';
    margin-left: 4px;
    font-size: 9px;
    filter: grayscale(1);
    opacity: .55;
    position: relative;
    top: -1px;
}
.sicor-ops-section[data-unlocked="true"] .sicor-ops__th-gated::after { display: none; }
.sicor-ops-section[data-unlocked="true"] .sicor-ops__th-gated { color: var(--detail-text-strong); }
.sicor-ops__blur {
    display: inline-block;
    filter: blur(4px);
    user-select: none;
    color: var(--detail-text-subtle);
    transition: filter .2s ease;
}
.sicor-ops-section[data-unlocked="true"] .sicor-ops__blur {
    filter: none;
    color: inherit;
    user-select: text;
}
.sicor-ops__gated { position: relative; }
.sicor-ops-unlock-cta {
    text-align: center;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px dashed var(--detail-divider);
}
.sicor-ops-section[data-unlocked="true"] .sicor-ops-unlock-cta { display: none; }

/* === Saldo flash (mantido pra quando UCP balance reaparecer no sidebar) === */
@keyframes rr-balance-flash {
    0% { background: var(--rr-moss-soft); }
    100% { background: var(--detail-bg-soft); }
}
[data-rr-balance].is-flashing { animation: rr-balance-flash .8s ease-out; }

/* === Sobreposições — gate de identidade (overlap_ids) === */
.overlaps-section { position: relative; }

.overlaps-unlock-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    margin-bottom: 18px;
    background: var(--detail-bg-soft);
    border: 1px dashed var(--detail-border);
    border-radius: var(--detail-radius-sm, 8px);
}
.overlaps-unlock-banner__icon {
    width: 36px; height: 36px;
    background: #fff;
    border: 1px solid var(--detail-border);
    border-radius: 50%;
    display: grid; place-items: center;
    color: var(--detail-text-muted);
    flex-shrink: 0;
}
.overlaps-unlock-banner__icon svg { width: 16px; height: 16px; }
.overlaps-unlock-banner__body { flex: 1; min-width: 0; }
.overlaps-unlock-banner__title {
    margin: 0 0 3px;
    font-size: var(--car-fs-body);
    font-weight: 600;
    color: var(--detail-text-strong);
    line-height: var(--car-lh-tight);
}
.overlaps-unlock-banner__sub {
    margin: 0;
    font-size: var(--car-fs-small);
    color: var(--detail-text-muted);
    line-height: var(--car-lh-normal);
}
.overlaps-unlock-banner__cta { flex-shrink: 0; }

/* Blur nos IDs/nomes/links dos cards de sobreposição quando locked.
   Categoria, município, área e o tipo do item ficam visíveis pra contexto. */
.overlaps-section[data-unlocked="false"] .sobreposicao-card h6 a,
.overlaps-section[data-unlocked="false"] .sobreposicao-card h6 {
    filter: blur(4px);
    user-select: none;
    color: var(--detail-text-subtle);
    transition: filter .2s ease;
}
.overlaps-section[data-unlocked="false"] .sobreposicao-card a[href*="sobreposicao"],
.overlaps-section[data-unlocked="false"] .sobreposicao-card a[href*="embargos_item"],
.overlaps-section[data-unlocked="false"] .sobreposicao-card a[href*="car/item"],
.overlaps-section[data-unlocked="false"] .sobreposicao-card a[href*="imoveis/item"] {
    pointer-events: none;
    filter: blur(3px) saturate(.4);
    opacity: .6;
}
.overlaps-section[data-unlocked="true"] .overlaps-unlock-banner { display: none; }

/* === Modal "Salvar no CRM" === */
.rr-crm-modal .modal-title {
    display: flex; align-items: center; gap: 10px;
    font-weight: 700;
}
.rr-crm-modal .modal-title i {
    color: var(--rr-moss-ink, #1F4035);
}
.rr-crm-modal__lead {
    color: var(--detail-text-muted);
    font-size: var(--car-fs-small);
    margin-bottom: 14px;
}
.rr-crm-form { display: flex; flex-direction: column; gap: 10px; }
.rr-crm-option {
    display: grid;
    grid-template-columns: 22px 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    align-items: start;
    padding: 12px 14px;
    border: 1px solid var(--detail-border);
    border-radius: 10px;
    cursor: pointer;
    background: var(--paper, #fff);
    transition: border-color .15s ease, background .15s ease;
}
.rr-crm-option:hover {
    border-color: var(--rr-moss, #356854);
    background: var(--moss-tint, #f0f5f2);
}
.rr-crm-option input[type="checkbox"] {
    grid-row: 1 / span 2;
    margin-top: 2px;
    width: 18px; height: 18px;
    accent-color: var(--rr-moss-ink, #1F4035);
}
.rr-crm-option__title {
    font-size: var(--car-fs-body);
    font-weight: 600;
    color: var(--detail-text-strong);
}
.rr-crm-option__sub {
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    line-height: 1.45;
}
.rr-crm-form__note {
    margin-top: 8px;
    padding: 10px 12px;
    background: var(--detail-bg-soft);
    border-radius: 8px;
    font-size: var(--car-fs-micro);
    color: var(--detail-text-muted);
    display: flex; gap: 8px; align-items: flex-start;
}
.rr-crm-form__note i { margin-top: 2px; color: var(--rr-moss, #356854); }
[data-rr-save-crm-submit].is-loading {
    opacity: .7; pointer-events: none;
}
