/* Tela de Controle RCS — segue a linguagem visual do CRM (ref: _meus-resultados.css).
   Só tokens (base/_tokens.css dark, base/_theme.css light): acompanha light/dark sozinho. */
#rcsControleScreen { color: var(--text-primary); font-family: inherit; background: var(--bg-base); }

/* ── Header ── */
.rcs-ctrl-header {
  display:flex; align-items:flex-end; justify-content:space-between; gap:16px;
  padding:22px 28px 18px; border-bottom:1px solid var(--border);
  background: var(--bg-sidebar); flex-wrap:wrap; flex-shrink:0;
}
.rcs-ctrl-header-titles { display:flex; flex-direction:column; gap:4px; }
.rcs-ctrl-kicker {
  font-size:11px; font-weight:600; letter-spacing:.5px; text-transform:uppercase;
  color: var(--text-muted);
}
.rcs-ctrl-header h1 { font-size:22px; margin:0; color: var(--text-primary); font-weight:700; line-height:1.1; }
.rcs-ctrl-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

.rcs-ctrl-date {
  padding:8px 12px; border-radius:9px; font-size:13px; font-family:inherit; line-height:1.3;
  border:1px solid var(--border); background: var(--bg-input); color: var(--text-primary);
  color-scheme: dark; cursor:pointer; transition: border-color .15s, box-shadow .15s;
}
[data-theme="light"] .rcs-ctrl-date { color-scheme: light; }
.rcs-ctrl-date:hover { border-color: var(--blue-bright); }
.rcs-ctrl-date:focus { outline:none; border-color: var(--blue-bright); box-shadow:0 0 0 3px rgba(59,130,246,.18); }
.rcs-ctrl-date::-webkit-calendar-picker-indicator { cursor:pointer; opacity:.6; transition: opacity .15s; }
.rcs-ctrl-date:hover::-webkit-calendar-picker-indicator { opacity:1; }
.rcs-ctrl-btn {
  padding:8px 14px; border-radius:9px; cursor:pointer; font-size:13px; font-weight:600; font-family:inherit;
  border:1px solid var(--border); background: var(--bg-card); color: var(--text-primary);
  transition: border-color .15s, background .15s, transform .05s;
}
.rcs-ctrl-btn:hover { border-color: var(--blue-bright); background: var(--bg-card2); }
.rcs-ctrl-btn:active { transform: translateY(1px); }
.rcs-ctrl-btn-blue { background: var(--blue); border-color: var(--blue); color:#fff; }
.rcs-ctrl-btn-blue:hover { background: var(--blue-dark); border-color: var(--blue-dark); }

/* ── Tabs ── */
.rcs-ctrl-tabs { display:flex; gap:4px; padding:14px 28px 0; border-bottom:1px solid var(--border); flex-shrink:0; }
.rcs-ctrl-tab {
  padding:9px 16px; border:none; background:transparent; cursor:pointer; font-size:14px; font-family:inherit;
  border-bottom:2px solid transparent; color: var(--text-secondary); font-weight:500;
  transition: color .15s;
}
.rcs-ctrl-tab:hover { color: var(--text-primary); }
.rcs-ctrl-tab-active { color: var(--text-primary); border-bottom-color: var(--blue-bright); font-weight:700; }

/* ── Banner / info strip ── */
.rcs-banner {
  margin:16px 28px 0; padding:12px 16px; border-radius:10px; font-size:13px; font-weight:600;
  color: var(--yellow); background: var(--yellow-dim); border:1px solid var(--yellow); flex-shrink:0;
}
.rcs-info-strip {
  padding:18px 28px 0; font-size:12px; font-weight:600; letter-spacing:.3px;
  text-transform:uppercase; color: var(--text-muted); flex-shrink:0;
}

/* ── Cards (KPI) ── */
.rcs-ctrl-cards {
  display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap:12px; padding:12px 28px 4px; flex-shrink:0;
}
.rcs-card {
  padding:16px 18px; border-radius:12px;
  background: var(--bg-card); border:1px solid var(--border);
}
.rcs-card-num { font-size:26px; font-weight:700; color: var(--text-primary); line-height:1; }
.rcs-card-num.tone-teal   { color: var(--teal); }
.rcs-card-num.tone-blue   { color: var(--blue-bright); }
.rcs-card-num.tone-green  { color: var(--green); }
.rcs-card-num.tone-red    { color: var(--red); }
.rcs-card-num.tone-amber  { color: var(--yellow); }
.rcs-card-lbl {
  font-size:11px; font-weight:600; letter-spacing:.4px; text-transform:uppercase;
  color: var(--text-muted); margin-top:8px;
}
.rcs-card-custo { background: var(--bg-card2); border-color: var(--accent-border); }
.rcs-card-custo .rcs-card-num { color: var(--blue-bright); font-size:22px; }
.rcs-card-click { cursor:pointer; transition: border-color .12s, box-shadow .12s, transform .05s; }
.rcs-card-click:hover { border-color: var(--blue-bright); box-shadow: 0 2px 12px rgba(59,130,246,.10); }
.rcs-card-click:active { transform: translateY(1px); }
.rcs-card-active { border-color: var(--blue-bright); box-shadow: 0 0 0 2px var(--blue-bright) inset; }
.rcs-cards-nota { padding:10px 28px 0; font-size:12px; line-height:1.5; color: var(--text-muted); max-width:920px; }

/* ── Tabela (card) ── */
.rcs-ctrl-tablewrap {
  margin:16px 28px 28px; border:1px solid var(--border); border-radius:14px;
  overflow:hidden; overflow-x:auto; background: var(--bg-card); flex-shrink:0;
}
.rcs-ctrl-table { width:100%; border-collapse:collapse; font-size:13.5px; color: var(--text-primary); }
.rcs-ctrl-table th {
  text-align:left; padding:11px 16px; background: var(--bg-card2);
  border-bottom:1px solid var(--border);
  font-size:11px; font-weight:600; letter-spacing:.3px; text-transform:uppercase; color: var(--text-muted);
}
.rcs-ctrl-table td { padding:11px 16px; border-bottom:1px solid var(--border2); vertical-align:middle; }
.rcs-ctrl-table tbody tr:last-child td { border-bottom:none; }
.rcs-ctrl-table tbody tr:hover td { background: var(--bg-card2); }
.rcs-cli { font-weight:600; }
.rcs-cli-wrap { display:inline-flex; align-items:center; gap:8px; }
.rcs-eye {
  display:inline-flex; align-items:center; justify-content:center;
  width:26px; height:26px; padding:0; border-radius:7px; cursor:pointer; flex-shrink:0;
  border:1px solid var(--border); background: var(--bg-card2); color: var(--text-secondary);
  transition: color .12s, border-color .12s, background .12s;
}
.rcs-eye:hover { color:#fff; background: var(--blue); border-color: var(--blue); }
.rcs-eye-off { opacity:.35; cursor:not-allowed; }
.rcs-eye-off:hover { color: var(--text-secondary); background: var(--bg-card2); border-color: var(--border); }
.rcs-mono { font-variant-numeric: tabular-nums; color: var(--text-secondary); }

/* ── Badges de status ── */
.rcs-badge {
  display:inline-block; padding:3px 11px; border-radius:20px;
  font-size:12px; font-weight:600; line-height:1.5; white-space:nowrap;
}
.rcs-badge-respondido { color: var(--green);       background: rgba(16,185,129,.14); }
.rcs-badge-lido       { color: var(--blue-bright);  background: rgba(96,165,250,.14); }
.rcs-badge-entregue   { color: var(--teal);         background: rgba(20,184,166,.14); }
.rcs-badge-sms        { color: var(--yellow);       background: rgba(245,158,11,.14); }
.rcs-badge-enviado    { color: var(--text-secondary); background: var(--bg-card2); }
.rcs-badge-falha      { color: var(--red);          background: rgba(239,68,68,.14); }

.rcs-empty { text-align:center; color: var(--text-muted); padding:28px; }

/* Breakdown por campanha/situacao (aba Disparos) */
.rcs-breakdown { margin:16px 28px 0; }
.rcs-breakdown-title { font-size:12px; font-weight:600; letter-spacing:.4px; text-transform:uppercase; color: var(--text-muted); margin-bottom:8px; }
.rcs-breakdown-wrap { border:1px solid var(--border); border-radius:14px; overflow:hidden; overflow-x:auto; background: var(--bg-card); }
.rcs-brk-row { cursor:pointer; }
.rcs-brk-row:hover td { background: var(--bg-card2); }
.rcs-brk-active td { background: rgba(59,130,246,.14); }
.rcs-brk-active td:first-child { box-shadow: inset 3px 0 0 var(--blue-bright); }

/* ── Aba Campanhas: dropdown de template + checkbox (padrao CRM) ── */
.rcs-select {
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding:8px 34px 8px 12px; border-radius:9px; font-size:13px; font-family:inherit; line-height:1.3;
  min-width:240px; max-width:100%; cursor:pointer;
  border:1px solid var(--border); background-color: var(--bg-input); color: var(--text-primary);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 10px center; background-size:16px;
  transition: border-color .15s, box-shadow .15s;
}
.rcs-select:hover { border-color: var(--blue-bright); }
.rcs-select:focus { outline:none; border-color: var(--blue-bright); box-shadow:0 0 0 3px rgba(59,130,246,.18); }
.rcs-select option { background: var(--bg-card); color: var(--text-primary); padding:8px; }
.rcs-select option:checked { background: var(--blue); color:#fff; }

.rcs-num {
  width:88px; padding:8px 12px; border-radius:9px; font-size:13px; font-family:inherit; line-height:1.3;
  border:1px solid var(--border); background: var(--bg-input); color: var(--text-primary);
  transition: border-color .15s, box-shadow .15s; text-align:right;
  -moz-appearance:textfield; appearance:textfield;   /* tira o spinner (setinhas) do number */
}
.rcs-num::-webkit-outer-spin-button, .rcs-num::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.rcs-num::placeholder { color: var(--text-muted); }
.rcs-num:hover { border-color: var(--blue-bright); }
.rcs-num:focus { outline:none; border-color: var(--blue-bright); box-shadow:0 0 0 3px rgba(59,130,246,.18); }
.rcs-camp-ativo { text-align:center; }
.rcs-camp-totais {
  margin:16px 28px; padding:22px 26px; border-radius:16px;
  background: var(--bg-card2); border:1px solid var(--accent-border);
}
.rcs-camp-totais-lbl { font-size:12px; font-weight:600; letter-spacing:.5px; text-transform:uppercase; color: var(--text-muted); }
.rcs-camp-totais-num { font-size:34px; font-weight:800; color: var(--blue-bright); line-height:1.1; margin-top:6px; }
.rcs-camp-totais-sub { font-size:14px; color: var(--text-secondary); margin-top:6px; }
.rcs-camp-totais-warn { font-size:13px; color: var(--yellow); margin-top:10px; font-weight:600; }
.rcs-camp-carimbo { margin:0 28px 12px; font-size:12px; color: var(--text-muted); }
.rcs-camp-carimbo-aviso { color: var(--yellow); font-weight:600; }
.rcs-check {
  appearance:none; -webkit-appearance:none;
  width:20px; height:20px; border-radius:6px; cursor:pointer; position:relative; vertical-align:middle;
  border:1px solid var(--border); background: var(--bg-input);
  transition: background .15s, border-color .15s, box-shadow .15s;
}
.rcs-check:hover { border-color: var(--blue-bright); }
.rcs-check:checked { background: var(--blue); border-color: var(--blue); }
.rcs-check:checked::after {
  content:''; position:absolute; left:6px; top:2px; width:5px; height:10px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);
}
.rcs-check:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(59,130,246,.18); }

/* Destaque das situacoes de EVENTO (fluxo pos-ativacao) na tabela de Campanhas */
.rcs-camp-evento td { background: rgba(0,122,255,0.06); }
.rcs-camp-evento td:first-child { border-left: 3px solid rgba(0,122,255,0.7); font-weight: 600; }

/* Linha do BOAS-VINDAS: somente leitura. Ela nao se configura aqui (cron + .env do host),
   entao nao ganha select nem checkbox — o tom neutro e o rotulo "cron" sinalizam isso. */
.rcs-camp-bv td { background: var(--bg-subtle, rgba(127,127,127,0.06)); }
.rcs-camp-bv td:first-child { border-left: 3px solid var(--text-muted); font-weight: 600; }
.rcs-camp-bv-tpl { font-size: 13px; color: var(--text-secondary); }
.rcs-camp-bv-lock {
  text-align: center; font-size: 11px; font-weight: 700; letter-spacing: .5px;
  text-transform: uppercase; color: var(--text-muted); cursor: help;
}

/* ── Jornada do lead: drill-down (drawer) + aba Jornada (timeline) ─────────────
   Vale aqui a regra do topo do arquivo: SÓ tokens. A primeira versao deste bloco
   cravou o hex do tema escuro (#16223d no campo, #0f1729 no drawer, #eef2fb no
   texto) e no tema claro o resultado era o campo de busca preto num painel branco
   e o drawer inteiro escuro. Campo e botao reusam o desenho do .rcs-ctrl-date e
   do .rcs-ctrl-btn-blue — mesma altura, mesmo foco, um visual só na tela. */

/* link do numero de leads (aba Campanhas) que abre o drill-down */
.rcs-leads-link { cursor:pointer; color: var(--blue-bright); text-decoration: underline dotted; }
.rcs-leads-link:hover { color: var(--blue); }

/* ── Drill-down: drawer lateral ── */
.rcs-drawer { position:fixed; inset:0; background: rgba(0,0,0,.55); display:none; z-index:2000000; }
.rcs-drawer.rcs-drawer-open { display:block; }
.rcs-drawer-panel {
  position:absolute; top:0; right:0; height:100%; width:min(920px,96vw);
  background: var(--bg-base); border-left:1px solid var(--border);
  display:flex; flex-direction:column;
}
.rcs-drawer-head {
  display:flex; align-items:center; gap:12px; padding:14px 18px;
  background: var(--bg-sidebar); border-bottom:1px solid var(--border);
}
.rcs-drawer-title { flex:1; font-size:15px; font-weight:700; color: var(--text-primary); }
.rcs-drawer-close {
  background:transparent; border:0; border-radius:6px; color: var(--text-muted);
  font-size:18px; line-height:1; padding:4px 8px; cursor:pointer;
  transition: color .15s, background .15s;
}
.rcs-drawer-close:hover { color: var(--text-primary); background: var(--bg-card2); }
.rcs-drawer-body { flex:1; overflow:auto; padding:12px 18px 24px; }

.rcs-drill-search {
  width:220px; padding:7px 10px; border-radius:8px; font-size:13px; font-family:inherit;
  border:1px solid var(--border); background: var(--bg-input); color: var(--text-primary);
  transition: border-color .15s, box-shadow .15s;
}
.rcs-drill-search::placeholder { color: var(--text-muted); }
.rcs-drill-search:hover { border-color: var(--blue-bright); }
.rcs-drill-search:focus { outline:none; border-color: var(--blue-bright); box-shadow:0 0 0 3px rgba(59,130,246,.18); }

.rcs-drill-cap { margin:4px 0 10px; font-size:12px; color: var(--text-muted); }
.rcs-drill-msg { padding:24px 4px; color: var(--text-secondary); }
.rcs-drill-table { width:100%; border-collapse:collapse; font-size:13px; }
.rcs-drill-table th {
  text-align:left; padding:8px 10px; font-size:11px; text-transform:uppercase; letter-spacing:.06em;
  color: var(--text-muted); border-bottom:1px solid var(--border);
}
.rcs-drill-table td { padding:8px 10px; color: var(--text-primary); border-bottom:1px solid var(--border2); }
.rcs-drill-motivo { color: var(--text-muted); }

/* ── Aba Jornada: barra de busca ── */
/* o wrap generico nao tem padding (nasceu pra tabela, que traz o seu nas celulas). A Jornada
   nao e tabela: sem isso os cards de produto encostam na borda de baixo do painel. */
.rcs-jornada-pane { padding:20px 22px 26px; }
.rcs-jornada-search { display:flex; align-items:stretch; gap:10px; margin:0 0 20px; }
.rcs-jornada-input {
  flex:1; max-width:420px; padding:9px 14px; border-radius:9px;
  font-size:14px; font-family:inherit; line-height:1.3;
  border:1px solid var(--border); background: var(--bg-input); color: var(--text-primary);
  transition: border-color .15s, box-shadow .15s;
}
.rcs-jornada-input::placeholder { color: var(--text-muted); }
.rcs-jornada-input:hover { border-color: var(--blue-bright); }
.rcs-jornada-input:focus { outline:none; border-color: var(--blue-bright); box-shadow:0 0 0 3px rgba(59,130,246,.18); }
.rcs-jornada-btn {
  padding:9px 20px; border-radius:9px; font-size:13px; font-weight:600; font-family:inherit;
  border:1px solid var(--blue); background: var(--blue); color:#fff; cursor:pointer;
  transition: background .15s, border-color .15s, transform .05s;
}
.rcs-jornada-btn:hover { background: var(--blue-dark); border-color: var(--blue-dark); }
.rcs-jornada-btn:active { transform: translateY(1px); }
.rcs-jornada-msg { padding:16px 2px; color: var(--text-secondary); }

/* ── Aba Jornada: resultado (cabecalho + envios + um card por produto) ── */
.rcs-jn-card { display:flex; flex-direction:column; gap:22px; }
.rcs-jn-head { display:flex; flex-direction:column; gap:3px; }
.rcs-jn-cnpj { font-size:15px; font-weight:600; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.rcs-jn-nome { font-size:13px; color: var(--text-secondary); }
.rcs-jn-bloco { display:flex; flex-direction:column; gap:9px; }
.rcs-jn-label {
  font-size:11px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color: var(--text-muted);
}
.rcs-jn-chips { display:flex; flex-wrap:wrap; gap:8px; }
.rcs-jn-chip {
  display:inline-flex; align-items:baseline; gap:8px; padding:5px 12px; border-radius:999px;
  border:1px solid var(--accent-border); background: var(--bg-card2); font-size:12.5px;
}
.rcs-jn-chip-sit { color: var(--text-primary); }
.rcs-jn-chip-data { font-size:12px; color: var(--text-muted); }
.rcs-jn-vazio { font-size:13px; color: var(--text-secondary); }
.rcs-jn-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(270px, 1fr)); gap:16px; }
.rcs-jn-prod {
  display:flex; flex-direction:column; gap:13px; padding:16px 18px;
  border:1px solid var(--border); border-radius:12px; background: var(--bg-card2);
}
.rcs-jn-prod-off { opacity:.6; }
.rcs-jn-prod-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rcs-jn-prod-nome { font-size:13.5px; font-weight:600; color: var(--text-primary); }
.rcs-jn-badge {
  padding:3px 10px; border-radius:999px; font-size:11px; font-weight:600;
  border:1px solid transparent; white-space:nowrap;
}
.rcs-jn-badge-red { color: var(--red); border-color: var(--red); }
.rcs-jn-badge-green { color: var(--green); border-color: var(--green); }
.rcs-jn-badge-off { color: var(--text-muted); border-color: var(--border); }
.rcs-jn-kv { display:flex; flex-direction:column; gap:7px; }
.rcs-jn-kv-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.rcs-jn-kv-k { font-size:12.5px; color: var(--text-secondary); }
.rcs-jn-kv-v { font-size:13px; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.rcs-jn-nota { font-size:12px; line-height:1.5; color: var(--text-muted); }

.rcs-row-hidden { display: none; }

/* ── Jornada como LISTA: resumo + flags de resultado ──────────────────────────
   Vale a regra do topo do arquivo: SÓ tokens, nada de hex cravado — senão o tema
   claro herda cor de tema escuro. */
.rcs-jornada-resumo { margin: 18px 0 14px; }
.rcs-jornada-resumo-linha { font-size: 15px; color: var(--text-secondary); }
.rcs-jornada-resumo-linha strong { color: var(--blue-bright); font-size: 18px; }
.rcs-jornada-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.rcs-jornada-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border); color: var(--text-secondary);
}
.rcs-jornada-row { cursor: pointer; }
.rcs-jornada-row:hover td { background: var(--bg-card); }
.rcs-jornada-flag { font-size: 12px; font-weight: 600; }

