:root {
    --tinta: #1B2430;
    --tinta-suave: #5B6472;
    --linha: #E1E4E9;
    --fundo: #F6F7F9;
    --cartao: #FFFFFF;
    --acento: #0F5C56;
    --acento-suave: #E4F1EF;
    --alerta: #B3541E;
    --alerta-suave: #FBEBDD;
    --risco: #A32D2D;
    --risco-suave: #FBEAEA;
    --sucesso: #2E7D4F;
    --sucesso-suave: #E8F3EC;
    --amarelo: #8A6D00;
    --amarelo-suave: #FBF0C7;
    --raio: 10px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    background: var(--fundo);
    color: var(--tinta);
    font-size: 15px;
    line-height: 1.5;
}

a { color: var(--acento); text-decoration: none; }
a:hover { text-decoration: underline; }

.topo {
    display: flex;
    align-items: center;
    gap: 32px;
    padding: 14px 28px;
    background: var(--cartao);
    border-bottom: 1px solid var(--linha);
}
.topo-marca { font-weight: 600; font-size: 16px; letter-spacing: -0.01em; color: var(--tinta); }
.topo-marca:hover { text-decoration: none; color: var(--acento); }
.topo-modulo { color: var(--tinta-suave); font-size: 14px; padding-left: 12px; border-left: 1px solid var(--linha); }
.topo-nav { display: flex; gap: 20px; flex: 1; }
.topo-nav a { color: var(--tinta-suave); font-weight: 500; }
.topo-nav a:hover { color: var(--acento); text-decoration: none; }
.topo-usuario { color: var(--tinta-suave); font-size: 14px; display: flex; align-items: center; gap: 10px; }
.topo-nome { color: var(--tinta); }
.sair { color: var(--tinta-suave); font-size: 13px; }

