/* =====================================================================
   Infall Recepção — CÓPIA da folha do Infall CRM (crm-site/css/app.css, versão 194-73 de 17/10/2026),
   para o site da Recepção ter a mesma cara do CRM. NÃO editar aqui: o que for só da Recepção fica em
   css/recepcao-tela.css. Para atualizar, copiar de novo o arquivo do CRM inteiro.
   ===================================================================== */
:root {
  /* Paleta Infall (ícone neon): azul profundo + risco neon */
  --navy: #002166;
  --navy-2: #0065ee;
  --deep: #00113f;
  --deep-2: #010825;
  --neon: #0065ee;
  --neon-2: #0094fe;
  --neon-glow: rgba(0, 110, 255, .55);
  --gold: #c9a227;
  --bg: #f4f6f9;
  --card: #ffffff;
  --text: #1d2733;
  --muted: #667085;
  --line: #e3e8ef;
  --ok: #1e8e5a;
  --ok-bg: #e5f5ec;
  --warn: #b26b00;
  --warn-bg: #fff3dc;
  --bad: #c0392b;
  --bad-bg: #fde8e6;
  --info: #2563a8;
  --info-bg: #e6effa;
  --gray-bg: #eef1f5;
  --radius: 10px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; padding: 0; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 15px;
  color: var(--text);
  background: var(--bg);
  line-height: 1.4;
}
button, input, select, textarea { font: inherit; }
/* v194: o CRM tem visual claro. Sem isto, quando o navegador/app está em tema escuro, botões e campos
   sem cor própria usam a cor do sistema (texto branco) e somem sobre as listas brancas
   (ex.: escolha da unidade, período, menus). Botões e campos herdam a cor do lugar onde estão;
   as listas nativas (select, calendário) ficam sempre claras. */