/* A cor mora na celula do resultado, não na linha toda: pintar a linha inteira de
   vermelho faz uma lista com muitos parados parecer erro de sistema. */
.rcs-flag-vermelha { color: var(--red); }
.rcs-flag-verde    { color: var(--green); }
.rcs-flag-azul     { color: var(--blue-bright); }
.rcs-flag-cinza    { color: var(--text-muted); }

/* Chips da Jornada como FILTRO (mesmo gesto dos cards da aba Disparos: clicar liga,
   clicar de novo desliga). Chip sem ninguem fica desabilitado em vez de sumir — a
   ausencia tambem e informacao ("zero parados" e uma boa noticia que precisa aparecer). */
.rcs-jornada-chip {
  cursor: pointer; font-family: inherit; background: transparent;
  transition: border-color .12s, background .12s, transform .05s;
}
.rcs-jornada-chip:hover:not(:disabled) { border-color: var(--blue-bright); background: var(--bg-card2); }
.rcs-jornada-chip:active:not(:disabled) { transform: translateY(1px); }
.rcs-jornada-chip-on { border-color: var(--blue-bright); background: var(--bg-card2); box-shadow: 0 0 0 1px var(--blue-bright) inset; }
.rcs-jornada-chip-vazio { opacity: .45; cursor: default; }

