/*
 * components.css — os componentes do sistema, no visual Leve (D80). Só tokens (D20).
 * Botão, cartão, campo, formulário, tabela, selo, alerta, estado vazio, cabeçalho de página,
 * abas, diálogo, cartões em grade, cor de pessoa, lista de detalhes, paginação, "Avançado".
 */

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--esp-2);
  min-height: var(--altura-controle);
  padding: 0 var(--esp-4);
  border: var(--borda-fina) solid var(--cor-borda-forte);
  border-radius: var(--raio-botao);
  background: var(--cor-superficie);
  color: var(--cor-texto);
  font-size: var(--texto-md);
  font-weight: var(--peso-medio);
  line-height: var(--altura-linha);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.btn:hover { background: var(--cor-superficie-2); color: var(--cor-texto); text-decoration: none; }
.btn--primario { background: var(--cor-acao); border-color: var(--cor-acao); color: var(--cor-sobre-acao); } /* terracota: a ação principal da tela (RN-M17-22) */
.btn--primario:hover { background: var(--cor-acao-forte); border-color: var(--cor-acao-forte); color: var(--cor-sobre-acao); }
.btn--perigo { background: var(--cor-superficie); border-color: var(--cor-erro); color: var(--cor-erro); }
.btn--perigo:hover { background: var(--cor-erro-suave); color: var(--cor-erro-texto); }
.btn--fantasma { border-color: transparent; background: transparent; color: var(--cor-marca); }
.btn--fantasma:hover { background: var(--cor-superficie-2); color: var(--cor-marca-forte); }
.btn--pequeno { min-height: var(--altura-controle-pequeno); padding: 0 var(--esp-3); }
.btn--grande { min-height: var(--altura-controle-grande); padding: 0 var(--esp-6); font-size: var(--texto-lg); }
.btn--largo { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
.btn .icone { width: 1rem; height: 1rem; }

/* ---------- Cartão ---------- */
.card {
  background: var(--cor-superficie);
  color: var(--cor-texto);
  border: var(--borda-fina) solid var(--cor-borda);
  border-radius: var(--raio-lg);
  box-shadow: var(--sombra-1);
}
.card__cabecalho {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-4);
  padding: var(--esp-5) var(--esp-5) var(--esp-4);
}
.card__cabecalho h2, .card__cabecalho h3 { font-size: var(--texto-lg); font-weight: var(--peso-forte); letter-spacing: 0; line-height: 1.5; }
.card__cabecalho > .texto-pequeno, .card__cabecalho > span { color: var(--cor-texto-suave); }
.card__corpo { padding: var(--esp-5); }
.card__cabecalho + .card__corpo { padding-top: 0; }
.card__cabecalho + .tabela-rolagem, .card__cabecalho + .compras { border-top: var(--borda-fina) solid var(--cor-borda); }
.card__rodape { padding: var(--esp-3) var(--esp-5); border-top: var(--borda-fina) solid var(--cor-borda); background: var(--cor-superficie-2); border-radius: 0 0 var(--raio-lg) var(--raio-lg); }
.card--destaque { border-color: var(--cor-marca); }
.card--compacto .card__corpo { padding: var(--esp-4); }

/* ---------- Cabeçalho de página: título + uma ação principal ---------- */
.pagina-cabecalho {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--esp-4);
  margin-bottom: var(--esp-5);
}
.pagina-cabecalho__texto { min-width: 0; max-width: 72ch; }
.pagina-cabecalho__subtitulo { color: var(--cor-texto-suave); margin-top: var(--esp-1); font-size: var(--texto-lg); line-height: 1.5; }
.pagina-cabecalho__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2); }
.migalhas { font-size: var(--texto-sm); color: var(--cor-texto-suave); margin-bottom: var(--esp-2); }
.migalhas a { color: var(--cor-texto-suave); }
.migalhas a:hover { color: var(--cor-texto); }

/* ---------- Formulários e campos ---------- */
.formulario { display: flex; flex-direction: column; gap: var(--esp-4); }
.formulario__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--esp-4); }
.col-12 { grid-column: span 12; }
.col-11 { grid-column: span 11; }
.col-10 { grid-column: span 10; }
.col-9 { grid-column: span 9; }
.col-8 { grid-column: span 8; }
.col-7 { grid-column: span 7; }
.col-6 { grid-column: span 6; }
.col-5 { grid-column: span 5; }
.col-4 { grid-column: span 4; }
.col-3 { grid-column: span 3; }
.col-2 { grid-column: span 2; }
@media (max-width: 700px) { .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2 { grid-column: span 12; } }
.formulario__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); align-items: center; padding-top: var(--esp-2); }
.formulario__secao { display: flex; flex-direction: column; gap: var(--esp-3); }
.formulario__secao-titulo { font-size: var(--texto-lg); font-weight: var(--peso-forte); padding-bottom: var(--esp-2); border-bottom: var(--borda-fina) solid var(--cor-borda); }

.campo { display: flex; flex-direction: column; gap: var(--esp-2); min-width: 0; }
.campo__rotulo { font-weight: var(--peso-medio); font-size: var(--texto-md); }
.campo__rotulo .obrigatorio { color: var(--cor-erro); margin-left: 2px; }
.campo__ajuda { font-size: var(--texto-xs); line-height: 1.3333; color: var(--cor-texto-suave); margin-top: -2px; }
.campo__erro { font-size: var(--texto-sm); font-weight: var(--peso-medio); color: var(--cor-erro); margin-top: -2px; }
.campo input[type="text"], .campo input[type="email"], .campo input[type="password"], .campo input[type="number"],
.campo input[type="date"], .campo input[type="time"], .campo input[type="tel"], .campo input[type="search"], .campo input[type="url"],
.campo input[type="month"], .campo input[type="file"], .campo select, .campo textarea {
  width: 100%;
  min-height: var(--altura-controle);
  padding: var(--esp-2) var(--esp-3);
  border: var(--borda-fina) solid var(--cor-borda-forte);
  border-radius: var(--raio-md);
  background: var(--cor-superficie);
  color: var(--cor-texto);
}
.campo input::placeholder, .campo textarea::placeholder { color: var(--cor-texto-suave); }
.campo input[type="file"] { padding: 3px var(--esp-1); cursor: pointer; }
.campo input[type="file"]::file-selector-button { margin-right: var(--esp-3); min-height: 32px; padding: 0 var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-sm); background: var(--cor-superficie-2); color: var(--cor-texto); font: inherit; font-weight: var(--peso-medio); cursor: pointer; }
.campo input:hover, .campo select:hover, .campo textarea:hover { border-color: var(--cor-texto); }
.campo textarea { min-height: 80px; resize: vertical; }
.campo input:focus-visible, .campo select:focus-visible, .campo textarea:focus-visible,
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: var(--cor-marca); outline: var(--borda-grossa) solid transparent; box-shadow: var(--anel-foco); }
.campo.campo--erro input, .campo.campo--erro select, .campo.campo--erro textarea, .campo input[aria-invalid="true"], .campo select[aria-invalid="true"], .campo textarea[aria-invalid="true"] { border-color: var(--cor-erro); }
.campo input:disabled, .campo select:disabled, .campo textarea:disabled { opacity: 0.5; cursor: not-allowed; background: var(--cor-superficie-2); }
.campo--marcar { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--esp-1) var(--esp-2); }
.campo--marcar .campo__rotulo { flex: 1 1 0; min-width: 0; }
.campo--marcar .campo__ajuda { flex: 1 1 100%; padding-left: calc(1rem + var(--esp-2)); margin-top: 0; }
.campo--marcar input { width: 1rem; height: 1rem; accent-color: var(--cor-marca); }
.campo--marcar .campo__rotulo { font-weight: var(--peso-normal); }
/* Campo de data com o calendário do navegador ao lado (RN-M17-25) */
.campo-data { position: relative; display: flex; align-items: center; gap: var(--esp-1); }
.campo-data input[type="text"] { flex: 1; min-width: 0; }
.campo-data__botao { flex: none; }
.campo__prefixo { position: relative; }
.campo__prefixo span { position: absolute; left: var(--esp-3); top: 50%; transform: translateY(-50%); color: var(--cor-texto-suave); font-size: var(--texto-md); }
.campo .campo__prefixo input[type="text"] { padding-left: calc(var(--esp-3) + 2.2em); }
/* No celular os campos ficam com 16px: abaixo disso o iPhone dá zoom na tela ao tocar. */
@media (max-width: 767px) {
  .campo input, .campo select, .campo textarea, .select-compacto, .compras-novo__linha input, .comentario-novo textarea,
  .tarefas-nova-lista__painel input[type="text"], .estoque-novo select, .campo-curto, .comprovante__procurar input[type="search"] { font-size: var(--texto-lg); }
}

/* Ações destrutivas numa linha só */
.form-inline { display: inline; }

