/* Integralex · identidade padrao da plataforma (a mesma do site integralex.com.br)
   Azul-marinho #131C33 com detalhe dourado #C9AE74, icone da orbita, Newsreader (titulos) + Hanken Grotesk (texto). */

:root {
    --marinho: #131C33;
    --azul: #24345C;
    --azul-escuro: #1B2643;
    --azul-claro: #ECEEF4;
    --azul-suave: #F6F7FA;
    --tinta: #1B2430;
    --tinta-2: #4A5565;
    --tinta-3: #7A8494;
    --linha: #E3E7EC;
    --fundo: #F5F7F9;
    --branco: #FFFFFF;
    --ok: #1F7A4D;
    --ok-claro: #E6F4EC;
    --alerta: #B4472F;
    --alerta-claro: #FBEDEA;
    --ouro: #C9AE74;
    --ouro-escuro: #8A6D2F;
    --raio: 10px;
    --sombra: 0 1px 2px rgba(19, 28, 51, .06), 0 2px 8px rgba(19, 28, 51, .04);
    --serifa: "Newsreader", "Iowan Old Style", Georgia, serif;
    --sans: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    --largura-menu: 268px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; }
body { font-family: var(--sans); font-size: 14.5px; line-height: 1.55; color: var(--tinta); background: var(--fundo); -webkit-font-smoothing: antialiased; }
a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { font-family: var(--serifa); font-weight: 400; color: var(--marinho); margin: 0; letter-spacing: .01em; }
.icone { flex-shrink: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Estrutura ---------- */
.app { display: flex; min-height: 100vh; }

.lateral {
    width: var(--largura-menu); background: var(--branco); color: var(--tinta-2); border-right: 1px solid var(--linha);
    display: flex; flex-direction: column; position: fixed; inset: 0 auto 0 0; z-index: 30;
    transition: width .2s ease, transform .2s ease;
}
.marca { display: flex; align-items: center; gap: 12px; padding: 22px 20px 20px; border-bottom: 1px solid var(--linha); color: var(--azul); }
.marca:hover { text-decoration: none; }
.logo-integralex { flex-shrink: 0; display: block; }
.marca-texto { display: flex; flex-direction: column; line-height: 1.15; white-space: nowrap; overflow: hidden; }
.marca-texto strong { font-family: var(--sans); font-weight: 600; color: var(--marinho); font-size: 15px; line-height: 1.25; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marca-texto small { color: var(--ouro-escuro); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; margin-top: 4px; font-weight: 600; }

.menu { flex: 1; overflow-y: auto; padding: 8px 12px 16px; }
.menu ul { list-style: none; margin: 0; padding: 0; }
.menu-titulo { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--tinta-3); padding: 18px 10px 6px; white-space: nowrap; font-weight: 600; }
.menu-item { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 8px; color: var(--tinta-2); font-size: 14px; font-weight: 500; white-space: nowrap; position: relative; }
a.menu-item:hover { background: var(--azul-suave); color: var(--azul); text-decoration: none; }
.menu-item.ativo { background: var(--azul); color: #fff; }
.menu-item.breve { color: #A3ACB8; cursor: default; }
.menu-rotulo { overflow: hidden; text-overflow: ellipsis; }
.selo-breve { margin-left: auto; font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; color: #A3ACB8; border: 1px solid #E1E5EA; border-radius: 20px; padding: 1px 7px; font-weight: 500; }

.recolher { display: flex; align-items: center; gap: 12px; margin: 8px 12px 16px; padding: 9px 10px; background: none; border: 1px solid var(--linha); border-radius: 8px; color: var(--tinta-3); cursor: pointer; font: inherit; font-size: 13px; white-space: nowrap; }
.recolher:hover { color: var(--azul); border-color: #C9D1DA; }

.principal { flex: 1; margin-left: var(--largura-menu); min-width: 0; display: flex; flex-direction: column; transition: margin-left .2s ease; }

/* Menu recolhido */
.menu-recolhido { --largura-menu: 78px; }
.menu-recolhido .marca-texto, .menu-recolhido .menu-rotulo, .menu-recolhido .selo-breve, .menu-recolhido .menu-titulo { display: none; }
.menu-recolhido .menu-item, .menu-recolhido .recolher { justify-content: center; }
.menu-recolhido .recolher .icone { transform: rotate(180deg); }
.menu-recolhido .marca { justify-content: center; padding-inline: 0; }
.menu-recolhido .menu ul + ul { border-top: 1px solid var(--linha); }

/* ---------- Topo ---------- */
.topo { display: flex; align-items: center; gap: 16px; padding: 18px 32px; background: var(--branco); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 20; }
.topo-titulo { flex: 1; min-width: 0; }
.topo-titulo h1 { font-size: 22px; }
.topo-titulo p { margin: 2px 0 0; color: var(--tinta-3); font-size: 13.5px; }
.topo-acoes { display: flex; align-items: center; gap: 10px; }

.usuario-menu { position: relative; }
.usuario-menu summary { list-style: none; display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 6px 10px 6px 6px; border-radius: 40px; border: 1px solid var(--linha); }
.usuario-menu summary::-webkit-details-marker { display: none; }
.usuario-menu summary:hover { border-color: #C9D1DA; }
.usuario-info { display: flex; flex-direction: column; line-height: 1.2; }
.usuario-info strong { font-size: 13.5px; }
.usuario-info small { font-size: 12px; color: var(--tinta-3); }
.usuario-popover { position: absolute; right: 0; top: calc(100% + 8px); min-width: 220px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 8px 24px rgba(14,34,54,.12); padding: 6px; }
.usuario-popover a, .usuario-popover button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 7px; color: var(--tinta); background: none; border: 0; font: inherit; font-size: 14px; cursor: pointer; text-align: left; }
.usuario-popover a:hover, .usuario-popover button:hover { background: var(--fundo); text-decoration: none; }
.usuario-popover form { margin: 0; }

.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--azul); color: #fff; font-family: var(--serifa); font-size: 14px; letter-spacing: .04em; flex-shrink: 0; }
.avatar.pequeno { width: 30px; height: 30px; font-size: 12px; }

.conteudo { padding: 28px 32px 40px; flex: 1; }
.rodape { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 16px 32px 24px; color: var(--tinta-3); font-size: 12px; border-top: 1px solid var(--linha); margin: 0 32px; padding-inline: 0; }

/* ---------- Componentes ---------- */
.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 22px; margin-bottom: 20px; }
.cartao-form { max-width: 960px; }
.cartao-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.cartao-topo h2 { font-size: 17px; }
.grade-2 { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; align-items: start; }
.grade-2 > .cartao { margin-bottom: 0; }

.indicadores { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-bottom: 20px; }
.indicador { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 14px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; box-shadow: var(--sombra); color: var(--tinta); transition: border-color .15s, transform .15s; }
.indicador:hover { border-color: var(--azul); text-decoration: none; transform: translateY(-1px); }
.indicador-icone { grid-row: 1 / span 3; width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center; background: var(--azul-claro); color: var(--azul); }
.indicador-valor { font-family: var(--serifa); font-size: 28px; font-weight: 600; color: var(--marinho); line-height: 1.1; }
.indicador-rotulo { font-weight: 600; font-size: 14px; }
.indicador-detalhe { color: var(--tinta-3); font-size: 12.5px; }

.linha-atividade { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start; padding: 11px 0; border-top: 1px solid var(--linha); }
.linha-atividade:first-of-type { border-top: 0; }
.linha-atividade strong { font-size: 14px; }
.linha-atividade p { margin: 1px 0 0; color: var(--tinta-2); font-size: 13.5px; }
.linha-atividade time { color: var(--tinta-3); font-size: 12.5px; white-space: nowrap; }
.ponto { width: 8px; height: 8px; border-radius: 50%; margin-top: 7px; background: var(--azul); }
.ponto-alerta { background: var(--alerta); }

.lista-etapas { list-style: none; margin: 0; padding: 0; }
.lista-etapas li { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--linha); font-size: 14px; color: var(--tinta-2); }
.lista-etapas li:first-child { border-top: 0; }
.lista-etapas li small { margin-left: auto; color: var(--tinta-3); font-size: 12px; }
.lista-etapas li.concluida { color: var(--ok); font-weight: 600; }
.etapa-num { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--linha); display: grid; place-items: center; font-size: 11.5px; color: var(--tinta-3); }

.selo { display: inline-block; font-size: 12px; padding: 2px 9px; border-radius: 20px; background: var(--azul-claro); color: var(--azul); white-space: nowrap; }
.selo-ouro { background: var(--azul); color: #fff; }
.selo-alerta { background: var(--alerta-claro); color: var(--alerta); }
.status { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; }
.status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; }
.status-ok { color: var(--ok); } .status-ok::before { background: var(--ok); }
.status-bloqueado { color: var(--alerta); } .status-bloqueado::before { background: var(--alerta); }

.aviso { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 8px; margin-bottom: 18px; font-size: 14px; }
.aviso-sucesso { background: var(--ok-claro); color: var(--ok); }
.aviso-erro { background: var(--alerta-claro); color: var(--alerta); }
.aviso-info { background: var(--azul-claro); color: var(--azul); }

.vazio { color: var(--tinta-3); text-align: center; padding: 26px 10px !important; }
.ajuda { color: var(--tinta-3); font-size: 13px; margin: 0; }
.link { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; }
.espaco { flex: 1; }

/* ---------- Botões ---------- */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 16px; border-radius: 8px; border: 1px solid transparent; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.botao:hover { text-decoration: none; }
.botao-primario { background: var(--azul); color: #fff; }
.botao-primario:hover { background: #184F73; }
.botao-secundario { background: #fff; color: var(--tinta); border-color: #D3D9E0; }
.botao-secundario:hover { border-color: var(--tinta-3); }
.botao-largo { width: 100%; padding: 12px; }
.botao-icone { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; border: 1px solid transparent; background: none; color: var(--tinta-2); cursor: pointer; }
.botao-icone:hover { background: var(--fundo); border-color: var(--linha); color: var(--azul); }
.botao-icone.perigo:hover { color: var(--alerta); }
.so-celular { display: none; }
form.inline { display: inline; margin: 0; }

/* ---------- Formulários ---------- */
.form { display: flex; flex-direction: column; gap: 16px; }
.form-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
.campo { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.campo > span { font-weight: 600; color: var(--tinta-2); }
.campo em { font-weight: 400; font-style: normal; color: var(--tinta-3); }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=search], input[type=date], select {
    font: inherit; font-size: 14.5px; color: var(--tinta); background: #fff; border: 1px solid #CFD6DE; border-radius: 8px; padding: 9px 12px; width: 100%; min-width: 0;
}
input:focus, select:focus, button:focus-visible, a:focus-visible { outline: 2px solid rgba(36,52,92,.35); outline-offset: 1px; border-color: var(--azul); }
input:disabled, select:disabled { background: var(--fundo); color: var(--tinta-3); }
.invalido { border-color: var(--alerta) !important; }
.erro { color: var(--alerta); font-size: 12.5px; }
.check { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--tinta-2); }
.bloco { border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px 18px; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.bloco legend { font-family: var(--serifa); font-weight: 600; color: var(--marinho); padding: 0 6px; }
.form-acoes { display: flex; justify-content: flex-end; gap: 10px; }

.barra-filtros { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
.barra-filtros select { width: auto; }
.campo-busca { position: relative; flex: 1 1 260px; max-width: 380px; }
.campo-busca .icone { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--tinta-3); }
.campo-busca input { padding-left: 36px; }
.campo-data { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--tinta-2); }
.campo-data input { width: auto; }

/* ---------- Tabelas ---------- */
.tabela-rolagem { overflow-x: auto; margin: 0 -22px; padding: 0 22px; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--linha); white-space: nowrap; }
.tabela th a { color: inherit; }
.tabela td { padding: 12px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tbody tr:hover td { background: #FAFBFC; }
.tabela .acoes { text-align: right; white-space: nowrap; width: 1%; }
.tabela .centro { text-align: center; }
.linha-inativa td { color: var(--tinta-3); }
.pessoa { display: flex; align-items: center; gap: 10px; }
.pessoa span:last-child { display: flex; flex-direction: column; line-height: 1.25; }
.pessoa small { color: var(--tinta-3); font-size: 12px; }
.detalhe { display: block; color: var(--tinta-3); font-size: 12.5px; margin-top: 2px; }
.nowrap { white-space: nowrap; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12.5px; }

/* Matriz de permissões */
.matriz th[scope=row], .matriz thead th:first-child { text-align: left; }
.cabecalho-acao, .cabecalho-modulo { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-transform: inherit; letter-spacing: inherit; }
.cabecalho-modulo { text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--tinta); font-weight: 600; }
.cabecalho-acao:hover:not(:disabled), .cabecalho-modulo:hover:not(:disabled) { color: var(--azul); }
.cabecalho-acao:disabled, .cabecalho-modulo:disabled { cursor: default; }
.caixa-matriz { display: inline-grid; place-items: center; cursor: pointer; }
.caixa-matriz input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.caixa-matriz span { width: 22px; height: 22px; border-radius: 6px; border: 1.5px solid #C5CDD6; background: #fff; display: grid; place-items: center; transition: all .12s; }
.caixa-matriz input:checked + span { background: var(--azul); border-color: var(--azul); }
.caixa-matriz input:checked + span::after { content: ""; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg) translate(-1px, -1px); }
.caixa-matriz input:focus-visible + span { outline: 2px solid rgba(36,52,92,.35); outline-offset: 2px; }
.caixa-matriz input:disabled + span { opacity: .55; cursor: default; }

/* Perfis */
.grade-perfis { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.perfil-cartao { display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; color: var(--tinta); transition: border-color .15s; }
.perfil-cartao:hover { border-color: var(--azul); text-decoration: none; }
.perfil-cartao header { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.perfil-cartao h3 { font-size: 16px; }
.perfil-cartao p { margin: 0; color: var(--tinta-2); font-size: 13.5px; flex: 1; }
.perfil-numeros { display: flex; justify-content: space-between; font-size: 12.5px; color: var(--tinta-3); }
.perfil-numeros strong { color: var(--tinta); }
.barra-progresso { height: 5px; border-radius: 5px; background: var(--fundo); overflow: hidden; }
.barra-progresso span { display: block; height: 100%; background: var(--azul); }

.dados { display: grid; grid-template-columns: 140px 1fr; gap: 10px 16px; margin: 0 0 16px; font-size: 14px; }
.dados dt { color: var(--tinta-3); }
.dados dd { margin: 0; }

/* Paginação */
.paginacao { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; flex-wrap: wrap; font-size: 13.5px; }
.paginacao-info { color: var(--tinta-3); }
.paginacao-links { display: flex; gap: 4px; flex-wrap: wrap; }
.pag { min-width: 34px; padding: 6px 10px; border-radius: 7px; border: 1px solid var(--linha); text-align: center; color: var(--tinta); }
.pag:hover { text-decoration: none; border-color: var(--azul); }
.pag.atual { background: var(--azul); border-color: var(--azul); color: #fff; }
.pag.desativado { color: var(--tinta-3); background: var(--fundo); }

/* ---------- Telas de acesso ---------- */
.tela-acesso { background: var(--branco); }
.acesso { display: grid; grid-template-columns: 1.05fr 1fr; min-height: 100vh; }
.acesso-marca { background: linear-gradient(155deg, #1B2643 0%, var(--marinho) 70%, #0D1426 100%); color: #fff; display: flex; flex-direction: column; justify-content: space-between; padding: 56px; position: relative; overflow: hidden; }
.marca-dagua { position: absolute; right: -60px; bottom: -40px; pointer-events: none; }
.acesso-marca-conteudo { margin-top: 20vh; position: relative; z-index: 1; }
.acesso-logo { display: flex; align-items: center; gap: 22px; }
.acesso-marca h2 { color: #fff; font-size: 40px; letter-spacing: 0; line-height: 1.1; }
.acesso-sub { color: var(--ouro); text-transform: uppercase; letter-spacing: .16em; font-size: 11.5px; margin: 10px 0 0; font-weight: 500; }
.acesso-linha { width: 120px; height: 4px; background: #fff; margin: 40px 0 18px; border-radius: 2px; }
.acesso-frase { font-size: 16px; color: rgba(255,255,255,.85); margin: 0; }
.acesso-rodape { display: flex; gap: 22px; flex-wrap: wrap; color: rgba(255,255,255,.7); font-size: 12.5px; position: relative; z-index: 1; }
.acesso-form { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 40px 24px; gap: 32px; }
.acesso-caixa { width: 100%; max-width: 400px; }
.acesso-titulo { font-size: 30px; margin-bottom: 6px; color: var(--azul); }
.acesso-texto { color: var(--tinta-2); margin: 0 0 24px; }
.acesso-nota { color: var(--tinta-3); font-size: 13px; margin-top: 20px; text-align: center; }
.acesso-endereco { color: var(--azul); font-size: 12px; text-align: center; margin: 0; max-width: 420px; }

/* ---------- Erros ---------- */
.tela-erro { display: grid; place-items: center; min-height: 100vh; padding: 24px; }
.erro-caixa { text-align: center; max-width: 440px; }
.erro-codigo { display: block; font-family: var(--serifa); font-size: 60px; color: var(--azul); margin-top: 18px; }
.erro-caixa h1 { font-size: 26px; margin: 6px 0 10px; }
.erro-caixa p { color: var(--tinta-2); margin: 0 0 24px; }

/* ---------- Responsivo ---------- */
.fundo-menu { display: none; }
@media (max-width: 1100px) { .grade-2 { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
    .lateral { transform: translateX(-100%); width: 264px; }
    .menu-recolhido .lateral { width: 264px; }
    .menu-recolhido .marca-texto, .menu-recolhido .menu-rotulo, .menu-recolhido .selo-breve, .menu-recolhido .menu-titulo { display: revert; }
    .menu-aberto .lateral { transform: none; box-shadow: 8px 0 30px rgba(0,0,0,.25); }
    .menu-aberto .fundo-menu { display: block; position: fixed; inset: 0; background: rgba(14,34,54,.45); z-index: 25; }
    .principal, .menu-recolhido .principal { margin-left: 0; }
    .recolher { display: none; }
    .so-celular { display: inline-grid; }
    .topo { padding: 14px 16px; }
    .topo-titulo h1 { font-size: 19px; }
    .usuario-info { display: none; }
    .usuario-menu summary { padding: 3px; }
    .conteudo { padding: 18px 16px 32px; }
    .rodape { margin: 0 16px; padding: 12px 0 20px; }
    .form-grade { grid-template-columns: 1fr; }
    .acesso { grid-template-columns: 1fr; }
    .acesso-marca { padding: 28px 24px; min-height: auto; }
    .acesso-marca-conteudo { margin-top: 0; }
    .acesso-marca h2 { font-size: 24px; }
    .marca-dagua { display: none; }
    .acesso-logo svg { width: 52px; height: auto; }
    .acesso-linha, .acesso-frase, .acesso-rodape { display: none; }
    .cartao { padding: 18px 16px; }
    .tabela-rolagem { margin: 0 -16px; padding: 0 16px; }
    .campo-busca { max-width: none; }
}

/* ================= Entrega 2 · Clientes e CRM ================= */

/* Busca global */
.busca-global { position: relative; flex: 0 1 380px; }
.busca-global .icone { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--tinta-3); }
.busca-global input { padding-left: 38px; background: var(--fundo); border-color: transparent; }
.busca-global input:focus { background: #fff; }
.busca-resultados { position: absolute; top: calc(100% + 6px); left: 0; right: 0; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 10px 28px rgba(19,28,51,.14); padding: 6px; z-index: 40; max-height: 70vh; overflow-y: auto; }
.busca-resultados h4 { margin: 8px 8px 4px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-3); }
.busca-resultados a { display: block; padding: 8px 10px; border-radius: 7px; color: var(--tinta); }
.busca-resultados a:hover, .busca-resultados a.ativo { background: var(--azul-suave); text-decoration: none; }
.busca-resultados a small { display: block; color: var(--tinta-3); font-size: 12px; }
.busca-resultados .ver-todos { color: var(--azul); font-weight: 600; font-size: 13px; border-top: 1px solid var(--linha); margin-top: 4px; border-radius: 0 0 7px 7px; }
.busca-resultados .nada { padding: 12px; color: var(--tinta-3); font-size: 13px; }

/* Formulários do CRM */
.campo-largo { grid-column: 1 / -1; }
textarea { font: inherit; font-size: 14.5px; color: var(--tinta); background: #fff; border: 1px solid #CFD6DE; border-radius: 8px; padding: 10px 12px; width: 100%; resize: vertical; }
textarea:focus { outline: 2px solid rgba(36,52,92,.35); outline-offset: 1px; border-color: var(--azul); }
input[type=datetime-local] { font: inherit; font-size: 14px; border: 1px solid #CFD6DE; border-radius: 8px; padding: 8px 10px; }
.seletor-tipo { display: inline-flex; background: var(--fundo); border-radius: 10px; padding: 4px; gap: 4px; margin-bottom: 18px; flex-wrap: wrap; }
.seletor-tipo label { cursor: pointer; }
.seletor-tipo input { position: absolute; opacity: 0; pointer-events: none; }
.seletor-tipo span { display: block; padding: 8px 16px; border-radius: 7px; font-weight: 600; font-size: 13.5px; color: var(--tinta-2); }
.seletor-tipo input:checked + span { background: #fff; color: var(--azul); box-shadow: var(--sombra); }
.seletor-tipo input:focus-visible + span { outline: 2px solid rgba(36,52,92,.35); }
[data-tipo="pf"] [data-pj], [data-tipo="pj"] [data-pf] { display: none !important; }
.check-destaque { margin-top: 16px; padding: 12px 14px; border: 1px dashed #CFD6DE; border-radius: 8px; align-items: flex-start; }
.check-destaque input { margin-top: 3px; }

.alertas-ao-vivo, .pontos-atencao { border-left: 4px solid #C98A1B; background: #FDF6E8; color: #6B4A0E; border-radius: 8px; padding: 12px 16px; margin-top: 16px; font-size: 13.5px; }
.pontos-atencao { margin: 0 0 20px; }
.alertas-ao-vivo strong, .pontos-atencao > strong { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.alertas-ao-vivo ul, .pontos-atencao ul { margin: 0; padding-left: 20px; }
.alertas-ao-vivo li, .pontos-atencao li { margin: 3px 0; }
.alertas-ao-vivo a, .pontos-atencao a { color: #6B4A0E; font-weight: 600; text-decoration: underline; }
.pontos-atencao small { display: block; margin-top: 6px; opacity: .8; }

/* Selos de situação e etapa */
.selo-lead { background: #FDF3E1; color: #8A5A0B; }
.selo-cliente { background: var(--ok-claro); color: var(--ok); }
.selo-inativo { background: #EEF0F3; color: var(--tinta-3); }
.selo-etapa-novo { background: #EEF0F3; color: var(--tinta-2); }
.selo-etapa-qualificacao { background: var(--azul-claro); color: var(--azul); }
.selo-etapa-proposta { background: #EAE6F7; color: #4E3D99; }
.selo-etapa-negociacao { background: #FDF3E1; color: #8A5A0B; }
.selo-etapa-ganha { background: var(--ok-claro); color: var(--ok); }
.selo-etapa-perdida { background: var(--alerta-claro); color: var(--alerta); }

.linha-clicavel { cursor: pointer; }
.contato-linha { display: block; white-space: nowrap; }
.avatar-pj { border-radius: 9px; background: var(--marinho); }
.avatar.grande { width: 72px; height: 72px; font-size: 26px; margin: 0 auto 12px; }
.avatar.mini { width: 24px; height: 24px; font-size: 10px; }
.contador { display: inline-grid; place-items: center; min-width: 22px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--fundo); color: var(--tinta-2); font-size: 11.5px; font-weight: 600; }

/* Ficha do cliente */
.ficha { display: grid; grid-template-columns: 320px 1fr; gap: 20px; align-items: start; }
.ficha-lado .cartao { margin-bottom: 16px; }
.ficha-identidade { text-align: center; }
.ficha-identidade h2 { font-size: 20px; }
.ficha-selos { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; margin: 10px 0 16px; }
.ficha-selos .selo { display: inline-flex; align-items: center; gap: 4px; }
.ficha-acoes { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }
.ficha-acoes .botao { padding: 7px 12px; font-size: 13px; }
.lista-contato { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 13.5px; }
.lista-contato li { display: flex; gap: 10px; align-items: flex-start; word-break: break-word; }
.lista-contato .icone { color: var(--azul); margin-top: 2px; }
.dados-compactos { grid-template-columns: 110px 1fr; font-size: 13px; gap: 8px 12px; }
.link-discreto { background: none; border: 0; padding: 0; font: inherit; font-size: 13px; color: var(--tinta-3); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.link-discreto:hover { color: var(--alerta); }

.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 16px; overflow-x: auto; }
.aba { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; color: var(--tinta-2); font-weight: 600; font-size: 14px; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.aba:hover { color: var(--azul); text-decoration: none; }
.aba.ativa { color: var(--azul); border-bottom-color: var(--azul); }
.aba.ativa .contador { background: var(--azul); color: #fff; }
.js .painel-aba { display: none; }
.js .painel-aba.ativa { display: block; }

.novo-atendimento { border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; margin-bottom: 18px; gap: 10px; background: var(--azul-suave); }
.linha-campos { display: flex; gap: 10px; flex-wrap: wrap; }
.linha-campos select { width: auto; }

.linha-tempo { list-style: none; margin: 0; padding: 0; position: relative; }
.linha-tempo::before { content: ""; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--linha); }
.linha-tempo li { position: relative; padding: 0 0 18px 30px; }
.linha-tempo .marcador { position: absolute; left: 1px; top: 4px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--azul); }
.linha-tempo .evento-sistema .marcador { border-color: #C5CDD6; }
.linha-tempo header { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 13.5px; }
.linha-tempo time { color: var(--tinta-3); font-size: 12.5px; }
.linha-tempo p { margin: 4px 0 0; font-size: 14px; color: var(--tinta-2); }
.linha-tempo .evento-sistema p { font-size: 13px; color: var(--tinta-3); }
.linha-tempo li.vazio { padding-left: 0; }
.linha-tempo:has(li.vazio)::before { display: none; }

.linha-oportunidade, .linha-resultado { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 12px; align-items: center; padding: 12px 10px; border-top: 1px solid var(--linha); color: var(--tinta); border-radius: 6px; }
.linha-oportunidade:first-of-type, .linha-resultado:first-of-type { border-top: 0; }
.linha-oportunidade:hover, .linha-resultado:hover { background: var(--azul-suave); text-decoration: none; }
.linha-oportunidade .ajuda { grid-column: 2; font-size: 12.5px; }
.linha-oportunidade .valor { grid-row: 1 / span 2; grid-column: 3; }
.linha-oportunidade .selo { grid-row: 1 / span 2; }
.linha-resultado { grid-template-columns: auto 1fr; }
.linha-resultado span:last-child { display: flex; flex-direction: column; }
.valor { font-weight: 600; color: var(--marinho); white-space: nowrap; font-size: 13.5px; }
.linha-representante { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--linha); }
.linha-representante:first-of-type { border-top: 0; }
.linha-representante form { margin: 0; }
#representantes .bloco { margin-top: 16px; }
.texto-livre { margin: 0; white-space: normal; color: var(--tinta-2); }

/* Funil comercial */
.resumo-funil { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.resumo-funil div { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px; box-shadow: var(--sombra); }
.resumo-funil strong { display: block; font-family: var(--serifa); font-weight: 400; font-size: 26px; color: var(--azul); }
.resumo-funil span { color: var(--tinta-3); font-size: 13px; }
.alternador { display: inline-flex; border: 1px solid #D3D9E0; border-radius: 8px; overflow: hidden; }
.alternador a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; font-size: 13px; font-weight: 600; color: var(--tinta-2); }
.alternador a.ativo { background: var(--azul); color: #fff; }
.alternador a:hover { text-decoration: none; }

.kanban { display: grid; grid-template-columns: repeat(6, minmax(220px, 1fr)); gap: 12px; overflow-x: auto; padding-bottom: 8px; margin: 0 -4px; }
.kanban-coluna { background: var(--fundo); border-radius: var(--raio); padding: 10px; min-height: 260px; display: flex; flex-direction: column; border-top: 3px solid #C5CDD6; }
.kanban-qualificacao { border-top-color: var(--azul); }
.kanban-proposta { border-top-color: #6A57C4; }
.kanban-negociacao { border-top-color: #C98A1B; }
.kanban-ganha { border-top-color: var(--ok); }
.kanban-perdida { border-top-color: var(--alerta); }
.kanban-coluna header { display: flex; justify-content: space-between; align-items: center; padding: 2px 4px; }
.kanban-titulo { font-weight: 700; font-size: 12.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-2); }
.kanban-soma { font-size: 12px; color: var(--tinta-3); padding: 2px 4px 8px; }
.kanban-cartoes { display: flex; flex-direction: column; gap: 8px; flex: 1; min-height: 60px; border-radius: 8px; transition: background .15s; }
.kanban-coluna.alvo .kanban-cartoes { background: rgba(36,52,92,.08); outline: 2px dashed rgba(36,52,92,.4); outline-offset: 2px; }
.kanban-cartao { background: #fff; border: 1px solid var(--linha); border-radius: 8px; padding: 10px 12px; box-shadow: var(--sombra); position: relative; }
.kanban-cartao[draggable=true] { cursor: grab; }
.kanban-cartao.arrastando { opacity: .45; }
.kanban-cartao.salvando { opacity: .6; pointer-events: none; }
.kanban-link { display: block; color: var(--tinta); padding-right: 22px; }
.kanban-link:hover { text-decoration: none; color: var(--azul); }
.kanban-link strong { display: block; font-size: 13.5px; line-height: 1.35; }
.kanban-cliente { display: block; font-size: 12.5px; color: var(--tinta-3); margin-top: 2px; }
.kanban-cartao footer { display: flex; justify-content: space-between; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.kanban-cartao footer .selo { font-size: 11px; }
.kanban-data { display: block; font-size: 11.5px; color: var(--tinta-3); margin-top: 6px; }
.kanban-data.atrasada { color: var(--alerta); font-weight: 600; }
.kanban-cartao .avatar.mini { position: absolute; top: 8px; right: 8px; }

/* Manutenção */
.lista-simples { margin: 10px 0; padding-left: 18px; font-size: 12.5px; }
.saida-tecnica { background: #0F2233; color: #D6E2EC; border-radius: 8px; padding: 14px; font-size: 12px; overflow-x: auto; white-space: pre-wrap; margin: 16px 0 0; }

@media (max-width: 1100px) { .ficha { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
    .busca-global { order: 3; flex: 1 1 100%; }
    .topo { flex-wrap: wrap; }
    .resumo-funil { grid-template-columns: 1fr; gap: 10px; }
    .kanban { grid-template-columns: repeat(6, 82vw); scroll-snap-type: x mandatory; }
    .kanban-coluna { scroll-snap-align: start; }
}

/* Números em fonte sem serifa, para leitura clara de valores */
.indicador-valor, .resumo-funil strong { font-family: var(--sans) !important; font-weight: 600 !important; letter-spacing: -.01em; }
.kanban-soma:empty { min-height: 0; padding: 0 0 6px; }

/* ===================== Entrega 3 · Processos ===================== */
.selo-proc-ativo { background: var(--ok-claro); color: var(--ok); }
.selo-proc-suspenso { background: #FDF3E1; color: #8A5A0B; }
.selo-proc-arquivado, .selo-proc-encerrado { background: #EEF0F3; color: var(--tinta-3); }
.selo-datajud { background: var(--azul-claro); color: var(--azul); font-size: 10.5px; padding: 1px 7px; letter-spacing: .02em; }
.numero-processo { font-weight: 600; white-space: nowrap; }
.ficha-processo .numero-grande { display: block; font-size: 15px; font-weight: 600; color: var(--azul); letter-spacing: .01em; word-break: break-all; }
.ficha-processo h2 { margin-top: 6px; }
.ficha-acoes form { display: inline; margin: 0; }
.campo-acao { justify-content: flex-end; }
.campo-acao .botao { width: 100%; justify-content: center; }
.botao:disabled { opacity: .55; cursor: not-allowed; }
.previa-datajud { margin-top: 14px; padding: 14px 16px; border-radius: 10px; background: var(--azul-suave); border: 1px solid var(--azul-claro); font-size: 13.5px; color: var(--tinta-2); }
.previa-datajud ul { margin: 8px 0; padding-left: 18px; }
.previa-datajud small { color: var(--tinta-3); }
.previa-datajud.ok-caixa { border-color: #B9D3E4; }
.previa-datajud.ok-caixa strong { color: var(--azul); }
.previa-datajud.erro-caixa { background: var(--alerta-claro); border-color: #F1CFC7; color: var(--alerta); }
input.preenchido-dj { background: var(--azul-suave); border-color: #9DBDD3; }
small.ok { color: var(--ok); font-size: 12.5px; }
.lista-checks { display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 4px; }
fieldset.campo { border: 0; padding: 0; margin: 0; min-width: 0; }
.subtitulo-bloco { font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: var(--tinta-3); margin: 18px 0 4px; font-weight: 600; }
.subtitulo-bloco:first-of-type { margin-top: 4px; }
.linha-audiencia { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-top: 1px solid var(--linha); }
.linha-audiencia:first-of-type { border-top: 0; }
.linha-audiencia.atrasada .data-bloco { background: var(--alerta-claro); color: var(--alerta); }
.data-bloco { min-width: 74px; text-align: center; background: var(--azul-claro); color: var(--azul); border-radius: 10px; padding: 8px 6px; line-height: 1.2; }
.data-bloco strong { display: block; font-size: 18px; font-weight: 600; }
.data-bloco small { font-size: 11.5px; }
.audiencia-info { flex: 1; min-width: 0; }
.form-inline { margin: 0; }
.form-inline select { padding: 6px 10px; font-size: 13px; }
.destaque-audiencia { display: grid; gap: 2px; border-left: 4px solid var(--azul); }
.destaque-audiencia small { text-transform: uppercase; letter-spacing: .08em; font-size: 10.5px; color: var(--tinta-3); font-weight: 600; }
.destaque-audiencia strong { font-size: 17px; color: var(--azul); font-weight: 600; }
.destaque-audiencia span { color: var(--tinta-2); font-size: 13px; }
.linha-tempo .evento-datajud .marcador { background: #fff; border: 2px solid var(--azul); }
.nota-fonte { margin-top: 14px; font-size: 12px; }
@media (max-width: 720px) {
    .linha-audiencia { flex-wrap: wrap; }
    .form-inline { width: 100%; }
}

/* ===================== Entrega 4 · Tarefas, agenda e notificações ===================== */
:root { --cor-evento: #24345C; --cor-audiencia: #6A57C4; --cor-processual: #B4472F; --cor-tarefa: #C98A1B; }
.texto-alerta { color: var(--alerta) !important; font-weight: 600; }
.resumo-funil:has(> a:nth-child(4)) { grid-template-columns: repeat(4, 1fr); }
.resumo-funil a { display: block; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px; box-shadow: var(--sombra); color: inherit; transition: border-color .15s; }
.resumo-funil a:hover { border-color: var(--azul); text-decoration: none; }
.resumo-funil a.resumo-alerta { border-color: #F1CFC7; background: var(--alerta-claro); }
.resumo-funil a.resumo-alerta strong { color: var(--alerta); }
.indicador-alerta .indicador-detalhe { color: var(--alerta); font-weight: 600; }
.indicador-alerta .indicador-icone { background: var(--alerta-claro); color: var(--alerta); }

/* Selos */
.selo-t-a_fazer { background: #EEF0F3; color: var(--tinta-2); }
.selo-t-em_andamento { background: var(--azul-claro); color: var(--azul); }
.selo-t-em_revisao { background: #EAE6F7; color: #4E3D99; }
.selo-t-concluida { background: var(--ok-claro); color: var(--ok); }
.selo-t-cancelada { background: #EEF0F3; color: var(--tinta-3); text-decoration: line-through; }
.selo-prio-baixa { background: #EEF0F3; color: var(--tinta-3); }
.selo-prio-normal { background: #EEF0F3; color: var(--tinta-2); }
.selo-prio-alta { background: #FDF3E1; color: #8A5A0B; }
.selo-prio-urgente { background: var(--alerta-claro); color: var(--alerta); }

/* Quadro de tarefas */
.kanban-tarefas { grid-template-columns: repeat(4, minmax(240px, 1fr)); }
.kanban-t-em_andamento { border-top-color: var(--azul); }
.kanban-t-em_revisao { border-top-color: #6A57C4; }
.kanban-t-concluida { border-top-color: var(--ok); }
.kanban-t-concluida .kanban-cartao { opacity: .75; }
.kanban-cartao.prio-alta { border-left: 3px solid #C98A1B; }
.kanban-cartao.prio-urgente { border-left: 3px solid var(--alerta); }
.kanban-cartao.cartao-atrasado { background: #FFF9F7; }
.kanban-meta { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; color: var(--tinta-3); }
.kanban-data.hoje { color: #8A5A0B; font-weight: 600; }
.kanban-novo { display: flex; align-items: center; gap: 6px; justify-content: center; margin-top: 8px; padding: 8px; border: 1px dashed #C5CDD6; border-radius: 8px; font-size: 13px; color: var(--tinta-3); }
.kanban-novo:hover { color: var(--azul); border-color: var(--azul); text-decoration: none; }

/* Ficha da tarefa */
.acoes-status { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; justify-content: center; }
.acoes-status form { margin: 0; }
.barra-progresso { display: block; height: 6px; background: #EEF0F3; border-radius: 6px; overflow: hidden; margin-top: 6px; }
.barra-progresso > span { display: block; height: 100%; background: var(--azul); border-radius: 6px; }
.barra-progresso.estourada > span { background: var(--alerta); }
.barra-progresso.larga { height: 8px; margin: 4px 0 14px; }
.bloco-descricao { background: var(--azul-suave); border-radius: 10px; padding: 14px 16px; margin-bottom: 16px; color: var(--tinta-2); }
.checklist { list-style: none; margin: 0 0 12px; padding: 0; }
.checklist li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.checklist li.vazio { border: 0; }
.checklist-texto { flex: 1; min-width: 0; }
.checklist li.feito .checklist-texto { color: var(--tinta-3); text-decoration: line-through; }
.checklist li.feito .checklist-texto small { text-decoration: none; }
.caixa-check { width: 22px; height: 22px; flex-shrink: 0; border: 2px solid #B8C2CE; border-radius: 6px; background: #fff; display: grid; place-items: center; padding: 0; cursor: pointer; color: #fff; }
li.feito .caixa-check { background: var(--ok); border-color: var(--ok); }
.caixa-check:hover { border-color: var(--azul); }
.linha-adicionar { display: flex; gap: 8px; }
.linha-adicionar input { flex: 1; }
fieldset.sem-borda { border: 0; padding: 0; margin: 0; min-width: 0; }
.link.perigo, .link-discreto.perigo { color: var(--alerta); }

/* Linhas do painel e do processo */
.linha-tarefa, .linha-hoje { display: flex; align-items: center; gap: 12px; padding: 10px 6px; border-top: 1px solid var(--linha); color: var(--tinta); }
.linha-tarefa:first-of-type, .linha-hoje:first-of-type { border-top: 0; }
.linha-tarefa:hover, .linha-hoje:hover { background: var(--azul-suave); text-decoration: none; }
.linha-tarefa-texto { flex: 1; min-width: 0; }
.linha-tarefa-texto strong { display: block; font-size: 14px; font-weight: 600; }
.linha-tarefa-prazo { font-size: 12.5px; color: var(--tinta-3); text-align: right; white-space: nowrap; }
.linha-tarefa-prazo small { display: block; }
.linha-tarefa.atrasada .linha-tarefa-prazo { color: var(--alerta); font-weight: 600; }
.hoje-hora { min-width: 46px; font-weight: 600; font-size: 13px; color: var(--azul); }
.linha-hoje { border-left: 3px solid transparent; }
.linha-hoje.camada-audiencia { border-left-color: var(--cor-audiencia); }
.linha-hoje.camada-processual { border-left-color: var(--cor-processual); }
.linha-hoje.camada-evento { border-left-color: var(--cor-evento); }
.linha-hoje strong { display: block; font-weight: 600; font-size: 14px; }

/* Agenda */
.barra-agenda { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.navegacao-agenda { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 260px; }
.periodo-agenda { font-family: var(--serifa); font-weight: 400; font-size: 20px; color: var(--azul); margin-left: 10px; }
.filtros-agenda { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 10px 0 14px; border-bottom: 1px solid var(--linha); margin-bottom: 14px; }
.filtros-agenda select { margin-left: auto; width: auto; min-width: 220px; }
.legenda-camada { font-size: 13px; }
.ponto-camada { width: 10px; height: 10px; border-radius: 3px; display: inline-block; background: var(--cor-evento); }
.camada-audiencia .ponto-camada { background: var(--cor-audiencia); }
.camada-processual .ponto-camada { background: var(--cor-processual); }
.camada-tarefa .ponto-camada { background: var(--cor-tarefa); }

.item-agenda { display: block; font-size: 12px; line-height: 1.3; padding: 3px 6px; border-radius: 5px; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--tinta); background: var(--azul-claro); border-left: 3px solid var(--cor-evento); }
a.item-agenda:hover { text-decoration: none; filter: brightness(.96); }
.item-agenda.camada-audiencia { background: #EFECFA; border-left-color: var(--cor-audiencia); }
.item-agenda.camada-processual { background: var(--alerta-claro); border-left-color: var(--cor-processual); font-weight: 600; }
.item-agenda.camada-tarefa { background: #FDF5E6; border-left-color: var(--cor-tarefa); }
.item-agenda.item-alerta { box-shadow: inset 0 0 0 1px var(--alerta); }
.item-agenda.item-concluido { opacity: .55; text-decoration: line-through; }
.item-hora { font-weight: 600; color: var(--tinta-2); }

.calendario-mes { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--linha); border-radius: 10px; overflow: hidden; }
.cal-cabecalho { background: var(--fundo); text-align: center; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-3); padding: 8px 0; border-bottom: 1px solid var(--linha); }
.cal-dia { min-height: 112px; padding: 6px; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); background: #fff; min-width: 0; }
.cal-dia:nth-child(7n) { border-right: 0; }
.cal-dia.fim-semana { background: #FAFBFC; }
.cal-dia.fora-mes { background: #F7F8FA; }
.cal-dia.fora-mes .cal-numero { color: #B8C2CE; }
.cal-numero { display: inline-grid; place-items: center; min-width: 26px; height: 26px; border-radius: 50%; font-size: 13px; font-weight: 600; color: var(--tinta-2); }
.cal-dia.hoje .cal-numero { background: var(--azul); color: #fff; }
.cal-mais { display: block; font-size: 11.5px; margin-top: 4px; color: var(--tinta-3); }

.calendario-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.sem-coluna { background: var(--fundo); border-radius: 10px; padding: 8px; min-height: 260px; position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sem-coluna.hoje { background: var(--azul-suave); box-shadow: inset 0 0 0 2px var(--azul-claro); }
.sem-cabecalho { display: flex; align-items: baseline; gap: 6px; color: var(--tinta-3); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; padding: 2px 4px 6px; }
.sem-cabecalho strong { font-size: 20px; color: var(--tinta); font-weight: 600; }
.sem-coluna.hoje .sem-cabecalho strong { color: var(--azul); }
.sem-cabecalho:hover { text-decoration: none; }
.sem-vazio { font-size: 12px; color: #B8C2CE; padding: 4px; }
.sem-novo { position: absolute; top: 8px; right: 8px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: var(--tinta-3); }
.sem-novo:hover { background: #fff; color: var(--azul); }
.item-bloco { white-space: normal; padding: 6px 8px; margin: 0; }
.item-bloco strong { display: block; font-size: 12.5px; font-weight: 600; }
.item-bloco small { display: block; font-size: 11.5px; color: var(--tinta-3); }
.item-tipo { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }

.agenda-dia { display: grid; gap: 10px; }
.dia-linha { display: grid; grid-template-columns: 80px 1fr; gap: 12px; align-items: start; }
.dia-hora { font-weight: 600; color: var(--azul); padding-top: 8px; }
.dia-hora small { display: block; font-weight: 400; color: var(--tinta-3); font-size: 12px; }
.agenda-dia .item-bloco { padding: 10px 14px; font-size: 13.5px; }
.agenda-dia .item-bloco strong { font-size: 15px; }
.agenda-dia .item-bloco small { font-size: 12.5px; display: flex; align-items: center; gap: 4px; margin-top: 2px; }

/* Sino */
.topo-acoes { display: flex; align-items: center; gap: 10px; }
.sino-menu { position: relative; }
.sino-menu summary { list-style: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; color: var(--tinta-2); border: 1px solid var(--linha); position: relative; }
.sino-menu summary::-webkit-details-marker { display: none; }
.sino-menu summary:hover { color: var(--azul); border-color: #C9D1DA; }
.sino-contador { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--alerta); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.sino-popover { position: absolute; right: 0; top: calc(100% + 8px); width: min(360px, 92vw); max-height: 70vh; overflow-y: auto; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 10px 28px rgba(19,28,51,.14); padding: 6px; z-index: 50; }
.sino-popover h4 { margin: 8px 8px 4px; font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-3); }
.sino-item { display: block; padding: 8px 10px; border-radius: 7px; color: var(--tinta); border-left: 3px solid transparent; }
.sino-item:hover { background: var(--azul-suave); text-decoration: none; }
.sino-item strong { display: block; font-size: 13px; }
.sino-item small { display: block; color: var(--tinta-3); font-size: 12px; }
.sino-item.nivel-alerta { border-left-color: var(--alerta); }
.sino-item.nivel-alerta strong { color: var(--alerta); }
.sino-item.nivel-aviso { border-left-color: #C98A1B; }
.sino-item.nao-lida { background: var(--azul-suave); }
.sino-item.nao-lida strong::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--azul); margin-right: 6px; vertical-align: middle; }
.sino-popover .ver-todos { display: block; text-align: center; padding: 8px; font-weight: 600; font-size: 13px; border-top: 1px solid var(--linha); margin-top: 4px; }
.sino-popover .nada { padding: 12px; color: var(--tinta-3); font-size: 13px; margin: 0; }
.linha-notificacao { display: flex; gap: 12px; align-items: flex-start; padding: 10px 8px; border-top: 1px solid var(--linha); color: var(--tinta); }
.linha-notificacao:first-of-type { border-top: 0; }
.linha-notificacao:hover { background: var(--azul-suave); text-decoration: none; }
.linha-notificacao .icone { flex-shrink: 0; margin-top: 2px; color: var(--tinta-3); }
.linha-notificacao.nivel-alerta .icone, .linha-notificacao.nivel-alerta strong { color: var(--alerta); }
.linha-notificacao.nao-lida strong { color: var(--azul); }
.linha-notificacao.lida { opacity: .75; }

@media (max-width: 900px) {
    .resumo-funil:has(> a:nth-child(4)) { grid-template-columns: repeat(2, 1fr); }
    .calendario-semana { grid-template-columns: 1fr; }
    .sem-coluna { min-height: 0; }
    .cal-dia { min-height: 72px; padding: 3px; }
    .cal-dia .item-agenda { font-size: 0; height: 6px; padding: 0; margin-top: 2px; }
    .kanban-tarefas { grid-template-columns: repeat(4, 82vw); }
    .filtros-agenda select { margin-left: 0; width: 100%; }
}

/* ===================== Timesheet ===================== */
.grade-horas { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grade-horas .campo-largo { grid-column: 1 / -1; }
.campo-check-baixo { align-self: end; padding-bottom: 10px; }
.cronometro { display: flex; align-items: center; gap: 10px; }
.cronometro-tempo { font-family: var(--sans); font-weight: 600; font-size: 18px; color: var(--tinta-3); letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.cronometro.rodando .cronometro-tempo { color: var(--alerta); }
.cronometro.rodando .cronometro-tempo::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--alerta); margin-right: 8px; vertical-align: middle; animation: piscar 1.2s infinite; }
@keyframes piscar { 50% { opacity: .2; } }
.semana-horas { display: grid; gap: 10px; }
.dia-horas { border: 1px solid var(--linha); border-radius: 10px; padding: 10px 14px; }
.dia-horas.hoje { border-color: var(--azul); box-shadow: inset 3px 0 0 var(--azul); }
.dia-horas.fim-semana { opacity: .6; }
.dia-horas header { display: flex; justify-content: space-between; align-items: baseline; font-size: 13.5px; color: var(--tinta-2); font-weight: 600; }
.dia-horas header strong { font-size: 16px; color: var(--azul); }
.dia-horas header strong.zero { color: #B8C2CE; }
.lancamento { display: grid; grid-template-columns: 80px 1fr auto; gap: 12px; padding: 10px 0 4px; border-top: 1px dashed var(--linha); margin-top: 8px; align-items: start; }
.lancamento-duracao { font-weight: 700; font-size: 15px; color: var(--tinta); }
.lancamento-duracao small { display: block; font-weight: 400; font-size: 11.5px; color: var(--tinta-3); }
.lancamento-texto strong { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }
.lancamento-texto p { margin: 2px 0; font-size: 14px; }
.lancamento-texto .erro { display: block; }
.lancamento-acoes { display: flex; align-items: center; gap: 4px; }
.lancamento.status-rejeitado { background: #FFF9F7; }
.dia-vazio { display: block; font-size: 12.5px; color: #B8C2CE; margin-top: 4px; }
.dia-vazio:hover { color: var(--azul); }
.selo-h-lancado { background: #EEF0F3; color: var(--tinta-2); }
.selo-h-aprovado { background: var(--ok-claro); color: var(--ok); }
.selo-h-rejeitado { background: var(--alerta-claro); color: var(--alerta); }
.grade-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.resumos-horas { margin-top: 16px; }
.barra-resumo { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; margin: 8px 0; font-size: 13px; }
.barra-rotulo { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.barra-valor { font-weight: 600; }
.barra-trilho { grid-column: 1 / -1; height: 6px; background: #EEF0F3; border-radius: 6px; overflow: hidden; }
.barra-trilho > span { display: block; height: 100%; background: var(--azul); border-radius: 6px; }
.barra-revisao { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.barra-revisao input[type=text] { min-width: 260px; flex: 1; max-width: 420px; }
.campo-data { flex-direction: row; align-items: center; gap: 6px; }
.campo-data span { font-size: 12.5px; color: var(--tinta-3); }
@media (max-width: 900px) {
    .grade-horas, .grade-3 { grid-template-columns: 1fr 1fr; }
    .lancamento { grid-template-columns: 64px 1fr; }
    .lancamento-acoes { grid-column: 1 / -1; justify-content: flex-end; }
}

/* ===================== Entrega 5 · DJEN e prazos ===================== */
.selo-ok { background: var(--ok-claro); color: var(--ok); }
.selo-pub-nova { background: var(--alerta-claro); color: var(--alerta); }
.selo-pub-em_analise { background: #FDF3E1; color: #8A5A0B; }
.selo-pub-tratada { background: var(--ok-claro); color: var(--ok); }
.selo-pub-descartada { background: #EEF0F3; color: var(--tinta-3); }
.selo-prazo-sugerido { background: #FDF3E1; color: #8A5A0B; }
.selo-prazo-aprovado { background: var(--azul-claro); color: var(--azul); }
.selo-prazo-cumprido { background: var(--ok-claro); color: var(--ok); }
.selo-prazo-cancelado { background: #EEF0F3; color: var(--tinta-3); text-decoration: line-through; }
.sinc-info { flex: 1; min-width: 260px; font-size: 13.5px; color: var(--tinta-2); }
.sinc-info .erro { display: block; }
.lista-publicacoes { display: grid; gap: 0; margin-top: 8px; }
.publicacao-linha { display: grid; grid-template-columns: 60px 1fr; gap: 14px; padding: 14px 8px; border-top: 1px solid var(--linha); color: var(--tinta); }
.publicacao-linha:hover { background: var(--azul-suave); text-decoration: none; }
.publicacao-linha.status-nova { box-shadow: inset 3px 0 0 var(--alerta); }
.publicacao-linha.status-nova .pub-corpo p { font-weight: 500; }
.pub-data { text-align: center; background: var(--fundo); border-radius: 8px; padding: 6px 0; height: fit-content; }
.pub-data strong { display: block; font-size: 16px; }
.pub-data small { color: var(--tinta-3); font-size: 11px; }
.pub-topo { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; }
.pub-corpo p { margin: 6px 0 4px; font-size: 13.5px; color: var(--tinta-2); line-height: 1.5; }
.texto-publicacao { font-size: 14.5px; line-height: 1.7; color: var(--tinta); background: #FCFCFD; border: 1px solid var(--linha); border-radius: 10px; padding: 18px 20px; white-space: normal; word-wrap: break-word; }
.texto-rolagem { max-height: 70vh; overflow-y: auto; font-size: 13.5px; }
.botao-bloco { width: 100%; justify-content: center; margin-top: 12px; }
.ficha-lado-largo { order: 2; }
.memoria-calculo { white-space: pre-wrap; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; line-height: 1.6; background: var(--fundo); border-radius: 8px; padding: 12px 14px; margin: 0; color: var(--tinta-2); }
.resultado-prazo { margin-top: 16px; border: 1px solid #B9D3E4; background: var(--azul-suave); border-radius: 12px; padding: 16px; }
.resultado-datas { display: flex; gap: 24px; flex-wrap: wrap; align-items: flex-end; }
.resultado-datas small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-3); }
.resultado-datas strong { font-size: 18px; }
.resultado-datas .destaque strong { font-size: 26px; color: var(--azul); }
.resultado-datas .destaque span { display: block; font-size: 12.5px; color: var(--tinta-2); }
.avisos-prazo { margin: 12px 0 0; padding-left: 18px; color: var(--alerta); font-size: 13px; }
.resultado-prazo details { margin-top: 10px; font-size: 13px; }
.resultado-prazo summary { cursor: pointer; color: var(--azul); font-weight: 600; }
.vencimento-grande { margin: 12px 0 6px; }
.vencimento-grande small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--tinta-3); }
.vencimento-grande strong { display: block; font-size: 30px; color: var(--azul); font-weight: 600; }
.vencimento-grande span { font-size: 13px; color: var(--tinta-2); }
.vencimento-grande.vencido strong { color: var(--alerta); }

/* ===================== Entrega 6 · Documentos ===================== */
.selo-doc-rascunho { background: #EEF0F3; color: var(--tinta-2); }
.selo-doc-em_revisao { background: #EAE6F7; color: #4E3D99; }
.selo-doc-aprovado { background: var(--ok-claro); color: var(--ok); }
.doc-origem { display: inline-block; min-width: 54px; text-align: center; font-size: 10.5px; font-weight: 700; letter-spacing: .03em; padding: 2px 6px; border-radius: 5px; margin-right: 6px; background: #EEF0F3; color: var(--tinta-2); }
.doc-onedrive { background: #E3F0FB; color: #0F5CA8; }
.previa-documento { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid var(--linha); box-shadow: var(--sombra); padding: 48px 56px; font-size: 15px; line-height: 1.75; text-align: justify; }
.previa-documento p { margin: 0 0 12px; }
.previa-documento .pd-titulo { text-align: center; font-weight: 700; font-size: 17px; margin-bottom: 24px; }
.previa-documento .pd-assinatura { text-align: center; margin-top: 36px; margin-bottom: 0; }
mark.campo-faltante { background: #FFF3B0; color: #C00000; font-weight: 700; padding: 0 2px; border-radius: 3px; }
.texto-modelo { font-size: 13px; line-height: 1.6; }
.lista-ajuda, .lista-variaveis { padding-left: 18px; font-size: 13px; color: var(--tinta-2); }
.lista-variaveis { list-style: none; padding: 0; max-height: 420px; overflow-y: auto; }
.lista-variaveis li { padding: 4px 0; border-bottom: 1px solid var(--linha); }
.lista-variaveis code, .lista-ajuda code { font-size: 12px; background: var(--fundo); padding: 1px 4px; border-radius: 4px; }
@media (max-width: 720px) { .previa-documento { padding: 24px 18px; } }

/* ===================== Entrega 7 · Financeiro ===================== */
.abas-pagina { margin-bottom: 16px; }
.abas-pagina .aba.ativa { color: var(--azul); border-bottom-color: var(--azul); font-weight: 600; }
.texto-ok { color: var(--ok) !important; }
.indicadores-fin { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.indicadores-fin .indicador { display: flex; flex-direction: column; gap: 4px; }
.indicadores-fin .indicador-valor { font-size: 22px; }
.fluxo { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 8px; align-items: end; padding-top: 8px; }
.fluxo-mes { text-align: center; font-size: 12px; }
.fluxo-mes strong { display: block; margin-top: 6px; font-size: 12px; color: var(--tinta-2); }
.fluxo-mes small { font-size: 11px; }
.fluxo-mes.atual strong { color: var(--azul); }
.fluxo-barras { height: 150px; display: flex; gap: 4px; align-items: flex-end; justify-content: center; border-bottom: 1px solid var(--linha); }
.fluxo-barras span { width: 40%; max-width: 26px; border-radius: 4px 4px 0 0; min-height: 2px; }
.barra-entrada { background: var(--ok); }
.barra-saida { background: var(--alerta); opacity: .8; }
.fluxo-mes.futuro .fluxo-barras span { opacity: .45; background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.4) 0 4px, transparent 4px 8px); }
.legenda-cor { display: inline-block; width: 10px; height: 10px; border-radius: 2px; vertical-align: middle; }
.legenda-cor.entrada { background: var(--ok); }
.legenda-cor.saida { background: var(--alerta); }
.conta-receber { border: 1px solid var(--linha); border-radius: 10px; padding: 12px 14px; margin-bottom: 10px; }
.conta-receber.sit-vencido { border-color: #F1CFC7; background: #FFFAF8; }
.conta-receber.sit-pago { opacity: .8; }
.conta-receber.sit-cancelado { opacity: .55; }
.conta-topo { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.conta-valores { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.conta-valores > strong { font-size: 16px; }
.selo-sit-previsto { background: #EEF0F3; color: var(--tinta-2); }
.selo-sit-faturado { background: var(--azul-claro); color: var(--azul); }
.selo-sit-vencido { background: var(--alerta-claro); color: var(--alerta); }
.selo-sit-pago { background: var(--ok-claro); color: var(--ok); }
.selo-sit-cancelado { background: #EEF0F3; color: var(--tinta-3); }
.pagamento { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; padding: 6px 0 0; border-top: 1px dashed var(--linha); margin-top: 8px; flex-wrap: wrap; }
.pagamento.estornado span { text-decoration: line-through; color: var(--tinta-3); }
.conta-acoes { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.conta-acoes form { margin: 0; }
.acao-inline summary { list-style: none; cursor: pointer; display: inline-flex; }
.acao-inline summary::-webkit-details-marker { display: none; }
.acao-inline[open] { flex-basis: 100%; }
.acao-inline form { margin-top: 8px; }
.form-linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.form-linha input[type=text] { width: 140px; }
.form-linha input[name=notes] { width: 200px; }
.botao-pequeno { padding: 6px 12px; font-size: 13px; }
@media (max-width: 900px) {
    .indicadores-fin { grid-template-columns: 1fr 1fr; }
    .fluxo { grid-template-columns: repeat(9, 56px); overflow-x: auto; }
}

/* ===================== Entrega 8 · Relatórios ===================== */
.grade-relatorios { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.cartao-relatorio { display: flex; flex-direction: column; gap: 6px; color: var(--tinta); transition: border-color .15s, transform .15s; }
.cartao-relatorio:hover { border-color: var(--azul); text-decoration: none; transform: translateY(-1px); }
.cartao-relatorio .icone { color: var(--azul); }
.cartao-relatorio span { color: var(--tinta-3); font-size: 13px; }
.tabela-relatorio tfoot td { font-weight: 700; border-top: 2px solid var(--linha); background: var(--fundo); }
td.numero { text-align: right; font-variant-numeric: tabular-nums; }
@media print {
    .lateral, .topo, .rodape, .barra-filtros, .abas, .botao, .fundo-menu { display: none !important; }
    .principal { margin: 0 !important; }
    .cartao { box-shadow: none; border: 0; }
}

/* ===== Ordens de servico e portal do cliente ===== */
.selo-os-recebida { background: #FFF4DA; color: #8A5A00; }
.selo-os-em_analise, .selo-os-em_andamento { background: var(--azul-claro); color: var(--azul); }
.selo-os-aguardando_cliente { background: #F1ECFB; color: #5A45A8; }
.selo-os-concluida { background: var(--ok-claro); color: var(--ok); }
.selo-os-cancelada { background: #EEF0F3; color: var(--tinta-3); }
.selo-urg-normal { background: #EEF0F3; color: var(--tinta-2); }
.selo-urg-alta { background: #FFF4DA; color: #8A5A00; }
.selo-urg-urgente { background: var(--alerta-claro); color: var(--alerta); }
.linha-link { text-decoration: none; color: inherit; border-radius: 8px; }
.linha-link:hover { background: var(--azul-suave); }
.texto-livre { white-space: normal; line-height: 1.6; }
.lista-anexos { list-style: none; padding: 0; margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lista-anexos a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--linha); border-radius: 8px; font-size: 13px; text-decoration: none; }
.conversa { display: flex; flex-direction: column; gap: 12px; }
.msg { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; max-width: 86%; background: var(--branco); }
.msg header { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; margin-bottom: 6px; }
.msg header small { color: var(--tinta-3); font-size: 12px; }
.msg p { margin: 0; line-height: 1.55; }
.msg-cliente { align-self: flex-start; background: var(--azul-suave); }
.msg-escritorio { align-self: flex-end; }
.msg-sistema { align-self: center; max-width: 100%; border-style: dashed; font-size: 13px; color: var(--tinta-2); }
.msg-interna { background: #FFF9E8; border-color: #F0DCA0; }
body.portal { background: var(--fundo); font-family: var(--sans); color: var(--tinta); }
.portal-topo { background: var(--marinho); color: #fff; padding: 14px 24px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.portal-marca { display: flex; align-items: center; gap: 12px; color: #fff; text-decoration: none; }
.portal-marca strong { font-family: var(--serifa); font-size: 18px; letter-spacing: .08em; display: block; }
.portal-marca small { opacity: .8; font-size: 12px; }
.portal-cliente { font-size: 14px; opacity: .9; }
.portal-conteudo { max-width: 920px; margin: 24px auto; padding: 0 16px; display: flex; flex-direction: column; gap: 20px; }
.portal-rodape { text-align: center; color: var(--tinta-3); font-size: 13px; padding: 24px 16px 40px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; }
.portal-rodape p { flex-basis: 100%; margin: 4px 0 0; }
@media (max-width: 720px) { .msg { max-width: 100%; } .portal-topo { padding: 12px 16px; } }
/* ===== Notas fiscais ===== */
.selo-nota-rascunho { background: #FFF4DA; color: #8A5A00; }
.selo-nota-emitida { background: var(--ok-claro); color: var(--ok); }
.selo-nota-cancelada { background: #EEF0F3; color: var(--tinta-3); }
.campo-pendente { border-color: var(--alerta) !important; background: var(--alerta-claro) !important; }
.campo-faltando { color: var(--alerta); font-weight: 600; }
.aviso > span { flex: 1; }

/* ===== Contrato mensal, faturas e relatorio ===== */
.selo-fatura-rascunho { background: #FFF4DA; color: #8A5A00; }
.selo-fatura-fechada { background: var(--ok-claro); color: var(--ok); }
.selo-fatura-cancelada { background: #EEF0F3; color: var(--tinta-3); }
.selo-contrato { background: var(--marinho); color: #fff; display: inline-flex; align-items: center; gap: 4px; }
.texto-ok { color: var(--ok) !important; }
.franquia { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 12px; }
.franquia small { display: block; color: var(--tinta-3); font-size: 12px; margin-bottom: 4px; }
.franquia strong { font-size: 20px; }
.barra-progresso { height: 8px; background: var(--azul-claro); border-radius: 99px; overflow: hidden; margin-top: 8px; }
.barra-progresso span { display: block; height: 100%; background: var(--azul); border-radius: 99px; }
.barra-progresso.estourou span { background: var(--alerta); }
.lista-franquia { margin: 0; padding-left: 22px; font-size: 14px; line-height: 1.9; }
.lista-franquia .excedente { color: var(--alerta); }
.grupo-os { border: 1px solid var(--linha); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; }
.grupo-os summary { display: flex; justify-content: space-between; gap: 12px; cursor: pointer; }
.grupo-os ul { margin: 8px 0 0; padding-left: 18px; font-size: 14px; line-height: 1.7; }
.consumo-os { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; font-size: 14px; }
body.relatorio-cliente { background: #E9EDF1; font-family: var(--sans); color: var(--tinta); margin: 0; }
.rel-folha { max-width: 860px; margin: 24px auto; background: #fff; padding: 40px 48px; box-shadow: var(--sombra); border-radius: 6px; }
.rel-acoes { text-align: right; margin-bottom: 16px; }
.rel-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; border-bottom: 3px solid var(--azul); padding-bottom: 16px; flex-wrap: wrap; }
.rel-marca { display: flex; align-items: center; gap: 12px; color: var(--marinho); }
.rel-marca strong { font-family: var(--serifa); font-size: 20px; letter-spacing: .1em; display: block; }
.rel-marca small { color: var(--tinta-3); font-size: 12px; }
.rel-titulo { text-align: right; }
.rel-titulo small { color: var(--tinta-3); text-transform: uppercase; letter-spacing: .08em; font-size: 11px; }
.rel-titulo h1 { font-family: var(--serifa); color: var(--marinho); margin: 4px 0 0; font-size: 28px; font-weight: 400; }
.rel-cliente { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 20px 0; }
.rel-cliente small, .rel-numeros small { display: block; color: var(--tinta-3); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.rel-numeros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 24px; }
.rel-numeros > div { background: var(--azul-suave); border-radius: 8px; padding: 14px 16px; }
.rel-numeros strong { display: block; font-size: 24px; color: var(--marinho); margin: 4px 0; }
.rel-numeros span { font-size: 12px; color: var(--tinta-2); }
.rel-numeros .destaque { background: var(--marinho); }
.rel-numeros .destaque small, .rel-numeros .destaque span, .rel-numeros .destaque strong { color: #fff; }
.relatorio-cliente h2 { font-family: var(--serifa); font-weight: 400; color: var(--marinho); font-size: 18px; margin: 26px 0 10px; border-bottom: 1px solid var(--linha); padding-bottom: 6px; }
.rel-os { border-left: 3px solid var(--azul); padding: 6px 0 6px 12px; margin-bottom: 12px; }
.rel-os-topo { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.rel-os table, .rel-tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.rel-os td { padding: 3px 6px 3px 0; vertical-align: top; color: var(--tinta-2); }
.rel-tabela th, .rel-tabela td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.rel-tabela thead th { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--tinta-3); }
.rel-tabela tfoot th { font-size: 15px; color: var(--marinho); border-bottom: 0; }
.rel-tabela small { display: block; color: var(--tinta-3); font-size: 12px; }
.rel-obs { background: var(--azul-suave); padding: 12px 14px; border-radius: 8px; font-size: 14px; }
.rel-rodape { margin-top: 32px; border-top: 1px solid var(--linha); padding-top: 12px; font-size: 11px; color: var(--tinta-3); display: flex; flex-wrap: wrap; gap: 4px 18px; justify-content: center; }
@media (max-width: 720px) { .rel-folha { padding: 24px 18px; margin: 0; } .rel-cliente, .rel-numeros, .franquia { grid-template-columns: 1fr; } }
@media print { body.relatorio-cliente { background: #fff; } .rel-folha { box-shadow: none; margin: 0; padding: 0; max-width: none; } .rel-acoes { display: none; } .rel-numeros > div { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
/* Partes do processo no prazo */
.parte-linha { display: grid; grid-template-columns: 1fr auto; gap: 8px 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.parte-linha:last-child { border-bottom: 0; }
.parte-linha.e-cliente { background: var(--azul-suave); margin: 0 -12px; padding: 10px 12px; border-radius: 8px; }
.parte-linha form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.parte-linha select { max-width: 220px; }
.polo-titulo { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--tinta-3); margin: 14px 0 2px; }
.parecer-situacao { width: 100%; }
.parecer-situacao[open] > form { background: var(--azul-suave); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; margin-top: 8px; text-align: left; }
.botao-perigo { background: var(--alerta); color: #fff; border: 1px solid var(--alerta); }
.botao-perigo:hover { filter: brightness(.92); }
.barra-selecao { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 10px 14px; margin-bottom: 12px; background: var(--alerta-claro); border-radius: var(--raio); position: sticky; top: 0; z-index: 5; }
.barra-selecao[hidden] { display: none !important; }
.col-check { width: 36px; }
.col-check input { width: 16px; height: 16px; cursor: pointer; }
:root { --cor-aniversario: #2E8B6E; }
.camada-aniversario .ponto-camada { background: var(--cor-aniversario); }
.item-agenda.camada-aniversario { background: #E6F4EE; border-left-color: var(--cor-aniversario); }
.linha-hoje.camada-aniversario { border-left-color: var(--cor-aniversario); }
.selo-os-cartao { background: var(--marinho); color: #fff; font-family: var(--mono, monospace); font-size: 11px; margin-right: 6px; }
.botao-voltar { display: inline-flex; align-items: center; gap: 4px; padding: 7px 12px 7px 8px; border: 1px solid var(--linha); border-radius: 8px; color: var(--tinta-2); background: var(--branco); font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; flex: none; }
.botao-voltar:hover { color: var(--azul); border-color: var(--azul); text-decoration: none; }

/* Asaas, rotina automatica e aniversarios */
.saldo-grande { font-family: var(--serifa); font-size: 30px; color: var(--marinho); margin: 4px 0 2px; }
.linha-lista { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--linha); }
.linha-lista > div:first-child { flex: 1; min-width: 0; }
.linha-lista:last-child { border-bottom: 0; }
.lista-passos { padding-left: 20px; margin: 8px 0 12px; }
.lista-passos li { margin-bottom: 6px; }
.paginacao-simples { display: flex; justify-content: space-between; gap: 12px; padding-top: 12px; }
.cobranca-asaas { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 8px 12px; margin-top: 8px; background: var(--azul-suave); border-radius: 8px; font-size: 13px; }
.cobranca-asaas code { font-size: 12px; word-break: break-all; }
.aniversariantes .aniv { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.aniversariantes .aniv:last-child { border-bottom: 0; }
.aniversariantes .aniv > div { flex: 1; min-width: 180px; }
.rotina-status { font-size: 12.5px; color: var(--tinta-2); background: var(--azul-suave); border-radius: 8px; padding: 10px 12px; word-break: break-word; }
.selo-asaas { background: #E9F7F4; color: #0F6B5A; }

/* ---------- Financeiro: periodo, livro de lancamentos, DRE ---------- */
.periodo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.periodo-rotulo { font-family: var(--serifa); font-weight: 400; font-size: 22px; color: var(--azul); min-width: 190px; text-align: center; }
.periodo-seta { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid var(--linha); border-radius: 50%; font-size: 22px; line-height: 1; color: var(--azul); background: #fff; }
.periodo-seta:hover { border-color: var(--azul); text-decoration: none; }
.periodo-outro .form-linha { margin-top: 8px; }
.resumo-livro { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 4px 0 14px; }
.resumo-livro div, .resumo-livro a { display: block; color: inherit; border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 14px; background: #FAFBFC; }
.resumo-livro span { display: block; font-size: 12px; color: var(--tinta-3); }
.resumo-livro strong { font-size: 18px; }
.valor-entrada { color: var(--ok); }
.valor-saida { color: var(--alerta); }
.tabela .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tabela-livro td { padding: 8px 10px; vertical-align: top; }
.tabela-livro .col-marca { width: 1%; }
.tabela-livro .col-historico { min-width: 280px; }
.tabela-livro .col-historico strong { font-weight: 600; }
.tabela-livro tfoot td, .tabela tfoot th, .tabela tfoot td { border-top: 2px solid var(--linha); padding: 10px 12px; }
.linha-fora td { color: var(--tinta-3); }
.linha-fora td strong { font-weight: 500; }
.linha-pendente td:first-child, .linha-pendente th:first-child { box-shadow: inset 3px 0 0 var(--alerta); }
.texto-discreto { color: var(--tinta-3); }
.aviso-livro { background: var(--alerta-claro); color: var(--alerta); border-radius: var(--raio); padding: 8px 12px; font-size: 14px; margin: 0 0 12px; }
.aviso-livro a { color: inherit; text-decoration: underline; }
.barra-lote { position: sticky; top: 0; z-index: 5; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: var(--azul-claro); border: 1px solid var(--azul); border-radius: var(--raio); padding: 8px 12px; margin-bottom: 10px; }
.barra-lote select { width: auto; }
.form-livro { flex-wrap: wrap; margin-top: 6px; }
.form-livro input[type=text] { min-width: 220px; }
.abas-secundarias { margin-top: 4px; }
.tabela-dre th, .tabela-dre td { padding: 8px 12px; }
.tabela-dre .dre-total th, .tabela-dre .dre-total td { background: #F4F6F9; font-weight: 600; }
.tabela-dre .dre-grupo td:first-child { padding-left: 24px; font-weight: 600; }
.tabela-dre .dre-item td:first-child { padding-left: 24px; }
.tabela-dre .dre-sub td:first-child { padding-left: 44px; color: var(--tinta-2); }
.tabela-dre .dre-resultado th, .tabela-dre .dre-resultado td { border-top: 2px solid var(--azul); font-weight: 700; background: var(--azul-claro); }
.tabela-dre a, .tabela .num a { color: inherit; }
.tabela-interna { margin-top: 6px; font-size: 13px; }
.tabela-interna td { padding: 4px 8px; }
.campo-curto { width: 70px; }
.form-novo { margin-top: 12px; flex-wrap: wrap; }
.barra-filtros .busca-livro { width: 240px; flex: 0 1 240px; }
.barra-filtros select { max-width: 230px; }
.tabela-livro .col-categoria { min-width: 190px; }
.tabela-livro .detalhe.centro { margin-top: 2px; }
.editar-livro > summary { font-size: 12px; }
.editar-livro:not([open]) { display: inline-block; }
.tabela-livro .col-categoria, .tabela-livro .col-categoria .detalhe { text-align: left; }
.tabela-livro .detalhe.centro { display: block; }

/* Assinatura: escolha do plano */
.opcoes-plano { border: 0; padding: 0; margin: 0 0 16px; }
.opcoes-plano legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.opcao-plano { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--linha); border-radius: 10px; margin-bottom: 8px; cursor: pointer; }
.opcao-plano:has(input:checked) { border-color: var(--azul); background: var(--azul-suave); }
.opcao-plano input { margin-top: 3px; }
.opcao-plano > span { display: block; }
.opcao-plano .opcao-valor { margin-left: 6px; }
.opcao-plano small { display: block; color: var(--tinta-3); margin-top: 2px; }

/* Primeiros passos (painel do administrador de um escritorio novo) */
.primeiros-passos { margin-bottom: 20px; }
.primeiros-passos .cartao-topo { align-items: flex-start; }
.primeiros-passos .cartao-topo .ajuda { display: block; margin-top: 2px; }
.passos-barra { height: 6px; border-radius: 6px; background: var(--linha); overflow: hidden; margin: 4px 0 8px; }
.passos-barra span { display: block; height: 100%; background: var(--ouro, #C9AE74); border-radius: 6px; transition: width .3s; }
.passos { list-style: none; margin: 0; padding: 0; }
.passos li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--linha); }
.passos li:first-child { border-top: 0; }
.passo-marca { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--linha); display: grid; place-items: center; font-size: 12px; font-weight: 600; color: var(--tinta-3); }
.passos li.feito .passo-marca { background: var(--ok); border-color: var(--ok); color: #fff; }
.passo-texto { flex: 1; min-width: 0; display: grid; gap: 2px; }
.passo-texto .selo { justify-self: start; }
.passos li.feito .passo-texto strong { color: var(--tinta-3); text-decoration: line-through; font-weight: 500; }
.passos li.feito .detalhe { display: none; }
@media (max-width: 640px) { .passos li { flex-wrap: wrap; } .passos li .botao { margin-left: 38px; } }