/* Jornada — nome bateu em varios clientes: lista pra escolher qual abrir */
.rcs-jornada-escolha { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.rcs-jornada-escolha-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; padding: 10px 12px; text-align: left; cursor: pointer;
  font-family: inherit; font-size: 13px;
  background: var(--bg-card); color: var(--text-primary);
  border: 1px solid var(--border); border-radius: 8px;
  transition: border-color .12s, background .12s;
}
.rcs-jornada-escolha-item:hover { border-color: var(--blue-bright); background: var(--bg-card2); }
.rcs-jornada-escolha-nome { font-weight: 600; }
.rcs-jornada-escolha-cnpj { color: var(--text-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── Aba Relatorio: leitura consolidada do periodo ──
   Pane com blocos livres (cards de metrica, glossario, botao) em vez de uma <table> só —
   sem padding proprio ficaria colado na borda do card (a wrap generica so tem margin,
   a padding de tabela vem da celula). Mesma solucao da .rcs-jornada-pane. */
.rcs-rel-pane { padding: 20px 22px 26px; }
.rcs-rel-acoes { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.rcs-rel-bloco { margin-bottom: 22px; }
.rcs-rel-titulo { font-size: 13px; font-weight: 700; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 10px; }
.rcs-rel-metricas { display: flex; flex-wrap: wrap; gap: 10px; }
.rcs-rel-metrica { display: flex; flex-direction: column; gap: 2px; min-width: 96px; padding: 10px 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 8px; }
.rcs-rel-metrica-label { font-size: 11px; color: var(--text-secondary); text-transform: uppercase; letter-spacing: .03em; }
.rcs-rel-metrica-valor { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
/* naoEnviados/desconhecidos: fora da conta de enviados/canal/custo -- destaque visual pra nao
   parecer que sao mais RCS/SMS enviados (motivo pelo qual so aparecem quando > 0) */
.rcs-rel-metrica-fora { border-style: dashed; border-color: var(--yellow); }
.rcs-rel-metrica-fora .rcs-rel-metrica-label { color: var(--yellow); }
.rcs-rel-dia { margin-bottom: 12px; }
.rcs-rel-dia-data { font-size: 12px; font-weight: 600; color: var(--text-primary); margin-bottom: 6px; }
.rcs-rel-motivo { display: flex; gap: 10px; align-items: baseline; padding: 6px 0; border-bottom: 1px solid var(--border); }
.rcs-rel-motivo-qtd { font-weight: 700; font-variant-numeric: tabular-nums; min-width: 44px; }
.rcs-rel-motivo-txt { color: var(--text-secondary); }
.rcs-rel-glossario-termo { font-weight: 700; min-width: 110px; }
.rcs-rel-tabela-wrap { overflow-x: auto; }
.rcs-rel-tabela { width: 100%; border-collapse: collapse; font-size: 12px; }
.rcs-rel-tabela th { text-align: left; padding: 8px 10px; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: var(--text-secondary); border-bottom: 1px solid var(--border); }
.rcs-rel-tabela td { padding: 8px 10px; border-bottom: 1px solid var(--border); white-space: nowrap; }

/* Drill-down: separa a FOTOGRAFIA (quem esta parado) da FILA (quem ainda vai receber) */
.rcs-drill-cap { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rcs-drill-cap-fila,
.rcs-drill-cap-avisado { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; border: 1px solid var(--border); }
.rcs-drill-cap-fila { color: var(--blue-bright); border-color: var(--blue-bright); }
.rcs-drill-cap-avisado { color: var(--text-secondary); }
.rcs-drill-marca { width: 18px; text-align: center; color: var(--blue-bright); font-size: 11px; }
.rcs-drill-fila td { background: var(--bg-card2); }
.rcs-drill-fila td:first-child { box-shadow: inset 2px 0 0 var(--blue-bright); }
.rcs-drill-cap-inerte { padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; color: var(--text-secondary); border: 1px dashed var(--border); }
.rcs-drill-nota { margin: 8px 0 4px; font-size: 11px; color: var(--text-secondary); line-height: 1.5; }
.rcs-drill-criterio { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0 2px; padding: 9px 11px; font-size: 11px; line-height: 1.55; color: var(--text-secondary); background: var(--bg-card); border: 1px solid var(--border); border-left: 3px solid var(--blue-bright); border-radius: 6px; }
.rcs-drill-criterio-tag { flex: none; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; font-size: 10px; color: var(--blue-bright); padding-top: 1px; }

/* Relatorio: estado terminal (degrau final) e resumo das flags */
.rcs-rel-sub { font-size: 11.5px; color: var(--text-secondary); line-height: 1.5; margin: 6px 0 10px; }
.rcs-rel-term { display: grid; grid-template-columns: 150px 1fr 96px; gap: 12px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--border); }
.rcs-rel-term:last-child { border-bottom: none; }
.rcs-rel-term-lbl { font-size: 12.5px; font-weight: 600; }
.rcs-rel-term-bar { height: 16px; background: var(--bg-card); border-radius: 3px; overflow: hidden; }
.rcs-rel-term-fill { display: block; height: 100%; }
.rcs-term-respondido { background: #16a34a; }
.rcs-term-lido { background: var(--blue-bright); }
.rcs-term-entregue { background: #6b8ff0; }
.rcs-term-enviado { background: #6b7280; }
.rcs-term-sms { background: #d97706; }
.rcs-term-falha { background: #dc2626; }
.rcs-rel-term-num { font-size: 12.5px; font-variant-numeric: tabular-nums; text-align: right; color: var(--text-secondary); }
.rcs-rel-flag-vermelha { border-top: 2px solid #dc2626; }
.rcs-rel-flag-verde { border-top: 2px solid #16a34a; }
.rcs-rel-flag-cinza { border-top: 2px solid #6b7280; }
.rcs-rel-flag-azul { border-top: 2px solid var(--blue-bright); }

/* ── Relatorio: trilha / horario / efeito (Task 10) — reusam .rcs-rel-tabela, ja existente ── */
/* coluna textual (definicao de "agiu", veredito do efeito): quebra linha, sem virar monospace.
   Selector com .rcs-rel-tabela td pra vencer a especificidade do nowrap generico da tabela. */
.rcs-rel-tabela td.rcs-rel-def { white-space: normal; color: var(--text-secondary); max-width: 320px; }
/* aviso "ainda nao medido": mesma linguagem visual do banner (amarelo, sobre fundo suave) —
   nunca some da pagina nem finge zero enquanto o robo novo nao esta em producao */
.rcs-rel-aviso { color: var(--yellow); background: var(--yellow-dim); padding: 10px 12px; border-radius: 8px; }
/* Slot com amostra pequena: visivel, nao escondido. Quem le precisa ver o numero e o aviso juntos. */
.rcs-rel-amostra-pequena { opacity: .72; }
.rcs-rel-amostra-pequena td:last-child { color: var(--yellow); font-size: .85em; }

/* Horario do disparo (aba Disparos): que horas sai hoje + filtro por hora.
   Os tres horarios sao sorteados a cada dia, entao a tela precisa dizer quais sao. */
.rcs-horas { padding: 12px 28px 0; }
.rcs-horas-title {
  font-size: 12px; font-weight: 600; letter-spacing: .04em;
  text-transform: uppercase; color: var(--text-muted);
}
.rcs-horas-hoje { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 8px; }
.rcs-horas-hoje-lbl { font-size: 13px; color: var(--text-secondary); }
.rcs-horas-hoje-val {
  font-variant-numeric: tabular-nums; font-size: 13px; font-weight: 600;
  color: var(--blue-bright);
}
.rcs-horas-hoje-nota { font-size: 12px; color: var(--text-muted); }
.rcs-horas-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.rcs-hora-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border); color: var(--text-secondary);
  cursor: pointer; font-family: inherit; background: transparent;
  transition: border-color .12s, background .12s, transform .05s;
}
.rcs-hora-chip:hover { border-color: var(--blue-bright); background: var(--bg-card2); }
.rcs-hora-chip:active { transform: translateY(1px); }
.rcs-hora-chip-on {
  border-color: var(--blue-bright); background: var(--bg-card2);
  box-shadow: 0 0 0 1px var(--blue-bright) inset; color: var(--text-primary);
}
.rcs-horas-nota { font-size: 12px; color: var(--text-muted); margin-top: 8px; }

/* utilitario de esconder — usado no lugar de style.display inline (ver CLAUDE.md / convencao do projeto) */
.rcs-oculto { display: none; }