/* Select solto (filtros do Início, matriz de permissões) */
.select-compacto {
  min-height: var(--altura-controle-pequeno);
  padding: var(--esp-1) var(--esp-2);
  border: var(--borda-fina) solid var(--cor-borda-forte);
  border-radius: var(--raio-md);
  background: var(--cor-superficie);
  color: var(--cor-texto);
  font-size: var(--texto-md);
}
.select-compacto:hover { border-color: var(--cor-texto); }

/* ---------- Tabela ---------- */
.tabela-rolagem { position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; } /* relative: o rótulo escondido (absoluto) de um campo na tabela não alarga a página */
.tabela th, .tabela td { text-align: left; padding: var(--esp-3) var(--esp-4); border-bottom: var(--borda-fina) solid var(--cor-borda); vertical-align: middle; }
.tabela th { height: var(--altura-linha-tabela); font-size: var(--texto-sm); font-weight: var(--peso-medio); color: var(--cor-texto-suave); white-space: nowrap; }
.tabela tbody tr:last-child td, .tabela tbody tr:last-child th { border-bottom: 0; }
.tabela tbody tr:hover > * { background: var(--cor-linha-hover); }
.tabela td.num, .tabela th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela .acoes { text-align: right; white-space: nowrap; }
/* Valor que é link fica na cor do texto: verde em número parece "positivo" */
.tabela td.num a { color: var(--cor-texto); }
.tabela td.num a:hover { color: var(--cor-marca); }
.tabela a.linha-link, a.linha-link { color: var(--cor-texto); font-weight: var(--peso-medio); }
.tabela a.linha-link:hover, a.linha-link:hover { color: var(--cor-marca); }
.tabela--compacta th, .tabela--compacta td { padding: var(--esp-2) var(--esp-3); }
.tabela--compacta th { height: auto; }
.tabela tfoot th, .tabela tfoot td { border-top: var(--borda-fina) solid var(--cor-borda-forte); border-bottom: 0; }
.tabela tfoot th { font-size: var(--texto-md); color: var(--cor-texto); }
a.selo { text-decoration: none; }
a.selo:hover { filter: brightness(0.95); text-decoration: underline; }

/* Tabela empilhada: no celular, cada linha vira um bloco e cada célula mostra o rótulo da coluna (data-rotulo). */
.linha--apagada td { color: var(--cor-texto-fraco); }
.linha--atual td { background: var(--cor-linha-selecionada); }
@media (max-width: 700px) {
  .tabela--empilhada thead { display: none; }
  .tabela--empilhada tr { display: block; padding: var(--esp-2) 0; border-bottom: var(--borda-fina) solid var(--cor-borda); }
  .tabela--empilhada tbody tr:last-child { border-bottom: 0; }
  .tabela--empilhada td { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--esp-1) var(--esp-3); border: 0; padding: var(--esp-1) var(--esp-4); text-align: left; min-width: 0; }
  .tabela--empilhada td > * { min-width: 0; overflow-wrap: anywhere; }
  .tabela--empilhada td.num { text-align: right; }
  .tabela--empilhada td[data-rotulo]::before { content: attr(data-rotulo); flex: 0 0 38%; color: var(--cor-texto-suave); font-size: var(--texto-sm); padding-top: 1px; text-align: left; }
  .tabela--empilhada td.acoes { justify-content: flex-end; }
  .tabela--empilhada tbody tr:hover > * { background: transparent; }
  .tabela--empilhada tfoot tr { display: block; padding: var(--esp-2) 0; }
  .tabela--empilhada tfoot th { display: block; border: 0; padding: var(--esp-1) var(--esp-4); }
  .tabela--empilhada tfoot td:empty { display: none; }
}

/* ---------- Selo (badge) e cor de pessoa ----------
 * Estado vai sempre com palavra e ponto (o ponto é o ::before); o selo neutro e o de pessoa não têm ponto. */
.selo {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 22px;
  padding: 0 10px;
  border-radius: var(--raio-pill);
  border: var(--borda-fina) solid var(--cor-borda);
  font-size: var(--texto-xs); line-height: 1.3333; font-weight: var(--peso-medio);
  background: var(--cor-superficie-2); color: var(--cor-texto);
  white-space: nowrap;
}
.selo--sucesso, .selo--aviso, .selo--erro, .selo--info, .selo--pendente, .selo--marca { border-color: transparent; }
.selo--sucesso::before, .selo--aviso::before, .selo--erro::before, .selo--info::before, .selo--pendente::before {
  content: ""; width: 6px; height: 6px; border-radius: var(--raio-pill); background: var(--cor-ponto, currentColor); flex: none;
}
.selo--sucesso { background: var(--cor-sucesso-suave); color: var(--cor-sucesso-texto); --cor-ponto: var(--cor-sucesso); }
.selo--aviso { background: var(--cor-aviso-suave); color: var(--cor-aviso-texto); --cor-ponto: var(--cor-aviso); }
.selo--erro { background: var(--cor-erro-suave); color: var(--cor-erro-texto); --cor-ponto: var(--cor-erro); }
.selo--info { background: var(--cor-info-suave); color: var(--cor-info-texto); --cor-ponto: var(--cor-info); }
.selo--pendente { background: var(--cor-pendente-suave); color: var(--cor-pendente-texto); --cor-ponto: var(--cor-pendente); }
.selo--marca { background: var(--cor-marca-suave); color: var(--cor-marca); }

.ponto-cor { display: inline-block; width: 0.5rem; height: 0.5rem; border-radius: var(--raio-pill); background: var(--cor-texto-fraco); flex: none; }
[data-cor="azul"] { --cor-pessoa: var(--paleta-azul); }
[data-cor="verde"] { --cor-pessoa: var(--paleta-verde); }
[data-cor="laranja"] { --cor-pessoa: var(--paleta-laranja); }
[data-cor="roxo"] { --cor-pessoa: var(--paleta-roxo); }
[data-cor="rosa"] { --cor-pessoa: var(--paleta-rosa); }
[data-cor="vermelho"] { --cor-pessoa: var(--paleta-vermelho); }
[data-cor="amarelo"] { --cor-pessoa: var(--paleta-amarelo); }
[data-cor="ciano"] { --cor-pessoa: var(--paleta-ciano); }
[data-cor="marrom"] { --cor-pessoa: var(--paleta-marrom); }
[data-cor="cinza"] { --cor-pessoa: var(--paleta-cinza); }
.ponto-cor[data-cor] { background: var(--cor-pessoa); }
/* Selo de pessoa/núcleo: neutro, com o ponto na cor da pessoa (o texto fica legível em qualquer cor) */
.selo[data-cor] { background: color-mix(in srgb, var(--cor-pessoa) 10%, var(--cor-superficie)); border-color: color-mix(in srgb, var(--cor-pessoa) 30%, var(--cor-superficie)); color: var(--cor-texto); }

/* ---------- Alertas (retorno de ação) ---------- */
.alertas { display: flex; flex-direction: column; gap: var(--esp-2); margin-bottom: var(--esp-4); }
.alerta {
  display: flex; align-items: flex-start; gap: var(--esp-3);
  padding: var(--esp-4);
  border-radius: var(--raio-lg);
  border: var(--borda-fina) solid var(--cor-borda);
  background: var(--cor-superficie);
  color: var(--cor-texto);
}
.alerta > .icone { width: 1.25rem; height: 1.25rem; margin-top: 0; color: var(--cor-texto-suave); }
.alerta > div { min-width: 0; flex: 1 1 auto; }
.alerta a:not(.btn) { color: inherit; text-decoration: underline; font-weight: var(--peso-medio); }
.alerta--sucesso { background: var(--cor-sucesso-suave); border-color: var(--cor-sucesso-suave); color: var(--cor-sucesso-texto); }
.alerta--erro { background: var(--cor-erro-suave); border-color: var(--cor-erro-suave); color: var(--cor-erro-texto); }
.alerta--aviso { background: var(--cor-aviso-suave); border-color: var(--cor-aviso-suave); color: var(--cor-aviso-texto); }
.alerta--info { background: var(--cor-info-suave); border-color: var(--cor-info-suave); color: var(--cor-info-texto); }
.alerta--sucesso > .icone, .alerta--erro > .icone, .alerta--aviso > .icone, .alerta--info > .icone { color: currentColor; }
.alerta code { background: color-mix(in srgb, currentColor 10%, transparent); padding: 0 var(--esp-1); border-radius: var(--raio-xs); }

