/* [OPP-CARD-V2] Oportunidades — card padronizado (02/11/2026)
   Anatomia fixa, de cima para baixo:
   1. Cabeçalho: nome (até 2 linhas, "…", nome completo no title) + código · cidade · consultor; score no canto direito.
   2. Alertas (só se existirem): Retorno do investimento · ROI · RT em aberto, como chips de uma linha.
   3. Números: Pipeline · Receita (colunas largas) · Compra · Contato, separados por linha; valores compactos (R$ 2,89 mi), exato no title.
   4. Motivos: recorrência, tempo sem pedido e até 3 motivos; o resto em "+N" (lista no title).
   5. Ações no rodapé: WhatsApp (destaque) + botões secundários iguais; nada passa da borda. */
#opp-lista .opp-cards { grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); gap: 18px; align-items: stretch; }
#opp-lista .opp-card.oc2 { min-width: 0; padding: 18px 18px 16px; gap: 14px; border: 1px solid var(--border); border-left: 4px solid var(--oc-cat); border-radius: 12px; background: var(--bg-card); box-shadow: 0 1px 2px rgba(0,0,0,.04); transition: box-shadow .15s, border-color .15s; }
#opp-lista .opp-card.oc2:hover { box-shadow: 0 6px 18px rgba(0,0,0,.08); }

#opp-lista .oc2 .opp-card-hdr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: start; }
#opp-lista .oc2 .oc2-id { min-width: 0; }
#opp-lista .oc2 .opp-card-nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; font-size: 15px; line-height: 1.3; }
#opp-lista .oc2 .opp-card-meta { margin-top: 3px; font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#opp-lista .oc2 .opp-card-score { width: 46px; height: 46px; border-radius: 10px; font-size: 18px; color: #fff; margin: 4px 4px 0 0; }

#opp-lista .oc2-alertas { display: flex; flex-wrap: wrap; gap: 6px; }
#opp-lista .oc2-alertas .opp-prob, #opp-lista .oc2-chip { display: inline-flex; flex-direction: row; align-items: center; gap: 6px; width: auto; height: 26px; min-width: 0; padding: 0 10px; border-radius: 999px; border: 1px solid color-mix(in srgb, currentColor 35%, transparent); background: color-mix(in srgb, currentColor 9%, transparent); font-family: var(--font-display); font-size: 12px; font-weight: 700; font-style: normal; line-height: 1; white-space: nowrap; }
#opp-lista .oc2-alertas .opp-prob *, #opp-lista .oc2-chip * { font-style: normal; }
#opp-lista .oc2-chip { color: var(--c); font-weight: 500; } #opp-lista .oc2-chip b { font-weight: 700; }
#opp-lista .oc2-alertas .opp-prob .opp-prob-sub { position: static; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; margin: 0; }
#opp-lista .oc2-alertas .opp-rt { color: var(--rtc); border-color: color-mix(in srgb, var(--rtc) 45%, transparent); background: color-mix(in srgb, var(--rtc) 10%, transparent); }
#opp-lista .oc2-alertas .opp-rt-lbl { font-size: 10px; letter-spacing: .6px; } #opp-lista .oc2-alertas .opp-rt-val { font-size: 12px; } #opp-lista .oc2-alertas .opp-rt-sub { display: none; } /* atraso e vencidos ficam no detalhe (clique) */
#opp-lista .oc2-alertas .info-card { left: 0; right: auto; transform: none; top: calc(100% + 6px); }