/* ---- home / hub ---- */
.grupo { margin-bottom: 32px; }
.grupo-titulo {
    font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
    color: var(--tinta-suave); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--linha);
}
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.card-modulo {
    display: flex; flex-direction: column; gap: 4px;
    background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 18px; color: var(--tinta);
}
a.card-modulo:hover { border-color: var(--acento); text-decoration: none; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.card-icone { font-size: 24px; }
.card-nome { font-weight: 600; font-size: 15px; }
.card-desc { font-size: 13px; color: var(--tinta-suave); }
.card-em-breve { opacity: .55; }
.selo-em-breve { background: var(--linha); color: var(--tinta-suave); font-weight: 600; }
.grupo-vazio { color: var(--tinta-suave); font-size: 13px; font-style: italic; margin: 0; }

.conteudo { max-width: 1180px; margin: 0 auto; padding: 28px; }

h1 { font-size: 22px; font-weight: 600; margin: 0 0 6px; }
h2 { font-size: 17px; font-weight: 600; margin: 0 0 4px; }
.subtitulo { color: var(--tinta-suave); font-size: 14px; margin-bottom: 24px; }

/* ---- quadro (board) ---- */
.quadro { display: grid; grid-template-columns: repeat(5, minmax(200px, 1fr)); gap: 14px; align-items: start; overflow-x: auto; }
.coluna { background: transparent; }
.coluna-cabecalho {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;
    padding: 4px 4px 10px; font-weight: 600; font-size: 14px; color: var(--tinta-suave);
    border-bottom: 2px solid var(--linha); margin-bottom: 10px;
}
.coluna-contagem { font-weight: 400; font-size: 13px; flex-shrink: 0; }

.cartao-caso {
    display: block; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 13px 14px; margin-bottom: 10px; color: var(--tinta);
}
.cartao-caso:hover { border-color: var(--acento); text-decoration: none; }
.cartao-titulo { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
.cartao-linha { font-size: 13px; color: var(--tinta-suave); margin-top: 2px; }
.cartao-rodape { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; }

.cartao-caso.busca-oculto, .cartao-caso.filtro-oculto { display: none; }
.busca-sem-resultado { font-style: italic; }

.busca-quadro {
    display: flex; align-items: center; gap: 8px; max-width: 340px;
    background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 8px 12px; margin-bottom: 4px;
}
.busca-quadro-icone { font-size: 14px; opacity: .6; flex-shrink: 0; }
.busca-quadro-campo {
    border: none; outline: none; padding: 0; margin: 0; width: 100%;
    font-size: 14px; background: transparent; color: var(--tinta);
}
.busca-quadro-campo::placeholder { color: var(--tinta-suave); }
.busca-quadro-resultado { font-size: 12px; color: var(--tinta-suave); margin: 0 0 16px 2px; min-height: 16px; }

.selo { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.selo-D0, .selo-D3 { background: var(--acento-suave); color: var(--acento); }
.selo-D5 { background: var(--alerta-suave); color: var(--alerta); }
.selo-D15, .selo-D30 { background: var(--risco-suave); color: var(--risco); }
.selo-urgente { background: var(--risco); color: #fff; }
.selo-rescindido { background: var(--amarelo-suave); color: var(--amarelo); }
.selo-ressalva { background: var(--amarelo-suave); color: var(--amarelo); }
.selo-manutencao { background: var(--sucesso-suave); color: var(--sucesso); }
.selo-migrado { background: var(--amarelo-suave); color: var(--amarelo); text-decoration: none; }
.selo-sinistro-aberto { background: var(--alerta-suave); color: var(--alerta); }
.selo-sinistro-parcial { background: var(--acento-suave); color: var(--acento); }
.selo-sinistro-pago { background: var(--sucesso-suave); color: var(--sucesso); }
.selo-sinistro-negado { background: var(--risco-suave); color: var(--risco); }

.link-whatsapp { color: var(--sucesso); font-weight: 600; }

/* ---- caso detalhe ---- */
.grade-detalhe { display: grid; grid-template-columns: 1.3fr 1fr; gap: 24px; align-items: start; }
.painel { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; margin-bottom: 16px; }
.campo { margin-bottom: 10px; font-size: 14px; }
.campo-rotulo { color: var(--tinta-suave); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
.aviso-dados { background: var(--alerta-suave); color: var(--alerta); border-radius: var(--raio); padding: 10px 12px; font-size: 13px; margin-top: 8px; }

.linha-status { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.botao-status {
    border: 1px solid var(--linha); background: var(--cartao); color: var(--tinta);
    padding: 7px 12px; border-radius: 8px; font-size: 13px; cursor: pointer;
}
.botao-status:hover { border-color: var(--acento); color: var(--acento); }
.botao-status.ativo { background: var(--acento); border-color: var(--acento); color: #fff; }

.comentario { border-bottom: 1px solid var(--linha); padding: 10px 0; font-size: 14px; }
.comentario:last-child { border-bottom: none; }
.comentario-meta { font-size: 12px; color: var(--tinta-suave); margin-bottom: 3px; }
.comentario.automatico { color: var(--tinta-suave); font-style: italic; }

.sinistro-item { border-bottom: 1px solid var(--linha); padding: 12px 0; }
.sinistro-item:last-child { border-bottom: none; }
.sinistro-form { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; margin-top: 8px; }
.sinistro-form .campo-form { margin-bottom: 0; min-width: 140px; flex: 1 1 140px; }

textarea, input[type=text], input[type=password], input[type=date], select {
    width: 100%; border: 1px solid var(--linha); border-radius: 8px; padding: 9px 11px;
    font-size: 14px; font-family: inherit; color: var(--tinta); background: var(--cartao);
}
textarea { min-height: 64px; resize: vertical; }

.secao-titulo { margin: 0 0 12px; }
.campo-form-inline { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.campo-form-inline input[type=date] { width: auto; }
.aviso-destaque { margin-bottom: 20px; font-size: 14px; }

.anexo-preview { margin-top: 8px; }
.anexo-preview img { max-width: 100%; max-height: 220px; border-radius: 8px; border: 1px solid var(--linha); }
.anexo-link { margin-top: 6px; font-size: 13px; }

.preview-colado { margin-top: 6px; display: flex; align-items: center; gap: 8px; }
.preview-colado img { max-height: 80px; border-radius: 6px; border: 1px solid var(--linha); }
.preview-colado-aviso { font-size: 12px; color: var(--tinta-suave); }

.tarefa-linha { border-bottom: 1px solid var(--linha); padding: 9px 0; }
.tarefa-linha:last-child { border-bottom: none; }
.tarefa-item {
    display: flex; align-items: flex-start; gap: 10px; width: 100%; text-align: left;
    background: none; border: none; padding: 0 0 6px;
    cursor: pointer; font-family: inherit; color: var(--tinta);
}
.tarefa-item:hover { color: var(--acento); }
.tarefa-caixa { font-size: 16px; line-height: 1.4; }
.tarefa-texto { font-size: 14px; }
.tarefa-descricao { font-size: 12px; color: var(--tinta-suave); }
.tarefa-item.feita .tarefa-texto strong { text-decoration: line-through; color: var(--tinta-suave); }
.tarefa-reatribuir { display: flex; gap: 6px; align-items: center; margin-left: 26px; }
.tarefa-reatribuir select { width: auto; font-size: 12px; padding: 4px 6px; }
.tarefa-reatribuir .botao-secundario { font-size: 12px; padding: 4px 8px; }

.botao {
    display: inline-block; background: var(--acento); color: #fff; border: none;
    padding: 9px 16px; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer;
}
.botao:hover { opacity: .9; text-decoration: none; }
.botao-secundario { background: var(--cartao); color: var(--acento); border: 1px solid var(--acento); }

/* ---- login ---- */
.tela-login { max-width: 340px; margin: 90px auto; }
.tela-login .painel { }
.erro { background: var(--risco-suave); color: var(--risco); padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-bottom: 14px; }
.sucesso { background: var(--sucesso-suave); color: var(--sucesso); padding: 10px 12px; border-radius: 8px; font-size: 13px; margin-bottom: 14px; }
.campo-form { margin-bottom: 14px; }
.campo-form label { display: block; font-size: 13px; color: var(--tinta-suave); margin-bottom: 5px; }

/* ---- relatório ---- */
.tabela-relatorio { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela-relatorio th { text-align: left; color: var(--tinta-suave); font-weight: 600; font-size: 12px; text-transform: uppercase; padding: 8px 10px; border-bottom: 2px solid var(--linha); }
.tabela-relatorio td { padding: 10px; border-bottom: 1px solid var(--linha); }
.faixa-titulo { display: flex; align-items: center; gap: 8px; margin: 28px 0 10px; }
.faixa-selo { font-weight: 700; font-size: 20px; }
.faixa-selo.grave { color: var(--risco); }
.faixa-selo.atencao { color: var(--alerta); }
.linha-atrasada { background: var(--risco-suave); }

@media (max-width: 860px) {
    .quadro { grid-template-columns: 1fr; }
    .grade-detalhe { grid-template-columns: 1fr; }
    .topo { flex-wrap: wrap; gap: 12px; }
}

/* ---- toggle de abas genérico (sub-navegação dentro de uma tela) ---- */
.abas { margin-bottom: 20px; }
.abas a {
    display: inline-block; padding: 6px 12px; border: 1px solid var(--linha);
    color: var(--tinta-suave); font-size: 13px; font-weight: 500;
}
.abas a:first-child { border-radius: 8px 0 0 8px; }
.abas a:last-child { border-radius: 0 8px 8px 0; border-left: none; }
.abas a:hover { text-decoration: none; color: var(--acento); }
.abas a.ativo { background: var(--acento); border-color: var(--acento); color: #fff; }

/* ---- conferência de condomínios: checklist ---- */
.cond-toggle a {
    display: inline-block; padding: 6px 12px; border: 1px solid var(--linha);
    color: var(--tinta-suave); font-size: 13px; font-weight: 500;
}
.cond-toggle a:first-child { border-radius: 8px 0 0 8px; }
.cond-toggle a:last-child { border-radius: 0 8px 8px 0; }
.cond-toggle a + a { border-left: none; }
.cond-toggle a:hover { text-decoration: none; color: var(--acento); }
.cond-toggle a.ativo { background: var(--acento); border-color: var(--acento); color: #fff; }

.cond-barra { height: 6px; background: var(--linha); border-radius: 999px; overflow: hidden; margin-bottom: 20px; }
.cond-barra-cheia { height: 100%; background: var(--sucesso); }

.cond-grupo-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
.cond-sem-adm { color: var(--alerta); }
.cond-lote { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13px;
    color: var(--tinta-suave); padding: 10px 0; border-top: 1px solid var(--linha); }
.cond-lote .botao-secundario { font-size: 12px; padding: 4px 8px; }
.cond-sub { font-size: 14px; margin: 16px 0 0; padding-top: 10px; border-top: 1px solid var(--linha);
    display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.cond-sub .cartao-linha { font-weight: 400; }
.cond-contato { font-size: 13px; padding: 8px 0; border-top: 1px solid var(--linha); }
.cond-contato summary { cursor: pointer; color: var(--acento); }
.cond-contato textarea { width: 100%; margin-top: 8px; font: 13px/1.5 ui-monospace, Menlo, monospace; }

.cond-item { border-top: 1px solid var(--linha); padding: 12px 0; scroll-margin-top: 80px; }
.cond-item-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 14px; }
.cond-bairro { color: var(--tinta-suave); font-size: 12px; }
.cond-item-info { display: flex; gap: 20px; flex-wrap: wrap; font-size: 13px; color: var(--tinta-suave); margin: 4px 0 8px; }
.cond-item-info .campo-rotulo { display: inline; margin: 0; }
.cond-item-form { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.cond-item-form label { font-size: 12px; color: var(--tinta-suave); display: flex; flex-direction: column; gap: 3px; }
.cond-item-form input[type=text], .cond-item-form input[type=date], .cond-item-form select { font-size: 13px; padding: 6px 8px; width: auto; }
.cond-item-form .cond-obs input { min-width: 200px; }
.cond-item-form .cond-check { flex-direction: row; align-items: center; gap: 5px; }
.cond-item-form .cond-check input { width: auto; }
.cond-item-form .botao { padding: 7px 14px; }
.cond-divergencia { color: var(--alerta); font-size: 12px; flex-basis: 100%; }

.selo-status-pendente { background: var(--linha); color: var(--tinta-suave); }
.selo-status-boleto_solicitado, .selo-status-boleto_recebido { background: var(--alerta-suave); color: var(--alerta); }
.selo-status-enviado_ao_proprietario { background: var(--sucesso-suave); color: var(--sucesso); }
.selo-status-pago_pela_imobiliaria, .selo-status-sem_cobranca_no_mes,
.selo-status-sem_condominio, .selo-status-proprietario_paga_direto { background: var(--acento-suave); color: var(--acento); }

.cond-filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.cond-filtros select { width: auto; font-size: 13px; padding: 6px 8px; }

.cond-num { font-size: 24px; font-weight: 600; margin-top: 2px; }
.cond-alertas { border-color: var(--alerta); }
.cond-alerta { font-size: 14px; padding: 10px 12px; border-radius: 8px; margin-top: 8px; }
.cond-alerta.grave { background: var(--risco-suave); color: var(--risco); }
.cond-alerta.atencao { background: var(--alerta-suave); color: var(--alerta); }
.cond-alerta a { font-weight: 600; }
.cond-alerta-lista { margin: 6px 0 0; padding-left: 18px; font-size: 13px; }
.cond-alerta-lista a { font-weight: 400; }

/* --- Central de Tarefas (núcleo) — /tarefas ------------------------- */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.filtros select { width: auto; font-size: 13px; padding: 6px 8px; }
.texto-atrasada { color: var(--risco); }

.tarefa-linha {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 16px;
    background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 12px 14px; margin-bottom: 8px;
}
.tarefa-linha.linha-atrasada { border-left: 3px solid var(--risco); }
.tarefa-corpo { min-width: 0; flex: 1; }
.tarefa-cabecalho { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.tarefa-cabecalho strong { font-size: 14px; }
.selo-etapa { background: var(--linha); color: var(--tinta-suave); font-weight: 500; }
.tarefa-linha .tarefa-descricao { font-size: 12px; color: var(--tinta-suave); margin-top: 4px; }

.tarefa-acoes { display: flex; gap: 6px; align-items: flex-start; flex-wrap: wrap; justify-content: flex-end; }
.tarefa-acoes .botao, .tarefa-acoes .botao-secundario { font-size: 12px; padding: 6px 10px; white-space: nowrap; }
.acao-inline { display: flex; gap: 6px; align-items: center; }
.acao-inline input[type=text] { font-size: 12px; padding: 6px 8px; width: 140px; }
.acao-details { position: relative; }
.acao-details > summary {
    list-style: none; cursor: pointer; display: inline-block;
    border: 1px solid var(--linha); border-radius: 8px; padding: 6px 10px;
    font-size: 12px; color: var(--tinta-suave); background: var(--cartao);
}
.acao-details > summary::-webkit-details-marker { display: none; }
.acao-details[open] > summary { background: var(--fundo); }
.acao-bloco {
    position: absolute; right: 0; z-index: 5; margin-top: 4px; width: 240px;
    background: var(--cartao); border: 1px solid var(--linha); border-radius: 8px;
    padding: 10px; display: flex; flex-direction: column; gap: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.acao-bloco label { font-size: 12px; color: var(--tinta-suave); display: flex; flex-direction: column; gap: 3px; }
.acao-bloco input, .acao-bloco select { font-size: 13px; padding: 6px 8px; width: 100%; }

@media (max-width: 640px) {
    .tarefa-linha { flex-direction: column; }
    .tarefa-acoes { justify-content: flex-start; }
    .acao-bloco { right: auto; left: 0; }
}

/* --- Tarefas Administrativas — /tarefas-adm ----------------------- */
.quadro-adm { grid-template-columns: repeat(4, minmax(210px, 1fr)); }
@media (max-width: 860px) { .quadro-adm { grid-template-columns: 1fr; } }

/* --- Esteira de Entrada — /esteira-entrada ------------------------ */
.quadro-esteira { grid-template-columns: repeat(6, minmax(190px, 1fr)); }
@media (max-width: 1200px) { .quadro-esteira { grid-template-columns: repeat(3, minmax(190px, 1fr)); } }
@media (max-width: 860px) { .quadro-esteira { grid-template-columns: 1fr; } }
.selo-congelado { background: var(--linha); color: var(--tinta-suave); font-weight: 600; }
.checklist-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--linha); font-size: 14px; }
.checklist-item:last-child { border-bottom: none; }
.checklist-item.feito .checklist-texto { text-decoration: line-through; color: var(--tinta-suave); }
.checklist-item.nao_se_aplica .checklist-texto { color: var(--tinta-suave); font-style: italic; }
.checklist-item.inativo { opacity: .5; }
.checklist-texto { flex: 1; }
.checklist-acoes { display: flex; gap: 4px; flex-wrap: wrap; }
.checklist-acoes button { font-size: 11px; padding: 4px 8px; }
.ciclo-linha { border-bottom: 1px solid var(--linha); padding: 8px 0; font-size: 13px; }
.ciclo-linha:last-child { border-bottom: none; }

.filtro-check { font-size: 13px; color: var(--tinta-suave); display: inline-flex; align-items: center; gap: 4px; }
.filtro-check input { width: auto; }

.cartao-adm { cursor: grab; }
.cartao-adm .cartao-titulo a { color: var(--tinta); }
.cartao-adm .cartao-titulo a:hover { color: var(--acento); text-decoration: none; }
.cartao-arrastando { opacity: .5; }
.coluna-alvo { outline: 2px dashed var(--acento); outline-offset: 3px; border-radius: var(--raio); }
.cartao-vencido { border-left: 3px solid var(--risco); }

.cartao-selos { display: flex; flex-wrap: wrap; gap: 4px; margin: 5px 0; }
.selo-setor { background: var(--acento-suave); color: var(--acento); font-weight: 500; }
.selo-prio-alta { background: var(--risco-suave); color: var(--risco); }
.selo-prio-baixa { background: var(--linha); color: var(--tinta-suave); }
.selo-contador { background: var(--acento); color: #fff; }

.avatar {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; border-radius: 999px; font-size: 10px; font-weight: 700;
    background: var(--acento-suave); color: var(--acento); vertical-align: middle; margin-right: 4px;
}

.cartao-mover { margin-top: 8px; }
.cartao-mover > summary { font-size: 12px; color: var(--tinta-suave); cursor: pointer; list-style: none; }
.cartao-mover > summary::-webkit-details-marker { display: none; }
.cartao-mover-bloco { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.cartao-mover-bloco .botao-status { font-size: 11px; padding: 4px 8px; }

.bloco-aguardando { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 12px; }
.bloco-aguardando .campo-rotulo { flex-basis: 100%; margin: 0; }
.bloco-aguardando input[type=text] { width: auto; flex: 1; min-width: 160px; }
.bloco-aguardando input[type=date] { width: auto; }

#dlg-aguardando { border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; max-width: 380px; }
#dlg-aguardando::backdrop { background: rgba(0,0,0,.3); }

/* --- Vistoria de Saída — /vistoria-saida --------------------------- */
.quadro-vistoria-saida { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
@media (max-width: 860px) { .quadro-vistoria-saida { grid-template-columns: 1fr; } }

.selo-tipo-anexo { position: absolute; bottom: 4px; left: 4px; right: 4px; text-align: center; }
.selo-tipo-laudo { background: var(--acento); color: #fff; }
.selo-tipo-pendencias { background: var(--alerta); color: #fff; }

/* --- Renovação de Fiança — /renovacao-fianca ------------------------ */
.quadro-renovacao-fianca { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
@media (max-width: 860px) { .quadro-renovacao-fianca { grid-template-columns: 1fr; } }

/* --- Exonerados — /exonerados ---------------------------------------- */
.quadro-exonerados { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
@media (max-width: 860px) { .quadro-exonerados { grid-template-columns: 1fr; } }

/* --- Aditivos — /aditivos ------------------------------------------- */
.quadro-aditivos { grid-template-columns: repeat(4, minmax(210px, 1fr)); }
@media (max-width: 860px) { .quadro-aditivos { grid-template-columns: 1fr; } }
.selo-aditivo-locador { background: var(--acento-suave); color: var(--acento); }
.selo-aditivo-locatario { background: var(--sucesso-suave); color: var(--sucesso); }
.selo-aditivo-locatario_pos_locador { background: var(--alerta-suave); color: var(--alerta); }
.aditivo-descricao { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* --- Recaptação — /recaptacao ------------------------------------- */
.quadro-captacao { grid-template-columns: repeat(6, minmax(180px, 1fr)); }
@media (max-width: 1200px) { .quadro-captacao { grid-template-columns: repeat(3, minmax(180px, 1fr)); } }
@media (max-width: 860px) { .quadro-captacao { grid-template-columns: 1fr; } }

.anexos-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; }
.anexo-thumb {
    position: relative; display: flex; align-items: center; justify-content: center;
    height: 120px; padding: 0; border: 1px solid var(--linha); border-radius: 8px;
    background: var(--fundo); cursor: pointer; overflow: hidden;
}
.anexo-thumb img { width: 100%; height: 100%; object-fit: cover; }
.anexo-thumb-pdf { font-size: 40px; }
.anexo-thumb:hover { border-color: var(--acento); }

.lightbox { border: none; border-radius: var(--raio); padding: 0; width: min(92vw, 1000px); height: min(88vh, 900px); }
.lightbox::backdrop { background: rgba(0,0,0,.6); }
.lightbox-barra {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    padding: 10px 14px; border-bottom: 1px solid var(--linha); background: var(--cartao);
}
.lightbox-barra span { font-size: 13px; color: var(--tinta-suave); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lightbox-controles { display: flex; gap: 6px; flex-shrink: 0; }
.lightbox-controles button {
    border: 1px solid var(--linha); background: var(--cartao); color: var(--tinta);
    padding: 5px 10px; border-radius: 6px; font-size: 13px; cursor: pointer;
}
.lightbox-controles button:hover { border-color: var(--acento); color: var(--acento); }
.lightbox-corpo { height: calc(100% - 48px); overflow: auto; display: flex; align-items: center; justify-content: center; background: var(--tinta); }
.lightbox-corpo img { max-width: 100%; max-height: 100%; transition: transform .15s ease; }
.lightbox-corpo iframe { width: 100%; height: 100%; border: none; background: #fff; }

.selo-evento-pendente { background: var(--alerta-suave); color: var(--alerta); }
.selo-evento-consumido { background: var(--sucesso-suave); color: var(--sucesso); }
.selo-evento-cancelado { background: var(--linha); color: var(--tinta-suave); }

/* --- Painel do Gestor — /tarefas/painel --------------------------- */
.tabela-rolagem { overflow-x: auto; margin-bottom: 8px; }
.tabela-painel { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--cartao); }
.tabela-painel th {
    text-align: left; color: var(--tinta-suave); font-weight: 600; font-size: 12px;
    text-transform: uppercase; padding: 8px 10px; border-bottom: 2px solid var(--linha); white-space: nowrap;
}
.tabela-painel td { padding: 9px 10px; border-bottom: 1px solid var(--linha); }
.tabela-painel .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela-painel .linha-sem-resp td { color: var(--tinta-suave); font-style: italic; }
.mini-atraso { color: var(--risco); font-weight: 600; font-size: 12px; white-space: nowrap; }

/* ---------------------------------------------------------------------
   Ferramenta de Orçamentos de ressalva (app/ferramentas/orcamentos)
   --------------------------------------------------------------------- */
.orc-alerta { background: var(--alerta-suave); border: 1px solid var(--alerta); color: var(--tinta); border-radius: var(--raio); padding: 12px 16px; margin-bottom: 16px; }
.orc-pendencias { margin: 4px 0 0; padding-left: 18px; font-size: 13px; color: var(--risco); }
.orc-ambiente { margin: 18px 0 6px; font-size: 14px; text-transform: uppercase; letter-spacing: .03em; color: var(--acento); }
.orc-novo-item { border-top: 1px solid var(--linha); margin-top: 18px; padding-top: 10px; }
.orc-nova-variacao { margin: 8px 0; font-size: 13px; }
.orc-nova-variacao summary { cursor: pointer; color: var(--alerta); }
.orc-form-item { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; max-width: 640px; }
.orc-falta { border-color: var(--alerta) !important; background: var(--alerta-suave); }
.orc-abas { display: flex; flex-wrap: wrap; gap: 4px; margin: 20px 0 0; }
.orc-aba-botao { border: 1px solid var(--linha); border-bottom: none; background: var(--fundo); padding: 8px 16px; border-radius: 8px 8px 0 0; cursor: pointer; font-size: 14px; color: var(--tinta-suave); }
.orc-aba-botao.ativo { background: var(--cartao); color: var(--acento); font-weight: 600; }
.orc-aba-total { font-size: 12px; color: var(--tinta-suave); margin-left: 6px; }
.orc-js .orc-aba { display: none; border-top-left-radius: 0; }
.orc-js .orc-aba.ativo { display: block; }
.orc-tabela input { font-size: 13px; padding: 4px 6px; }
.orc-tabela td.num input.orc-valor { width: 110px; text-align: right; font-variant-numeric: tabular-nums; }
.orc-linha-ambiente td { background: var(--fundo); font-weight: 600; font-size: 12px; text-transform: uppercase; color: var(--acento); }
.orc-linha-insumo td { font-size: 13px; border-bottom-style: dashed; }
.orc-subtotal td { font-size: 13px; color: var(--tinta-suave); font-variant-numeric: tabular-nums; }
.orc-total td { font-weight: 600; border-top: 2px solid var(--tinta); font-variant-numeric: tabular-nums; }
.orc-sug { font-size: 12px; color: var(--tinta-suave); line-height: 1.3; display: inline-block; }
.orc-sugerido { background: var(--amarelo-suave) !important; border-color: #E5D48A !important; }
.orc-editado { background: var(--cartao); border-color: var(--acento) !important; font-weight: 600; }
.orc-invalido { background: var(--risco-suave) !important; border-color: var(--risco) !important; }
.orc-legenda { display: inline-block; padding: 0 6px; border: 1px solid; border-radius: 4px; font-size: 12px; }
.orc-valor::placeholder { color: var(--alerta); font-style: italic; font-weight: 400; }
.orc-fluxo { border-top: 1px solid var(--linha); margin-top: 18px; padding-top: 12px; }
.orc-base td.num { white-space: nowrap; }
.orc-filtros-base .campo-form { display: flex; flex-direction: column; gap: 2px; margin: 0; font-size: 12px; color: var(--tinta-suave); }

/* Orçamentos — carga do histórico (destaques do relatório) */
.carga-alto { background: #f8c9c9; }
.carga-baixo { background: #fce3b0; }
.carga-parcial { background: #e3d7f5; }
.carga-sem_area { background: #e6e6e6; }
.carga-mescla { background: #fff2cc; }
.carga-nova { background: #e4f1ef; }
span.carga-alto, span.carga-baixo, span.carga-parcial, span.carga-sem_area, span.carga-mescla, span.carga-nova { padding: 0 4px; border-radius: 3px; }