/* ---------- Estado vazio: diz o que fazer ---------- */
.estado-vazio {
  text-align: center;
  padding: var(--esp-7) var(--esp-4);
  border: var(--borda-fina) dashed var(--cor-borda);
  border-radius: var(--raio-lg);
  color: var(--cor-texto-suave);
  display: flex; flex-direction: column; align-items: center; gap: var(--esp-2);
}
.estado-vazio > .icone:first-child {
  width: 64px; height: 64px; padding: 16px; margin-bottom: var(--esp-2);
  border-radius: var(--raio-pill); background: var(--cor-superficie-2); color: var(--cor-texto-suave);
  stroke-width: 1.75; overflow: visible; box-sizing: border-box;
}
.estado-vazio h3, .estado-vazio h2 { color: var(--cor-texto); font-size: var(--texto-dialogo); letter-spacing: var(--espaco-letras-secao); line-height: 1.5556; }
.estado-vazio p { max-width: 52ch; }
.estado-vazio .btn { margin-top: var(--esp-4); }

/* ---------- Abas: controle segmentado (fundo cinza, a ativa em branco com sombra) ---------- */
.abas {
  display: inline-flex; flex-wrap: wrap; gap: 2px; max-width: 100%;
  padding: var(--esp-1);
  border-radius: var(--raio-md);
  background: var(--cor-superficie-2);
  margin-bottom: var(--esp-4);
}
.abas a {
  display: inline-flex; align-items: center; gap: var(--esp-2);
  padding: 6px var(--esp-3);
  border-radius: var(--raio-sm);
  color: var(--cor-texto-suave); font-weight: var(--peso-medio); white-space: nowrap;
}
.abas a:hover { color: var(--cor-texto); text-decoration: none; }
.abas a[aria-current="page"] { background: var(--cor-fundo); color: var(--cor-texto); box-shadow: var(--sombra-1); }

/* Abas em forma de fichas (chips): escolhas rápidas (projeção até…, casas, listas) */
.abas--chips { display: flex; background: transparent; padding: 0; margin-bottom: 0; gap: var(--esp-2); }
.abas--chips a { border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-pill); padding: var(--esp-1) var(--esp-3); margin: 0; font-size: var(--texto-md); color: var(--cor-texto); background: var(--cor-superficie); }
.abas--chips a:hover { border-color: var(--cor-borda-forte); }
.abas--chips a[aria-current="page"] { background: var(--cor-marca-suave); border-color: var(--cor-marca); color: var(--cor-marca); box-shadow: none; }
.campo__curto { width: 9em; }
.texto-erro { color: var(--cor-erro); }
.selo--pequeno { padding: 0 var(--esp-2); min-height: 18px; margin-left: var(--esp-1); white-space: normal; }

/* Escolha por rádio, em linha ou em blocos (tipo da conta, repetição) */
.escolha-radio { display: flex; flex-wrap: wrap; gap: var(--esp-2) var(--esp-4); }
.escolha-radio label { display: inline-flex; align-items: center; gap: var(--esp-2); cursor: pointer; }
.escolha-radio--blocos { gap: var(--esp-2); margin-bottom: var(--esp-3); }
.escolha-radio--blocos label { min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); }
.escolha-radio--blocos label:hover { border-color: var(--cor-texto); }
.escolha-radio--blocos label:has(input:checked) { border-color: var(--cor-marca); background: var(--cor-marca-suave); color: var(--cor-marca); font-weight: var(--peso-medio); }
[data-mostrar-se][hidden], [data-mostrar-se-opcao][hidden] { display: none !important; }

/* ---------- Diálogo ---------- */
.dialogo { border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); padding: 0; max-width: min(520px, calc(100vw - 2 * var(--esp-4))); box-shadow: var(--sombra-3); background: var(--cor-superficie); color: var(--cor-texto); }
.dialogo::backdrop { background: var(--cor-sobreposicao); }
.dialogo__corpo { padding: var(--esp-5); display: flex; flex-direction: column; gap: var(--esp-4); }
.dialogo h2, .dialogo h3 { font-size: var(--texto-dialogo); letter-spacing: var(--espaco-letras-secao); }

/* ---------- Grade de cartões (imóveis etc.) ---------- */
.cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--esp-4); }
.cartao-item { display: flex; flex-direction: column; gap: var(--esp-2); padding: var(--esp-4); color: var(--cor-texto); }
.cartao-item:hover { text-decoration: none; color: var(--cor-texto); box-shadow: var(--sombra-3); }
.cartao-item__titulo { font-weight: var(--peso-forte); font-size: var(--texto-lg); line-height: 1.5; }
.cartao-item__linha { display: flex; flex-wrap: wrap; gap: var(--esp-2); align-items: center; font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.cartao-item__alertas { display: flex; flex-wrap: wrap; gap: var(--esp-1); margin-top: auto; }

/* ---------- Lista de detalhes (ficha) ---------- */
.detalhes { display: grid; grid-template-columns: minmax(140px, 180px) 1fr; gap: var(--esp-2) var(--esp-4); margin: 0; }
.detalhes dt { color: var(--cor-texto-suave); font-size: var(--texto-sm); padding-top: 2px; }
.detalhes dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) { .detalhes { grid-template-columns: 1fr; gap: 0 } .detalhes dt { margin-top: var(--esp-3); } }

/* ---------- Filtros de lista ---------- */
.filtros { display: flex; flex-wrap: wrap; gap: var(--esp-2); align-items: end; margin-bottom: var(--esp-4); }
.filtros .campo { flex: 1 1 160px; }
.filtros .campo--busca { flex: 2 1 240px; }
.filtros .campo input, .filtros .campo select { min-height: var(--altura-controle); }

/* ---------- "Avançado" / dados complementares ---------- */
.avancado { border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); background: var(--cor-superficie); }
.avancado > summary { cursor: pointer; min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-4); font-weight: var(--peso-medio); color: var(--cor-marca); list-style: none; display: flex; align-items: center; gap: var(--esp-2); border-radius: var(--raio-lg); }
.avancado > summary:hover { color: var(--cor-marca-forte); }
.avancado > summary::-webkit-details-marker { display: none; }
.avancado > summary::before { content: "▸"; font-size: var(--texto-xs); color: var(--cor-texto-suave); }
.avancado[open] > summary::before { content: "▾"; }
.avancado__corpo { padding: 0 var(--esp-4) var(--esp-4); display: flex; flex-direction: column; gap: var(--esp-4); }
.avancado__corpo.formulario__grade { display: grid; }
/* Variante leve: um link discreto logo abaixo de um campo ("Não está na lista? Cadastre aqui") */
.avancado--leve { border: 0; background: transparent; margin-top: var(--esp-2); }
.avancado--leve > summary { padding: 0; min-height: 0; font-size: var(--texto-md); font-weight: var(--peso-normal); }
.avancado--leve > .avancado__corpo { padding: var(--esp-3) 0 0; }

/* ---------- Paginação ---------- */
.paginacao { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2); margin-top: var(--esp-4); font-size: var(--texto-sm); color: var(--cor-texto-suave); }

/* ---------- Linhas dinâmicas (donos do imóvel) ---------- */
.linhas-dinamicas { display: flex; flex-direction: column; gap: var(--esp-2); }
.linha-dinamica { display: grid; grid-template-columns: minmax(0, 1fr) 120px auto; gap: var(--esp-2); align-items: end; }
@media (max-width: 600px) { .linha-dinamica { grid-template-columns: 1fr 100px auto; } }
/* Na matrícula (RN-M6-15): pessoa, nome novo, papel, % e tirar */
.linha-dinamica--registro { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, 1fr) 100px auto; padding-bottom: var(--esp-2); border-bottom: var(--borda-fina) solid var(--cor-borda); }
@media (max-width: 900px) { .linha-dinamica--registro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .linha-dinamica--registro > [data-remover-linha] { grid-column: 1 / -1; justify-self: end; } }

/* ---------- Escolha de cor ---------- */
.escolha-cores { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.escolha-cores label { display: inline-flex; align-items: center; gap: var(--esp-1); padding: var(--esp-1) var(--esp-2); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-pill); cursor: pointer; font-size: var(--texto-sm); }
.escolha-cores input { accent-color: var(--cor-pessoa, var(--cor-marca)); }
.escolha-cores label:has(input:checked) { border-color: var(--cor-pessoa); background: color-mix(in srgb, var(--cor-pessoa) 14%, transparent); }

/* ---------- Tile de número (dashboard) ---------- */
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--esp-4); }
.tile { display: block; padding: var(--esp-5); color: var(--cor-texto); }
a.tile:hover { text-decoration: none; color: var(--cor-texto); box-shadow: var(--sombra-2); }
.tile__valor { font-size: var(--texto-2xl); font-weight: var(--peso-titulo); letter-spacing: var(--espaco-letras-titulo); font-variant-numeric: tabular-nums; line-height: 1.2; margin-top: var(--esp-1); }
.tile__rotulo { color: var(--cor-texto-suave); font-size: var(--texto-md); font-weight: var(--peso-medio); margin-top: var(--esp-1); }
.tile__rotulo:first-child { margin-top: 0; }

