/* Cadastros: só layout. Cores e raios vêm de tokens.css; componentes de base.css. */

/* ---------- Casca da área ---------- */
.cad-page { min-height: 0; }
.cad-abas-painel { flex: none; }
.cad-abas-painel .tabs { border-bottom: 0; padding: 0 6px; }
.cad-corpo { flex: 1; min-height: 0; display: flex; flex-direction: column; }

/* ---------- Clientes (aba própria) ---------- */
.cad-clientes {
  flex: 1; min-height: 0;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--gap);
}
.cad-clientes.cad-com-detalhe { grid-template-columns: minmax(0, 1fr) minmax(360px, 44%); }
.cad-lista-pane, .cad-detalhe-pane { min-height: 0; }
.cad-toolbar {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  padding: 10px 12px; border-bottom: 1px solid var(--line);
}
.cad-busca { flex: 1 1 220px; max-width: 380px; min-width: 180px; }
.cad-busca .input { border-radius: var(--radius-pill); }
.cad-etapa { width: auto; min-width: 160px; flex: 0 0 auto; }
.cad-toolbar-acoes { margin-left: auto; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cad-tabela-wrap { flex: 1; min-height: 0; overflow: auto; }
.cad-table tbody tr { height: var(--table-row-h); }
.cad-table tbody tr[tabindex] { outline-offset: -2px; }
.cad-table td.cad-nome { max-width: 260px; }
.cad-table td.cad-nome .ellipsis { display: block; }
.cad-espaco td { height: auto; padding: 0; border: 0; }
.cad-rodape { gap: 8px; flex-wrap: wrap; }

/* Ficha à direita */
.cad-detalhe-pane { display: flex; flex-direction: column; }
.cad-det-cab {
  display: flex; flex-direction: column; gap: 8px;
  padding: 12px; border-bottom: 1px solid var(--line);
}
.cad-det-topo { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.cad-det-id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.cad-det-nome { font-size: var(--fs-4); font-weight: var(--fw-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cad-det-acoes { display: flex; align-items: center; gap: 6px; flex: none; }
.cad-det-selos { display: flex; flex-wrap: wrap; gap: 6px; }
.cad-det-corpo { flex: 1; min-height: 0; overflow: auto; padding: 12px; display: flex; flex-direction: column; }

/* Modal de novo cliente */
.cad-nota { margin: 0; }
.cad-clientes .field > span,
.modal .field > span { font-size: var(--fs-1); color: var(--ink-soft); }
.cad-sugestao {
  display: flex; flex-direction: column; gap: 6px;
  padding: 10px 12px; border-radius: var(--radius-sm);
  border: 1px dashed var(--line-strong); background: var(--surface-soft);
}
.cad-sugestao-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }
.cad-sugestao-item .ellipsis { min-width: 0; flex: 1; }

/* ---------- Procedimentos, prestadores e exames (HubMed) ---------- */

/* Cada aba é um painel que ocupa a área; a tabela rola dentro dele */
.cad-sec { flex: 1; min-height: 0; display: flex; flex-direction: column; container-type: inline-size; }
.cad-select { width: auto; min-width: 130px; max-width: 220px; height: var(--control-h-sm); font-size: var(--fs-1); }
.cad-prestador { min-width: 200px; max-width: 280px; }
.cad-situacao { min-width: 112px; }
.cad-toolbar-exames .cad-busca { flex: 1 1 200px; max-width: 300px; }
.cad-toolbar .search-input .input:focus { box-shadow: inset 0 0 0 1px var(--accent); }
.cad-toolbar .search-input { overflow: hidden; }
.cad-filtro-ativo { padding: 6px 12px; border-bottom: 1px solid var(--line); }
.cad-filtro-ativo.hidden { display: none; }
.cad-chip-x { border: 0; background: none; box-shadow: none; width: 18px; height: 18px; padding: 0; margin-left: 2px; color: inherit; }
.cad-chip-x:hover { background: var(--surface-muted); }

/* Tabelas compactas: uma linha por registro, texto curto, números alinhados */
.cad-table-ex td, .cad-table-prest td, .cad-table-proc td { height: var(--table-row-h); padding: 0 8px; vertical-align: middle; }
.cad-table-ex th, .cad-table-prest th, .cad-table-proc th { padding: 0 8px; white-space: nowrap; }
.cad-table th.num { text-align: right; }
.cad-table-ex td.num, .cad-table-ex th.num,
.cad-table-prest td.num, .cad-table-prest th.num,
.cad-table-proc td.num, .cad-table-proc th.num { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
.cad-table-ex td:not(.cad-ex-nome):not(.cad-acoes), .cad-table-prest td:not(.cad-ex-nome):not(.cad-acoes), .cad-table-proc td:not(.cad-ex-nome):not(.cad-acoes) { width: 1%; }
.cad-table-ex td.cad-ex-nome, .cad-table-prest td.cad-ex-nome, .cad-table-proc td.cad-ex-nome { width: 100%; max-width: 0; }
.cad-table-ex td.cad-ex-nome .ellipsis, .cad-table-proc td.cad-ex-nome .ellipsis, .cad-table-prest td.cad-ex-nome .ellipsis { display: block; }
.cad-table-prest td.cad-ex-nome { width: 30%; }
.cad-table-prest td:not(.cad-ex-nome) { width: auto; }
.cad-table-prest td.cad-col-rz { width: 26%; max-width: 0; }
.cad-table-prest td.cad-col-rz .ellipsis { display: block; }
.cad-col-prest { max-width: 200px; }
.cad-col-prest .ellipsis { display: block; }
.cad-table-ex td.cad-col-prest { width: 1%; }
.cad-cod { font-variant-numeric: tabular-nums; color: var(--ink-soft); white-space: nowrap; font-size: var(--fs-1); }
.cad-so-mob { display: none; }
.cad-acoes { white-space: nowrap; text-align: right; width: 1%; }
.cad-acoes-h { width: 1%; }
.cad-acoes-linha { display: inline-flex; align-items: center; gap: 2px; }
.cad-ico { padding: 0; }
/* Ação em andamento: o texto do passo ("Salvando no HubMed…") aparece no lugar do ícone */
.cad-ico[aria-busy="true"] { width: auto; padding: 0 8px; font-size: var(--fs-1); }
.cad-ico[aria-busy="true"] > span { white-space: nowrap; }
.cad-ico:disabled { opacity: .45; cursor: not-allowed; }
.cad-inativo td { color: var(--ink-faint); }
.cad-skel-linha { height: 14px; }
.cad-skel-ficha { height: 14px; margin-bottom: 8px; }
.cad-skel-ficha-menor { height: 14px; width: 70%; }
.cad-espaco td { padding: 0; border: 0; }
.cad-linha-erro td { background: var(--danger-soft); }
.cad-estado-col { white-space: nowrap; }
.cad-estado { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-1); color: var(--ink-faint); }
.cad-estado[data-tipo="salvando"] { color: var(--warn); }
.cad-estado[data-tipo="ok"] { color: var(--ok); }
.cad-estado[data-tipo="erro"] { color: var(--danger); white-space: normal; line-height: 1.35; align-items: flex-start; }
.cad-estado[data-tipo="erro"] svg { flex: none; margin-top: 2px; }
.cad-calc {
  font-size: var(--fs-1); color: var(--ink-faint);
  border-bottom: 1px dotted currentColor; cursor: help; margin-left: 2px;
}
.cad-perigo { color: var(--danger); }
.cad-perigo:hover { background: var(--danger-soft); }

/* Formulários em duas colunas (modal) */
.cad-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cad-form-full { grid-column: 1 / -1; }
.cad-form-grid .field > span:first-child { font-size: var(--fs-1); color: var(--ink-soft); }
.cad-form-grid .num { text-align: right; font-variant-numeric: tabular-nums; }
.cad-area { height: auto; min-height: 56px; padding: 8px 10px; resize: vertical; font: inherit; line-height: 1.4; }
.cad-pct { display: flex; align-items: center; gap: 6px; }
.cad-pct .input { flex: 1; }
.cad-bloco-local { display: flex; flex-direction: column; gap: 2px; padding-top: 4px; border-top: 1px solid var(--line); }
.cad-bloco-local strong { font-size: var(--fs-2, var(--fs-1)); }
.cad-lucro {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px;
  padding: 8px 10px; border-radius: var(--radius-sm); background: var(--surface-soft);
}
.cad-lucro strong { font-variant-numeric: tabular-nums; }
.cad-reaj-alvo { display: flex; flex-direction: column; gap: 2px; }

/* Prévia do reajuste */
.cad-previa { display: flex; flex-direction: column; gap: 8px; }
.cad-previa.hidden { display: none; }
.cad-previa-resumo { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--accent-soft); }
.cad-previa-tabela { max-height: 320px; overflow: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.cad-previa-tabela table.cad-table-previa { table-layout: fixed; width: 100%; }
.cad-table-previa th:nth-child(1), .cad-table-previa td:nth-child(1) { width: 34%; }
.cad-table-previa th:nth-child(2), .cad-table-previa td:nth-child(2) { width: 19%; }
.cad-table-previa th:nth-child(3), .cad-table-previa td:nth-child(3) { width: 19%; }
.cad-table-previa th:nth-child(4), .cad-table-previa td:nth-child(4) { width: 12%; }
.cad-table-previa th:nth-child(5), .cad-table-previa td:nth-child(5) { width: 16%; }
.cad-table-previa td.cad-ex-nome .ellipsis { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cad-table-previa td { white-space: normal; }
.cad-table-previa td.num { white-space: nowrap; }
.cad-table-previa td, .cad-table-previa th { height: auto; padding: 4px 8px; white-space: nowrap; }
.cad-table-previa th { position: sticky; top: 0; background: var(--surface); }
.cad-table-previa td .field-error { display: block; font-size: var(--fs-1); white-space: normal; }

/* Chip do filtro de procedimento */
.chip { display: inline-flex; align-items: center; gap: 2px; }

/* Botão com 2 palavras: em espaço estreito some o texto e fica o ícone (title e aria-label continuam) */
@container (max-width: 300px) { .cad-btn-txt { display: none; } }

/* ---------- Celular (<768px): um painel por vez, colunas secundárias saem ---------- */
@media (max-width: 767px) {
  .cad-so-desktop { display: none; }
  .cad-clientes.cad-com-detalhe { grid-template-columns: minmax(0, 1fr); }
  .cad-clientes.cad-com-detalhe .cad-lista-pane { display: none; }
  .cad-toolbar { padding: 8px; }
  .cad-busca { max-width: none; flex-basis: 100%; }
  .cad-etapa { flex: 1 1 140px; min-width: 0; }
  .cad-toolbar-acoes { margin-left: 0; width: 100%; }
  .cad-toolbar-acoes .btn { flex: 1; }
  .cad-det-cab { padding: 10px; }
  .cad-det-acoes .btn-sm span { display: none; }

  .cad-toolbar .cad-select, .cad-select { flex: 1 1 140px; min-width: 0; max-width: none; }
  .cad-prestador { min-width: 0; }
  .cad-toolbar-exames .cad-busca { flex-basis: 100%; max-width: none; }
  .cad-col-prest, .cad-col-bal, .cad-col-luc, .cad-col-rz, .cad-col-cnpj, .cad-col-cat { display: none; }
  .cad-so-mob { display: block; }
  .cad-table-ex th, .cad-table-ex td, .cad-table-prest th, .cad-table-prest td, .cad-table-proc th, .cad-table-proc td { padding: 0 6px; }
  .cad-table-ex td.cad-ex-nome .ellipsis { max-width: 100%; }
  .cad-table-ex td:not(.cad-ex-nome):not(.cad-acoes) { width: 1%; }
  .cad-acoes-linha { gap: 0; }
  .cad-form-grid { grid-template-columns: minmax(0, 1fr); }
  .cad-table-previa td, .cad-table-previa th { padding: 4px 5px; font-size: var(--fs-1); }
  .cad-table-previa th:nth-child(4), .cad-table-previa td:nth-child(4) { display: none; }
  .cad-table-previa th:nth-child(1), .cad-table-previa td:nth-child(1) { width: 40%; }
  .cad-table-previa th:nth-child(2), .cad-table-previa td:nth-child(2) { width: 25%; }
  .cad-table-previa th:nth-child(3), .cad-table-previa td:nth-child(3) { width: 25%; }
  .cad-table-previa th:nth-child(5), .cad-table-previa td:nth-child(5) { width: 10%; }
  .cad-abas-painel .tab { padding: 0 8px; }
  .cad-abas-painel .tab .ico { display: none; }
  .cad-col-sit { display: none; }
  .cad-table-ex th, .cad-table-ex td { padding: 0 4px; }
  .cad-table-ex th { white-space: normal; line-height: 1.15; }
  .cad-toolbar-exames .cad-toolbar-acoes .btn { flex: 1 1 0; min-width: 0; }
}