:root { color-scheme: light; }
button, input, select, textarea { color: inherit; }
select option, select optgroup { color: var(--text); background-color: #fff; }
/* Fundo branco para campos sem fundo próprio (:where = prioridade zero; campos com estilo próprio,
   como o login e os filtros transparentes, continuam como estão). */
:where(input:not([type=checkbox], [type=radio], [type=range], [type=color], [type=file]), select, textarea) { background-color: #fff; }
a { color: var(--info); }

.boot { padding: 40px; text-align: center; color: var(--muted); }

/* ---------------- topo ---------------- */
.layout { display: flex; min-height: 100vh; }
.side {
  position: sticky; top: 10px; height: calc(100vh - 20px); width: 236px; flex: none; margin: 10px 0 10px 10px;
  display: flex; flex-direction: column; gap: 18px;
  background: radial-gradient(120% 60% at 50% 0%, #002b80 0%, var(--navy) 35%, var(--deep) 70%, var(--deep-2) 100%);
  color: #fff; padding: 18px 12px; z-index: 20;
  /* risco neon em volta do menu, como no ícone */
  border: 1.5px solid var(--neon);
  border-radius: 18px;
  box-shadow: 0 0 6px var(--neon-glow), 0 0 18px var(--neon-glow), inset 0 0 18px rgba(0, 101, 238, .22);
}
.brand { display: flex; align-items: center; gap: 10px; font-weight: 700; padding: 0 6px; }
.brand .dot { width: 30px; height: 30px; border-radius: 8px; background: var(--gold); flex: none; }
.brand-logo { width: 36px; height: 36px; border-radius: 8px; flex: none; object-fit: cover; display: block; }
.brand small { display: block; font-weight: 400; font-size: 12px; opacity: .75; }
.ico { width: 18px; height: 18px; flex: none; }
.nav { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.nav a {
  color: #d3deec; text-decoration: none; padding: 10px 12px; border-radius: 8px;
  display: flex; align-items: center; gap: 10px; font-size: 14px;
}
.nav a:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav a.active { background: rgba(0, 148, 254, .18); color: #fff; font-weight: 600; box-shadow: inset 3px 0 0 var(--neon-2); }
.nav a.active .ico { color: var(--neon-2); filter: drop-shadow(0 0 4px var(--neon-glow)); }
.nav .badge { margin-left: auto; background: var(--gold); color: var(--navy); border-radius: 10px; padding: 0 7px; font-size: 12px; font-weight: 700; }
.side-user { border-top: 1px solid rgba(255,255,255,.15); padding-top: 12px; display: flex; flex-direction: column; gap: 2px; }
.side-user .who { padding: 0 6px 8px; font-size: 13px; }
.side-user .who small { display: block; opacity: .7; }
.side-user button {
  display: flex; align-items: center; gap: 10px; background: none; border: 0; color: #d3deec;
  padding: 8px 12px; border-radius: 8px; cursor: pointer; font-size: 14px; text-align: left;
}
.side-user button:hover { background: rgba(255,255,255,.08); color: #fff; }
.main { flex: 1; min-width: 0; }

/* títulos das telas: maiúsculas e fonte futurista */
.page-head h1, h1.page-title {
  font-family: "Exo 2", system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-weight: 700;
  font-size: 24px;
  color: var(--navy);
}
@media (max-width: 640px) { .page-head h1, h1.page-title { font-size: 19px; } }

/* marca d'água do Infall no fundo das telas (atrás dos cartões) */
.main { position: relative; isolation: isolate; }
.main::before {
  content: ""; position: fixed; z-index: -1; pointer-events: none;
  right: 3vw; bottom: 2vh; width: min(52vmin, 560px); aspect-ratio: 1;
  background: url("../img/infall-marca-v2.svg") center / contain no-repeat;
  opacity: .07;
}
@media (max-width: 900px) { .main::before { width: 70vmin; right: 50%; transform: translateX(50%); opacity: .05; } }
@media print { .main::before { display: none; } }

/* menu lateral recolhível */
.side { transition: width .15s ease; }
.brand { position: relative; }
.brand-text { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brand { gap: 8px; }
.side-toggle { background: none; border: 0; color: #d3deec; cursor: pointer; padding: 6px; border-radius: 8px; display: flex; flex: none; }
.side-toggle:hover { background: rgba(255,255,255,.1); color: #fff; }
@media (min-width: 901px) {
  body.side-collapsed .side { width: 68px; padding: 18px 10px; }
  body.side-collapsed .brand { flex-direction: column; gap: 8px; padding: 0; }
  body.side-collapsed .brand-text,
  body.side-collapsed .side-user .who,
  body.side-collapsed .nav a > span:not(.badge),
  body.side-collapsed .side-user button > span { display: none; }
  body.side-collapsed .nav a,
  body.side-collapsed .side-user button { justify-content: center; padding: 10px 0; position: relative; }
  body.side-collapsed .nav .badge { position: absolute; top: 2px; right: 2px; margin: 0; font-size: 10px; padding: 0 5px; line-height: 16px; }
}
@media (max-width: 900px) { .side-toggle { display: none; } }

/* painel */
.page-title { font-size: 28px; font-weight: 600; margin: 0 0 16px; }
.filters { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; margin-bottom: 22px; }
.filters .seg button, .filters .btn, .filters input { height: 40px; }
.filter-label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.section-title { font-size: 22px; margin: 0; }
.section-sub { color: var(--muted); margin: 4px 0 18px; }
.dash { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; margin-bottom: 16px; align-items: start; }
.dash-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.funnel { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; }
.funnel-row { display: flex; justify-content: center; }
.funnel-bar {
  width: var(--w); min-height: 52px; border-radius: 999px; color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 22px;
  box-shadow: 0 2px 6px rgba(16,24,40,.12);
}
.funnel-bar.f0 { background: #1f3a5f; }
.funnel-bar.f1 { background: #2c5282; }
.funnel-bar.f2 { background: #1f6f6a; }
.funnel-bar.f-bad { background: #a8251b; }
.funnel-label { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.funnel-num { text-align: right; line-height: 1.1; }
.funnel-num b { display: block; font-size: 20px; }
.funnel-num small { font-size: 12px; opacity: .85; }
.funnel-note { text-align: center; margin: 4px 0 0; }

.demo-bar { background: var(--warn-bg); color: var(--warn); text-align: center; padding: 6px 12px; font-size: 13px; }

/* ---------------- página ---------------- */
.page { max-width: 1280px; margin: 0 auto; padding: 20px 16px 60px; }
.page-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.page-head h1 { font-size: 22px; margin: 0; }
.toolbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 16px; }
.card + .card { margin-top: 16px; }
.card h2 { font-size: 16px; margin: 0 0 12px; }
.card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.card-head h2 { margin: 0; }
.muted { color: var(--muted); }
.small { font-size: 13px; }
.empty { color: var(--muted); padding: 24px; text-align: center; }
.loading { color: var(--muted); padding: 24px; text-align: center; }
.error-box { background: var(--bad-bg); color: var(--bad); padding: 12px 14px; border-radius: 8px; }

/* botões */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--line); background: #fff; color: var(--text);
  padding: 7px 12px; border-radius: 8px; cursor: pointer; white-space: nowrap; text-decoration: none;
  font-size: 14px;
}
.btn:hover { border-color: #c5ceda; background: #fafbfc; }
.btn:disabled { opacity: .55; cursor: default; }
.btn.primary { background: var(--navy); border-color: var(--navy); color: #fff; }
.btn.primary:hover { background: var(--navy-2); }
.btn.ok { background: var(--ok); border-color: var(--ok); color: #fff; }
.btn.danger { color: var(--bad); border-color: #f0c4bf; }
.btn.danger:hover { background: var(--bad-bg); }
.btn.sm { padding: 4px 9px; font-size: 13px; }
.btn.link { border: 0; background: none; color: var(--info); padding: 4px 6px; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.seg button { border: 0; background: none; padding: 7px 12px; cursor: pointer; }
.seg button.active { background: var(--navy); color: #fff; }

input[type=text], input[type=tel], input[type=date], input[type=password], input[type=email], select, textarea {
  border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; background: #fff; color: var(--text); width: 100%;
}
textarea { min-height: 80px; resize: vertical; }
label.field { display: block; margin-bottom: 12px; }
label.field > span { display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
input.inline-input, select.inline-input { width: auto; }

/* chips */
.chip { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 999px; background: var(--gray-bg); color: var(--muted); white-space: nowrap; }
.chip.scheduled { background: var(--info-bg); color: var(--info); }
.chip.confirmed { background: #e3f1ff; color: #0b5cad; }
.chip.checked_in, .chip.completed { background: var(--ok-bg); color: var(--ok); }
.chip.no_show { background: var(--bad-bg); color: var(--bad); }
.chip.cancelled, .chip.rescheduled { background: var(--gray-bg); color: var(--muted); }
.chip.ad { background: #fdf3d7; color: #8a6a00; }
.chip.ai { background: #efe9fb; color: #5b3fa6; }
.chip.human { background: #e8f3f1; color: #1f6f63; }
.chip.warn { background: var(--warn-bg); color: var(--warn); }

/* KPIs */
.kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 16px; }
.kpi { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px 16px; }
.kpi .label { font-size: 13px; color: var(--muted); }
.kpi .value { font-size: 28px; font-weight: 700; margin-top: 4px; }
.kpi .sub { font-size: 12px; color: var(--muted); margin-top: 2px; }
.kpi.kpi-ia  { border-left: 5px solid #5b3fa6; }
.kpi.kpi-ia .value  { color: #5b3fa6; }
.kpi.kpi-crc { border-left: 5px solid #1f6f63; }
.kpi.kpi-crc .value { color: #1f6f63; }

/* tabelas */
.table-wrap { overflow-x: auto; }
table.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.tbl th, .tbl td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tbl th { font-size: 12px; text-transform: uppercase; letter-spacing: .02em; color: var(--muted); font-weight: 600; background: #fafbfc; }
.tbl td.num, .tbl th.num { text-align: right; font-variant-numeric: tabular-nums; }
.tbl tr.total td { font-weight: 700; background: #fafbfc; }

/* agenda - dia */
.slot { display: grid; grid-template-columns: 92px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.slot:last-child { border-bottom: 0; }
.slot-time { font-weight: 700; font-variant-numeric: tabular-nums; }
.slot-time .cap { display: block; font-weight: 400; font-size: 12px; color: var(--muted); margin-top: 2px; }
.slot-time .cap.full { color: var(--bad); font-weight: 600; }
.slot.past { opacity: .7; }
.slot.blocked { background: repeating-linear-gradient(135deg, #f6f7f9, #f6f7f9 8px, #eef0f3 8px, #eef0f3 16px); }
.slot-body { display: flex; flex-direction: column; gap: 8px; }
.slot-actions { display: flex; gap: 6px; flex-wrap: wrap; }

.appt { border: 1px solid var(--line); border-left: 4px solid var(--info); border-radius: 8px; padding: 10px 12px; background: #fff; }
.appt.st-confirmed { border-left-color: #0b5cad; }
.appt.st-checked_in, .appt.st-completed { border-left-color: var(--ok); }
.appt.st-no_show { border-left-color: var(--bad); }
.appt.st-cancelled, .appt.st-rescheduled { border-left-color: #b8c0cc; opacity: .75; }
.appt-head { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.appt-name { font-weight: 700; }
.appt-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; align-items: center; font-size: 13px; color: var(--muted); }
.appt-actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.appt-notes { font-size: 13px; margin-top: 6px; color: var(--muted); }

/* agenda - semana */
.week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.week-day { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 10px; min-height: 140px; }
.week-day.today { outline: 2px solid var(--gold); }
.week-day h3 { font-size: 14px; margin: 0 0 8px; display: flex; justify-content: space-between; cursor: pointer; }
.week-item { font-size: 13px; padding: 4px 6px; border-radius: 6px; background: var(--gray-bg); margin-bottom: 4px; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.week-item.st-confirmed { background: #e3f1ff; }
.week-item.st-checked_in, .week-item.st-completed { background: var(--ok-bg); }
.week-item.st-no_show { background: var(--bad-bg); }
.week-item.st-cancelled, .week-item.st-rescheduled { text-decoration: line-through; opacity: .6; }

.back-btn { margin-bottom: 12px; }

/* ficha do lead */
.lead-head { padding: 18px 20px 0; }
.lh-top { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.avatar.lh-avatar { width: 56px; height: 56px; border-radius: 14px; background: var(--navy); color: #fff; font-size: 20px; }
.lh-id { flex: 1; min-width: 220px; }
.lh-name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.lh-name h1 { font-size: 24px; margin: 0; }
.lh-meta { color: var(--muted); margin-top: 4px; display: flex; gap: 6px; flex-wrap: wrap; }
.lh-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.lh-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; border-top: 1px solid var(--line); margin-top: 16px; padding: 14px 0; }
.lh-strip span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.lh-strip b { display: block; font-size: 16px; margin-top: 4px; }
.lh-strip small { display: block; font-size: 12px; color: var(--muted); }
.lh-strip small.bad { color: var(--bad); font-weight: 600; }
.lh-tabs { margin: 0 -20px; padding: 0 12px; border-top: 1px solid var(--line); border-bottom: 0; }
.lead-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; margin-top: 16px; align-items: start; }
.lead-grid > .card { margin: 0; }
.conv-tools { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.conv-tools input { flex: 1; }
.msg .who { color: var(--muted); }
.msg-hit { outline: 2px solid var(--gold); }
.note-new { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; align-items: flex-end; }
.note-new textarea { min-height: 70px; }
.lead-tl h2 { margin-bottom: 10px; }
.tl { list-style: none; margin: 0; padding: 0 0 0 16px; border-left: 2px solid var(--line); max-height: 640px; overflow-y: auto; }
.tl li { position: relative; padding: 0 0 14px 8px; font-size: 14px; }
.tl li::before { content: ""; position: absolute; left: -23px; top: 3px; width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid #9aa8bb; }
.tl li.tl-agenda::before { border-color: #2563eb; }
.tl li.tl-atendimento::before { border-color: #d97706; }
.tl li.tl-nota::before { border-color: #7c3aed; }
.tl li.tl-lead::before { border-color: #15803d; }
@media (max-width: 1000px) {
  .lead-grid { grid-template-columns: 1fr; }
  .lh-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* leads: filtros */
.lead-filters { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 14px; }
.lead-filters label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--muted); }
.lead-filters label > span { font-weight: 600; }
.lead-filters input[type=text] { min-width: 220px; }
.lead-filters select { min-width: 220px; }
.lf-dates { display: flex; gap: 6px; align-items: center; }
.lf-dates input { width: auto; }
.lf-btns { display: flex; gap: 8px; }

/* leads: kanban */
.kanban { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 10px; align-items: flex-start; }
.kb-col { flex: 0 0 270px; background: #eef1f6; border-radius: 12px; padding: 10px; }
.kb-head { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px 10px; }
.kb-list { display: flex; flex-direction: column; gap: 8px; max-height: 68vh; overflow-y: auto; }
.kb-card { display: flex; flex-direction: column; gap: 3px; background: #fff; border-radius: 10px; padding: 10px 12px; box-shadow: var(--shadow); color: var(--text); text-decoration: none; }
.kb-card:hover { outline: 2px solid #c5ceda; }
.kb-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.kb-empty { text-align: center; padding: 10px; }

/* exportar PDF (impressão) */
#print-root { display: none; }
@media print {
  body > *:not(#print-root) { display: none !important; }
  #print-root { display: block !important; font-size: 11px; color: #000; }
  #print-root h1 { font-size: 18px; margin: 0 0 4px; }
  #print-root p { margin: 0 0 10px; color: #444; }
  #print-root table { width: 100%; border-collapse: collapse; }
  #print-root th, #print-root td { border-bottom: 1px solid #ccc; padding: 4px 6px; text-align: left; }
  #print-root th { background: #eee; }
}

/* confirmação do dia */
.ov-row.ov-row-one { grid-template-columns: 1fr; }
.conf-card { margin-bottom: 16px; }
.conf-head { align-items: flex-start; }
.conf-head h2 { margin: 0 0 2px; font-size: 18px; }
.conf-summary { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; font-size: 14px; }
.cf-chip { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }
.cf-ok   { --cf: #15803d; --cf-bg: #e1f5e8; }
.cf-bad  { --cf: #b91c1c; --cf-bg: #fde4e1; }
.cf-conf { --cf: #0b5cad; --cf-bg: #e3f1ff; }
.cf-warn { --cf: #b45309; --cf-bg: #fff4e0; }
.cf-msg  { --cf: #6d28d9; --cf-bg: #efe8ff; }
.cf-wait { --cf: #4b5563; --cf-bg: #eef0f3; }
.cf-chip { background: var(--cf-bg); color: var(--cf); }
.conf-list { display: flex; flex-direction: column; }
.conf-row { display: flex; align-items: center; gap: 14px; padding: 10px 8px; border-top: 1px solid var(--line); border-left: 4px solid var(--cf); }
.conf-time { font-weight: 800; font-size: 16px; width: 54px; flex: none; font-variant-numeric: tabular-nums; }
.conf-main { flex: 1; min-width: 200px; }
.conf-actions { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.cf-btn.sel { background: var(--navy); color: #fff; border-color: var(--navy); }
@media (max-width: 800px) { .conf-row { flex-wrap: wrap; } .conf-actions { justify-content: flex-start; } }

/* tarefas */
.nav .badge.badge-bad { background: #ef4444; color: #fff; }
.overdue-chip { background: #fde4e1; color: #b91c1c; text-decoration: none; }
.t-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.t-kpi { background: var(--card); border-radius: 12px; box-shadow: var(--shadow); padding: 14px 16px; }
.t-kpi span { display: block; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.t-kpi b { display: block; font-size: 30px; margin-top: 4px; }
.t-kpi.bad { outline: 2px solid #f3c1bb; } .t-kpi.bad b { color: #b91c1c; }
.t-kpi.ok b { color: #15803d; }
.fchips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.fchips-l { font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-right: 4px; }
.fchip { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 5px 12px; cursor: pointer; font-size: 13px; }
.fchip.active { border-color: var(--navy); background: #e8edf5; color: var(--navy); font-weight: 700; }
.t-group { margin-top: 14px; padding: 0; overflow: hidden; }
.t-group h2 { margin: 0; padding: 12px 16px; font-size: 15px; border-bottom: 1px solid var(--line); }
.t-group.g-bad h2 { color: #b91c1c; background: #fff5f4; }
.t-group summary { padding: 12px 16px; cursor: pointer; }
.task-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.task-row:last-child { border-bottom: 0; }
.task-row.overdue { background: #fffafa; }
.task-check { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 2px solid #c5ceda; background: #fff; color: transparent; cursor: pointer; font-weight: 800; }
.task-check:hover { border-color: var(--ok); color: var(--ok); }
.task-check.done { display: inline-flex; align-items: center; justify-content: center; background: var(--ok); border-color: var(--ok); color: #fff; cursor: default; }
.task-done .task-title { text-decoration: line-through; color: var(--muted); }
.task-main { flex: 1; min-width: 0; }
.task-title { font-weight: 600; display: flex; align-items: center; gap: 8px; }
.task-ico { width: 22px; height: 22px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; background: var(--gray-bg); }
.task-ico.k-responder { background: #fde4e1; color: #b91c1c; }
.task-ico.k-confirmar { background: #e6effa; color: #1f4e8c; }
.task-ico.k-falta, .task-ico.k-cancelado { background: #fff4e0; color: #b45309; }
.task-ico.k-retomar { background: #efe8ff; color: #6d28d9; }
.task-sub { font-size: 13px; color: var(--muted); margin-top: 3px; }
.task-sub a { color: var(--info); }
.due-bad { color: #b91c1c; font-weight: 700; }
.task-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.task-assign { width: auto; padding: 5px 8px; font-size: 13px; }
@media (max-width: 800px) { .t-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .task-row { flex-wrap: wrap; } }

/* nova tarefa: busca de lead */
.lead-pick { display: flex; flex-direction: column; gap: 4px; }
.lp-label { font-size: 13px; color: var(--muted); }
.lp-results { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.lp-item { display: flex; justify-content: space-between; gap: 10px; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 8px 10px; cursor: pointer; }
.lp-item:hover { border-color: var(--navy); background: #f3f6fb; }
.lp-item span { color: var(--muted); font-variant-numeric: tabular-nums; }
.lp-none { padding: 6px 2px; }
.lp-chosen { display: flex; align-items: center; gap: 10px; border: 1px solid #bfe3cc; background: #eef9f2; border-radius: 10px; padding: 8px 10px; }
.lp-chosen > div { flex: 1; }

/* tarefas: fila guiada */
.btn.act-warn { background: #fff4e0; border-color: #f5d49a; color: #92400e; font-weight: 600; }
.btn.act-warn:hover { background: #ffe8c2; }
.wa-btn { background: #1faa59; border-color: #1faa59; color: #fff; font-weight: 700; }
.wa-btn:hover { background: #178a48; }

.focus { border-top: 5px solid var(--fk, var(--navy)); margin-bottom: 16px; }
.focus.k-confirmar { --fk: #1f4e8c; } .focus.k-responder { --fk: #c62828; } .focus.k-falta, .focus.k-cancelado { --fk: #d97706; }
.focus.k-retomar { --fk: #6d28d9; } .focus.k-manual { --fk: #4b5563; }
.focus-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.focus-head h2 { margin: 0; font-size: 20px; }
.focus-tag { font-size: 11px; font-weight: 800; letter-spacing: .06em; color: #fff; background: var(--fk, var(--navy)); padding: 3px 8px; border-radius: 6px; }
.focus-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.focus-lead { font-size: 16px; }
.focus-why { background: #f6f8fb; border-radius: 8px; padding: 10px 12px; margin: 10px 0; font-size: 14px; }
.focus-msgs .fm { font-size: 13px; padding: 4px 0; border-bottom: 1px dashed var(--line); }
.focus-contact { display: flex; gap: 8px; flex-wrap: wrap; }
.focus-result { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; border-top: 1px solid var(--line); margin-top: 14px; padding-top: 14px; }
.out-ret { display: inline-flex; gap: 4px; align-items: center; }
.out-ret select { width: auto; padding: 7px 8px; }
.focus-empty { display: flex; flex-direction: column; gap: 4px; text-align: center; padding: 26px; margin-bottom: 16px; border-top: 5px solid #1e8e5a; }
.q-row { gap: 10px; }
.q-prio { width: 4px; align-self: stretch; border-radius: 4px; background: #c5ceda; flex: none; }
.q-prio.k-confirmar { background: #1f4e8c; } .q-prio.k-responder { background: #c62828; }
.q-prio.k-falta, .q-prio.k-cancelado { background: #d97706; } .q-prio.k-retomar { background: #6d28d9; }
.q-focus { background: #f3f7ff; }
@media (max-width: 900px) { .focus-grid { grid-template-columns: 1fr; } }

/* janela do agendamento */
.am-status { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.am-dl { margin-bottom: 14px; }
.am-open { margin-bottom: 14px; background: #f5f0ff; border-color: #e3d8ff; color: #5b3fa6; }
.am-actions { display: flex; gap: 8px; flex-wrap: wrap; border-top: 1px solid var(--line); padding-top: 14px; }
.am-actions .btn { font-size: 14px; padding: 7px 12px; }
.week-item[data-appt] { cursor: pointer; }
.week-item[data-appt]:hover { outline: 1px solid #9aa8bb; }
.name-link { color: inherit; text-decoration: none; }
.name-link:hover { color: var(--info); text-decoration: underline; }

/* botões de presença (aba Agendados): cores fortes, texto branco */
.btn.act-ok      { background: #17693f; border-color: #17693f; color: #fff; font-weight: 600; }
.btn.act-bad     { background: #a8251b; border-color: #a8251b; color: #fff; font-weight: 600; }
.btn.act-resched { background: #1f4e8c; border-color: #1f4e8c; color: #fff; font-weight: 600; }
.btn.act-ok:hover:not(:disabled)      { background: #0f5230; }
.btn.act-bad:hover:not(:disabled)     { background: #861b13; }
.btn.act-resched:hover:not(:disabled) { background: #173d70; }
.btn.act-ok:disabled, .btn.act-bad:disabled { opacity: .8; cursor: not-allowed; }

/* ================= Visão geral ================= */
.ov-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 6px; }
.ov-sub { color: var(--muted); margin: 4px 0 0; }
.ov-range-note { color: var(--muted); font-size: 13px; margin: 0 0 14px; }
.range { position: relative; }
.range-btn {
  display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px;
  padding: 10px 14px; cursor: pointer; box-shadow: var(--shadow); font-size: 15px;
}
.range-btn .caret { color: var(--muted); margin-left: 4px; }
.range-pop {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; background: #fff; border-radius: 12px;
  box-shadow: 0 12px 32px rgba(16,24,40,.18); padding: 8px; min-width: 300px; display: flex; flex-direction: column; gap: 2px;
}
.range-pop > button { text-align: left; border: 0; background: none; padding: 9px 12px; border-radius: 8px; cursor: pointer; font-size: 14px; }
.range-pop > button:hover { background: var(--gray-bg); }
.range-pop > button.active { background: var(--navy); color: #fff; }
.range-custom { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; border-top: 1px solid var(--line); margin-top: 6px; padding: 10px 4px 4px; }
.range-custom input { padding: 6px 8px; }

.ov-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.ov-kpi { border-radius: 14px; padding: 18px 20px; box-shadow: var(--shadow); background: var(--k-bg); }
.ov-kpi-h { display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 15px; }
.ov-ico { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--k-ico-bg); color: var(--k); }
.ov-ico .ico { width: 20px; height: 20px; }
.ov-kpi-v { font-size: 40px; font-weight: 800; margin: 10px 0 4px; line-height: 1; }
.ov-kpi-f { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--muted); }
.delta { font-weight: 700; font-size: 15px; }
.delta.up { color: #15803d; }
.delta.down { color: #b91c1c; }
.delta.flat { color: var(--muted); }
.k-leads { --k: #2563eb; --k-bg: #f5f8ff; --k-ico-bg: #e0e9ff; }
.k-ag    { --k: #7c3aed; --k-bg: #f8f5ff; --k-ico-bg: #ece4ff; }
.k-ok    { --k: #15803d; --k-bg: #f2fbf5; --k-ico-bg: #dcf3e4; }
.k-bad   { --k: #b91c1c; --k-bg: #fff4f3; --k-ico-bg: #fde0dd; }

.ov-row { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; align-items: stretch; }
.ov-row.ov-row-even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ov-row > .card { margin: 0; }
.ov-chart { margin-bottom: 16px; }
.ov-chart + .ov-row { margin-top: 0; }
.card + .card { margin-top: 16px; }
.ov-row > .card + .card { margin-top: 0; }

.flow { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; padding: 8px 0; }
.flow-step { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.flow-box { width: 100%; border-radius: 12px; padding: 16px 8px; text-align: center; }
.flow-box b { display: block; font-size: 30px; line-height: 1; }
.flow-box span { display: block; font-size: 14px; margin-top: 6px; color: var(--text); }
.flow-pct { font-weight: 700; font-size: 17px; }
.flow-arrow { align-self: center; margin-top: -30px; color: var(--muted); font-size: 22px; }
.fl-leads { --f: #2563eb; } .fl-ag { --f: #7c3aed; } .fl-ok { --f: #15803d; } .fl-bad { --f: #b91c1c; }
.flow-box.fl-leads { background: #e7efff; } .flow-box.fl-ag { background: #efe8ff; }
.flow-box.fl-ok { background: #e1f5e8; } .flow-box.fl-bad { background: #fde4e1; }
.flow-box b, .flow-pct { color: var(--f); }
.flow-note { text-align: center; margin: 6px 0 0; }

.donut { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; justify-content: center; }
.donut svg { width: 170px; height: 170px; flex: none; }
.dn-track { fill: none; stroke: #eef0f4; stroke-width: 22; }
.dn-seg { fill: none; stroke-width: 22; }
.dn-ia { stroke: #8b3dff; } .dn-crc { stroke: #c4ccd8; }
.dn-num { font-size: 28px; font-weight: 800; fill: var(--text); }
.dn-lbl { font-size: 12px; fill: var(--muted); }
.dn-legend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.dn-legend li { display: grid; grid-template-columns: 14px auto; column-gap: 10px; align-items: center; }
.dn-legend i { width: 12px; height: 12px; border-radius: 50%; grid-row: span 2; }
.dn-legend span { font-weight: 700; font-size: 15px; }
.dn-legend b { font-size: 18px; grid-column: 2; }
.dn-legend small { grid-column: 2; color: var(--muted); }
.dn-ia-dot { background: #8b3dff; } .dn-crc-dot { background: #c4ccd8; }

.lc-legend { display: flex; gap: 18px; font-size: 13px; color: var(--muted); margin: -4px 0 6px; }
.lc-legend i, .lc-tip i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: middle; }
.lc { position: relative; }
.lc svg { width: 100%; height: auto; max-height: 300px; display: block; }
.lc-grid { stroke: #eef0f4; stroke-width: 1; }
.lc-axis { font-size: 11px; fill: var(--muted); }
.lc-line { fill: none; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.lc-area { opacity: .08; }
.lc-dot { stroke: #fff; stroke-width: 1.5; }
.lc-cross { stroke: #c5ceda; stroke-width: 1; stroke-dasharray: 3 3; }
.lc-hit { fill: transparent; cursor: crosshair; }
.lc-tip {
  position: absolute; top: 6px; background: #fff; border-radius: 8px; box-shadow: 0 6px 20px rgba(16,24,40,.18);
  padding: 8px 10px; font-size: 13px; pointer-events: none; min-width: 140px; z-index: 5;
}
.lc-tip b { font-weight: 700; }

.ov-attn { margin-bottom: 16px; }
.ov-attn h2 { margin: 0; font-size: 18px; }
.attn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 10px; }
.attn-grid .attn { margin: 0; }
.attn-n {
  min-width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--a); color: #fff; font-size: 20px; font-weight: 800; flex: none; padding: 0 6px;
}
/* vermelho = resolver agora · amarelo = atenção · verde = em dia (zerado) */
.a-red   { --a: #c62828; --a-bg: #fdecea; }
.a-amber { --a: #d97706; --a-bg: #fff4e0; }
.a-green { --a: #1e8e5a; --a-bg: #e8f6ee; }
.attn.a-red { border: 1px solid #f3b4ad; }
.attn.a-amber { border: 1px solid #f5d49a; }
.attn.a-green { border: 1px solid #bfe3cc; }
.attn-zero .attn-txt b, .attn-zero .attn-txt small { color: #3f6b52; }
.attn-legend { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.attn-legend i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; margin-left: 8px; }
.lg-red { background: #c62828; } .lg-amber { background: #d97706; } .lg-green { background: #1e8e5a; }

/* status de atendimento (039) */
.st-chip { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; white-space: nowrap; background: var(--gray-bg); color: #4b5563; }
.st-novo              { background: #e7efff; color: #1d4ed8; }
.st-em_atendimento_ia { background: #efe8ff; color: #6d28d9; }
.st-aguardando_lead   { background: #fff4e0; color: #b45309; }
.st-aguardando_crc    { background: #fde4e1; color: #b91c1c; }
.st-agendado          { background: #e6effa; color: #1f4e8c; }
.st-compareceu        { background: #e1f5e8; color: #15803d; }
.st-faltou            { background: #fde4e1; color: #a8251b; }
.st-cancelado         { background: #eef0f3; color: #6b7280; }
.st-sem_interesse     { background: #eef0f3; color: #6b7280; }
.st-pendente          { background: #fff1e3; color: #c2610c; }
.filter-hint { --cat: #1f4e8c; --cat-bg: #e6effa; }
.clear-filter { margin-left: 8px; font-weight: 600; }
.attn { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; text-decoration: none; color: var(--text); margin-bottom: 10px; background: var(--a-bg); }
.attn:hover { filter: brightness(.97); }
.attn-ico { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; background: var(--a); font-weight: 800; flex: none; }
.attn-txt { flex: 1; min-width: 0; }
.attn-txt b { display: block; font-size: 14px; }
.attn-txt small { display: block; color: var(--muted); font-size: 13px; }
.attn-go { color: var(--muted); font-size: 22px; }
.a-red   { --a: #c62828; --a-bg: #fdecea; }
.a-amber { --a: #d97706; --a-bg: #fff4e0; }
.a-blue  { --a: #2563eb; --a-bg: #e8f0ff; }
.a-gray  { --a: #6b7280; --a-bg: #f0f2f5; }

.ov-tbl td { vertical-align: middle; }
.ov-tbl th, .ov-tbl td { padding: 8px 6px; }
.ov-tbl .avatar { width: 28px; height: 28px; font-size: 11px; }
.ov-person { display: flex; align-items: center; gap: 10px; color: var(--text); text-decoration: none; }
.ov-person:hover { color: var(--info); }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: #e5e9f0; color: #3b4a5e; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex: none; }
.nowrap { white-space: nowrap; }

@media (max-width: 1100px) {
  .ov-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ov-row, .ov-row.ov-row-even { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .ov-kpi-v { font-size: 32px; }
  .flow { flex-wrap: wrap; }
  .flow-step { flex: 1 1 40%; }
  .flow-arrow { display: none; }
  .range-pop { right: auto; left: 0; min-width: 260px; }
}

/* abas */
.tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 10px; overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tabs button {
  border: 0; background: none; padding: 10px 14px; cursor: pointer; white-space: nowrap; color: var(--muted);
  border-bottom: 3px solid transparent; margin-bottom: -1px; font-size: 15px;
}
.tabs button:hover { color: var(--text); }
/* cor de cada aba de leads (a mesma na aba, no contador e na borda do cartão) */
.cat-pendente      { --cat: #c2610c; --cat-bg: #fff1e3; }
.cat-faltou        { --cat: #c0392b; --cat-bg: #fde8e6; }
.cat-agendado      { --cat: #2563a8; --cat-bg: #e6effa; }
.cat-compareceu    { --cat: #1e8e5a; --cat-bg: #e5f5ec; }
.cat-sem_interesse { --cat: #6b7280; --cat-bg: #eef0f3; }
.tabs button.active { color: var(--cat, var(--navy)); border-bottom-color: var(--cat, var(--navy)); font-weight: 600; }
.tab-count { display: inline-block; min-width: 22px; padding: 0 6px; border-radius: 999px; font-size: 12px; font-weight: 700; text-align: center; margin-left: 4px;
  background: var(--cat-bg, var(--gray-bg)); color: var(--cat, var(--muted)); }
.tabs button.active .tab-count { background: var(--cat, var(--navy)); color: #fff; }
.item.cat-pendente, .item.cat-faltou, .item.cat-agendado, .item.cat-compareceu, .item.cat-sem_interesse { border-left: 5px solid var(--cat); }
.cat-chip { display: inline-block; font-size: 12px; font-weight: 700; padding: 2px 9px; border-radius: 999px; background: var(--cat-bg); color: var(--cat); }
.tab-hint { border-left: 4px solid var(--cat); background: var(--cat-bg); color: var(--text); padding: 8px 12px; border-radius: 6px; font-size: 14px; margin: 0 0 12px; }

/* agenda - mês: resumo em quadrinhos (mesmas cores dos dias) */
.mstats { display: grid; grid-template-columns: 1.4fr repeat(5, 1fr); gap: 10px; margin-bottom: 14px; }
.mstat { background: var(--card); border-radius: 10px; box-shadow: var(--shadow); padding: 10px 14px; border-top: 4px solid var(--c, #cbd2dc); }
.mstat b { display: block; font-size: 26px; line-height: 1.1; color: var(--c, var(--text)); }
.mstat span { display: block; font-size: 13px; font-weight: 600; color: var(--text); margin-top: 2px; }
.mstat small { display: block; font-size: 12px; color: var(--muted); margin-top: 4px; }
.mstat.m-total { --c: var(--navy); }
.mstat.m-ok    { --c: var(--ok); }
.mstat.m-bad   { --c: var(--bad); }
.mstat.m-conf  { --c: #0b5cad; }
.mstat.m-wait  { --c: #6b7280; }
.mstat.m-off   { --c: #b8c0cc; opacity: .85; }
@media (max-width: 900px) { .mstats { grid-template-columns: repeat(3, 1fr); } }

/* agenda - mês */
.month { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.month-head { font-size: 12px; font-weight: 600; text-transform: uppercase; color: var(--muted); text-align: center; padding: 4px 0; }
.month-day { background: var(--card); border-radius: 8px; box-shadow: var(--shadow); padding: 6px; min-height: 118px; cursor: pointer; overflow: hidden; }
.month-day:hover { outline: 1px solid #c5ceda; }
.month-day.out { background: #f8f9fb; opacity: .55; }
.month-day.today { outline: 2px solid var(--gold); }
.month-num { display: flex; justify-content: space-between; align-items: center; font-weight: 700; font-size: 13px; margin-bottom: 4px; }
.month-count { background: var(--navy); color: #fff; border-radius: 999px; font-size: 11px; padding: 0 7px; line-height: 18px; }
.month-items .week-item { font-size: 12px; padding: 2px 5px; margin-bottom: 3px; }
.month-more { font-size: 11px; color: var(--muted); padding: 0 2px; }

/* agenda - dia bloqueado (feriado) */
.month-day.holiday, .week-day.holiday {
  background: repeating-linear-gradient(135deg, var(--bad-bg) 0 8px, #fff6f5 8px 16px);
}
.holiday-tag { display: inline-block; max-width: 100%; background: var(--bad); color: #fff; font-size: 11px; font-weight: 600;
  border-radius: 6px; padding: 1px 6px; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.day-blocked { display: flex; align-items: center; gap: 12px; background: var(--bad-bg); border: 1px solid #f0c4bf;
  border-left: 5px solid var(--bad); border-radius: var(--radius); padding: 12px 14px; margin-bottom: 12px; }
.day-blocked-icon { font-size: 26px; line-height: 1; color: #d93025; }
.day-blocked-text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.day-blocked-text b { color: var(--bad); font-size: 16px; }
.day-blocked-text small { color: var(--muted); }
.day-blocked-warn { color: var(--warn); font-weight: 600; }
.day-blocked-warn.box { background: var(--warn-bg); border-radius: 8px; padding: 8px 10px; font-weight: 400; color: var(--text); margin-top: 8px; }
.day-blocked-warn.box b { color: var(--warn); }
.day-blocked-warn.box ul { margin: 6px 0 0; padding-left: 18px; }
.chips-pick { display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 10px; }
.chips-pick .chip { cursor: pointer; border: 1px solid var(--line); background: #fff; }
.chips-pick .chip:hover { border-color: var(--navy-2); }
@media (max-width: 640px) { .day-blocked { flex-wrap: wrap; } }

/* ===== Login Infall: igual à arte aprovada (marca + formulário à esquerda, V em 3D à direita) ===== */
.lg-wrap {
  position: relative; min-height: 100vh; overflow: hidden; display: flex; align-items: center;
  padding: 6vh 16px;
  background:
    radial-gradient(55% 45% at 45% 0%, rgba(1, 36, 84, .9) 0%, transparent 70%),
    linear-gradient(90deg, #01060f 0%, #010a19 45%, #010b1d 100%);
}
.lg-art {
  position: absolute; top: 0; right: 0; height: 100%; aspect-ratio: 860 / 940; max-width: 62vw;
  background: url("../img/login-v.jpg?v=1") right center / cover no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 14%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 14%);
  pointer-events: none;
}
/* efeito de luzes SÓ no funil (V): usa a máscara com o formato do V (img/login-v-mascara.png) */
.lg-art::before, .lg-art::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen;
  -webkit-mask-size: cover, 300% 100%; mask-size: cover, 300% 100%;
  -webkit-mask-position: right center, 100% 0; mask-position: right center, 100% 0;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
/* feixe de brilho que percorre o funil */
.lg-art::before {
  background: linear-gradient(115deg, #7fd4ff, #ffffff 50%, #7fd4ff);
  -webkit-mask-image: url("../img/login-v-mascara.png?v=2"), linear-gradient(115deg, transparent 42%, #000 50%, transparent 58%);
          mask-image: url("../img/login-v-mascara.png?v=2"), linear-gradient(115deg, transparent 42%, #000 50%, transparent 58%);
  -webkit-mask-composite: source-in; mask-composite: intersect;
  animation: lg-sweep 5.5s cubic-bezier(.45, 0, .25, 1) infinite;
}
/* pulso: o funil acende e apaga devagar */
.lg-art::after {
  background: linear-gradient(180deg, #3aa0ff, #00c8ff);
  -webkit-mask-image: url("../img/login-v-mascara.png?v=2"); mask-image: url("../img/login-v-mascara.png?v=2");
  -webkit-mask-size: cover; mask-size: cover; -webkit-mask-position: right center; mask-position: right center;
  animation: lg-pulse 3.2s ease-in-out infinite alternate;
}
@keyframes lg-sweep {
  0% { -webkit-mask-position: right center, 100% 0; mask-position: right center, 100% 0; opacity: 0; }
  10% { opacity: .9; }
  60% { -webkit-mask-position: right center, 0% 0; mask-position: right center, 0% 0; opacity: .9; }
  70%, 100% { -webkit-mask-position: right center, 0% 0; mask-position: right center, 0% 0; opacity: 0; }
}
@keyframes lg-pulse { from { opacity: 0; } to { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .lg-art::before, .lg-art::after { animation: none; opacity: 0; } }.lg-panel { position: relative; z-index: 2; width: min(380px, 26vw); min-width: 300px; margin-left: max(0px, calc(25vw - 190px)); display: flex; flex-direction: column; }
.lg-brand { display: flex; flex-direction: column; align-items: flex-end; align-self: center; user-select: none; }
.lg-infall {
  display: flex; align-items: baseline;
  font-family: "Montserrat", system-ui, sans-serif; font-weight: 500; color: #fff;
  font-size: clamp(42px, 5.6vw, 100px); line-height: 1; letter-spacing: .17em; margin-right: -.17em;
}
.lg-a { width: .7em; height: .74em; overflow: visible; margin: 0 .17em 0 0; flex: none; }
.lg-a path { fill: none; stroke: #fff; stroke-width: 7; stroke-linejoin: miter; stroke-miterlimit: 10; }
.lg-crm {
  font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; color: #1a9bff;
  font-size: clamp(22px, 2.55vw, 46px); letter-spacing: .13em; line-height: 1; margin-top: .22em; margin-right: -.13em;
}
.lg-tag {
  align-self: center; margin: 16px 0 clamp(32px, 3.4vw, 48px); text-align: center; white-space: nowrap;
  color: #8fa3c4; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .34em; margin-right: -.34em;
}.lg-form { display: flex; flex-direction: column; align-items: stretch; gap: clamp(12px, 1vw, 16px); }
.lg-input {
  display: flex; align-items: center; gap: 12px; padding: 0 16px; height: clamp(44px, 3vw, 50px); border-radius: 14px;
  background: rgba(4, 12, 32, .55); border: 1.5px solid rgba(110, 140, 200, .38); color: #cfd9ea;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04);
}
.lg-input:focus-within { border-color: #3d9bff; box-shadow: 0 0 0 3px rgba(26, 125, 255, .22); }
.lg-input .ico { width: 18px; height: 18px; color: #e6edf7; }
.lg-input input { flex: 1; min-width: 0; height: 100%; background: transparent; border: 0; outline: 0; color: #fff; font-size: 15px; }
.lg-input input::placeholder { color: #93a3bf; }
.lg-input input:-webkit-autofill { -webkit-text-fill-color: #fff; transition: background-color 9999s ease-out; }
.lg-eye { background: none; border: 0; padding: 4px; color: #93a3bf; cursor: pointer; display: flex; border-radius: 6px; }
.lg-eye:hover { color: #fff; }
.lg-submit {
  width: 100%; height: clamp(44px, 3vw, 50px); margin-top: 4px; border: 0; border-radius: 14px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  color: #fff; font-size: 16px; font-weight: 500;
  background: linear-gradient(180deg, #34a6ff 0%, #0f72ff 100%);
  box-shadow: 0 8px 24px rgba(0, 110, 255, .35), inset 0 1px 0 rgba(255, 255, 255, .3);
  transition: transform .1s, box-shadow .15s, filter .15s;
}
.lg-submit:hover { filter: brightness(1.08); box-shadow: 0 10px 30px rgba(0, 120, 255, .5), inset 0 1px 0 rgba(255, 255, 255, .3); }
.lg-submit:active { transform: translateY(1px); }
.lg-submit:disabled { opacity: .7; cursor: wait; }
.lg-submit .ico { width: 1.1em; height: 1.1em; }
.lg-forgot { align-self: center; margin-top: 10px; background: none; border: 0; color: #2fb0ff; font-size: 14px; cursor: pointer; padding: 2px; }
.lg-forgot:hover { color: #9fd4ff; text-decoration: underline; }
.lg-forgot-msg, .lg-error { font-size: 13px; line-height: 1.4; border-radius: 10px; padding: 8px 10px; text-align: left; }
.lg-forgot-msg { background: rgba(2, 16, 58, .9); border: 1px solid rgba(26, 125, 255, .6); color: #cfe2ff; }
.lg-error { background: rgba(120, 10, 20, .75); border: 1px solid #ff6b6b; color: #fff; }
/* celular / tela estreita: V atrás, mais apagado; conteúdo centralizado */
@media (max-width: 760px) {
  .lg-wrap { justify-content: center; padding: 8vh 16px; }
  .lg-art { max-width: none; right: -45vw; opacity: .45; }
  .lg-panel { width: 100%; min-width: 0; }
  /* celular: CRM no começo do INFALL e com mais contraste sobre o fundo azul */
  .lg-brand { align-items: flex-start; }
  .lg-crm { margin: .3em 0 0 .06em; color: #5cc0ff; text-shadow: 0 0 2px rgba(0, 10, 40, .9), 0 0 12px rgba(0, 10, 40, .85), 0 0 16px rgba(0, 140, 255, .55); }
  .lg-infall { text-shadow: 0 0 14px rgba(0, 10, 40, .8); }
  .lg-panel { margin-left: 0; }
  .lg-tag { letter-spacing: .22em; margin-right: -.22em; font-size: 10px; }
}
.login-logo { display: block; margin: 0 auto 14px; width: 150px; height: 150px; border-radius: 30px;
  box-shadow: 0 0 10px rgba(0, 110, 255, .45), 0 0 24px rgba(0, 110, 255, .25); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* controle da IA */
.ai-banner { background: var(--bad); color: #fff; padding: 8px 16px; font-size: 14px; text-align: center; }
.ai-banner a { color: #fff; text-decoration: underline; font-weight: 700; margin-left: 6px; }
.ia-now { display: flex; flex-direction: column; gap: 2px; border-radius: var(--radius); padding: 12px 16px; margin-bottom: 12px; border-left: 5px solid; }
.ia-now b { font-size: 17px; }
.ia-now.ok { background: var(--ok-bg); border-color: var(--ok); color: var(--ok); }
.ia-now.bad { background: var(--bad-bg); border-color: var(--bad); color: var(--bad); }
.ia-now span { color: var(--text); font-size: 14px; }
.ia-card { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.ia-card h2 { margin: 0 0 6px; font-size: 17px; }
.ia-card p { margin: 0 0 6px; }
.ia-card-text { flex: 1; }
.ia-btn, .ia-btn-ok { white-space: nowrap; font-size: 15px; padding: 10px 16px; }
.ia-paused-info { background: var(--bad-bg); color: var(--bad); border-radius: 8px; padding: 6px 10px; display: inline-block; }
.switch { display: flex; align-items: center; gap: 10px; cursor: pointer; white-space: nowrap; }
.switch input { display: none; }
.switch .slider { width: 48px; height: 26px; border-radius: 999px; background: #c5ceda; position: relative; transition: background .15s; }
.switch .slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.2); transition: left .15s; }
.switch input:checked + .slider { background: var(--bad); }
.switch input:checked + .slider::after { left: 25px; }
.switch-lbl { font-size: 14px; }
@media (max-width: 640px) { .ia-card { flex-direction: column; align-items: flex-start; } }

/* atendimento pendente - nome em destaque com leve sombreamento */
.name-hl { background: #e8eef7; border-radius: 6px; padding: 1px 8px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }

/* atendimento pendente - busca */
.atend-search { margin: 4px 0 14px; }
.atend-search input { width: 100%; max-width: 560px; font-size: 15px; padding: 10px 12px; }
.atend-h3 { font-size: 14px; color: var(--muted); text-transform: uppercase; letter-spacing: .02em; margin: 14px 0 8px; }

/* equipe e acessos (colunas de .mstats.four: ver o bloco "Acesso" mais abaixo — 4 perfis + Desativados) */
.mstat.m-role-recepcao { --c: var(--info); }
.mstat.m-role-dentista { --c: #0f7b6c; }
.mstat.m-role-admin    { --c: var(--navy); }
.chip.role-recepcao { background: var(--info-bg); color: var(--info); }
.chip.role-dentista { background: #e0f4f1; color: #0f7b6c; }
.chip.role-admin    { background: #e3e8f1; color: var(--navy); }
.chip.role-gestor   { background: var(--warn-bg); color: var(--warn); }
.tbl tr.row-off td { opacity: .55; }
.role-pick { display: flex; flex-direction: column; gap: 6px; }
.role-opt { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; cursor: pointer; }
.role-opt:has(input:checked) { border-color: var(--navy-2); background: #f3f6fb; }
.role-opt input { margin-top: 3px; }
.role-opt small { display: block; color: var(--muted); font-size: 12px; }
.pw-row { display: flex; gap: 6px; }
.pw-row input { flex: 1; font-family: ui-monospace, Consolas, monospace; letter-spacing: .03em; }
.check-line { display: flex; gap: 8px; align-items: center; margin: 6px 0; cursor: pointer; }
.filters-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.audit-act { display: inline-block; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.audit-act.tone-ok   { background: var(--ok-bg); color: var(--ok); }
.audit-act.tone-bad  { background: var(--bad-bg); color: var(--bad); }
.audit-act.tone-info { background: var(--info-bg); color: var(--info); }

/* seletor de horários */
.slot-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 6px; margin-top: 8px; }
.slot-picker button { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 8px 4px; cursor: pointer; }
.slot-picker button small { display: block; font-size: 11px; color: var(--muted); }
.slot-picker button.sel { background: var(--navy); color: #fff; border-color: var(--navy); }
.slot-picker button:disabled { background: #f3f4f6; color: #a0a7b2; cursor: default; }
.sp-label { display: block; font-size: 13px; color: var(--muted); margin-bottom: 4px; }
.sp-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.sp-head .sp-label { margin: 0; }
.sp-other { display: flex; align-items: center; gap: 6px; }
.sp-other input { padding: 4px 8px; }
.sp-day-list { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.sp-day {
  flex: none; border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 6px 10px;
  cursor: pointer; text-align: center; line-height: 1.2;
}
.sp-day b { display: block; font-size: 13px; text-transform: capitalize; }
.sp-day small { font-size: 11px; color: var(--ok); }
.sp-day.sel { background: var(--navy); border-color: var(--navy); color: #fff; }
.sp-day.sel small { color: #cfe7d8; }
.sp-extra { margin: -4px 0 8px; }
.slot-picker button.sel small { color: #dbe4f0; }

/* lista de cartões (leads, fila) */
.list { display: flex; flex-direction: column; gap: 10px; }
/* v194: páginas da lista de Leads (a lista continua com o mesmo espaçamento) */
.list-pg { display: contents; }
.lista-mais { display: flex; justify-content: center; margin: 14px 0 4px; }
.lista-mais .muted { font-weight: 500; margin-left: 4px; }
.item { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 12px 14px; display: flex; gap: 12px; justify-content: space-between; flex-wrap: wrap; }
.item-main { min-width: 220px; flex: 1; }
.item-title { font-weight: 700; }
.item-sub { font-size: 13px; color: var(--muted); margin-top: 3px; }
.item-actions { display: flex; gap: 6px; flex-wrap: wrap; align-items: flex-start; }
.quote { font-size: 13px; background: var(--gray-bg); border-radius: 6px; padding: 6px 8px; margin-top: 6px; }

/* conversa */
.chat { display: flex; flex-direction: column; gap: 6px; max-height: 520px; overflow-y: auto; padding: 8px; background: #efeae2; border-radius: 8px; }
.msg { max-width: 78%; padding: 7px 10px; border-radius: 8px; font-size: 14px; white-space: pre-wrap; word-wrap: break-word; box-shadow: 0 1px 1px rgba(0,0,0,.06); }
.msg.patient { align-self: flex-start; background: #fff; }
.msg.ai, .msg.human, .msg.system { align-self: flex-end; background: #d9fdd3; }
.msg.human { background: #cfe9ff; }
.msg.system { background: #eee; font-style: italic; }
.msg .when { display: block; font-size: 11px; color: var(--muted); text-align: right; margin-top: 2px; }
.msg .who { font-size: 11px; font-weight: 700; color: var(--muted); display: block; }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.dl { display: grid; grid-template-columns: 140px 1fr; gap: 6px 12px; font-size: 14px; }
.dl dt { color: var(--muted); }
.dl dd { margin: 0; }

/* login */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 16px; background: linear-gradient(160deg, var(--navy), #10223a); }
.login { width: 100%; max-width: 380px; background: #fff; border-radius: 14px; padding: 28px; box-shadow: 0 20px 50px rgba(0,0,0,.3); }
.login h1 { margin: 0 0 4px; font-size: 22px; }
.login p { margin: 0 0 20px; color: var(--muted); }
.login .btn { width: 100%; padding: 10px; }

/* modal */
.modal-back { position: fixed; inset: 0; background: rgba(16, 24, 40, .45); display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; z-index: 50; overflow-y: auto; }
.modal { background: #fff; border-radius: 12px; width: 100%; max-width: 560px; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.modal-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.modal-head h3 { margin: 0; font-size: 17px; }
.modal-head button { border: 0; background: none; font-size: 22px; cursor: pointer; color: var(--muted); line-height: 1; }
.modal-body { padding: 16px 18px; }
.modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line); }
.modal .form-error { color: var(--bad); font-size: 14px; margin-top: 8px; }

/* toast */
/* aviso de alteração: no meio da tela */
#toast-root {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 70;
  display: flex; flex-direction: column; gap: 10px; align-items: center; pointer-events: none;
}
.toast {
  pointer-events: auto; cursor: pointer;
  display: flex; align-items: center; gap: 14px;
  background: var(--text); color: #fff; padding: 18px 26px; border-radius: 14px;
  box-shadow: 0 20px 60px rgba(16,24,40,.35); font-size: 17px; font-weight: 600;
  max-width: min(520px, 90vw); text-align: left;
  animation: toast-in .18s ease-out;
}
.toast .toast-ico {
  flex: none; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.22);
  display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 700;
}
.toast.ok { background: #17693f; }
.toast.bad { background: #a8251b; }
.toast.out { opacity: 0; transform: scale(.96); transition: opacity .2s, transform .2s; }
.toast .toast-undo { flex: none; background: #fff; color: #17693f; border: 0; font-weight: 700; }
.btn.act-undo { border-style: dashed; }
@keyframes toast-in { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }

/* timeline */
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.timeline li:last-child { border-bottom: 0; }
.timeline .t-head { display: flex; justify-content: space-between; gap: 8px; }

@media (max-width: 900px) {
  .week { grid-template-columns: 1fr; }
  .week-day { min-height: 0; }
  .grid-2 { grid-template-columns: 1fr; }
  .dash { grid-template-columns: 1fr; }
  /* menu lateral vira barra no topo */
  .layout { flex-direction: column; }
  .side { width: auto; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 12px;
    top: 0; margin: 8px 8px 0; border-radius: 14px; }
  .brand small { display: none; }
  .nav { order: 3; width: 100%; flex: none; flex-direction: row; overflow-x: auto; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { white-space: nowrap; padding: 8px 10px; }
  .side-user { margin-left: auto; border-top: 0; padding-top: 0; flex-direction: row; }
  .side-user .who { display: none; }
  .side-user button span { display: none; }
}
@media (max-width: 640px) {
  .page-title { font-size: 22px; }
  .dash-cards { grid-template-columns: 1fr 1fr; }
  .funnel-bar { padding: 8px 14px; min-height: 46px; }
  .funnel-label { gap: 6px; font-size: 14px; }
  .slot { grid-template-columns: 1fr; gap: 6px; }
  .dl { grid-template-columns: 1fr; }
  .dl dt { margin-top: 6px; }
  .kpi .value { font-size: 24px; }
  .month { gap: 3px; }
  .month-day { min-height: 54px; padding: 4px; }
  .month-items { display: none; }
  .month-num { flex-direction: column; gap: 3px; align-items: flex-start; }
  .page { padding: 16px 12px 60px; }
}

/* =====================================================================
   TEMA INFALL: identidade do logo (azul profundo + risco neon) aplicada
   no CRM claro. Cores de situação (vermelho/amarelo/verde) continuam.
   ===================================================================== */
body {
  background:
    radial-gradient(1200px 500px at 80% -10%, rgba(0, 101, 238, .07), transparent 60%),
    radial-gradient(900px 500px at -10% 110%, rgba(0, 148, 254, .06), transparent 60%),
    #f3f7fd;
}

/* cartões: branco limpo com fio azul e sombra azulada */
.card, .ov-kpi, .conf-card {
  border: 1px solid rgba(0, 101, 238, .14);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(0, 33, 102, .06), 0 10px 28px -12px rgba(0, 60, 170, .18);
}

/* títulos de seção: Orbitron, maiúsculas, com o traço neon do logo embaixo */
.card-head h2, .conf-card h2, .rep-h2, .ia-card h2 {
  font-family: "Exo 2", system-ui, sans-serif; text-transform: uppercase;
  letter-spacing: .07em; font-size: 15px; font-weight: 700; color: var(--navy);
  position: relative; padding-bottom: 8px;
}
.card-head h2::after, .conf-card h2::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--neon), #00c2ff);
  box-shadow: 0 0 6px rgba(0, 148, 254, .7);
}

/* indicadores da Visão geral */
.ov-kpi { position: relative; overflow: hidden; background: #fff; padding-top: 20px; }
.ov-kpi::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--k), color-mix(in srgb, var(--k) 45%, #00c2ff));
  box-shadow: 0 0 10px color-mix(in srgb, var(--k) 70%, transparent);
}
.ov-kpi::after { /* símbolo Infall bem suave no canto do cartão */
  content: ""; position: absolute; right: -18px; bottom: -26px; width: 120px; height: 120px;
  background: url("../img/infall-marca-v2.svg") center / contain no-repeat; opacity: .06; pointer-events: none;
}
.k-leads { --k: #0065ee; --k-ico-bg: #e3efff; }
.k-ag    { --k: #8b3dff; --k-ico-bg: #efe6ff; } /* roxo, igual a "Agendados por origem" */
.ov-kpi.k-ag::before { background: linear-gradient(90deg, #8b3dff, #b57bff); }
.k-ok    { --k: #15803d; --k-ico-bg: #dcf3e4; }
.k-bad   { --k: #c0392b; --k-ico-bg: #fde0dd; }
.ov-kpi-h { color: var(--navy); letter-spacing: .01em; }
.ov-ico { border-radius: 12px; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--k) 25%, transparent); }
.ov-kpi-v { font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; font-size: 38px; color: var(--navy); letter-spacing: .02em; }

/* "Precisa da sua atenção": mesmas cores, visual mais limpo */
.attn { background: #fff; border-radius: 14px; border-left-width: 4px !important; transition: transform .12s, box-shadow .15s; }
.attn.a-red   { background: linear-gradient(90deg, #fff1f0, #fff 70%); border-color: #f3b4ad; border-left-color: #d93025 !important; }
.attn.a-amber { background: linear-gradient(90deg, #fff6e6, #fff 70%); border-color: #f5d49a; border-left-color: #e08600 !important; }
.attn.a-green { background: linear-gradient(90deg, #eef9f2, #fff 70%); border-color: #bfe3cc; border-left-color: #1e8e5a !important; }
.attn:hover { filter: none; transform: translateY(-1px); box-shadow: 0 8px 20px -10px rgba(0, 60, 170, .35); }
.attn-n { font-family: "Exo 2", system-ui, sans-serif; border-radius: 12px; }

/* botões principais no estilo do "Entrar" do login */
.btn.primary {
  background: linear-gradient(180deg, #1f8fff 0%, #0a5be0 100%); border-color: #0a5be0; color: #fff;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .15) inset, 0 4px 14px -4px rgba(0, 110, 255, .6);
}
.btn.primary:hover { background: linear-gradient(180deg, #33a0ff 0%, #0b66f5 100%); box-shadow: 0 0 12px rgba(0, 140, 255, .55); }
.btn:focus-visible, .inline-input:focus, .field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--neon-2); box-shadow: 0 0 0 3px rgba(0, 148, 254, .22);
}

/* seletores (Dia/Semana/Mês, Hoje/Próximo dia...) */
.seg { border-color: rgba(0, 101, 238, .25); border-radius: 10px; }
.seg button.active { background: linear-gradient(180deg, #0a3a9e, var(--navy)); color: #fff; box-shadow: inset 0 -2px 0 var(--neon-2); }

/* abas */
.tabs button.active { color: var(--neon); border-bottom-color: var(--neon); }
.tabs button.active { text-shadow: 0 0 10px rgba(0, 148, 254, .25); }

/* subtítulo das telas */
.ov-sub, .page-head + p.muted { color: #4f6a91; }
/* dia de hoje na Agenda: contorno neon da marca */
.month-day.today, .week-day.today { outline: 2px solid var(--neon-2); box-shadow: 0 0 12px rgba(0, 148, 254, .35); }
.month-count { background: linear-gradient(180deg, #0a3a9e, var(--navy)); }
/* legenda de "Precisa da sua atenção" em maiúsculas */
.attn-legend { text-transform: uppercase; letter-spacing: .06em; font-weight: 600; font-size: 11px; }
/* "Precisa da sua atenção" com mais destaque: vermelho e amarelo fortes,
   verde (em dia) mais calmo para os pendentes saltarem aos olhos */
.ov-attn { border: 1.5px solid rgba(217, 48, 37, .28); box-shadow: 0 0 0 4px rgba(217, 48, 37, .05), 0 12px 30px -14px rgba(217, 48, 37, .35); }
.attn { border-width: 1.5px !important; border-left-width: 6px !important; }
.attn.a-red   { background: linear-gradient(90deg, #ffd9d5 0%, #ffecea 55%, #fff6f5 100%); border-color: #ef8f86; border-left-color: #d93025 !important; }
.attn.a-amber { background: linear-gradient(90deg, #ffe7b8 0%, #fff2d6 55%, #fffaf0 100%); border-color: #f1c065; border-left-color: #e08600 !important; }
.attn.a-green { background: #f6fbf8; border-color: #cfe9da; border-left-color: #6cc093 !important; }
.attn.a-red .attn-txt b   { color: #a31d14; font-size: 15px; }
.attn.a-amber .attn-txt b { color: #8a4b00; font-size: 15px; }
.attn.a-red .attn-txt small   { color: #7a3a33; }
.attn.a-amber .attn-txt small { color: #7a5a2a; }
.attn.a-green .attn-txt b, .attn.a-green .attn-txt small { color: #5b8a70; }
.attn-n { width: 44px; height: 44px; font-size: 20px; }
.attn.a-red .attn-n   { background: linear-gradient(180deg, #ef4135, #c5221a); box-shadow: 0 0 0 3px rgba(217, 48, 37, .18), 0 4px 12px rgba(217, 48, 37, .45); animation: attn-pulse 1.8s ease-in-out infinite; }
.attn.a-amber .attn-n { background: linear-gradient(180deg, #f59e0b, #d97706); box-shadow: 0 0 0 3px rgba(224, 134, 0, .18), 0 4px 12px rgba(224, 134, 0, .4); }
.attn.a-green .attn-n { opacity: .75; }
.attn.a-red .attn-go   { color: #d93025; font-weight: 700; }
.attn.a-amber .attn-go { color: #e08600; font-weight: 700; }
@keyframes attn-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(217, 48, 37, .18), 0 4px 12px rgba(217, 48, 37, .45); }
  50%      { box-shadow: 0 0 0 7px rgba(217, 48, 37, .10), 0 4px 16px rgba(217, 48, 37, .6); }
}
@media (prefers-reduced-motion: reduce) { .attn.a-red .attn-n { animation: none; } }
/* filtro de período e campos no padrão Infall */
.range-btn {
  background: #fff; border: 1.5px solid rgba(0, 101, 238, .35); border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0, 33, 102, .06), 0 6px 18px -10px rgba(0, 90, 220, .45);
  color: var(--navy); transition: box-shadow .15s, border-color .15s;
}
.range-btn:hover, .range-btn[aria-expanded="true"] { border-color: var(--neon-2); box-shadow: 0 0 0 3px rgba(0, 148, 254, .15), 0 0 14px rgba(0, 148, 254, .35); }
.range-btn .ico { color: var(--neon); filter: drop-shadow(0 0 3px rgba(0, 148, 254, .45)); }
.range-btn > span:not(.muted):not(.caret) { font-family: "Exo 2", system-ui, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.range-btn .muted { color: #6f87ad; font-size: 13px; }
.range-btn .caret { color: var(--neon); }
.range-pop { border: 1.5px solid rgba(0, 101, 238, .3); border-radius: 14px; box-shadow: 0 16px 36px -14px rgba(0, 40, 130, .45); }
.range-pop > button.active { background: linear-gradient(180deg, #0a3a9e, var(--navy)); box-shadow: inset 3px 0 0 var(--neon-2); }
.range-pop > button:hover:not(.active) { background: #eaf3ff; }
.inline-input, .field input, .field select, .field textarea {
  border-color: rgba(0, 101, 238, .25); border-radius: 10px;
}
/* =====================================================================
   PAINÉIS CLAROS NEON: base branca + detalhes em neon (não pesa a tela).
   O azul escuro fica só no menu lateral (assinatura da marca).
   ===================================================================== */
.card.ov-chart, .card.ov-flow, .card.ov-donut, .t-progress {
  position: relative; overflow: hidden; color: var(--text);
  background: linear-gradient(180deg, rgba(0, 148, 254, .06) 0%, #fff 42%);
  border: 1px solid rgba(0, 101, 238, .18); border-radius: 16px;
  box-shadow: 0 1px 2px rgba(0, 33, 102, .05), 0 12px 30px -16px rgba(0, 70, 190, .28);
}
.card.ov-chart::before, .card.ov-flow::before, .card.ov-donut::before, .t-progress::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--neon) 20%, #00c2ff 50%, var(--neon) 80%, transparent);
  box-shadow: 0 0 10px rgba(0, 148, 254, .7);
}
.ov-donut h2 {
  font-family: "Exo 2", system-ui, sans-serif; text-transform: uppercase; letter-spacing: .07em;
  font-size: 15px; color: var(--navy); position: relative; padding-bottom: 8px; margin-top: 0;
}
.ov-donut h2::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--neon), #00c2ff); box-shadow: 0 0 6px rgba(0, 148, 254, .7);
}

/* gráfico por dia */
.ov-chart .lc-legend { color: #4f6a91; font-family: "Exo 2", system-ui, sans-serif; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.ov-chart .lc-legend i { box-shadow: 0 0 8px currentColor; }
.ov-chart .lc-legend span:nth-child(1) i { color: #0a84ff; }
.ov-chart .lc-legend span:nth-child(2) i { color: #8b3dff; }
.ov-chart .lc-grid { stroke: rgba(0, 70, 180, .10); stroke-dasharray: 4 6; }
.ov-chart .lc-axis { fill: #6f87ad; font-family: "Exo 2", system-ui, sans-serif; font-size: 10px; letter-spacing: .04em; }
.ov-chart .lc-line { stroke-width: 2.6; }
.ov-chart .lc-area { opacity: 1; }
.ov-chart .lc-dot { stroke: #fff; stroke-width: 2; }
.ov-chart .lc-cross { stroke: rgba(0, 101, 238, .5); stroke-dasharray: 3 4; }
.ov-chart .lc-tip { background: #fff; color: var(--text); border: 1px solid rgba(0, 101, 238, .35); box-shadow: 0 10px 24px -10px rgba(0, 70, 190, .45); }

/* funil */
.fl-leads { --f: #0a84ff; } .fl-ag { --f: #8b3dff; } .fl-ok { --f: #16a34a; } .fl-bad { --f: #e5484d; }
.ov-flow .flow-box {
  background: linear-gradient(180deg, color-mix(in srgb, var(--f) 9%, #fff), #fff);
  border: 1.5px solid color-mix(in srgb, var(--f) 45%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--f) 6%, transparent), 0 8px 18px -12px color-mix(in srgb, var(--f) 70%, transparent);
}
.ov-flow .flow-box b { font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; color: var(--f); text-shadow: 0 0 12px color-mix(in srgb, var(--f) 35%, transparent); }
.ov-flow .flow-box span { color: var(--navy); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; font-weight: 600; }
.ov-flow .flow-pct { font-family: "Exo 2", system-ui, sans-serif; color: var(--f); }
.ov-flow .flow-arrow { color: var(--neon-2); text-shadow: 0 0 6px rgba(0, 148, 254, .5); font-weight: 700; }

/* rosca IA x CRC */
.ov-donut .dn-track { stroke: #e8f0fb; }
.ov-donut .dn-ia  { stroke: #8b3dff; filter: drop-shadow(0 0 4px rgba(139, 61, 255, .45)); }
.ov-donut .dn-crc { stroke: #c4ccd8; filter: none; }
.ov-donut .dn-ia-dot  { background: #8b3dff; box-shadow: 0 0 6px rgba(139, 61, 255, .6); }
.ov-donut .dn-crc-dot { background: #c4ccd8; box-shadow: none; }
.ov-donut .dn-num { fill: var(--navy); font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; }
.ov-donut .dn-lbl { fill: #6f87ad; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.ov-donut .dn-legend b { font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); }

/* barra do dia (Tarefas) */
.t-progress { margin-bottom: 14px; padding: 14px 18px 16px; }
.tp-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.tp-stats { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.tp-label { font-family: "Exo 2", system-ui, sans-serif; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: var(--neon); margin-right: 6px; }
.tp-num { font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; font-size: 26px; line-height: 1; color: var(--navy); }
.tp-num.tp-todo { color: #4f6a91; }
.tp-unit { font-size: 13px; color: #4f6a91; }
.tp-sep { width: 1px; height: 18px; background: rgba(0, 101, 238, .2); margin: 0 8px; align-self: center; }
.tp-pct { display: flex; align-items: baseline; gap: 6px; }
.tp-pct b { font-family: "Exo 2", system-ui, sans-serif; font-size: 22px; color: var(--neon); text-shadow: 0 0 10px rgba(0, 148, 254, .35); }
.tp-pct span { font-size: 12px; color: #4f6a91; text-transform: uppercase; letter-spacing: .08em; }
.tp-bar { position: relative; height: 12px; border-radius: 999px; overflow: hidden; background: #e8f0fb; border: 1px solid rgba(0, 101, 238, .18); }
.tp-bar::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), rgba(0, 70, 180, .12) calc(10% - 1px) 10%);
}
.tp-bar span {
  position: relative; display: block; height: 100%; border-radius: 999px; overflow: hidden;
  background: linear-gradient(90deg, #0047d6 0%, var(--neon) 45%, var(--neon-2) 80%, #00c2ff 100%);
  box-shadow: 0 0 10px rgba(0, 148, 254, .6); transition: width .6s ease;
}
.tp-bar span::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .55) 50%, transparent 100%);
  transform: translateX(-100%); animation: tp-shine 2.6s ease-in-out infinite;
}
@keyframes tp-shine { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .tp-bar span::after { animation: none; } }
/* =====================================================================
   HARMONIZAÇÃO FINAL: mesmas regras em todas as telas
   ===================================================================== */
/* títulos de cartão soltos (ex.: Linha do tempo, Fila de hoje) no mesmo padrão */
.card > h2, .lead-tl h2 {
  font-family: "Exo 2", system-ui, sans-serif; text-transform: uppercase; letter-spacing: .07em;
  font-size: 14px; font-weight: 700; color: var(--navy); position: relative; padding-bottom: 8px; margin-top: 0;
}
.card > h2::after, .lead-tl h2::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 40px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--neon), #00c2ff); box-shadow: 0 0 6px rgba(0, 148, 254, .6);
}

/* conversa do lead: base clara, IA em azul da marca, CRC em verde-água (como na rosca) */
.chat { background: linear-gradient(180deg, #f6faff, #eef5ff); border: 1px solid rgba(0, 101, 238, .12); border-radius: 12px; padding: 10px; }
.msg { border-radius: 12px; box-shadow: 0 1px 2px rgba(0, 33, 102, .06); }
.msg.patient { background: #fff; border: 1px solid rgba(0, 101, 238, .12); border-top-left-radius: 4px; }
.msg.ai { background: #e3efff; border: 1px solid rgba(0, 101, 238, .25); border-top-right-radius: 4px; }
.msg.human { background: #e3f7f3; border: 1px solid rgba(20, 184, 166, .35); border-top-right-radius: 4px; }
.msg.system { background: #f1f4f9; border: 1px dashed #c9d4e5; }
.msg-hit { outline: 2px solid var(--neon-2); box-shadow: 0 0 10px rgba(0, 148, 254, .45); }

/* linha do tempo */
.tl { border-left-color: rgba(0, 101, 238, .2); }
.tl li.tl-agenda::before { border-color: var(--neon); box-shadow: 0 0 6px rgba(0, 101, 238, .45); }
.tl li.tl-nota::before { border-color: #8b3dff; }

/* kanban */
.kb-col { background: linear-gradient(180deg, #f3f8ff, #f8fbff); border: 1px solid rgba(0, 101, 238, .14); border-radius: 14px; position: relative; overflow: hidden; }
.kb-col::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, var(--neon), #00c2ff); opacity: .8; }
.kb-card { border: 1px solid rgba(0, 101, 238, .1); border-radius: 12px; }
.kb-card:hover { outline: 2px solid rgba(0, 148, 254, .55); box-shadow: 0 0 12px rgba(0, 148, 254, .25); }

/* agenda: horários na fonte dos números */
.slot-time { font-family: "Exo 2", system-ui, sans-serif; font-size: 14px; color: var(--navy); letter-spacing: .03em; }
.slot-time .cap { font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; letter-spacing: 0; }

/* janelas (modais) */
.modal { border-radius: 16px; border: 1px solid rgba(0, 101, 238, .2); overflow: hidden; box-shadow: 0 24px 60px -20px rgba(0, 30, 100, .55); }
.modal-head { position: relative; }
.modal-head::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--neon) 20%, #00c2ff 50%, var(--neon) 80%, transparent); }
.modal-head h3 { font-family: "Exo 2", system-ui, sans-serif; text-transform: uppercase; letter-spacing: .06em; font-size: 15px; color: var(--navy); }

/* botão voltar e botões comuns */
.btn { border-radius: 10px; }
.btn:not(.primary):not(.danger):not(.link):hover { border-color: rgba(0, 148, 254, .55); color: var(--navy); }

/* avatar das iniciais do lead */
.avatar { background: linear-gradient(160deg, #0a3a9e, var(--navy)); color: #fff; letter-spacing: .02em; box-shadow: 0 0 0 2px #fff, 0 0 10px rgba(0, 101, 238, .35); }
/* agendamento duplo (SQL 047) */
.chip.duplo { background: #eef0ff; color: #4338ca; border: 1px solid rgba(67, 56, 202, .25); }
.chip.outra { background: #e0f7fb; color: #0e7490; border: 1px solid rgba(14, 116, 144, .25); }
.appt-dup { margin-top: 6px; font-size: 13px; color: #4338ca; background: #f4f5ff; border: 1px dashed rgba(67, 56, 202, .3); border-radius: 8px; padding: 4px 8px; }
.dup-ico { font-size: 11px; }
/* encaminhar para a recepção (SQL 048) */
.btn.recep-btn { border-color: rgba(14, 116, 144, .45); color: #0e7490; background: #f0fbfd; }
.btn.recep-btn:hover { background: #e0f7fb; border-color: #0e7490; color: #0b5d73; }
.chip.recep { background: #e0f7fb; color: #0e7490; border: 1px solid rgba(14, 116, 144, .3); }
.recep-line { margin-top: 8px; font-size: 13px; color: #0b5d73; background: #f0fbfd; border: 1px solid rgba(14, 116, 144, .25); border-radius: 8px; padding: 6px 10px; }
.recep-alert { margin-top: 8px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; color: #7a4a00;
  background: linear-gradient(90deg, #fff1d6, #fff8ea); border: 1.5px solid #f1c065; border-left: 5px solid #e08600; border-radius: 10px; padding: 8px 12px; }
.fw-ok { background: #eef9f2; border: 1px solid #bfe3cc; border-radius: 10px; padding: 8px 12px; margin-bottom: 12px; color: #1f5c3b; }
.fw-box { border: 1px solid rgba(0, 101, 238, .18); border-radius: 12px; padding: 10px 12px; margin-bottom: 10px; background: #fbfdff; }
.fw-label { font-family: "Exo 2", system-ui, sans-serif; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--navy); margin-bottom: 6px; }
.fw-box textarea { width: 100%; font-size: 14px; border-radius: 8px; border: 1px solid rgba(0, 101, 238, .25); padding: 8px; resize: vertical; }
.fw-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.btn.wa-btn { background: #1faa59; border-color: #1faa59; color: #fff; }
.btn.wa-btn:hover { background: #18914b; color: #fff; }
.rc-form { display: flex; gap: 8px; align-items: center; margin: 8px 0; flex-wrap: wrap; }
.rc-form input { font-family: "Exo 2", system-ui, sans-serif; font-size: 15px; letter-spacing: .04em; width: 200px; }

/* taxa sob a comparação com o mês passado */
.ov-kpi-f small.ov-rate { color: #4f6a91; font-weight: 600; }
.chip.dup-only { padding: 1px 7px; font-size: 13px; cursor: help; }
/* barra do dia muda de cor conforme o progresso:
   até 33% vermelho · 34-66% laranja · 67-99% azul neon · 100% verde */
.t-progress.lvl-low  { --lvl: #e5484d; --lvl-2: #ff7a7f; --lvl-glow: rgba(229, 72, 77, .45); }
.t-progress.lvl-mid  { --lvl: #e08600; --lvl-2: #f5b13d; --lvl-glow: rgba(224, 134, 0, .45); }
.t-progress.lvl-high { --lvl: #0065ee; --lvl-2: #00c2ff; --lvl-glow: rgba(0, 148, 254, .5); }
.t-progress.lvl-done { --lvl: #16a34a; --lvl-2: #34d27a; --lvl-glow: rgba(22, 163, 74, .5); }
.t-progress[class*="lvl-"] .tp-pct b { color: var(--lvl); text-shadow: 0 0 10px var(--lvl-glow); transition: color .4s; }
.t-progress[class*="lvl-"] .tp-bar span {
  background: linear-gradient(90deg, var(--lvl) 0%, var(--lvl-2) 100%);
  box-shadow: 0 0 10px var(--lvl-glow);
  transition: width .6s ease, background .4s;
}
.t-progress[class*="lvl-"]::before { background: linear-gradient(90deg, transparent, var(--lvl) 20%, var(--lvl-2) 50%, var(--lvl) 80%, transparent); box-shadow: 0 0 10px var(--lvl-glow); }
.t-progress.lvl-done .tp-pct b::after { content: " ✓"; }

/* encaminhamento financeiro (Follow-up) */
.chip.followup { background: #fff4e0; color: #9a5b00; border: 1px solid rgba(224, 134, 0, .35); }
.fw-dest { border-radius: 10px; padding: 8px 12px; font-size: 13px; margin-top: 4px; }
.fw-dest.rec { background: #f0fbfd; border: 1px solid rgba(14, 116, 144, .25); color: #0b5d73; }
.fw-dest.fin { background: #fff6e6; border: 1px solid #f1c065; color: #7a4a00; }

/* enviar agora pelo WhatsApp da clínica */
.btn.send-btn.sent, .btn.send-btn.sent:disabled { background: #1faa59; border-color: #1faa59; color: #fff; opacity: 1; box-shadow: none; }
.send-status { font-size: 12px; color: #1f7a45; align-self: center; }

/* mensagem de confirmação (Confirmação do dia) */
.cm-msg { width: 100%; font-size: 14px; border-radius: 10px; border: 1px solid rgba(0, 101, 238, .25); padding: 10px; resize: vertical; }
.cm-actions { margin-top: 10px; }
.cm-actions .send-btn { font-size: 15px; padding: 9px 16px; }
.fw-both { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 12px; }
.fw-both .send-btn { font-size: 15px; padding: 9px 16px; }
/* Fontes: títulos e rótulos em "Exo 2" (acentos do português corretos);
   números também em Exo 2 (visual futurista e limpo). */
.ov-kpi-v, .tp-num, .tp-pct b, .ov-flow .flow-box b, .ov-flow .flow-pct, .ov-donut .dn-num,
.ov-donut .dn-legend b, .attn-n, .slot-time, .rc-form input,
.range-btn > span:not(.muted):not(.caret), .ov-chart .lc-axis {
  font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; letter-spacing: .01em; font-variant-numeric: tabular-nums;
}
.page-head h1, h1.page-title { font-weight: 800; letter-spacing: .05em; }
/* pop-up de motivação (1x por dia) */
.motiv-back { position: fixed; inset: 0; z-index: 3000; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: rgba(1, 8, 37, .55); backdrop-filter: blur(3px); animation: motiv-fade .35s ease; }
.motiv-card { position: relative; width: min(520px, 100%); text-align: center; padding: 30px 30px 24px; border-radius: 22px; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 0%, #0a3a9e 0%, var(--navy) 40%, var(--deep) 75%, var(--deep-2) 100%);
  border: 1.5px solid var(--neon); color: #fff;
  box-shadow: 0 0 10px var(--neon-glow), 0 0 40px rgba(0, 110, 255, .4), inset 0 0 30px rgba(0, 101, 238, .25);
  animation: motiv-pop .4s cubic-bezier(.2, .9, .3, 1.2); }
.motiv-sym { width: 84px; height: 84px; display: block; margin: 0 auto 6px; filter: drop-shadow(0 0 8px rgba(0, 170, 255, .8)); }
.motiv-hi { font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 24px; letter-spacing: .02em; }
.motiv-tag { display: inline-block; margin: 10px 0 4px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: #8fc8ff; background: rgba(0, 148, 254, .12); border: 1px solid rgba(0, 148, 254, .35); border-radius: 999px; padding: 3px 12px; }
.motiv-frase { font-size: 19px; line-height: 1.5; margin: 12px 4px 22px; color: #e8f2ff; font-weight: 500; }
.motiv-actions { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.motiv-go { font-size: 16px; padding: 11px 26px; border-radius: 12px; }
.motiv-close { color: #9fb9e0; }
.motiv-close:hover { color: #fff; }
@keyframes motiv-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes motiv-pop { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .motiv-back, .motiv-card { animation: none; } }

/* Luz da IA no topo do menu + cartão ao clicar */
.ia-pill { display: flex; align-items: center; gap: 8px; margin: -6px 6px 0; padding: 6px 12px; border-radius: 999px; cursor: pointer;
  font-size: 12.5px; font-weight: 600; color: #d3deec; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.ia-pill:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.ia-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; background: #22c55e; box-shadow: 0 0 6px rgba(34, 197, 94, .9); }
.ia-pill.pause .ia-dot, .ia-pop.pause .ia-dot { background: #f5a300; box-shadow: 0 0 6px rgba(245, 163, 0, .9); }
.ia-pill.bad { color: #fff; background: rgba(229, 72, 77, .28); border-color: rgba(255, 120, 120, .6); }
.ia-pill.bad .ia-dot, .ia-pop.bad .ia-dot { background: #ff4d4f; box-shadow: 0 0 8px rgba(255, 77, 79, 1); animation: sd-blink 1s ease-in-out infinite; }
@keyframes sd-blink { 50% { opacity: .35; } }
@media (min-width: 901px) {
  body.side-collapsed .ia-pill { justify-content: center; padding: 8px 0; margin: -6px 0 0; }
  body.side-collapsed .ia-pill-lbl { display: none; }
}
@media (max-width: 900px) { .ia-pill { margin: 0; order: 2; } }
.ia-pop { position: fixed; z-index: 960; background: #fff; border-radius: 16px; padding: 14px 16px; border: 1px solid #d9e6f7;
  box-shadow: 0 16px 40px rgba(0, 25, 80, .25); animation: help-in .15s ease-out; }
.ia-pop.bad { border-color: #f3b4ad; }
.ia-pop-h { display: flex; align-items: center; gap: 9px; font-size: 15px; color: var(--navy); }
.ia-pop.bad .ia-pop-h b { color: #b3261e; } .ia-pop.pause .ia-pop-h b { color: #9a5b00; }
.ia-pop-d { margin: 6px 0 0; font-size: 13.5px; color: #4a6288; line-height: 1.45; }
.ia-pop-m { margin: 6px 0 0; font-size: 12px; color: #8aa0c2; }
.ia-pop-btn { width: 100%; margin-top: 12px; }
.ia-pop-adm { margin-top: 12px; padding-top: 10px; border-top: 1px solid #e6eefb; }
.ia-pop-adm .ia-pop-btn { margin-top: 0; }
.ia-pop-sw { display: flex; gap: 10px; align-items: flex-start; margin-top: 10px; font-size: 13px; color: var(--navy); cursor: pointer; }
.ia-pop-sw input { margin-top: 2px; width: 16px; height: 16px; accent-color: #0a6bff; }
.ia-pop-sw small { display: block; color: #8aa0c2; font-size: 11.5px; }
/* v194-3: S.O.F.I.A. de cada clínica (admin geral / gestor com mais de uma clínica) */
.ia-cls { margin-top: 10px; padding-top: 8px; border-top: 1px solid #e6eefb; }
.ia-cls-t { margin: 0 0 2px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #8aa0c2; }
.ia-cl { display: flex; align-items: center; gap: 8px; padding: 5px 0; font-size: 13px; color: var(--navy); }
.ia-cl-n { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ia-cl-s { font-size: 12px; font-weight: 700; white-space: nowrap; color: #6b7f9e; }
.ia-cl-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; background: #c4ccd8; }
.ia-cl.ok .ia-cl-dot { background: #22c55e; box-shadow: 0 0 6px rgba(34, 197, 94, .7); } .ia-cl.ok .ia-cl-s { color: #15803d; }
.ia-cl.pause .ia-cl-dot { background: #f5a300; } .ia-cl.pause .ia-cl-s { color: #9a5b00; }
.ia-cl.bad .ia-cl-dot { background: #ff4d4f; animation: sd-blink 1s ease-in-out infinite; } .ia-cl.bad .ia-cl-s { color: #b3261e; }
@media (prefers-reduced-motion: reduce) { .ia-cl.bad .ia-cl-dot { animation: none; } }
/* v194-46: "Destravar" na linha da clínica com o WhatsApp travado */
.ia-cl .ia-cl-dest { flex: none; padding: 2px 9px; font-size: 11.5px; min-height: 0; }
.wc-tbl [data-wc-destravar] { margin-top: 6px; }
/* janela do QR Code para reconectar o WhatsApp */
.qr-back { position: fixed; inset: 0; z-index: 3050; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: rgba(1, 8, 37, .55); backdrop-filter: blur(3px); animation: motiv-fade .25s ease; }
.qr-card { position: relative; width: min(420px, 100%); background: #fff; border-radius: 18px; padding: 22px 22px 18px; text-align: center;
  box-shadow: 0 20px 60px rgba(0, 25, 80, .35); animation: motiv-pop .35s cubic-bezier(.2, .9, .3, 1.2); }
.qr-card h2 { margin: 0 0 10px; font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-size: 20px; }
.qr-x { position: absolute; right: 12px; top: 12px; width: 30px; height: 30px; border: 0; border-radius: 8px; background: #eef4ff; color: var(--navy); cursor: pointer; }
.qr-steps { text-align: left; margin: 0 0 12px; padding-left: 20px; font-size: 14px; color: #34496b; line-height: 1.5; }
.qr-box { width: 260px; height: 260px; margin: 0 auto 10px; display: grid; place-items: center; border-radius: 14px; border: 1px solid #d9e6f7; background: #f7faff; overflow: hidden; }
.qr-box img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.qr-ok { font-size: 84px; color: #1e8e5a; line-height: 1; }
.qr-err { padding: 14px; font-size: 14px; color: #b3261e; }
.qr-status { font-size: 13px; color: #6f87ad; margin: 0 0 12px; }
/* comemoração ao subir de faixa da meta (confete + troféu) */
.festa-back { position: fixed; inset: 0; z-index: 3100; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: rgba(1, 8, 37, .6); backdrop-filter: blur(3px); animation: motiv-fade .3s ease; overflow: hidden; }
.festa-confete { position: absolute; inset: 0; pointer-events: none; }
.festa-confete i { position: absolute; top: -20px; border-radius: 2px; opacity: 0; animation: festa-cai linear infinite; }
@keyframes festa-cai {
  0% { transform: translate(0, -20px) rotate(0); opacity: 1; }
  85% { opacity: 1; }
  100% { transform: translate(var(--x), 105vh) rotate(var(--rot)); opacity: 0; }
}
.festa-card { position: relative; width: min(440px, 100%); margin-top: 110px; text-align: center; padding: 26px 26px 22px; border-radius: 22px; color: #fff;
  background: radial-gradient(120% 90% at 50% 0%, #0a3a9e 0%, var(--navy) 45%, var(--deep) 100%);
  border: 1.5px solid #ffd23f; box-shadow: 0 0 16px rgba(255, 210, 63, .55), 0 0 50px rgba(0, 110, 255, .45);
  animation: motiv-pop .45s cubic-bezier(.2, .9, .3, 1.3); }
.festa-trofeu { position: relative; display: block; width: fit-content; margin: 0 auto; font-size: 72px; line-height: 1; color: #ffd23f; filter: drop-shadow(0 0 12px rgba(255, 210, 63, .7)); animation: festa-pulo 1.2s ease-in-out infinite alternate; }
.festa-trofeu .ic { stroke-width: 1.4; }
.festa-nivel { position: absolute; right: -10px; top: -4px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center;
  font-family: "Exo 2", system-ui, sans-serif; font-size: 14px; font-weight: 800; color: #1a1300; background: #ffd23f; box-shadow: 0 0 10px rgba(255, 210, 63, .8); }
@keyframes festa-pulo { from { transform: translateY(0) scale(1); } to { transform: translateY(-6px) scale(1.06); } }
.festa-tag { display: inline-block; margin: 12px 0 2px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: #ffd23f; background: rgba(255, 210, 63, .12); border: 1px solid rgba(255, 210, 63, .45); border-radius: 999px; padding: 3px 14px; }
.festa-t { font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 26px; margin: 8px 0 4px; letter-spacing: .02em; color: #fff; }
.festa-txt { margin: 0 0 14px; color: #d8e7ff; font-size: 15px; line-height: 1.45; }
.festa-valor { background: rgba(0, 224, 164, .08); border: 1px solid rgba(0, 224, 164, .35); border-radius: 14px; padding: 12px; margin-bottom: 12px; }
.festa-valor span { display: block; font-size: 12px; color: #9fc4ff; text-transform: uppercase; letter-spacing: .08em; }
.festa-valor b { display: block; font-family: "Exo 2", system-ui, sans-serif; font-size: 36px; font-weight: 800; color: #8fffc1;
  text-shadow: 0 0 12px rgba(80, 255, 170, .45); line-height: 1.2; }
.festa-valor small { font-size: 13px; color: #cfe3ff; }
.festa-valor strong { color: #8fffc1; }
.festa-prox { font-size: 13px; color: #cfe3ff; margin: 0 0 16px; }
.festa-ok { font-size: 16px; padding: 11px 24px; border-radius: 12px; }
@media (prefers-reduced-motion: reduce) { .festa-confete { display: none; } .festa-trofeu, .festa-card { animation: none; } }

/* Mascote Infall Assist na comemoração: pula e bate palmas */
.festa-robo { position: relative; width: 160px; margin: -150px auto 0; }
.festa-card { overflow: visible; }
/* v194-63: botão "Pausar música" no canto do cartão da comemoração */
.festa-som { position: absolute; top: 10px; right: 10px; z-index: 2; padding: 5px 10px; border-radius: 999px; cursor: pointer;
  font-family: inherit; font-weight: 600; font-size: 12px; line-height: 1.2; color: #fff; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .35); }
.festa-som:hover, .festa-som:focus-visible { background: rgba(255, 255, 255, .24); outline: none; }
.robo { width: 160px; height: auto; display: block; overflow: visible; filter: drop-shadow(0 8px 18px rgba(0, 90, 255, .4)); }
.robo * { transform-box: view-box; }
.rb-pulo { animation: rb-pulo .7s cubic-bezier(.3, 0, .4, 1) infinite; transform-origin: 110px 283px; }
@keyframes rb-pulo {
  0%, 100% { transform: translateY(0) scale(1.03, .97); }
  15% { transform: translateY(0) scale(.98, 1.02); }
  50% { transform: translateY(-26px) scale(1, 1); }
  85% { transform: translateY(0) scale(1.04, .96); }
}
.rb-sombra { animation: rb-sombra .7s cubic-bezier(.3, 0, .4, 1) infinite; transform-origin: 110px 292px; }
@keyframes rb-sombra { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.7); opacity: .5; } }
.rb-esq { transform-origin: 60px 139px; animation: rb-vibra-esq .45s ease-in-out infinite alternate; }
.rb-dir { transform-origin: 159px 139px; animation: rb-vibra-dir .45s ease-in-out infinite alternate; animation-delay: -.22s; }
/* braços erguidos comemorando (balançam no alto) */
@keyframes rb-vibra-esq { from { transform: rotate(122deg); } to { transform: rotate(148deg); } }
@keyframes rb-vibra-dir { from { transform: rotate(-122deg); } to { transform: rotate(-148deg); } }
.rb-cabeca { transform-origin: 110px 104px; animation: rb-cabeca 1.4s ease-in-out infinite; }
@keyframes rb-cabeca { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } }
.rb-olhos { transform-origin: 110px 53px; animation: rb-pisca 3.2s infinite; }
@keyframes rb-pisca { 0%, 92%, 100% { transform: scaleY(1); } 95% { transform: scaleY(.2); } }
.festa-trofeu-mini { position: absolute; right: -6px; bottom: 26px; display: flex; align-items: center; gap: 2px; padding: 4px 9px 4px 7px;
  border-radius: 999px; font-size: 16px; color: #1a1300; background: #ffd23f; box-shadow: 0 0 12px rgba(255, 210, 63, .8); }
.festa-trofeu-mini b { font-family: "Exo 2", system-ui, sans-serif; font-size: 14px; font-weight: 800; }
@media (prefers-reduced-motion: reduce) { .rb-pulo, .rb-sombra, .rb-esq, .rb-dir, .rb-cabeca, .rb-olhos { animation: none; } }

/* mascote dentro do botão de dúvidas: só pisca e mexe a cabeça devagar (não pula nem bate palma) */
.orb-robo { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; display: block; }
.orb-robo .robo { width: 100%; height: 100%; filter: none; }
.robo-mini .rb-pulo, .robo-mini .rb-sombra, .robo-mini .rb-esq, .robo-mini .rb-dir { animation: none; }
.robo-mini .rb-sombra { display: none; }
.robo-mini .rb-cabeca { animation-duration: 3s; }
.help-fab:hover .robo-mini .rb-cabeca { animation-duration: .8s; }

/* central de dúvidas: botão "?" flutuante + painel */
.help-fab { position: fixed; right: 20px; bottom: 20px; z-index: 950; width: 52px; height: 52px; padding: 0; border-radius: 50%; cursor: pointer;
  border: 1.5px solid #2b93ff; opacity: .9;
  background:
    radial-gradient(circle at 50% 118%, rgba(0, 170, 255, .55) 0%, transparent 45%),
    radial-gradient(circle at 50% 50%, #0b2f86 0%, #041a55 55%, #020a26 100%);
  box-shadow: 0 0 6px rgba(30, 144, 255, .7), 0 0 14px rgba(0, 110, 255, .35), 0 6px 16px rgba(0, 20, 70, .35),
    inset 0 0 10px rgba(40, 150, 255, .6), inset 0 -4px 10px rgba(0, 190, 255, .3);
  transition: transform .18s, box-shadow .18s; }
.orb-glass { position: absolute; inset: 0; border-radius: 50%; pointer-events: none;
  background: radial-gradient(ellipse 55% 32% at 38% 20%, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 70%),
              radial-gradient(ellipse 30% 14% at 62% 86%, rgba(160, 225, 255, .35), transparent 70%); }
.orb-v { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.orb-v path { fill: none; stroke: #43b4ff; stroke-width: 3.6; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 3px rgba(40, 170, 255, .95)) drop-shadow(0 0 7px rgba(0, 130, 255, .6)); }
.help-fab:hover, .help-fab:focus-visible { transform: scale(1.06); opacity: 1;
  box-shadow: 0 0 14px rgba(40, 160, 255, 1), 0 0 38px rgba(0, 120, 255, .7), 0 12px 30px rgba(0, 20, 70, .5),
    inset 0 0 18px rgba(60, 170, 255, .85), inset 0 -6px 18px rgba(0, 200, 255, .45); }
.help-fab.open { border-color: #7fd0ff; }
/* cartão ao passar o mouse (à esquerda do orbe) */
.help-tip { position: absolute; right: calc(100% + 14px); top: 50%; transform: translate(8px, -50%); opacity: 0; pointer-events: none;
  display: flex; flex-direction: column; gap: 3px; min-width: 220px; padding: 12px 16px; border-radius: 14px; text-align: left;
  background: linear-gradient(180deg, rgba(8, 30, 86, .96), rgba(3, 14, 48, .96)); border: 1px solid rgba(60, 160, 255, .65);
  box-shadow: 0 0 14px rgba(0, 120, 255, .45), 0 10px 26px rgba(0, 20, 70, .4); transition: opacity .18s, transform .18s; white-space: nowrap; }
.help-tip b { font-family: "Exo 2", system-ui, sans-serif; font-size: 16px; font-weight: 700; color: #fff; }
.help-tip span { font-size: 13px; color: #a9c8f2; font-weight: 400; }
.help-tip::after { content: ""; position: absolute; right: -6px; top: 50%; width: 10px; height: 10px; transform: translateY(-50%) rotate(45deg);
  background: #061a52; border-right: 1px solid rgba(60, 160, 255, .65); border-top: 1px solid rgba(60, 160, 255, .65); }
.help-fab:hover .help-tip, .help-fab:focus-visible .help-tip { opacity: 1; transform: translate(0, -50%); }
.help-fab.open .help-tip { display: none; }.help-panel { position: fixed; right: 20px; bottom: 78px; z-index: 950; width: min(400px, calc(100vw - 32px));
  max-height: min(640px, calc(100vh - 110px)); display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border-radius: 18px; border: 1px solid #d6e4fb;
  box-shadow: 0 18px 50px rgba(0, 25, 80, .28), 0 0 0 1px rgba(26, 125, 255, .08); animation: help-in .18s ease-out; }
@keyframes help-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.help-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; color: #fff;
  background: radial-gradient(120% 140% at 0% 0%, #0a3a9e, var(--navy) 55%, var(--deep)); }
.help-head b { font-family: "Exo 2", system-ui, sans-serif; font-size: 17px; letter-spacing: .02em; display: block; }
.help-head small { color: #9fc4ff; font-size: 12px; }
.help-x { background: rgba(255, 255, 255, .1); border: 0; color: #fff; width: 30px; height: 30px; border-radius: 8px; cursor: pointer; font-size: 14px; }
.help-x:hover { background: rgba(255, 255, 255, .2); }
.help-search { padding: 10px 12px; border-bottom: 1px solid #e6eefb; background: #f7faff; }
.help-search input { width: 100%; height: 40px; border-radius: 10px; border: 1px solid #cfdcf3; padding: 0 12px; font-size: 14px; background: #fff; }
.help-search input:focus { outline: 0; border-color: #1a7dff; box-shadow: 0 0 0 3px rgba(26, 125, 255, .15); }
.help-body { overflow-y: auto; padding: 8px 10px 14px; }
.help-sec { border-radius: 12px; margin: 4px 0; }
.help-sec > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 10px 10px;
  border-radius: 12px; font-weight: 700; color: var(--navy); font-size: 15px; }
.help-sec > summary::-webkit-details-marker, .help-q > summary::-webkit-details-marker { display: none; }
.help-sec > summary::after { content: "›"; margin-left: auto; color: #7d93b8; font-size: 20px; transition: transform .15s; }
.help-sec[open] > summary::after { transform: rotate(90deg); }
.help-sec > summary:hover { background: #f0f5ff; }
.help-sec[open] > summary { background: #eaf2ff; }
.help-ico { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #eef4ff; color: #0a6bff; font-size: 16px; flex: none; }
.help-here { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #0a6bff;
  background: #dcebff; border-radius: 999px; padding: 2px 8px; }
.help-q { margin: 2px 0 2px 40px; border-left: 2px solid #e1ebfa; }
.help-q > summary { list-style: none; cursor: pointer; padding: 8px 10px; font-size: 14px; color: #1f3b66; font-weight: 600; }
.help-q > summary::before { content: "+"; display: inline-block; width: 16px; color: #1a7dff; font-weight: 800; }
.help-q[open] > summary::before { content: "–"; }
.help-q > summary:hover { color: #0a6bff; }
.help-a { padding: 2px 12px 12px 26px; font-size: 13.5px; line-height: 1.55; color: #34496b; }
.help-a ol { margin: 4px 0 0; padding-left: 18px; }
.help-a li { margin: 3px 0; }
.help-empty { padding: 16px; text-align: center; color: #6f87ad; font-size: 13px; }
@media (max-width: 640px) { .help-fab { right: 14px; bottom: 14px; width: 44px; height: 44px; } .help-tip { display: none; } .help-panel { right: 16px; bottom: 68px; } }
@media print { .help-fab, .help-panel { display: none; } }

/* topo do menu: logo + nome Infall CRM */
.brand-infall { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; box-shadow: 0 0 10px rgba(0, 150, 255, .55); }
.brand-wordmark { display: flex; flex-direction: column; align-items: flex-end; align-self: center; flex: none !important; line-height: 1; }
.bw-infall { display: flex; align-items: baseline; font-family: "Montserrat", system-ui, sans-serif; font-weight: 500;
  font-size: 21px; letter-spacing: .16em; margin-right: -.16em; color: #fff; }
.bw-a { width: .7em; height: .74em; overflow: visible; margin: 0 .16em 0 0; flex: none; }
.bw-a path { fill: none; stroke: #fff; stroke-width: 8; stroke-linejoin: miter; }
.bw-crm { font-family: "Montserrat", system-ui, sans-serif; font-weight: 600; font-size: 10px; letter-spacing: .14em;
  margin: 3px -.14em 0 0; color: #1a9bff; text-shadow: 0 0 8px rgba(0, 120, 255, .5); }
.brand .side-toggle { margin-left: auto; }

/* meta / comissão da CRC: fixa no menu lateral */
@media (min-width: 901px) { .side:has(.side-meta) .nav { flex: 0 1 auto; } }
.side-meta { flex: none; margin-top: auto; border: 1px solid rgba(0, 148, 254, .45); border-radius: 14px; padding: 10px 12px 12px;
  background: linear-gradient(180deg, rgba(0, 148, 254, .16), rgba(0, 148, 254, .05));
  box-shadow: inset 0 0 14px rgba(0, 101, 238, .2); color: #fff; overflow: hidden; }
.side-meta .meta-head { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.side-meta .meta-ico { font-size: 16px; color: #5cc0ff; display: inline-flex; }
.side-meta .meta-title { font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 14px; letter-spacing: .03em; }
.side-meta .meta-line { display: none; font-size: 12px; font-weight: 700; color: #8fffc1; white-space: nowrap; }
.meta-sec { font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #8fc8ff; margin: 6px 0 2px; }
.meta-calc { font-size: 12px; color: #cfe3ff; }
.meta-total { font-family: "Exo 2", system-ui, sans-serif; font-size: 24px; font-weight: 800; color: #8fffc1; line-height: 1.15;
  text-shadow: 0 0 10px rgba(80, 255, 170, .35); }
.meta-note { font-size: 11px; color: #9fb9e0; }
.meta-bar { height: 7px; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; margin: 8px 0 2px; }
.meta-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #1a8cff, #00e0a4); }
.meta-falta, .meta-alvo, .meta-max { font-size: 12px; line-height: 1.4; margin: 0 0 4px; color: #e8f2ff; }
.meta-alvo b { color: #8fffc1; }
.meta-max { font-weight: 700; color: #8fffc1; margin-top: 6px; }
@media (min-width: 901px) {
  /* menu recolhido: só o 🎯 (o resumo aparece ao passar o mouse) */
  body.side-collapsed .side-meta { padding: 8px 0; border-radius: 10px; text-align: center; }
  body.side-collapsed .side-meta .meta-head { justify-content: center; margin: 0; }
  body.side-collapsed .side-meta .meta-title,
  body.side-collapsed .side-meta .meta-body { display: none; }
}
@media (max-width: 900px) {
  /* celular: vira uma linha curta na barra do topo */
  .side-meta { order: 4; width: 100%; margin: 0; padding: 6px 10px; display: flex; align-items: center; gap: 8px; }
  .side-meta .meta-head { margin: 0; }
  .side-meta .meta-body, .side-meta .meta-title { display: none; }
  .side-meta .meta-line { display: block; white-space: normal; line-height: 1.35; }
}
@media (max-height: 760px) and (min-width: 901px) {
  /* tela baixa: menu mais compacto e rolável, a meta nunca fica cortada */
  .side:has(.side-meta) { overflow-y: auto; scrollbar-width: none; gap: 12px; }
  .side:has(.side-meta) .nav a { padding: 8px 12px; }
  .side:has(.side-meta) .side-user button { padding: 6px 12px; }
}

/* ícones de linha (no lugar dos emojis) */
.ic { width: 1.1em; height: 1.1em; vertical-align: -0.18em; flex: none; display: inline-block; }
.btn .ic { margin-right: 1px; }
.task-check .ic, .qr-ok .ic, .festa-trofeu .ic { vertical-align: 0; }
.motiv-hi .ic { color: #ffd23f; filter: drop-shadow(0 0 6px rgba(255, 210, 63, .5)); }
.motiv-tag .ic { color: #8fc8ff; }
.hdot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin: 0 3px 1px 0; vertical-align: middle; }
.hdot-g { background: #22c55e; } .hdot-a { background: #f5a300; } .hdot-r { background: #e5484d; }

/* avatar do Infall Assist no topo da central de dúvidas */
.help-av { width: 40px; height: 40px; flex: none; border-radius: 50%; overflow: hidden; border: 1.5px solid #2b93ff; background: radial-gradient(circle, #0b2f86, #020a26); box-shadow: 0 0 10px rgba(30, 144, 255, .6); }
.help-av .robo { width: 100%; height: 100%; filter: none; }
.help-id { flex: 1; min-width: 0; }

/* Comemoração por faixa: bronze, prata e ouro (cores e brilho crescem com a conquista) */
.festa-bronze { --fc: #d08a4f; --fcl: #f6c08e; --fglow: rgba(208, 138, 79, .55); }
.festa-prata  { --fc: #c3ccd8; --fcl: #f1f5fa; --fglow: rgba(210, 222, 238, .65); }
.festa-ouro   { --fc: #ffd23f; --fcl: #fff3b0; --fglow: rgba(255, 210, 63, .8); }
.festa-back .festa-card { border-color: var(--fc); box-shadow: 0 0 16px var(--fglow), 0 0 50px rgba(0, 110, 255, .45); }
.festa-back .festa-tag { color: var(--fcl); background: color-mix(in srgb, var(--fc) 16%, transparent); border-color: color-mix(in srgb, var(--fc) 55%, transparent); }
.festa-back .festa-trofeu-mini { color: #1a1300; background: linear-gradient(135deg, var(--fcl), var(--fc)); box-shadow: 0 0 12px var(--fglow); }
.festa-trofeu-mini b { text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
.festa-prata .festa-trofeu-mini { color: #243247; }
.festa-ouro .festa-card { box-shadow: 0 0 22px var(--fglow), 0 0 70px rgba(255, 190, 40, .35), 0 0 60px rgba(0, 110, 255, .45); animation: motiv-pop .45s cubic-bezier(.2, .9, .3, 1.3), festa-ouro-pulso 1.6s ease-in-out .5s infinite; }
@keyframes festa-ouro-pulso { 50% { box-shadow: 0 0 34px var(--fglow), 0 0 100px rgba(255, 190, 40, .5), 0 0 60px rgba(0, 110, 255, .45); } }
.festa-raios { position: absolute; left: 50%; top: 42%; width: 300px; height: 300px; margin: -150px 0 0 -150px; border-radius: 50%; pointer-events: none; z-index: -1;
  background: repeating-conic-gradient(from 0deg, rgba(255, 215, 80, .55) 0deg 8deg, transparent 8deg 24deg);
  -webkit-mask-image: radial-gradient(circle, #000 20%, transparent 68%); mask-image: radial-gradient(circle, #000 20%, transparent 68%);
  animation: festa-gira 8s linear infinite; }
@keyframes festa-gira { to { transform: rotate(360deg); } }
.festa-robo { z-index: 1; }
@media (prefers-reduced-motion: reduce) { .festa-raios, .festa-ouro .festa-card { animation: none; } }
.festa-som { display: block; margin: -6px auto 10px; color: #9fd4ff; font-size: 14px; }
.festa-som:hover { color: #fff; }
.festa-som[hidden] { display: none; }
.festa-back .festa-trofeu-mini { padding: 6px; font-size: 18px; }

/* ================= Campanhas (admin) ================= */
.cp-head .toolbar { align-items: center; flex-wrap: wrap; }
.cp-sync { font-size: 13px; }
.cp-sync-err { color: #b3261e; font-size: 13px; font-weight: 600; }
.cp-tabs { margin-bottom: 14px; flex-wrap: wrap; }
.cp-filtros { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px 14px; align-items: end; padding: 14px 16px; margin-bottom: 12px; }
.cp-filtros label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #5b7196; font-weight: 600; }
.cp-filtros select, .cp-filtros input { height: 38px; border: 1px solid #cfdcf3; border-radius: 10px; padding: 0 10px; font-size: 14px; background: #fff; color: var(--navy); min-width: 0; }
.cp-filtros .cp-datas div { display: flex; gap: 6px; }
.cp-filtros .cp-datas input { flex: 1; }
.cp-filtros .cp-busca { grid-column: span 2; }
.cp-filtros [hidden] { display: none !important; }
.cp-periodo { color: #5b7196; font-size: 13px; margin: 0 2px 12px; }
.cp-h2 { display: flex; align-items: center; gap: 12px; font-family: "Exo 2", system-ui, sans-serif; font-size: 20px; color: var(--navy); margin: 18px 2px 12px; }
.cp-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
.cp-kpi { background: #fff; border: 1px solid #d9e6f7; border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.cp-kpi span { font-size: 12px; color: #6f87ad; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.cp-kpi b { font-family: "Exo 2", system-ui, sans-serif; font-size: 22px; color: var(--navy); font-variant-numeric: tabular-nums; }
.cp-kpi small { font-size: 12px; color: #8aa0c2; }
.cp-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; }
@media (max-width: 1100px) { .cp-row { grid-template-columns: 1fr; } .cp-filtros .cp-busca { grid-column: auto; } }

/* Performance: vermelho até 33%, amarelo até 66%, verde acima */
.cp-perf { display: inline-flex; align-items: center; gap: 8px; min-width: 120px; font-variant-numeric: tabular-nums; }
.cp-perf b { font-family: "Exo 2", system-ui, sans-serif; font-size: 15px; min-width: 40px; text-align: right; }
.cp-perf i { flex: 1; height: 8px; border-radius: 999px; background: #e8eef8; overflow: hidden; min-width: 60px; display: block; }
.cp-perf i s { display: block; height: 100%; border-radius: 999px; text-decoration: none; }
.cp-perf.g b { color: #15803d; } .cp-perf.g i s { background: linear-gradient(90deg, #22c55e, #15803d); }
.cp-perf.a b { color: #b26b00; } .cp-perf.a i s { background: linear-gradient(90deg, #fbbf24, #e08600); }
.cp-perf.r b { color: #c62828; } .cp-perf.r i s { background: linear-gradient(90deg, #f87171, #d93025); }
.cp-perf.none { color: #8aa0c2; font-size: 12px; }
.cp-perf.big b { font-size: 22px; min-width: 56px; }
.cp-perf.big i { height: 10px; }
.p-g { background: #22c55e; } .p-a { background: #f5a300; } .p-r { background: #e5484d; }

.cp-thumb { position: relative; display: inline-grid; place-items: center; flex: none; overflow: hidden; border-radius: 10px; background: #eef4ff; border: 1px solid #d9e6f7; color: #6f87ad; }
.cp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-thumb em { position: absolute; inset: auto 4px 4px auto; width: 20px; height: 20px; border-radius: 50%; background: rgba(0, 0, 0, .55); color: #fff; display: grid; place-items: center; font-size: 10px; }
.cp-thumb.sm { width: 46px; height: 46px; }
.cp-thumb.lg { width: 100%; aspect-ratio: 1; border-radius: 12px 12px 0 0; border: 0; }
.cp-thumb.vazio { font-size: 22px; flex-direction: column; }
.cp-thumb.vazio small { font-size: 10px; }
.cp-camp { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.cp-camp b { display: block; color: var(--navy); }
.cp-camp small { color: #6f87ad; font-size: 12px; }
.cp-tbl td { vertical-align: middle; }
.cp-st { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.cp-st.st-ativa { background: #dcf3e4; color: #15803d; } .cp-st.st-pausada { background: #fff1d6; color: #9a5b00; }
.cp-st.st-encerrada { background: #e8eef8; color: #4a6288; } .cp-st.st-removida { background: #fde0dd; color: #b3261e; }

.cp-top-item { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #eef3fb; }
.cp-top-item:last-child { border-bottom: 0; }
.cp-top-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cp-top-txt b { color: var(--navy); overflow: hidden; text-overflow: ellipsis; }
.cp-top-txt small { color: #6f87ad; font-size: 12px; }
.cp-pos { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; flex: none; font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; color: #fff; background: linear-gradient(135deg, #1a8cff, #0a4fd6); }
.cp-dist-bar { display: flex; height: 16px; border-radius: 999px; overflow: hidden; gap: 2px; margin: 6px 0 12px; }
.cp-dist-bar i, .cp-dist-leg i { display: block; }
.d-g { background: #22c55e; } .d-a { background: #f5a300; } .d-r { background: #e5484d; }
.cp-dist-leg { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-direction: column; gap: 6px; }
.cp-dist-leg li { display: flex; align-items: center; gap: 8px; font-size: 14px; color: #34496b; }
.cp-dist-leg li i { width: 12px; height: 12px; border-radius: 3px; }
.cp-dist-leg li b { margin-left: auto; font-family: "Exo 2", system-ui, sans-serif; }

.cp-units { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-bottom: 12px; }
.cp-unit { text-align: left; background: #fff; border: 1.5px solid #d9e6f7; border-radius: 16px; padding: 14px 16px; cursor: pointer; display: flex; flex-direction: column; gap: 10px; transition: border-color .15s, box-shadow .15s; }
.cp-unit:hover { border-color: #8fbfff; }
.cp-unit.sel { border-color: #1a6bff; box-shadow: 0 0 0 3px rgba(26, 107, 255, .15); }
.cp-unit-nome { font-weight: 700; color: var(--navy); }
.cp-unit-m { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cp-unit-m span { font-size: 11px; color: #6f87ad; display: flex; flex-direction: column; }
.cp-unit-m b { font-size: 14px; color: var(--navy); font-family: "Exo 2", system-ui, sans-serif; }
.cp-funil { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.cp-funil-l { display: grid; grid-template-columns: 130px 1fr 80px 56px; align-items: center; gap: 8px; font-size: 13px; color: #34496b; }
.cp-funil-l i { height: 14px; border-radius: 6px; background: linear-gradient(90deg, #1a8cff, #00c8ff); display: block; }
.cp-funil-l b { text-align: right; font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); }
.cp-funil-l small { color: #8aa0c2; text-align: right; }
.cp-custos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.cp-custos span { background: #f5f9ff; border-radius: 10px; padding: 8px 10px; font-size: 12px; color: #6f87ad; display: flex; flex-direction: column; }
.cp-custos b { font-size: 16px; color: var(--navy); font-family: "Exo 2", system-ui, sans-serif; }
.cp-linha { width: 100%; height: 190px; display: block; }
.cp-linha .grade { stroke: #e6eefb; stroke-width: 1; }
.cp-linha text { font-size: 11px; fill: #8aa0c2; font-family: "DM Sans", system-ui, sans-serif; }
.cp-linha .traco { fill: none; stroke: #1a6bff; stroke-width: 2.5; }
.cp-linha .ponto { stroke: #fff; stroke-width: 2; }
.cp-linha .p-g { fill: #22c55e; } .cp-linha .p-a { fill: #f5a300; } .cp-linha .p-r { fill: #e5484d; }

.cp-rank { display: flex; flex-direction: column; gap: 10px; }
.cp-rank-l { display: grid; grid-template-columns: 30px minmax(140px, 240px) 1fr 150px; align-items: center; gap: 12px; }
.cp-rank-l b { color: var(--navy); }
.cp-rank-bar { height: 14px; background: #eef3fb; border-radius: 999px; overflow: hidden; display: block; }
.cp-rank-bar i { display: block; height: 100%; border-radius: 999px; }
.cp-champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.cp-lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #6f87ad; margin: 10px 0 2px; }
.cp-puxou { margin: 0; padding-left: 18px; font-size: 14px; color: #34496b; }

.cp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; margin-bottom: 14px; }
.cp-grid.mini { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.cp-cri { background: #fff; border: 1px solid #d9e6f7; border-radius: 14px; display: flex; flex-direction: column; overflow: hidden; }
.cp-cri-b { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cp-cri-b > b { color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-cri-b > small { color: #6f87ad; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-cri-top { display: flex; align-items: center; gap: 6px; }
.cp-cri-top .cp-st { margin-left: auto; }
.cp-tipo { font-size: 11px; font-weight: 700; background: #eaf2ff; color: #1a6bff; border-radius: 6px; padding: 2px 7px; }
.cp-cor { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px #cfdcf3; }
.cp-cri-m { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; font-size: 13px; color: var(--navy); font-weight: 700; }
.cp-cri-m span { display: flex; flex-direction: column; }
.cp-cri-m small { font-size: 10px; color: #8aa0c2; font-weight: 400; }
.cp-tags { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.cp-tags span { font-size: 11px; background: #f0f5ff; color: #34496b; border-radius: 999px; padding: 2px 8px; }
.cp-tags .btn { font-size: 12px; padding: 2px 4px; }
.cp-padroes .cp-pad-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.cp-pad h3 { font-size: 14px; color: var(--navy); margin: 0 0 8px; }
.cp-pad-l { display: grid; grid-template-columns: minmax(90px, 1fr) 1fr 42px 70px; align-items: center; gap: 8px; font-size: 13px; color: #34496b; padding: 4px 6px; border-radius: 8px; }
.cp-pad-l.best { background: #eefaf2; }
.cp-pad-l i { height: 8px; background: #eef3fb; border-radius: 999px; overflow: hidden; display: block; }
.cp-pad-l i s { display: block; height: 100%; border-radius: 999px; text-decoration: none; }
.cp-pad-l b { text-align: right; color: var(--navy); }
.cp-pad-l small { color: #8aa0c2; }
.cp-seg { display: flex; align-items: center; justify-content: space-between; margin: 4px 2px 10px; }

.cp-indice { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.cp-indice small { font-size: 10px; color: #8aa0c2; text-transform: uppercase; letter-spacing: .04em; }
.cp-selo { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 1px 8px; margin-left: 6px; vertical-align: middle; }
.cp-selo.s-ok { background: #dcf3e4; color: #15803d; } .cp-selo.s-pico { background: #fff1d6; color: #9a5b00; }
.cp-nota { margin: 10px 0 0; }
.cp-meses { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.cp-mes { border: 1px solid #e3ecf8; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; background: #fbfdff; }
.cp-mes > b { font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); text-transform: uppercase; font-size: 13px; }
.cp-mes-c { font-size: 13px; color: #34496b; display: flex; gap: 6px; align-items: center; }
.cp-mes-c em { font-style: normal; font-weight: 700; color: #1a6bff; width: 22px; }
.cp-perf-mini { margin-left: auto; font-size: 11px; font-weight: 700; color: #fff; border-radius: 6px; padding: 1px 6px; }
.cp-vazio { text-align: center; padding: 34px 20px; }
.cp-vazio-ico { font-size: 36px; color: #1a6bff; }
.cp-vazio ol { display: inline-block; text-align: left; }
.cp-modal { width: min(980px, calc(100vw - 32px)) !important; max-width: none !important; }
.cp-det h3 { font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-size: 16px; margin: 14px 0 6px; }
.cp-det-top { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.cp-ids { display: grid; grid-template-columns: 200px 1fr; gap: 4px 12px; font-size: 13px; margin: 10px 0; }
.cp-ids dt { color: #6f87ad; } .cp-ids dd { margin: 0; color: var(--navy); word-break: break-all; }
@media (max-width: 640px) {
  .cp-rank-l { grid-template-columns: 30px 1fr; } .cp-rank-l .cp-rank-bar { grid-column: span 2; } .cp-rank-l .cp-perf { grid-column: span 2; }
  .cp-funil-l { grid-template-columns: 100px 1fr 60px; } .cp-funil-l small { display: none; }
  .cp-unit-m { grid-template-columns: repeat(2, 1fr); }
}
/* ===== Campanhas v2 (visual das referências) ===== */
.cp-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.cp-titulo { display: flex; align-items: center; gap: 14px; }
.cp-ico-t { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 26px; color: #1a6bff; background: #e6efff; flex: none; }
.cp-titulo h1 { margin: 0; font-family: "Exo 2", system-ui, sans-serif; font-size: 30px; color: var(--navy); text-transform: none; letter-spacing: .01em; }
.cp-titulo p { margin: 2px 0 0; color: #5b7196; font-size: 14px; }
.cp-titulo p b { color: var(--navy); }
.cp-top-dir { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.cp-datas-g { display: flex; align-items: center; gap: 6px; background: #fff; border: 1px solid #cfdcf3; border-radius: 12px; padding: 4px 10px; color: #1a6bff; }
.cp-datas-g select, .cp-datas-g input { border: 0; background: transparent; font-size: 13px; color: var(--navy); height: 32px; font-family: inherit; }
.cp-datas-g input { width: 128px; }
.cp-datas-g span { color: #8aa0c2; font-size: 12px; }
.cp-sel-un { height: 42px; border: 1px solid #cfdcf3; border-radius: 12px; padding: 0 12px; background: #fff; color: var(--navy); font-size: 14px; min-width: 200px; }
.cp-tabs2 { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.cp-tabs2 > button { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #d9e6f7; background: #fff; color: #34496b; border-radius: 12px; padding: 9px 16px; font-size: 14px; cursor: pointer; font-family: inherit; }
.cp-tabs2 > button:hover { border-color: #8fbfff; }
.cp-tabs2 > button.active { background: linear-gradient(180deg, #1a6bff, #0a4fd6); color: #fff; border-color: #0a4fd6; box-shadow: 0 6px 16px rgba(10, 79, 214, .25); }
.cp-sync-box { margin-left: auto; display: flex; align-items: center; gap: 4px; font-size: 12px; color: #8aa0c2; }
.cp-tb { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 12px; }
.cp-tb select { height: 38px; border: 1px solid #cfdcf3; border-radius: 10px; padding: 0 10px; background: #fff; color: var(--navy); font-size: 13px; }
.cp-tb .cp-busca { display: flex; align-items: center; gap: 6px; border: 1px solid #cfdcf3; border-radius: 10px; padding: 0 10px; height: 38px; background: #fff; color: #8aa0c2; flex: 1; min-width: 220px; }
.cp-tb .cp-busca input { border: 0; outline: 0; flex: 1; font-size: 13px; background: transparent; min-width: 0; }
.cp-exp { margin-left: auto; }
.cp-kpis2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; margin-bottom: 8px; }
.cp-kpis2.mini { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.cp-kpi2 { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid #d9e6f7; border-radius: 16px; padding: 16px 18px; box-shadow: 0 4px 14px rgba(0, 40, 120, .05); }
.cp-kpi-ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 22px; flex: none; }
.cp-kpi2 > div { display: flex; flex-direction: column; min-width: 0; }
.cp-kpi2 span { font-size: 13px; color: #5b7196; }
.cp-kpi2 b { font-family: "Exo 2", system-ui, sans-serif; font-size: 28px; color: var(--navy); line-height: 1.15; font-variant-numeric: tabular-nums; }
.cp-kpis2.mini .cp-kpi2 b { font-size: 20px; }
.cp-dl { font-size: 12px; color: #8aa0c2; font-weight: 600; }
.cp-dl.up { color: #15803d; } .cp-dl.down { color: #c62828; }
.cp-row3 { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 14px; }
@media (max-width: 1200px) { .cp-row3 { grid-template-columns: 1fr; } }
.cp-medal { width: 30px; height: 30px; border-radius: 50%; flex: none; display: grid; place-items: center; font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 14px; color: #1a1300; box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .15); }
.cp-medal.m1 { background: linear-gradient(135deg, #ffe07a, #f0b400); }
.cp-medal.m2 { background: linear-gradient(135deg, #f1f4f8, #b9c3d0); color: #243247; }
.cp-medal.m3 { background: linear-gradient(135deg, #f2b27a, #c9772f); }
.cp-medal.m4 { background: #eef3fb; color: #4a6288; box-shadow: none; }
.cp-av { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; color: #fff; font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 12px; letter-spacing: .04em; flex: none; }
.cp-av.lg { width: 56px; height: 56px; border-radius: 14px; font-size: 15px; }
.cp-unrank { display: grid; grid-template-columns: 30px 38px minmax(90px, 1fr) 62px minmax(80px, 1.3fr) auto; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #eef3fb; }
.cp-unrank:last-child { border-bottom: 0; }
.cp-unrank.big { grid-template-columns: 30px 56px minmax(140px, 1fr) 70px minmax(120px, 2fr) auto; }
.cp-unrank-n { color: var(--navy); font-weight: 600; font-size: 14px; }
.cp-unrank > b { font-family: "Exo 2", system-ui, sans-serif; font-size: 24px; }
.cp-unrank-m { display: flex; flex-direction: column; align-items: flex-end; font-size: 13px; }
.cp-unrank-m b { color: var(--navy); } .cp-unrank-m small { color: #8aa0c2; }
.p-t-g { color: #15803d; } .p-t-a { color: #c07800; } .p-t-r { color: #c62828; } .p-t-none { color: #8aa0c2; }
.cp-bars { width: 100%; height: 230px; display: block; }
.cp-bars .grade { stroke: #eef3fb; } .cp-bars text { font-size: 11px; fill: #6f87ad; font-family: "DM Sans", system-ui, sans-serif; }
.cp-bars text.val { fill: var(--navy); font-weight: 700; font-size: 12px; }
.cp-link { display: inline-flex; align-items: center; gap: 6px; color: #1a6bff; font-size: 14px; text-decoration: underline; }
.cp-crstrip { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; }
.cp-crtop { position: relative; display: flex; flex-direction: column; gap: 6px; }
.cp-crtop > b { color: var(--navy); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-crtop > div { display: flex; align-items: baseline; gap: 10px; }
.cp-crtop small { color: #6f87ad; }
.cp-crpos { position: absolute; left: 8px; top: 8px; }
.cp-pc { font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 18px; }
.cp-thumb.banner { width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; }
.cp-thumb.wide { width: 70px; height: 40px; border-radius: 8px; }
.cp-nome { display: block; color: var(--navy); }
.cp-unpill { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: #34496b; background: #f3f7fd; border: 1px solid #e0e9f7; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.cp-unpill i { width: 8px; height: 8px; border-radius: 50%; display: block; }
.cp-st { display: inline-flex; align-items: center; gap: 6px; }
.cp-st i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: block; }
.cp-mais { letter-spacing: 1px; font-weight: 800; padding: 4px 10px; }
.cp-units2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 14px; }
.cp-unit2 { text-align: left; background: #fff; border: 1.5px solid #d9e6f7; border-radius: 18px; padding: 16px; cursor: pointer; display: flex; flex-direction: column; gap: 14px; font-family: inherit; transition: border-color .15s, box-shadow .15s; }
.cp-unit2:hover { border-color: #8fbfff; }
.cp-unit2.sel { border-color: #1a6bff; box-shadow: 0 0 0 3px rgba(26, 107, 255, .14), 0 8px 22px rgba(0, 40, 120, .08); }
.cp-unit2-h { display: flex; align-items: center; gap: 12px; }
.cp-unit2-t { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.cp-unit2-t b { color: var(--navy); font-size: 15px; }
.cp-unit2-t span { color: #6f87ad; font-size: 12px; }
.cp-unit2-t strong { font-family: "Exo 2", system-ui, sans-serif; font-size: 34px; line-height: 1.1; }
.cp-unit2-d { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.cp-unit2-d .cp-dl { font-size: 14px; } .cp-unit2-d small:last-child { color: #8aa0c2; font-size: 11px; }
.cp-unit2-m { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cp-unit2-m span { background: #f5f9ff; border-radius: 10px; padding: 8px 4px; text-align: center; font-size: 11px; color: #6f87ad; display: flex; flex-direction: column; }
.cp-unit2-m b { font-family: "Exo 2", system-ui, sans-serif; font-size: 16px; color: var(--navy); }
.cp-undet-h { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.cp-undet-h h2 { margin: 0; font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-size: 20px; }
.cp-subtabs { display: flex; gap: 6px; margin-left: 8px; flex-wrap: wrap; }
.cp-subtabs button { border: 1px solid #d9e6f7; background: #f5f9ff; color: #34496b; border-radius: 10px; padding: 7px 14px; font-size: 13px; cursor: pointer; font-family: inherit; }
.cp-subtabs button.active { background: #1a6bff; color: #fff; border-color: #1a6bff; }
.cp-row-un { grid-template-columns: 1.6fr 1fr 1fr; margin-bottom: 14px; }
.cp-bloco { border: 1px solid #e3ecf8; border-radius: 14px; padding: 14px; background: #fff; }
.cp-bloco h3, .cp-bloco h2 { margin: 0 0 8px; font-size: 15px; color: var(--navy); }
.cp-leg { display: flex; gap: 14px; font-size: 12px; color: #5b7196; margin-bottom: 4px; justify-content: flex-end; }
.cp-leg i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 5px; }
.cp-evol { width: 100%; height: 230px; display: block; }
.cp-evol .grade { stroke: #eef3fb; } .cp-evol text { font-size: 11px; fill: #8aa0c2; font-family: "DM Sans", system-ui, sans-serif; }
.cp-funil2 { display: grid; grid-template-columns: 130px 1fr; gap: 10px; align-items: start; }
.cp-funil2 svg { width: 100%; height: auto; }
.cp-funil2-t { display: flex; flex-direction: column; gap: 5px; }
.cp-funil2-t div { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; height: 35px; column-gap: 8px; }
.cp-funil2-t b { font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-size: 15px; line-height: 1.1; }
.cp-funil2-t span { font-size: 11px; color: #6f87ad; grid-column: 1; }
.cp-funil2-t em { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-style: normal; font-size: 11px; color: #34496b; background: #eef3fb; border-radius: 6px; padding: 2px 6px; }
.cp-ind { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 10px; }
.cp-ind span { background: #f5f9ff; border-radius: 12px; padding: 10px 12px; font-size: 12px; color: #6f87ad; display: flex; flex-direction: column; }
.cp-ind b { font-family: "Exo 2", system-ui, sans-serif; font-size: 18px; color: var(--navy); display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; }
.cp-ind-dest { display: flex; align-items: center; gap: 14px; background: linear-gradient(135deg, #eafaf0, #f5fdf8); border: 1px solid #bfe3cc; border-radius: 14px; padding: 12px 16px; color: #15803d; font-size: 28px; }
.cp-ind-dest div { display: flex; flex-direction: column; }
.cp-ind-dest small { font-size: 12px; color: #4a6b58; }
.cp-ind-dest b { font-family: "Exo 2", system-ui, sans-serif; font-size: 26px; color: #15803d; line-height: 1.1; }
.cp-hist .card-head { margin-bottom: 4px; }
.cp-champ-h { display: flex; align-items: center; gap: 10px; }
.cp-champ-h h2 { margin: 0; }
.cp-h3 { margin: 14px 0 8px; }
.cp-mes-c .cp-medal { width: 20px; height: 20px; font-size: 11px; }
@media print {
  body.cp-print .side, body.cp-print .help-fab, body.cp-print .cp-top-dir, body.cp-print .cp-tabs2, body.cp-print .cp-tb, body.cp-print .cp-mais, body.cp-print .demo-bar, body.cp-print .ai-banner { display: none !important; }
  body.cp-print .main { margin: 0; }
}
/* Campanhas: filtros em linha (sem esticar os campos) */
.cp-tb select, .cp-top-dir select, .cp-datas-g input { width: auto !important; flex: none; margin: 0 !important; }
.cp-tb .cp-busca input { width: auto !important; margin: 0 !important; height: 34px; border: 0 !important; box-shadow: none !important; }
.cp-sel-un { width: auto !important; }
.cp-tbl .cp-nome { min-width: 170px; }
@media (max-width: 1280px) { .cp-row3.cp-row-un { grid-template-columns: 1fr 1fr; } .cp-row-un .cp-bloco:first-child { grid-column: span 2; } }
@media (max-width: 900px) { .cp-row3.cp-row-un { grid-template-columns: 1fr; } .cp-row-un .cp-bloco:first-child { grid-column: auto; } }
.cp-funil2-t em:empty { display: none; }
.cp-form { display: inline-block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #8b3dff; background: #f1e9ff; border-radius: 5px; padding: 1px 6px; }
.mk-form { display: flex; flex-direction: column; gap: 10px; max-width: 620px; margin-top: 8px; }
.mk-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.chip.ok-chip { background: #dcf3e4; color: #15803d; }
.mk-form .field input { width: 100%; }

/* ================= Follow-up (aba isolada) ================= */
#fu-root { display: flex; flex-direction: column; gap: 16px; }
.fu-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.fu-titulo h1 { margin: 0; font-family: "Exo 2", system-ui, sans-serif; font-size: 28px; color: var(--navy); }
.fu-titulo p { margin: 4px 0 0; color: #5b7196; }
.fu-top-dir { display: flex; gap: 10px; flex-wrap: wrap; }
.fu-sel { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #d9e6f7; border-radius: 12px; padding: 4px 10px; color: #1a6bff; }
.fu-sel select, .fu-sel input { border: 0 !important; background: transparent; width: auto !important; font-weight: 600; color: var(--navy); padding: 6px 2px; }
.fu-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.fu-kpi { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid #d9e6f7; border-radius: 16px; padding: 16px 18px; box-shadow: 0 4px 14px rgba(0, 40, 120, .05); }
.fu-kpi > div { display: flex; flex-direction: column; min-width: 0; }
.fu-kpi span { font-size: 13px; color: #5b7196; }
.fu-kpi b { font-family: "Exo 2", system-ui, sans-serif; font-size: 28px; color: var(--navy); line-height: 1.15; font-variant-numeric: tabular-nums; }
.fu-kpi-ico { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; flex: none; }
.fu-dl { font-size: 12px; color: #8aa0c2; }
.fu-dl.up { color: #15803d; font-weight: 700; }
.fu-dl.down { color: #d92d20; font-weight: 700; }
.fu-dl span { font-weight: 400; color: #8aa0c2; }
.fu-row { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 14px; }
.fu-row .card { margin: 0; }
@media (max-width: 1200px) { .fu-row { grid-template-columns: 1fr 1fr; } .fu-row .card:first-child { grid-column: 1 / -1; } }
@media (max-width: 720px) { .fu-row { grid-template-columns: 1fr; } }
.fu-leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #5b7196; }
.fu-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.fu-evol, .fu-bars { width: 100%; height: auto; display: block; }
.fu-evol text, .fu-bars text { font-size: 11px; fill: #6f87ad; }
.fu-bars text.val { font-size: 12px; font-weight: 700; fill: var(--navy); }
.fu-bars text.nm { font-weight: 700; fill: #3c5277; }
.fu-evol .grade, .fu-bars .grade { stroke: #e3e8ef; stroke-width: 1; }
.fu-rosca { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; justify-content: center; }
.fu-rosca svg { width: 170px; height: 170px; flex: none; }
.fu-rosca path { stroke: #fff; stroke-width: 2; }
.fu-rosca ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; min-width: 150px; }
.fu-rosca li { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #3c5277; }
.fu-rosca li i { width: 10px; height: 10px; border-radius: 50%; flex: none; }
.fu-rosca li b { margin-left: auto; color: var(--navy); }
.fu-tab { padding-top: 14px; }
.fu-tb { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 12px; }
.fu-busca { flex: 1 1 280px; display: flex; align-items: center; gap: 8px; border: 1px solid #d9e6f7; border-radius: 12px; padding: 0 12px; color: #8aa0c2; background: #fff; }
.fu-busca input { border: 0 !important; flex: 1; padding: 10px 0; background: transparent; }
.fu-f { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: #6f87ad; font-weight: 600; }
.fu-f select { width: auto !important; min-width: 130px; }
.fu-tbl td { vertical-align: middle; }
.fu-tbl .fu-nome { display: block; color: var(--navy); }
.fu-st { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.fu-st.s-g { background: #e5f7ec; color: #15803d; }
.fu-st.s-a { background: #fff3e0; color: #c2410c; }
.fu-st.s-n { background: #eef1f6; color: #475467; }
.fu-st.s-b { background: #e8f0ff; color: #1a4fd6; }
.fu-st.s-ok { background: #15803d; color: #fff; }
.fu-st.s-r { background: #fdecec; color: #b42318; }
.fu-atraso { color: #d92d20; font-weight: 700; }
.fu-acoes { display: flex; gap: 6px; }
.fu-ac { width: 32px; height: 32px; border-radius: 50%; border: 1px solid #d9e6f7; background: #fff; display: grid; place-items: center; font-size: 16px; color: #1a6bff; cursor: pointer; text-decoration: none; padding: 0; }
.fu-ac.wa { color: #16a34a; border-color: #bfe8cf; }
.fu-ac.tel { color: #1a6bff; }
.fu-ac.cal { color: #7c3aed; border-color: #e0d4fb; }
.fu-ac.mais { color: #5b7196; font-size: 11px; letter-spacing: 1px; }
.fu-ac:hover:not([disabled]) { background: #f3f7ff; }
.fu-ac[disabled], .fu-ac.off { opacity: .35; cursor: default; }
.fu-pgbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.fu-pgs { display: flex; gap: 6px; align-items: center; }
.fu-pg { min-width: 32px; height: 32px; border-radius: 8px; border: 1px solid #d9e6f7; background: #fff; color: var(--navy); cursor: pointer; font-weight: 600; }
.fu-pg.sel { background: #1a6bff; border-color: #1a6bff; color: #fff; }
.fu-pg[disabled] { opacity: .4; cursor: default; }
.fu-pg-gap { color: #8aa0c2; padding: 0 2px; }
.fu-menu { position: absolute; z-index: 60; width: 220px; background: #fff; border: 1px solid #d9e6f7; border-radius: 12px; box-shadow: 0 12px 30px rgba(0, 40, 120, .16); padding: 6px; display: flex; flex-direction: column; }
.fu-menu button { display: flex; align-items: center; gap: 8px; border: 0; background: none; text-align: left; padding: 9px 10px; border-radius: 8px; cursor: pointer; color: var(--navy); font-size: 14px; }
.fu-menu button:hover { background: #f3f7ff; }
.fu-menu button.r { color: #b42318; }
.fu-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.fu-form .fu-full { grid-column: 1 / -1; }
@media (max-width: 560px) { .fu-form { grid-template-columns: 1fr; } }
.fu-atalhos { display: flex; gap: 6px; flex-wrap: wrap; margin: -4px 0 12px; }
.fu-base { color: #15803d; min-height: 1em; }
.fu-com .table-wrap { margin-top: 6px; }
.fu-max { color: #15803d; font-weight: 700; }.fu-click { cursor: pointer; }
.fu-kpi.fu-click { transition: border-color .15s, box-shadow .15s, transform .15s; }
.fu-kpi.fu-click:hover { border-color: #1a6bff; box-shadow: 0 8px 22px rgba(26, 107, 255, .16); transform: translateY(-1px); }
rect.fu-click:hover, path.fu-click:hover { filter: brightness(1.12); opacity: .92; }
.fu-rosca li.fu-click:hover, tr.fu-click:hover td { background: #f3f7ff; }
.fu-rosca li.fu-click { border-radius: 6px; padding: 2px 4px; margin: 0 -4px; }
.modal.fu-modal-lg { width: min(1100px, calc(100vw - 32px)); max-width: none; }
.fu-dd { max-height: 62vh; overflow: auto; }
.fu-dd tfoot td { border-top: 2px solid #d9e6f7; background: #f7faff; position: sticky; bottom: 0; }
/* ================= Ficha do paciente (Follow-up) ================= */
.fu-tbl a.fu-nome { color: var(--navy); font-weight: 700; text-decoration: none; border-bottom: 1px dashed #9fb9e0; }
.fu-tbl a.fu-nome:hover { color: #1a6bff; border-bottom-color: #1a6bff; }
.fu-dd a.fu-nome { display: block; color: var(--navy); font-weight: 700; text-decoration: none; }
.fu-dd a.fu-nome:hover { color: #1a6bff; text-decoration: underline; }
.fu-novas { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; margin-left: 6px; border-radius: 999px; background: #16a34a; color: #fff; font-size: 11px; font-weight: 800; vertical-align: 1px; }
.fu-tbl td small.muted { display: block; }
.fx { display: flex; flex-direction: column; gap: 14px; }
.fx .card { margin: 0; }
.fx-top { display: flex; align-items: center; }
.fx-head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.fx-avatar { width: 56px; height: 56px; border-radius: 50%; flex: none; display: grid; place-items: center; font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 20px; color: #fff; background: linear-gradient(135deg, #1a6bff, #1a4fd6); }
.fx-id { flex: 1 1 260px; min-width: 0; }
.fx-id h1 { margin: 0; font-family: "Exo 2", system-ui, sans-serif; font-size: 24px; color: var(--navy); }
.fx-sub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 6px; font-size: 13px; color: #5b7196; }
.fx-sub > span:not(.fu-st) { display: inline-flex; align-items: center; gap: 5px; }
.fx-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.fx-acts .btn { display: inline-flex; align-items: center; gap: 6px; }
.fx-banner { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 12px; font-size: 14px; }
.fx-banner.ok { background: #e5f7ec; color: #14532d; border: 1px solid #b7e4c7; }
.fx-banner.r { background: #fdecec; color: #7a1d14; border: 1px solid #f5c2bd; }
.fx-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, 1fr); gap: 14px; align-items: start; }
.fx-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.fx-side { position: sticky; top: 12px; min-width: 0; }
@media (max-width: 1100px) { .fx-grid { grid-template-columns: 1fr; } .fx-side { position: static; } }
.fx-hbtns { display: flex; gap: 6px; flex-wrap: wrap; }
.fx-hbtns .btn, .fx .card-head .btn { display: inline-flex; align-items: center; gap: 5px; }
.fx-dados { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 18px; margin: 4px 0 0; }
.fx-dados > div { min-width: 0; }
.fx-dados .fx-w2 { grid-column: span 2; }
.fx-dados dt { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #7a8fb0; margin-bottom: 3px; }
.fx-dados dd { margin: 0; color: var(--navy); overflow-wrap: anywhere; }
@media (max-width: 720px) { .fx-dados { grid-template-columns: 1fr 1fr; } .fx-dados .fx-w2 { grid-column: 1 / -1; } }
.fx-lk { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #d9e6f7; color: #1a6bff; margin-left: 6px; vertical-align: middle; font-size: 14px; }
.fx-itens .fx-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.fx-itens tfoot td { border-top: 2px solid #d9e6f7; background: #f7faff; }
.fx-itens tr.fx-nao td { opacity: .55; }
.fx-sim { display: inline-flex; align-items: center; gap: 4px; color: #15803d; font-weight: 700; font-size: 13px; }
.fx-dica { margin: 8px 0 0; }
.fx-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-top: 12px; }
.fx-resumo > div { background: #f5f8fe; border: 1px solid #e1eaf7; border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.fx-resumo span { font-size: 12px; color: #5b7196; }
.fx-resumo b { font-family: "Exo 2", system-ui, sans-serif; font-size: 18px; color: var(--navy); }
.fx-resumo small { font-size: 12px; color: #c2410c; }
.fx-resumo .ok { background: #e5f7ec; border-color: #b7e4c7; }
.fx-resumo .ok b { color: #15803d; }
.fx-obs { display: flex; gap: 8px; align-items: flex-end; margin: 4px 0 10px; }
.fx-obs textarea { flex: 1; resize: vertical; min-height: 44px; }
.fx-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.fx-chips button { border: 1px solid #d9e6f7; background: #fff; color: #3c5277; border-radius: 999px; padding: 5px 12px; font-size: 13px; cursor: pointer; }
.fx-chips button.sel { background: var(--navy); border-color: var(--navy); color: #fff; }
.fx-tl { list-style: none; margin: 0; padding: 0; position: relative; }
.fx-tl::before { content: ""; position: absolute; left: 15px; top: 6px; bottom: 6px; width: 2px; background: #e3e8ef; }
.fx-ev { position: relative; display: flex; gap: 12px; padding: 8px 0; }
.fx-ev[hidden] { display: none; }
.fx-ev-ico { position: relative; z-index: 1; flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 15px; background: #eef3fb; color: #3c5277; border: 2px solid #fff; }
.fx-ev.t-contato .fx-ev-ico { background: #e8f0ff; color: #1a6bff; }
.fx-ev.t-proposta .fx-ev-ico, .fx-ev.t-orcamento .fx-ev-ico { background: #fff3e0; color: #c2410c; }
.fx-ev.t-retorno .fx-ev-ico { background: #f1eaff; color: #7c3aed; }
.fx-ev.t-observacao .fx-ev-ico { background: #fff8d6; color: #a16207; }
.fx-ev.t-fechamento .fx-ev-ico { background: #e5f7ec; color: #15803d; }
.fx-ev.t-status .fx-ev-ico, .fx-ev.t-edicao .fx-ev-ico, .fx-ev.t-procedimento .fx-ev-ico { background: #eef1f6; color: #475467; }
.fx-ev-b { flex: 1; min-width: 0; padding-top: 4px; }
.fx-ev-h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 10px; }
.fx-ev-h b { color: var(--navy); }
.fx-ev-d { margin-top: 3px; color: #3c5277; white-space: pre-wrap; overflow-wrap: anywhere; }
.fx-ev.t-observacao .fx-ev-d { background: #fffbea; border: 1px solid #f5e6a8; border-radius: 10px; padding: 8px 10px; }
.fx-aud { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 5px; padding: 4px 10px; border-radius: 8px; background: #f5f8fe; border: 1px solid #e1eaf7; font-size: 13px; }
.fx-antes { color: #b42318; text-decoration: line-through; }
.fx-seta { color: #8aa0c2; }
.fx-aud b { color: #15803d; }
.fx-aud2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 6px; font-size: 13px; }
.fx-aud2 > div { background: #f5f8fe; border: 1px solid #e1eaf7; border-radius: 8px; padding: 6px 9px; overflow-wrap: anywhere; }
.fx-aud2 span { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; color: #7a8fb0; }
@media (max-width: 560px) { .fx-aud2 { grid-template-columns: 1fr; } }
/* WhatsApp */
.fx-chat { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.fx-chat-h { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: #075e54; color: #fff; }
.fx-wa-ico { width: 34px; height: 34px; border-radius: 50%; background: #25d366; display: grid; place-items: center; font-size: 17px; flex: none; }
.fx-chat-t { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.fx-chat-t small { color: #cfe9e4 !important; }
.fx-wa-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; background: rgba(255, 255, 255, .14); padding: 4px 10px; border-radius: 999px; }
.fx-wa-st i { width: 8px; height: 8px; border-radius: 50%; background: #cbd5e1; }
.fx-wa-st.on i { background: #4ade80; box-shadow: 0 0 0 3px rgba(74, 222, 128, .25); }
.fx-wa-st.off i { background: #f87171; }
.fx-msgs { height: 440px; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 6px; background: #efe7dd; }
@media (max-width: 1100px) { .fx-msgs { height: 380px; } }
.fx-msgs-vazio { margin: auto; text-align: center; color: #6b7a8f; font-size: 13px; display: flex; flex-direction: column; align-items: center; gap: 8px; max-width: 260px; }
.fx-msgs-vazio svg { font-size: 28px; opacity: .5; }
.fx-dia { align-self: center; background: #e1f2fb; color: #3c5277; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 8px; margin: 6px 0; }
.fx-msg { max-width: 82%; padding: 7px 10px 5px; border-radius: 10px; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); font-size: 14px; line-height: 1.4; }
.fx-msg.in { align-self: flex-start; background: #fff; border-top-left-radius: 2px; }
.fx-msg.out { align-self: flex-end; background: #d9fdd3; border-top-right-radius: 2px; }
.fx-msg.pend { opacity: .6; }
.fx-msg.falhou { background: #fdecec; }
.fx-msg-t { overflow-wrap: anywhere; color: #111b21; }
.fx-msg-m { font-size: 11px; color: #667781; text-align: right; margin-top: 2px; }
.fx-wa-off { padding: 14px; border-top: 1px solid #e3e8ef; background: #fff8f0; }
.fx-wa-off b { display: flex; align-items: center; gap: 6px; color: #9a3412; }
.fx-wa-off p { margin: 6px 0 10px; font-size: 13px; color: #5b7196; }
.fx-off-b { display: flex; flex-wrap: wrap; gap: 8px; }
.fx-tpl { display: flex; gap: 6px; flex-wrap: wrap; padding: 10px 12px 0; border-top: 1px solid #e3e8ef; }
.fx-tpl[hidden] { display: none; }
.fx-tpl button { border: 1px solid #cde5d6; background: #f2fbf5; color: #166534; border-radius: 999px; padding: 4px 10px; font-size: 12px; cursor: pointer; }
.fx-send { display: flex; gap: 8px; align-items: flex-end; padding: 10px 12px 12px; }
.fx-send[hidden] { display: none; }
.fx-send textarea { flex: 1; resize: none; min-height: 44px; max-height: 140px; }
.fx-send .btn { height: 44px; width: 48px; display: grid; place-items: center; padding: 0; font-size: 18px; }
.fx-semtel { padding: 12px 14px; margin: 0; }
/* modais */
.modal.fx-modal-md { width: min(720px, calc(100vw - 32px)); max-width: none; }
/* (a linha antiga do orçamento .fx-it saiu: hoje é .fx-it2, no bloco "Orçamento" mais abaixo; o botão × continua) */
.fx-it-x { border: 1px solid #f0c4bf; background: #fff; color: #b42318; border-radius: 8px; height: 34px; cursor: pointer; font-size: 18px; line-height: 1; }
.fx-tot { text-align: right; font-size: 15px; margin: 6px 0 10px; }
.fx-cc-orig { display: flex; justify-content: space-between; align-items: center; background: #f5f8fe; border: 1px solid #e1eaf7; border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.fx-cc-orig b { font-family: "Exo 2", system-ui, sans-serif; font-size: 18px; color: var(--navy); }
.fx-cc-its { border: 1px solid #e1eaf7; border-radius: 10px; padding: 8px 12px 10px; margin: 0 0 10px; }
.fx-cc-its legend { font-size: 12px; font-weight: 700; color: #5b7196; padding: 0 4px; }
.fx-cc-its .check-line { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.fx-cc-its .check-line span { flex: 1; }
.fx-cc-soma { text-align: right; font-size: 13px; color: #5b7196; border-top: 1px dashed #d9e6f7; padding-top: 6px; margin-top: 4px; }
.fx-qr ol { margin: 0 0 10px; padding-left: 18px; line-height: 1.6; }
.fx-qr-img { display: grid; place-items: center; min-height: 260px; }
.fx-qr-img img { width: 260px; height: 260px; image-rendering: pixelated; }
.fx-qr-demo { display: grid; grid-template-columns: repeat(11, 20px); gap: 2px; padding: 10px; background: #fff; border: 1px solid #e3e8ef; }
.fx-qr-demo i { width: 20px; height: 20px; background: #eef1f6; }
.fx-qr-demo i.p { background: #111b21; }.fu-tbl a.fu-nome { display: inline; }
.side-meta[hidden] { display: none !important; }
.fu-sm { margin-top: 8px; }
.fu-sm-h { display: flex; justify-content: space-between; gap: 8px; font-size: 12px; color: #e8f2ff; }
.fu-sm-h span { color: #8fffc1; font-weight: 700; }
.fu-sm .meta-bar { margin: 4px 0 2px; height: 5px; }
.fu-sm-d { font-size: 11px; color: #9fb9e0; }/* Visão geral: cards clicáveis e lista de pacientes */
.ov-kpi.ov-click { cursor: pointer; transition: transform .15s, box-shadow .15s; }
.ov-kpi.ov-click:hover, .ov-kpi.ov-click:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0, 40, 120, .14); outline: none; }
.ov-kpi-go { margin-left: auto; font-size: 12px; font-weight: 600; color: #1a6bff; opacity: 0; transition: opacity .15s; }
.ov-kpi.ov-click:hover .ov-kpi-go, .ov-kpi.ov-click:focus-visible .ov-kpi-go { opacity: 1; }
@media (hover: none) { .ov-kpi-go { opacity: 1; } }
.ovd-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.ovd-busca { flex: 0 1 320px; }
.ovd-nome { display: block; font-weight: 700; color: var(--navy); text-decoration: none; }
.ovd-nome:hover { color: #1a6bff; text-decoration: underline; }
.ovd-st { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.ovd-st.s-ok { background: #e5f7ec; color: #15803d; }
.ovd-st.s-bad { background: #fdecec; color: #b42318; }
.ovd-st.s-ag { background: #f1eaff; color: #6d28d9; }
.ovd-st.s-warn { background: #fff3e0; color: #c2410c; }
.ovd-st.s-n { background: #eef1f6; color: #475467; }
/* Luz da S.O.F.I.A: contorno roxo */
.ia-pill { border: 1.5px solid #8b3dff; box-shadow: 0 0 10px rgba(139, 61, 255, .45); }
.ia-pill:hover { border-color: #a974ff; }
/* tabelas da Visão geral não empurram a página para o lado no celular */
.ov-row > * { min-width: 0; }
/* Acesso > Editar: excluir acesso */
.acc-del { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 12px 14px; border: 1px solid #f5c2bd; border-radius: 12px; background: #fff7f6; }
.acc-del > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 220px; }
.acc-del b { color: #b42318; }
.acc-del small { color: #7a4a45; font-size: 12.5px; }
.acc-del-conf ul { margin: 6px 0 10px; padding-left: 20px; line-height: 1.6; }/* Agendar/Remarcar: "Já enviei a confirmação" */
.check-line.sem-envio { align-items: flex-start; gap: 10px; margin: 6px 0 10px; padding: 10px 12px; border: 1px solid #e0d4fb; border-radius: 12px; background: #f8f4ff; cursor: pointer; }
.check-line.sem-envio input { margin-top: 3px; }
.check-line.sem-envio span { display: flex; flex-direction: column; gap: 2px; }
.check-line.sem-envio b { color: #5b21b6; }
.check-line.sem-envio small { color: #5b7196; font-size: 12.5px; line-height: 1.4; }/* Perfil Follow-up (só Agenda por enquanto) */
.mstats.four { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 760px) { .mstats.four { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px) { .mstats.four { grid-template-columns: repeat(2, 1fr); } }
.mstat.m-role-followup { --c: #7c3aed; }
.chip.role-followup { background: #f1eaff; color: #6d28d9; }/* Follow-up: unidade escolhida (sem "Resultado por clínica") */
.fu-row.fu-row-un { grid-template-columns: 1.4fr 1fr; }
@media (max-width: 1200px) { .fu-row.fu-row-un { grid-template-columns: 1fr 1fr; } .fu-row.fu-row-un .card:first-child { grid-column: auto; } }
@media (max-width: 720px) { .fu-row.fu-row-un { grid-template-columns: 1fr; } }
/* Regra dos 70% (pílula) */
.cm-pill { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.cm-pill.ok { background: #e5f7ec; color: #15803d; }
.cm-pill.no { background: #fdecec; color: #b42318; }
/* Janela "Comissão do Follow-up" */
.cm-ctx { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: -4px 0 14px; color: #3c5277; font-size: 15px; }
.cm-quem { display: inline-flex; align-items: center; gap: 7px; color: #1a4fd6; }
.cm-quem b { color: var(--navy); }
.cm-dot { color: #9fb2cf; }
.cm-sel { display: inline-flex; align-items: center; gap: 6px; color: #1a6bff; border: 1px solid #d9e6f7; border-radius: 10px; padding: 2px 4px 2px 10px; background: #fff; cursor: pointer; }
.cm-sel:hover { border-color: #1a6bff; }
.cm-sel select { border: 0 !important; background: transparent; width: auto !important; font-weight: 700; color: var(--navy); padding: 6px 4px; cursor: pointer; }
.cm-sel select:disabled { cursor: default; opacity: 1; -webkit-appearance: none; appearance: none; }
.cm-tab { max-height: 46vh; overflow: auto; }
.cm-tab .fu-nome { display: block; font-weight: 700; color: var(--navy); text-decoration: none; }
.cm-tab .fu-nome:hover { color: #1a6bff; text-decoration: underline; }
.cm-tab td small { display: block; }
.cm-tab tfoot td { border-top: 2px solid #d9e6f7; background: #f5f8fe; position: sticky; bottom: 0; }
/* Rodapé da comissão: regra dos 70% + comissão (os totais ficam só no rodapé da tabela) */
.cm-rodape { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 10px; margin-top: 14px; }
@media (max-width: 860px) { .cm-rodape { grid-template-columns: 1fr; } }
.cm-tot, .cm-com { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px; background: #f5f8fe; border: 1px solid #e1eaf7; }
.cm-tot span, .cm-com span { font-size: 12.5px; color: #5b7196; }
.cm-tot b { font-family: "Exo 2", system-ui, sans-serif; font-size: 18px; color: var(--navy); font-variant-numeric: tabular-nums; }
.cm-com b { font-family: "Exo 2", system-ui, sans-serif; font-size: 24px; color: #15803d; font-variant-numeric: tabular-nums; }
.cm-com small { font-size: 12px; color: #5b7196; }
.cm-regra { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; }
.cm-regra.ok { background: #e9f9ef; border: 1px solid #b7e4c7; }
.cm-regra.no { background: #fdf0ef; border: 1px solid #f5c2bd; }
.cm-ico { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; color: #fff; flex: none; }
.cm-regra.ok .cm-ico { background: #16a34a; }
.cm-regra.no .cm-ico { background: #dc2626; }
.cm-regra > div { display: flex; flex-direction: column; min-width: 0; }
.cm-pct { font-family: "Exo 2", system-ui, sans-serif; font-size: 26px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.cm-regra.ok .cm-pct, .cm-regra.ok .cm-rl { color: #15803d; }
.cm-regra.no .cm-pct, .cm-regra.no .cm-rl { color: #b42318; }
.cm-rl { font-weight: 800; font-size: 14px; }
.cm-regra small { font-size: 12px; color: #5b7196; }
.cm-foto { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; }
/* Quadro lateral individual */
.fu-ind { margin-top: 6px; }
.fu-ind + .fu-ind { border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 8px; }
.fu-ind.fu-click { cursor: pointer; border-radius: 10px; }
.fu-ind.fu-click:hover { background: rgba(255, 255, 255, .06); }
.fu-ind-quem { font-size: 13px; font-weight: 700; color: #fff; margin: 4px 0 2px; }
.fu-sm.fu-click { cursor: pointer; border-radius: 8px; }
.fu-sm.fu-click:hover { background: rgba(255, 255, 255, .06); }
/* Ficha: dados do paciente */
.fx-dados-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.fx-dados-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 14px; }
@media (max-width: 720px) { .fx-dados-2 { grid-template-columns: 1fr 1fr; } .fx-dados-4 { grid-template-columns: 1fr 1fr; } }@media (max-width: 600px) { .cm-dot { display: none; } .cm-ctx { flex-direction: column; align-items: flex-start; } }
.cm-regra.nd { background: #f5f8fe; border: 1px solid #e1eaf7; }
.cm-regra.nd .cm-ico { background: #9fb2cf; }
.cm-regra.nd .cm-pct, .cm-regra.nd .cm-rl { color: #5b7196; }
/* Tarefas: próxima tarefa clicável (abre a conversa do paciente) */
.focus-title-link { color: inherit; text-decoration: none; }
.focus-title-link:hover { color: var(--info); text-decoration: underline; }
.focus-name { text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 4px; text-decoration-color: #9fb9e0; }
.focus-name:hover { text-decoration-style: solid; text-decoration-color: currentColor; }
.focus-ver { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--info); text-decoration: none; }
.focus-ver:hover { text-decoration: underline; }/* Tarefas: linha da fila clicável (abre no quadro "Próxima tarefa") */
.q-row[data-q] { cursor: pointer; transition: background .15s, box-shadow .15s; }
.q-row[data-q]:hover { background: #f3f7ff; box-shadow: inset 3px 0 0 var(--info); }
.q-row.q-focus { background: #f5f1ff; }
.q-lead { font-weight: 600; }
/* Follow-up (colaborador): agendados para hoje */
.fu-hoje .card-head { align-items: baseline; }
.fu-hoje-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; max-height: 250px; overflow-y: auto; }
.fu-hoje-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #e1eaf7; border-radius: 12px; text-decoration: none; color: inherit; background: #fff; transition: border-color .15s, background .15s; }
.fu-hoje-item:hover { border-color: #1a6bff; background: #f3f7ff; }
.fu-hoje-av { width: 34px; height: 34px; border-radius: 50%; flex: none; display: grid; place-items: center; font-family: "Exo 2", system-ui, sans-serif; font-weight: 800; font-size: 13px; color: #fff; background: linear-gradient(135deg, #1a6bff, #1a4fd6); }
.fu-hoje-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.fu-hoje-txt b { color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fu-hoje-txt small { color: #5b7196; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fu-hoje-dir { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex: none; }
.fu-hoje-dir b { font-size: 13px; color: var(--navy); font-variant-numeric: tabular-nums; }
.fu-hoje-dir .fu-st { font-size: 11px; padding: 2px 8px; }
.fu-hoje-atraso { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; font-size: 12.5px; color: #b42318; }.fu-ind-quem { display: flex; align-items: center; gap: 6px; }
.fu-ind-quem svg { flex: none; color: #8fc8ff; }
.fu-sel-fixa { padding: 10px 14px; cursor: default; }
.fu-sel-fixa b { color: var(--navy); }
/* Confirmação do dia: cancelados continuam na lista */
.cf-chip.cf-cancel { background: #fdecec; color: #b42318; }
.conf-row.conf-cancel { background: #fff8f7; }
.conf-row.conf-cancel .conf-time, .conf-row.conf-cancel .conf-main b { color: #8a5a55; }
.conf-row.conf-cancel .conf-time { text-decoration: line-through; text-decoration-color: rgba(180, 35, 24, .5); }
.conf-motivo { margin-top: 2px; }
.cf-cancel-btn { color: #b42318; border-color: #f0c4bf; }
.cf-cancel-btn:hover { background: #fdecec; }
.cc-motivos { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }/* Confirmação do dia: remarcados / cancelaram e data */
.cf-dia { width: auto !important; padding: 6px 8px; }
.cf-hist { cursor: pointer; border: 0; font: inherit; }
.cf-hist:disabled { cursor: default; opacity: .55; }
.cf-hist:not(:disabled):hover { filter: brightness(.96); text-decoration: underline; }
.cf-chip.cf-rem { background: #fff3e0; color: #c2410c; }
.hd-tbl td small { display: block; }
.hd-tbl s { color: #8a9ab3; }/* Aviso de saída por inatividade */
.inat-aviso { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 16px; background: rgba(6, 20, 50, .55); }
.inat-card { width: min(420px, 100%); background: #fff; border-radius: 16px; padding: 22px 22px 18px; box-shadow: 0 20px 50px rgba(0, 20, 60, .35); text-align: center; }
.inat-card h3 { margin: 0 0 8px; font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-size: 20px; }
.inat-card p { margin: 0 0 16px; color: #3c5277; line-height: 1.5; }
.inat-seg { font-size: 18px; color: #b42318; font-variant-numeric: tabular-nums; }
/* Unidade selecionada (Visão geral) e identificação nas outras telas */
.ov-ctrls { display: flex; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.un-range .range-btn > span:not(.caret) { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.un-pop { min-width: 250px; left: 0; right: auto; max-width: calc(100vw - 32px); } /* v194: abre para a direita (antes saía da tela pela esquerda) */
.ph-tit { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.un-tag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: #eef4ff; color: #1d3b73; font-size: 12.5px; font-weight: 600; text-decoration: none; border: 1px solid #d6e3fb; white-space: nowrap; }
.un-tag:hover { background: #e2ecff; }
.un-tag .ico { width: 14px; height: 14px; }
.chip.un-chip { background: #eef4ff; color: #1d3b73; border: 1px solid #d6e3fb; font-weight: 600; }
.wk-un { font-weight: 700; color: #1d3b73; }
.un-sec-tit { display: flex; align-items: center; gap: 8px; margin: 18px 0 8px; font-family: "Exo 2", system-ui, sans-serif; font-weight: 700; font-size: 16px; color: var(--navy); }
.un-sec-tit:first-child { margin-top: 0; }
.meta-un { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 4px; }
.meta-un li { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: baseline; font-size: 12.5px; }
.meta-un small { opacity: .75; }
.meta-un b { font-variant-numeric: tabular-nums; }
.meta-det { width: 100%; margin-top: 4px; }
@media (max-width: 620px) { .ov-ctrls { width: 100%; } .un-range .range-btn > span:not(.caret) { max-width: 180px; } }

/* CRC: unidade fixa ao lado do período (não é seletor) */
.range-btn.un-fixa { cursor: default; }
.range-btn.un-fixa:hover { box-shadow: none; }

/* Follow-up: campo obrigatorio pendente (Novo registro) */
.field.fu-falta input, .field.fu-falta select { border-color: #d92d20 !important; box-shadow: 0 0 0 3px rgba(217, 45, 32, .14); }
.field.fu-falta > span { color: #b42318; }
.fu-falta-msg { display: block; margin-top: 4px; color: #b42318; font-size: 12px; font-weight: 600; }

/* Selo "Ja e paciente" (compareceu a uma avaliacao) */
.chip.ja-pac { display: inline-flex; align-items: center; gap: 4px; background: #e7f6ec; color: #146c3a; border: 1px solid #b9e4c8; font-weight: 700; }
.chip.ja-pac .ico { width: 13px; height: 13px; }
.pac-ico { display: inline-flex; vertical-align: -2px; color: #16a34a; }
.pac-ico .ico { width: 13px; height: 13px; }

/* Retornos do Follow-up na Agenda (SQL 072) */
.comp-card { border-left: 4px solid #7c3aed; }
.comp-card h2 { display: flex; align-items: center; gap: 8px; }
.comp-card h2 .ico { width: 18px; height: 18px; color: #7c3aed; }
.comp-item { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-top: 1px solid #eef1f7; cursor: pointer; border-radius: 8px; }
.comp-item:hover, .comp-item:focus-visible { background: #f6f1ff; outline: none; }
.comp-hora { font-weight: 800; color: #4c1d95; min-width: 48px; font-variant-numeric: tabular-nums; }
.comp-main { flex: 1; min-width: 0; }
.comp-go { color: #7c3aed; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.chip.comp-chip { background: #f3ecff; color: #5b21b6; border: 1px solid #ddd0fb; font-weight: 700; }
.week-item.comp { background: #f3ecff; color: #4c1d95; border-left: 3px solid #7c3aed; cursor: pointer; }
.week-item.comp .ico { width: 12px; height: 12px; vertical-align: -2px; }
.fu-dh { display: flex; gap: 6px; }
.fu-dh input[type=date] { flex: 1.4; min-width: 0; }
.fu-dh input[type=time] { flex: 1; min-width: 0; }
/* Confirmacao do dia: desfazer marcacao errada */
.cf-undo { border: 0; background: none; color: #1a6bff; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; padding: 2px 6px; border-radius: 6px; }
.cf-undo:hover { background: #eaf2ff; text-decoration: underline; }

/* Follow-up: Orcamento pendente (paciente cadastrado, orcamento inicial ainda nao lancado) */
.fu-st.s-p { background: #fff4e0; color: #b45309; border: 1px solid #fbd9a5; }
.fx-banner.pend { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: #fff7e8; border: 1px solid #fbd9a5; color: #7c4a03; }
.fx-banner.pend > span { flex: 1; min-width: 220px; }
.fx.fx-pendente > *:not(.fx-top):not(.fx-banner.pend):not(.fx-head) { pointer-events: none; opacity: .5; filter: grayscale(.25); user-select: none; }
.fx.fx-pendente .fx-head .fx-acts { pointer-events: none; opacity: .5; }
.fx-pend-aviso { display: flex; gap: 8px; align-items: flex-start; background: #fff7e8; border: 1px solid #fbd9a5; color: #7c4a03; border-radius: 10px; padding: 10px 12px; font-size: 13px; margin: 0 0 12px; }
.fx-pend-aviso .ic { flex: none; margin-top: 2px; }
.fu-pend-link { font-weight: 700; color: #b45309; white-space: nowrap; }
/* Fluxo novo da CRC: Recuperacao */
.chip.rc-mot { font-weight: 700; }
.chip.rc-f { background: #fdecec; color: #b42318; border: 1px solid #f6c9c6; }
.chip.rc-c { background: #fff1e6; color: #c2410c; border: 1px solid #fbd0b0; }
.chip.rc-s { background: #eef1f6; color: #475467; border: 1px solid #d5dbe5; }
.rc-prog { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.rc-tent { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 700; color: #1d3b73; }
.rc-tent i { width: 10px; height: 10px; border-radius: 50%; background: #e3e8f1; border: 1px solid #c8d2e3; display: inline-block; }
.rc-tent i.on { background: #1a6bff; border-color: #1a6bff; }
.chip.frio-chip { background: #e8f1fb; color: #1e4f8a; border: 1px solid #c6dbf3; }
.chip.ok-chip { background: #e7f6ec; color: #146c3a; border: 1px solid #b9e4c8; }
.rc-res { display: grid; gap: 8px; margin: 6px 0 10px; }
.rc-res .check-line small { display: block; color: #667085; font-weight: 500; }

/* Orçamento: Especialidade | Qtd. | Procedimento | Dente ou arcada | Valor */
.modal.orc-modal { width: min(1080px, 96vw); max-width: 96vw; }
.fx-its2-h, .fx-it2 { display: grid; grid-template-columns: 170px 60px minmax(180px, 1fr) 170px 130px 32px; gap: 8px; align-items: start; }
.fx-its2-h { font-size: 11px; font-weight: 700; text-transform: uppercase; color: #7a8fb0; margin: 8px 0 4px; }
.fx-its2 { display: grid; gap: 10px; margin-bottom: 10px; }
.fx-it2 { padding-bottom: 8px; border-bottom: 1px dashed #e3e9f3; }
.fx-it2 .i-qtd { text-align: center; }
.fx-it2 .i-proc { display: grid; gap: 6px; min-width: 0; }
.fx-it2 .i-var { display: flex; flex-wrap: wrap; gap: 6px; }
.fx-it2 .i-var:empty { display: none; }
.fx-it2 .i-v { border: 1px solid #c9d6ec; background: #fff; color: #1d3b73; border-radius: 8px; padding: 5px 10px; font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.fx-it2 .i-v:hover { border-color: #1a6bff; }
.fx-it2 .i-v.sel { background: #1a6bff; border-color: #1a6bff; color: #fff; }
.fx-it2 .i-var.erro .i-v { border-color: #d92d20; }
.fx-it2 .i-dente { min-height: 38px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 6px 10px; border: 1px solid #d9e2ef; border-radius: 10px; background: #f8fafd; font-weight: 700; color: #1d3b73; font-size: 13px; font-variant-numeric: tabular-nums; }
.fx-it2 .i-dente.dente { cursor: pointer; background: #fff; }
.fx-it2 .i-dente.dente:hover, .fx-it2 .i-dente.dente:focus { border-color: #1a6bff; outline: none; box-shadow: 0 0 0 3px rgba(26, 107, 255, .12); }
.fx-it2 .erro { border-color: #d92d20 !important; box-shadow: 0 0 0 3px rgba(217, 45, 32, .12); }
.fx-it2 .i-dente.erro { background: #fff5f4; color: #b42318; }
.fx-it2 .i-msg { grid-column: 1 / -1; color: #b42318; font-size: 12px; font-weight: 600; margin-top: -2px; }
@media (max-width: 760px) {
  .fx-its2-h { display: none; }
  .fx-it2 { grid-template-columns: 1fr 70px; }
  .fx-it2 .i-proc, .fx-it2 .i-dente { grid-column: 1 / -1; }
}
/* Odontograma flutuante (seletor temporário) */
.odonto { position: fixed; z-index: 400; background: #fff; border: 1px solid #c9d6ec; border-radius: 14px; box-shadow: 0 18px 40px -14px rgba(0, 40, 130, .45); padding: 10px 12px 12px; }
.odonto .od-h { font-size: 12.5px; font-weight: 700; margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.odonto .od-h.no { color: #b42318; }
.odonto .od-h.ok { color: #146c3a; }
.odonto .od-lbl { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #7a8fb0; text-align: center; margin: 2px 0; }
.odonto .od-row { display: flex; gap: 3px; align-items: center; }
.odonto .od-row + .od-row { margin-top: 4px; padding-top: 4px; border-top: 1px solid #e3e9f3; }
.odonto .od-mid { width: 1px; align-self: stretch; background: #c9d6ec; margin: 0 4px; }
.odonto .od-d { width: 30px; height: 34px; border: 1px solid #c9d6ec; border-radius: 8px 8px 12px 12px; background: #fff; color: #1d3b73; font: 700 11.5px/1 Montserrat, system-ui, sans-serif; cursor: pointer; padding: 0; font-variant-numeric: tabular-nums; }
.odonto .od-d:hover { border-color: #1a6bff; background: #eef4ff; }
.odonto .od-d.sel { background: #1a6bff; border-color: #1a6bff; color: #fff; }

/* Orçamento: campos da linha com a mesma aparência (borda, cantos, altura, fundo, hover e foco) */
.fx-it2 .i-esp, .fx-it2 .i-qtd, .fx-it2 .i-nome, .fx-it2 .i-valor, .fx-it2 .i-dente {
  box-sizing: border-box; width: 100%; min-height: 40px; margin: 0;
  border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--text);
  padding: 8px 10px; font-family: inherit; font-size: 14px; line-height: 1.3;
  transition: border-color .15s, box-shadow .15s;
}
.fx-it2 .i-esp, .fx-it2 .i-qtd, .fx-it2 .i-nome, .fx-it2 .i-valor { height: 40px; }
.fx-it2 .i-dente { padding: 5px 10px; }
.fx-it2 .i-esp:hover, .fx-it2 .i-qtd:hover, .fx-it2 .i-nome:hover, .fx-it2 .i-valor:hover, .fx-it2 .i-dente.dente:hover { border-color: #b7c7de; }
.fx-it2 .i-esp:focus, .fx-it2 .i-qtd:focus, .fx-it2 .i-nome:focus, .fx-it2 .i-valor:focus, .fx-it2 .i-dente.dente:focus,
.fx-it2 .i-nome[aria-expanded="true"] { outline: none; border-color: var(--neon-2); box-shadow: 0 0 0 3px rgba(0, 148, 254, .22); }
/* Lista de procedimentos: continuação do campo (mesma largura, clara) */
.sg-lista { position: fixed; z-index: 400; box-sizing: border-box; max-height: 280px; overflow-y: auto; padding: 4px;
  background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 12px 28px -10px rgba(0, 40, 130, .28); }
.sg-lista .sg-i { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; width: 100%; text-align: left;
  border: 0; background: transparent; color: var(--text); border-radius: 6px; padding: 8px 10px; cursor: pointer;
  font-family: inherit; font-size: 14px; line-height: 1.3; white-space: normal; overflow-wrap: anywhere; }
.sg-lista .sg-i small { font-size: 11px; font-weight: 600; color: #7a8fb0; text-transform: uppercase; letter-spacing: .03em; }
.sg-lista .sg-i:hover, .sg-lista .sg-i.ativo { background: #eef4ff; }
.sg-lista .sg-i.sel { background: #e3eeff; color: #1a4fd6; font-weight: 600; }
/* Visão geral (fluxo novo): "O que você precisa fazer hoje" — 4 ações, cada uma conta pessoas */
.ov-hoje { margin-bottom: 16px; padding: 22px 22px 20px; border: 1px solid #f6cfcb;
  background: linear-gradient(180deg, #fff5f4 0%, #fffafa 55%, #ffffff 100%); box-shadow: 0 10px 30px -18px rgba(217, 48, 37, .35); }
.hoje-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.hoje-alvo { color: #d93025; flex: none; margin-top: 2px; }
.hoje-alvo svg { width: 30px; height: 30px; stroke-width: 2.4; }
.hoje-head h2 { margin: 0; font-size: 22px; text-transform: uppercase; letter-spacing: .01em; color: var(--navy); }
.hoje-head p { margin: 2px 0 0; color: var(--muted); font-size: 14.5px; }
.hoje-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.hoje { --h: #d93025; --h-2: #b91c1c; --h-bg: #fdecea; --h-card: #fff7f6; display: flex; flex-direction: column; gap: 8px; min-width: 0;
  padding: 18px 18px 16px; border: 1px solid color-mix(in srgb, var(--h) 18%, #fff); border-left: 4px solid var(--h); border-radius: 16px;
  background: linear-gradient(180deg, var(--h-card), #fff 70%); color: var(--text); text-decoration: none; transition: transform .12s, box-shadow .15s; }
.hoje:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -16px color-mix(in srgb, var(--h) 60%, transparent); }
.hoje.h-resp { --h: #e0312b; --h-2: #c41f1a; --h-bg: #fde3e1; --h-card: #fff6f5; }
.hoje.h-conf { --h: #0a6cf0; --h-2: #0052cc; --h-bg: #e3eeff; --h-card: #f4f8ff; }
.hoje.h-rec  { --h: #f07c0c; --h-2: #e06600; --h-bg: #ffead4; --h-card: #fff8f1; }
.hoje.h-ret  { --h: #e0312b; --h-2: #c41f1a; --h-bg: #fde3e1; --h-card: #fff6f5; }
.hoje-top { display: flex; align-items: center; gap: 16px; }
.hoje-ico { width: 60px; height: 60px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: var(--h-bg); color: var(--h); flex: none; }
.hoje-ico svg { width: 30px; height: 30px; }
.hoje-n { font-family: "Exo 2", system-ui, sans-serif; font-size: 52px; font-weight: 800; line-height: 1; color: var(--h); font-variant-numeric: tabular-nums; }
.hoje-t { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; font-size: 18px; font-weight: 800; color: var(--navy); }
.hoje-seta { color: var(--h); flex: none; display: inline-flex; }
.hoje-seta svg { width: 20px; height: 20px; stroke-width: 2.6; }
.hoje-s { font-size: 14.5px; line-height: 1.45; color: var(--muted); flex: 1; }
.hoje-btn { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 8px; padding: 12px 14px; border-radius: 10px;
  background: linear-gradient(180deg, var(--h), var(--h-2)); color: #fff; font-size: 16px; font-weight: 700; box-shadow: 0 6px 14px -8px var(--h); }
.hoje-btn svg { width: 20px; height: 20px; }
.hoje:hover .hoje-btn { filter: brightness(1.05); }
.hoje.hoje-zero { --h: #6cc093; --h-2: #4fae7c; --h-bg: #e7f6ee; --h-card: #f6fbf8; }
.hoje.hoje-zero .hoje-n { color: #6cc093; }
.hoje.hoje-zero .hoje-btn { background: #eef3f0; color: #5b8a70; box-shadow: none; }
.hoje-faixa { display: flex; align-items: center; gap: 10px; margin-top: 14px; padding: 10px 14px; border-radius: 10px; background: var(--warn-bg); border: 1px solid #f5d49a;
  color: #7a4a00; font-size: 13.5px; text-decoration: none; }
.hoje-faixa svg { width: 16px; height: 16px; flex: none; }
.hoje-faixa > span:first-of-type { flex: 1; min-width: 0; }
.hoje-faixa-go { font-weight: 700; white-space: nowrap; }
.hoje-faixa:hover { filter: brightness(.98); }
@media (max-width: 1200px) { .hoje-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .hoje-grid { grid-template-columns: 1fr; } .hoje-n { font-size: 42px; } .hoje-head h2 { font-size: 18px; } .ov-hoje { padding: 16px; } }
/* Orçamento: total com destaque leve (mesma região, inferior direita) */
.orc-modal .fx-tot { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; width: fit-content; margin: 4px 0 4px auto;
  padding: 8px 16px; border: 1px solid #dbe6f7; border-radius: 10px; background: #f6f9ff; text-align: right; }
.orc-modal .fx-tot span { font-size: 12px; font-weight: 600; color: var(--muted); }
.orc-modal .fx-tot b { font-size: 20px; font-weight: 800; color: var(--navy); font-variant-numeric: tabular-nums; line-height: 1.2; }
/* SQL 089: Nova proposta (coluna de seleção só neste editor) e histórico de propostas */
.orc-proposta-modal .fx-its2-h, .orc-proposta-modal .fx-it2 { grid-template-columns: 28px 170px 60px minmax(180px, 1fr) 170px 130px 32px; }
.orc-proposta-modal .i-sel-h { text-align: center; }
.fx-it2 .i-sel { display: flex; align-items: center; justify-content: center; height: 40px; cursor: pointer; }
.fx-it2 .i-sel input { width: 18px; height: 18px; margin: 0; accent-color: #1a6bff; cursor: pointer; }
.fx-it2.fx-desm { background: #f7f9fc; border-radius: 8px; }
.fx-it2.fx-desm > :not(.i-sel):not(.i-msg) { opacity: .45; }
.fx-it2.fx-it-orig .fx-it-x { visibility: hidden; }
.orc-modal .fx-tot small { font-weight: 600; color: var(--muted); }
.fx-prop-obs { display: block; width: 100%; margin-top: 10px; }
.fx-prop-obs textarea { box-sizing: border-box; width: 100%; min-height: 110px; resize: vertical; }
.fx-prop-obs textarea[name=motivo] { min-height: 60px; }
.fx-prop-obs .fx-obs-n { display: block; text-align: right; margin-top: 2px; }
.fx-conferir { display: flex; gap: 8px; align-items: flex-start; background: #fff8e6; border: 1px solid #f5d49a; color: #7a4a00; border-radius: 10px; padding: 8px 12px; margin: 8px 0; }
.fx-conferir svg { width: 16px; height: 16px; flex: none; margin-top: 1px; }
.fx-versao { font-size: 13px; font-weight: 600; }
.fx-resumo .fx-neutro { color: #5b7196; }
.fx-resumo .fx-nenhuma { font-family: inherit; font-size: 14px; color: #7a8fb0; }
.fx-resumo .fx-ultprop { justify-content: center; align-items: center; }
.fx-resumo .fx-ultprop .btn { align-self: center; }
.fx-cc-versao { margin: 4px 0 8px; }
.fx-hp h4 { margin: 16px 0 6px; color: var(--navy); font-size: 15px; }
.fx-hp > h4:first-child { margin-top: 0; }
.fx-hp-tbl tr.fx-hp-atual td { background: #f2f7ff; }
.fx-selo { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #eef2f8; color: #3c5378; margin-left: 4px; vertical-align: middle; }
.fx-selo.atual { background: #1a6bff; color: #fff; }
.fx-selo.ant { background: #f1f1f4; color: #5f6470; }
.fx-selo.conf { background: #fff1d6; color: #8a5a00; }
.fx-hp-vazio { color: var(--muted); background: #f8fafd; border: 1px dashed #d9e2ef; border-radius: 10px; padding: 12px; }
.fx-hp-cab h4 { margin: 8px 0 2px; }
.fx-hp-obs { margin-top: 10px; background: #f8fafd; border: 1px solid #e3e9f3; border-radius: 10px; padding: 10px 12px; }
.fx-hp-obs span { display: block; font-size: 12px; font-weight: 700; color: #5b7196; margin-bottom: 4px; }
.fx-hp-obs p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .orc-proposta-modal .fx-it2 { grid-template-columns: 34px 1fr 70px; }
  .orc-proposta-modal .fx-it2 .i-sel { grid-column: 1; grid-row: 1; }
  .orc-proposta-modal .fx-it2 .i-esp { grid-column: 2; }
  .orc-proposta-modal .fx-it2 .i-proc, .orc-proposta-modal .fx-it2 .i-dente { grid-column: 2 / -1; }
  .orc-proposta-modal .fx-it2 .i-valor { grid-column: 2; }
  .orc-proposta-modal .fx-it2 .fx-it-x { grid-column: 3; }
}
/* Visão geral: comparecimentos no período (leads do período + retroativos = total da meta) */
.ov-comp { margin-bottom: 16px; padding: 14px 18px; cursor: pointer; transition: box-shadow .15s; }
.ov-comp:hover, .ov-comp:focus-visible { box-shadow: 0 8px 20px -12px rgba(0, 60, 170, .35); outline: none; }
.ov-comp-t { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; color: var(--navy); }
.ov-comp-t svg { width: 18px; height: 18px; color: var(--ok); }
.ov-comp-g { display: flex; align-items: stretch; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.ov-comp-g > div { flex: 1 1 180px; display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafd; }
.ov-comp-g > div span { font-size: 12.5px; color: var(--muted); }
.ov-comp-g > div b { font-size: 24px; font-family: "Exo 2", system-ui, sans-serif; color: var(--navy); font-variant-numeric: tabular-nums; }
.ov-comp-g > i { align-self: center; font-style: normal; font-weight: 800; color: var(--muted); }
.ov-comp-g .ov-comp-tot { background: var(--ok-bg); border-color: #bfe3cc; }
.ov-comp-g .ov-comp-tot b { color: var(--ok); }
.ov-comp-n { margin: 8px 0 0; }
@media (max-width: 640px) { .ov-comp-g > i { display: none; } }
/* Confirmação no padrão do CRM (substitui a caixa nativa do navegador) */
.confirm-back { position: fixed; inset: 0; z-index: 600; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(1, 8, 37, .45); }
.confirm-box { width: min(440px, 100%); background: #fff; border-radius: 14px; padding: 20px 20px 16px; box-shadow: 0 24px 60px -20px rgba(0, 20, 80, .55); }
.confirm-tit { margin: 0 0 6px; font-weight: 700; font-size: 16px; color: var(--navy); }
.confirm-txt { margin: 0 0 4px; color: var(--muted); font-size: 14px; line-height: 1.45; }
.confirm-bts { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
/* Aviso "alterações não salvas" dentro da janela */
.modal-descartar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 16px 8px; padding: 8px 12px; border-radius: 10px; background: var(--warn-bg); border: 1px solid #f5d49a; color: #7a4a00; font-size: 13.5px; }
.modal-descartar[hidden] { display: none; }
.modal-descartar span { flex: 1; min-width: 160px; font-weight: 600; }
/* Follow-up: busca de paciente do Agendamento (vínculo por identificador) e CPF pendente */
.fu-vinc-info { margin: 0 0 10px; color: var(--info); display: flex; align-items: center; gap: 6px; }
.fu-vinc-info svg { width: 15px; height: 15px; }
.fu-cpf-pend { margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: var(--warn-bg); border: 1px solid #f5d49a; color: #7a4a00; display: flex; align-items: center; gap: 6px; }
.fu-cpf-pend svg, .fu-cpf-pend-tx svg { width: 15px; height: 15px; flex: none; }
.fu-cpf-pend-tx { color: #b26b00; display: inline-flex; align-items: center; gap: 4px; }
.ov-comp-g .ov-comp-conf { background: var(--warn-bg); border-color: #f5d49a; }
.ov-comp-g .ov-comp-conf b { color: var(--warn); }
.ov-comp-aviso { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; padding: 8px 10px; border-radius: 8px; background: var(--warn-bg); color: #7a4a00; font-size: 13px; }
.ov-comp-aviso svg { width: 15px; height: 15px; flex: none; }
/* Comissão: indisponível (falha de consulta) e simulação da demonstração */
.cm-indisp { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 12px 14px; border-radius: 10px; background: var(--warn-bg); border: 1px solid #f5d49a; color: #7a4a00; }
.cm-indisp svg { width: 18px; height: 18px; flex: none; }
.cm-indisp span { flex: 1; min-width: 200px; }
.cm-sim { display: flex; align-items: center; gap: 6px; margin: 0 0 10px; padding: 6px 10px; border-radius: 8px; background: #f5f8fe; border: 1px dashed #c9d6ec; color: #5b7196; }
.cm-sim svg { width: 15px; height: 15px; flex: none; }
.cm-pill.nd { background: #eef1f5; color: #667085; }
/* ===== v191 (SQL 081): pendências, resultados, busca global, encaminhamento e mensagens de falta ===== */
.mstats.four.roles-6 { grid-template-columns: repeat(6, 1fr); }
@media (max-width: 900px) { .mstats.four.roles-6 { grid-template-columns: repeat(3, 1fr); } }
.mstat.m-role-gestor { --c: #0e7490; }
.chip.role-gestor { background: #e0f2f7; color: #0e7490; }
.out-obs { min-width: 180px; flex: 1 1 200px; padding: 7px 10px; }
.focus-result { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.task-res { color: #1f5f3a; margin-top: 2px; }
.chip.msg-falta { display: inline-flex; align-items: center; gap: 4px; }
.chip.msg-conferir { background: #fff4d6; color: #8a5a00; border: 1px solid #f1d38a; font-weight: 600; }
.chip.msg-suprimida { background: #eef1f5; color: #52607a; border: 1px solid #d4dbe6; }
.conf-msg { margin-top: 4px; }
.chip.enc-pend { background: #fff4d6; color: #8a5a00; border: 1px solid #f1d38a; }
.recep-alert.enc-alert { background: #fff8e6; border-color: #f1d38a; }
.fw-resumo { margin: 8px 0 12px; padding: 8px 12px; border-radius: 10px; background: #f3f6fb; color: var(--navy); font-size: 14px; }
.fw-st { margin-left: 6px; font-size: 11px; letter-spacing: .04em; padding: 1px 7px; border-radius: 999px; background: #eef1f5; color: #52607a; text-transform: none; }
.fw-st-enviada { background: #e7f6ec; color: #146c3a; }
.fw-st-falhou { background: #fdecec; color: #b42318; }
.fw-st-enviando { background: #e8f0fe; color: #0a3a9e; }
.fw-box.fw-sent { opacity: .75; }
/* SQL 086 (item 7): estado persistido de cada destinatário */
.fw-st-ok { background: #e7f6ec; color: #146c3a; }
.fw-st-fora { background: #eef6e7; color: #3d6b14; }
.fw-st-parcial, .fw-st-incerto { background: #fff4d6; color: #8a5a00; }
.fw-st-andamento { background: #e8f0fe; color: #0a3a9e; }
.fw-st-pendente { background: #eef1f5; color: #52607a; }
.fw-aviso { display: flex; gap: 6px; align-items: flex-start; margin: 6px 0; padding: 6px 10px; border-radius: 8px; background: #fff8e6; border: 1px solid #f1d38a; color: #6b4a00; font-size: 12.5px; line-height: 1.4; }
.fw-aviso .ic { flex: none; margin-top: 2px; }
/* SQL 086 (item 10): meses anteriores da meta da CRC */
.side-meta .meta-hist { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; padding: 3px 0; background: none; border: 0; color: #8fc8ff; font-size: 11.5px; font-weight: 700; cursor: pointer; }
.side-meta .meta-hist:hover { color: #fff; text-decoration: underline; }
.side-meta .meta-hist .ic { width: 13px; height: 13px; }
.mh-cab { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; margin: 10px 0; padding: 10px 12px; border-radius: 10px; background: #f3f6fb; }
.mh-cab.fechado { background: #eef6f1; }
.mh-num { display: flex; flex-direction: column; min-width: 140px; }
.mh-num b { font-family: "Exo 2", system-ui, sans-serif; font-size: 24px; color: var(--navy); line-height: 1.1; }
.mh-num small { color: #52607a; }
.mh-info { flex: 1 1 260px; display: grid; gap: 4px; font-size: 13px; }
.mh-info .ic { width: 14px; height: 14px; vertical-align: -2px; }
.mh-alerta { padding: 6px 10px; border-radius: 8px; background: #fff8e6; border: 1px solid #f1d38a; color: #6b4a00; font-size: 12.5px; }
.mh-ret { margin: 8px 0 10px; padding: 8px 12px; border-radius: 10px; background: #fff; border: 1px dashed #d4dbe6; font-size: 13px; }
.mh-ret ul { margin: 6px 0 0; padding-left: 18px; }
@media (max-width: 600px) { .mh-num { min-width: 0; } }
.chip.fase-recep { background: #e0f7fb; color: #0e7490; border: 1px solid rgba(14, 116, 144, .3); }
/* v194-5 (SQL 104): número da equipe da clínica (Recepção/Follow-up) */
.chip.equipe-chip { background: #fff4e5; color: #8a4b00; border: 1px solid rgba(138, 75, 0, .3); font-weight: 700; }
.chip.comp-chip-data { display: inline-flex; align-items: center; gap: 4px; }
.busca-hint { display: flex; align-items: center; gap: 6px; }
.chip.fase-busca { font-weight: 700; }
.chip.fb-ag { background: #e8f0fe; color: #0a3a9e; }
.chip.fb-rec { background: #fff4d6; color: #8a5a00; }
.chip.fb-pac { background: #e7f6ec; color: #146c3a; }
.chip.fb-si { background: #fdecec; color: #b42318; }
.chip.fb-at { background: #eef1f5; color: #34425c; }
.chip.fb-enc { background: #e8f1fb; color: #1e4f8a; }
.rc-dias { width: auto; display: inline-block; margin: 0 4px; padding: 3px 6px; }

/* =====================================================================
   SQL 092 · Registrar contato e retorno (formulário unificado)
   Estilos exclusivos deste formulário (não mexem nos outros modais).
   ===================================================================== */
.fu-contato-conteudo {
  width: 100%;
  min-width: 0;
}
.fu-contato-conteudo .fu-contato-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 14px;
}
.fu-contato-conteudo .field {
  display: block;
  width: 100%;
  min-width: 0;
  margin-bottom: 12px;
}
.fu-contato-conteudo .field > span {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
  color: var(--muted);
}
.fu-contato-conteudo input[type="date"],
.fu-contato-conteudo input[type="time"],
.fu-contato-conteudo select,
.fu-contato-conteudo textarea {
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
}
.fu-contato-conteudo input[type="date"],
.fu-contato-conteudo input[type="time"],
.fu-contato-conteudo select {
  height: 38px;
}
.fu-contato-conteudo textarea {
  line-height: 1.45;
  resize: vertical;
}
.fu-contato-conteudo textarea[name="t"] {
  min-height: 80px;
}
.fu-contato-conteudo textarea[name="nota"] {
  min-height: 110px;
}
.fu-contato-conteudo .fu-contato-atalhos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 12px;
}
.fu-contato-conteudo .fu-contato-atalhos .btn {
  min-height: 28px;
}
.fu-contato-conteudo .fx-pres {
  margin: -4px 0 12px;
}
.fu-contato-conteudo input:focus,
.fu-contato-conteudo select:focus,
.fu-contato-conteudo textarea:focus {
  outline: none;
  border-color: var(--neon-2);
  box-shadow: 0 0 0 3px rgba(0, 148, 254, .22);
}
@media (max-width: 560px) {
  .fu-contato-conteudo .fu-contato-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Editar dados: retorno só para consulta (muda em Registrar contato) */
.fu-ret-info > div { padding: 8px 0 2px; }

/* =====================================================================
   SQL 092 · Concluir negociação (proposta atual inteira + pagamentos)
   ===================================================================== */
.modal.fu-fechamento-modal {
  width: min(720px, calc(100vw - 32px));
  max-width: none;
}
.fu-fechamento-modal .fu-fechamento-conteudo {
  display: grid;
  gap: 16px;
  min-width: 0;
}
.fu-fechamento-modal .fu-fechamento-quadro {
  border: 1px solid #d9e6f7;
  border-radius: 10px;
  padding: 14px;
  min-width: 0;
}
.fu-fechamento-modal .fu-fechamento-proposta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #f5f8fe;
}
.fu-fechamento-modal .fu-fechamento-proposta > span {
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
}
.fu-fechamento-modal .fu-fechamento-total-v {
  color: var(--navy);
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.fu-fechamento-modal .fu-fechamento-tit {
  margin: 0 0 6px;
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
}
.fu-fechamento-modal .fu-fechamento-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 10px 0;
}
.fu-fechamento-modal .fu-fechamento-item + .fu-fechamento-item {
  border-top: 1px solid #edf2fa;
}
.fu-fechamento-modal .fu-fechamento-quantidade {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 34px;
  padding: 0 6px;
  border-radius: 9px;
  background: #0866ff;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}
.fu-fechamento-modal .fu-fechamento-nome {
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  overflow-wrap: anywhere;
}
.fu-fechamento-modal .fu-fechamento-local {
  margin-top: 3px;
  color: var(--muted);
  font-size: 13px;
}
.fu-fechamento-modal .fu-fechamento-valor {
  color: var(--navy);
  font-weight: 700;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.fu-fechamento-modal .fu-fechamento-soma {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 6px;
  padding-top: 10px;
  border-top: 1px dashed #bdd3f8;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
}
.fu-fechamento-modal .fu-fechamento-dica { margin: 8px 0 0; }
.fu-fechamento-modal .fu-fechamento-pag-linha { margin-bottom: 10px; }
.fu-fechamento-modal .fu-fechamento-pagamento {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.fu-fechamento-modal .fu-fechamento-pagamento .field { margin: 0; min-width: 0; }
.fu-fechamento-modal .fu-fechamento-pagamento .field > span {
  display: block;
  margin-bottom: 4px;
  font-size: 13px;
  color: var(--muted);
}
.fu-fechamento-modal .fu-fechamento-pagamento input,
.fu-fechamento-modal .fu-fechamento-pagamento select,
.fu-fechamento-modal textarea[name="obs"] {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  border: 1px solid #bdd3f8;
  border-radius: 8px;
  padding: 8px 10px;
  background: #fff;
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
}
.fu-fechamento-modal .fu-fechamento-pagamento input,
.fu-fechamento-modal .fu-fechamento-pagamento select {
  height: 38px;
}
.fu-fechamento-modal textarea[name="obs"] {
  display: block;
  min-height: 110px;
  resize: vertical;
  line-height: 1.45;
}
.fu-fechamento-modal .fu-fechamento-pagamento input:focus,
.fu-fechamento-modal .fu-fechamento-pagamento select:focus,
.fu-fechamento-modal textarea[name="obs"]:focus {
  outline: none;
  border-color: var(--neon-2);
  box-shadow: 0 0 0 3px rgba(0, 148, 254, .22);
}
.fu-fechamento-modal .fu-falta input,
.fu-fechamento-modal .fu-falta select { border-color: var(--bad); }
.fu-fechamento-modal .fu-fechamento-rem { margin-top: 4px; padding-left: 0; color: var(--bad); }
.fu-fechamento-modal .fu-fechamento-add {
  background: #fff;
  color: #0866ff;
  border: 1px solid #0866ff;
}
.fu-fechamento-modal .fu-fechamento-add:hover { background: #f5f8fe; }
.fu-fechamento-modal .fu-fechamento-resumo {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 16px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #f7f9fc;
}
.fu-fechamento-modal .fu-fechamento-resumo > div:not(.fu-fechamento-sit) { display: flex; justify-content: space-between; gap: 8px; font-variant-numeric: tabular-nums; }
.fu-fechamento-modal .fu-fechamento-resumo span { color: var(--muted); }
.fu-fechamento-modal .fu-fechamento-sit { grid-column: 1 / -1; font-weight: 600; }
.fu-fechamento-modal .fu-fechamento-ok { color: #12805c; }
.fu-fechamento-modal .fu-fechamento-falta { color: #b45309; }
.fu-fechamento-modal .fu-fechamento-erro { color: var(--bad); }
.fu-fechamento-modal .fu-fechamento-desc-h,
.fx-fch-desc .fu-fechamento-desc-h { display: flex; justify-content: space-between; gap: 12px; color: var(--navy); }
.fu-fechamento-modal .fu-fechamento-desc-s,
.fx-fch-desc .fu-fechamento-desc-s { margin-top: 3px; color: var(--muted); font-size: 13px; }
.fu-fechamento-nd { color: var(--muted); }
.fu-fechamento-acr { color: #b45309; }
.fx-fch-desc { padding: 8px 10px; border: 1px solid #d9e6f7; border-radius: 8px; margin-bottom: 4px; }
.fx-pags { list-style: none; margin: 0; padding: 0; }
.fx-pags li { display: flex; justify-content: space-between; gap: 12px; padding: 2px 0; font-variant-numeric: tabular-nums; }
.fx-pre, .fx-ev-d { white-space: pre-line; }
@media (max-width: 560px) {
  .fu-fechamento-modal .fu-fechamento-pagamento {
    grid-template-columns: minmax(0, 1fr);
  }
  .fu-fechamento-modal .fu-fechamento-item {
    grid-template-columns: 34px minmax(0, 1fr);
  }
  .fu-fechamento-modal .fu-fechamento-valor {
    grid-column: 2;
    justify-self: end;
  }
  .fu-fechamento-modal .fu-fechamento-proposta {
    flex-wrap: wrap;
  }
  .fu-fechamento-modal .fu-fechamento-resumo {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Lista do Follow-up: filtros e "+ Novo registro" na mesma linha (quebra só em telas estreitas) */
.fu-tb #fu-novo { white-space: nowrap; flex: 0 0 auto; }
.fu-tb .fu-f input[type="date"] { width: 128px; }
@media (min-width: 1200px) {
  .fu-tb { flex-wrap: nowrap; }
  .fu-tb .fu-busca { flex: 1 1 140px; min-width: 140px; }
  .fu-tb .fu-busca input { min-width: 0; text-overflow: ellipsis; }
  .fu-tb .fu-f { flex: 0 1 150px; min-width: 88px; }
  .fu-tb .fu-f select { min-width: 0 !important; width: 100% !important; }
  .fu-tb .fu-f:has(input[type="date"]) { flex: 0 0 auto; }
}
/* Títulos que ordenam a lista: seta ▲ crescente / ▼ decrescente na coluna ativa */
.fu-tbl th .fu-ord { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; font: inherit; color: inherit; text-transform: inherit; letter-spacing: inherit; }
.fu-tbl th.num .fu-ord { flex-direction: row; }
.fu-tbl th .fu-ord:hover { color: #1a6bff; }
.fu-tbl th .fu-ord:focus-visible { outline: 2px solid #1a6bff; outline-offset: 2px; border-radius: 4px; }
.fu-tbl th .fu-seta { font-size: 10px; color: #b3c3dc; }
.fu-tbl th .fu-ord.on { color: var(--navy); }
.fu-tbl th .fu-ord.on .fu-seta { color: #1a6bff; }
/* Comissão: o quadro da regra mostra só o percentual e se foi atingida */
.cm-regra .cm-pct { font-size: 24px; }
/* SQL 093: status Faltou (mesma cor da falta na Agenda) e aviso no Registrar contato */
.fu-st.s-f { background: var(--bad-bg); color: var(--bad); border: 1px solid #f3b8b1; }
.fu-faltou-aviso { display: flex; gap: 6px; align-items: flex-start; margin: 0; padding: 8px 10px; border-radius: 10px; background: var(--bad-bg); color: var(--bad); }
.fu-faltou-aviso svg { flex: 0 0 auto; width: 15px; height: 15px; margin-top: 1px; }
.fu-faltou-aviso.fu-faltou-bloq { font-weight: 600; }
.comp-item.comp-faltou .comp-hora { color: var(--bad); }
.week-item.comp.st-no_show { background: var(--bad-bg); color: var(--bad); border-left-color: var(--bad); }

/* Novo registro / Editar dados: campos com a mesma largura e altura; observação ocupa a linha toda */
.fu-form .field { min-width: 0; }
.fu-form .field input, .fu-form .field select { width: 100%; height: 40px; }
.fu-form .field textarea { width: 100%; min-height: 88px; }
/* =====================================================================
   Concluir negociação · visual de referência (proposta, procedimentos, pagamentos, resumo, desconto)
   ===================================================================== */
.fu-fechamento-modal .modal-head { padding: 18px 26px; }
.fu-fechamento-modal .modal-head::after { height: 3px; background: #1a73e8; }
.fu-fechamento-modal .modal-head h3 { font-size: 17px; letter-spacing: .03em; }
.fu-fechamento-modal .modal-body { padding: 22px 26px 8px; }
.fu-fechamento-modal .modal-foot { padding: 16px 26px; gap: 12px; }
.fu-fechamento-modal .modal-foot .btn { min-height: 46px; padding: 0 26px; border-radius: 10px; font-size: 15px; }
.fu-fechamento-modal .modal-foot .btn:not(.ok) { background: #f1f3f7; border: 1px solid #d5dbe5; color: #344054; }
.fu-fechamento-modal .modal-foot .btn.ok { padding: 0 34px; font-weight: 700; }
.fu-fechamento-modal .fu-fechamento-conteudo { gap: 18px; }
.fu-fechamento-modal .fu-fechamento-quadro { border: 1px solid #dfe6f0; border-radius: 12px; padding: 18px 20px; }
.fu-fechamento-modal .fu-fechamento-proposta { background: #e9f2ff; border-color: #e9f2ff; padding: 20px 24px; }
.fu-fechamento-modal .fu-fechamento-proposta > span { font-size: 19px; }
.fu-fechamento-modal .fu-fechamento-total-v { font-size: 28px; }
.fu-fechamento-modal .fu-fechamento-tit { font-size: 18px; margin: 0 0 10px; }
.fu-fechamento-modal .fu-fechamento-tit-pag { font-size: 20px; margin: 4px 0 12px; }
.fu-fechamento-modal .fu-fechamento-item { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 16px; padding: 14px 0; align-items: center; }
.fu-fechamento-modal .fu-fechamento-item + .fu-fechamento-item { border-top: 1px solid #e6ebf2; }
.fu-fechamento-modal .fu-fechamento-quantidade { min-width: 40px; min-height: 40px; border-radius: 8px; background: #1a73e8; font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-nome { font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-local { font-size: 14px; color: #5b6b82; }
.fu-fechamento-modal .fu-fechamento-valor { font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-soma { justify-content: flex-end; align-items: baseline; gap: 8px; margin-top: 4px; padding-top: 14px; border-top: 1px dashed #c9d3e1; font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-soma span { color: #475467; }
.fu-fechamento-modal .fu-fechamento-soma b { font-size: 17px; }
.fu-fechamento-modal .fu-fechamento-pag-linha { position: relative; margin-bottom: 12px; }
.fu-fechamento-modal .fu-fechamento-pagamento { gap: 20px; }
.fu-fechamento-modal .fu-fechamento-pagamento .field > span { font-size: 14px; color: #475467; margin-bottom: 6px; }
.fu-fechamento-modal .fu-fechamento-pagamento input,
.fu-fechamento-modal .fu-fechamento-pagamento select { height: 46px; border: 1px solid #c9d3e1; border-radius: 8px; padding: 0 14px; font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-rem {
  position: absolute; top: 0; right: 0; width: 22px; height: 22px; border: 0; border-radius: 50%;
  background: transparent; color: #98a2b3; font-size: 18px; line-height: 1; cursor: pointer; margin: 0; padding: 0;
}
.fu-fechamento-modal .fu-fechamento-rem:hover { color: var(--bad); background: #fdecec; }
.fu-fechamento-modal .fu-fechamento-add { min-height: 46px; padding: 0 22px; border: 1.5px solid #1a73e8; border-radius: 8px; color: #1a73e8; font-weight: 700; font-size: 15px; }
.fu-fechamento-modal .fu-fechamento-resumo {
  grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 20px 24px; border: 1px solid #dfe6f0; border-radius: 12px; background: #f4f8fd;
}
.fu-fechamento-modal .fu-fechamento-resumo > div:not(.fu-fechamento-sit) { align-items: baseline; }
.fu-fechamento-modal .fu-fechamento-resumo span { color: #344054; font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-resumo b { color: var(--navy); font-size: 22px; font-weight: 800; }
.fu-fechamento-modal .fu-fechamento-resumo b.fu-fechamento-rest-falta { color: var(--bad); }
.fu-fechamento-modal .fu-fechamento-sit { margin-top: 6px; font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-sit span { font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-ok { display: inline-flex; align-items: center; gap: 12px; color: #15803d !important; font-weight: 700; }
.fu-fechamento-modal .fu-fechamento-ok-ico {
  display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%;
  background: #16a34a; color: #fff; font-style: normal; font-size: 17px; font-weight: 800;
}
.fu-fechamento-modal .fu-fechamento-falta { color: var(--bad) !important; }
.fu-fechamento-modal .fu-fechamento-desconto { padding: 18px 24px; }
.fu-fechamento-modal .fu-fechamento-desc-h { align-items: baseline; }
.fu-fechamento-modal .fu-fechamento-desc-h b:first-child { font-size: 16px; }
.fu-fechamento-modal .fu-fechamento-desc-h b + b { font-size: 24px; color: #1a73e8; }
.fu-fechamento-modal .fu-fechamento-desc-h b.fu-fechamento-nd { font-size: 16px; color: var(--muted); }
.fu-fechamento-modal .fu-fechamento-desc-h b.fu-fechamento-acr { color: #b45309; }
.fu-fechamento-modal .fu-fechamento-desc-s { font-size: 14px; margin-top: 6px; }
.fu-fechamento-modal .fu-fechamento-conteudo > label.field > span { color: var(--navy); font-weight: 700; font-size: 16px; margin-bottom: 8px; }
.fu-fechamento-modal textarea[name="obs"] { border: 1px solid #c9d3e1; border-radius: 8px; padding: 12px 14px; font-size: 15px; }
@media (max-width: 560px) {
  .fu-fechamento-modal .modal-head, .fu-fechamento-modal .modal-body, .fu-fechamento-modal .modal-foot { padding-left: 16px; padding-right: 16px; }
  .fu-fechamento-modal .fu-fechamento-pagamento { gap: 10px; }
  .fu-fechamento-modal .fu-fechamento-total-v { font-size: 22px; }
  .fu-fechamento-modal .modal-foot .btn { padding: 0 16px; }
}
/* =====================================================================
   Registrar contato · visual de referência
   ===================================================================== */
.modal.fu-contato-modal { max-width: 600px; }
.fu-contato-modal .modal-head { padding: 20px 26px; }
.fu-contato-modal .modal-head::after { height: 2px; background: #1a73e8; }
.fu-contato-modal .modal-head h3 { font-family: inherit; text-transform: none; letter-spacing: 0; font-size: 21px; font-weight: 800; color: #101828; }
.fu-contato-modal .modal-body { padding: 22px 26px 6px; }
.fu-contato-modal .modal-foot { padding: 16px 26px; gap: 12px; }
.fu-contato-modal .modal-foot .btn { min-height: 46px; padding: 0 24px; border-radius: 8px; font-size: 15px; }
.fu-contato-modal .modal-foot .btn:not(.primary) { background: #fff; border: 1px solid #d0d5dd; color: #344054; }
.fu-contato-conteudo .fu-contato-grid { column-gap: 20px; }
.fu-contato-conteudo .field { margin-bottom: 16px; }
.fu-contato-conteudo .field > span { font-size: 14px; color: #475467; margin-bottom: 8px; }
.fu-contato-conteudo input[type="date"],
.fu-contato-conteudo input[type="time"],
.fu-contato-conteudo select,
.fu-contato-conteudo textarea { border: 1px solid #d0d5dd; border-radius: 8px; padding: 0 14px; font-size: 16px; color: #101828; }
.fu-contato-conteudo input[type="date"],
.fu-contato-conteudo input[type="time"],
.fu-contato-conteudo select { height: 48px; }
.fu-contato-conteudo textarea { padding: 12px 14px; }
.fu-contato-conteudo textarea[name="t"] { min-height: 108px; }
.fu-contato-conteudo textarea[name="nota"] { min-height: 118px; }
.fu-contato-conteudo input:disabled,
.fu-contato-conteudo select:disabled { background: #f2f4f7; color: #667085; cursor: not-allowed; }
.fu-contato-conteudo .fu-contato-dia-v { background: #fff; pointer-events: none; }
.fu-contato-conteudo .fu-contato-atalhos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: -2px 0 18px; }
.fu-contato-conteudo .fu-contato-atalhos .btn {
  min-height: 46px; border: 1.5px solid #1a73e8; border-radius: 8px; background: #fff; color: #1a73e8; font-size: 15px; font-weight: 600; justify-content: center;
}
.fu-contato-conteudo .fu-contato-atalhos .btn:hover:not(:disabled) { background: #eef4ff; }
.fu-contato-conteudo .fu-contato-atalhos .btn:disabled { border-color: #d0d5dd; color: #98a2b3; background: #f9fafb; }
.fu-contato-conteudo .fu-faltou-aviso, .fu-contato-conteudo .fu-sem-cond { margin: -6px 0 16px; }
@media (max-width: 560px) {
  .fu-contato-modal .modal-head, .fu-contato-modal .modal-body, .fu-contato-modal .modal-foot { padding-left: 16px; padding-right: 16px; }
  .fu-contato-conteudo .fu-contato-atalhos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Ficha · Dados do paciente: duas colunas iguais, rótulo pequeno em caixa alta e valor em azul-marinho */
.fx-dados.fx-dados-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; }
.fx-dados dd { font-size: 14.5px; line-height: 1.4; }
.fx-dados-4 { margin-top: 18px; padding-top: 16px; border-top: 1px solid #edf1f7; gap: 12px 18px; }
@media (max-width: 720px) { .fx-dados.fx-dados-2 { grid-template-columns: minmax(0, 1fr); } }
/* Orçamento: o botão Histórico de propostas sem o quadro atrás */
.fx-resumo > div.fx-ultprop { background: none; border: 0; padding: 0; }
/* Marcar como perdido: motivo e detalhe de um lado ao outro da janela */
.fu-perder .field { display: block; width: 100%; }
.fu-perder .field select, .fu-perder .field textarea { display: block; width: 100%; box-sizing: border-box; }
.fu-perder .field select { height: 44px; }
.fu-perder .field textarea { min-height: 96px; resize: vertical; }
/* Multiclínicas: WhatsApp por clínica (S.O.F.I.A. da CRC e Follow-up no menu lateral) */
.qr-clinica { margin: -4px 0 10px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; background: #eef4ff; color: var(--navy); font-weight: 700; font-size: 13.5px; }
.qr-clinica svg { width: 15px; height: 15px; }
.fu-wa-pill { border-color: #25d366; box-shadow: 0 0 10px rgba(37, 211, 102, .35); }
.fu-wa-pill.ok .ia-dot { background: #25d366; box-shadow: 0 0 6px rgba(37, 211, 102, .9); }.wc-st { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.wc-st svg { width: 14px; height: 14px; }
.wc-st.ok { background: #e7f8ee; color: #15803d; }
.wc-st.bad { background: var(--bad-bg); color: var(--bad); }
.wc-st.nd { background: #eef1f6; color: #475467; }.fu-wa-aviso { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin: 10px 0 0; padding: 10px 14px; border-radius: 12px;
  background: var(--bad-bg); border: 1px solid #f3b8b1; color: #7a1f17; font-size: 13.5px; line-height: 1.45; }
.fu-wa-aviso[hidden] { display: none; }
.fu-wa-aviso > svg { flex: 0 0 auto; width: 18px; height: 18px; color: var(--bad); }
.fu-wa-aviso > span { flex: 1 1 260px; }.fx-qr-alerta { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 10px; padding: 10px 12px; border-radius: 10px;
  background: #fff4e0; border: 1px solid #f5d49a; color: #7a4a00; font-size: 13.5px; line-height: 1.45; text-align: left; }
.fx-qr-alerta > svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 1px; }/* Follow-up: "WhatsApp Conectado" em verde, "WhatsApp Desconectado" em vermelho */
.fu-wa-pill.ok { background: rgba(37, 211, 102, .22); border-color: #25d366; color: #fff; }
.fu-wa-pill.ok .ia-pill-lbl { color: #7dffb0; font-weight: 700; }
.fu-wa-pill.bad { background: rgba(229, 72, 77, .30); border-color: #ff6b6b; box-shadow: 0 0 10px rgba(255, 77, 79, .45); }
.fu-wa-pill.bad .ia-pill-lbl { color: #ffb4b4; font-weight: 700; }
/* v194 (SQL 096): clínicas a mais do gestor, na tela Acesso */
.fu-extra { border: 1px solid var(--line, #dfe5f0); border-radius: 10px; padding: 10px 12px; margin: 4px 0 10px; }
.fu-extra legend { padding: 0 6px; font-weight: 700; font-size: 13px; }
.fu-extra .extra-opts { display: grid; gap: 6px; margin: 4px 0 6px; }
.fu-extra .check-line[hidden] { display: none; }
/* v194 (SQL 096): GESTOR só acompanha o Follow-up (sem ações). O banco também recusa. */
body.fu-ro #fu-novo,
body.fu-ro .fu-ac.cal,
body.fu-ro [data-a="fechar"], body.fu-ro [data-a="editar"], body.fu-ro [data-a="perder"], body.fu-ro [data-a="reabrir"],
body.fu-ro [data-fx]:not([data-fx="historico-propostas"]),
body.fu-ro .fx-tpl, body.fu-ro .fx-send, body.fu-ro .fx-semtel,
body.fu-ro [data-fu-wa-conectar], body.fu-ro [data-waqr] { display: none !important; }
/* v194: Números WhatsApp por clínica e Equipe agrupada por clínica */
.wa-num-intro { margin: 2px 0 12px; }
.wa-num-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 14px; }
.wa-num-card h2 { margin-bottom: 10px; }
.wa-num-form { display: flex; align-items: flex-end; gap: 8px; margin: 8px 0 2px; }
.wa-num-form .field { flex: 1; margin: 0; }
.wa-num-form .inline-input { width: 100%; }
.wa-falta { color: #b26b00; margin: 2px 0 8px; }
.eq-filtro { display: flex; justify-content: flex-end; margin: 0 0 12px; }
.eq-filtro select { min-width: 260px; }
.eq-grupo { margin-bottom: 14px; }
.eq-grupo .card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.chip.eq-acomp { background: #eef4ff; color: #0b4fb3; font-size: 11px; }
/* v194-9: aviso no "Pausar a IA e assumir" */
.assumir-alerta { display: flex; gap: 10px; align-items: flex-start; background: #fde3e1; color: #8a1c17; border: 1px solid #f3b4ae; border-radius: 10px; padding: 12px 14px; margin-bottom: 14px; font-size: 14px; line-height: 1.45; }
.assumir-alerta svg { flex: none; width: 20px; height: 20px; margin-top: 1px; }
/* v194-10: alerta de pausa e devolve repetido (SQL 110) */
.assumir-alerta.vai-volta { background: #fff1d6; color: #7a4a00; border-color: #f0c674; }

/* v194-11: nova proposta sem contato (Follow-up) */
.fu-st.s-semct { background: #fde8e6; color: #b42318; border: 1px solid #f5b5ad; margin-top: 4px; }
.fx-sub .fu-st.s-semct { margin-top: 0; }
.fx-banner.semct { flex-wrap: wrap; background: #fdecea; border: 1px solid #f5b5ad; color: #8a1c17; }
.fx-banner.semct > span { flex: 1; min-width: 220px; }
.fu-contato-prop { display: flex; gap: 10px; align-items: flex-start; background: #e9f7ee; border: 1px solid #b7e2c5; color: #14532d; border-radius: 10px; padding: 10px 12px; margin-bottom: 12px; font-size: 13.5px; line-height: 1.45; }
.fu-contato-prop svg { flex: none; width: 18px; height: 18px; margin-top: 1px; }

/* v194-15: pagamento do fechamento = Especialidade · Valor pago · Forma de pagamento */
.fu-fechamento-modal .fu-fechamento-pagamento.fu-fechamento-pagamento-3 { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 560px) {
  .fu-fechamento-modal .fu-fechamento-pagamento.fu-fechamento-pagamento-3 { grid-template-columns: minmax(0, 1fr); }
}
.fx-pags .fx-pag-esp { font-style: normal; font-weight: 700; color: #0b3d91; }
/* v194-16: situação de cada especialidade no Concluir negociação */
.fu-fechamento-modal .fu-fechamento-esp { display: grid; gap: 6px; padding-bottom: 10px; margin-bottom: 8px; border-bottom: 1px dashed #d9e6f7; }
.fu-fechamento-modal .fu-fechamento-esp-l { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.fu-fechamento-modal .fu-fechamento-esp-l > span:first-child { color: #3c5277; }
.fu-fechamento-modal select[data-pe]:disabled { background: #f5f8fe; color: var(--navy); opacity: 1; }
.fu-fechamento-modal .fu-fechamento-resumo > .fu-fechamento-esp { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; }
.fu-fechamento-modal .fu-fechamento-esp-l { display: flex !important; justify-content: space-between; align-items: baseline; }
.fu-fechamento-modal .fu-fechamento-esp-l b { font-family: inherit; font-size: 13px; font-weight: 700; color: var(--navy); }
.fu-fechamento-modal .fu-fechamento-esp-l > span:last-child { font-size: 13px; font-weight: 700; white-space: nowrap; }
.fu-fechamento-modal .fu-fechamento-resumo > div.fu-fechamento-esp { display: flex !important; flex-direction: column; align-items: stretch; gap: 6px; }

/* v194-16: "Nova proposta sem contato" pisca em vermelho enquanto houver pendência (cartão da visão geral e faixa da ficha) */
@keyframes fu-pisca-vermelho {
  0%, 100% { box-shadow: 0 0 0 0 rgba(217, 45, 32, 0); border-color: #f5b5ad; background: #fff; }
  50% { box-shadow: 0 0 0 4px rgba(217, 45, 32, .35); border-color: #d92d20; background: #fdecea; }
}
@keyframes fu-pisca-faixa {
  0%, 100% { box-shadow: 0 0 0 0 rgba(217, 45, 32, 0); }
  50% { box-shadow: 0 0 0 4px rgba(217, 45, 32, .35); border-color: #d92d20; }
}
.fu-kpi[data-alerta] { animation: fu-pisca-vermelho 1.4s ease-in-out infinite; border-color: #f5b5ad; }
.fx-banner.semct { animation: fu-pisca-faixa 1.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) {
  .fu-kpi[data-alerta], .fx-banner.semct { animation: none; border: 2px solid #d92d20; }
}

/* ---------- v194-16: painel do Follow-up (modelo aprovado em 04/10) ---------- */
.fu-painel { display: grid; gap: 14px; }
.fu-kp-l1 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.fu-kp-l2 { display: grid; grid-template-columns: 1.45fr 1fr 1fr; gap: 14px; }
.fu-kp { position: relative; overflow: hidden; display: flex; gap: 16px; align-items: flex-start; border-radius: 18px; padding: 20px 22px; border: 1px solid #d9e6f7; background: #fff; box-shadow: 0 6px 18px rgba(0, 40, 120, .06); min-height: 150px; }
.fu-kp .fu-kp-ico { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.fu-kp .fu-kp-ico svg { width: 26px; height: 26px; }
.fu-kp-txt { display: flex; flex-direction: column; gap: 4px; min-width: 0; position: relative; z-index: 1; }
.fu-kp-rot { font-size: 15px; font-weight: 700; color: #1d2b4f; }
.fu-kp-val { font-family: "Exo 2", system-ui, sans-serif; font-size: 40px; line-height: 1.05; font-weight: 800; letter-spacing: -.5px; }
.fu-kp-sub { font-size: 14px; color: #5b7196; }
.fu-kp .fu-dl { font-size: 13px; }
.fu-kp-btn { align-self: flex-start; margin-top: 8px; display: inline-flex; align-items: center; gap: 8px; border: 0; border-radius: 999px; padding: 8px 18px; font-weight: 700; font-size: 14px; color: #fff; cursor: pointer; }
.fu-kp-btn svg { width: 16px; height: 16px; }
.fu-kp-deco { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); opacity: .14; pointer-events: none; }
.fu-kp-deco svg { width: 76px; height: 76px; }
.fu-kp-barras { display: flex; align-items: flex-end; gap: 6px; height: 48px; opacity: .25; }
.fu-kp-barras i { display: block; width: 12px; border-radius: 3px; background: currentColor; }
.fu-kp-barras i:nth-child(1) { height: 40%; } .fu-kp-barras i:nth-child(2) { height: 70%; } .fu-kp-barras i:nth-child(3) { height: 100%; }
/* cores */
.fu-kp-vermelho { background: linear-gradient(135deg, #fff5f4, #fdecea); border-color: #f5c2bc; }
.fu-kp-vermelho .fu-kp-ico { background: #fbd5d0; color: #b42318; } .fu-kp-vermelho .fu-kp-rot, .fu-kp-vermelho .fu-kp-val { color: #b42318; } .fu-kp-vermelho .fu-kp-btn { background: #b42318; } .fu-kp-vermelho .fu-kp-deco { color: #d92d20; }
.fu-kp-roxo { background: linear-gradient(135deg, #faf7ff, #f2ecff); border-color: #ddd0fb; }
.fu-kp-roxo .fu-kp-ico { background: #e7dcfd; color: #6d28d9; } .fu-kp-roxo .fu-kp-rot { color: #5b21b6; } .fu-kp-roxo .fu-kp-val { color: #6d28d9; } .fu-kp-roxo .fu-kp-sub { color: #6d28d9; } .fu-kp-roxo .fu-kp-btn { background: #7c3aed; } .fu-kp-roxo .fu-kp-deco { color: #7c3aed; }
.fu-kp-azul { background: linear-gradient(135deg, #f6faff, #ecf3ff); border-color: #d2e2fb; }
.fu-kp-azul .fu-kp-ico { background: #dbe8ff; color: #1a4fd6; } .fu-kp-azul .fu-kp-val { color: #0b2a6b; } .fu-kp-azul .fu-kp-btn { background: #1a6bff; } .fu-kp-azul .fu-kp-deco { color: #1a6bff; }
.fu-kp-ambar { background: linear-gradient(135deg, #fffcf3, #fff6e3); border-color: #f6dea8; }
.fu-kp-ambar .fu-kp-ico { background: #fde9bf; color: #b45309; } .fu-kp-ambar .fu-kp-rot { color: #92400e; } .fu-kp-ambar .fu-kp-val { color: #92400e; font-size: 52px; } .fu-kp-ambar .fu-kp-deco { color: #d97706; }
.fu-kp-verde { background: linear-gradient(135deg, #f5fdf8, #eaf8ef); border-color: #c4ead2; }
.fu-kp-verde .fu-kp-ico { background: #d3f2de; color: #15803d; } .fu-kp-verde .fu-kp-val { color: #14532d; } .fu-kp-verde .fu-kp-deco { color: #16a34a; }
.fu-kp.fu-click { cursor: pointer; } .fu-kp.fu-click:hover { box-shadow: 0 10px 24px rgba(0, 40, 120, .1); }
/* faixa de indicadores */
.fu-kp-faixa { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: linear-gradient(90deg, #f3f7ff, #eef4ff); border: 1px solid #d9e6f7; border-radius: 16px; padding: 14px 8px; }
.fu-kp-faixa > div { display: flex; align-items: center; gap: 14px; padding: 4px 22px; }
.fu-kp-faixa > div + div { border-left: 1px solid #cfdcf2; }
.fu-kp-faixa .fu-kp-ico { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #dbe8ff; color: #1a4fd6; flex: none; }
.fu-kp-faixa .fu-kp-ico svg { width: 22px; height: 22px; }
.fu-kp-faixa span { font-size: 14px; color: #3c5277; display: block; }
.fu-kp-faixa b { font-family: "Exo 2", system-ui, sans-serif; font-size: 26px; font-weight: 800; color: #0b2a6b; }
/* o cartão pendente pisca (substitui a regra antiga dos .fu-kpi) */
.fu-kp[data-alerta] { animation: fu-pisca-vermelho 1.4s ease-in-out infinite; }
@media (max-width: 1100px) { .fu-kp-l1, .fu-kp-l2 { grid-template-columns: 1fr 1fr; } .fu-kp-l2 > :first-child { grid-column: 1 / -1; } }
@media (max-width: 720px) {
  .fu-kp-l1, .fu-kp-l2, .fu-kp-faixa { grid-template-columns: 1fr; }
  .fu-kp-faixa > div + div { border-left: 0; border-top: 1px solid #cfdcf2; padding-top: 10px; margin-top: 6px; }
  .fu-kp-val { font-size: 34px; } .fu-kp-ambar .fu-kp-val { font-size: 40px; }
}
@media (prefers-reduced-motion: reduce) { .fu-kp[data-alerta] { animation: none; border: 2px solid #d92d20; } }
@keyframes fu-pisca-kp { 0%, 100% { box-shadow: 0 6px 18px rgba(0, 40, 120, .06), 0 0 0 0 rgba(217, 45, 32, 0); border-color: #f5c2bc; } 50% { box-shadow: 0 6px 18px rgba(0, 40, 120, .06), 0 0 0 5px rgba(217, 45, 32, .35); border-color: #d92d20; } }
.fu-kp[data-alerta] { animation: fu-pisca-kp 1.4s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .fu-kp[data-alerta] { animation: none; border: 2px solid #d92d20; } }
.fu-kp-txt { padding-right: 84px; }
.fu-kp-l2 .fu-kp-verde .fu-kp-txt { padding-right: 56px; }
.fu-kp-l2 .fu-kp-verde .fu-kp-deco { right: 14px; top: 22px; transform: none; }
@media (max-width: 720px) { .fu-kp-txt { padding-right: 0; } .fu-kp-deco { display: none; } }
.fu-kp-l1 .fu-kp-txt { padding-right: 0; }
.fu-kp-l1 .fu-kp-deco { top: auto; bottom: 14px; right: 16px; transform: none; opacity: .12; }
.fu-kp-l1 .fu-kp-deco svg { width: 64px; height: 64px; }
.fu-kp-rot { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fu-kp-l2 .fu-kp-verde .fu-kp-rot { white-space: normal; }
.fu-kp-l2 .fu-kp-verde .fu-kp-txt { padding-right: 28px; }
.fu-kp-l2 .fu-kp-verde .fu-kp-rot { white-space: nowrap; }
.fu-kp-l2 .fu-kp-verde .fu-kp-deco { opacity: .18; }
/* v194-16: 6 cartões simétricos (2 linhas de 3, mesma largura, altura e tamanho de número) */
.fu-kp-l1, .fu-kp-l2 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.fu-kp { min-height: 168px; }
.fu-kp-ambar .fu-kp-val { font-size: 40px; }
.fu-kp-l2 > :first-child { grid-column: auto; }
@media (max-width: 1100px) { .fu-kp-l1, .fu-kp-l2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 720px) { .fu-kp-l1, .fu-kp-l2 { grid-template-columns: 1fr !important; } .fu-kp-ambar .fu-kp-val { font-size: 34px; } }
.fu-kp { min-height: 180px; }
.fu-row:not(.fu-row-un) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1200px) { .fu-row:not(.fu-row-un) { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .fu-row:not(.fu-row-un) { grid-template-columns: 1fr; } }
/* v194-18: pendências zeradas = cartão verde ("tudo em dia") */
.fu-kp-emdia { background: linear-gradient(135deg, #f5fdf8, #eaf8ef); border-color: #c4ead2; }
.fu-kp-emdia .fu-kp-ico { background: #d3f2de; color: #15803d; } .fu-kp-emdia .fu-kp-rot, .fu-kp-emdia .fu-kp-val { color: #15803d; } .fu-kp-emdia .fu-kp-sub { color: #166534; } .fu-kp-emdia .fu-kp-deco { color: #16a34a; }

/* v194-33 (SQL 145): conferência do boleto no Asaas */
.fu-asaas { display: inline-block; margin-top: 4px; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.fu-asaas.bad { background: #fee2e2; color: #991b1b; }
.fu-asaas.warn { background: #fef3c7; color: #92400e; }
.fx-asaas { line-height: 1.5; }
.fx-asaas-st { font-weight: 700; }
.fx-asaas-st.ok { color: #047857; }
.fx-asaas-st.bad { color: #b91c1c; }
.fx-asaas-st.warn { color: #b45309; }
.fx-asaas-bs { margin: 4px 0 0 18px; padding: 0; font-size: 12px; }
.fu-asaas-busca { border: 1px solid #c7d2fe; background: #f5f7ff; border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.fu-asaas-op { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; border-bottom: 1px dashed #e5e7eb; cursor: pointer; }
.fu-asaas-op input { margin-top: 3px; }
.fu-asaas-sit { margin: 8px 0 4px; }
.fu-asaas-liberar { display: flex; gap: 6px; align-items: center; margin-top: 8px; font-size: 12px; color: #92400e; }

/* v194-34 (SQL 146): boletos vencidos (inadimplência) */
.fu-inad { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 14px; padding: 12px 16px; border-radius: 12px;
  background: #fef2f2; border: 1px solid #fca5a5; color: #7f1d1d; animation: fu-inad-pulsa 2.2s ease-in-out infinite; }
.fu-inad-ico { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #dc2626; color: #fff; flex: none; }
.fu-inad-ico svg { width: 20px; height: 20px; }
.fu-inad-txt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 260px; min-width: 0; }
.fu-inad-txt b { font-size: 15px; color: #991b1b; }
.fu-inad-btn { background: #dc2626 !important; color: #fff !important; border-color: #dc2626 !important; }
@keyframes fu-inad-pulsa { 0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, .0); } 50% { box-shadow: 0 0 0 6px rgba(220, 38, 38, .18); } }
@media (prefers-reduced-motion: reduce) { .fu-inad { animation: none; } }
.modal.fu-inad-modal { max-width: 1100px; width: calc(100vw - 32px); }
.fu-inad-tab { overflow-x: auto; }
.fu-inad-tab td { vertical-align: top; }
.fu-inad-dias { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #fee2e2; color: #991b1b; font-weight: 700; font-size: 12px; }
.fu-inad-semficha { color: #b45309; font-weight: 600; }
.fu-inad-quando { margin: 0 0 8px; }
.fx-inad { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; padding: 10px 14px; border-radius: 10px; background: #fef2f2; border: 1px solid #fca5a5; color: #7f1d1d; }
.fx-inad svg { width: 18px; height: 18px; flex: none; color: #dc2626; margin-top: 2px; }

/* v194-34: lista de cobrança (modelo aprovado em 10/10) */
.fu-cb { display: flex; flex-direction: column; gap: 14px; }
.fu-cb-kps { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.fu-cb-kp { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #e5e7eb; border-radius: 12px; background: #fff; }
.fu-cb-kp b { display: block; font-size: 22px; line-height: 1.1; color: #0b2a5b; font-variant-numeric: tabular-nums; }
.fu-cb-kp small { color: #475569; }
.fu-cb-kp-ico { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; flex: none; }
.fu-cb-kp-ico svg { width: 22px; height: 22px; }
.fu-cb-kp-ico.az { background: #e0edff; color: #1d4ed8; } .fu-cb-kp-ico.am { background: #fef3c7; color: #b45309; }
.fu-cb-kp-ico.vm { background: #fee2e2; color: #dc2626; } .fu-cb-kp-ico.vd { background: #dcfce7; color: #15803d; }
.fu-cb-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }
.fu-cb-abas { display: flex; flex-wrap: wrap; gap: 8px; }
.fu-cb-aba { padding: 8px 16px; border-radius: 10px; border: 1px solid #e2e8f0; background: #f8fafc; color: #0f172a; font-weight: 600; cursor: pointer; }
.fu-cb-aba.sel { background: #eff6ff; border-color: #2563eb; color: #1d4ed8; }
.fu-cb-aba:focus-visible { outline: 2px solid #2563eb; outline-offset: 2px; }
.fu-cb-busca { display: flex; gap: 8px; align-items: center; flex: 1 1 280px; justify-content: flex-end; }
.fu-cb-busca .fu-busca { flex: 1 1 240px; max-width: 420px; }
.fu-cb-sec { border: 1px solid #e5e7eb; border-radius: 12px; overflow: hidden; }
.fu-cb-sec > header { display: flex; flex-wrap: wrap; gap: 6px; justify-content: space-between; align-items: center; padding: 10px 16px; }
.fu-cb-sec > header b { font-size: 15px; }
.fu-cb-sec > header small { font-size: 12px; }
.fu-cb-sec-primeiro > header { background: #fee2e2; color: #991b1b; }
.fu-cb-sec-acomp > header { background: #fef3c7; color: #92400e; }
.fu-cb-tab { overflow-x: auto; }
.fu-cb-tab table { margin: 0; }
.fu-cb-tab td { vertical-align: middle; }
.fu-cb-l td:first-child { border-left: 4px solid transparent; }
.fu-cb-primeiro td:first-child { border-left-color: #dc2626; }
.fu-cb-acomp td:first-child { border-left-color: #f59e0b; }
.fu-cb-pac { display: flex; gap: 10px; align-items: center; min-width: 220px; }
.fu-cb-av { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; flex: none; font-weight: 700; font-size: 13px; background: #fee2e2; color: #b91c1c; }
.fu-cb-acomp .fu-cb-av { background: #fef3c7; color: #b45309; }
.fu-cb-nome { font-weight: 700; color: #0b2a5b; }
.fu-cb-semficha { color: #b45309; font-weight: 600; }
.fu-cb-semficha svg { width: 13px; height: 13px; vertical-align: -2px; }
.fu-cb-val { color: #dc2626; font-size: 15px; font-variant-numeric: tabular-nums; }
.fu-cb-dias { display: inline-block; padding: 2px 10px; border-radius: 8px; background: #fee2e2; color: #b91c1c; font-weight: 600; font-size: 12px; white-space: nowrap; }
.fu-cb-ct { display: flex; gap: 8px; align-items: center; min-width: 120px; }
.fu-cb-dot { width: 9px; height: 9px; border-radius: 50%; background: #cbd5e1; flex: none; }
.fu-cb-dot.ok { background: #16a34a; }
.fu-cb-acoes { display: flex; gap: 6px; align-items: center; }
.fu-cb-cobrar { background: #1d4ed8 !important; border-color: #1d4ed8 !important; color: #fff !important; }
.fu-cb-cobrar svg { width: 16px; height: 16px; vertical-align: -3px; }
.fu-cb-mais { position: relative; }
.fu-cb-mais > summary { list-style: none; cursor: pointer; display: inline-grid; place-items: center; width: 34px; height: 32px; border: 1px solid #e2e8f0; border-radius: 8px; background: #fff; }
.fu-cb-mais > summary::-webkit-details-marker { display: none; }
.fu-cb-menu { position: absolute; right: 0; top: 36px; z-index: 5; display: flex; flex-direction: column; min-width: 170px; padding: 6px; background: #fff; border: 1px solid #e2e8f0; border-radius: 10px; box-shadow: 0 8px 24px rgba(15, 23, 42, .12); }
.fu-cb-menu button, .fu-cb-menu a { text-align: left; padding: 7px 10px; border: 0; background: none; border-radius: 6px; color: #0f172a; cursor: pointer; text-decoration: none; font-size: 13px; }
.fu-cb-menu button:hover, .fu-cb-menu a:hover { background: #f1f5f9; }
.fu-cb-quando { margin: 0; }
.fu-cb-vazio { padding: 10px 0; }
.fu-cb-alvo { display: flex; gap: 12px; align-items: center; padding: 10px 0; }
.fu-cb-btns { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fu-cb-reg { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border: 1px solid #e2e8f0; border-radius: 10px; background: #f8fafc; }
.fu-cb-op { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.fu-cb-op > span { font-weight: 600; min-width: 90px; }
.fu-cb-op label { display: inline-flex; gap: 5px; align-items: center; cursor: pointer; }
.fu-cb-reg .btn.ok { align-self: flex-start; }
/* v194-34: ajustes da tela de cobrança (modelo final) */
.fu-cb-nome, a.fu-cb-nome { text-decoration: none; color: #0b2a5b; font-weight: 700; }
a.fu-cb-nome:hover { text-decoration: underline; }
.fu-cb-sec > header b { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; }
.fu-cb-sec-ico { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font-weight: 800; font-size: 14px; color: #fff; }
.fu-cb-sec-ico.vm { background: #dc2626; }
.fu-cb-sec-ico.am { background: #f59e0b; }
.fu-cb-cobrar { display: inline-flex !important; align-items: center; gap: 8px; padding: 10px 22px !important; font-size: 15px !important; border-radius: 8px !important; }
.fu-cb-wa-ico { width: 20px !important; height: 20px !important; }
.fu-cb-sec .table thead th { background: #f8fafc; color: #475569; font-weight: 600; font-size: 13px; }
.modal.fu-inad-modal .modal-foot { display: none; }
.fu-cb-tab table { width: 100%; border-collapse: collapse; }
.fu-cb-tab th { text-align: left; padding: 10px 16px !important; white-space: nowrap; }
.fu-cb-tab th.num { text-align: left; }
.fu-cb-tab td { padding: 14px 16px !important; border-top: 1px solid #eef2f7; }
.fu-cb-tab td.num { text-align: left; }
.fu-cb-tab th:last-child, .fu-cb-tab td:last-child { text-align: right; width: 1%; }
.fu-cb-acoes { justify-content: flex-end; }
.fu-cb-av { width: 46px; height: 46px; font-size: 15px; }
.fu-cb-pac b.fu-cb-nome, .fu-cb-pac a.fu-cb-nome { font-size: 15px; }
.fu-cb-ct b { font-size: 14px; }
.fu-cb-busca .fu-busca { display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid #e2e8f0; border-radius: 10px; background: #fff; height: 42px; }
.fu-cb-busca .fu-busca input { border: 0 !important; outline: none; box-shadow: none !important; background: transparent; flex: 1; min-width: 0; height: 100%; padding: 0 !important; }
.fu-cb-busca .fu-busca:focus-within { border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .15); }
.fu-cb-kp b { font-size: 26px; }
/* v194-34: selo do boleto na janela de comissão */
.cm-asaas { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.cm-asaas svg { width: 14px; height: 14px; }
.cm-asaas.ok { background: #dcfce7; color: #15803d; }
.cm-asaas.bad { background: #fee2e2; color: #b91c1c; }
.cm-asaas.warn { background: #fef3c7; color: #92400e; }
.cm-asaas.nd { background: #f1f5f9; color: #475569; }
/* v194-36 (SQL 149): comissão real (contrato com boleto não gerado anulado) x a alcançar */
.cm-real-rot { color: #15803d; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.fu-com .tbl tr.cm-tem-real td { border-bottom: 0; }
.fu-com .tbl tr.cm-alcancar td { background: #fff7ed; border-top: 1px dashed #fdba74; font-size: 13px; color: #7c2d12; padding-top: 8px; padding-bottom: 8px; }
.fu-com .tbl tr.cm-alcancar td > span { margin-right: 6px; }
.fu-com .tbl tfoot tr.cm-alcancar td { font-weight: 600; }
.cm-alcancar-v { display: inline-block; }
.cm-alcancar-v b { color: #c2410c; font-variant-numeric: tabular-nums; }
.cm-rodape:has(.cm-com-alcancar) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 860px) { .cm-rodape:has(.cm-com-alcancar) { grid-template-columns: 1fr; } }
.cm-com.cm-com-alcancar { background: #fff7ed; border-color: #fed7aa; }
.cm-com.cm-com-alcancar b { color: #c2410c; }
.cm-tab tr.cm-anulado td { background: #fef2f2; }
.cm-tab tr.cm-anulado td:nth-child(4), .cm-tab tr.cm-anulado td:nth-child(5) { color: #991b1b; text-decoration: line-through; text-decoration-color: rgba(185, 28, 28, .5); }
.cm-anulado-rot { display: inline-block; text-decoration: none; color: #b91c1c; font-weight: 700; font-size: 11px; }
.cm-anul-nota { background: #fff7ed; border-color: #fdba74; color: #7c2d12; }
/* v194-38 (SQL 151): etapas do boleto na ficha (solicitado -> emitido -> enviado -> aberto -> pago) */
.fx-asaas-et { list-style: none; margin: 10px 0 6px; padding: 0; display: grid; gap: 6px; }
.fx-asaas-et li { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.35; }
.fx-asaas-et .fx-et-ico { flex: none; width: 20px; height: 20px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; }
.fx-asaas-et li.ok .fx-et-ico { background: #dcfce7; color: #15803d; }
.fx-asaas-et li.pend .fx-et-ico { background: #fef3c7; color: #92400e; }
.fx-asaas-et li.pend b { color: #92400e; }
.fx-asaas-enviar { margin-top: 8px; display: inline-flex; align-items: center; gap: 6px; }
.fx-asaas-enviar .fu-cb-wa-ico { width: 16px; height: 16px; color: #16a34a; }
.fu-alcancar { color: #fdba74; }
.meta-calc.fu-alcancar { display: block; margin-top: 4px; }
.meta-calc.fu-alcancar svg { display: inline-block; width: 13px; height: 13px; vertical-align: -2px; margin-right: 3px; }
.meta-calc.fu-alcancar b { color: #fed7aa; }
/* v194-35 (SQL 147): movimentações do boleto (avisos do Asaas) na ficha */
.fx-asaas-ev { margin: 0 0 12px; }
.fx-asaas-ev-nota { margin: -4px 0 10px; }
.fx-asaas-ev-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fx-asaas-ev-lista li { display: flex; gap: 10px; align-items: flex-start; }
.fx-asaas-ev-ico { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; flex: none; background: #f1f5f9; color: #475569; }
.fx-asaas-ev-ico svg { width: 16px; height: 16px; }
.fx-asaas-ev-lista li.az .fx-asaas-ev-ico { background: #e0edff; color: #1d4ed8; }
.fx-asaas-ev-lista li.ok .fx-asaas-ev-ico { background: #dcfce7; color: #15803d; }
.fx-asaas-ev-lista li.bad .fx-asaas-ev-ico { background: #fee2e2; color: #b91c1c; }

/* v194-41 (SQL 156): Registro de Avaliações (dentista) e Avaliações das Dentistas (admin/gestor) */
.av-btn { display: inline-flex; align-items: center; gap: 6px; }
.av-btn svg { width: 16px; height: 16px; }
.av-form .field input[name=valor] { font-variant-numeric: tabular-nums; font-weight: 600; }
.av-onde, .av-aviso { display: flex; gap: 6px; align-items: flex-start; margin: 0 0 8px; }
.av-onde svg, .av-aviso svg { width: 15px; height: 15px; flex: none; margin-top: 1px; }
.av-check { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; margin: 2px 0 10px; cursor: pointer; }
.av-check input { width: 18px; height: 18px; }
.av-meus { border-top: 1px solid #e1eaf7; padding-top: 10px; }
.av-meus-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.av-dia { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.av-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.av-lista li { padding: 8px 10px; border-radius: 10px; background: #f5f8fe; border: 1px solid #e6edf8; display: grid; gap: 4px; }
.av-l1 { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; align-items: baseline; }
.av-l1 b { min-width: 0; overflow-wrap: anywhere; }
.av-valor { font-variant-numeric: tabular-nums; font-weight: 700; color: #0b2a5b; }
.av-l2 { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.av-obs { font-size: 13px; color: #33415c; white-space: pre-wrap; overflow-wrap: anywhere; }
.av-tag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; background: #eef2f8; color: #475569; }
.av-tag svg { width: 13px; height: 13px; }
.av-tag.ok { background: #dcfce7; color: #15803d; }
.av-tag.bad { background: #fee2e2; color: #b91c1c; }
/* v194-54 (SQL 165): "Foi embora" (registrado no Dontus, saiu sem avaliação) — valor zerado e travado */
.av-tag.warn { background: #fef3c7; color: #92400e; }
.av-checks { display: flex; flex-direction: column; gap: 0; }
.av-check.av-embora small { font-weight: 400; }
.av-check:has(input:disabled) { opacity: .5; cursor: not-allowed; }
.av-zerado input[name=valor] { background: #f1f5f9; color: #64748b; }
.av-lista li.av-anulada { opacity: .6; }
.av-lista li.av-anulada .av-l1 b, .av-lista li.av-anulada .av-valor { text-decoration: line-through; }
.av-adm-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 10px; }
.av-adm-filtros .av-un { min-width: 220px; margin: 0; }
.av-resumo { padding: 8px 12px; border-radius: 10px; background: #eef4ff; margin-bottom: 10px; font-size: 14px; }
.av-grupo { margin-bottom: 14px; }
.av-grupo h4 { margin: 0 0 6px; font-size: 15px; }
.av-grupo h4 .muted { font-weight: 400; font-size: 13px; }
.av-hist svg { width: 13px; height: 13px; }

/* v194-42 (SQL 157): liberação de acesso fora do horário */
.chip.eq-lib { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.chip.eq-lib svg { width: 12px; height: 12px; }

/* v194-43 (SQL 158): orçamento convertido pelo parceiro (dentista fechou em sala) */
.fu-tbl tr.fu-conv td { background: #f8fafc; color: #64748b; }
.fu-tbl tr.fu-conv .fu-nome, .fu-tbl tr.fu-conv td.num { text-decoration: line-through; text-decoration-color: rgba(100, 116, 139, .7); }
.fu-conv-rot { display: flex; align-items: center; gap: 4px; margin-top: 3px; color: #7c3aed; font-weight: 700; font-size: 11px; text-decoration: none; }
.fu-conv-rot svg { width: 12px; height: 12px; flex: none; }
.cm-tab tr.cm-conv-lin td { background: #fef2f2; color: #991b1b; }
.cm-tab tr.cm-conv-lin .cm-risca { text-decoration: line-through; text-decoration-color: #dc2626; text-decoration-thickness: 2px; color: #991b1b; }
.cm-conv-mot { display: block; margin-top: 3px; color: #dc2626; font-weight: 700; font-size: 11px; text-decoration: none; }
.fu-conv-aviso { color: #b91c1c; font-weight: 700; }
/* v194-57: aba "Minhas avaliações" (dentista, somente consulta) */
.ma-aviso { display: flex; gap: 6px; align-items: flex-start; margin: -4px 0 12px; }
.ma-aviso svg { width: 15px; height: 15px; flex: none; margin-top: 1px; }
.ma-lista { margin-top: 10px; }

/* v194-64 (SQL 177): Conferência — fechamentos do Follow-up x contas recebidas do Dontus */
.conf-rec .cr-mes { min-width: 120px; text-align: center; }
.cr-info { display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 4px 16px 10px; font-size: 13px; }
.cr-resumo { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 16px 12px; }
.cr-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border-radius: 999px; font-size: 13px; border: 1px solid var(--line); background: #fff; color: inherit; text-decoration: none; }
.cr-chip.ok { color: var(--ok); background: var(--ok-bg); border-color: transparent; }
.cr-chip.aviso { color: var(--warn); background: var(--warn-bg); border-color: transparent; }
.cr-chip.erro { color: var(--bad); background: var(--bad-bg, #fdecea); border-color: transparent; }
.cr-chip.espera { color: var(--muted); background: #f1f3f6; border-color: transparent; }
.cr-chip.filtro { margin-left: auto; cursor: pointer; }
.cr-chip.filtro.on { border-color: var(--bad); color: var(--bad); }
.cr-tbl td.num, .cr-tbl td.cr-cpf { white-space: nowrap; font-variant-numeric: tabular-nums; }
.cr-tbl td:last-child { min-width: 260px; }
.cr-st { display: inline-flex; align-items: flex-start; gap: 6px; font-size: 13px; line-height: 1.35; font-weight: 600; }
.cr-st .cr-ico { flex: 0 0 auto; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; font-size: 11px; color: #fff; margin-top: 1px; }
.cr-st.ok { color: var(--ok); } .cr-st.ok .cr-ico { background: var(--ok); }
.cr-st.aviso { color: var(--warn); } .cr-st.aviso .cr-ico { background: var(--warn); }
.cr-st.erro { color: var(--bad); } .cr-st.erro .cr-ico { background: var(--bad); }
.cr-st.espera { color: var(--muted); } .cr-st.espera .cr-ico { background: var(--muted); }
.cr-tbl tr.cr-erro td { background: #fff8f7; }
@media print { .conf-rec .toolbar, .conf-rec .cr-chip.filtro { display: none; } .conf-rec { box-shadow: none; } }
/* v194-65: coluna Status da janela de comissão sem rolar para o lado (o texto quebra em linhas) */
.cm-tab td.cm-status { min-width: 210px; max-width: 300px; }
.cm-tab td.cm-status .cm-asaas { white-space: normal; align-items: flex-start; border-radius: 10px; line-height: 1.35; padding: 4px 10px; }
.cm-tab td.cm-status .cm-asaas svg { flex: 0 0 auto; margin-top: 1px; }

/* v194-72 (SQL 186): datas dos pagamentos (só administrador) */
.fx-fech-bts { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.fu-pd { display: grid; gap: 8px; margin: 10px 0; }
.fu-pd-lin { display: grid; grid-template-columns: minmax(0, 1.3fr) 130px 150px auto auto; gap: 8px; align-items: center; }
.fu-pd-lin input { width: 100%; }
.fu-pd-fp { font-size: 13px; }
.fu-pd-sit { display: grid; gap: 4px; margin-bottom: 8px; }
@media (max-width: 640px) { .fu-pd-lin { grid-template-columns: 1fr 1fr; } .fu-pd-fp { grid-column: 1 / -1; } }
.fu-pd-fp { display: grid; gap: 4px; }
.fu-pd-fp select { width: 100%; }