/* ---------- Histórico (linha do tempo de uma ficha) ---------- */
.historico__item { padding-block: var(--esp-1); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.historico__item:last-child { border-bottom: 0; }
.historico__mudancas { display: inline; }
.historico__mudancas > summary { display: inline; cursor: pointer; color: var(--cor-marca); }
.historico__mudancas[open] > summary { display: block; margin-top: var(--esp-1); }
.detalhes--compacta { margin-top: var(--esp-2); font-size: var(--texto-xs); }

/* ---------- Blocos do Início ---------- */
.blocos { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--esp-4); }
.card__cabecalho h2 a { color: var(--cor-texto); text-decoration: none; }
.card__cabecalho h2 a:hover { color: var(--cor-marca); text-decoration: underline; }
.bloco--erro .card__cabecalho h2 a { color: var(--cor-erro-texto); }
/* Listas dentro de cartão do Início: uma linha por item, separadas por fio (sem caixinha por item) */
.card__corpo > .lista-limpa.pilha--justa > li + li { padding-top: var(--esp-2); border-top: var(--borda-fina) solid var(--cor-borda); }
/* ---------- Avisos (sino) ---------- */
.aviso-item { padding: var(--esp-4); border-radius: var(--raio-lg); border: var(--borda-fina) solid var(--cor-borda); background: var(--cor-superficie); }
.aviso-item--novo { border-color: var(--cor-marca); background: var(--cor-marca-suave); }
.aviso-item__texto { margin-top: var(--esp-2); white-space: pre-line; }

/* ---------- Guia visual ---------- */
.amostra-cor { display: flex; align-items: center; gap: var(--esp-2); font-size: var(--texto-sm); }
.amostra-cor__bloco { width: 36px; height: 36px; border-radius: var(--raio-sm); border: var(--borda-fina) solid var(--cor-borda); flex: none; }
.amostras { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--esp-3); }

/* ---------- Movimento do extrato (conciliação, M5) ---------- */
.texto-sucesso { color: var(--cor-sucesso-texto); }
.movimento__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--esp-3); }
.movimento__descricao { margin-top: var(--esp-1); overflow-wrap: anywhere; }
.movimento__valor { text-align: right; font-weight: var(--peso-forte); font-size: var(--texto-lg); white-space: nowrap; }
.movimento__sugestao { padding: var(--esp-3); border-radius: var(--raio-md); background: var(--cor-superficie-2); }
.movimento__sugestao p { margin: 0; }
.movimento__acoes { align-items: flex-start; }
.movimento__acoes .avancado--leve { margin-top: 0; padding-top: var(--esp-2); }
.movimento__acoes .avancado__corpo input[type="text"], .movimento__acoes .avancado__corpo select { flex: 1 1 240px; min-width: 0; }
.escolhas { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--esp-2); }
.escolhas legend { padding: 0; margin-bottom: var(--esp-2); font-weight: var(--peso-medio); }
.escolha-linha { display: flex; gap: var(--esp-2); align-items: baseline; cursor: pointer; }

/* ---------- Linha do tempo (andamentos do processo, M8) ---------- */
.texto-grande { font-size: var(--texto-lg); margin: 0; }
.linha-do-tempo { display: flex; flex-direction: column; gap: var(--esp-3); border-left: var(--borda-grossa) solid var(--cor-borda); padding-left: var(--esp-4); }
.linha-do-tempo > li { position: relative; overflow-wrap: anywhere; }
.linha-do-tempo > li::before { content: ""; position: absolute; left: calc(-1 * var(--esp-4) - 5px); top: 6px; width: 8px; height: 8px; border-radius: var(--raio-pill); background: var(--cor-marca); }

/* ---------- Tarefas (M10, D81): o quadro com A fazer, Fazendo e Feito; no celular, uma coluna embaixo da outra ---------- */
.tarefa-nova { margin-bottom: var(--esp-4); }
.tarefa-nova .fileira--espacada { margin-top: var(--esp-3); align-items: flex-start; }
.quadro { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--esp-4); align-items: start; }
@media (min-width: 900px) { .quadro { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.quadro__coluna { display: flex; flex-direction: column; gap: var(--esp-3); min-width: 0; padding: var(--esp-3); border-radius: var(--raio-lg); background: var(--cor-fundo-recuado); }
.quadro__titulo { display: flex; justify-content: space-between; align-items: baseline; gap: var(--esp-2); margin: 0; padding: var(--esp-1) var(--esp-2) 0; font-size: var(--texto-md); font-weight: var(--peso-forte); }
.quadro__n { color: var(--cor-texto-suave); font-weight: var(--peso-medio); }
.quadro__vazio { margin: 0; padding: 0 var(--esp-2) var(--esp-2); font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.quadro__mais > summary { cursor: pointer; padding: var(--esp-1) var(--esp-2); font-size: var(--texto-sm); color: var(--cor-marca); }
.quadro__mais-corpo { display: flex; flex-direction: column; gap: var(--esp-3); margin-top: var(--esp-2); }
.tarefa-cartao { display: flex; flex-direction: column; gap: var(--esp-2); padding: var(--esp-3) var(--esp-4); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-md); background: var(--cor-superficie); overflow-wrap: anywhere; }
.tarefa-cartao__titulo { margin: 0; font-size: var(--texto-md); font-weight: var(--peso-medio); line-height: var(--altura-linha-titulo); }
.tarefa-cartao__titulo a { color: var(--cor-texto); }
.tarefa-cartao__onde, .tarefa-cartao__nota { margin: 0; font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.tarefa-cartao__linha { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-3); font-size: var(--texto-sm); }
.tarefa-cartao__quem { display: inline-flex; align-items: center; gap: var(--esp-2); }
.tarefa-cartao__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); padding-top: var(--esp-3); border-top: var(--borda-fina) solid var(--cor-borda); }
.tarefa-cartao--feita .tarefa-cartao__titulo a { color: var(--cor-texto-suave); }
/* O círculo de marcar fica para a lista de compras. */
.tarefa__marcar { width: 28px; height: 28px; flex: 0 0 28px; border-radius: var(--raio-pill); border: var(--borda-grossa) solid var(--cor-borda-forte); background: var(--cor-superficie); color: var(--cor-sucesso-texto); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.tarefa__marcar:hover { border-color: var(--cor-sucesso); background: var(--cor-sucesso-suave); }
.tarefa__marcar .icone { width: 16px; height: 16px; }
.compra:hover { background: var(--cor-linha-hover); }
.bloco__separado { margin-top: var(--esp-3); padding-top: var(--esp-3); border-top: var(--borda-fina) solid var(--cor-borda); }

/* ---------- Agenda (M21): mês, semana, dia e próximos dias; a cor é a da pessoa (--cor-pessoa) ---------- */
.so-celular { display: none; }
@media (max-width: 700px) { .so-celular { display: block; } .so-computador { display: none; } }
.escolha-pessoas { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.escolha-pessoas label { display: inline-flex; align-items: center; gap: var(--esp-1); padding: var(--esp-1) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-pill); cursor: pointer; font-size: var(--texto-sm); min-height: 36px; }
.escolha-pessoas input { accent-color: var(--cor-pessoa, var(--cor-marca)); }
.escolha-pessoas label:has(input:checked) { border-color: var(--cor-pessoa, var(--cor-marca)); background: color-mix(in srgb, var(--cor-pessoa, var(--cor-marca)) 14%, transparent); }
.agenda-barra { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--esp-3); margin-bottom: var(--esp-4); }
.agenda-pessoas { margin: 0; }
.agenda-pessoas a { display: inline-flex; align-items: center; gap: var(--esp-1); }
.agenda-camadas { position: relative; }
.agenda-camadas > summary { list-style: none; cursor: pointer; }
.agenda-camadas > summary::-webkit-details-marker { display: none; }
.agenda-camadas__painel { position: absolute; right: 0; top: calc(100% + var(--esp-2)); z-index: var(--z-menu); width: min(300px, 90vw); padding: var(--esp-4); display: grid; gap: var(--esp-2); box-shadow: var(--sombra-2); }
.agenda-bloco { margin-bottom: var(--esp-5); }
.agenda-abas { margin-bottom: var(--esp-3); }
.agenda-nav { display: flex; align-items: center; gap: var(--esp-2); margin-bottom: var(--esp-3); flex-wrap: wrap; }
.agenda-nav__titulo { font-size: var(--texto-xl); margin: 0 0 0 var(--esp-2); }
.agenda-vazio { margin-top: var(--esp-3); }