#opp-lista .oc2-kpis { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, .8fr) minmax(0, .8fr); grid-template-rows: auto auto auto; gap: 3px 0; padding: 12px 0; border: 0; border-radius: 10px; background: var(--bg-1); }
#opp-lista .oc2-kpis > div { min-width: 0; display: grid; grid-row: span 3; grid-template-rows: subgrid; align-content: start; padding: 0 10px 0 12px; }
#opp-lista .oc2-kpis > div + div { border-left: 1px solid var(--border); }
#opp-lista .oc2-kpis .opp-stat-lbl { font-size: 10px; letter-spacing: .8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#opp-lista .oc2-kpis .opp-stat-val { font-family: var(--font-display); font-variant-numeric: tabular-nums; font-size: 17px; font-weight: 700; letter-spacing: -.2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#opp-lista .oc2-kpis .opp-stat-sub { font-size: 10.5px; line-height: 1.3; }
#opp-lista .oc2-kpi-prob .opp-prob { width: auto; height: auto; padding: 0; border: 0; background: none; align-items: flex-start; justify-content: flex-start; font-family: var(--font-display); font-variant-numeric: tabular-nums; font-size: 17px; font-weight: 700; font-style: normal; cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
#opp-lista .oc2-kpi-prob .opp-prob .opp-prob-sub { display: none; }
#opp-lista .oc2-kpi-prob .info-card { left: auto; right: -60px; transform: none; }

#opp-lista .oc2 .opp-card-tags { gap: 6px; }
#opp-lista .oc2 .opp-card-tags .opp-tag, #opp-lista .oc2 .opp-card-tags .rec-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 11.5px; line-height: 1; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; box-sizing: border-box; }
#opp-lista .oc2 .opp-card-tags .rec-badge { border: 1px solid var(--border); background: var(--bg-1); font-weight: 600; }
#opp-lista .oc2 .oc2-tag-fx { color: var(--azul, #2563EB); border-color: color-mix(in srgb, var(--azul, #2563EB) 35%, transparent); background: color-mix(in srgb, var(--azul, #2563EB) 8%, transparent); }
#opp-lista .oc2 .oc2-mais { cursor: help; font-weight: 700; }

#opp-lista .oc2 .opp-card-actions { margin-top: auto; padding-top: 2px; display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 6px; }
#opp-lista .oc2 .opp-card-actions .btn { width: 100%; min-width: 0; height: 34px; margin: 0; justify-content: center; border-radius: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 6px; font-size: 12px; }
#opp-lista .oc2 .opp-card-actions .oc2-wa { background: var(--verde); color: #fff; border-color: var(--verde); font-weight: 600; }

@media (max-width: 900px) {
  #opp-lista .opp-cards { grid-template-columns: minmax(0, 1fr); }
  #opp-lista .oc2-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto auto auto auto; }
}

/* [OPP-CARD-GUARD] blocos criados pelo guarda */
#opp-lista .oc2 .oc2-extra { font-size: 11.5px; color: var(--text-mid); display: flex; flex-wrap: wrap; gap: 6px; max-height: 64px; overflow: hidden; min-width: 0; }
#opp-lista .oc2 .oc2-extra > * { max-width: 100%; min-width: 0; }
#opp-lista .oc2 .oc2-mais-g, #opp-lista .oc2 .oc2-mais-al { cursor: help; font-weight: 700; }
#opp-lista .oc2-alertas .oc2-mais-al { height: 26px; padding: 0 10px; border-radius: 999px; display: inline-flex; align-items: center; font-size: 12px; }
#opp-lista .oc2 .oc2-mais-wrap { position: relative; min-width: 0; }
#opp-lista .oc2 .oc2-mais-wrap > .oc2-mais-btn { width: 100%; }
#opp-lista .oc2 .oc2-menu { position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 50; min-width: 180px; display: flex; flex-direction: column; gap: 4px; padding: 6px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 12px 28px rgba(0,0,0,.18); }
#opp-lista .oc2 .oc2-menu[hidden] { display: none; }
#opp-lista .oc2 .oc2-menu .oc2-menu-item { width: 100%; justify-content: flex-start; height: 32px; }
#opp-lista .opp-card.oc2 { overflow: visible; }
#opp-lista .oc2 .oc2-mais-n { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 4px; border-radius: 999px; background: rgba(127,127,127,.18); font-size: 11px; font-weight: 700; }
#opp-lista .oc2 .oc2-mais-n.evt { background: var(--verde); color: #fff; }
