:root {
  --rosa: #e00878; --rosa-escuro: #b8005f; --rosa-claro: #fde7f2;
  --verde: #1f9d55; --verde-claro: #e3f6ea; --amarelo: #f5b400; --amarelo-claro: #fff6d6;
  --vermelho: #c62828; --cinza-1: #f0f1f3; --cinza-2: #d6d9de; --cinza-3: #9aa0a6; --texto: #262626; --texto-2: #555;
  --card: #fff; --radius: 10px; --sombra: 0 1px 3px rgba(0,0,0,.08);
}
* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.45 "Segoe UI", system-ui, sans-serif; color: var(--texto); background: var(--cinza-1); }
a { color: var(--rosa); }
button, input, select, textarea { font: inherit; }
.topbar { display: flex; align-items: center; gap: 24px; padding: 10px 20px; background: #fff; border-bottom: 1px solid var(--cinza-2); position: sticky; top: 0; z-index: 5; }
.brand { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.brand-logo { height: 26px; width: auto; display: block; }
.brand-main { color: var(--rosa); } .brand-sub { color: var(--texto); } .brand-tag { font-weight: 600; color: var(--texto-2); font-size: 12px; letter-spacing: .4px; text-transform: uppercase; margin-left: 2px; }
.nav a { margin-right: 16px; text-decoration: none; color: var(--texto-2); font-weight: 600; }
.nav a.ativo { color: var(--rosa); }
.user { margin-left: auto; color: var(--texto); font-size: 13px; font-weight: 600; }
.user button { margin-left: 8px; }
.view { padding: 20px; max-width: 1600px; margin: 0 auto; }

.btn { border: 1px solid var(--cinza-2); background: #fff; color: var(--texto); padding: 7px 12px; border-radius: 8px; cursor: pointer; font-weight: 600; }
.btn:hover { background: var(--cinza-1); }
a.btn { text-decoration: none; display: inline-block; }
.btn.primario { background: var(--rosa); border-color: var(--rosa); color: #fff; }
.btn.primario:hover { background: var(--rosa-escuro); }
.btn.verde { background: var(--verde); border-color: var(--verde); color: #fff; }
.btn.pequeno { padding: 3px 8px; font-size: 12px; }
.btn.perigo { color: var(--vermelho); }
.btn:disabled { opacity: .5; cursor: default; }

input[type=text], input[type=number], input[type=email], input[type=password], input[type=date], select, textarea {
  width: 100%; padding: 7px 9px; border: 1px solid var(--cinza-2); border-radius: 8px; background: #fff;
}
input.falta { background: var(--rosa-claro); border-color: #f5a3cd; }
textarea { min-height: 70px; resize: vertical; }
label { display: block; font-size: 12px; color: var(--texto-2); margin-bottom: 3px; font-weight: 600; }
.campo { margin-bottom: 10px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
@media (max-width: 1000px) { .grid4 { grid-template-columns: 1fr 1fr; } }
.detalhes { margin-top: 10px; }
.detalhes summary { cursor: pointer; font-size: 12px; font-weight: 600; color: var(--texto-2); text-transform: uppercase; letter-spacing: .5px; }
.detalhes[open] summary { margin-bottom: 8px; }

.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--sombra); padding: 14px; margin-bottom: 14px; }
.card h3 { margin: 0 0 10px; font-size: 15px; letter-spacing: .2px; color: var(--texto); font-weight: 700; display: flex; align-items: center; gap: 8px; }
.card h3 .num { display: inline-flex; width: 20px; height: 20px; border-radius: 50%; background: var(--rosa); color: #fff; align-items: center; justify-content: center; font-size: 12px; }
.card h3 .dir { margin-left: auto; font-weight: 500; text-transform: none; letter-spacing: 0; }

.badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; background: var(--cinza-2); color: var(--texto-2); white-space: nowrap; }
/* Cores dos estados por prioridade (14/10/2026):
   laranja  = a nossa vez, agora (chegou ou o cliente respondeu);
   amarelo  = aguarda cliente (esclarecimentos pedidos);  azul = proposta enviada;  verde = ganho (aceite, concluído);  cinza = fechado sem ganho. */
.badge.recebido, .badge.cliente_respondeu { background: #ffe8d6; color: #b45309; }
.badge.cliente_respondeu { font-weight: 700; }
.badge.pendente_cliente { background: #ffe8d6; color: #b45309; }
.badge.a_esclarecer { background: var(--amarelo-claro); color: #8a6100; }
.seguimento { margin: 0 0 10px; padding: 8px 12px; background: #fffbea; border: 1px solid #f3e4a8; border-radius: 8px; font-size: 13px; }
.seguimento .aviso { margin-bottom: 0; }
.badge.enviado { background: #e8f0fe; color: #1a56db; }   /* azul: proposta enviada (decisão do Eduardo, 14/10) */
.badge.aceite, .badge.resolvido { background: var(--verde-claro); color: var(--verde); }
.badge.recusado, .badge.expirado, .badge.cancelado { background: var(--cinza-1); color: var(--cinza-3); }
.badge.por_resolver { background: #fdecec; color: var(--vermelho); }

.login { max-width: 380px; margin: 80px auto; }
.login h2 { margin-top: 0; }
.erro { color: var(--vermelho); font-size: 13px; margin-top: 6px; }
.ok { color: var(--verde); font-size: 13px; margin-top: 6px; }

.lista-topo { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.lista-topo input[type=text] { width: 280px; }
.lista-topo select { width: auto; }
.lista-topo .btn.primario { margin-left: auto; }
table.lista { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); box-shadow: var(--sombra); overflow: hidden; }
table.lista th, table.lista td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--cinza-2); }
table.lista th { font-size: 12px; text-transform: uppercase; color: var(--texto); font-weight: 700; letter-spacing: .4px; background: #e9eaee; border-bottom: 2px solid var(--cinza-2); white-space: nowrap; }
table.lista tbody tr:nth-child(even) td { background: #f7f7f9; }
table.lista td.num-mono, table.lista td.dir { white-space: nowrap; }
table.lista tr:hover td { background: #fff7fb; cursor: pointer; }
.num-mono { font-family: Consolas, monospace; }
.dir { text-align: right; }
.muted { color: var(--texto-2); font-size: 12px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-bottom: 14px; }
.kpi { background: #fff; border-radius: var(--radius); box-shadow: var(--sombra); padding: 12px; }
.kpi .v { font-size: 22px; font-weight: 800; }
.kpi .l { font-size: 12px; color: var(--texto-2); }

.orc-topo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.orc-topo h2 { margin: 0; font-size: 20px; }
.orc-topo .acoes { margin-left: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.orc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
/* ecrã do orçamento: .par = colunas 1 e 2 (grelha própria), .col3 = proposta. 3 colunas: .par ocupa 2/3 e a proposta 1/3; 2 colunas: a proposta vai para baixo.
   As colunas 2 e 3 acompanham o scroll (sticky) dentro do seu contentor: a coluna 2 só dentro de .par, por isso nunca se sobrepõe à proposta. */
.orc-grid3 { display: grid; grid-template-columns: 2.3625fr 1fr; gap: 14px; align-items: start; }
.orc-grid3 .par { display: grid; grid-template-columns: 1.125fr 1.2375fr; gap: 14px; align-items: start; }
.orc-grid3 .col2, .orc-grid3:not(.duas) .col3 { position: sticky; top: 60px; }
.orc-grid3 .col2 > .card, .orc-grid3:not(.duas) .col3 > .card { max-height: calc(100vh - 74px); overflow: auto; overscroll-behavior: contain; }
.orc-grid3 .col2 > .card > h3, .orc-grid3:not(.duas) .col3 > .card > h3 { position: sticky; top: 0; background: var(--card); z-index: 1; padding-bottom: 6px; }
.mini { border-radius: 6px; border: 1px solid var(--cinza-2); object-fit: contain; background: #fff; flex: none; }
.mini.vazio { display: inline-block; background: var(--cinza-1); }
.res.com-foto { grid-template-columns: auto 1fr auto; }
.res.com-foto .mini { grid-row: span 3; }
.op-esq { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.orc-grid3.duas { display: block; }
.orc-grid3.duas .par { grid-template-columns: 1fr 1fr; margin-bottom: 14px; }
@media (max-width: 1200px) { .orc-grid3 { grid-template-columns: 1fr; } .orc-grid3 .par { grid-template-columns: 1fr; } .orc-grid3 .col2, .orc-grid3 .col3 { position: static; } .orc-grid3 .col2 > .card, .orc-grid3 .col3 > .card { max-height: none; } }
@media (max-width: 1000px) { .orc-grid3.duas .par { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .orc-grid { grid-template-columns: 1fr; } }

.pedido { border: 1px solid var(--cinza-2); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; cursor: pointer; }
.pedido.ativo { border-color: var(--rosa); background: #fff7fb; }
.pedido .t { font-weight: 600; display: flex; gap: 8px; align-items: center; }
.pedido .t .badge { margin-left: auto; }
.pedido .s { color: var(--texto-2); font-size: 12px; }
.pedido .duvida { color: #8a6100; font-size: 12px; margin-top: 3px; }
/* análise */
.an-filtros .chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.an-filtros .chip { border: 1px solid var(--cinza-2); border-radius: 999px; padding: 6px 14px; font-size: 13px; background: #fff; cursor: pointer; font-weight: 600; color: var(--texto-2); }
.an-filtros .chip.on { background: var(--rosa); color: #fff; border-color: var(--rosa); }
.an-filtros .filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.an-filtros .filtros select, .an-filtros input[type=date] { width: auto; display: inline-block; padding: 6px 10px; }
.an-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 14px; }
.kpi.an { background: #fff; border-radius: 12px; box-shadow: var(--sombra); padding: 16px 18px; border-top: 4px solid var(--rosa); display: block; text-align: left; }
.kpi.an .v { font-size: 32px; font-weight: 800; line-height: 1.1; letter-spacing: -.5px; color: var(--texto); }
.kpi.an .l { font-size: 13px; color: var(--texto-2); margin-top: 4px; font-weight: 600; }
.kpi.an .d { font-size: 12px; margin-top: 6px; font-weight: 600; } .kpi.an .d.up { color: var(--verde); } .kpi.an .d.down { color: var(--vermelho); } .kpi.an .d.flat { color: var(--cinza-3); }
.kpi.an.verde { border-top-color: var(--verde); } .kpi.an.azul { border-top-color: #1a56db; } .kpi.an.amarelo { border-top-color: #f5b400; }
.an-grid { margin-bottom: 0; } .an-grid .card { margin-bottom: 14px; }
.grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; } @media (max-width: 1100px) { .grid3 { grid-template-columns: 1fr; } }
.funil { display: flex; flex-direction: column; gap: 8px; }
.funil .passo { display: grid; grid-template-columns: 170px 1fr 70px 70px; gap: 10px; align-items: center; font-size: 13px; }
.funil .barra { height: 26px; border-radius: 6px; background: var(--rosa-claro); position: relative; overflow: hidden; }
.funil .barra i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--rosa); border-radius: 6px; }
.funil .n { font-size: 20px; font-weight: 800; text-align: right; } .funil .p { text-align: right; color: var(--texto-2); }
.mini-barra { height: 8px; border-radius: 4px; background: var(--cinza-1); overflow: hidden; } .mini-barra i { display: block; height: 100%; background: var(--rosa); }
.legenda { display: flex; gap: 14px; font-size: 12px; color: var(--texto-2); margin-top: 6px; flex-wrap: wrap; } .legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; vertical-align: -2px; margin-right: 4px; }
.badge.alerta { background: #fde8e8; color: var(--vermelho); } .badge.aviso { background: var(--amarelo-claro); color: #8a6100; }
@media print { #lateral, .topbar, .an-filtros { display: none !important; } .card { box-shadow: none; border: 1px solid #ddd; page-break-inside: avoid; } }
/* fecho do orçamento */
.btn.verde { background: var(--verde); color: #fff; border-color: var(--verde); }
.badge.concluido { background: #d1fae5; color: #065f46; }
.aviso.ok-fecho { background: var(--verde-claro); color: #14532d; }
.anexos-sel { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; }
.anexo-sel { border: 1px solid var(--cinza-2); border-radius: 999px; padding: 3px 10px; font-size: 12px; background: var(--cinza-1); display: inline-flex; gap: 6px; align-items: center; font-weight: 500; }
.anexo-sel input { margin: 0; }
.seg { display: inline-flex; gap: 0; } .seg .btn { border-radius: 0; } .seg .btn:first-child { border-radius: 8px 0 0 8px; } .seg .btn:last-child { border-radius: 0 8px 8px 0; }
/* motivos da mudança de estado */
.motivos { display: flex; flex-direction: column; gap: 4px; margin: 6px 0 10px; }
.motivo { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border: 1px solid var(--cinza-2); border-radius: 8px; cursor: pointer; font-size: 13px; }
.motivo:has(input:checked) { border-color: var(--rosa); background: #fff7fb; }
.motivo input { margin: 0; }
/* resposta do cliente por email */
.resposta-email { border-left: 4px solid var(--rosa); }
.re-grid { display: grid; grid-template-columns: 1fr auto; gap: 10px 18px; align-items: start; }
.re-acoes { display: flex; flex-direction: column; gap: 6px; min-width: 220px; }
.re-resumo { margin-top: 4px; font-size: 14px; }
.re-lista { font-size: 13px; margin-top: 6px; }
@media (max-width: 900px) { .re-grid { grid-template-columns: 1fr; } }
/* feedback de processamento */
#barra-progresso { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 3000; background: linear-gradient(90deg, var(--rosa) 0%, #ff7fb8 50%, var(--rosa) 100%); background-size: 200% 100%; opacity: 0; transition: opacity .2s; pointer-events: none; }
#barra-progresso.on { opacity: 1; animation: barra-corre 1s linear infinite; }
@keyframes barra-corre { from { background-position: 200% 0; } to { background-position: 0 0; } }
.btn.ocupado-btn, button.ocupado-btn { opacity: .8; cursor: progress; }
.spin { display: inline-block; width: 12px; height: 12px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; margin-right: 6px; vertical-align: -2px; animation: spin-roda .7s linear infinite; }
@keyframes spin-roda { to { transform: rotate(360deg); } }
.cx-assunto { cursor: pointer; } .cx-assunto:hover { color: var(--rosa); } .cx-seta { display: inline-block; width: 12px; color: var(--rosa); font-size: 12px; }
tr.cx-det td { background: var(--cinza-1); padding: 10px 12px; }
.email-orig iframe { width: 100%; height: 300px; border: 1px solid var(--cinza-2); border-radius: 8px; background: #fff; display: block; }
.email-orig .anexos-lista { margin-top: 8px; font-size: 13px; display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
.email-orig .anexo { color: var(--rosa); text-decoration: none; border: 1px solid var(--cinza-2); border-radius: 999px; padding: 2px 10px; background: var(--cinza-1); }
.email-orig .anexo:hover { border-color: var(--rosa); }
.excerto { background: var(--cinza-1); border-left: 3px solid var(--rosa); padding: 8px 10px; font-size: 13px; color: var(--texto-2); font-style: italic; white-space: pre-wrap; max-height: 220px; overflow: auto; }

.pesquisa { display: flex; gap: 8px; margin-bottom: 8px; }
.resultados { max-height: 340px; overflow: auto; border: 1px solid var(--cinza-2); border-radius: 8px; }
.res { padding: 7px 10px; border-bottom: 1px solid var(--cinza-2); display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; cursor: pointer; }
.res:hover { background: #fff7fb; }
.res .n { font-weight: 600; }
.res .m { color: var(--texto-2); font-size: 12px; }
.res .p { text-align: right; font-weight: 700; }
.res .sk { text-align: right; font-size: 12px; }
.sk.ok { color: var(--verde); } .sk.enc { color: #8a6100; }

.opcao { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 10px; align-items: start; padding: 8px; border: 1px solid var(--cinza-2); border-radius: 8px; margin-bottom: 6px; }
.opcao.inc { border-color: var(--rosa); background: #fff7fb; }
.opcao .n { font-weight: 600; }
.opcao .m { color: var(--texto-2); font-size: 12px; grid-column: 2; }
.sig { color: var(--rosa); font-weight: 700; }
a.loja { white-space: nowrap; font-weight: 600; }
.opcao .p { text-align: right; font-weight: 700; }
.opcao .acoes { grid-column: 3; text-align: right; }
.opcao.nlinha { grid-template-columns: auto 1fr auto auto; align-items: center; }
.opcao.nlinha .acoes { grid-column: 4; }

.linha { border: 1px solid var(--cinza-2); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; }
.linha .cab { display: flex; gap: 8px; align-items: center; }
.linha .cab .n { font-weight: 600; flex: 1; }
.linha .cab .ped { font-size: 11px; color: var(--rosa); text-transform: uppercase; font-weight: 700; }
.linha .campos { display: grid; grid-template-columns: 60px 90px 70px 80px 60px 1fr; gap: 6px; margin-top: 6px; align-items: end; }
.linha .campos .tot { text-align: right; font-weight: 700; }
.linha .info { font-size: 12px; color: var(--texto-2); margin-top: 4px; display: flex; gap: 12px; }
.linha .info .mg.baixa { color: var(--vermelho); font-weight: 700; }
.totais { border-top: 1px solid var(--cinza-2); margin-top: 10px; padding-top: 10px; }
.totais .r { display: flex; justify-content: space-between; padding: 3px 0; }
.totais .r.total { font-size: 18px; font-weight: 800; border-top: 1px solid var(--cinza-2); margin-top: 6px; padding-top: 8px; }
.totais .r.margem { color: var(--verde); font-weight: 700; }
.totais select, .totais input { width: auto; display: inline-block; }
.inline { display: flex; gap: 8px; align-items: center; }
.inline input { width: 90px; }

.eventos { font-size: 12px; }
.eventos li { list-style: none; padding: 4px 0; border-bottom: 1px dashed var(--cinza-2); }
.eventos ul { padding: 0; margin: 0; }
.eventos .q { color: var(--texto-2); }
.historico-tbl { width: 100%; font-size: 12px; border-collapse: collapse; }
.historico-tbl td, .historico-tbl th { padding: 3px 6px; border-bottom: 1px solid var(--cinza-2); text-align: left; }
.historico-tbl td.d, .historico-tbl th.d { text-align: right; }

.toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: var(--texto); color: #fff; padding: 10px 16px; border-radius: 8px; opacity: 0; transition: opacity .2s; pointer-events: none; z-index: 20; }
.toast.on { opacity: 1; }
.toast.erro { background: var(--vermelho); }
.modal-fundo { position: fixed; inset: 0; background: rgba(0,0,0,.35); display: flex; align-items: center; justify-content: center; z-index: 10; }
.modal { background: #fff; border-radius: 12px; padding: 18px; width: 720px; max-width: 95vw; max-height: 90vh; overflow: auto; }
.modal h3 { margin-top: 0; }
.modal .fim { display: flex; gap: 8px; justify-content: flex-end; margin-top: 12px; }
.seg { display: flex; gap: 8px; flex-wrap: wrap; }
.seg .btn .muted { font-weight: 400; }
.seg .btn.primario .muted { color: #fff; opacity: .85; }
.motivos { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.motivos label { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--cinza-2); border-radius: 8px; cursor: pointer; font-weight: 500; }
.motivos label:has(input:checked) { border-color: var(--rosa); background: var(--rosa-claro); }
.motivos input { margin: 0; }
.btn.perigo.primario, .modal .fim .btn.perigo { border-color: var(--vermelho); background: var(--vermelho); color: #fff; }
.variantes { display: flex; flex-wrap: wrap; gap: 6px; }
.variantes .v { border: 1px solid var(--cinza-2); border-radius: 6px; padding: 3px 8px; font-size: 12px; cursor: pointer; }
.variantes .v.ok { border-color: var(--verde); }
.variantes .v.sel { background: var(--rosa); color: #fff; border-color: var(--rosa); }
.variantes .v.bloq { text-decoration: line-through; opacity: .5; cursor: not-allowed; background: var(--cinza-1); }
.fotos img { height: 90px; margin-right: 6px; border-radius: 6px; border: 1px solid var(--cinza-2); }

.logo-cli { display: flex; align-items: center; gap: 10px; margin: 4px 0 10px; }
.logo-cli img { max-height: 40px; max-width: 160px; border: 1px solid var(--cinza-2); border-radius: 6px; padding: 3px; background: #fff; }
tr.ignorado td { opacity: .55; }
.badge.nc { background: #fdecec; color: var(--vermelho); }
.pesq-ext { margin-left: 8px; font-size: 11px; color: var(--cinza-3); }
.pesq-ext a { color: var(--cinza-3); text-decoration: none; border-bottom: 1px dotted var(--cinza-3); }
.pesq-ext a:hover { color: var(--rosa); border-color: var(--rosa); }
.pesq-ext a.lk-cli { color: var(--rosa-escuro); border-color: var(--rosa-escuro); }
.aviso.nc { background: #fdecec; color: #9b1c1c; border-color: #f3b4b4; }
.aviso { background: var(--amarelo-claro); color: #6b4c00; border: 1px solid #f1d27a; border-radius: 8px; padding: 8px 10px; margin-bottom: 10px; font-size: 13px; }
.email-edit { border: 1px solid var(--cinza-2); border-radius: 8px; padding: 16px; min-height: 200px; max-height: 50vh; overflow: auto; background: #f4f5f7; }
.modal { width: 820px; }

#ocupado { position: fixed; inset: 0; background: rgba(31,35,40,.55); display: none; align-items: center; justify-content: center; z-index: 50; backdrop-filter: blur(1px); }
.ocupado-caixa { background: #fff; border-radius: 14px; padding: 26px 32px; text-align: center; min-width: 320px; max-width: 520px; box-shadow: 0 10px 40px rgba(0,0,0,.25); }
.ocupado-msg { font-size: 16px; font-weight: 700; margin: 12px 0 4px; }
.spinner { width: 40px; height: 40px; border: 4px solid var(--rosa-claro); border-top-color: var(--rosa); border-radius: 50%; margin: 0 auto; animation: gira .9s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }

.aviso-falta{color:#b32020;background:#fdecec;border-radius:8px;padding:8px 10px;font-size:13px;margin-top:6px}

/* ---------- plataforma por módulos: barra lateral + conteúdo ---------- */
.layout { display: flex; min-height: calc(100vh - 57px); }
.lateral { width: 220px; flex: none; background: #3a3a3a; border-right: 1px solid #2c2c2c; padding: 12px 10px; display: flex; flex-direction: column; gap: 2px; }
.lateral:empty { display: none; }
.lateral .t { font-size: 11px; text-transform: uppercase; letter-spacing: .7px; color: #b9b9b9; font-weight: 700; padding: 12px 10px 4px; }
.lateral a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; color: #f2f2f2; text-decoration: none; font-weight: 600; }
.lateral a:hover { background: #4a4a4a; }
.lateral a.ativo { background: var(--rosa); color: #fff; font-weight: 800; }
.lateral a.off { opacity: .45; pointer-events: none; }
.lateral a .ic { width: 22px; text-align: center; }
.lateral .sub a { padding-left: 42px; font-size: 13px; font-weight: 500; position: relative; }
.lateral .sub a.ativo { background: transparent; color: #ff6fb3; font-weight: 800; }
.lateral .sub a.ativo::before { content: ""; position: absolute; left: 30px; top: 9px; bottom: 9px; width: 3px; border-radius: 2px; background: #ff6fb3; }
.lateral .breve { font-size: 10px; background: rgba(255,255,255,.18); color: #d0d0d0; padding: 1px 6px; border-radius: 8px; margin-left: auto; }
.lateral .fundo { margin-top: auto; font-size: 11px; color: #b9b9b9; padding: 10px; }
.modulo-titulo { font-weight: 800; font-size: 15px; color: var(--texto); border-left: 1px solid var(--cinza-2); padding-left: 16px; }
.modulo-titulo:empty { display: none; }
.view { flex: 1; min-width: 0; }
.inicio-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.inicio-cards .card { margin: 0; }
.inicio-cards .card.off { opacity: .55; }
.inicio-cards .card { display:flex; flex-direction:column; } .inicio-cards .card .rodape { margin-top:auto; padding-top:12px; }
.t-inicio { margin:22px 0 8px; font-size:12px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--texto-2); }
.inicio-cards.compactos { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } .inicio-cards.compactos .card { padding:12px 14px; } .inicio-cards.compactos .card p { min-height:0; font-size:12px; } .inicio-cards.compactos .kpis { display:none; } .inicio-cards.compactos .mod-ic { width:26px; height:26px; font-size:14px; border-radius:8px; }
.inicio-cards h3 { margin: 0 0 6px; font-size: 15px; }
.inicio-cards p { margin: 0; color: var(--texto-2); font-size: 13px; }
.inicio-cards .kpis { display: flex; gap: 14px; margin-top: 12px; }
.inicio-cards .kpi b { display: block; font-size: 20px; font-weight: 800; color: var(--rosa); }
.inicio-cards .kpi span { font-size: 11px; color: var(--texto-2); }
.inicio-cards p { min-height: 36px; }
.nivel { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; background: #eef2ff; color: #3949ab; }
.nivel.admin { background: #e3f6ea; color: #1f9d55; } .nivel.nao { background: #eee; color: #9aa0a6; }
@media (max-width: 760px) { .lateral { display: none; } }

/* ------------------------------------------------------------- concorrência */
.sem { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; vertical-align: middle; background: #bbb; }
.sem.verde { background: var(--verde); } .sem.amarelo { background: var(--amarelo); } .sem.vermelho { background: var(--vermelho); } .sem.cinza { background: #bbb; } .sem.nenhum { background: #eee; border: 1px solid #ccc; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; white-space: nowrap; background: #eee; color: #666; }
.tag.exato { background: var(--verde-claro); color: var(--verde); } .tag.sugerido { background: var(--amarelo-claro); color: #8a6100; } .tag.equivalente { background: #eef2ff; color: #3949ab; } .tag.rejeitado { background: #eee; color: #888; } .tag.novo { background: var(--rosa-claro); color: var(--rosa); }
.conc-kpi b { display: block; font-size: 22px; font-weight: 800; color: var(--rosa); } .conc-kpi span { font-size: 12px; color: var(--texto-2); }
.conc-kpi.verde b { color: var(--verde); } .conc-kpi.vermelho b { color: var(--vermelho); } .conc-kpi.amarelo b { color: #b7791f; }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.filtros button { background: #fff; border: 1px solid var(--cinza-2); border-radius: 8px; padding: 5px 10px; font-size: 13px; cursor: pointer; }
.filtros button.on { background: var(--rosa); border-color: var(--rosa); color: #fff; font-weight: 700; }
.emp { display: grid; grid-template-columns: 1fr 48px 1fr; gap: 10px; align-items: center; border: 1px solid var(--cinza-2); border-radius: 10px; padding: 10px 12px; margin: 8px 0; background: #fff; }
.emp .seta { text-align: center; color: var(--texto-2); font-size: 18px; } .emp .nome { font-weight: 600; } .emp small { color: var(--texto-2); display: block; }
.emp .acoes { grid-column: 1 / -1; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 12px; color: var(--texto-2); }
.barra { height: 8px; background: #eee; border-radius: 4px; overflow: hidden; } .barra i { display: block; height: 100%; }
.grafico { display: flex; align-items: flex-end; gap: 2px; height: 110px; border-bottom: 1px solid var(--cinza-2); padding-bottom: 2px; }
.grafico i { flex: 1; min-width: 3px; border-radius: 2px 2px 0 0; background: var(--cinza-2); position: relative; }
.grafico i.n { background: var(--rosa); }
table.lista td.n, table.lista th.n { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.conc-log { font-family: Consolas, monospace; font-size: 12px; background: #fafafa; border: 1px solid var(--cinza-2); border-radius: 8px; padding: 8px; max-height: 240px; overflow: auto; white-space: pre-wrap; }
@media (max-width: 800px) { .emp { grid-template-columns: 1fr; } .emp .seta { display: none; } }

.detalhes-campos { margin-top: 6px; font-size: 12px; } .detalhes-campos summary { cursor: pointer; color: var(--texto-2); }
table.lista.campos th { width: 190px; text-align: left; font-weight: 600; color: var(--texto-2); vertical-align: top; }
table.lista.campos td, table.lista.campos th { padding: 4px 8px; }
table.mini-tabela { font-size: 11px; margin: 2px 0; } table.mini-tabela th, table.mini-tabela td { padding: 2px 6px; }
.sub-campos div { padding: 1px 0; }

/* contraste (07/10/2026): títulos principais a bold */
.view h2 { font-weight: 800; color: #1f1f1f; }
.view h2 small { font-weight: 400; }
.lateral a .badge { background: #fff; color: var(--rosa); }
.lateral a.ativo .badge { background: #fff; color: var(--rosa); }

.tag.variante { background: #eef2ff; color: #3949ab; }

/* catálogo */
.nota-seo { display: inline-block; min-width: 38px; text-align: center; padding: 2px 8px; border-radius: 10px; font-weight: 800; color: #fff; }
.nota-seo.v { background: var(--verde); } .nota-seo.a { background: #e0a100; } .nota-seo.r { background: var(--vermelho); }
.tag.falta { background: #fdecec; color: var(--vermelho); } .tag.ok { background: var(--verde-claro); color: var(--verde); }

/* encomendas online */
.tag.enc-pedir { background: #fdecec; color: var(--vermelho); } .tag.enc-aguarda { background: var(--amarelo-claro); color: #8a6100; } .tag.enc-pronta { background: var(--verde-claro); color: var(--verde); }
.tag.enc-separacao { background: #eef2ff; color: #3949ab; } .tag.enc-urgente { background: var(--vermelho); color: #fff; } .tag.enc-canal { background: var(--rosa-claro); color: var(--rosa); }
.neg { color: var(--vermelho); font-weight: 700; } .pos { color: var(--verde); }
tr.enc-urg td { box-shadow: inset 3px 0 0 var(--vermelho); }
tr.enc-det > td { background: #fafafa !important; padding: 8px 12px 12px; }
table.enc-linhas { font-size: 12px; margin: 0; box-shadow: none; } table.enc-linhas th, table.enc-linhas td { padding: 5px 8px; }
table.enc-linhas tr.falta td { background: #fff3f3 !important; } table.enc-linhas tr.servico td { color: #999; }
.enc-nota { background: #fffbe6; border-left: 3px solid #e0a100; padding: 5px 10px; font-size: 12px; margin: 6px 0 0; }
.filtros button.urg { border-color: var(--vermelho); color: var(--vermelho); } .filtros button.urg.on { background: var(--vermelho); color: #fff; }
.filtros button i { font-style: normal; background: rgba(0,0,0,.08); border-radius: 8px; padding: 0 6px; margin-left: 4px; font-size: 11px; }


/* ------------------------------------------------------------- Catálogo · separador SEO (claro por omissão; .escuro à escolha) */
.seo { --s-rosa:#E00878; --s-rosa2:#E00878; --s-fundo:transparent; --s-painel:#fff; --s-linha:#e3dde1; --s-texto:#2b2b2b; --s-muted:#6B6B6B; --s-cinza:#484848; --s-barra:#efeaed; --s-sombra:0 4px 16px rgba(72,72,72,.08); --s-tab:#f1edf0; color:var(--s-texto); }
.seo.escuro { --s-rosa2:#ff4fa8; --s-fundo:#141216; --s-painel:#1f1c22; --s-linha:#3a3540; --s-texto:#f3eef1; --s-muted:#b9b0b6; --s-cinza:#f3eef1; --s-barra:#3a3540; --s-sombra:0 0 24px rgba(224,8,120,.12); --s-tab:#2a2630; background:radial-gradient(1200px 600px at 15% -10%, #3a1230 0%, transparent 60%), var(--s-fundo); margin:-14px; padding:14px; border-radius:12px; }
.seo-topo { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:linear-gradient(90deg, var(--s-painel), #fde7f2); border:1px solid rgba(224,8,120,.35); border-radius:14px; padding:12px 18px; box-shadow:var(--s-sombra); }
.seo.escuro .seo-topo { background:linear-gradient(90deg, rgba(224,8,120,.18), rgba(224,8,120,.04)); }
.seo-logo { display:flex; align-items:center; gap:12px; } .seo-logo .ic { width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg, #E00878, #8f004a); display:flex; align-items:center; justify-content:center; font-size:22px; }
.seo-logo h2 { margin:0; font-size:28px; letter-spacing:1px; line-height:1; color:var(--s-texto); } .seo-logo h2 b { color:var(--s-rosa2); } .seo-logo small { display:block; font-size:11px; letter-spacing:3px; color:var(--s-muted); margin-top:3px; }
.seo-pills { display:flex; gap:8px; flex-wrap:wrap; align-items:center; } .seo-pills .pill { border:1px solid var(--s-linha); background:var(--s-painel); border-radius:999px; padding:6px 12px; font-size:12px; color:var(--s-texto); } .seo-pills .pill.rosa { background:var(--s-rosa); border-color:var(--s-rosa); color:#fff; }
.seo.escuro .btn { background:#2a2630; border-color:#4a4450; color:#f3eef1; } .seo.escuro .btn.primario { background:var(--s-rosa); border-color:var(--s-rosa); color:#fff; }
.seo-kpis { display:grid; grid-template-columns:repeat(5, 1fr); gap:12px; margin:14px 0; } .seo-kpis.quatro { grid-template-columns:repeat(4, 1fr); } @media (max-width:1100px) { .seo-kpis, .seo-kpis.quatro { grid-template-columns:repeat(2, 1fr); } }
.seo-kpi { background:var(--s-painel); border:1px solid var(--s-linha); border-radius:14px; padding:14px 14px; text-align:center; position:relative; overflow:hidden; box-shadow:var(--s-sombra); }
.seo-kpi:before { content:""; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg, #E00878, #ff7cc0); }
.seo.escuro .seo-kpi:before { height:0; } .seo.escuro .seo-kpi { background:linear-gradient(180deg, #27232b, #1f1c22); }
.seo-kpi .ic { font-size:22px; } .seo-kpi .l { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--s-muted); margin:4px 0 2px; }
.seo-kpi .v { font-size:36px; font-weight:800; line-height:1; letter-spacing:-1px; color:var(--s-cinza); } .seo-kpi .v .de { font-size:18px; color:var(--s-muted); font-weight:600; }
.seo-kpi .d { font-size:16px; font-weight:700; color:var(--s-rosa2); margin-top:4px; } .seo-kpi .d.up { color:var(--verde); } .seo-kpi .d.down { color:var(--vermelho); } .seo-kpi .d.amarelo { color:#b7791f; } .seo.escuro .seo-kpi .d.amarelo { color:#ffd166; }
.seo-kpi .s { font-size:11px; color:var(--s-muted); margin-top:2px; }
.seo-tabs { display:flex; gap:4px; flex-wrap:wrap; margin:4px 0 12px; } .seo-tabs button { border:1px solid var(--s-linha); background:var(--s-painel); color:var(--s-muted); border-radius:999px; padding:6px 14px; font:inherit; font-size:13px; font-weight:600; cursor:pointer; } .seo-tabs button.ativo { background:var(--s-rosa); border-color:var(--s-rosa); color:#fff; }
.seo-sec { display:none; } .seo-sec.ativo { display:block; }
.seo-row { display:grid; grid-template-columns:1.15fr 1fr; gap:12px; margin-bottom:12px; } @media (max-width:1100px) { .seo-row { grid-template-columns:1fr; } }
.seo-card { background:var(--s-painel); border:1px solid var(--s-linha); border-radius:14px; padding:14px 18px; box-shadow:var(--s-sombra); margin-bottom:12px; } .seo-card.rosa { border-left:4px solid var(--s-rosa); }
.seo-card h3 { margin:0; font-size:15px; letter-spacing:.6px; color:var(--s-texto); display:flex; align-items:center; gap:8px; flex-wrap:wrap; } .seo-card .sub { color:var(--s-muted); font-size:12px; margin:2px 0 8px; }
.seo-badge { display:inline-block; font-size:11px; border-radius:999px; padding:2px 9px; border:1px solid #b7791f; color:#b7791f; background:#fff6d6; font-weight:600; } .seo-badge.ok { border-color:var(--verde); color:#0f7a4c; background:#d7f8e8; } .seo-badge.aviso { border-color:#b7791f; } .seo-badge.mau { border-color:#b3261e; color:#b3261e; background:#fde2e1; } .seo-badge.rosa { border-color:var(--s-rosa); color:var(--s-rosa); background:#fde7f2; }
.seo-leg { display:inline-flex; align-items:center; gap:8px; background:#fde7f2; border:1px solid var(--s-linha); border-radius:10px; padding:6px 12px; font-size:12px; margin-top:6px; color:#2b2b2b; } .seo-leg i { width:9px; height:9px; border-radius:50%; background:var(--s-rosa); }
.seo-barra { height:12px; background:var(--s-barra); border-radius:6px; overflow:hidden; display:flex; margin:6px 0 8px; } .seo-barra i { display:block; height:100%; } .seo-barra .f13 { background:var(--verde); } .seo-barra .f410 { background:var(--s-rosa); } .seo-barra .f1120 { background:#e6b422; } .seo-barra .fx, .seo-barra .f20 { background:#bbb; }
.seo-tab { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; } .seo-tab th { text-align:left; background:var(--s-tab); color:var(--s-muted); padding:7px 9px; font-size:11px; letter-spacing:.8px; text-transform:uppercase; } .seo-tab td { padding:7px 9px; border-top:1px solid var(--s-linha); vertical-align:top; color:var(--s-texto); } .seo-tab td a { color:var(--s-rosa2); }
.seo-pos { display:inline-block; background:var(--s-rosa); color:#fff; font-weight:800; border-radius:6px; padding:1px 8px; font-size:12px; }
.seo-nota { display:inline-block; min-width:32px; text-align:center; border-radius:6px; padding:1px 6px; font-weight:800; font-size:12px; } .seo-nota.v { background:#d7f8e8; color:#0f7a4c; } .seo-nota.a { background:#fff6d6; color:#8a6100; } .seo-nota.r { background:#fde2e1; color:#b3261e; } .seo-nota.cat { background:#eee; color:#666; font-weight:600; }
.seo-lista { margin:6px 0 0 18px; padding:0; } .seo-lista li { margin:4px 0; }
.seo-vazio { color:var(--s-muted); font-size:13px; padding:14px; border:1px dashed var(--s-linha); border-radius:10px; }
.seo-svg { width:100%; height:auto; display:block; } .seo-svg .g { stroke:var(--s-linha); stroke-width:1; } .seo-svg .t { fill:var(--s-muted); font-size:11px; } .seo-svg .t.rosa { fill:var(--s-rosa2); font-size:13px; font-weight:700; } .seo-svg .linha { fill:none; stroke:var(--s-rosa2); stroke-width:3; } .seo-svg .pt { fill:#fff; stroke:var(--s-rosa2); stroke-width:2.5; }


/* ============================================================ layout "360" (15/10/2026): cabeçalho por ecrã, cartões grandes, cores por módulo, tema escuro */
:root { --m-orcamentos:#E00878; --m-orcamentos-c:#fde7f2; --m-enc_online:#1a56db; --m-enc_online-c:#e8f0fe; --m-concorrencia:#e07b00; --m-concorrencia-c:#fff1e0;
        --m-catalogo:#0f8a7a; --m-catalogo-c:#e0f5f2; --m-reativacao:#6d28d9; --m-reativacao-c:#efe7fd; --m-admin:#484848; --m-admin-c:#ededed; --m-encomendas:#1a56db; --m-encomendas-c:#e8f0fe; --m-armazem:#0f8a7a; --m-armazem-c:#e0f5f2; }
.cab360 { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:linear-gradient(90deg, var(--card), var(--rosa-claro)); border:1px solid rgba(224,8,120,.35); border-radius:14px; padding:10px 16px; box-shadow:0 4px 16px rgba(72,72,72,.08); margin-bottom:14px; }
.cab360 .t { display:flex; align-items:center; gap:12px; } .cab360 .ic { width:42px; height:42px; border-radius:12px; background:linear-gradient(135deg, var(--c, var(--rosa)), color-mix(in srgb, var(--c, var(--rosa)) 60%, #000)); display:flex; align-items:center; justify-content:center; font-size:21px; color:#fff; flex:none; }
.cab360 h2 { margin:0; font-size:22px; letter-spacing:.3px; line-height:1.05; color:var(--texto); } .cab360 small { display:block; font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:var(--texto-2); margin-top:3px; }
.cab360 .pills { display:flex; gap:8px; flex-wrap:wrap; align-items:center; } .cab360 .pill { border:1px solid var(--cinza-2); background:var(--card); border-radius:999px; padding:5px 12px; font-size:12px; color:var(--texto); } .cab360 .pill.rosa { background:var(--rosa); border-color:var(--rosa); color:#fff; } .cab360 .pill.amarelo { background:var(--amarelo-claro); color:#8a6100; border-color:#f3e4a8; } .cab360 .pill.verde { background:var(--verde-claro); color:var(--verde); border-color:#b7e4c7; } .cab360 .pill.vermelho { background:#fde2e1; color:var(--vermelho); border-color:#f5b5b2; }
/* cartões de números (todos os módulos): formato grande com barra colorida no topo */
.kpi { text-align:center; border-top:4px solid var(--rosa); border-radius:12px; padding:14px 12px 12px; }
.kpi .v, .kpi > b { display:block; font-size:30px; font-weight:800; line-height:1.05; letter-spacing:-.5px; color:var(--texto); }
.kpi .l, .kpi > span { display:block; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--texto-2); margin-top:4px; font-weight:600; }
.kpi .d { font-size:14px; font-weight:700; color:var(--rosa); margin-top:4px; } .kpi .d.up { color:var(--verde); } .kpi .d.down { color:var(--vermelho); } .kpi .d.am { color:#b7791f; } .kpi .s { font-size:11px; color:var(--texto-2); margin-top:2px; }
.kpi.verde { border-top-color:var(--verde); } .kpi.amarelo { border-top-color:var(--amarelo); } .kpi.vermelho { border-top-color:var(--vermelho); } .kpi.azul { border-top-color:#1a56db; }
.conc-kpi b { color:var(--texto); font-size:30px; } .conc-kpi.verde b { color:var(--verde); } .conc-kpi.vermelho b { color:var(--vermelho); } .conc-kpi.amarelo b { color:#b7791f; }
.kpi.an { text-align:left; border-radius:12px; } .kpi.an .l { text-transform:none; letter-spacing:0; font-size:13px; }
/* início: um cartão por módulo, cada um com a sua cor de fundo */
.inicio-cards .card { border-top:5px solid var(--c, var(--rosa)); background:linear-gradient(180deg, var(--cc, #fff) 0%, var(--card) 60%); position:relative; }
.inicio-cards .card h3 { align-items:center; } .inicio-cards .mod-ic { display:inline-flex; width:34px; height:34px; border-radius:10px; background:var(--c, var(--rosa)); color:#fff; align-items:center; justify-content:center; font-size:18px; flex:none; }
.inicio-cards .card .kpis { display:grid; grid-template-columns:repeat(3, 1fr); gap:8px; margin-top:12px; }
.inicio-cards .kpi { background:var(--card); border-top:3px solid var(--c, var(--rosa)); padding:10px 6px; box-shadow:none; border:1px solid var(--cinza-2); border-top-width:3px; }
.inicio-cards .kpi b { font-size:24px; color:var(--c, var(--rosa)); } .inicio-cards .kpi span { font-size:10px; letter-spacing:.6px; }
.inicio-cards .card .btn.primario { background:var(--c, var(--rosa)); border-color:var(--c, var(--rosa)); }
.inicio-cards .card[data-mod="orcamentos"], .lateral a[data-mod="orcamentos"], .cab360[data-mod="orcamentos"] { --c:var(--m-orcamentos); --cc:var(--m-orcamentos-c); }
.inicio-cards .card[data-mod="enc_online"], .lateral a[data-mod="enc_online"], .cab360[data-mod="enc_online"] { --c:var(--m-enc_online); --cc:var(--m-enc_online-c); }
.inicio-cards .card[data-mod="concorrencia"], .lateral a[data-mod="concorrencia"], .cab360[data-mod="concorrencia"] { --c:var(--m-concorrencia); --cc:var(--m-concorrencia-c); }
.inicio-cards .card[data-mod="catalogo"], .lateral a[data-mod="catalogo"], .cab360[data-mod="catalogo"] { --c:var(--m-catalogo); --cc:var(--m-catalogo-c); }
.inicio-cards .card[data-mod="admin"], .lateral a[data-mod="admin"], .cab360[data-mod="admin"] { --c:var(--m-admin); --cc:var(--m-admin-c); }
.inicio-cards .card[data-mod="encomendas"], .lateral a[data-mod="encomendas"] { --c:var(--m-encomendas); --cc:var(--m-encomendas-c); }
.inicio-cards .card[data-mod="armazem"], .lateral a[data-mod="armazem"] { --c:var(--m-armazem); --cc:var(--m-armazem-c); }
.inicio-cards .card[data-mod="blog"], .lateral a[data-mod="blog"], .cab360[data-mod="blog"] { --c:var(--m-blog); --cc:var(--m-blog-c); }
.inicio-cards .card[data-mod="reativacao"], .lateral a[data-mod="reativacao"], .cab360[data-mod="reativacao"] { --c:var(--m-reativacao); --cc:var(--m-reativacao-c); }
/* módulo Blog (19/10/2026) */
:root { --m-blog:#b8005f; --m-blog-c:#ffe3f0; --m-artigos:#0b7285; --m-artigos-c:#dff4f8; --m-infra:#5b5bd6; --m-infra-c:#e9e9fb; }
.inicio-cards .card[data-mod="infra"], .lateral a[data-mod="infra"], .cab360[data-mod="infra"] { --c:var(--m-infra); --cc:var(--m-infra-c); }
body.escuro { --m-infra-c:#23234d; }
/* módulo Atendimento (04/11/2026) */
:root { --m-atendimento:#0e7c86; --m-atendimento-c:#dff5f7; }
.inicio-cards .card[data-mod="atendimento"], .lateral a[data-mod="atendimento"], .cab360[data-mod="atendimento"] { --c:var(--m-atendimento); --cc:var(--m-atendimento-c); }
body.escuro { --m-atendimento-c:#0f3a3f; }
.at-grid { display:grid; grid-template-columns:minmax(280px,1fr) minmax(320px,1.2fr); gap:14px } @media (max-width:980px) { .at-grid { grid-template-columns:1fr } }
.at-conv { display:flex; flex-direction:column; gap:8px; max-height:460px; overflow:auto; padding:4px 2px }
.at-msg { max-width:88%; padding:8px 12px; border-radius:12px; font-size:13px; white-space:pre-wrap; line-height:1.4 }
.at-msg.cliente { align-self:flex-start; background:var(--cinza-1); border-bottom-left-radius:2px }
.at-msg.assistente { align-self:flex-end; background:var(--m-atendimento-c); border-bottom-right-radius:2px }
.at-msg.sistema { align-self:center; background:#fff4e0; color:#c77700; font-size:12px; border-radius:8px } body.escuro .at-msg.sistema { background:#3d2a05 }
.at-msg .fonte { display:block; margin-top:4px; font-size:11px; color:var(--muted) }
.at-entrada { display:flex; gap:8px; margin-top:10px } .at-entrada input { flex:1; font:inherit; padding:9px 12px; border:1px solid var(--linha); border-radius:8px; background:var(--painel); color:var(--texto) }
.at-sug { display:flex; gap:6px; flex-wrap:wrap; margin:8px 0 } .at-sug button { font-size:12px; padding:3px 10px; border-radius:999px }
.at-lista tr.sel td { background:var(--m-atendimento-c) } .at-lista td { cursor:pointer }
.at-chip { display:inline-block; border-radius:999px; padding:2px 8px; font-size:11px; font-weight:700; white-space:nowrap; background:var(--cinza-1); color:var(--cinza-3) }
.at-chip.respondida, .at-chip.tratada { background:#e6f6ec; color:#1f9d57 } .at-chip.equipa { background:#fff4e0; color:#c77700 } .at-chip.recusada { background:#fdecea; color:#c62828 }
.at-regras textarea, .at-regras input[type=text] { width:100%; font:inherit; padding:6px 8px; border:1px solid var(--linha); border-radius:8px; background:var(--painel); color:var(--texto) } .at-regras textarea { min-height:70px }
.at-regras label { display:block; font-weight:600; margin:10px 0 4px }
/* módulo Infraestrutura */
.inf-mapa { display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px } @media (max-width:1100px) { .inf-mapa { grid-template-columns:1fr } }
.inf-camada { --tint:#efe7fd; --tint-fg:#5b5bd6; border:1px solid var(--linha); border-radius:18px; padding:12px 12px 6px; background:linear-gradient(180deg, var(--tint) 0, transparent 72px), var(--painel) }
.inf-camada.cam-nuvem { --tint:#e3ecfb; --tint-fg:#1f5fbf } .inf-camada.cam-externo { --tint:#fff1e0; --tint-fg:#b45309 }
body.escuro .inf-camada { --tint:#2a1f4d } body.escuro .inf-camada.cam-nuvem { --tint:#17254a } body.escuro .inf-camada.cam-externo { --tint:#3d2a10 }
.inf-camada-cab { display:flex; align-items:center; gap:8px; margin:2px 4px 12px } .inf-camada-cab h4 { margin:0; font-size:12px; letter-spacing:1.6px; text-transform:uppercase; color:var(--tint-fg); flex:1 }
.inf-camada-ic { width:28px; height:28px; border-radius:8px; background:var(--painel); display:flex; align-items:center; justify-content:center; font-size:15px; box-shadow:var(--sombra) } .inf-camada-cont { font-size:11.5px; color:var(--muted) }
.inf-card { display:flex; gap:12px; align-items:flex-start; padding:12px 14px 12px 16px; margin-bottom:10px; border-radius:14px; border:1px solid var(--linha); background:var(--painel); color:var(--texto); text-decoration:none; position:relative; overflow:hidden; transition:transform .12s, box-shadow .12s }
.inf-card:before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--linha) } .inf-card.ok:before { background:var(--verde) } .inf-card.aviso:before { background:#e6b422 } .inf-card.mal:before { background:var(--vermelho) }
.inf-card:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(72,72,72,.12); border-color:var(--tint-fg) }
.inf-ic { flex:none; width:42px; height:42px; border-radius:12px; background:var(--tint); display:flex; align-items:center; justify-content:center; font-size:21px }
.inf-body { min-width:0; flex:1 } .inf-top { display:flex; justify-content:space-between; align-items:center; gap:8px } .inf-nome { font-weight:700; font-size:14px; line-height:1.25 }
.inf-est { flex:none; display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; border-radius:999px; padding:2px 9px 2px 7px; background:var(--barra); color:var(--muted) } .inf-est i { width:8px; height:8px; border-radius:50%; background:var(--muted); display:inline-block }
.inf-est.est-ok { background:var(--verde-claro); color:var(--verde) } .inf-est.est-ok i { background:var(--verde) } .inf-est.est-aviso { background:var(--amarelo-claro, #fff6cc); color:var(--amarelo, #8a6d00) } .inf-est.est-aviso i { background:#e6b422 }
.inf-est.est-mal { background:var(--vermelho-claro, #fde3e1); color:var(--vermelho) } .inf-est.est-mal i { background:var(--vermelho) }
.inf-chips { margin-top:7px; display:flex; flex-wrap:wrap; gap:5px } .inf-chips .chip { font-size:12px; line-height:1.3; padding:3px 8px; border-radius:7px; background:var(--tab); color:var(--muted) } .inf-chips .chip.principal { color:var(--texto); font-weight:600; background:var(--tint) }
.inf-camada h4 { margin:0 0 8px; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--muted) }
.inf-no { display:block; border:1px solid var(--linha); border-left:5px solid var(--linha); border-radius:10px; padding:8px 10px; margin-bottom:8px; background:var(--painel); color:var(--texto); text-decoration:none } .inf-no:hover { border-color:var(--m-infra) }
.inf-no.ok { border-left-color:var(--verde) } .inf-no.aviso { border-left-color:#e6b422 } .inf-no.mal { border-left-color:var(--vermelho) } .inf-no.desc, .inf-no.info { border-left-color:var(--linha) }
.inf-no .n { display:flex; justify-content:space-between; align-items:center; gap:6px; font-weight:700; font-size:13px } .inf-no .d { font-size:11.5px; color:var(--muted); margin-top:2px }
.inf-seta { color:var(--m-infra); font-weight:800; text-align:center }
.inf-nota { display:inline-block; min-width:56px; text-align:center; border-radius:10px; padding:6px 10px; font-weight:800; font-size:24px }
.inf-prio { display:inline-block; width:22px; height:22px; border-radius:6px; text-align:center; line-height:22px; font-weight:800; font-size:12px; color:#fff; background:var(--muted) } .inf-prio.p1 { background:var(--vermelho) } .inf-prio.p2 { background:#e6b422 } .inf-prio.p3 { background:var(--azul, #1f5fbf) }
.inf-tempo { border-left:2px solid var(--linha); margin-left:8px; padding-left:14px } .inf-tempo div { position:relative; padding:4px 0 10px; font-size:13px } .inf-tempo div:before { content:""; position:absolute; left:-20px; top:9px; width:10px; height:10px; border-radius:50%; background:var(--m-infra) } .inf-tempo small { color:var(--muted); display:block }
.tag.amar { background:var(--amarelo-claro, #fff6cc); color:var(--amarelo, #8a6d00) }
.inf-nowrap { white-space:nowrap } table.inf-registo td:nth-child(4) { min-width:260px }
.inf-estado-sel { font:inherit; font-size:12px; font-weight:700; width:auto; min-width:132px; display:inline-block; padding:4px 26px 4px 10px; border-radius:999px; border:1px solid var(--linha); background:var(--painel); color:var(--texto); cursor:pointer; appearance:none; -webkit-appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23666' stroke-width='1.5'/></svg>"); background-repeat:no-repeat; background-position:right 9px center; vertical-align:middle }
.inf-estado-sel.e-amar { background-color:var(--amarelo-claro, #fff6cc); color:var(--amarelo, #8a6d00); border-color:transparent } .inf-estado-sel.e-ok { background-color:var(--verde-claro); color:var(--verde); border-color:transparent }
.inf-estado-sel.e-azul { background-color:var(--azul-claro, #e3ecfb); color:var(--azul, #1f5fbf); border-color:transparent } .inf-estado-sel.e-verm { background-color:var(--vermelho-claro, #fde3e1); color:var(--vermelho); border-color:transparent } .inf-estado-sel.e-cinza { background-color:var(--barra); color:var(--muted); border-color:transparent }
.inf-estado-sel option { color:var(--texto); background:var(--painel); font-weight:400 }
.inf-apagar { padding:2px 7px; font-size:12px; color:var(--muted); vertical-align:middle; margin-left:4px } .inf-apagar:hover { color:var(--vermelho); border-color:var(--vermelho) }
.inicio-cards .card[data-mod="artigos"], .lateral a[data-mod="artigos"], .cab360[data-mod="artigos"] { --c:var(--m-artigos); --cc:var(--m-artigos-c); }
body.escuro { --m-artigos-c:#0f3340; }
/* módulo Artigos */
.art-row { cursor:pointer } .art-row:hover td { background:var(--cc, #f3f3f3) } .art-sem-foto { display:inline-block; color:var(--muted); font-size:11px }
.art-cab { display:grid; grid-template-columns:140px 1fr auto; gap:16px; align-items:start } @media (max-width:900px) { .art-cab { grid-template-columns:1fr } }
.art-foto img { width:140px; height:140px; object-fit:contain; border:1px solid var(--linha); border-radius:10px; background:#fff } .art-foto .art-sem-foto { width:140px; height:140px; display:flex; align-items:center; justify-content:center; border:1px dashed var(--linha); border-radius:10px }
.art-tabs { display:flex; gap:4px; flex-wrap:wrap; border-bottom:2px solid var(--linha); margin:4px 0 12px } .art-tabs span { padding:8px 14px; font-size:13px; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px } .art-tabs span.ativo { color:var(--m-artigos); border-color:var(--m-artigos); font-weight:700 }
.art-dl { display:grid; grid-template-columns:minmax(160px, 38%) 1fr; gap:0 12px; margin:0; font-size:13px } .art-dl dt { color:var(--muted); padding:5px 0; border-bottom:1px dashed var(--linha); overflow-wrap:anywhere } .art-dl dd { margin:0; padding:5px 0; border-bottom:1px dashed var(--linha); overflow-wrap:anywhere }
.art-pre { white-space:pre-wrap; font-size:13px; line-height:1.45; max-height:420px; overflow:auto }
.art-barras { display:flex; align-items:flex-end; gap:4px; height:140px; padding:4px 0 } .art-barra { flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; font-size:10px; color:var(--muted) } .art-barra i { display:block; width:100%; background:var(--m-artigos); border-radius:3px 3px 0 0; min-height:1px } .art-barra span { margin-top:3px; line-height:1.1; text-align:center }
.art-fotos img { width:220px; height:220px; object-fit:contain; border:1px solid var(--linha); border-radius:8px; background:#fff; margin:0 6px 6px 0 }
tr.art-exp td { background:var(--vermelho-claro, #fde3e1) } tr.art-bloq td { opacity:.55; text-decoration:line-through } tr.art-nc td { color:var(--vermelho) } tr.art-vazio td { color:var(--muted) }
table.art-todos td:last-child { max-width:600px; overflow-wrap:anywhere }
.art-galeria { display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:14px }
.art-mcard { border:1px solid var(--linha); border-radius:12px; padding:8px; background:var(--painel); display:flex; flex-direction:column; gap:6px } .art-mcard.principal { border-color:var(--m-artigos); box-shadow:0 0 0 2px var(--m-artigos-c) }
.art-mcard img { width:100%; height:300px; object-fit:contain; background:#fff; border-radius:8px; border:1px solid var(--linha) } .art-mcard.a-arrastar { opacity:.4 } .art-mcard.alvo { outline:2px dashed var(--m-artigos) }
.art-minfo { font-size:12px; display:flex; gap:4px; flex-wrap:wrap; align-items:center } .art-alt { width:100%; font:inherit; font-size:12px; padding:4px 6px; border:1px solid var(--linha); border-radius:6px; background:var(--painel); color:var(--texto) }
.art-macoes { display:flex; gap:4px; flex-wrap:wrap } .art-macoes .btn { padding:2px 8px; font-size:12px }
.art-crm { display:inline-block; background:var(--m-artigos-c); color:var(--m-artigos); border-radius:6px; padding:1px 7px; font-size:11px; font-weight:700; margin-left:6px }
.art-phc-antigo { color:var(--muted); text-decoration:line-through; font-size:12px; display:block }
.art-form { display:grid; grid-template-columns:minmax(220px, 30%) 1fr; gap:8px 14px; align-items:start; font-size:13px } .art-form label { color:var(--muted); padding-top:6px } .art-form label small { display:block; color:var(--muted); font-weight:400 }
.art-form input[type=text], .art-form input[type=number], .art-form select, .art-form textarea { width:100%; max-width:720px; font:inherit; padding:6px 8px; border:1px solid var(--linha); border-radius:8px; background:var(--painel); color:var(--texto) } .art-form textarea { min-height:90px }
.art-form .phc { font-size:11px; color:var(--muted); margin-top:3px } .art-form .mudou input, .art-form .mudou textarea, .art-form .mudou select { border-color:var(--m-artigos); box-shadow:0 0 0 2px var(--m-artigos-c) }
.art-guardar { position:sticky; bottom:0; background:var(--painel); border-top:1px solid var(--linha); padding:10px 0; display:flex; gap:8px; align-items:center; z-index:2 }
body.escuro { --m-blog-c:#3a1230; }
.blog-est { display:inline-block; border-radius:999px; padding:2px 9px; font-size:11px; font-weight:700; white-space:nowrap; background:var(--cinza-1); color:var(--cinza-3); }
.blog-est.a_escrever { background:#efe7fd; color:#6d28d9; } .blog-est.rascunho { background:#eee; color:#555; } .blog-est.revisao_editorial, .blog-est.revisao_clinica { background:var(--amarelo-claro); color:#8a6100; }
.blog-est.aprovado { background:#e8f0fe; color:#1a56db; } .blog-est.publicado { background:var(--verde-claro); color:var(--verde); } .blog-est.erro { background:var(--vermelho-claro, #fde2e1); color:var(--vermelho, #b3261e); } .blog-est.ideia { background:#fff1e0; color:#b45309; }
.blog-cat { display:inline-block; border-radius:999px; padding:2px 9px; font-size:11px; font-weight:700; white-space:nowrap; background:color-mix(in srgb, var(--cc, #E00878) 18%, transparent); color:var(--cc, #E00878); }
.blog-editor { display:grid; grid-template-columns:1fr 340px; gap:12px; } @media (max-width:1100px) { .blog-editor { grid-template-columns:1fr; } }
.blog-ferr { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 6px; }
.blog-check { list-style:none; padding:0; margin:0; } .blog-check li { padding:4px 0; font-size:13px; } .blog-check li:before { content:"✓ "; color:var(--verde); font-weight:800; } .blog-check li.erro:before { content:"✕ "; color:var(--vermelho, #b3261e); } .blog-check li.aviso:before { content:"! "; color:#8a6100; }
.blog-lista { list-style:none; padding:0; margin:0; } .blog-lista li { padding:5px 0; border-bottom:1px solid var(--linha, #e3dde1); font-size:13px; } .blog-lista li:last-child { border-bottom:0; }
.blog-ref { display:inline-block; border-radius:6px; padding:1px 6px; font-size:11px; background:#eee; margin:2px 2px 0 0; } .blog-ref.ok { background:var(--verde-claro); color:var(--verde); } .blog-ref.erro { background:var(--vermelho-claro, #fde2e1); color:var(--vermelho, #b3261e); }
.blog-imgs { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:10px; max-height:420px; overflow:auto; } .blog-img { border:1px solid var(--linha, #e3dde1); border-radius:10px; padding:6px; display:flex; flex-direction:column; gap:4px; } .blog-img img { width:100%; height:110px; object-fit:cover; border-radius:6px; }
.blog-chips { display:flex; gap:6px; flex-wrap:wrap; align-items:center; } .blog-chips span { display:inline-block; background:var(--cinza-1); border:1px solid var(--cinza-2); border-radius:999px; padding:4px 12px; font-size:12px; cursor:pointer; } .blog-chips span.on { background:var(--rosa); color:#fff; border-color:var(--rosa); }
body.escuro .blog-est.rascunho { background:#2a2630; color:#d9d0d6; } body.escuro .blog-chips span { background:#2a2630; border-color:#4a4450; color:#f3eef1; } body.escuro .blog-chips span.on { background:var(--rosa); }
.cab360[data-mod] { background:linear-gradient(90deg, var(--card), var(--cc, var(--rosa-claro))); border-color:color-mix(in srgb, var(--c, var(--rosa)) 40%, transparent); }
.lateral a[data-mod] .ic { width:24px; height:24px; border-radius:7px; background:var(--c, var(--rosa)); display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
.lateral a.ativo[data-mod] { background:var(--c, var(--rosa)); } .lateral a.ativo[data-mod] .ic { background:rgba(255,255,255,.25); }
.lateral .cont { margin-left:auto; background:rgba(255,255,255,.22); color:#fff; border-radius:999px; padding:1px 8px; font-size:11px; font-weight:800; } .lateral a.ativo .cont { background:rgba(0,0,0,.25); }
.topbar .btn-tema { margin-left:8px; }
/* tema escuro para todo o CRM (botão na barra de topo; guardado no browser) */
body.escuro { --cinza-1:#141216; --card:#1f1c22; --cinza-2:#3a3540; --cinza-3:#8f868c; --texto:#f3eef1; --texto-2:#b9b0b6; --rosa-claro:#3a1230; --verde-claro:#123b2a; --amarelo-claro:#3a2f10; --sombra:0 0 18px rgba(224,8,120,.10);
  --m-orcamentos-c:#3a1230; --m-enc_online-c:#17254a; --m-concorrencia-c:#3d2a10; --m-catalogo-c:#0f332e; --m-reativacao-c:#2a1a4d; --m-admin-c:#2a2630; --m-encomendas-c:#17254a; --m-armazem-c:#0f332e; }
body.escuro { background:radial-gradient(1200px 600px at 15% -10%, #3a1230 0%, transparent 60%), var(--cinza-1); }
body.escuro .topbar { background:#1b1820; border-color:#3a3540; } body.escuro .brand-tag, body.escuro .modulo-titulo, body.escuro .user { color:#f3eef1; } body.escuro .brand-logo { filter:brightness(1.6); }
body.escuro .btn { background:#2a2630; color:#f3eef1; border-color:#4a4450; } body.escuro .btn:hover { background:#36303c; } body.escuro .btn.primario { background:var(--rosa); border-color:var(--rosa); color:#fff; } body.escuro .btn.verde { background:var(--verde); border-color:var(--verde); }
body.escuro input[type=text], body.escuro input[type=number], body.escuro input[type=email], body.escuro input[type=password], body.escuro input[type=date], body.escuro input[type=search], body.escuro select, body.escuro textarea { background:#2a2630; color:#f3eef1; border-color:#4a4450; }
body.escuro table.lista { background:var(--card); } body.escuro table.lista th { background:#2a2630; color:#f3eef1; border-color:#3a3540; } body.escuro table.lista td { border-color:#3a3540; } body.escuro table.lista tbody tr:nth-child(even) td { background:#24202a; } body.escuro table.lista tr:hover td { background:#3a1230; }
body.escuro .kpi, body.escuro .inicio-cards .kpi { background:linear-gradient(180deg, #27232b, #1f1c22); } body.escuro .inicio-cards .card { background:linear-gradient(180deg, var(--cc) 0%, var(--card) 60%); }
body.escuro .pedido { border-color:#3a3540; } body.escuro .pedido.ativo { background:#3a1230; } body.escuro .modal { background:#1f1c22; color:#f3eef1; } body.escuro .email-edit { background:#2a2630; border-color:#4a4450; } body.escuro .ocupado-caixa { background:#1f1c22; }
body.escuro .seguimento { background:#3a2f10; border-color:#5a4a1a; color:#f3eef1; } body.escuro .aviso { background:#3a2f10; border-color:#5a4a1a; color:#ffd166; } body.escuro .badge { background:#3a3540; color:#d9d0d6; }
body.escuro .badge.enviado { background:#17254a; color:#9db8ff; } body.escuro .badge.a_esclarecer { background:#3a2f10; color:#ffd166; } body.escuro .badge.recebido, body.escuro .badge.cliente_respondeu { background:#3b2212; color:#ffb479; } body.escuro .badge.aceite, body.escuro .badge.resolvido { background:#123b2a; color:#6ee7a8; }
body.escuro .lista-topo .seg .btn { background:#2a2630; } body.escuro .an-filtros .chip { background:#2a2630; color:#d9d0d6; border-color:#4a4450; } body.escuro .an-filtros .chip.on { background:var(--rosa); color:#fff; }
body.escuro .nota-seo, body.escuro .nivel { filter:brightness(.9); } body.escuro .muted { color:#b9b0b6; }

/* "o que está a acontecer": cartão ao centro para chamadas que demoram mais de 600 ms (não bloqueia; o ecrã continua utilizável) */
.espera { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none; align-items: center; gap: 14px; background: var(--card); color: var(--texto); border: 1px solid var(--cinza-2); border-left: 5px solid var(--rosa); border-radius: 14px; padding: 14px 20px; box-shadow: 0 12px 40px rgba(0,0,0,.22); z-index: 40; pointer-events: none; min-width: 300px; max-width: 520px; font-size: 14px; }
.espera.on { display: flex; }
.espera .spinner { width: 30px; height: 30px; border-width: 3px; margin: 0; flex: none; }
.espera b { font-size: 15px; }
body.escuro .espera { box-shadow: 0 12px 40px rgba(0,0,0,.6); }

/* ------------------------------------------------------------- reativação de clientes */
.reat-seg { display:inline-block; border-radius:999px; padding:2px 9px; font-size:11px; font-weight:700; white-space:nowrap; }
.reat-seg.conta_chave { background:#111; color:#fff; } .reat-seg.b2b { background:var(--azul-claro, #e8f0fe); color:#1a56db; } .reat-seg.consumiveis { background:#ede9fe; color:#5b21b6; } .reat-seg.particular_recorrente, .reat-seg.particular_unico { background:var(--rosa-claro); color:var(--rosa); }
.reat-est { display:inline-block; border-radius:999px; padding:2px 9px; font-size:11px; font-weight:700; } .reat-est.ativo { background:var(--verde-claro); color:var(--verde); } .reat-est.risco { background:var(--amarelo-claro); color:#8a6100; } .reat-est.inativo { background:#ffe8d6; color:#b45309; } .reat-est.perdido { background:var(--cinza-1); color:var(--cinza-3); }
.reat-tipo { display:inline-block; border-radius:6px; padding:2px 8px; font-size:11px; font-weight:700; background:#fde7f2; color:var(--rosa); } .reat-tipo.chamada { background:#111; color:#fff; } .reat-tipo.email_reposicao { background:#ede9fe; color:#5b21b6; } .reat-tipo.email_orcamento { background:#e8f0fe; color:#1a56db; }
.reat-chips span { display:inline-block; background:var(--cinza-1); border:1px solid var(--cinza-2); border-radius:999px; padding:3px 10px; font-size:12px; margin:0 4px 4px 0; cursor:pointer; } .reat-chips span.on { background:var(--rosa); color:#fff; border-color:var(--rosa); }
.reat-timeline li { margin:4px 0; font-size:13px; } .reat-timeline .muted { font-size:12px; }
.reat-barra { height:12px; background:var(--cinza-1); border-radius:6px; overflow:hidden; display:flex; margin:6px 0; } .reat-barra i { display:block; height:100%; }
/* Início: números alinhados entre cartões (descrição com altura fixa, caixas iguais, "Abrir" sempre em baixo) · pedido do Eduardo 15/10 */
.inicio-cards { align-items:stretch; }
.inicio-cards .card { display:flex; flex-direction:column; min-height:282px; }
.inicio-cards .card h3 { height:36px; margin-bottom:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.inicio-cards .card > p:first-of-type { min-height:57px; margin:0; }
.inicio-cards .card .kpis { margin:12px 0 0; min-height:92px; align-items:stretch; }
.inicio-cards .kpi { min-height:88px; display:flex; flex-direction:column; justify-content:center; }
.inicio-cards .kpi b { line-height:1.05; } .inicio-cards .kpi span { line-height:1.2; min-height:24px; display:flex; align-items:center; justify-content:center; }
.inicio-cards .card > p:last-of-type { margin-top:auto !important; padding-top:12px; }
body.escuro .reat-seg.conta_chave { background:#000; } body.escuro .reat-est.inativo { background:#3b2212; color:#ffb479; } body.escuro .reat-chips span { background:#2a2630; border-color:#4a4450; color:#f3eef1; } body.escuro .reat-chips span.on { background:var(--rosa); }
.realce { outline: 3px solid var(--rosa) !important; outline-offset: 2px; transition: outline .3s; }