.agenda-item { display: flex; align-items: flex-start; gap: var(--esp-2); padding: var(--esp-2) var(--esp-3); border-radius: var(--raio-md); color: var(--cor-texto); text-decoration: none; background: color-mix(in srgb, var(--cor-pessoa, var(--cor-texto-fraco)) 8%, var(--cor-superficie)); border-left: 0; }
.agenda-item:hover { text-decoration: none; background: color-mix(in srgb, var(--cor-pessoa, var(--cor-texto-fraco)) 16%, var(--cor-superficie)); }
.agenda-item__cores { display: inline-flex; gap: 2px; padding-top: 0.35em; flex: none; color: var(--cor-texto-suave); }
.agenda-item__cores .icone { width: 14px; height: 14px; }
.agenda-item__hora { flex: 0 0 6.6em; font-variant-numeric: tabular-nums; font-size: var(--texto-sm); color: var(--cor-texto-suave); padding-top: 0.1em; }
.agenda-item__texto { min-width: 0; overflow-wrap: anywhere; }
.agenda-item--camada { border: var(--borda-fina) dashed var(--cor-borda-forte); background: var(--cor-superficie-2); }
.agenda-item--compacto { padding: 2px var(--esp-1); gap: var(--esp-1); font-size: var(--texto-xs); border-radius: var(--raio-xs); }
.agenda-item--compacto .agenda-item__cores { padding-top: 0.3em; }
.agenda-item--compacto .agenda-item__cores .ponto-cor { width: 0.6em; height: 0.6em; }
.agenda-item--compacto .agenda-item__texto { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agenda-item--compacto .agenda-item__hora { flex: none; padding: 0; font-size: inherit; }

.agenda-mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); overflow: hidden; background: var(--cor-superficie); }
.agenda-mes__cabeca { padding: var(--esp-2); font-size: var(--texto-sm); font-weight: var(--peso-medio); color: var(--cor-texto-suave); border-bottom: var(--borda-fina) solid var(--cor-borda); background: var(--cor-superficie-2); }
.agenda-mes__dia { min-height: 112px; padding: var(--esp-1); border-right: var(--borda-fina) solid var(--cor-borda); border-bottom: var(--borda-fina) solid var(--cor-borda); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.agenda-mes__dia:nth-child(7n) { border-right: 0; }
.agenda-mes__dia.is-fora { background: var(--cor-linha-hover); }
.agenda-mes__dia.is-fora .agenda-mes__numero { color: var(--cor-texto-fraco); }
.agenda-mes__numero { align-self: flex-start; min-width: 1.9em; height: 1.9em; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--raio-pill); font-size: var(--texto-sm); font-weight: var(--peso-medio); color: var(--cor-texto); }
.agenda-mes__dia.is-hoje .agenda-mes__numero { background: var(--cor-marca); color: var(--cor-sobre-marca); }
.agenda-mes__itens { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.agenda-mes__mais { font-size: var(--texto-xs); padding-left: var(--esp-1); }
.agenda-mes__pontos { display: none; }
@media (max-width: 700px) {
  .agenda-mes__dia { min-height: 56px; align-items: center; }
  .agenda-mes__itens { display: none; }
  .agenda-mes__pontos { display: flex; gap: 2px; flex-wrap: wrap; justify-content: center; }
  .agenda-mes__pontos .ponto-cor { width: 6px; height: 6px; }
  .agenda-mes__cabeca { text-align: center; padding: var(--esp-1); }
}

.agenda-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--esp-2); }
.agenda-semana__dia { background: var(--cor-superficie); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-md); padding: var(--esp-2); min-height: 160px; min-width: 0; }
.agenda-semana__dia.is-hoje { border-color: var(--cor-marca); box-shadow: inset 0 3px 0 var(--cor-marca); }
.agenda-semana__cabeca { display: block; font-size: var(--texto-sm); color: var(--cor-texto-suave); margin-bottom: var(--esp-2); }
.agenda-semana .agenda-item { flex-wrap: wrap; }
.agenda-semana .agenda-item__hora { flex-basis: auto; }
@media (max-width: 900px) { .agenda-semana { grid-template-columns: 1fr; } .agenda-semana__dia { min-height: 0; } }

