:root {
    --vermelho: #c90f1c;
    --vermelho-escuro: #8f0710;
    --vermelho-claro: #fff0f1;
    --grafite: #11181d;
    --grafite-2: #1a2228;
    --texto: #172026;
    --texto-suave: #667078;
    --papel: #f5f2eb;
    --fundo: #f3f4f5;
    --branco: #fff;
    --linha: #dfe3e6;
    --verde: #168a58;
    --amarelo: #a46500;
    --azul: #2e64b6;
    --sombra: 0 18px 45px rgba(17, 24, 29, .08);
    --raio: 18px;
    --fonte: "Valley Sans", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--texto); background: var(--fundo); font-family: var(--fonte); font-size: 16px; font-weight: 400; line-height: 1.5; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 700; letter-spacing: -.035em; line-height: 1.08; }
strong, b { font-weight: 500; }
h1 { font-size: clamp(1.8rem, 3vw, 2.45rem); margin-bottom: .25rem; }
h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); margin-bottom: .5rem; }
h3 { font-size: 1.2rem; margin-bottom: .45rem; }
.icone { width: 1.2em; height: 1.2em; flex: 0 0 auto; }
.sobretitulo { margin: 0 0 .5rem; color: var(--vermelho); font-size: .72rem; font-weight: 700; letter-spacing: .15em; }
.sobretitulo.claro { color: #ffbdc2; }
.selo-marca { display: inline-flex; color: var(--vermelho); background: var(--vermelho-claro); border: 1px solid #f2c6ca; border-radius: 999px; padding: .45rem .75rem; font-size: .7rem; font-weight: 500; letter-spacing: .12em; }

/* Login */
.pagina-login { background: var(--papel); }
.login-cenario { min-height: 100vh; display: grid; grid-template-columns: minmax(420px, .95fr) minmax(440px, 1.05fr); }
.login-marca { position: relative; display: grid; place-items: center; overflow: hidden; padding: 4rem; color: #fff; background: radial-gradient(circle at 78% 30%, rgba(201,15,28,.45), transparent 30%), linear-gradient(145deg, #0d1419 0%, #1b1f23 62%, #590810 100%); }
.login-marca::before, .login-marca::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; }
.login-marca::before { width: 620px; height: 620px; right: -310px; top: -250px; box-shadow: 0 0 0 80px rgba(255,255,255,.02), 0 0 0 160px rgba(255,255,255,.015); }
.login-marca::after { width: 260px; height: 260px; left: -130px; bottom: -90px; box-shadow: 0 0 0 60px rgba(201,15,28,.08); }
.login-marca-conteudo { position: relative; z-index: 1; max-width: 610px; }
.logo-login { width: 245px; margin-bottom: 5rem; filter: brightness(0) invert(1); }
.login-marca h1 { max-width: 560px; margin-bottom: 1.35rem; font-size: clamp(2.8rem, 5vw, 5.2rem); }
.login-marca p:not(.sobretitulo) { max-width: 560px; color: #c9cfd3; font-size: 1.13rem; }
.login-recursos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; margin-top: 3rem; }
.login-recursos span { display: flex; align-items: center; gap: .65rem; padding: .85rem; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; color: #eef1f2; font-size: .84rem; }
.login-area { display: grid; align-content: center; justify-items: center; padding: 3rem; background: radial-gradient(circle at 20% 15%, rgba(201,15,28,.06), transparent 28%), var(--papel); }
.login-box { width: min(100%, 500px); padding: 2.6rem; background: #fff; border: 1px solid #dedbd3; border-top: 5px solid var(--vermelho); box-shadow: var(--sombra); }
.login-box-topo { margin-bottom: 1.8rem; }
.login-box-topo h2 { margin: 1rem 0 .4rem; }
.login-box-topo p { color: var(--texto-suave); }
.rodape-login { margin-top: 1.5rem; color: var(--texto-suave); font-size: .8rem; text-align: center; }
.ajuda-login { margin-top: 1.5rem; padding-top: 1.3rem; border-top: 1px solid var(--linha); font-size: .85rem; }
.ajuda-login p { margin: .25rem 0 0; color: var(--texto-suave); }
.ajuda-login a { color: var(--vermelho); font-weight: 500; }

/* Estrutura do painel */
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 276px minmax(0, 1fr); }
.barra-lateral { position: sticky; z-index: 40; top: 0; height: 100vh; display: flex; flex-direction: column; color: #eef0f1; background: var(--grafite); border-right: 1px solid rgba(255,255,255,.06); }
.barra-marca { min-height: 98px; display: grid; align-content: center; gap: .35rem; padding: 1.3rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.barra-marca img { width: 178px; filter: brightness(0) invert(1); }
.barra-marca span { color: #8f999f; font-size: .72rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.cliente-resumo { display: flex; align-items: center; gap: .8rem; margin: 1.3rem 1.1rem 1rem; padding: 1rem; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.04); }
.cliente-resumo div { min-width: 0; }
.cliente-resumo strong, .cliente-resumo small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cliente-resumo small { margin-top: .15rem; color: #919ba1; font-size: .75rem; }
.cliente-avatar { width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 auto; color: #fff; background: var(--vermelho); border-radius: 50%; font-weight: 500; box-shadow: 0 0 0 4px rgba(201,15,28,.16); }
.cliente-avatar.pequeno { width: 36px; height: 36px; font-size: .8rem; }
.cliente-avatar.grande { width: 64px; height: 64px; font-size: 1.35rem; }
.menu-principal { display: grid; gap: .3rem; padding: .5rem 1rem; }
.menu-principal a { position: relative; display: flex; align-items: center; gap: .85rem; min-height: 48px; padding: .75rem .85rem; border-radius: 10px; color: #aeb6bb; font-size: .92rem; font-weight: 500; transition: .18s ease; }
.menu-principal a:hover { color: #fff; background: rgba(255,255,255,.06); transform: translateX(2px); }
.menu-principal a.ativo { color: #fff; background: linear-gradient(90deg, var(--vermelho), #9f0914); box-shadow: 0 10px 24px rgba(201,15,28,.2); }
.menu-principal a.ativo::before { content: ""; position: absolute; left: -1rem; width: 3px; height: 26px; background: #fff; }
.menu-principal .icone { width: 19px; height: 19px; }
.menu-principal b { min-width: 23px; height: 23px; display: grid; place-items: center; margin-left: auto; padding: 0 .35rem; color: var(--vermelho); background: #fff; border-radius: 999px; font-size: .7rem; }
.barra-rodape { margin-top: auto; display: grid; gap: .8rem; padding: 1rem 1.2rem 1.35rem; border-top: 1px solid rgba(255,255,255,.08); }
.barra-rodape a { display: flex; align-items: center; gap: .65rem; color: #c4c9cc; font-size: .88rem; font-weight: 500; }
.barra-rodape a:hover { color: #fff; }
.barra-rodape small { color: #69747b; font-size: .68rem; }
.app-conteudo { min-width: 0; }
.topo-app { min-height: 98px; display: flex; align-items: center; gap: 1.5rem; padding: 1.25rem clamp(1.2rem, 3vw, 3.2rem); background: rgba(255,255,255,.94); border-bottom: 1px solid var(--linha); backdrop-filter: blur(10px); }
.topo-app h1 { margin: 0; font-size: 1.7rem; }
.topo-app .sobretitulo { margin-bottom: .2rem; }
.topo-acoes { display: flex; align-items: center; gap: .8rem; margin-left: auto; }
.menu-mobile { display: none; width: 44px; height: 44px; place-content: center; gap: 4px; background: #fff; border: 1px solid var(--linha); border-radius: 10px; }
.menu-mobile span { width: 19px; height: 2px; display: block; background: var(--grafite); }
.conteudo-principal { padding: clamp(1.2rem, 3vw, 3.2rem); }
.view-secao { display: none; animation: entrada .28s ease both; }
.view-secao.ativo { display: block; }
@keyframes entrada { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }
.cabecalho-secao { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.8rem; }
.cabecalho-secao h2 { margin: 0; }
.cabecalho-secao > p { max-width: 430px; margin: 0; color: var(--texto-suave); text-align: right; }

/* Componentes */
.cartao { padding: 1.55rem; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 9px 30px rgba(17,24,29,.045); }
.cartao-topo { display: flex; align-items: start; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.cartao-topo h3 { margin-bottom: 0; }
.grade-metricas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.15rem; }
.metrica { position: relative; min-height: 148px; display: flex; align-items: flex-start; gap: 1rem; padding: 1.35rem; overflow: hidden; background: #fff; border: 1px solid var(--linha); border-radius: 15px; }
.metrica::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #2a3339; }
.metrica.destaque-verde::before { background: var(--verde); }
.metrica.destaque-vermelho::before { background: var(--vermelho); }
.metrica-icone { width: 42px; height: 42px; display: inline-grid; place-items: center; flex: 0 0 auto; color: var(--vermelho); background: var(--vermelho-claro); border-radius: 12px; }
.metrica-icone.pequeno { width: 36px; height: 36px; }
.metrica small, .metrica strong, .metrica p { display: block; }
.metrica small { margin-bottom: .35rem; color: var(--texto-suave); font-size: .72rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.metrica strong { margin-bottom: .25rem; font-size: 1.35rem; line-height: 1.1; }
.metrica p { margin: 0; color: var(--texto-suave); font-size: .78rem; }
.grade-destaques { display: grid; grid-template-columns: 1.25fr 1fr; gap: 1.15rem; margin-bottom: 1.15rem; }
.grade-inferior { display: grid; grid-template-columns: 1.6fr .7fr; gap: 1.15rem; }
.radio-destaque { position: relative; overflow: hidden; color: #fff; background: radial-gradient(circle at 85% 15%, rgba(201,15,28,.55), transparent 28%), linear-gradient(125deg, #11181d, #24252a 62%, #630912); border: 0; }
.radio-destaque::after { content: ""; position: absolute; width: 270px; height: 270px; right: -110px; bottom: -180px; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; box-shadow: 0 0 0 50px rgba(255,255,255,.025); }
.radio-destaque > * { position: relative; z-index: 1; }
.radio-destaque h3 { font-size: 2rem; }
.radio-endereco { color: #cbd0d3; word-break: break-all; }
.radio-recursos { display: flex; flex-wrap: wrap; gap: .7rem; margin: 1.5rem 0; }
.radio-recursos span { display: flex; align-items: center; gap: .4rem; padding: .65rem .75rem; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); font-size: .78rem; }
.radio-recursos strong { color: #fff; }
.percentual { color: var(--vermelho); font-size: 1.35rem; }
.barra-progresso { height: 8px; margin-bottom: 1.15rem; overflow: hidden; background: #edf0f1; border-radius: 999px; }
.barra-progresso span { display: block; width: var(--progresso, 0%); height: 100%; background: linear-gradient(90deg, var(--vermelho), #ef4854); border-radius: inherit; transition: width .6s ease; }
.lista-etapas { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.lista-etapas li { display: flex; align-items: center; gap: .75rem; }
.lista-etapas li > span { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; background: #eff1f2; border: 1px solid #dfe3e5; border-radius: 50%; color: transparent; }
.lista-etapas li.concluida > span { color: #fff; background: var(--verde); border-color: var(--verde); }
.lista-etapas strong, .lista-etapas small { display: block; }
.lista-etapas small { color: var(--texto-suave); }
.suporte-rapido { background: var(--papel); border-color: #ddd6c8; }
.suporte-rapido .metrica-icone { margin-bottom: 1rem; }
.suporte-rapido p:not(.sobretitulo) { color: var(--texto-suave); }
.link-seta { display: inline-flex; align-items: center; gap: .2rem; color: var(--vermelho); font-size: .82rem; font-weight: 500; }
.link-seta:hover { color: var(--vermelho-escuro); }
.link-seta .icone { width: 15px; }
.badge { display: inline-flex; align-items: center; gap: .4rem; width: max-content; padding: .38rem .64rem; color: #59646b; background: #edf0f1; border-radius: 999px; font-size: .66rem; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.badge > span { width: 7px; height: 7px; background: currentColor; border-radius: 50%; }
.badge-ativo, .badge-pago { color: #11714a; background: #e2f6ed; }
.badge-pendente, .badge-em_aberto, .badge-aberto { color: #966000; background: #fff2d2; }
.badge-vencido, .badge-suspenso, .badge-urgente { color: #a20b17; background: #ffe4e6; }
.badge-cancelado, .badge-fechado { color: #687177; background: #e9ecee; }
.badge-em_atendimento { color: #245fa9; background: #e7f0ff; }
.badge-aguardando_cliente { color: #7553a4; background: #f1e9ff; }
.badge-alta { color: #a20b17; background: #ffe4e6; }
.badge-normal, .badge-baixa { color: #245fa9; background: #e7f0ff; }
.botao { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .7rem 1.05rem; border: 1px solid transparent; border-radius: 10px; cursor: pointer; font-size: .86rem; font-weight: 500; transition: .18s ease; }
.botao:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(17,24,29,.12); }
.botao-primario { color: #fff; background: var(--vermelho); border-color: var(--vermelho); }
.botao-primario:hover { background: var(--vermelho-escuro); border-color: var(--vermelho-escuro); }
.botao-contorno { color: var(--texto); background: #fff; border-color: #cfd5d8; }
.botao-contorno:hover { color: var(--vermelho); border-color: var(--vermelho); }
.botao-claro { color: var(--grafite); background: #fff; }
.botao-claro:hover { color: var(--vermelho); }
.botao-escuro { color: #fff; background: var(--grafite); }
.botao-escuro:hover { background: #000; }
.botao-sucesso { color: #fff; background: var(--verde); }
.botao-texto { min-height: 34px; color: var(--vermelho); background: transparent; }
.botao-pequeno { min-height: 34px; padding: .45rem .7rem; font-size: .74rem; }
.botao-largo { width: 100%; }
.kb-avaliacao { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--linha); scroll-margin-top: 6rem; }
.kb-avaliacao .cartao-topo { margin-bottom: .75rem; }
.kb-avaliacao-registrada { padding: .85rem 1rem; color: #155b3c; background: #eaf6ef; border-radius: 10px; }
.kb-estrelas-grupo { min-width: 0; padding: 0; margin: 0 0 1rem; border: 0; }
.kb-estrelas-grupo legend { margin-bottom: .5rem; font-size: .86rem; font-weight: 600; }
.kb-estrelas { display: flex; flex-wrap: nowrap; gap: .35rem; width: fit-content; max-width: 100%; }
.kb-estrela { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 44px; min-height: 58px; gap: .2rem; padding: .35rem; color: #788188; border: 1px solid #d1d7da; border-radius: 10px; background: #fff; cursor: pointer; }
.kb-estrela input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.kb-estrela .icone { width: 1.8rem; height: 1.8rem; }
.kb-estrela > span { font-size: .72rem; }
.kb-estrela.preenchida, .kb-estrela:has(input:checked) { color: #815600; background: #fff7df; border-color: #d2a547; }
.kb-estrela.preenchida .icone, .kb-estrela:has(input:checked) .icone { fill: #efbd43; }
.kb-estrela:focus-within { outline: 3px solid var(--vermelho); outline-offset: 3px; }
.kb-estrelas-grupo .texto-suave { margin: .65rem 0 0; }
.kb-avaliacoes-painel { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1.2rem; align-items: stretch; }
.kb-avaliacoes-metricas { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.kb-nota-card { min-width: 0; padding: 1.2rem; }
.kb-nota-card h2 { font-size: .85rem; line-height: 1.4; margin: 0 0 .65rem; letter-spacing: 0; }
.kb-nota-card > strong { display: block; font-size: 2rem; line-height: 1.2; font-weight: 700; }
.kb-nota-card p { color: var(--texto-suave); font-size: .77rem; margin: .6rem 0 0; }
.kb-distribuicao h2 { font-size: 1rem; margin-bottom: 1rem; }
.kb-nota-faixa { display: grid; grid-template-columns: 35px 1fr 24px 40px; align-items: center; gap: .5rem; margin-top: .5rem; font-size: .8rem; }
.kb-nota-faixa > span { display: flex; align-items: center; gap: .2rem; }
.kb-nota-faixa .icone { color: #815600; fill: #efbd43; }
.kb-nota-faixa meter { width: 100%; height: 12px; }
.kb-nota-faixa meter::-webkit-meter-bar { background: #edf0f2; border: 0; border-radius: 8px; }
.kb-nota-faixa meter::-webkit-meter-optimum-value { background: #d6a630; }
.kb-nota-faixa meter::-moz-meter-bar { background: #d6a630; }
.kb-nota-faixa strong, .kb-nota-faixa small { text-align: right; }
.kb-tabela-avaliacoes .kb-comentario { min-width: 180px; max-width: 380px; white-space: normal; overflow-wrap: anywhere; }
.kb-nota-exibida { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; color: #815600; font-weight: 600; }
.kb-nota-exibida .icone { fill: #efbd43; }
@media(max-width:1100px) { .kb-avaliacoes-painel { grid-template-columns: 1fr; } }
@media(max-width:600px) { .kb-avaliacoes-metricas { grid-template-columns: 1fr; } .kb-nota-card { padding: 1rem; } }
.botao-whatsapp { color: #fff; background: #176845; border-color: #176845; }
.botao-whatsapp:hover { color: #fff; background: #105134; border-color: #105134; }
.botao-whatsapp:focus-visible { outline: 3px solid #176845; outline-offset: 3px; }
.botao-whatsapp:disabled, .botao-whatsapp[aria-disabled="true"] { color: #626d67; background: #e8eeea; border-color: #cad4ce; cursor: not-allowed; transform: none; box-shadow: none; }
.whatsapp-indisponivel { display: inline-flex; }
.acoes-whatsapp { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .5rem; }
.acoes-tabela .acoes-whatsapp { justify-content: flex-end; max-width: 230px; margin-left: auto; }
.pagina-modulo .acoes-tabela .acoes-whatsapp .botao { margin: 0; }
.whatsapp-contato h3, .whatsapp-fatura h3 { display: flex; align-items: center; gap: .5rem; }
.whatsapp-contato .texto-suave, .whatsapp-fatura .texto-suave { margin: .6rem 0; }
.modal.modal-grande.whatsapp-modal { width: min(94vw, 760px); padding: clamp(1.1rem, 3vw, 1.75rem); border-radius: var(--raio); }
.whatsapp-modal .modal-topo { margin-bottom: 1.1rem; }
.whatsapp-modal .modal-topo > div { min-width: 0; }
.whatsapp-modal .modal-topo h2 { font-size: clamp(1.3rem, 3vw, 1.75rem); overflow-wrap: anywhere; }
.whatsapp-modal .sobretitulo { display: flex; align-items: center; gap: .4rem; }
.whatsapp-destinatario { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 0 0 1.2rem; }
.whatsapp-destinatario dt { font-size: .8rem; color: var(--texto-suave); }
.whatsapp-destinatario dd { margin: .3rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.whatsapp-modal textarea { min-height: 250px; resize: vertical; line-height: 1.6; }
.whatsapp-modal .acoes-flex { margin-top: 1rem; }
@media (max-width: 600px) {
    .whatsapp-destinatario { grid-template-columns: 1fr; gap: .7rem; }
    .whatsapp-modal textarea { min-height: 220px; }
    .whatsapp-modal .acoes-flex .botao { flex: 1 1 160px; }
}
.alerta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; padding: .9rem 1rem; border-left: 4px solid; background: #fff; font-weight: 500; transition: opacity .2s ease, transform .2s ease, margin .2s ease, padding .2s ease; }
.alerta-removendo { margin-top: -1rem; margin-bottom: 0; padding-top: 0; padding-bottom: 0; opacity: 0; transform: translateY(-5px); }
.alerta-fechar { flex: 0 0 30px; width: 30px; height: 30px; display: grid; place-items: center; padding: 0; color: currentColor; background: transparent; border: 1px solid currentColor; border-radius: 50%; font-size: 1.2rem; line-height: 1; cursor: pointer; opacity: .7; transition: opacity .15s ease, background .15s ease, color .15s ease; }
.alerta-fechar:hover, .alerta-fechar:focus-visible { color: #fff; background: currentColor; opacity: 1; outline: 2px solid currentColor; outline-offset: 2px; }
.alerta-sucesso .alerta-fechar:hover, .alerta-sucesso .alerta-fechar:focus-visible { color: #fff; background: var(--verde); }
.alerta-erro .alerta-fechar:hover, .alerta-erro .alerta-fechar:focus-visible { color: #fff; background: var(--vermelho); }
.alerta-sucesso { color: #116f49; background: #eaf9f1; border-color: var(--verde); }
.alerta-erro { color: #94101a; background: #ffedef; border-color: var(--vermelho); }

/* Formulários */
.campo > span:first-child { color: #354047; font-size: .78rem; font-weight: 500; }
.campo input[readonly] { color: #59636a; background: #f2f4f5; cursor: not-allowed; }
.entrada-moeda { display: flex; align-items: center; min-height: 46px; padding-left: .85rem; color: var(--texto-suave); background: #f2f4f5; border: 1px solid #cfd5d8; border-radius: 8px; }
.entrada-moeda:focus-within { border-color: var(--vermelho); box-shadow: 0 0 0 3px rgba(201,15,28,.1); }
.entrada-moeda b { flex: 0 0 auto; font-size: .88rem; font-weight: 500; }
.entrada-moeda input { min-width: 0; min-height: 44px; padding: .65rem .85rem .65rem .45rem; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.ajuda-plano-modal { margin: -.45rem 0 0; color: var(--texto-suave); font-size: .76rem; }
.mostrar-senha { position: absolute; right: .6rem; top: 50%; padding: .25rem .4rem; color: var(--vermelho); background: none; border: 0; transform: translateY(-50%); cursor: pointer; font-size: .72rem; font-weight: 500; }
.grupo-checks label, .check-simples { display: flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 500; }

/* Tabelas */
th { color: #7a848a; background: #fafbfb; font-size: .68rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.texto-sucesso { color: var(--verde); font-size: .75rem; font-weight: 500; }

/* Seções */
.detalhes-assinatura dd { margin: 0; font-weight: 500; text-align: right; }
.mensagem a { display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem; color: var(--vermelho); font-size: .73rem; font-weight: 500; }
.comunicado time { color: var(--texto-suave); font-size: .7rem; font-weight: 500; }
.acoes-detalhe-cliente { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; }
.botao-fechar-detalhe { width: 34px; height: 34px; display: inline-grid; place-items: center; color: #69747a; background: #fff; border: 1px solid var(--linha); border-radius: 50%; font-size: 1.25rem; line-height: 1; text-decoration: none; transition: .16s ease; }
.botao-fechar-detalhe:hover, .botao-fechar-detalhe:focus-visible { color: #fff; background: var(--vermelho); border-color: var(--vermelho); outline: none; }
.cartao-planos-admin .cartao-topo { align-items: center; }
.cartao-planos-admin .cartao-topo h3 { margin-bottom: .2rem; }
.cartao-planos-admin .cartao-topo p:last-child { margin: 0; color: var(--texto-suave); font-size: .78rem; }
.planos-contagem { flex: 0 0 auto; padding: .45rem .7rem; color: var(--vermelho-escuro); background: var(--vermelho-claro); border-radius: 999px; font-size: .72rem; font-weight: 500; }
.plano-admin-cabecalho, .campos-plano-admin { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(105px, .68fr) minmax(0, 1.5fr) auto; align-items: end; gap: .55rem; }
.plano-admin-cabecalho { padding: .1rem .55rem .5rem; color: var(--texto-suave); font-size: .64rem; font-weight: 500; letter-spacing: .035em; text-transform: uppercase; }
.lista-planos-admin { display: grid; max-height: 360px; gap: .55rem; overflow-y: auto; padding: .15rem .45rem .15rem 0; overscroll-behavior: contain; scrollbar-color: #b9c0c4 #f1f3f4; scrollbar-width: thin; }
.plano-admin { min-width: 0; padding: .75rem; background: #f7f8f8; border: 1px solid var(--linha); border-radius: 10px; }
.plano-admin .campo { gap: .28rem; }
.plano-admin .campo > span:first-child { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.plano-admin .campo input, .plano-admin .campo textarea { min-height: 42px; padding: .58rem .7rem; font-size: .82rem; }
.plano-admin .campo textarea { resize: vertical; }
.plano-admin .entrada-moeda { min-height: 42px; padding-left: .65rem; background: #fff; }
.plano-admin .entrada-moeda b { font-size: .78rem; }
.plano-admin .entrada-moeda input { min-height: 40px; padding: .5rem .55rem; font-size: .82rem; }
.plano-admin .entrada-moeda input:focus { outline: none; }
.plano-admin-acoes { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; min-height: 42px; }
.plano-admin-acoes .check-simples { white-space: nowrap; font-size: .72rem; }
.plano-admin-novo { margin-top: .85rem; border-style: dashed; }
.plano-admin-novo .plano-admin-acoes { align-items: end; }

/* Modais */

/* Instalação */
.instalador-topo > span { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-weight: 500; }
.numero-etapa { width: 56px; height: 56px; display: grid; place-items: center; color: #fff; background: var(--vermelho); font-size: 1.1rem; font-weight: 500; }

/* Recibo */
.recibo dd { margin: 0; font-weight: 500; text-align: right; }

@media (max-width: 1180px) {
    .grade-config { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
}

@media (max-width: 640px) {
    .plano-admin-cabecalho { display: none; }
    .campos-plano-admin { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
    .campos-plano-admin .campo:nth-child(3), .plano-admin-acoes { grid-column: 1 / -1; }
    .plano-admin-acoes { justify-content: space-between; }
    .plano-admin .campo > span:first-child { position: static; width: auto; height: auto; padding: 0; margin: 0; overflow: visible; clip: auto; white-space: normal; border: 0; color: #59636a; font-size: .67rem; }
}

@media print {
}

@media (prefers-reduced-motion: reduce) {
}


/* Comunicação por e-mail */
.cartao-email-config { grid-column: 1 / -1; }
.cartao-email-config > .cartao-topo p:not(.sobretitulo) { color: var(--texto-suave); margin: .35rem 0 0; }
.aviso-entregabilidade { margin: 1rem 0; padding: 1rem 1.15rem; color: #713b00; background: #fff7e8; border: 1px solid #f0d9ad; border-left: 4px solid #d99317; border-radius: 10px; }
.aviso-entregabilidade p { margin: .35rem 0 0; line-height: 1.55; font-size: .84rem; }
.check-email { display: flex; gap: .8rem; align-items: center; padding: .9rem 1rem; background: #f7f8f9; border: 1px solid var(--linha); border-radius: 10px; }
.check-email input { width: 20px; height: 20px; accent-color: var(--vermelho); }
.check-email span, .check-email strong, .check-email small { display: block; }
.check-email small { color: var(--texto-suave); margin-top: .2rem; }
.testar-email-form { grid-template-columns: minmax(220px, 1fr) auto; align-items: end; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.texto-suave { color: var(--texto-suave); font-size: .78rem; }
.variaveis-email { display: grid; gap: .4rem; margin: 1rem 0; padding: 1rem; color: #364149; background: #f6f7f8; border-radius: 10px; }
.variaveis-email small { line-height: 1.6; overflow-wrap: anywhere; }
.variaveis-email code { color: #a10c17; background: #fff; padding: .1rem .22rem; border-radius: 4px; }
.editor-templates-email { grid-template-columns: repeat(2,minmax(0,1fr)); }
.editor-templates-email fieldset { min-width: 0; display: grid; align-content: start; gap: 1rem; padding: 1rem; border: 1px solid var(--linha); border-radius: 10px; }
.editor-templates-email legend { padding: 0 .45rem; color: var(--grafite); font-weight: 900; }
.editor-templates-email textarea:not([hidden]) { min-height: 230px; line-height: 1.55; }
.editor-templates-email > button { grid-column: 1 / -1; justify-self: start; }
.editor-templates-email .modelo-tecnico-email { grid-column: 1 / -1; }
.editor-email { overflow: hidden; border: 1px solid var(--linha); border-radius: 10px; background: #fff; }
.barra-editor-email { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .55rem .65rem; background: #f6f7f8; border-bottom: 1px solid var(--linha); }
.barra-editor-email > button, .barra-editor-email select, .cor-editor-email { min-height: 34px; padding: .35rem .6rem; color: var(--grafite); background: #fff; border: 1px solid var(--linha); border-radius: 7px; font: inherit; }
.barra-editor-email > button { min-width: 36px; cursor: pointer; }
.barra-editor-email > button:hover, .barra-editor-email select:hover { border-color: var(--vermelho); color: var(--vermelho); }
.barra-editor-email select { cursor: pointer; }
.editor-email .barra-editor-email select { width: auto; min-width: 112px; min-height: 34px; padding: .35rem .6rem; flex: 0 0 auto; }
.separador-editor { width: 1px; height: 24px; margin: 0 .2rem; background: var(--linha); }
.cor-editor-email { display: inline-flex; align-items: center; gap: .4rem; font-weight: 900; cursor: pointer; }
.cor-editor-email input { width: 23px; height: 23px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.editor-email .cor-editor-email input[type="color"] { width: 25px; min-height: 25px; height: 25px; padding: 0; border: 0; border-radius: 4px; background: transparent; box-shadow: none; flex: 0 0 25px; }
.area-editor-email { min-height: 230px; max-height: 560px; overflow: auto; padding: .85rem 1rem; color: #354047; line-height: 1.6; outline: none; overflow-wrap: anywhere; }
.area-editor-email:focus { box-shadow: inset 0 0 0 2px rgb(161 12 23 / 14%); }
.area-editor-email p { margin: 0 0 .75rem; }
.area-editor-email p:last-child { margin-bottom: 0; }
.area-editor-email ul, .area-editor-email ol { padding-left: 1.5rem; }
.texto-ajuda-editor { color: var(--texto-suave); font-size: .72rem; line-height: 1.5; }
.botao-preview-email { justify-self: start; }
.modal-preview-conteudo { padding: 1.4rem; }
.frame-preview-email { display: block; width: 100%; height: min(72vh, 820px); margin-top: 1.2rem; background: #f2f3f5; border: 1px solid var(--linha); border-radius: 10px; }
.dica-ativacao { align-content: center; padding: .85rem; background: #f6f7f8; border-radius: 8px; }
.dica-ativacao small { color: var(--texto-suave); line-height: 1.5; }
@media (max-width: 680px) { .testar-email-form, .editor-templates-email { grid-template-columns: 1fr; } .editor-templates-email > button { grid-column: auto; } }

/* Formulários */
.formulario { display: grid; gap: 1rem; }
.campo { display: grid; gap: .42rem; min-width: 0; }
.campo > span:first-child { color: #354047; font-size: .78rem; font-weight: 800; }
.campo small { color: var(--texto-suave); font-size: .72rem; }
.campo input, .campo select, .campo textarea, .filtros-tabela select { width: 100%; min-height: 46px; padding: .75rem .85rem; color: var(--texto); background: #fff; border: 1px solid #cfd5d8; border-radius: 8px; outline: none; transition: .18s ease; }
.campo textarea { resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .filtros-tabela select:focus { border-color: var(--vermelho); box-shadow: 0 0 0 3px rgba(201,15,28,.1); }
.campo-senha { position: relative; display: block; }
.campo-senha input { padding-right: 5rem; }
.mostrar-senha { position: absolute; right: .6rem; top: 50%; padding: .25rem .4rem; color: var(--vermelho); background: none; border: 0; transform: translateY(-50%); cursor: pointer; font-size: .72rem; font-weight: 900; }
.grade-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.grade-form.tres-colunas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campo-duplo { grid-column: span 2; }
.campo-total { grid-column: 1 / -1; }
.grupo-checks { display: flex; flex-wrap: wrap; gap: .7rem; padding: 1rem; background: #f5f6f7; border: 1px solid var(--linha); border-radius: 10px; }
.grupo-checks label, .check-simples { display: flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 700; }
.grupo-checks input, .check-simples input { accent-color: var(--vermelho); }
.barra-form-acoes, .linha-form { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; }
.anexo-compacto { margin-right: auto; color: var(--texto-suave); font-size: .78rem; }
.anexo-compacto input { display: block; margin-top: .35rem; }
.form-inline { display: inline-flex; margin: 0 .15rem; }
.copiar-valor { padding: 0; color: var(--vermelho); background: none; border: 0; cursor: pointer; }

/* Tabelas */
.tabela-responsiva { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .9rem .8rem; border-bottom: 1px solid #eceff0; text-align: left; vertical-align: middle; }
th { color: #7a848a; background: #fafbfb; font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
td { font-size: .82rem; }
td small { display: block; margin-top: .2rem; color: var(--texto-suave); }
tbody tr:hover { background: #fdfafa; }
.tabela-ampla { min-width: 820px; }
.acoes-tabela { text-align: right; white-space: nowrap; }
.estado-vazio { padding: 2rem; color: var(--texto-suave); text-align: center; }
.estado-ilustrado { min-height: 310px; display: grid; place-content: center; justify-items: center; }
.estado-ilustrado > .icone { width: 48px; height: 48px; margin-bottom: .8rem; color: var(--vermelho); }
.texto-sucesso { color: var(--verde); font-size: .75rem; font-weight: 800; }
.filtros-tabela { display: flex; gap: .75rem; justify-content: space-between; margin-bottom: 1rem; }
.campo-busca { min-width: min(100%, 420px); display: flex; align-items: center; gap: .65rem; padding: 0 .85rem; background: #fff; border: 1px solid #cfd5d8; border-radius: 8px; }
.campo-busca input { width: 100%; min-height: 44px; border: 0; outline: 0; }
.filtros-tabela select { width: auto; min-width: 175px; }

/* Seções */
.grade-assinatura { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1.15rem; }
.plano-principal { position: relative; overflow: hidden; color: #fff; background: linear-gradient(135deg, var(--grafite), #252b30 70%, var(--vermelho-escuro)); border: 0; }
.plano-principal::after { content: ""; position: absolute; width: 250px; height: 250px; right: -130px; top: -130px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 55px rgba(255,255,255,.025); }
.plano-principal > * { position: relative; z-index: 1; }
.plano-principal h3 { font-size: 2rem; }
.preco-plano { display: flex; align-items: end; gap: .4rem; margin: 1.4rem 0; }
.preco-plano strong { font-size: 2.8rem; line-height: 1; }
.preco-plano span { color: #bdc4c8; }
.lista-beneficios { display: grid; gap: .6rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.lista-beneficios li { display: flex; align-items: center; gap: .55rem; color: #e5e8e9; }
.lista-beneficios .icone { color: #66d4a3; }
.detalhes-assinatura dl, .recibo dl { margin: 1rem 0; }
.detalhes-assinatura dl div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--linha); }
.detalhes-assinatura dt { color: var(--texto-suave); }
.detalhes-assinatura dd { margin: 0; font-weight: 800; text-align: right; }
.aviso-financeiro { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.15rem; padding: 1.3rem 1.5rem; color: #fff; background: var(--grafite); border-left: 5px solid var(--vermelho); border-radius: 12px; }
.aviso-financeiro p { margin: .2rem 0 0; color: #cbd1d4; }
.aviso-financeiro > .icone { width: 42px; height: 42px; color: #ff8991; }
.grade-radio, .grade-conta, .grade-config { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; margin-bottom: 1.15rem; }
.radio-identidade { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.radio-identidade > div { flex: 1; min-width: 0; }
.radio-identidade h3 { font-size: 1.6rem; }
.radio-identidade p { margin: 0; color: var(--texto-suave); word-break: break-all; }
.lista-status { display: grid; }
.lista-status > div { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--linha); }
.lista-status span { display: flex; align-items: center; gap: .55rem; color: var(--texto-suave); }
.lista-status .icone { color: var(--vermelho); }
.grade-checklist { display: grid; grid-template-columns: repeat(4, 1fr); gap: .85rem; }
.check-item { display: flex; gap: .75rem; padding: 1rem; background: #f7f8f8; border: 1px solid var(--linha); border-radius: 10px; }
.check-item > span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; color: var(--amarelo); background: #fff2d2; border-radius: 50%; }
.check-item.concluida > span { color: var(--verde); background: #e2f6ed; }
.check-item p { margin: .2rem 0 0; color: var(--texto-suave); font-size: .75rem; }
.grade-suporte { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(420px, 1.35fr); gap: 1.15rem; }
.lista-chamados { padding: 1rem; }
.lista-chamados > h3 { padding: .5rem .55rem; }
.chamado-item { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .9rem; border-bottom: 1px solid var(--linha); transition: .15s ease; }
.chamado-item:hover, .chamado-item.ativo { background: var(--vermelho-claro); }
.chamado-item strong, .chamado-item small { display: block; }
.chamado-item strong { font-size: .83rem; }
.chamado-item small { margin-top: .25rem; color: var(--texto-suave); font-size: .7rem; }
.conversa-chamado { min-width: 0; }
.mensagens { max-height: 500px; display: grid; gap: .8rem; overflow-y: auto; padding: .5rem 0 1rem; }
.mensagem { max-width: 86%; padding: .9rem 1rem; background: #f0f2f3; border-radius: 4px 14px 14px 14px; }
.mensagem.equipe { margin-left: auto; color: #fff; background: var(--grafite); border-radius: 14px 4px 14px 14px; }
.mensagem > div { display: flex; justify-content: space-between; gap: 1rem; }
.mensagem strong { font-size: .75rem; }
.mensagem time { color: #879198; font-size: .65rem; }
.mensagem p { margin: .5rem 0 0; font-size: .84rem; }
.mensagem a { display: inline-flex; align-items: center; gap: .35rem; margin-top: .6rem; color: var(--vermelho); font-size: .73rem; font-weight: 800; }
.mensagem.equipe a { color: #ff929a; }
.resposta-chamado, .status-chamado { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.status-chamado { grid-template-columns: 1fr auto; align-items: end; }
.lista-comunicados { display: grid; gap: 1rem; }
.comunicado { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: start; }
.comunicado.inativo { opacity: .62; }
.comunicado-icone { width: 46px; height: 46px; display: grid; place-items: center; color: #fff; background: var(--vermelho); border-radius: 50%; }
.comunicado time { color: var(--texto-suave); font-size: .7rem; font-weight: 800; }
.comunicado h3 { margin: .35rem 0 .55rem; }
.comunicado p { margin: 0; color: #535e64; }
.lista-resumo { display: grid; }
.lista-resumo > a { display: flex; align-items: center; gap: .75rem; padding: .85rem 0; border-bottom: 1px solid var(--linha); }
.lista-resumo > a > span:nth-child(2) { flex: 1; min-width: 0; }
.lista-resumo strong, .lista-resumo small { display: block; }
.lista-resumo small { margin-top: .15rem; color: var(--texto-suave); font-size: .72rem; }
.painel-atalhos { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.atalhos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; flex: 1; max-width: 850px; }
.atalhos button { display: flex; align-items: center; gap: .75rem; padding: .9rem; text-align: left; background: #f7f8f8; border: 1px solid var(--linha); border-radius: 10px; cursor: pointer; transition: .15s ease; }
.atalhos button:hover { color: var(--vermelho); border-color: var(--vermelho); background: var(--vermelho-claro); }
.atalhos .icone { color: var(--vermelho); }
.atalhos strong, .atalhos small { display: block; }
.atalhos small { color: var(--texto-suave); font-size: .68rem; }
.editor-registro { margin-top: 1.15rem; border-top: 4px solid var(--vermelho); }
.lista-planos-admin { display: grid; gap: 1rem; }
.plano-admin { padding: 1rem; background: #f7f8f8; border: 1px solid var(--linha); border-radius: 10px; }
.plano-admin.novo { border-style: dashed; }
.seguranca-conta { display: grid; grid-template-columns: .7fr 1.3fr; align-items: end; gap: 2rem; }
.form-senha-horizontal { grid-template-columns: repeat(4, 1fr); align-items: end; }

/* Modais */
.modal { width: min(94vw, 620px); max-height: 90vh; padding: 0; overflow: auto; color: var(--texto); background: #fff; border: 0; border-radius: 16px; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.modal.modal-grande { width: min(94vw, 980px); }
.modal::backdrop { background: rgba(8,12,15,.72); backdrop-filter: blur(3px); }
.modal > form { padding: 1.6rem; }
.modal-topo { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--linha); }
.modal-topo h3 { font-size: 1.45rem; }
.fechar-modal { width: 38px; height: 38px; color: #fff; background: var(--grafite); border: 0; border-radius: 50%; cursor: pointer; font-size: 1.5rem; }
.ajuda-valor-cobranca { display: block; margin-top: -.35rem; color: var(--texto-suave); font-size: .72rem; line-height: 1.45; }
.modal-comunicados-novos { width: min(94vw, 720px); max-height: min(88vh, 900px); padding: clamp(1.15rem, 3vw, 1.8rem); }
.modal-comunicados-cabecalho { padding: .15rem 0 1.15rem; border-bottom: 1px solid var(--linha); }
.modal-comunicados-icone { width: 46px; height: 46px; display: grid; place-items: center; margin-bottom: .85rem; color: var(--vermelho); background: var(--vermelho-claro); border-radius: 13px; }
.modal-comunicados-icone .icone { width: 22px; height: 22px; }
.modal-comunicados-cabecalho .sobretitulo { margin-bottom: .25rem; }
.modal-comunicados-cabecalho h2 { margin: 0; font-size: clamp(1.3rem, 3.5vw, 1.75rem); }
.modal-comunicados-cabecalho > p:not(.sobretitulo) { margin: .4rem 0 0; color: var(--texto-suave); font-size: .88rem; }
.modal-comunicados-contagem { display: inline-flex; margin-top: .8rem; padding: .32rem .6rem; color: var(--vermelho-escuro); background: var(--vermelho-claro); border-radius: 999px; font-size: .72rem; font-weight: 650; }
.modal-comunicados-lista { display: grid; gap: .75rem; max-height: min(48vh, 420px); overflow: auto; padding: 1rem .15rem 1rem 0; }
.modal-comunicado-item { padding: 1rem; background: #faf8f5; border: 1px solid var(--linha); border-left: 3px solid var(--vermelho); border-radius: 10px; }
.modal-comunicado-item time { color: var(--texto-suave); font-size: .72rem; }
.modal-comunicado-item h3 { margin: .3rem 0 .5rem; font-size: 1rem; }
.modal-comunicado-item .comunicado-mensagem { margin-top: 0; color: #354047; font-size: .88rem; }
.modal-comunicados-acoes { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; padding-top: .2rem; }
.modal-comunicados-acoes form { margin: 0; }

/* Instalação */
.pagina-instalacao { padding: 2rem; background: var(--papel); }
.instalador { width: min(100%, 980px); margin: 0 auto; }
.instalador-topo { display: grid; grid-template-columns: 190px 1fr auto; align-items: center; gap: 2rem; padding: 2rem; color: #fff; background: linear-gradient(120deg, var(--grafite), #262b2f 70%, var(--vermelho-escuro)); }
.instalador-topo img { filter: brightness(0) invert(1); }
.instalador-topo h1 { margin-bottom: .4rem; }
.instalador-topo p { margin-bottom: 0; color: #bdc5c9; }
.instalador-topo > span { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; font-weight: 900; }
.instalador-form { gap: 0; background: #fff; border: 1px solid #dedbd3; border-top: 0; }
.instalador-etapa { display: grid; grid-template-columns: 80px 1fr; gap: 1.5rem; padding: 2rem; border-bottom: 1px solid var(--linha); }
.numero-etapa { width: 56px; height: 56px; display: grid; place-items: center; color: #fff; background: var(--vermelho); font-size: 1.1rem; font-weight: 900; }
.etapa-conteudo { display: grid; gap: 1.4rem; }
.etapa-conteudo h2 { font-size: 1.7rem; }
.etapa-conteudo > div > p:last-child { color: var(--texto-suave); }
.instalador-final { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem; background: #f7f8f8; }
.instalador-final p { margin: .2rem 0 0; color: var(--texto-suave); }

/* Recibo */
.pagina-recibo { padding: 2rem; background: #e9ecee; }
.recibo { width: min(100%, 760px); margin: 0 auto; padding: 3rem; background: #fff; border-top: 6px solid var(--vermelho); box-shadow: var(--sombra); }
.recibo header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--linha); }
.recibo header img { width: 190px; }
.recibo header div { text-align: right; }
.recibo header h1 { margin: 0; }
.recibo-status { display: flex; align-items: center; gap: 1rem; margin: 2rem 0; padding: 1rem; background: #eaf9f1; }
.recibo section { padding: 1rem 0 2rem; }
.recibo section p { margin: 0; color: var(--texto-suave); }
.recibo section h2 { margin: .3rem 0; }
.recibo dl div { display: grid; grid-template-columns: 1fr 1.3fr; padding: .9rem 0; border-bottom: 1px solid var(--linha); }
.recibo dt { color: var(--texto-suave); }
.recibo dd { margin: 0; font-weight: 800; text-align: right; }
.recibo dl .valor { margin-top: 1rem; padding: 1.3rem; color: #fff; background: var(--grafite); border: 0; }
.recibo dl .valor dd { font-size: 1.5rem; }
.recibo footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1rem; }
.recibo footer p { margin: 0; color: var(--texto-suave); font-size: .75rem; }

@media (max-width: 1180px) {
    .grade-metricas { grid-template-columns: repeat(2, 1fr); }
    .grade-checklist { grid-template-columns: repeat(2, 1fr); }
    .grade-form.tres-colunas { grid-template-columns: repeat(2, 1fr); }
    .painel-atalhos { display: block; }
    .atalhos { max-width: none; margin-top: 1rem; }
    .seguranca-conta { grid-template-columns: 1fr; }
    .form-senha-horizontal { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .login-cenario { grid-template-columns: 1fr; }
    .login-marca { min-height: 430px; padding: 2.5rem; }
    .logo-login { margin-bottom: 2.5rem; }
    .login-marca h1 { font-size: 3rem; }
    .app-shell { display: block; }
    .barra-lateral { position: fixed; inset: 0 auto 0 0; width: min(86vw, 300px); transform: translateX(-105%); transition: transform .24s ease; box-shadow: 30px 0 80px rgba(0,0,0,.3); }
    body.menu-aberto .barra-lateral { transform: translateX(0); }
    body.menu-aberto::after { content: ""; position: fixed; z-index: 30; inset: 0; background: rgba(0,0,0,.45); }
    .menu-mobile { display: grid; }
    .topo-app { position: sticky; z-index: 20; top: 0; min-height: 78px; }
    .topo-app h1 { font-size: 1.35rem; }
    .topo-acoes .badge { display: none; }
    .grade-destaques, .grade-inferior, .grade-assinatura, .grade-radio, .grade-conta, .grade-config, .grade-suporte { grid-template-columns: 1fr; }
    .cabecalho-secao { display: block; }
    .cabecalho-secao > p { margin-top: .6rem; text-align: left; }
    .grade-suporte .conversa-chamado { min-height: 300px; }
    .login-recursos { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    body { font-size: 15px; }
    .pagina-login, .pagina-instalacao, .pagina-recibo { padding: 0; }
    .login-marca { min-height: 370px; padding: 2rem 1.25rem; }
    .login-marca h1 { font-size: 2.4rem; }
    .login-recursos { display: none; }
    .login-area { padding: 1.25rem; }
    .login-box { padding: 1.5rem; }
    .topo-app { padding: .9rem 1rem; }
    .topo-acoes .botao { width: 44px; padding: 0; font-size: 0; }
    .topo-acoes .botao .icone { width: 20px; height: 20px; }
    .conteudo-principal { padding: 1rem; }
    .cabecalho-secao { margin-bottom: 1.2rem; }
    .grade-metricas { grid-template-columns: 1fr; }
    .metrica { min-height: 120px; }
    .cartao { padding: 1.15rem; border-radius: 13px; }
    .grade-checklist, .grade-form, .grade-form.tres-colunas { grid-template-columns: 1fr; }
    .campo-duplo { grid-column: auto; }
    .grade-checklist { grid-template-columns: 1fr; }
    .radio-recursos { display: grid; }
    .radio-recursos span { width: 100%; }
    .radio-identidade { align-items: flex-start; flex-wrap: wrap; }
    .radio-identidade .badge { margin-left: 80px; }
    .filtros-tabela { display: grid; }
    .filtros-tabela select { width: 100%; }
    .painel-atalhos { display: block; }
    .atalhos { grid-template-columns: 1fr; }
    .comunicado { grid-template-columns: auto 1fr; }
    .comunicado > .badge { grid-column: 2; }
    .mensagem { max-width: 96%; }
    .barra-form-acoes, .linha-form { align-items: stretch; flex-direction: column; }
    .anexo-compacto { margin: 0; }
    .form-senha-horizontal { grid-template-columns: 1fr; }
    .instalador-topo { grid-template-columns: 1fr auto; padding: 1.4rem; }
    .instalador-topo img { grid-column: 1 / -1; width: 170px; }
    .instalador-etapa { grid-template-columns: 1fr; padding: 1.4rem; }
    .instalador-final { align-items: stretch; flex-direction: column; padding: 1.4rem; }
    .recibo { padding: 1.4rem; box-shadow: none; }
    .recibo header { align-items: flex-start; flex-direction: column; }
    .recibo header div { text-align: left; }
    .recibo dl div { grid-template-columns: 1fr; gap: .2rem; }
    .recibo dd { text-align: left; }
    .recibo footer { align-items: stretch; flex-direction: column; }
}

@media print {
    .pagina-recibo { padding: 0; background: #fff; }
    .recibo { width: 100%; box-shadow: none; }
    .nao-imprimir { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* Atendimento e chamados */
.cabecalho-suporte-cliente { align-items: center; gap: 1.25rem; }
.cabecalho-suporte-cliente > div > p:last-child { margin: .4rem 0 0; color: var(--texto-suave); }
.resumo-chamados { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 0 0 1rem; }
.resumo-chamados article { display: grid; gap: .25rem; min-width: 0; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--linha); border-top: 3px solid var(--vermelho); border-radius: 11px; box-shadow: 0 5px 18px rgb(18 24 29 / 4%); }
.resumo-chamados article span { color: #354047; font-size: .76rem; font-weight: 750; }
.resumo-chamados article strong { color: var(--grafite); font-size: 1.65rem; line-height: 1.15; font-weight: 850; }
.resumo-chamados article small { color: var(--texto-suave); font-size: .7rem; }
.resumo-cliente { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.resumo-cliente article:first-child { border-top-color: #c90f1c; }
.resumo-cliente article:nth-child(2) { border-top-color: #c77a12; }
.resumo-cliente article:nth-child(3) { border-top-color: #2c8b61; }
.lista-chamados .cartao-topo { margin-bottom: .7rem; }
.contagem-chamados { min-width: 30px; height: 30px; display: inline-grid; place-items: center; padding: 0 .45rem; color: var(--vermelho); background: var(--vermelho-claro); border-radius: 50px; font-size: .78rem; font-weight: 850; }
.lista-chamados-itens { display: grid; }
.chamado-item { align-items: flex-start; padding: .9rem .75rem; border: 1px solid transparent; border-radius: 9px; }
.chamado-item + .chamado-item { margin-top: .25rem; }
.chamado-item.ativo { border-color: rgb(201 15 28 / 18%); }
.chamado-item-texto { min-width: 0; flex: 1; }
.chamado-item-texto strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chamado-item .badge { flex: 0 0 auto; }
.cabecalho-conversa-suporte { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--linha); }
.cabecalho-conversa-suporte h3 { margin: .25rem 0 0; overflow-wrap: anywhere; }
.metadados-chamado { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin: .85rem 0 1rem; padding: .8rem; background: #f7f8f9; border: 1px solid var(--linha); border-radius: 10px; }
.metadados-chamado > span { display: grid; align-content: start; gap: .2rem; min-width: 0; }
.metadados-chamado small { color: var(--texto-suave); font-size: .67rem; }
.metadados-chamado strong, .metadados-chamado a { overflow-wrap: anywhere; color: var(--grafite); font-size: .76rem; font-weight: 700; }
.metadados-chamado a { color: var(--vermelho); font-weight: 550; }
.metadados-chamado a:hover { text-decoration: underline; }
.estado-suporte-vazio { display: grid; justify-items: center; gap: .6rem; padding: 2rem 1rem; color: var(--texto-suave); text-align: center; }
.estado-suporte-vazio .icone { width: 42px; height: 42px; color: var(--vermelho); }
.estado-suporte-vazio strong { color: var(--grafite); }
.estado-suporte-vazio span { max-width: 260px; font-size: .78rem; line-height: 1.55; }
.aviso-chamado-fechado { display: grid; gap: .3rem; margin-top: 1rem; padding: .9rem 1rem; color: #315f4b; background: #eef8f2; border: 1px solid #cce9d8; border-radius: 9px; font-size: .8rem; }
.aviso-chamado-fechado span { color: #537361; }
.resposta-chamado textarea { min-height: 105px; }

@media (max-width: 900px) {
  .resumo-chamados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metadados-chamado { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .cabecalho-suporte-cliente { align-items: stretch; flex-direction: column; }
  .cabecalho-suporte-cliente > .botao { width: 100%; }
  .resumo-chamados { gap: .55rem; }
  .resumo-chamados article { padding: .8rem; }
  .resumo-chamados article span { font-size: .7rem; }
  .resumo-chamados article strong { font-size: 1.4rem; }
  .chamado-item { flex-direction: column; }
  .chamado-item .badge { align-self: flex-start; }
  .cabecalho-conversa-suporte { flex-direction: column; }
  .status-chamado { grid-template-columns: 1fr; }
  .status-chamado > button { width: 100%; }
}


/* Prioridades dos chamados e conteúdo formatado */
.prioridade { display: inline-flex; align-items: center; width: max-content; padding: .22rem .52rem; border: 1px solid transparent; border-radius: 999px; font-size: .66rem; font-weight: 750; line-height: 1.25; white-space: nowrap; vertical-align: middle; }
.prioridade-baixa { color: #52616b; background: #edf1f3; border-color: #dce3e7; }
.prioridade-normal { color: #245fa9; background: #e7f0ff; border-color: #cbdcf7; }
.prioridade-alta { color: #8a4e00; background: #fff0d6; border-color: #f4d7a4; }
.prioridade-urgente { color: #a20b17; background: #ffe4e6; border-color: #f6bec4; }
.mensagem-conteudo, .comunicado-mensagem { margin-top: .5rem; font-size: .84rem; line-height: 1.6; overflow-wrap: anywhere; }
.mensagem-conteudo p, .comunicado-mensagem p { margin: 0 0 .65rem; }
.mensagem-conteudo p:last-child, .comunicado-mensagem p:last-child { margin-bottom: 0; }
.mensagem-conteudo ul, .mensagem-conteudo ol, .comunicado-mensagem ul, .comunicado-mensagem ol { padding-left: 1.35rem; }
.mensagem.equipe .mensagem-conteudo { color: #fff; }
.mensagem .mensagem-conteudo [style*="color"] { font-weight: 650; }
.area-editor-email[aria-invalid="true"] { box-shadow: inset 0 0 0 2px #b4232d; }
.campo-valor-mensal .entrada-moeda input[readonly] { background: #f4f6f7; color: #59636a; cursor: not-allowed; }
@media (max-width: 600px) { .prioridade { font-size: .62rem; } .resposta-chamado .linha-form { align-items: stretch; flex-direction: column; } .resposta-chamado .linha-form > * { width: 100%; } }

.mensagem > .mensagem-conteudo { display: block; }

.resposta-chamado .area-editor-email, #novo-chamado .area-editor-email { min-height: 145px; max-height: 360px; }
#novo-comunicado .area-editor-email { min-height: 175px; }


/* Ajustes de leitura e controles compartilhados dos modais */
.mensagem.equipe { color: #354047; background: #f7ecee; border: 1px solid #ead2d5; }
.mensagem.equipe time { color: #69757c; }
.mensagem.equipe .mensagem-conteudo { color: #354047; }
.fechar-modal { display: grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; padding: 0; line-height: 1; text-align: center; font-family: inherit; font-size: 1.25rem; align-self: flex-start; }
.editor-cor-padrao { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: .25rem .55rem; color: #354047; background: #fff; border: 1px solid #d6dce0; border-radius: 7px; font: inherit; font-size: .72rem; line-height: 1.1; cursor: pointer; white-space: nowrap; }
.editor-cor-padrao:hover, .editor-cor-padrao:focus-visible { color: #a10c17; border-color: #a10c17; outline: none; }
.paginacao-envios { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; padding: .9rem .15rem .1rem; }
.paginacao-envios[hidden] { display: none; }
.paginacao-envios [data-page-status] { color: #69757c; font-size: .78rem; text-align: center; }
.paginacao-envios button:disabled { opacity: .48; cursor: not-allowed; }
@media (max-width: 560px) { .paginacao-envios { justify-content: space-between; flex-wrap: wrap; gap: .5rem; } .paginacao-envios [data-page-status] { order: 3; width: 100%; } }


/* Sessão e segurança */
.barra-rodape .form-sair { margin: 0; }
.barra-rodape .form-sair button { width: 100%; display: flex; align-items: center; gap: .65rem; padding: 0; color: #c4c9cc; background: transparent; border: 0; text-align: left; font: inherit; font-size: .88rem; cursor: pointer; }
.barra-rodape .form-sair button:hover, .barra-rodape .form-sair button:focus-visible { color: #fff; outline: none; }

/* Saúde operacional */
.saude-resumo { display: flex; align-items: center; gap: 1rem; margin: 1.2rem 0; border-left: 4px solid var(--vermelho); }
.saude-resumo > div { min-width: 0; flex: 1; }
.saude-resumo .sobretitulo { margin-bottom: .2rem; }
.saude-resumo h3 { margin: 0 0 .25rem; }
.saude-resumo p:not(.sobretitulo) { margin: 0; color: var(--texto-suave); font-size: .88rem; }
.saude-resumo > .botao { flex: 0 0 auto; }
.saude-resumo > .botao .icone { margin-left: .25rem; }
.saude-introducao { display: flex; align-items: center; gap: 1.15rem; margin-bottom: 1.2rem; padding: 1.35rem 1.5rem; background: #fff; border: 1px solid var(--linha); border-left: 5px solid var(--verde); border-radius: 14px; }
.saude-introducao.saude-alerta { background: #fffaf1; border-color: #f0dfba; border-left-color: var(--amarelo); }
.saude-intro-icone { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; color: var(--verde); background: #e8f6ef; border-radius: 14px; }
.saude-alerta .saude-intro-icone { color: var(--amarelo); background: #fff0d1; }
.saude-intro-icone .icone { width: 24px; height: 24px; }
.saude-introducao > div { flex: 1; min-width: 0; }
.saude-introducao .sobretitulo { margin-bottom: .25rem; }
.saude-introducao h2 { margin: 0 0 .35rem; font-size: clamp(1.2rem, 2.1vw, 1.65rem); }
.saude-introducao p:not(.sobretitulo) { margin: 0; color: var(--texto-suave); }
.selo-saude { display: inline-flex; align-items: center; justify-content: center; width: max-content; max-width: 100%; padding: .38rem .68rem; border: 1px solid transparent; border-radius: 999px; font-size: .72rem; font-weight: 700; line-height: 1.25; text-align: center; }
.estado-ok { color: #176b46; background: #e7f5ed; border-color: #c8e8d5; }
.estado-atencao, .estado-pendente { color: #825100; background: #fff3d9; border-color: #f1dfb5; }
.estado-falhou { color: #9b1c27; background: #ffebed; border-color: #f2cbd0; }
.grade-saude { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cartao-saude { min-width: 0; display: flex; flex-direction: column; }
.saude-cartao-cabecalho { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: 1rem; }
.cartao-saude > .sobretitulo { margin-bottom: .35rem; }
.cartao-saude h3 { margin-bottom: .45rem; }
.cartao-saude > p:not(.sobretitulo) { margin-bottom: 1rem; color: var(--texto-suave); font-size: .88rem; }
.saude-detalhe { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .78rem 0; border-top: 1px solid var(--linha); }
.saude-detalhe > span { color: var(--texto-suave); font-size: .82rem; }
.saude-detalhe > strong { color: var(--texto); font-size: .82rem; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
.texto-status-ok { color: var(--verde) !important; }
.texto-status-erro { color: #a11a26 !important; }
.saude-duas-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin-top: .75rem; }
.saude-duas-colunas > div { display: grid; gap: .15rem; padding: .7rem .8rem; background: #f6f7f8; border-radius: 10px; }
.saude-duas-colunas small { color: var(--texto-suave); font-size: .72rem; }
.saude-duas-colunas strong { font-size: 1.15rem; }
.saude-contadores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-bottom: .8rem; }
.saude-contadores > div { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .55rem; padding: .85rem; background: #f6f7f8; border-radius: 10px; }
.saude-contadores > div > span:not(.status-ponto) { color: var(--texto-suave); font-size: .84rem; }
.saude-contadores strong { font-size: 1.3rem; }
.status-ponto { width: 9px; height: 9px; display: inline-block; border-radius: 50%; }
.ponto-ok { background: var(--verde); }
.ponto-erro { background: var(--vermelho); }
.saude-nota { margin: .9rem 0 0; padding: .75rem; color: var(--texto-suave); background: #f6f7f8; border-radius: 9px; font-size: .78rem; }
.saude-atualizado { margin: 1rem .2rem 0; color: var(--texto-suave); font-size: .78rem; }
@media (max-width: 600px) {
  .saude-resumo { align-items: flex-start; flex-wrap: wrap; }
  .saude-resumo > div { flex-basis: calc(100% - 60px); }
  .saude-resumo > .botao { width: 100%; justify-content: center; }
  .saude-introducao { align-items: flex-start; flex-wrap: wrap; }
  .saude-introducao > div { flex-basis: calc(100% - 66px); }
  .saude-introducao > .selo-saude { margin-left: 64px; }
  .grade-saude { grid-template-columns: 1fr; }
  .saude-contadores { gap: .5rem; }
  .saude-contadores > div { grid-template-columns: auto 1fr; }
  .saude-contadores strong { grid-column: 2; }
}

/* Central 1.1: serviços, histórico e navegação */
.menu-principal{overflow-y:auto;min-height:0}.barra-lateral{overflow-y:auto}.acoes-flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.espacamento{margin-top:24px}.ficha-servico{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.ficha-servico dt{font-size:12px;color:var(--cinza-500,#69737a)}.ficha-servico dd{margin:4px 0 0;font-weight:600;overflow-wrap:anywhere}.registro-historico{padding:16px 0;border-bottom:1px solid #e5e8eb}.registro-historico span{font-size:13px;color:#68747c}.registro-historico p{margin:8px 0}.tabela-responsiva td small{display:block;margin-top:4px;color:#68747c}.filtros-tabela{flex-wrap:wrap}.filtros-tabela .campo{min-width:150px}.paginacao-envios{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.atalhos a{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #e6e8eb;border-radius:12px;color:inherit;text-decoration:none}.atalhos a span{display:grid;gap:5px}.atalhos a small{color:#73818a}.solicitacao-honeypot{position:absolute;left:-9999px}.grade-config article{min-width:0}.grade-radio{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:24px}.lista-recursos{padding-left:0;list-style:none}.lista-recursos li{display:flex;align-items:center;gap:8px;padding:5px 0}.lista-recursos svg{width:18px;height:18px;flex-shrink:0}:focus-visible{outline:3px solid #bd1725;outline-offset:3px}@media(max-width:600px){.ficha-servico{grid-template-columns:1fr}.filtros-tabela .campo{width:100%}.registro-historico{overflow-wrap:anywhere}.acoes-flex .botao{white-space:normal}}

.antispam-campo{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Ajustes dos módulos administrativos — 1.1.1 */
.pagina-modulo .app-conteudo, .pagina-modulo .conteudo-principal { min-width: 0; }
.pagina-modulo .cabecalho-secao { align-items: center; gap: 1.25rem; }
.pagina-modulo .cabecalho-secao > p { max-width: 720px; margin: 0; text-align: left; color: var(--texto-suave); font-size: .88rem; }
.pagina-modulo .cabecalho-secao > .botao { flex-shrink: 0; }
.pagina-modulo .cartao h2 { margin: 0 0 1rem; font-size: 1.3rem; line-height: 1.3; }
.pagina-modulo .cartao-topo h2 { margin-bottom: 0; }
.pagina-modulo .cartao-topo { align-items: center; flex-wrap: wrap; margin-bottom: 1.25rem; }
.pagina-modulo .cartao > p { font-size: .87rem; color: var(--texto-suave); }
.pagina-modulo .formulario > .botao:not(.botao-largo) { justify-self: start; }
.pagina-modulo .grade-form { align-items: start; }
.pagina-modulo .formulario fieldset { min-width: 0; display: grid; gap: .9rem; padding: 1.1rem; border: 1px solid var(--linha); border-radius: 10px; }
.pagina-modulo .formulario legend { padding: 0 .45rem; font-size: .85rem; font-weight: 700; }
.pagina-modulo .formulario fieldset p { margin: 0; }
.pagina-modulo .tabela-responsiva { width: 100%; }
.pagina-modulo .tabela-responsiva table { min-width: 760px; }
.pagina-modulo th { white-space: nowrap; }
.pagina-modulo td { min-width: 90px; max-width: 320px; overflow-wrap: anywhere; }
.pagina-modulo td .botao { white-space: nowrap; }
.pagina-modulo td .check-simples { min-width: 170px; }
.pagina-modulo .acoes-tabela { white-space: normal; min-width: 170px; }
.pagina-modulo .acoes-tabela .botao { margin: .2rem 0 .2rem .25rem; }
.data-tabela { white-space: nowrap; }
.formulario.filtros-servidor { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; }
.filtros-servidor > .campo { flex: 1 1 260px; max-width: 560px; }
.filtros-servidor > .botao { min-height: 46px; flex: 0 0 auto; }
.filtros-financeiro .grade-form { grid-template-columns: minmax(220px,2fr) minmax(150px,1fr) repeat(2,minmax(145px,1fr)); }
.pagina-modulo .modal h3 { line-height: 1.25; }
.modal-acoes { justify-content: flex-end; padding-top: .75rem; border-top: 1px solid var(--linha); }
.contador-registros { padding: .4rem .7rem; border-radius: 100px; background: #f2f4f5; color: var(--texto-suave); font-size: .78rem; }
.descricao-plano { max-width: 360px; max-height: 2.8em; line-height: 1.4; overflow: hidden; white-space: pre-line; }
.pagina-modulo .conteudo-principal > p { max-width: 85ch; margin: 0 0 1.5rem; color: var(--texto-suave); font-size: .88rem; }
.configuracao-integracao > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.configuracao-integracao > summary::-webkit-details-marker { display: none; }
.configuracao-integracao summary .sobretitulo { display: block; margin-bottom: .25rem; }
.configuracao-integracao summary strong { display: block; font-size: 1.15rem; }
.summary-acao { color: var(--vermelho); font-size: .8rem; font-weight: 700; white-space: nowrap; }
.summary-acao::after { content: ' +'; }
.configuracao-integracao[open] .summary-acao::after { content: ' −'; }
.integracao-conteudo { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--linha); }
.integracao-conteudo > p { font-size: .86rem; color: var(--texto-suave); }
.integracao-conteudo > .formulario { margin-top: 1.25rem; }
.links-login { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem .7rem; margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--linha); color: var(--texto-suave); font-size: .78rem; }
.links-login a { color: var(--vermelho); font-weight: 600; text-decoration: none; }
.links-login a:hover { text-decoration: underline; }
.login-marca::before { animation: orbita-login 22s ease-in-out infinite alternate; }
.login-marca::after { animation: orbita-login-menor 18s ease-in-out infinite alternate; }
@keyframes orbita-login { from { transform: translate(0,0) scale(1); opacity: .6; } to { transform: translate(-65px,90px) scale(1.1); opacity: 1; } }
@keyframes orbita-login-menor { from { transform: translate(0,0) scale(1); } to { transform: translate(65px,-45px) scale(1.15); } }
.login-marca.animacao-pausada::before, .login-marca.animacao-pausada::after { animation-play-state: paused; }
.controle-animacao { position: absolute; z-index: 2; bottom: 1.25rem; right: 1.5rem; padding: .4rem .65rem; background: rgba(17,24,29,.55); color: #e2e6e9; border: 1px solid rgba(255,255,255,.22); border-radius: 6px; font: inherit; font-size: .7rem; cursor: pointer; }
.painel-crons > p { color: var(--texto-suave); font-size: .85rem; }
.caminho-php { max-width: 650px; margin: 1.25rem 0; }
.lista-crons { display: grid; gap: 1rem; }
.cron-item { min-width: 0; padding: 1.1rem; background: #f8f9f9; border: 1px solid var(--linha); border-radius: 10px; }
.cron-cabecalho { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.cron-cabecalho h4 { margin: 0; font-size: .95rem; }
.cron-cabecalho p { margin: .35rem 0 0; font-size: .8rem; color: var(--texto-suave); }
.cron-frequencia { flex-shrink: 0; color: var(--vermelho); font-size: .78rem; font-weight: 600; }
.cron-agenda { font-size: .8rem; }
.cron-agenda code { margin: 0 .4rem; font-weight: 600; }
.cron-agenda small { color: var(--texto-suave); }
.cron-comando { display: flex; align-items: center; gap: 1rem; padding: .75rem; background: #fff; border: 1px solid var(--linha); border-radius: 8px; }
.cron-comando code { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: .78rem; }
.cron-comando .botao { flex-shrink: 0; }
@media(max-width:1180px) { .filtros-financeiro .grade-form { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) {
    .pagina-modulo .cabecalho-secao { display: flex; flex-direction: column; align-items: stretch; }
    .pagina-modulo .cabecalho-secao > .botao { align-self: flex-start; }
    .formulario.filtros-servidor { display: grid; grid-template-columns: minmax(0,1fr); }
    .filtros-servidor > .campo { max-width: none; }
    .filtros-servidor > .botao { justify-self: start; }
    .filtros-financeiro .grade-form { grid-template-columns: minmax(0,1fr); }
    .cron-cabecalho, .cron-comando { flex-direction: column; align-items: stretch; }
    .cron-comando .botao { align-self: flex-start; }
    .modal > form { padding: 1.15rem; }
    .modal-topo h3 { font-size: 1.2rem; }
}
@media(prefers-reduced-motion:reduce) { .login-marca::before, .login-marca::after { animation: none !important; } .controle-animacao { display: none; } }

/* Contratação, editor e configurações — 1.1.2 */
[data-view="configuracoes"] { --espaco-configuracoes: 1.5rem; }
[data-view="configuracoes"] > .grade-config { margin-bottom: var(--espaco-configuracoes); }
[data-view="configuracoes"] > .cartao { margin-top: 0; margin-bottom: var(--espaco-configuracoes); }
[data-view="configuracoes"] > .cartao:last-child { margin-bottom: 0; }
.tabela-planos { min-width: 980px !important; }
.link-contratacao code { display: block; max-width: 260px; margin-bottom: .65rem; font-size: .72rem; overflow-wrap: anywhere; }
.link-contratacao .acoes-flex { gap: .7rem; }
.link-contratacao .link-seta { font-size: .78rem; }

[data-rich-editor] .area-editor-email { min-height: 220px; }

[data-editor-enhanced][hidden] { display: none !important; }
.area-editor-email strong, .area-editor-email b, .comunicado-mensagem strong, .comunicado-mensagem b { font-weight: 700; }

.pagina-modulo .lista-resumo { padding: 1rem 0; border-bottom: 1px solid var(--linha); }
.pagina-modulo .lista-resumo:first-of-type { padding-top: .25rem; }
.pagina-modulo .lista-resumo:last-of-type { border-bottom: 0; }
/* Emissão antecipada, diagnóstico operacional e solicitações de cancelamento. */
.grade-inferior>*,.grade-destaques>*{min-width:0}
.lista-alertas,.lista-cancelamentos{display:grid;gap:12px;padding:0;margin:20px 0;list-style:none}
.alerta-automacao{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid #e4d4af;border-left:4px solid #b07714;border-radius:12px;background:#fffaf0}
.alerta-automacao.nivel-erro{border-color:#edc8c8;border-left-color:#c54c4c;background:#fff7f7}
.alerta-automacao>div{flex:1;min-width:0}.alerta-automacao strong{color:var(--texto,#182b32)}
.alerta-automacao p{margin:6px 0 0;overflow-wrap:anywhere}.alerta-automacao>.botao{flex-shrink:0}
.cancelamento-servico,.resumo-cancelamentos{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cancelamento-servico{padding:16px 0;border-bottom:1px solid var(--borda,#e4ece8)}
.cancelamento-servico>div{min-width:0;overflow-wrap:anywhere}.cancelamento-servico small{display:block;margin-top:5px}
.texto-preservado{white-space:pre-wrap;overflow-wrap:anywhere}.badge-concluido{background:#e5f3eb;color:#236443}.badge-recusado{background:#fde9e9;color:#a53838}
[data-emissao-preview]{padding:14px;border-radius:10px;background:#f0f7f3;min-height:0}
[data-emissao-preview]:empty{display:none}
.painel-alertas .cartao-topo h2{font-size:22px}
@media(max-width:800px){.alerta-automacao{flex-wrap:wrap}.alerta-automacao>.botao{margin-left:0}.cancelamento-servico,.resumo-cancelamentos{align-items:flex-start;flex-direction:column}.painel-alertas .cartao-topo{flex-wrap:wrap}}

/* Acesso, recuperação e filtros de clientes — v1.2.1. */
.link-acesso{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .45rem;margin-left:-.45rem;border-radius:6px;color:var(--vermelho);font-weight:600;transition:background .18s,color .18s,transform .18s}
.link-acesso:hover,.link-acesso:focus-visible{background:rgba(201,15,28,.08);color:#940a15;transform:translateX(2px);text-decoration:underline;text-underline-offset:3px}
.link-acesso .icone{width:17px;height:17px;flex-shrink:0}
.pagina-recuperacao .login-area{min-height:100vh;min-height:100dvh}
.marca-recuperacao{display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.5rem;padding:1rem 1.4rem;border-radius:10px;background:#fff;border:1px solid var(--linha)}
.marca-recuperacao img{display:block;width:180px;max-width:100%;height:auto}
.pagina-recuperacao .login-box-topo h1{margin:.7rem 0 .75rem;font-size:1.7rem;line-height:1.25}
.pagina-recuperacao .login-box-topo p{line-height:1.65}
.pagina-recuperacao .ajuda-login{margin-top:1.75rem;padding-top:1.25rem}
.pagina-recuperacao .rodape-login{margin-top:1.5rem;text-align:center}
.filtros-clientes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:end}
.filtros-clientes .campo{min-width:0;margin:0}
.filtros-clientes .filtro-busca{grid-column:span 2}
.filtros-clientes .filtros-acoes{grid-column:1/-1;margin:0}
.barra-lateral{height:100vh;height:100dvh;overflow:hidden}
.barra-marca,.cliente-resumo,.barra-rodape{flex-shrink:0}
.menu-principal{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;align-content:start;scrollbar-width:thin;scrollbar-color:#687078 transparent}
@media(max-width:1000px){.filtros-clientes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.filtros-clientes{grid-template-columns:minmax(0,1fr)}.filtros-clientes .filtro-busca{grid-column:auto}.filtros-clientes .filtros-acoes .botao{flex:1}.pagina-recuperacao .login-box-topo h1{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.link-acesso{transition:none}.link-acesso:hover,.link-acesso:focus-visible{transform:none}}

#editar-cliente{padding:1.6rem}
#editar-cliente>.modal-topo{margin-bottom:1.4rem}
#editar-cliente>.modal-topo h2{font-size:1.5rem;line-height:1.25;overflow-wrap:anywhere}
#editar-cliente>.modal-topo>div{min-width:0}
#editar-cliente>form{padding:0}
@media(max-width:600px){#editar-cliente{padding:1.25rem}}

/* Gestão de serviço: campos agrupados por finalidade. */
.editor-servico .cartao-topo{align-items:flex-start;gap:1rem}
.editor-servico .cartao-topo h2{font-size:1.6rem}
.editor-servico .cartao-topo p:not(.sobretitulo){margin:.6rem 0 0;color:var(--texto-suave);font-size:.9rem}
.editor-servico .formulario-servico{gap:1.5rem}
.editor-servico fieldset legend{padding:0 .4rem;color:var(--texto);font-size:1rem;font-weight:700}
.editor-servico fieldset .campo{min-width:0;margin:0}
.editor-servico .etapas-servico{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.editor-servico .etapas-servico label{display:flex;align-items:center;gap:.6rem;min-width:0}
.editor-servico .previsao-servico{padding:.9rem 1rem;border-radius:8px;background:var(--vermelho-claro);color:var(--vermelho-escuro);font-size:.9rem;line-height:1.6}
.editor-servico .acoes-servico{padding-top:.25rem}
.editor-servico .rodape-dados-tecnicos{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--linha)}
.editor-servico .rodape-dados-tecnicos p{margin:0;color:var(--texto-suave);font-size:.9rem}
@media(max-width:600px){.editor-servico .cartao-topo{flex-direction:column}.editor-servico .etapas-servico{grid-template-columns:minmax(0,1fr)}.editor-servico .acoes-servico>.botao,.editor-servico .rodape-dados-tecnicos form,.editor-servico .rodape-dados-tecnicos .botao{width:100%}}

/* Saúde do sistema — organização das seções, v1.2.4. */
.pagina-saude .conteudo-principal { display: flex; flex-direction: column; gap: 1.75rem; }
.pagina-saude .conteudo-principal > * { min-width: 0; margin-top: 0; margin-bottom: 0; }
.pagina-saude .saude-secao { display: grid; gap: 1rem; }
.pagina-saude .saude-secao-cabecalho h2 { margin: 0 0 .35rem; font-size: 1.3rem; }
.pagina-saude .saude-secao-cabecalho p { margin: 0; color: var(--texto-suave); font-size: .9rem; }
.pagina-saude .grade-saude > * { min-width: 0; }
.pagina-saude .saude-largura-total { grid-column: 1 / -1; }
.pagina-saude .saude-acao { align-self: flex-start; margin-top: auto; }
.pagina-saude .cartao-saude > .saude-acao { padding-top: .7rem; padding-bottom: .7rem; }
.pagina-saude .cartao-saude > :has(+ .saude-acao) { margin-bottom: 1.1rem; }
.pagina-saude .saude-fila-contadores { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pagina-saude .painel-alertas > p:last-child { margin-bottom: 0; }
.pagina-saude .painel-alertas .lista-alertas { margin-bottom: 1rem; }
.pagina-saude .saude-largura-total .cartao-topo { align-items: center; flex-wrap: wrap; }
.pagina-saude .saude-largura-total .saude-contadores { max-width: 650px; }
.pagina-saude .saude-atualizado { line-height: 1.6; }
@media (max-width: 1100px) {
  .pagina-saude .grade-saude { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .pagina-saude .conteudo-principal { gap: 1.5rem; }
  .pagina-saude .saude-cartao-cabecalho { flex-wrap: wrap; }
  .pagina-saude .saude-acao { align-self: stretch; text-align: center; }
  .pagina-saude .saude-detalhe { flex-direction: column; gap: .35rem; }
  .pagina-saude .saude-detalhe > strong { text-align: left; }
  .pagina-saude .alerta-automacao > .botao { width: 100%; }
  .pagina-saude .saude-duas-colunas > div { padding: .7rem .6rem; }
}

/* Visão do cliente, relatórios e edição compacta de e-mails — 1.3.0. */
[data-painel-aba][hidden], .modelo-email-form[hidden] { display: none !important; }
.nav-abas { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0 0 1.5rem; }
.nav-abas .aba-ativa { color: #fff; border-color: var(--vermelho); background: var(--vermelho); }
.nav-abas .botao { white-space: normal; }
[data-painel-aba] { min-width: 0; }
[data-view="emails"] .cartao-email-config { margin-bottom: 1.5rem; }
[data-view="emails"] .cartao-email-config:last-child { margin-bottom: 0; }
.seletor-modelo-email { display: flex; align-items: end; gap: 1rem; margin-bottom: 1.25rem; }
.seletor-modelo-email .campo { flex: 1; }
.modelo-email-form fieldset { margin: 0; }
.variaveis-modelo-email { padding: .8rem 1rem; border: 1px solid var(--linha); border-radius: 9px; }
.variaveis-modelo-email summary { cursor: pointer; font-weight: 600; }
.variaveis-modelo-email p { margin: .8rem 0 0; line-height: 2; overflow-wrap: anywhere; }
.variaveis-modelo-email code { font-size: .82rem; }
.aviso-entregabilidade summary { cursor: pointer; font-weight: 650; }
.ficha-cliente-dados { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 0 0 1.4rem; }
.ficha-cliente-dados div { min-width: 0; padding-top: .8rem; border-top: 1px solid var(--linha); }
.ficha-cliente-dados dt { color: var(--texto-suave); font-size: .8rem; }
.ficha-cliente-dados dd { margin: .35rem 0 0; font-weight: 600; overflow-wrap: anywhere; }
.resumo-relatorios { grid-template-columns: repeat(3,minmax(0,1fr)); }
.resumo-relatorios .metrica strong { overflow-wrap: anywhere; }
.ficha-cliente-resumo .cartao-topo { flex-wrap: wrap; }
.ficha-cliente-resumo .cartao-topo p:not(.sobretitulo) { margin: .45rem 0 0; color: var(--texto-suave); }
.abas-cliente { margin-top: 1.5rem; }
.abas-cliente > section > .cartao-topo { align-items: center; flex-wrap: wrap; }
.ficha-servico-cliente { min-width: 0; }
.checklist-compacto { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.checklist-compacto .check-item { padding: .75rem; }
.checklist-compacto .check-item strong { font-size: .8rem; }
.linha-tempo-cliente { list-style: none; margin: 1rem 0 0; padding: 0; }
.linha-tempo-cliente li { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1rem 0 1rem 1rem; border-left: 3px solid var(--linha); border-bottom: 1px solid var(--linha); }
.linha-tempo-cliente li + li { margin-top: .6rem; }
.linha-tempo-cliente li > div { min-width: 0; flex: 1; }
.linha-tempo-cliente small { color: var(--texto-suave); }
.linha-tempo-cliente h3 { font-size: 1rem; margin: .45rem 0; }
.linha-tempo-cliente p { margin: 0; overflow-wrap: anywhere; font-size: .87rem; }
.linha-tempo-cliente .link-seta { flex-shrink: 0; font-size: .8rem; }
@media(max-width:1100px) { .ficha-cliente-dados { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  .resumo-relatorios,.ficha-cliente-dados { grid-template-columns:minmax(0,1fr); }
  .nav-abas { gap: .5rem; }
  .nav-abas .botao { flex: 1 1 auto; }
  .seletor-modelo-email { flex-direction:column; align-items:stretch; }
  .linha-tempo-cliente li { flex-direction:column; }
  .checklist-compacto { grid-template-columns:minmax(0,1fr); }
  .ficha-cliente-resumo .acoes-flex > .botao { width:100%; }
}

/* O editor selecionado ocupa a largura inteira e mantém a mensagem em uma área rolável. */
[data-modelo-email-abrir][hidden] { display:none !important; }
.editor-templates-email.modelo-email-form { display:block; }
.modelo-email-form .area-editor-email { min-height:260px; max-height:420px; overflow-y:auto; }
.abas-cliente > section > .cartao-topo h2 { margin:0; font-size:1.4rem; line-height:1.4; }
@media(max-width:600px) { .modelo-email-form .area-editor-email { min-height:240px; max-height:360px; } }

/* Base de conhecimento: leitura, administração e arquivos. */
.kb-filtros .grade-form { grid-template-columns: minmax(220px,2fr) repeat(3,minmax(140px,1fr)); }
.kb-grade-artigos { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem; }
.kb-card-artigo { display:flex; flex-direction:column; justify-content:space-between;gap:1.4rem; }
.kb-card-artigo h2 { font-size:1.25rem;line-height:1.4; margin:.5rem 0; }
.kb-card-artigo h2 a { color:var(--texto);text-decoration:none; }
.kb-card-artigo h2 a:hover { color:var(--vermelho); }
.kb-card-artigo p,.kb-resumo { line-height:1.65;overflow-wrap:anywhere; }
.kb-leitura-layout,.kb-edicao-layout { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;align-items:start; }
.kb-artigo-lateral { display:grid;gap:1.25rem; }
.kb-artigo h2,.kb-publicacao h2,.kb-categoria-form h2,.kb-anexos-admin h2 { font-size:1.5rem;line-height:1.35; }
.kb-artigo-topo { border-bottom:1px solid var(--linha);padding-bottom:1.2rem;margin-bottom:1.7rem; }
.kb-artigo-topo h2 { font-size:2rem;line-height:1.3;overflow-wrap:anywhere; }
.kb-conteudo { line-height:1.8;overflow-wrap:anywhere; }
.kb-conteudo p { margin:0 0 1rem; }
.kb-conteudo h2,.kb-conteudo h3,.kb-conteudo h4 { margin:1.5rem 0 .75rem;line-height:1.4; }
.kb-conteudo h2 { font-size:1.5rem; }.kb-conteudo h3 { font-size:1.25rem; }
.kb-conteudo img { display:block;max-width:100%;height:auto;border-radius:10px;margin:1rem auto; }
.kb-conteudo ul,.kb-conteudo ol { padding-left:1.6rem;margin:1rem 0; }.kb-conteudo li { margin:.4rem 0; }
.kb-conteudo a,.kb-relacionados a { color:#a10c17;text-decoration:underline;text-underline-offset:3px; }
.kb-conteudo a:hover,.kb-relacionados a:hover { color:#d00016; }
.kb-conteudo blockquote { margin:1rem 0;padding:.7rem 1rem;border-left:3px solid #d00016;background:#f6f7f8; }
.kb-conteudo pre { padding:1rem;background:#f6f7f8;border:1px solid var(--linha);border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere;font-family:monospace; }
.kb-anexos-leitura { margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--linha); }
.kb-lista-anexos { display:grid;gap:.85rem; }
.kb-download { display:flex;align-items:center;gap:.85rem;padding:1rem;border:1px solid var(--linha);border-radius:10px;color:var(--texto);text-decoration:none; }
.kb-download:hover { border-color:#d00016;background:#fff8f8; }
.kb-download span { min-width:0; }.kb-download strong,.kb-download small,.kb-anexo-admin strong,.kb-anexo-admin small { display:block;overflow-wrap:anywhere; }
.kb-download small,.kb-anexo-admin small { color:var(--texto-suave);font-size:.8rem;margin-top:.35rem; }
.kb-anexo-admin { display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid var(--linha);border-radius:10px; }
.kb-anexo-admin>div:first-child { min-width:0; }.kb-anexo-admin .acoes-flex { flex-shrink:0; }
.kb-relacionados { margin:1rem 0 0;padding-left:1rem; }.kb-relacionados li { margin:.7rem 0; }
.kb-editor-form .campo { margin-bottom:1rem; }.kb-publicacao { display:grid;gap:1rem; }.kb-publicacao .campo { margin:0; }
.kb-editor .area-editor-email { min-height:420px;max-height:720px;overflow-y:auto; }
.kb-editor-links { display:flex;align-items:end;gap:.75rem;padding:.75rem;border-bottom:1px solid var(--linha); }.kb-editor-links .campo { flex:1;margin:0; }
.kb-upload-form { padding:1rem;background:#f7f8f9;border:1px solid var(--linha);border-radius:10px;margin-bottom:1.25rem; }
.kb-upload-form progress { width:100%;height:14px;accent-color:#d00016; }
.kb-status-upload { min-height:1.4rem;overflow-wrap:anywhere; }
.kb-categoria-form .grade-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:1200px) { .kb-grade-artigos { grid-template-columns:repeat(2,minmax(0,1fr)); }.kb-filtros .grade-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.kb-anexo-admin { align-items:start;flex-direction:column; } }
@media(max-width:900px) { .kb-leitura-layout,.kb-edicao-layout { grid-template-columns:minmax(0,1fr); }.kb-artigo-lateral { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .kb-grade-artigos,.kb-filtros .grade-form,.kb-categoria-form .grade-form,.kb-artigo-lateral { grid-template-columns:minmax(0,1fr); }.kb-editor-links { align-items:stretch;flex-direction:column; }.kb-artigo-topo h2 { font-size:1.5rem; }.kb-editor .area-editor-email { min-height:320px;max-height:540px; }.kb-anexo-admin .acoes-flex { flex-shrink:1; }.kb-publicacao { gap:.85rem; } }

.kb-editor [hidden],.kb-anexos-admin [hidden] { display:none !important; }

/* Aplicativo instalável da Central */
.pwa-instalar[hidden]{display:none!important}
.pwa-instalar{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:11px 14px;border:1px solid #e4e7ec;border-radius:12px;background:#fff;color:#343b47;font:inherit;font-size:.88rem;font-weight:650;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.pwa-instalar:hover{background:#fff4f5;border-color:#e9a0a7;color:#b50d1b}
.pwa-instalar:focus-visible{outline:2px solid #c90f1c;outline-offset:3px}
.pwa-instalar svg{width:18px;height:18px;flex-shrink:0}
.pwa-instalar:disabled{opacity:.65;cursor:wait}
.barra-rodape .pwa-instalar{margin-bottom:12px}
.login-box .pwa-instalar{margin-top:22px}
.pwa-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:24px;align-items:start}
.pwa-layout>.cartao,.pwa-coluna>.cartao{min-width:0}
.pwa-coluna{display:grid;gap:24px}
.pwa-opcoes{display:grid;gap:14px;margin:6px 0 20px}
.pwa-layout input[type=color]{height:48px;width:100%;padding:5px;cursor:pointer}
.pwa-layout .campo small{line-height:1.5;color:#687180;margin-top:5px}
.pwa-preview-fundo{display:grid;justify-items:center;gap:14px;padding:26px 16px;border-radius:18px;margin:16px 0}
.pwa-preview-fundo img{border-radius:24px;box-shadow:0 8px 24px #171e2615}
.pwa-preview-fundo strong{overflow-wrap:anywhere;text-align:center;background:#fff;color:#171e26;border-radius:8px;padding:4px 10px}
.pwa-preview p{margin-bottom:16px}
.pwa-config-atalho{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:24px 0}
.pwa-ajuda{max-width:480px;padding:30px}
.pwa-ajuda h2{margin-bottom:14px}
.pwa-ajuda p{margin-bottom:20px;line-height:1.65}
@media(max-width:1000px){.pwa-layout{grid-template-columns:1fr}.pwa-coluna{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.pwa-coluna{grid-template-columns:1fr}.pwa-config-atalho{flex-direction:column;align-items:flex-start}.pwa-ajuda{padding:24px}.pwa-layout{gap:18px}.pwa-coluna{gap:18px}}

/* Oferta promocional do catálogo */
.oferta-plano-config{display:grid;gap:16px;border:1px solid #ead5d8;background:#fff8f9;border-radius:14px;padding:20px;margin:8px 0}
.oferta-plano-config legend{font-weight:700;color:#a60d19;padding:0 7px}
.oferta-plano-config .texto-suave{margin:0;line-height:1.6}
.oferta-plano-config .campo small{line-height:1.5;color:#687180}
.oferta-preco{color:#a60d19!important;font-weight:600}
.oferta-destaque{font-weight:700;color:#a60d19;margin:8px 0 12px}
.oferta-registrada{border:1px solid #ead5d8;border-left:4px solid #c90f1c;background:#fff8f9;border-radius:12px;padding:18px;margin:18px 0}
.oferta-registrada p{margin:8px 0 0;line-height:1.6}
@media(max-width:600px){.oferta-plano-config{padding:16px}.oferta-registrada{padding:16px}}

/* Edição e diagnóstico de e-mails */
.email-variaveis { display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem; }
.email-variaveis button { max-width:100%;overflow-wrap:anywhere; }
.email-editor-feedback { min-height:1.5em;color:var(--vermelho);font-size:.9rem;overflow-wrap:anywhere; }
.email-teste-modelo { margin-top:1rem;border-top:1px solid var(--linha);padding-top:1rem; }
.email-teste-modelo summary,.email-historico summary { cursor:pointer;font-weight:600; }
.email-teste-modelo .campo { margin:1rem 0;max-width:500px; }
.email-fila-resumo { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1.25rem 0; }
.email-fila-metrica { display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--fundo);border:1px solid var(--linha);border-radius:10px;color:var(--grafite);text-decoration:none; }
.email-fila-metrica strong { font-size:1.7rem; }
.email-fila-metrica:hover { border-color:var(--vermelho); }
.filtros-emails { margin:1rem 0 1.5rem; }
.email-preview-controles { display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;margin:1rem 0; }
.email-preview-controles .campo { min-width:200px; }
[data-email-preview-summary] { white-space:pre-line;overflow-wrap:anywhere; }
.frame-preview-email { width:100%;height:65vh;min-height:360px;background:#f2f3f5;border:1px solid var(--linha); }
.modal-preview-email[data-device="mobile"] .frame-preview-email { display:block;width:min(390px,100%);margin:auto; }
.email-preview-text,.email-texto-historico { white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6;max-height:65vh;overflow:auto;padding:1rem;background:#f7f8fa;border:1px solid var(--linha); }
.frame-preview-email[hidden],.email-preview-text[hidden] { display:none!important; }
.email-historico .registro-historico { align-items:flex-start;gap:1rem; }
.email-historico .registro-historico > div { min-width:0;flex:1; }
[data-email-device][aria-pressed="true"],[data-email-plain][aria-pressed="true"] { background:var(--vermelho);color:#fff; }
@media(max-width:700px) { .email-fila-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }.email-preview-controles { align-items:stretch;flex-direction:column; }.email-historico .registro-historico { flex-direction:column; }.testar-email-form { flex-direction:column;align-items:stretch; } }
.email-editor-feedback:empty { min-height:0;margin:0; }

/* Solicitação pública de contratação */
.pagina-contratacao { background: #f2f4f5; }
.pagina-contratacao .instalador-topo > a { display: block; min-width: 0; }
.pagina-contratacao .instalador-topo > div { min-width: 0; }
.contratacao-cartao { padding: 1.75rem; }
.contratacao-form { gap: 1.4rem; }
.contratacao-bloco { display: grid; gap: 1rem; min-width: 0; padding: 1.4rem; border: 1px solid var(--linha); border-radius: 12px; }
.contratacao-bloco > h2 { display: flex; align-items: center; gap: .6rem; margin: 0; font-size: 1.1rem; }
.contratacao-bloco > h2 .icone { color: var(--vermelho); }
.contratacao-bloco .grade-form { margin: 0; }
.contratacao-bloco > p { margin: 0; }
.contratacao-opcional { display: inline-block; margin-left: .3rem; font-size: .72rem; font-weight: 400; color: var(--texto-suave); }
.contratacao-dica { padding: .85rem 1rem; border-radius: 8px; background: #f3f5f6; font-size: .88rem; line-height: 1.6; overflow-wrap: anywhere; }
.contratacao-erro { color: #b50d1a !important; font-weight: 600; }
.contratacao-form [aria-invalid="true"] { border-color: #b50d1a; }
.contratacao-final { background: #fafbfc; }
.contratacao-final .check-simples { align-items: flex-start; font-weight: 400; line-height: 1.6; }
.contratacao-final .check-simples input { flex: 0 0 auto; margin-top: .35rem; }
.contratacao-final .botao { width: 100%; min-height: 48px; }
/* Resumo comercial: identificação do plano e tabela de valores. */
.contratacao-bloco.contratacao-plano { padding: 0; gap: 0; border: 1px solid #cbd1d5; border-radius: 12px; overflow: hidden; background: #fff; }
.contratacao-plano > h2 { padding: .9rem 1.2rem; gap: .75rem; font-size: 1.16rem; font-weight: 700; color: #fff; background: var(--grafite-2); }
.contratacao-plano-icone { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 7px; background: var(--vermelho); }
.contratacao-plano > h2 .icone { color: #fff; width: 21px; height: 21px; }
.resumo-plano-contratacao { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1.75rem; align-items: start; padding: 1.4rem; min-width: 0; }
.contratacao-plano-identidade { min-width: 0; }
.contratacao-produto { display: flex; align-items: center; gap: .45rem; color: var(--vermelho-escuro); font-size: .8rem; font-weight: 600; margin: 0 0 .65rem; }
.contratacao-produto .icone { width: 18px; height: 18px; flex: 0 0 auto; }
.resumo-plano-contratacao h3 { font-size: 1.4rem; font-weight: 700; line-height: 1.25; margin: 0; overflow-wrap: anywhere; }
.resumo-plano-contratacao .descricao-plano { margin: .7rem 0 0; white-space: pre-line; color: var(--texto-suave); font-size: .9rem; line-height: 1.6; overflow-wrap: anywhere; }
.contratacao-plano-valores { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; font-size: .86rem; }
.contratacao-plano-valores th, .contratacao-plano-valores td { padding: .8rem .9rem; border-bottom: 1px solid var(--linha); vertical-align: middle; text-align: left; }
.contratacao-plano-valores thead th { padding-top: .6rem; padding-bottom: .6rem; background: #eef1f3; color: #4d5962; font-size: .72rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.contratacao-plano-valores th:first-child { width: 54%; }
.contratacao-plano-valores thead th:last-child, .contratacao-plano-valores td { text-align: right; }
.contratacao-plano-valores tbody th { background: transparent; font-size: inherit; font-weight: 500; color: var(--texto); text-transform: none; letter-spacing: normal; overflow-wrap: anywhere; }
.contratacao-plano-valores td strong { display: block; font-size: 1.22rem; font-weight: 700; line-height: 1.25; white-space: nowrap; }
.contratacao-plano-valores small { display: block; margin-top: .2rem; color: #667078; font-size: .75rem; font-weight: 400; }
.contratacao-plano-valores .contratacao-plano-oferta, .contratacao-plano-valores .contratacao-plano-oferta:hover { background: #fff0f1; }
.contratacao-plano-oferta th span { font-weight: 600; }
.contratacao-plano-oferta td strong { color: var(--vermelho); font-size: 1.6rem; }
.contratacao-plano-regular td strong { color: var(--vermelho); font-size: 1.6rem; }
.contratacao-plano-valores tbody tr:hover { background: transparent; }
.contratacao-plano > .contratacao-plano-condicao { display: flex; align-items: flex-start; gap: .55rem; margin: 0; padding: .8rem 1.4rem; font-size: .8rem; line-height: 1.6; color: #52606a; background: #f5f7f8; border-top: 1px solid var(--linha); }
.contratacao-plano-condicao .icone { flex: 0 0 auto; width: 17px; height: 17px; margin-top: .1rem; }
@media(max-width:760px) {
    .resumo-plano-contratacao { grid-template-columns: 1fr; gap: 1.2rem; }
}
.contratacao-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding-top: 1.4rem; margin-top: 1.4rem; border-top: 1px solid var(--linha); }
.contratacao-confirmacao { text-align: center; max-width: 680px; margin: 0 auto 1.5rem; }
.contratacao-confirmacao h2 { font-size: 1.6rem; }
.contratacao-check { display: inline-flex; padding: .8rem; margin-bottom: 1rem; color: #247044; background: #eaf5ee; border-radius: 50%; }
.contratacao-check .icone { width: 32px; height: 32px; }
.contratacao-recibo { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; padding: 1.3rem; border: 1px solid var(--linha); border-radius: 10px; margin: 0 0 1.4rem; }
.contratacao-recibo dt { color: var(--texto-suave); font-size: .85rem; margin-bottom: .35rem; }
.contratacao-recibo dd { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.contratacao-proximos { margin: 0 0 1.5rem; }
.contratacao-proximos h3 { display: flex; gap: .5rem; align-items: center; }
.contratacao-proximos li { padding: .35rem 0; }
.contratacao-informacoes h2 { font-size: 1.2rem; margin-top: 1.5rem; }
.contratacao-informacoes h2:first-child { margin-top: 0; }
@media(max-width:640px) {
    .pagina-contratacao .instalador-topo > a, .pagina-contratacao .instalador-topo > div { grid-column: 1 / -1; }
    .contratacao-cartao { padding: 1rem; }
    .contratacao-bloco { padding: 1rem; }
    .contratacao-recibo { grid-template-columns: 1fr; }
    .contratacao-links { flex-direction: column; align-items: flex-start; }
}

/* Leitura das condições sem sair do formulário. */
.contratacao-leitura-aberta { overflow: hidden; }
.contratacao-modal { width: min(94vw, 760px); max-height: min(90vh, 900px); padding: 1.5rem; }
.contratacao-modal[open] { display: grid; grid-template-rows: auto minmax(0,1fr) auto; gap: 1rem; overflow: hidden; }
.contratacao-modal .modal-topo { align-items: flex-start; }
.contratacao-modal .modal-topo h2 { margin: 0; font-size: 1.3rem; }
.contratacao-modal .fechar-modal { flex: 0 0 auto; }
.contratacao-modal-leitura { overflow-y: auto; overscroll-behavior: contain; padding-right: .5rem; }
.contratacao-modal-leitura > h2 { font-size: 1.05rem; margin: 1.3rem 0 .6rem; }
.contratacao-modal-leitura > h2:first-child { margin-top: 0; }
.contratacao-modal-leitura p { font-size: .92rem; line-height: 1.7; }
.contratacao-modal-rodape { display: flex; justify-content: flex-end; border-top: 1px solid var(--linha); padding-top: 1rem; }
.contratacao-documento { display: block; border: 1px solid var(--linha); width: 100%; height: min(60vh, 540px); background: #fff; }
.contratacao-documento-ajuda { margin-bottom: 0; }
@media(max-width:640px) {
    .contratacao-plano > h2 { padding: .8rem 1rem; }
    .resumo-plano-contratacao { padding: 1rem; }
    .resumo-plano-contratacao h3 { font-size: 1.3rem; }
    .contratacao-plano-valores th, .contratacao-plano-valores td { padding-left: .65rem; padding-right: .65rem; }
    .contratacao-plano-oferta td strong, .contratacao-plano-regular td strong { font-size: 1.4rem; }
    .contratacao-plano > .contratacao-plano-condicao { padding: .8rem 1rem; }
    .contratacao-modal { padding: 1rem; }
    .contratacao-modal .modal-topo h2 { font-size: 1.15rem; }
    .contratacao-modal-rodape .botao { width: 100%; }
}

/* Catálogo: filtros e cálculo do pagamento anual. */
.planos-filtros { gap: 1.2rem; }
.planos-filtros-topo h2 { display: flex; align-items: center; gap: .5rem; margin: 0 0 .35rem; font-size: 1.1rem; }
.planos-filtros-topo .icone { color: var(--vermelho); }
.planos-filtros-topo p { margin: 0; color: var(--texto-suave); font-size: .85rem; }
.planos-filtros-campos { display: grid; grid-template-columns: minmax(220px,2fr) repeat(2,minmax(150px,1fr)); gap: 1rem; align-items: end; }
.planos-filtros-campos .campo { min-width: 0; }
.planos-filtros-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; align-items: center; }
.planos-filtros-acoes .botao { width: 100%; padding-left: .5rem; padding-right: .5rem; font-size: .82rem; white-space: nowrap; }
.plano-modal .campo > span .icone { width: 17px; height: 17px; vertical-align: middle; margin-right: .25rem; color: var(--vermelho); }
.plano-precos { margin: 0; padding: 1.1rem; border: 1px solid var(--linha); border-radius: 10px; }
.plano-precos legend { font-size: .95rem; font-weight: 700; padding: 0 .35rem; }
.plano-precos .grade-form { margin: 0; }
.plano-anual-previa { display: grid; gap: .35rem; padding: .9rem 1rem; border-left: 3px solid var(--vermelho); background: #f5f7f8; }
.plano-anual-previa > span { font-size: .85rem; }
.plano-anual-previa strong { color: var(--vermelho); font-size: 1.4rem; }
.plano-anual-previa small, .plano-legado { color: var(--texto-suave); font-size: .8rem; line-height: 1.6; }
.planos-precos-lista > div + div { margin-top: .6rem; }
.planos-precos-lista span { margin-left: .25rem; color: var(--texto-suave); font-size: .75rem; }
.planos-links-modalidade { display: flex; gap: 1rem; margin-top: .6rem; }
.contratacao-plano-opcoes { min-width: 0; }
.contratacao-ciclos { padding: 0; border: 0; margin: 0 0 1rem; }
.contratacao-ciclos legend { padding: 0 0 .5rem; font-size: .8rem; font-weight: 600; }
.contratacao-ciclos-opcoes { display: flex; gap: .6rem; }
.contratacao-ciclos-opcoes label { display: flex; flex: 1; align-items: center; gap: .4rem; padding: .65rem .75rem; border: 1px solid #cbd1d5; border-radius: 7px; cursor: pointer; font-size: .85rem; }
.contratacao-ciclos-opcoes label:has(input:checked) { border-color: var(--vermelho); color: var(--vermelho-escuro); background: #fff0f1; }
.contratacao-ciclos-opcoes input { accent-color: var(--vermelho); width: 16px; height: 16px; flex: 0 0 auto; }
.contratacao-ciclos-opcoes span { display: inline-flex; gap: .35rem; align-items: center; }
.contratacao-ciclos-opcoes .icone { width: 17px; height: 17px; }
.contratacao-anual-detalhe { font-size: .8rem; line-height: 1.6; margin: .7rem 0 0; color: #52606a; }
[data-contratacao-condicao][hidden], [data-contratacao-oferta][hidden], [data-plano-anual][hidden], [data-plano-promocao][hidden], [data-contratacao-ciclos][hidden] { display: none !important; }
@media(max-width:1050px) { .planos-filtros-campos { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) {
    .planos-filtros-campos { grid-template-columns: 1fr; }
    .planos-filtros-acoes .botao { flex: 1; }
    .plano-precos { padding: .85rem; }
}

.contratacao-valores-anual th:first-child { width: 40%; }
.contratacao-valores-anual td strong { white-space: normal; overflow-wrap: anywhere; }
.pagina-modulo .tabela-planos { min-width: 1150px !important; table-layout: fixed; }
.tabela-planos th:nth-child(1) { width: 20%; }
.tabela-planos th:nth-child(2) { width: 13%; }
.tabela-planos th:nth-child(3) { width: 17%; }
.tabela-planos th:nth-child(4) { width: 12%; }
.tabela-planos th:nth-child(5) { width: 10%; }
.tabela-planos th:nth-child(6) { width: 20%; }
.tabela-planos th:nth-child(7) { width: 8%; }
@media(max-width:640px) { .contratacao-valores-anual .contratacao-plano-regular td strong { font-size: 1.2rem; } }

/* Contratação, histórico comercial e recuperação administrativa. */
.resumo-contratacao{margin:22px 0;padding:20px 0;border-top:1px solid var(--linha,#e4e7eb)}
.resumo-contratacao h3,.grade-seguranca h2{display:flex;align-items:center;gap:10px}
.resumo-contratacao h3 svg,.grade-seguranca h2 svg{width:22px;height:22px;flex:none;color:var(--vermelho,#c90f1c)}
.resumo-contratacao .ficha-servico{margin:16px 0}
.contrato-registro{margin-top:14px;border:1px solid var(--linha,#e4e7eb);border-radius:12px;padding:16px 18px}
.contrato-registro summary{cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center}
.contrato-registro summary strong,.contrato-registro summary small{display:block}
.contrato-registro summary small{margin-top:6px;color:var(--texto-suave,#677080);line-height:1.6}
.contrato-registro summary svg{width:20px;height:20px;flex:none}
.contrato-registro[open] summary{margin-bottom:18px}
.grade-seguranca{align-items:start;gap:24px}
.grade-seguranca .cartao{min-width:0}
.passos-mfa{padding-left:22px;margin:20px 0;line-height:1.8}
.passos-mfa li+li{margin-top:10px}
.lista-mfa-codigos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:22px 0}
.lista-mfa-codigos li{padding:14px;border:1px solid var(--linha,#e4e7eb);border-radius:10px;background:var(--fundo,#f6f7f9)}
.lista-mfa-codigos code{font-size:.87rem;overflow-wrap:anywhere;user-select:all}
.mfa-codigos{margin-bottom:24px}
@media(max-width:600px){.lista-mfa-codigos{grid-template-columns:1fr}.contrato-registro{padding:14px}.resumo-contratacao{margin-top:18px}.resumo-contratacao .acoes-flex{align-items:stretch}}
