:root {
  --fundo: #f4f5f7; --cartao: #fff; --texto: #1d2330; --sutil: #6b7385; --borda: #dfe2e8;
  --primario: #A8221A; --primario-esc: #861A13; --ok: #157347; --erro: #b42318;
  --raio: 10px;
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background: var(--fundo); color: var(--texto); }
a { color: var(--primario); text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.5rem; margin: .2em 0 .6em; }
h2 { font-size: 1.15rem; margin: 1.6em 0 .6em; }
h3 { font-size: 1rem; margin: 0 0 .6em; }
.sutil { color: var(--sutil); }

/* topo */
.topo { display: flex; align-items: center; gap: 24px; padding: 0 24px; height: 56px; background: #141414; border-bottom: 3px solid #A8221A; color: #fff; position: sticky; top: 0; z-index: 5; }
.topo .marca { color: #fff; font-weight: 700; font-size: 1.1rem; }
.topo nav { display: flex; gap: 4px; flex: 1; }
.topo nav a { color: #c9c9c9; padding: 6px 12px; border-radius: 6px; }
.topo nav a:hover, .topo nav a.ativo { background: #2b2b2b; color: #fff; text-decoration: none; }
.topo .quem { display: flex; align-items: center; gap: 12px; font-size: .9rem; }
.topo .quem a { color: #fff; }
.topo .perfil { color: #9a9a9a; }
.topo form { margin: 0; }
button.link { background: none; border: 0; color: #c9c9c9; cursor: pointer; font: inherit; padding: 0; }

main { max-width: 1240px; margin: 0 auto; padding: 24px; }
main.centro { display: flex; justify-content: center; align-items: center; min-height: 100vh; }

.cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cabecalho h1, .cabecalho h2 { margin: .2em 0 .6em; }

.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 20px; margin-bottom: 16px; }
.cartao.estreito { max-width: 440px; margin: 40px auto; }
.cartao.medio { max-width: 760px; }
.cartao.login { width: 380px; }
.cartao.perigo { display: flex; justify-content: space-between; align-items: center; border-color: #f1c4c0; }

/* formulários */
label { display: block; margin-bottom: 14px; font-weight: 500; font-size: .92rem; }
label.inline { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 400; }
label.check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; }
label.check.baixo { align-self: end; margin-bottom: 22px; }
input, select, textarea { display: block; width: 100%; margin-top: 4px; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 7px; font: inherit; background: #fff; color: inherit; }
label.inline input, label.check input { width: auto; margin-top: 3px; }
input:focus, select:focus, textarea:focus { outline: 2px solid #f0b8b3; border-color: var(--primario); }
textarea { resize: vertical; }
fieldset { border: 1px solid var(--borda); border-radius: 8px; padding: 12px 16px 2px; margin: 0 0 16px; }
legend { font-weight: 600; padding: 0 6px; }
.linha2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.linha3 { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px; }
.linha3 > label { min-width: 0; }
.topo-alinhado { align-items: start; }
.com-botao { display: flex; gap: 6px; align-items: center; }
.com-botao input { margin-top: 4px; }
.acoes { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
input.valor { width: 130px; margin-left: auto; text-align: right; }

.botao { display: inline-block; padding: 8px 16px; border-radius: 7px; border: 1px solid var(--borda); background: #fff; color: var(--texto); font: inherit; font-weight: 500; cursor: pointer; white-space: nowrap; }
.botao:hover { background: #f0f2f6; text-decoration: none; }
.botao.primario { background: var(--primario); border-color: var(--primario); color: #fff; }
.botao.primario:hover { background: var(--primario-esc); }
.botao.perigo { color: var(--erro); border-color: #f1c4c0; }
.botao.mini { padding: 7px 10px; font-size: .85rem; margin-top: 4px; }
.botao.largo { width: 100%; padding: 10px; }

.aviso { padding: 10px 14px; border-radius: 8px; margin-bottom: 16px; }
.aviso.ok { background: #e6f4ec; color: var(--ok); }
.aviso.erro { background: #fdecea; color: var(--erro); }

/* lista */
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.filtros input, .filtros select { width: auto; margin: 0; }
.filtros input[type=search] { min-width: 220px; }
.contadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 18px; }
.contador { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 12px 16px; color: var(--texto); border-left-width: 4px; }
.contador:hover { text-decoration: none; }
.contador strong { display: block; font-size: 1.5rem; }
.contador span { color: var(--sutil); font-size: .88rem; }
.contador.sel { outline: 2px solid var(--primario); }
.contador.destaque { border-left-color: var(--ok); }
.tabela-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); }
.tabela { width: 100%; border-collapse: collapse; }
.tabela th, .tabela td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--borda); }
.tabela th { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: var(--sutil); font-weight: 600; background: #fafbfc; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela tbody tr[onclick] { cursor: pointer; }
.tabela tbody tr[onclick]:hover { background: #faf5f4; }
.tabela tr.inativo td { color: #a3a9b8; }
.tabela tr.sel { background: #fbf1f0; }
.tabela.compacta th, .tabela.compacta td { padding: 7px 8px; }
.cartao .tabela { border: 0; }
.num { text-align: right !important; font-variant-numeric: tabular-nums; }
.vazio { padding: 28px; text-align: center; color: var(--sutil); background: #fff; border: 1px dashed var(--borda); border-radius: var(--raio); margin-bottom: 16px; }
.abas { display: flex; gap: 4px; margin-bottom: 14px; }
.abas a { padding: 6px 12px; border-radius: 6px; color: var(--sutil); }
.abas a.sel { background: #fff; color: var(--texto); border: 1px solid var(--borda); }

/* selos */
.status, .prio, .selo, .ativ { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.status.grande { font-size: .9rem; padding: 4px 12px; }
.s-aberto { background: #e8efff; color: #1f4fd1; border-left-color: #1f5eff; }
.s-em_atendimento { background: #fff4e0; color: #9a5b00; border-left-color: #f0a020; }
.s-aguardando_cliente { background: #f3e8ff; color: #7a2fc0; border-left-color: #9b5de5; }
.s-resolvido { background: #e3f5ea; color: #157347; border-left-color: #22a35a; }
.s-fechado { background: #eceef2; color: #4b5263; }
.s-cancelado { background: #f5e9e9; color: #8b3a3a; }
.contador.s-aberto, .contador.s-em_atendimento, .contador.s-aguardando_cliente, .contador.s-resolvido { background: #fff; color: var(--texto); }
.p-baixa { background: #eef0f3; color: #5a6275; }
.p-media { background: #e8efff; color: #2a55c4; }
.p-alta { background: #fff1e0; color: #a65300; }
.p-urgente { background: #fde4e1; color: #b42318; }
.selo { background: #eef0f3; color: #4b5263; font-weight: 500; }
.ativ.cobra { background: #e3f5ea; color: #157347; }
.ativ.nao-cobra { background: #eef0f3; color: #5a6275; }

/* detalhe */
.grade-detalhe { display: grid; grid-template-columns: 1fr 300px; gap: 24px; align-items: start; }
.grade-detalhe aside { position: sticky; top: 72px; }
.meta-linha { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.meta-linha .editar { margin-left: auto; font-size: .85rem; }
.texto { white-space: pre-wrap; overflow-wrap: anywhere; }
.tramite { background: #fff; border: 1px solid var(--borda); border-left: 4px solid var(--primario); border-radius: var(--raio); padding: 14px 16px; margin-bottom: 10px; }
.tramite.do-cliente { border-left-color: #9b5de5; }
.tramite.interno { background: #fffbea; border-left-color: #e0b200; }
.apontamento { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; background: #f6f8fa; border-radius: 6px; padding: 6px 10px; margin: 4px 0 8px; font-size: .9rem; }
.info dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; margin: 0; }
.info dt { color: var(--sutil); font-size: .88rem; }
.info dd { margin: 0; text-align: right; }

@media (max-width: 860px) {
  .grade-detalhe, .linha2, .linha3 { grid-template-columns: 1fr; }
  .grade-detalhe aside { position: static; }
  .topo { flex-wrap: wrap; height: auto; padding: 10px 16px; gap: 8px; position: static; }
  .topo nav { order: 3; width: 100%; overflow-x: auto; }
  main { padding: 16px; }
}

/* faturamento / RAT */
.nowrap { white-space: nowrap; }
.erro-txt { color: var(--erro); font-weight: 600; }
.selo.faturado { background: #e3f5ea; color: #157347; }
.selo.pendente { background: #fff4e0; color: #9a5b00; }
.rat-st { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.r-emitida { background: #fff4e0; color: #9a5b00; }
.r-faturada { background: #e3f5ea; color: #157347; }
.r-cancelada { background: #f5e9e9; color: #8b3a3a; }
.rat-sel td { vertical-align: top; }
.rat-sel textarea { margin: 0; min-width: 240px; font-size: .9rem; }
.rat-sel input[type=checkbox] { width: 18px; height: 18px; margin: 2px 0 0; }
.resumo-rat { margin-top: 16px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; }
.resumo-rat label { margin: 0; }
.totais { display: flex; gap: 22px; align-items: center; }
.totais div { display: flex; flex-direction: column; font-size: .85rem; }
.totais strong { font-size: 1.15rem; }
.perigo-bloco { border-color: #f1c4c0; }

.grade-rat { display: grid; grid-template-columns: 1fr 280px; gap: 24px; align-items: start; }
.rat-doc { position: relative; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 36px 40px; font-size: 13.5px; overflow: hidden; }
.rat-topo { display: flex; justify-content: space-between; gap: 24px; border-bottom: 2px solid var(--texto); padding-bottom: 14px; margin-bottom: 16px; }
.rat-empresa { font-size: 1.25rem; font-weight: 700; }
.rat-num { text-align: right; font-size: .85rem; }
.rat-num strong { display: block; font-size: 1.25rem; }
.rat-bloco { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; background: #f6f8fa; border-radius: 6px; padding: 12px 14px; margin-bottom: 8px; }
.rotulo { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--sutil); }
.rat-ch { margin: 22px 0 6px; font-size: .98rem; }
.rat-tab th, .rat-tab td { padding: 6px 8px; font-size: .85rem; vertical-align: top; }
.rat-tab { border: 1px solid var(--borda); }
.rat-tab tfoot td { background: #fafbfc; font-weight: 600; border-top: 1px solid var(--borda); }
.rat-tab .total { font-size: 1.1rem; }
.rat-decl { margin-top: 28px; }
.assinaturas { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-top: 56px; text-align: center; font-size: .85rem; }
.assinaturas span { display: block; border-top: 1px solid var(--texto); margin-bottom: 6px; }
.carimbo { position: absolute; top: 40%; left: 50%; transform: translate(-50%, -50%) rotate(-18deg); font-size: 5rem; font-weight: 800; color: rgba(180, 35, 24, .18); border: 8px solid rgba(180, 35, 24, .18); padding: 0 24px; pointer-events: none; }

@media (max-width: 860px) {
  .grade-rat, .resumo-rat { grid-template-columns: 1fr; }
  .rat-doc { padding: 20px; }
  .totais { flex-wrap: wrap; }
}

@media print {
  @page { size: A4; margin: 12mm; }
  body { background: #fff; }
  .topo, .no-print, .aviso { display: none !important; }
  main { padding: 0; max-width: none; }
  .grade-rat { display: block; }
  .rat-doc { border: 0; padding: 0; font-size: 11.5px; }
  .rat-tab tr { page-break-inside: avoid; }
  .assinaturas { page-break-inside: avoid; }
}

/* anexos */
.anexos-input { margin: -4px 0 14px; }
.anexos-input .zona { border: 1px dashed var(--borda); border-radius: 8px; padding: 10px 12px; font-size: .9rem; background: #fafbfc; }
.anexos-input.arrastando .zona { border-color: var(--primario); background: #fbf1f0; }
.link-azul { background: none; border: 0; padding: 0; color: var(--primario); font: inherit; font-weight: 600; cursor: pointer; }
kbd { font: .78rem monospace; background: #eef0f3; border: 1px solid var(--borda); border-radius: 4px; padding: 0 4px; }
.selecionados { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.selecionados li { display: flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--borda); border-radius: 8px; padding: 4px 6px 4px 4px; font-size: .85rem; max-width: 100%; }
.selecionados li.erro { border-color: var(--erro); color: var(--erro); }
.selecionados img { width: 40px; height: 40px; object-fit: cover; border-radius: 5px; }
.selecionados .nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 260px; }
.remover, .link-x { background: none; border: 0; color: var(--sutil); font-size: 1.1rem; line-height: 1; cursor: pointer; padding: 0 4px; }
.remover:hover, .link-x:hover { color: var(--erro); }
.icone { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 5px; background: #e8efff; color: #2a55c4; font-size: .68rem; font-weight: 700; flex: none; }
.anexos-lista { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.anexos-lista form { display: inline; margin: 0; }
.miniatura { margin: 0; width: 180px; border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; background: #fafbfc; }
.miniatura img { display: block; width: 100%; height: 120px; object-fit: cover; }
.miniatura figcaption { display: flex; justify-content: space-between; align-items: center; gap: 4px; font-size: .78rem; padding: 4px 6px; color: var(--sutil); overflow: hidden; white-space: nowrap; }
.arquivo { display: flex; align-items: center; gap: 10px; border: 1px solid var(--borda); border-radius: 8px; padding: 6px 8px 6px 6px; background: #fff; font-size: .88rem; max-width: 100%; }
.arquivo a { overflow-wrap: anywhere; }
.topo .marca span { font-weight: 400; color: #9a9a9a; }
.login-marca { font-size: 1.6rem; font-weight: 800; letter-spacing: .06em; color: var(--primario); }
.anexos-input input[type=file] { display: none; }
.anexos-lista { align-items: flex-start; }
.com-botao input { flex: 1; min-width: 0; }
.com-botao .botao { flex: none; }
.botoes { display: flex; gap: 8px; }
.rat-solic { font-weight: 400; font-size: .85rem; color: var(--sutil); margin-left: 8px; }

/* despesas */
.ativ.desp { background: #fdf0e6; color: #a2501a; }
.apontamento.despesa { background: #fffaf5; }
.despesas-input .tabela { margin-bottom: 8px; }
.despesas-input .tabela th, .despesas-input .tabela td { padding: 4px 6px; border-bottom: 0; }
.despesas-input .tabela thead { display: none; }
.despesas-input .tabela:has(tbody tr) thead { display: table-header-group; }
.despesas-input select, .despesas-input input { margin: 0; }
.despesas-input .d-data { width: 140px; }
input.valor.curto { width: 90px; }
.com-unid { display: inline-flex; align-items: center; gap: 4px; }
.despesas-input .d-total { white-space: nowrap; font-weight: 600; min-width: 90px; }
.total-despesas { margin-left: 12px; font-weight: 600; }

/* combo com pesquisa */
.combo { position: relative; display: block; }
.combo-lista { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 2px); margin: 0; padding: 4px 0; list-style: none; background: #fff; border: 1px solid var(--borda); border-radius: 8px; box-shadow: 0 8px 24px rgba(20, 26, 42, .12); max-height: 280px; overflow-y: auto; font-weight: 400; }
.combo-lista li { padding: 7px 12px; cursor: pointer; }
.combo-lista li:hover, .combo-lista li.ativo { background: #fbf1f0; }
.combo-lista li.vazio-combo { color: var(--sutil); cursor: default; background: none; }
.despesas-input .d-tipo { min-width: 170px; }
.despesas-input .d-unid { display: inline-block; width: 62px; text-align: left; }
.despesas-input .d-desc { min-width: 120px; }
.despesas-input .tabela-wrap, .despesas-input { overflow-x: auto; }
.voltar-site { text-align: center; margin: 14px 0 0; font-size: .9rem; }
.login-marca img { height: 84px; width: auto; display: block; margin: 0 auto 6px; }
.login-marca { text-align: center; }
.rat-logo { height: 64px; width: auto; display: block; margin-bottom: 6px; }
.topo .marca { display: flex; align-items: center; gap: 8px; }
.marca-x { height: 26px; width: 26px; background: #fff; border-radius: 6px; padding: 2px; }

/* quadro de informações do chamado: nada sai da caixa */
.info dl { grid-template-columns: auto minmax(0, 1fr); }
.info dt { white-space: nowrap; }
.info dd { overflow-wrap: anywhere; min-width: 0; }
/* motivo do "Aguardando" */
select.motivo { margin-top: 8px; }
select.motivo[hidden] { display: none; }
.motivo-lista { font-size: .78rem; color: #7a2fc0; margin-top: 3px; }

/* envolvidos */
.envolvidos ul { list-style: none; margin: 0 0 10px; padding: 0; }
.envolvidos li { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 0; border-bottom: 1px solid var(--borda); font-size: .92rem; overflow-wrap: anywhere; }
.envolvidos li:last-child { border-bottom: 0; }
.envolvidos li form { margin: 0; }
.envolvidos > p.sutil { font-size: .82rem; margin: -6px 0 8px; }
.incluir-envolvido { display: flex; gap: 6px; align-items: center; }
.incluir-envolvido select { margin: 0; font-size: .88rem; padding: 6px 8px; min-width: 0; }
.incluir-envolvido .botao.mini { margin: 0; }
.envolvidos-novo { margin-bottom: 14px; }
.rotulo-campo { display: block; font-weight: 500; font-size: .92rem; margin-bottom: 6px; }
.caixas { display: flex; flex-wrap: wrap; gap: 4px 18px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 7px; background: #fafbfc; min-height: 42px; }
.caixas label.check { margin: 0; }

/* checklist */
.checklist { margin-top: 8px; }
.ck-cabeca { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ck-cabeca h2 { margin: 0 0 8px; }
.ck-progresso { color: var(--sutil); font-size: .9rem; }
.ck-progresso strong { color: var(--texto); }
.ck-barra { height: 8px; border-radius: 99px; background: #eceef2; overflow: hidden; margin-bottom: 14px; }
.ck-barra span { display: block; height: 100%; background: #22a35a; border-radius: 99px; transition: width .3s; }
.ck-lista { list-style: none; margin: 0 0 12px; padding: 0; }
.ck-item { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 9px 0; border-bottom: 1px solid var(--borda); }
.ck-item:last-child { border-bottom: 0; }
.ck-sit { margin: 0; }
.ck-sit select { margin: 0; padding: 5px 8px; font-size: .85rem; font-weight: 600; border-radius: 99px; }
.ck-chip { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: .8rem; font-weight: 600; background: #eef0f3; }
.ck-texto { display: flex; flex-direction: column; gap: 2px; padding-top: 4px; }
.ck-desc { overflow-wrap: anywhere; }
.ck-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .78rem; color: var(--sutil); }
.ck-meta .atrasado { color: var(--erro); font-weight: 600; }
.ck-acoes { display: flex; gap: 2px; padding-top: 2px; }
.ck-acoes form { margin: 0; }
/* cores por situação */
.sit-pendente .ck-sit select, .sit-pendente .ck-chip { background: #fff; color: #4b5263; border-color: var(--borda); }
.sit-andamento .ck-sit select, .sit-andamento .ck-chip { background: #fff4e0; color: #9a5b00; border-color: #f3d39b; }
.sit-concluido .ck-sit select, .sit-concluido .ck-chip { background: #e3f5ea; color: #157347; border-color: #a7dcbc; }
.sit-impedido .ck-sit select, .sit-impedido .ck-chip { background: #fde4e1; color: #b42318; border-color: #f1b8b0; }
.sit-nao_aplica .ck-sit select, .sit-nao_aplica .ck-chip { background: #f4f5f7; color: #8b92a3; }
.sit-concluido .ck-desc, .sit-nao_aplica .ck-desc { color: var(--sutil); text-decoration: line-through; text-decoration-color: #b9bec9; }
.ck-novo { display: flex; gap: 8px; align-items: flex-start; }
.ck-novo textarea { margin: 0; flex: 1; min-height: 38px; resize: vertical; }
.ck-novo input[type=date] { margin: 0; width: 150px; }
.ck-novo .botao { margin: 0; }
.ck-mini { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--sutil); white-space: nowrap; }
.ck-mini-barra { width: 46px; height: 6px; border-radius: 99px; background: #eceef2; overflow: hidden; display: inline-block; }
.ck-mini-barra span { display: block; height: 100%; background: #22a35a; }
@media (max-width: 860px) {
  .ck-item { grid-template-columns: minmax(0, 1fr) auto; }
  .ck-sit, .ck-item > .ck-chip { grid-column: 1 / -1; }
  .ck-novo { flex-wrap: wrap; }
}
.ck-item > .ck-chip { justify-self: start; margin-top: 2px; }
.fase-cor { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; }

/* calendários */
.cal-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.cal-nav h2 { margin: 0 8px; min-width: 210px; text-align: center; }
.cal-nav .botao.mini { margin: 0; }
.cal-filtro { margin-left: auto; }
.cal-filtro select { margin: 0; width: auto; }
.contador.saldo-pos { border-left-color: #22a35a; }
.contador.saldo-pos strong { color: #157347; }
.contador.saldo-neg { border-left-color: #b42318; }
.contador.saldo-neg strong { color: #b42318; }
.cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.cal-sem { font-size: .78rem; font-weight: 600; color: var(--sutil); text-align: center; padding: 2px 0; }
.cal-dia { display: flex; flex-direction: column; gap: 3px; min-height: 104px; padding: 8px; background: #fff; border: 1px solid var(--borda); border-radius: 8px; color: var(--texto); text-decoration: none; overflow: hidden; }
.cal-dia:hover { border-color: #b9bec9; text-decoration: none; }
.cal-dia.fora { background: transparent; border: 0; }
.cal-dia.livre { background: #f4f5f7; }
.cal-dia.hoje { box-shadow: inset 0 0 0 2px var(--primario); }
.cal-dia.sel { border-color: var(--primario); background: #fbf1f0; }
.cal-num { font-weight: 700; font-size: .9rem; }
.cal-feriado { font-size: .7rem; color: #8b3a3a; line-height: 1.2; }
.cal-horas { font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; margin-top: auto; }
.cal-barra { height: 6px; border-radius: 99px; background: #eceef2; overflow: hidden; }
.cal-barra span { display: block; height: 100%; border-radius: 99px; background: #b9bec9; }
.cal-dif { font-size: .72rem; font-variant-numeric: tabular-nums; color: var(--sutil); }
.bateu .cal-barra span { background: #22a35a; } .bateu .cal-dif { color: #157347; }
.parcial .cal-barra span { background: #f0a020; } .parcial .cal-dif { color: #9a5b00; }
.zerado .cal-horas { color: #b42318; }
.futuro .cal-horas { color: var(--sutil); }
.cal-legenda { margin-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.lg { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-left: 8px; }
.lg.bateu { background: #22a35a; } .lg.parcial { background: #f0a020; } .lg.zerado { background: #fff; border: 2px solid #b42318; } .lg.livre { background: #e4e6ea; }
.lg.agend { background: #e8efff; border: 1px solid #1f4fd1; } .lg.trab { background: #e3f5ea; border: 1px solid #157347; }
.cal-agenda .cal-dia { min-height: 118px; }
.cal-ag { font-size: .74rem; background: #e8efff; color: #1f3f9a; border-radius: 4px; padding: 2px 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-mais { font-size: .72rem; color: var(--sutil); }
.cal-trab { font-size: .74rem; background: #e3f5ea; color: #157347; border-radius: 4px; padding: 2px 5px; margin-top: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#detalhe-dia { margin-top: 16px; }
h4.sub { margin: 4px 0 8px; font-size: .95rem; }
.lista-dia { list-style: none; margin: 0; padding: 0; }
.lista-dia li { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); font-size: .92rem; }
.lista-dia li:last-child { border-bottom: 0; }
.lista-dia .hora { font-weight: 700; font-variant-numeric: tabular-nums; }
.lista-dia form { margin: 0; }
@media (max-width: 760px) {
  .cal { gap: 3px; }
  .cal-dia { min-height: 64px; padding: 4px; }
  .cal-ag, .cal-trab, .cal-feriado, .cal-dif { display: none; }
  .cal-horas { font-size: .8rem; }
  .cal-filtro { margin-left: 0; width: 100%; }
}
.form-fase { margin: 0; }
.form-fase select { margin: 0; padding: 4px 8px; font-size: .85rem; width: auto; max-width: 100%; }
.agendamentos ul { list-style: none; margin: 0 0 8px; padding: 0; }
.agendamentos li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--borda); font-size: .9rem; }
.agendamentos li:last-child { border-bottom: 0; }
.agendamentos li.passado { opacity: .6; }
.agendamentos li form { margin: 0; }
.novo-ag summary { cursor: pointer; color: var(--primario); font-weight: 600; font-size: .92rem; padding: 4px 0; }
.novo-ag form { margin-top: 10px; }
.novo-ag label { font-size: .85rem; margin-bottom: 10px; }
.novo-ag .linha2 { gap: 8px; }
/* kanban */
.kb-dica { margin-top: -6px; }
.kanban { display: flex; gap: 14px; overflow-x: auto; padding-bottom: 12px; align-items: flex-start; }
.kb-coluna { flex: 0 0 290px; background: #eceef1; border-radius: 12px; padding: 10px; border-top: 4px solid var(--cor-fase); max-height: calc(100vh - 230px); display: flex; flex-direction: column; }
.kb-coluna.alvo { background: #e2e5ea; outline: 2px dashed var(--cor-fase); outline-offset: -2px; }
.kb-cabeca { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 2px 4px 6px; }
.kb-cabeca h2 { margin: 0; font-size: .98rem; }
.kb-conta { font-size: .8rem; font-weight: 700; background: #fff; border-radius: 99px; padding: 1px 9px; color: var(--sutil); }
.kb-conta.estourou { background: #fde4e1; color: #b42318; }
.kb-vinc { font-size: .74rem; color: var(--sutil); margin: -4px 4px 8px; }
.kb-cartoes { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; min-height: 60px; padding: 2px; }
.kb-cartao { background: #fff; border-radius: 9px; padding: 10px 11px; border: 1px solid var(--borda); cursor: grab; display: flex; flex-direction: column; gap: 5px; }
.kb-cartao:hover { border-color: #b9bec9; }
.kb-cartao.arrastando { opacity: .45; }
.kb-topo { display: flex; justify-content: space-between; align-items: center; }
.kb-num { font-size: .8rem; color: var(--sutil); font-weight: 600; }
.kb-titulo { color: var(--texto); font-weight: 600; font-size: .92rem; line-height: 1.3; overflow-wrap: anywhere; }
.kb-cliente { font-size: .82rem; color: var(--sutil); }
.kb-rodape { display: flex; justify-content: space-between; align-items: center; gap: 6px; flex-wrap: wrap; }
.kb-status { font-size: .72rem; padding: 1px 8px; white-space: normal; }
.kb-meta { display: flex; justify-content: space-between; gap: 6px; flex-wrap: wrap; font-size: .76rem; color: var(--sutil); }
.kb-mover { margin: 2px 0 0; font-size: .74rem; padding: 3px 6px; color: var(--sutil); border-color: transparent; background: #f6f7f9; }
.kb-mover:hover, .kb-mover:focus { border-color: var(--borda); }
.kb-vazio { font-size: .82rem; color: var(--sutil); text-align: center; padding: 14px 0; margin: 0; }
.kb-aviso { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); padding: 10px 16px; border-radius: 8px; z-index: 50; box-shadow: 0 6px 20px rgba(0,0,0,.15); }
.kb-aviso.ok { background: #e6f4ec; color: var(--ok); }
.kb-aviso.erro { background: #fdecea; color: var(--erro); }

main:has(.kanban) { max-width: none; }
.trocar-solic { margin-top: 10px; border-top: 1px solid var(--borda); padding-top: 8px; }
.trocar-solic summary { cursor: pointer; color: var(--primario); font-weight: 600; font-size: .88rem; }
.trocar-solic form { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.trocar-solic select { margin: 0; font-size: .88rem; padding: 6px 8px; }
.trocar-solic label.check { font-size: .84rem; margin: 0; }
.trocar-solic .botao.mini { align-self: flex-start; margin: 0; }

/* avatares e minha conta */
.avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; object-fit: cover; flex: none; vertical-align: middle; }
.avatar.ini { color: #fff; font-weight: 700; letter-spacing: .02em; }
.pessoa { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.quem-link { display: inline-flex; align-items: center; gap: 8px; }
.conta { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 20px; align-items: start; max-width: 1000px; }
.foto-perfil { display: flex; gap: 20px; align-items: center; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--borda); }
.foto-perfil form { margin: 0; }
.foto-perfil p.sutil { font-size: .82rem; margin: 6px 0; }
.foto-atual .avatar { box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--borda); }
.dados-fixos { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 6px 0 4px; font-size: .92rem; }
.dados-fixos dt { color: var(--sutil); }
.dados-fixos dd { margin: 0; }
@media (max-width: 860px) { .conta { grid-template-columns: minmax(0, 1fr); } }
[hidden] { display: none !important; }

/* API e webhooks */
.segredo-novo { border-color: #22a35a; background: #f3fbf6; }
.copiar { display: flex; gap: 8px; align-items: center; margin: 8px 0; }
.copiar code { flex: 1; background: #fff; border: 1px solid var(--borda); border-radius: 6px; padding: 8px 10px; font-size: .9rem; overflow-wrap: anywhere; }
.linha-form { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 12px; align-items: end; margin-bottom: 14px; }
.linha-form label, .linha-form .botao { margin-bottom: 0; }
.acoes-linha form { display: inline; margin: 0 6px 0 0; }
code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .88em; }
.docs { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 32px; align-items: start; }
.docs-indice { position: sticky; top: 72px; display: flex; flex-direction: column; gap: 2px; }
.docs-indice a { padding: 6px 10px; border-radius: 6px; color: var(--texto); }
.docs-indice a:hover { background: #fff; text-decoration: none; }
.docs article > p { max-width: 75ch; }
.docs-dl { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px 16px; margin: 0; }
.docs-dl dt { font-weight: 600; }
.docs-dl dd { margin: 0; }
.rota { background: #fff; border: 1px solid var(--borda); border-radius: 8px; margin-bottom: 8px; }
.rota summary { display: flex; align-items: center; gap: 12px; padding: 10px 14px; cursor: pointer; list-style: none; }
.rota summary::-webkit-details-marker { display: none; }
.rota[open] summary { border-bottom: 1px solid var(--borda); }
.rota > p, .rota > pre { margin: 10px 14px; }
.rota .quem { margin-left: auto; font-size: .8rem; color: var(--sutil); text-align: right; }
.metodo { font: 700 .74rem ui-monospace, monospace; padding: 3px 7px; border-radius: 5px; min-width: 58px; text-align: center; background: #eceef2; color: #4b5263; }
.m-get { background: #e8efff; color: #1f4fd1; } .m-post { background: #e3f5ea; color: #157347; } .m-patch, .m-put { background: #fff4e0; color: #9a5b00; } .m-delete { background: #fde4e1; color: #b42318; }
.docs pre { background: #141414; color: #e8e8e8; padding: 12px 14px; border-radius: 8px; overflow-x: auto; font-size: .82rem; line-height: 1.5; }
@media (max-width: 860px) { .docs { grid-template-columns: 1fr; } .docs-indice { position: static; flex-direction: row; flex-wrap: wrap; } .linha-form { grid-template-columns: 1fr; } }
/* topo com muitos menus: rola o menu em vez de empurrar o usuário para fora */
.topo { gap: 16px; }
.topo nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
.topo nav a { padding: 6px 9px; white-space: nowrap; }
.topo .quem { flex: none; }
@media (max-width: 1440px) { .topo .perfil { display: none; } }

/* Dados fiscais do cliente / NFS-e */
.linha3 > .dois { grid-column: span 2; }
.cidade-uf { display: flex; gap: 6px; }
.cidade-uf .uf { width: 58px; flex: none; text-transform: uppercase; }
.st-nf { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.st-nf.autorizada { background: #e6f4ea; color: #1e7b34; }
.st-nf.rejeitada { background: #fdecea; color: #b42318; }
.st-nf.cancelada { background: #eceef2; color: #6b7385; text-decoration: line-through; }
.st-nf.pendente, .st-nf.enviando { background: #fff4e0; color: #9a5b00; }
.xml-previa { max-height: 420px; overflow: auto; background: #111; color: #e8e8e8; padding: 12px; border-radius: 8px; font-size: 12px; white-space: pre-wrap; word-break: break-all; }
.lista-erros { margin: 6px 0 0; padding-left: 18px; }
.lista-erros li { margin: 2px 0; }
dialog.modal { border: none; border-radius: 12px; padding: 22px; max-width: 520px; width: 92%; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
dialog.modal::backdrop { background: rgba(0,0,0,.45); }
.aviso.alerta { background: #fff4e0; color: #8a5300; }
.nf-dados { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; margin: 0; }
.nf-dados dt { color: var(--sutil); font-size: .88rem; }
.nf-dados dd { margin: 0; min-width: 0; }
details summary { cursor: pointer; color: var(--sutil); margin: 6px 0 10px; }
.nf-linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
@media (max-width: 1440px) { .topo .marca span, .topo .perfil { display: none; } .topo nav a { padding: 6px 8px; } }
.permissoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; }
@media (max-width: 760px) { .permissoes { grid-template-columns: 1fr; } }
#permissoes button.link { color: var(--primario); }
.cindop { display: flex; flex-direction: column; gap: 6px; }
.cindop .cindop-busca { margin: 0; }
.cindop select { margin: 0; }
.ibscbs-bloco { border: 1px dashed var(--borda); border-radius: 8px; padding: 12px 14px; margin: 10px 0; }
.st-nf.rascunho { background: #e8eefc; color: #2f4fa3; }
.rascunho-acoes { border-color: #b9c8f0; background: #f5f8ff; }