.agenda-lista { display: grid; gap: var(--esp-4); }
.agenda-lista__titulo { font-size: var(--texto-lg); margin: 0 0 var(--esp-2); }
.agenda-lista__titulo a { color: var(--cor-texto); }
.agenda-lista__dia.is-hoje .agenda-lista__titulo a { color: var(--cor-marca-forte); }
.agenda-lista__itens { display: grid; gap: var(--esp-2); }
.campo__largo { flex: 1 1 260px; min-width: 0; }
.agenda-data { flex: 0 0 5.5em; }
.agenda-data__item { flex: 1 1 auto; min-width: 0; }
@media (max-width: 700px) { .agenda-camadas__painel { left: 0; right: auto; } }
fieldset.campo { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.campo > legend { padding: 0; margin-bottom: var(--esp-1); }

/* ---------- Mural e comentários (M22) ---------- */
.btn-link { background: none; border: 0; padding: 0; color: var(--cor-marca); cursor: pointer; font: inherit; text-align: left; }
.btn-link:hover { text-decoration: underline; }
.btn-link.texto-pequeno { font-size: var(--texto-sm); line-height: 1.3846; }
.citacao { color: var(--cor-marca-forte); font-weight: var(--peso-medio); }
.mural { max-width: 720px; display: grid; gap: var(--esp-4); }
.mural__novo textarea { min-height: 88px; }
.post--fixado { border-color: var(--cor-marca); }
.post__cabeca { display: flex; align-items: center; gap: var(--esp-2); flex-wrap: wrap; }
.post__mais { margin-left: auto; position: relative; }
.post__mais > summary { list-style: none; cursor: pointer; }
.post__mais > summary::-webkit-details-marker { display: none; }
.post__menu { position: absolute; right: 0; top: calc(100% + var(--esp-1)); z-index: var(--z-menu); padding: var(--esp-3); display: grid; gap: var(--esp-2); min-width: 160px; box-shadow: var(--sombra-2); }
.post__texto { font-size: var(--texto-lg); line-height: 1.5; overflow-wrap: anywhere; }
.post__fotos { display: grid; gap: var(--esp-2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.post__fotos--1 { grid-template-columns: 1fr; }
.post__fotos img { width: 100%; height: 100%; max-height: 360px; object-fit: cover; border-radius: var(--raio-md); display: block; background: var(--cor-superficie-2); }
.post__fotos--1 img { max-height: 480px; object-fit: contain; }
.comentarios--compacto { border-top: var(--borda-fina) solid var(--cor-borda); padding-top: var(--esp-3); }
.comentario { display: grid; gap: 2px; }
.comentario__cabeca { display: flex; align-items: center; gap: var(--esp-2); flex-wrap: wrap; }
.comentario__acoes { margin-left: auto; display: flex; align-items: center; gap: var(--esp-3); }
.comentario__acoes form { display: inline; }
.comentario__anexos { display: flex; flex-wrap: wrap; gap: var(--esp-1) var(--esp-3); margin-top: var(--esp-1); }
.comentario__texto { overflow-wrap: anywhere; }
.comentario__foto img { max-width: 220px; max-height: 220px; border-radius: var(--raio-md); display: block; margin-top: var(--esp-1); }
.comentario-novo { position: relative; }
.comentario-novo__linha { display: flex; gap: var(--esp-2); align-items: flex-start; }
.comentario-novo textarea { flex: 1 1 auto; min-width: 0; min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); background: var(--cor-superficie); color: var(--cor-texto); resize: vertical; font: inherit; }
.comentario-novo__foto { cursor: pointer; }
@media (max-width: 600px) { .comentario-novo__linha { flex-wrap: wrap; } .comentario-novo textarea { flex-basis: 100%; } }
.citar-sugestoes { position: absolute; z-index: var(--z-menu); display: grid; gap: var(--esp-1); padding: var(--esp-2) var(--esp-3); box-shadow: var(--sombra-2); margin-top: 2px; }
.arquivo-escolhido { font-weight: var(--peso-normal); color: var(--cor-texto-suave); }

/* ---------- Listas de compras (M13): uma linha por item, o círculo é o "comprei" ---------- */
.campo--crescer { flex: 1 1 260px; min-width: 0; }
.compras-novo { margin-bottom: var(--esp-4); }
.compras-novo__linha { display: flex; gap: var(--esp-2); align-items: center; }
.compras-novo__linha input { min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); background: var(--cor-superficie); color: var(--cor-texto); font: inherit; min-width: 0; }
.compras-novo__linha input[name="nome"] { flex: 1 1 auto; }
.compras-novo__qtd { flex: 0 0 7em; }
.compras { padding: 0; }
.compra { display: flex; align-items: center; gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.compra:last-child { border-bottom: 0; }
.compra__texto { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.compra__nome { font-size: var(--texto-lg); line-height: 1.5; }
.compra__qtd { color: var(--cor-texto-suave); }
.compra--feita .compra__nome { text-decoration: line-through; color: var(--cor-texto-fraco); }
.compra--feita .tarefa__marcar { border-color: var(--cor-sucesso); background: var(--cor-sucesso-suave); }
.compras-rodape { margin-top: var(--esp-4); }
.so-computador-inline { display: inline; }
@media (max-width: 600px) { .so-computador-inline { display: none; } .compras-novo__qtd { flex-basis: 4.5em; } }

/* ---------- Pasta de documentos (RN-M11-08): uma linha por documento, a situação e as ações ---------- */
.doc-lista { border-top: var(--borda-fina) solid var(--cor-borda); }
.doc-linha { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-4); padding: var(--esp-3) var(--esp-5); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.doc-linha:last-child { border-bottom: 0; border-radius: 0 0 var(--raio-lg) var(--raio-lg); }
.doc-linha:hover { background: var(--cor-linha-hover); }
.doc-linha__texto { flex: 1 1 260px; min-width: 0; overflow-wrap: anywhere; }
.doc-linha__texto .selo { vertical-align: 1px; }
.doc-linha__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.doc-linha > details { flex-basis: 100%; }

/* ---------- Aluguéis do mês (RN-M7-18): uma linha por contrato; o "Recebi" abre embaixo, na largura toda ---------- */
.alugueis-mes { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3); margin-bottom: var(--esp-3); text-align: center; }
.alugueis-numeros .tile__valor { white-space: nowrap; }
.aluguel { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2) var(--esp-4); padding: var(--esp-3) var(--esp-5); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.aluguel:last-child { border-bottom: 0; }
.aluguel__texto { flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.aluguel__valor { flex: 0 0 auto; min-width: 8.5em; text-align: right; }
.aluguel__situacao { flex: 0 1 14em; min-width: 0; }
.aluguel__acoes { display: flex; flex-wrap: wrap; gap: var(--esp-2); }
.aluguel__acoes:empty { display: none; }
.recebi > summary { list-style: none; }
.recebi > summary::-webkit-details-marker { display: none; }
.recebi { min-width: 0; }
.recebi[open] { flex-basis: 100%; }
.recebi__form { margin-top: var(--esp-3); padding: var(--esp-4); background: var(--cor-fundo); border-radius: var(--raio-lg); }
@media (max-width: 600px) {
  .aluguel { padding: var(--esp-3) var(--esp-4); }
  .aluguel__texto { flex-basis: 100%; }
  .aluguel__valor { text-align: left; min-width: 0; }
  .tiles.alugueis-numeros { grid-template-columns: minmax(0, 1fr); gap: var(--esp-2); }
  .alugueis-numeros .tile.card { display: flex; align-items: baseline; justify-content: space-between; gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); }
  .alugueis-numeros .tile__valor { font-size: var(--texto-lg); margin-top: 0; }
}

/* ---------- Usina solar (M24): curva do dia ---------- */
.linha-digitavel { margin: 0; font-size: var(--texto-lg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.usina-numeros { grid-template-columns: repeat(auto-fit, minmax(var(--largura-tile-pequeno), 1fr)); }
.usina-numeros .tile__valor { font-size: var(--texto-xl); white-space: nowrap; }
.usina-curva { margin: 0; }
.usina-curva__desenho { display: block; width: 100%; height: var(--altura-grafico); }
.usina-curva__area { fill: color-mix(in srgb, var(--cor-marca-viva) 18%, transparent); }
.usina-curva__linha { fill: none; stroke: var(--cor-marca); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.selo .icone { width: 0.75rem; height: 0.75rem; }
@media (max-width: 600px) { .doc-linha { padding: var(--esp-3) var(--esp-4); } .doc-linha__acoes { flex-basis: 100%; } }

/* ---------- Impressão: só o conteúdo ---------- */
@media print {
  .topo, .abas-area, .barra-baixo, .faixa, .nao-imprimir, .alerta, [data-imprimir] { display: none !important; }
  .corpo { grid-template-columns: minmax(0, 1fr) !important; }
  .conteudo { padding: 0 !important; }
  body { background: #fff; }
  .card { box-shadow: none; border-color: #ccc; }
  .tarefa__marcar { border-color: #999; }
}
.contato { display: grid; gap: var(--esp-2); align-content: start; }
.contato__obs { margin: 0; font-size: var(--texto-sm); }
.tarefas-listas { margin-bottom: var(--esp-4); align-items: center; }
.tarefas-nova-lista { position: relative; }
.tarefas-nova-lista > summary { list-style: none; cursor: pointer; padding: var(--esp-1) var(--esp-2); }
.tarefas-nova-lista > summary::-webkit-details-marker { display: none; }
.comprovante__nome { font-size: var(--texto-md); overflow-wrap: anywhere; }
.comprovante__contas { display: grid; gap: var(--esp-2); }
.comprovante__conta { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-md); }
.comprovante__conta--certa { border-color: var(--cor-sucesso); }
.comprovante__conta .btn { flex: none; }
.comprovante__procurar input[type="search"] { flex: 1 1 auto; min-width: 0; min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); background: var(--cor-superficie); color: var(--cor-texto); font: inherit; }
@media (max-width: 600px) { .comprovante__conta { flex-direction: column; align-items: stretch; } }
.iptu-mais { position: relative; display: inline-block; }
.iptu-mais > summary { list-style: none; }
.iptu-mais > summary::-webkit-details-marker { display: none; }
.iptu-mais__painel { position: absolute; right: 0; top: calc(100% + var(--esp-1)); z-index: var(--z-menu); width: min(300px, 85vw); padding: var(--esp-4); box-shadow: var(--sombra-2); text-align: left; }

/* Botão que abre, logo abaixo, uma pergunta curta antes de agir (ex.: "Aceitar" → "O imóvel passa a reservado?").
   Abre no fluxo, sem flutuar: dentro de tabela com rolagem, um painel flutuante seria cortado. */
.acao-pergunta { display: inline-block; }
.acao-pergunta[open] { flex-basis: 100%; }
.acao-pergunta > summary { list-style: none; }
.acao-pergunta > summary::-webkit-details-marker { display: none; }
.acao-pergunta__painel { margin-top: var(--esp-2); max-width: var(--largura-pergunta); padding: var(--esp-4); text-align: left; }
.tile[aria-current] { border-color: var(--cor-marca); }
.tiles--compactos { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--esp-3); }
.tiles--compactos .tile { padding: var(--esp-3) var(--esp-4); }
@media (max-width: 600px) { .tiles--compactos { grid-template-columns: repeat(2, 1fr); } }
.tarefas-nova-lista__painel { position: absolute; left: 0; top: calc(100% + var(--esp-1)); z-index: var(--z-menu); width: min(280px, 85vw); padding: var(--esp-4); box-shadow: var(--sombra-2); }
.tarefas-nova-lista__painel input[type="text"] { min-height: var(--altura-controle); padding: var(--esp-2) var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); font: inherit; }
.espaco-acima { margin-top: var(--esp-3); }
.mural-resumo { display: grid; gap: 2px; padding: var(--esp-2) var(--esp-3); border-radius: var(--raio-md); color: var(--cor-texto); background: var(--cor-superficie-2); text-decoration: none; }
.mural-resumo:hover { text-decoration: none; color: var(--cor-texto); background: var(--cor-superficie-3); }
.mural-resumo--fixado { background: var(--cor-marca-suave); }
.mural-resumo__texto { overflow-wrap: anywhere; }
.mural-resumo__cabeca { display: flex; align-items: center; gap: var(--esp-2); flex-wrap: wrap; }

/* ---------- Estoque da casa (M13): três botões, um toque ---------- */
.estoque__categoria { margin: var(--esp-4) 0 var(--esp-2); color: var(--cor-texto-suave); font-size: var(--texto-sm); font-weight: var(--peso-medio); }
.estoque-botoes { display: flex; align-items: center; gap: var(--esp-1); flex: 0 0 auto; }
.estoque-botao { min-height: var(--altura-controle-pequeno); padding: 0 var(--esp-3); border: var(--borda-fina) solid var(--cor-borda-forte); background: var(--cor-superficie); color: var(--cor-texto-suave); border-radius: var(--raio-pill); font: inherit; font-size: var(--texto-md); cursor: pointer; }
.estoque-botao:hover { border-color: var(--cor-texto-suave); color: var(--cor-texto); }
.estoque-botao--ok[aria-pressed="true"] { background: var(--cor-sucesso-suave); border-color: var(--cor-sucesso); color: var(--cor-sucesso-texto); font-weight: var(--peso-medio); }
.estoque-botao--acabando[aria-pressed="true"] { background: var(--cor-aviso-suave); border-color: var(--cor-aviso); color: var(--cor-aviso-texto); font-weight: var(--peso-medio); }
.estoque-botao--acabou[aria-pressed="true"] { background: var(--cor-erro-suave); border-color: var(--cor-erro); color: var(--cor-erro-texto); font-weight: var(--peso-medio); }
.estoque-item--acabou .compra__nome { color: var(--cor-erro-texto); }
.estoque-tirar { margin-left: var(--esp-2); }
.estoque-novo select { min-height: var(--altura-controle); padding: var(--esp-2); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); background: var(--cor-superficie); font: inherit; }
@media (max-width: 600px) {
  .estoque-item { flex-wrap: wrap; }
  .estoque-botoes { flex-basis: 100%; flex-wrap: wrap; }
  .estoque-novo { flex-wrap: wrap; }
  .estoque-novo input[name="nome"] { flex-basis: 100%; }
  .estoque-novo select, .estoque-novo .compras-novo__qtd { flex: 1 1 0; min-width: 0; }
}

/* ---------- Relatórios (RN-M16-06): tabelas claras com uma barra simples por linha ---------- */
.barra { display: block; height: 6px; margin-top: var(--esp-1); border-radius: var(--raio-pill); background: var(--cor-superficie-2); overflow: hidden; max-width: 22rem; }
.barra__cheia { display: block; height: 100%; width: var(--parte, 0%); border-radius: inherit; background: var(--grafico-2); }
.barra--receita .barra__cheia { background: var(--cor-sucesso); }
.barra--despesa .barra__cheia { background: var(--cor-erro); }
.relatorio tfoot td { font-weight: var(--peso-forte); }
.relatorio tbody th[scope="row"] { text-align: left; font-weight: var(--peso-medio); font-size: inherit; color: var(--cor-texto); }
@media (max-width: 700px) {
  .relatorio td.relatorio__titulo { display: block; font-weight: var(--peso-medio); }
  .tabela--empilhada tfoot td { border-top: 0; }
  .tabela--empilhada tfoot tr { border-top: var(--borda-fina) solid var(--cor-borda-forte); }
}
@media print {
  .barra { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* ---------- Importação (prévia linha a linha) ---------- */
.linha--erro td { background: var(--cor-erro-suave); }

/* ---------- Dividir com outros núcleos ---------- */
.dividir-nucleos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--esp-2) var(--esp-4); }
.dividir-nucleos__linha { display: flex; align-items: center; gap: var(--esp-2); }
.dividir-nucleos__linha .campo--marcar { flex: 1 1 auto; display: flex; align-items: center; gap: var(--esp-2); margin: 0; }
.campo-curto--numero { width: 3.5em; }
.campo-curto { width: 5.5em; min-height: var(--altura-controle); padding: var(--esp-2); border: var(--borda-fina) solid var(--cor-borda-forte); border-radius: var(--raio-md); background: var(--cor-superficie); font: inherit; }

/* Fotos do imóvel (RN-M6-12): capa na lista e na ficha, miniaturas por data */
.cartao-item__capa { display: block; max-width: none; width: calc(100% + 2 * var(--esp-4)); margin: calc(-1 * var(--esp-4)) calc(-1 * var(--esp-4)) 0; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--raio-lg) var(--raio-lg) 0 0; background: var(--cor-superficie-2); }
.imovel-capa { display: block; margin-bottom: var(--esp-4); }
.imovel-capa img { display: block; width: 100%; max-height: 240px; object-fit: cover; border-radius: var(--raio-lg); background: var(--cor-superficie-2); }
.fotos-envio { display: grid; gap: var(--esp-3); grid-template-columns: minmax(0, 1fr); align-items: end; padding-bottom: var(--esp-4); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.fotos-envio .campo__ajuda { margin: 0; }
@media (min-width: 720px) { .fotos-envio { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto; } .fotos-envio .campo__ajuda { grid-column: 1 / -1; } }
.fotos-dia__titulo { font-size: var(--texto-lg); margin: 0 0 var(--esp-2); }
.fotos-grade { display: grid; gap: var(--esp-3); grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.foto { margin: 0; display: flex; flex-direction: column; gap: var(--esp-1); }
.foto img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-sm); background: var(--cor-superficie-2); }
.foto--capa img { outline: 3px solid var(--cor-marca); outline-offset: 2px; }
.foto figcaption { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-1) var(--esp-2); }
.foto figcaption form { margin: 0; }

/* Entrar com Google (RN-M1-12) */
.entrar-ou { display: flex; align-items: center; gap: var(--esp-3); color: var(--cor-texto-suave); font-size: var(--texto-sm); margin: var(--esp-2) 0; }
.entrar-ou::before, .entrar-ou::after { content: ""; flex: 1; border-top: var(--borda-fina) solid var(--cor-borda); }

/* Cardápio da semana (RN-M13-08) */
.cardapio-semana { margin-bottom: var(--esp-4); }
.cardapio-grade { display: grid; gap: var(--esp-4); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.cardapio-dia--hoje { border-color: var(--cor-marca); box-shadow: 0 0 0 1px var(--cor-marca); }
.cardapio-dia .card__cabecalho h2 { font-size: var(--texto-lg); }
.cardapio-ingredientes summary { cursor: pointer; color: var(--cor-marca); font-size: var(--texto-sm); }
.cardapio-ingredientes textarea { width: 100%; margin: var(--esp-2) 0; }
.cardapio-refeicao + .cardapio-refeicao { padding-top: var(--esp-3); border-top: var(--borda-fina) solid var(--cor-borda); }
.cardapio-salvar { position: sticky; bottom: 0; background: var(--cor-fundo); padding: var(--esp-3) 0; z-index: 2; }
.compra--pendente { opacity: .75; }
.compra--pendente .tarefa__marcar { border-style: dashed; cursor: default; }

/* Contorno do terreno na ficha do imóvel (RN-M23-09): só o traço, norte para cima */
.ficha-contorno { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-5); margin-bottom: var(--esp-3); }
.ficha-contorno__desenho { max-width: 160px; max-height: 160px; width: auto; height: auto; flex: none; }
.ficha-contorno__desenho path { fill: color-mix(in srgb, var(--cor-pessoa, var(--cor-marca)) 18%, transparent); stroke: var(--cor-pessoa, var(--cor-marca)); stroke-width: 2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.ficha-contorno .detalhes { flex: 1 1 220px; }
.ficha-contorno__acoes { margin-top: var(--esp-3); }

/* Cadastro completo da pessoa (D48): foto redonda (sem foto, as iniciais na cor da pessoa), seções e contas */
.foto-pessoa { --foto-pessoa: var(--foto-pessoa-p); width: var(--foto-pessoa); height: var(--foto-pessoa); border-radius: var(--raio-pill); flex: none; object-fit: cover; display: inline-grid; place-items: center; background: var(--cor-superficie-2); color: var(--cor-texto-suave); font-size: var(--texto-xs); font-weight: var(--peso-forte); vertical-align: middle; }
span.foto-pessoa[data-cor] { background: color-mix(in srgb, var(--cor-pessoa) 18%, var(--cor-superficie)); color: var(--cor-texto); }
.foto-pessoa--media { --foto-pessoa: var(--foto-pessoa-m); font-size: var(--texto-lg); }
.foto-pessoa--grande { --foto-pessoa: var(--foto-pessoa-g); font-size: var(--texto-xl); }
.cadastro-secoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--esp-4); align-items: start; }
@media (min-width: 601px) { .cadastro-secoes .detalhes { grid-template-columns: minmax(96px, 140px) minmax(0, 1fr); } }
.cadastro-copiar { display: block; margin-top: var(--esp-1); }
.pessoa-nome { display: inline-flex; align-items: center; gap: var(--esp-2); }
.pessoa-cabecalho { display: flex; align-items: center; gap: var(--esp-4); min-width: 0; }
.pessoa-cabecalho > a { flex: none; line-height: 0; border-radius: var(--raio-pill); }
.foto-campo { display: flex; align-items: flex-start; gap: var(--esp-4); }
.foto-campo .campo { flex: 1; min-width: 0; }
.avancado__dica { font-weight: var(--peso-normal); font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.linha-banco { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.7fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.6fr) auto; gap: var(--esp-2); align-items: end; padding-bottom: var(--esp-3); border-bottom: var(--borda-fina) solid var(--cor-borda); }
@media (max-width: 900px) { .linha-banco { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .linha-banco__pix { grid-column: 1 / -1; } .linha-banco__tirar { grid-column: 1 / -1; justify-self: end; } }
.pdf-escolha { display: flex; flex-direction: column; gap: var(--esp-2); margin: 0; padding: 0; list-style: none; }
.pdf-escolha label { display: flex; align-items: flex-start; gap: var(--esp-2); cursor: pointer; }
.pdf-escolha input { margin-top: 3px; }
.pdf-progresso { min-height: 1.5em; }


/* ---------- Buscar em tudo (RN-M17-24): resultados por grupo, na página e embaixo da caixa do cabeçalho ---------- */
.busca-resultados { display: flex; flex-direction: column; gap: var(--esp-4); }
.busca-resultados > p { margin: 0; }
.busca-grupo { display: flex; flex-direction: column; gap: var(--esp-1); }
.busca-grupo__titulo {
  display: flex; align-items: center; gap: var(--esp-2);
  margin: 0;
  font-size: var(--texto-sm); font-weight: var(--peso-forte); color: var(--cor-texto-suave);
}
.busca-grupo__itens { display: flex; flex-direction: column; }
.busca-item {
  display: flex; flex-direction: column;
  padding: var(--esp-2) var(--esp-3);
  border-radius: var(--raio-sm);
  color: var(--cor-texto);
}
.busca-item:hover, .busca-item:focus { background: var(--cor-linha-hover); text-decoration: none; }
.busca-item:focus-visible { outline: none; box-shadow: var(--anel-foco); }
.busca-item__titulo { font-weight: var(--peso-medio); overflow-wrap: anywhere; }
.busca-item__detalhe { font-size: var(--texto-xs); color: var(--cor-texto-suave); overflow-wrap: anywhere; }
.busca-grupo__ver { padding-left: var(--esp-3); }

/* ---------- Vendas (M25): a capa na ficha do corretor e a prévia do e-mail ---------- */
.ficha-venda__capa { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-md); background: var(--cor-superficie-2); }
.mensagem-previa { padding: var(--esp-3) var(--esp-4); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-md); background: var(--cor-superficie-2); font-size: var(--texto-sm); overflow-wrap: anywhere; }

/* ---------- Hoje (RN-M14-01 a RN-M14-13, D80) ---------- */
.hoje-cabecalho { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--esp-4); margin-bottom: var(--esp-5); }
.hoje-cabecalho__texto { min-width: 0; }
.hoje-cabecalho__data { margin: 0; color: var(--cor-texto-suave); }
.hoje-cabecalho__saudacao { margin: var(--esp-1) 0; font-size: var(--texto-saudacao); font-weight: var(--peso-normal); line-height: var(--altura-linha-titulo); letter-spacing: var(--espaco-letras-titulo); }
.hoje-cabecalho__frase { margin: 0; font-weight: var(--peso-forte); }
.hoje-cabecalho__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2); }

/* Recado fixado do mural */
.recado { display: flex; align-items: flex-start; gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); border-radius: var(--raio-lg); background: var(--cor-marca-suave); color: var(--cor-marca-forte); }
.recado:hover { color: var(--cor-marca-forte); text-decoration: none; background: var(--cor-linha-selecionada); }
.recado .icone { flex: none; margin-top: 2px; }

/* O mês: cartão de destaque petróleo (RN-M14-10) */
.destaque { display: flex; flex-direction: column; gap: var(--esp-2); padding: var(--esp-6); border-radius: var(--raio-lg); background: var(--cor-destaque); color: var(--cor-sobre-destaque); }
.destaque p { margin: 0; }
.destaque__rotulo { color: var(--cor-sobre-destaque-suave); }
.destaque__valor { font-size: var(--texto-destaque); font-weight: var(--peso-medio); line-height: var(--altura-linha-titulo); letter-spacing: var(--espaco-letras-titulo); }
.destaque__acento { color: var(--cor-sobre-destaque-acento); }
.destaque__linha { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--esp-1) var(--esp-4); color: var(--cor-sobre-destaque-suave); }
.destaque .btn { align-self: flex-start; margin-top: var(--esp-3); }
.btn--sobre-destaque { background: var(--cor-superficie); border-color: var(--cor-superficie); color: var(--cor-marca-forte); }
.btn--sobre-destaque:hover { background: var(--cor-marca-suave); border-color: var(--cor-marca-suave); color: var(--cor-marca-forte); }
.progresso { height: var(--altura-barra-progresso); margin-top: var(--esp-3); border-radius: var(--raio-pill); background: var(--cor-destaque-trilha); overflow: hidden; }
.progresso__cheia { display: block; height: 100%; width: var(--parte, 0%); border-radius: var(--raio-pill); background: var(--cor-sobre-destaque-suave); }

/* Contadores: cada número abre a lista (RN-M14-11) */
.contadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(var(--largura-contador), 1fr)); gap: var(--esp-3); }
.contador { display: flex; flex-direction: column; gap: var(--esp-1); padding: var(--esp-4) var(--esp-5); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); background: var(--cor-superficie); color: var(--cor-texto); }
.contador:hover { border-color: var(--cor-borda-forte); color: var(--cor-texto); text-decoration: none; }
.contador__n { font-size: var(--texto-2xl); font-weight: var(--peso-medio); line-height: var(--altura-linha-titulo); }
.contador__rotulo { color: var(--cor-texto-suave); }
.contador--alerta { background: var(--cor-erro-suave); border-color: var(--cor-erro); }
.contador--alerta .contador__n { color: var(--cor-erro-texto); }
.contador--zero .contador__n { color: var(--cor-texto-fraco); font-weight: var(--peso-leve); }

/* Seção sem cartão: título e link ao lado */
.secao__cabecalho { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--esp-2) var(--esp-4); margin-bottom: var(--esp-3); }
.secao__cabecalho h2 { margin: 0; }

/* Esta semana: o atrasado e cada dia (RN-M14-12) */
.semana__dia { display: grid; grid-template-columns: var(--largura-dia) minmax(0, 1fr); gap: var(--esp-4); align-items: start; padding-block: var(--esp-2); }
.semana__quando { display: flex; flex-direction: column; padding-top: var(--esp-2); line-height: var(--altura-linha-titulo); }
.semana__rotulo { font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.semana__num { font-size: var(--texto-xl); font-weight: var(--peso-medio); }
.semana__dia--atrasado .semana__rotulo, .semana__dia--atrasado .semana__num { color: var(--cor-erro-texto); }
.semana__itens { display: flex; flex-direction: column; gap: var(--esp-2); min-width: 0; }
.semana__item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--esp-2) var(--esp-3); padding: var(--esp-3) var(--esp-4); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); background: var(--cor-superficie); }
.semana__texto { display: flex; flex-direction: column; min-width: 0; }
.semana__titulo { color: var(--cor-texto); font-weight: var(--peso-medio); overflow-wrap: anywhere; }
.semana__titulo:hover { color: var(--cor-marca); }
.semana__detalhe { font-size: var(--texto-sm); color: var(--cor-texto-suave); }
.semana__lado { display: flex; flex-wrap: wrap; align-items: center; gap: var(--esp-2); }
.semana__itens .agenda-item { border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); background: var(--cor-superficie); padding: var(--esp-3) var(--esp-4); }

/* Imóveis que pedem atenção (RN-M14-13) */
.imovel-atencao { display: flex; align-items: center; gap: var(--esp-3); padding: var(--esp-3) var(--esp-4); border: var(--borda-fina) solid var(--cor-borda); border-radius: var(--raio-lg); background: var(--cor-superficie); color: var(--cor-texto); }
.imovel-atencao:hover { border-color: var(--cor-borda-forte); color: var(--cor-texto); text-decoration: none; }
.iniciais { flex: none; display: inline-grid; place-items: center; width: var(--avatar-imovel); height: var(--avatar-imovel); border-radius: var(--raio-pill); background: var(--cor-marca-suave); color: var(--cor-marca-forte); font-weight: var(--peso-medio); }
.imovel-atencao__texto { display: flex; flex-direction: column; min-width: 0; }
.imovel-atencao__texto strong { font-weight: var(--peso-medio); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imovel-atencao__texto span { font-size: var(--texto-sm); color: var(--cor-texto-suave); }

@media (max-width: 767px) {
  .hoje-cabecalho__saudacao { font-size: var(--texto-saudacao-celular); }
  .hoje-cabecalho__atalho { display: none; } /* no celular, "Nova conta" e "Enviar comprovante" estão no + da barra de baixo */
  .semana__dia--atrasado .semana__item:nth-child(n+6) { display: none; } /* no celular, 5 atrasados e o "Ver todas" */
  .destaque { padding: var(--esp-5); }
  .destaque__valor { font-size: var(--texto-destaque-celular); }
  .contadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .semana__dia { grid-template-columns: minmax(0, 1fr); gap: var(--esp-1); }
  .semana__quando { flex-direction: row; align-items: baseline; gap: var(--esp-2); padding-top: 0; }
}

/* ---------- Atas de reunião (M27, D83): etiquetas escolhidas pelo nome, texto da ata e assinaturas na impressão ---------- */
.escolha-pessoas:empty { display: none; }
.escolher-nome { display: grid; gap: var(--esp-1); margin-top: var(--esp-3); max-width: 32rem; }
.escolha-pessoas:empty + .escolher-nome { margin-top: 0; }
.ata-pessoas { display: inline-flex; flex-wrap: wrap; gap: var(--esp-1); }
.ata-texto { max-width: 72ch; line-height: 1.6; overflow-wrap: anywhere; }
.encaminhamento { padding-bottom: var(--esp-3); border-bottom: var(--borda-fina) solid var(--cor-borda); }
.atas-lista { border-top: 0; }
.ata-anexar { align-items: center; }
.ata-anexar .campo { margin: 0; }
.so-impressao { display: none; }
@media print {
  .ata-assinaturas.so-impressao { display: grid; grid-template-columns: 1fr 1fr; gap: 72px 32px; margin-top: 72px; break-inside: avoid; }
  .ata-assinatura { border-top: 1px solid #000; padding-top: 4px; font-size: 12px; }
}
