/* PRECESST web — visual (cores da CESST) */
:root { --verde: #2F5D50; --verde-esc: #21443B; --verde-claro: #92D050; --tinta: #1F2A24; --cinza: #5F6B66; --linha: #D5DDD9;
  --fundo: #F3F6F5; --branco: #fff; --erro: #B42318; --aviso: #9A3412; --raio: 8px; }
* { box-sizing: border-box; }
html { font-size: 15px; }
body { margin: 0; font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif; color: var(--tinta); background: var(--fundo); line-height: 1.45; }
a { color: var(--verde); }
h1 { font-size: 1.5rem; margin: 0 0 .25rem; } h1 small { color: var(--cinza); font-weight: 400; font-size: 1rem; }
h2 { font-size: 1.1rem; margin: 0 0 .75rem; }
.sub { color: var(--cinza); margin: 0 0 1rem; }
.topo { display: flex; align-items: center; gap: 1rem; background: var(--branco); padding: .5rem 1.25rem; border-bottom: 3px solid var(--verde-claro); }
.marca { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--verde-esc); font-weight: 700; font-size: 1.15rem; }
.marca img { height: 38px; }
.conta { margin-left: auto; display: flex; gap: 1rem; align-items: center; font-size: .9rem; }
.conta .quem small { display: inline-block; background: var(--fundo); border: 1px solid var(--linha); border-radius: 99px; padding: 0 .5rem; margin-left: .25rem; color: var(--cinza); }
.menu-botao { display: none; margin-left: auto; background: none; border: 1px solid var(--linha); border-radius: 6px; font-size: 1.2rem; padding: .2rem .6rem; }
.menu { display: flex; flex-wrap: wrap; gap: .25rem; background: var(--verde); padding: .35rem 1rem; }
.menu a, .menu span { color: #fff; text-decoration: none; padding: .45rem .85rem; border-radius: 6px; font-size: .92rem; text-transform: uppercase; letter-spacing: .02em; }
.menu a:hover { background: rgba(255,255,255,.12); }
.menu a.ativo { background: var(--verde-esc); box-shadow: inset 0 -3px 0 var(--verde-claro); }
.menu .em-breve { opacity: .55; cursor: default; } .menu .em-breve small { text-transform: none; font-size: .7rem; }
.conteudo { max-width: 1280px; margin: 0 auto; padding: 1.25rem; }
.rodape { text-align: center; color: var(--cinza); font-size: .8rem; padding: 1.5rem 1rem; }
.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 1.25rem; margin: 1rem 0; }
.estreito { max-width: 720px; }
.titulo-linha { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .75rem; }
.botao { display: inline-block; border: 1px solid var(--linha); background: var(--branco); color: var(--tinta); padding: .5rem 1rem; border-radius: 6px;
  font: inherit; cursor: pointer; text-decoration: none; }
.botao:hover { border-color: var(--verde); }
.botao.primario { background: var(--verde); border-color: var(--verde); color: #fff; } .botao.primario:hover { background: var(--verde-esc); }
.botao.perigo { color: var(--erro); border-color: #F3C4BF; }
.botao.largo { width: 100%; }
.aviso { padding: .7rem 1rem; border-radius: 6px; margin: 0 0 1rem; border: 1px solid; }
.aviso-ok { background: #ECF6EE; border-color: #B7DDBF; color: #1E5631; }
.aviso-erro { background: #FDECEA; border-color: #F3C4BF; color: var(--erro); }
.aviso-aviso { background: #FFF4E5; border-color: #F6D5A8; color: var(--aviso); }
.filtros { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .75rem; }
.filtros input[name=q] { flex: 1 1 280px; }
input, select, textarea { font: inherit; padding: .5rem .6rem; border: 1px solid var(--linha); border-radius: 6px; background: #fff; color: var(--tinta); width: 100%; }
.filtros input, .filtros select { width: auto; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(47,93,80,.25); border-color: var(--verde); }
input:disabled, select:disabled, textarea:disabled { background: var(--fundo); color: var(--cinza); }
.formulario .grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .9rem 1rem; }
.formulario label { display: flex; flex-direction: column; gap: .25rem; font-size: .88rem; color: var(--cinza); }
.formulario .largo2 { grid-column: span 2; } .formulario .largo-total { grid-column: 1 / -1; }
.formulario label.check, .filtros label.check { flex-direction: row; align-items: center; gap: .5rem; color: var(--tinta); }
label.check input { width: auto; }
.com-erro input, .com-erro select { border-color: var(--erro); }
.erro { color: var(--erro); font-size: .8rem; }
.mini { font-size: .8rem; color: var(--cinza); }
output { font-weight: 600; font-size: 1.1rem; color: var(--verde-esc); padding: .4rem 0; }
.acoes { display: flex; gap: .5rem; margin-top: 1.25rem; flex-wrap: wrap; }
.dica { color: var(--cinza); font-size: .85rem; }
.tabela-rolagem { overflow-x: auto; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); }
.tabela { width: 100%; border-collapse: collapse; font-size: .92rem; }
.tabela th { text-align: left; background: var(--verde); color: #fff; font-weight: 600; padding: .55rem .7rem; white-space: nowrap; }
.tabela td { padding: .5rem .7rem; border-top: 1px solid var(--linha); vertical-align: top; }
.tabela tr:nth-child(even) td { background: #FAFCFB; }
.tabela tr.clicavel { cursor: pointer; } .tabela tr.clicavel:hover td { background: #EEF5F1; }
.tabela tr.inativo td { color: #9AA19D; }
.tabela .c { text-align: center; } .tabela .d { text-align: right; white-space: nowrap; }
.tabela .negativo { color: var(--erro); font-weight: 600; }
.tabela td a { text-decoration: none; font-weight: 600; }
.nowrap { white-space: nowrap; } .vazio { color: var(--cinza); text-align: center; padding: 1.5rem; }
.selo { display: inline-block; font-size: .78rem; padding: .05rem .55rem; border-radius: 99px; }
.selo.ok { background: #E4F3E7; color: #1E5631; } .selo.cinza { background: #EEF0EF; color: var(--cinza); }
.paginacao { display: flex; gap: .3rem; margin: 1rem 0; flex-wrap: wrap; }
.paginacao a, .paginacao span { padding: .3rem .7rem; border: 1px solid var(--linha); border-radius: 6px; background: #fff; text-decoration: none; }
.paginacao .atual { background: var(--verde); color: #fff; border-color: var(--verde); }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .75rem; margin: 1rem 0; }
.card { background: var(--branco); border: 1px solid var(--linha); border-left: 4px solid var(--verde-claro); border-radius: var(--raio); padding: 1rem;
  display: flex; flex-direction: column; text-decoration: none; color: var(--cinza); }
.card .num { font-size: 1.8rem; font-weight: 700; color: var(--verde-esc); }
a.card:hover { border-color: var(--verde); }
.so-celular { display: none; }
.etapas li { margin: .35rem 0; } .etapas li.feito::marker { color: var(--verde-claro); }
.login-caixa { max-width: 400px; margin: 4rem auto; background: var(--branco); border: 1px solid var(--linha); border-top: 4px solid var(--verde);
  border-radius: var(--raio); padding: 2rem; text-align: center; }
.login-caixa form { text-align: left; display: flex; flex-direction: column; gap: .9rem; margin-top: 1rem; }
.login-caixa label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; color: var(--cinza); }
.login-logo { height: 60px; }
@media (max-width: 760px) {
  html { font-size: 14px; }
  .menu-botao { display: block; }
  .conta { display: none; }
  .menu { display: none; flex-direction: column; } .menu.aberto { display: flex; }
  .menu .so-celular { display: block; }
  .formulario .largo2 { grid-column: 1 / -1; }
  .conteudo { padding: .75rem; }
}
/* ---- Etapa 2: propostas ---- */
.acoes-topo { display: flex; gap: .5rem; flex-wrap: wrap; }
.tabela th a.ordenar { color: #fff; text-decoration: none; }
.selo.azul { background: #E6EEF8; color: #1D4E89; } .selo.erro { background: #FDECEA; color: var(--erro); }
.tabela.compacta td, .tabela.compacta th { padding: .35rem .55rem; }
.tabela input.num, input.num { width: 7.5rem; text-align: right; padding: .3rem .45rem; }
.tabela td input:not(.num) { padding: .3rem .45rem; }
.servicos { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem 2rem; }
.servicos-col { display: flex; flex-direction: column; gap: .35rem; }
.servicos label.check { font-weight: 600; color: var(--verde-esc); }
.param { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: flex-end; margin: 0 0 .5rem 1.6rem; }
.param label { flex: 0 1 190px; }
.param .mini { flex-basis: 100%; }
.criterios { margin-top: .75rem; } .criterios summary { cursor: pointer; color: var(--verde); }
.barra-acoes { position: sticky; bottom: 0; z-index: 5; display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; background: var(--branco);
  border: 1px solid var(--linha); border-top: 3px solid var(--verde-claro); border-radius: var(--raio); padding: .75rem 1rem; margin: 1rem 0; box-shadow: 0 -4px 14px rgba(0,0,0,.06); }
.total-grande { font-size: 1.35rem; font-weight: 700; color: var(--verde-esc); }
.destaque { font-weight: 600; color: var(--verde-esc); }
.resumo-precos { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: .5rem; margin: .75rem 0; }
.resumo-precos div { display: flex; justify-content: space-between; gap: .75rem; background: var(--fundo); border-radius: 6px; padding: .45rem .7rem; font-size: .9rem; }
.resumo-precos div span { color: var(--cinza); } .resumo-precos .forte { background: var(--verde-esc); } .resumo-precos .forte span, .resumo-precos .forte b { color: #fff; }
.duas-colunas { display: grid; grid-template-columns: 3fr 2fr; gap: 1rem; }
.tabela tr.escolhida td { background: #E4F3E7 !important; font-weight: 600; }
.memoria summary { cursor: pointer; } .memoria pre { white-space: pre-wrap; font-size: .82rem; background: var(--fundo); padding: .75rem; border-radius: 6px; margin: .75rem 0 0; }
.dois-paineis { display: grid; grid-template-columns: 3fr 2fr; gap: 1rem; align-items: start; }
.dois-paineis .cartao { margin-top: 0; }
.lista-alta { max-height: 560px; overflow-y: auto; }
.tabela tr.abaixo-custo td { color: var(--erro); } .tabela tr.com-desconto td { color: var(--verde); }
.txt-erro { color: var(--erro); }
.grupo-desconto { display: inline-flex; gap: .35rem; align-items: center; } .grupo-desconto input { width: 4.5rem; }
@media (max-width: 900px) { .servicos, .duas-colunas, .dois-paineis { grid-template-columns: 1fr; } .param { margin-left: 0; } }
/* ---- Configurações ---- */
.abas { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0 0 1rem; }
.abas a { padding: .4rem .8rem; border: 1px solid var(--linha); border-radius: 6px; background: var(--branco); text-decoration: none; color: var(--tinta); font-size: .88rem; }
.abas a.ativo { background: var(--verde); border-color: var(--verde); color: #fff; }
.formulario h3 { font-size: 1rem; color: var(--verde-esc); margin: 1.25rem 0 .6rem; }
.formulario > label { display: flex; flex-direction: column; gap: .25rem; margin: 0 0 1rem; font-size: .88rem; color: var(--cinza); }
.tabela.largura-auto { width: auto; }
.grade-estreita { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)) !important; }
.bloco-desc { border: 1px solid var(--linha); border-radius: var(--raio); padding: .75rem 1rem; margin: 0 0 1rem; display: flex; flex-direction: column; gap: .6rem; }
.bloco-desc legend { font-weight: 700; color: var(--verde-esc); padding: 0 .4rem; }
.bloco-desc label { display: flex; flex-direction: column; gap: .25rem; font-size: .88rem; color: var(--cinza); }
.bloco-desc label.check { flex-direction: row; color: var(--tinta); }
input.curto { width: 7.5rem; }
.oculto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.estreito-largo { max-width: 920px; }
/* ---- Painel ---- */
.painel-filtros label { display: flex; flex-direction: column; font-size: .8rem; color: var(--cinza); gap: .15rem; }
.painel-filtros { align-items: flex-end; }
.kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .75rem; margin: .5rem 0 .75rem; }
.kpi { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: .85rem 1rem; display: flex; flex-direction: column; gap: .15rem; }
.kpi span { color: var(--cinza); font-size: .85rem; } .kpi b { font-size: 1.6rem; color: var(--tinta); line-height: 1.2; } .kpi b.txt { font-size: 1.1rem; }
.kpi small { color: var(--cinza); font-size: .8rem; }
.situacoes { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; margin-bottom: 1rem; }
.situacoes a { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: .5rem; text-align: center; text-decoration: none; color: var(--cinza); font-size: .8rem; display: flex; flex-direction: column; }
.situacoes a b { font-size: 1.3rem; color: var(--tinta); } .situacoes a.ativo { border-color: var(--verde); box-shadow: inset 0 -3px 0 var(--verde-claro); }
.paineis-graf { display: grid; grid-template-columns: 3fr 2fr; gap: 1rem; align-items: start; } .paineis-graf .cartao { margin: 0 0 1rem; }
.grafico { width: 100%; height: auto; display: block; font-family: inherit; }
.grafico .grade-linha { stroke: #E6EBE8; stroke-width: 1; } .grafico .base { stroke: #9AA5A0; stroke-width: 1; }
.grafico .eixo { font-size: 11px; fill: var(--cinza); } .grafico .rotulo { font-size: 12px; fill: var(--tinta); } .grafico .valor { font-size: 11.5px; fill: var(--cinza); font-weight: 600; }
.grafico .alvo { fill: transparent; } .grafico .alvo:hover { fill: rgba(47,93,80,.06); }
.legenda { display: flex; gap: 1rem; font-size: .82rem; color: var(--cinza); margin-top: .35rem; } .legenda span { display: inline-flex; align-items: center; gap: .35rem; }
.mini-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.mini-kpis div { background: var(--fundo); border-radius: 6px; padding: .5rem .7rem; display: flex; flex-direction: column; } .mini-kpis span { font-size: .78rem; color: var(--cinza); } .mini-kpis b { font-size: 1.05rem; }
h2.secao { margin: 1.25rem 0 .5rem; font-size: 1.25rem; }
@media (max-width: 900px) { .paineis-graf { grid-template-columns: 1fr; } .situacoes { grid-template-columns: repeat(3, 1fr); } }

/* contratos e OS */
.tabela tr.a-vencer td { background: #FFF8E1; }
.tabela tr.destaque td { background: #E8F4EC; font-weight: 600; }
.destaque-cartao { border-left: 4px solid var(--verde-esc); }
.linha-form { display: flex; flex-wrap: wrap; gap: .35rem; align-items: center; margin: 0; }
.linha-form select { max-width: 22rem; }
input.medio { width: 12rem; }
input.arquivo-curto { max-width: 13rem; font-size: .8rem; }
.bloco-acao { border: 1px solid var(--borda, #DDE3DF); border-radius: 8px; padding: .75rem 1rem; margin-top: 1rem; }
.bloco-acao summary { cursor: pointer; font-weight: 600; }
.bloco-acao h3 { margin-top: 0; font-size: 1rem; }
.aditivo-novo { margin-top: 1rem; grid-template-columns: 1fr 1fr; }
.cadeia { list-style: none; padding-left: 0; } .cadeia li { margin: .3rem 0; } .cadeia ul { list-style: none; padding-left: 1.4rem; border-left: 2px solid #DDE3DF; margin: .25rem 0 .5rem .4rem; }
.aviso-info { background: #E6EEF8; border-color: #B9CDE8; color: #1D4E89; }
@media (max-width: 900px) { .aditivo-novo { grid-template-columns: 1fr; } }
.selo.aviso { background: #FFF4E5; color: var(--aviso); }
/* setor técnico */
.dois-paineis.tecnico { grid-template-columns: 2fr 3fr; }
.dois-paineis.tecnico .cartao { margin-top: 0; }
.acoes-itens { margin-top: .6rem; }
.anotar textarea { width: 100%; } .anotar { margin-bottom: .5rem; }
.anotacoes { list-style: none; padding: 0; margin: .5rem 0 0; }
.anotacoes li { border-left: 3px solid #DDE3DF; padding: .35rem .7rem; margin-bottom: .45rem; background: var(--fundo); border-radius: 0 6px 6px 0; }
.anotacoes li.anot-andamento { color: #6B7570; font-size: .9rem; }
.anotacoes li.anot-gestao { border-left-color: #1D4E89; } .anotacoes li.anot-tecnico { border-left-color: var(--verde-esc); } .anotacoes li.anot-financeiro { border-left-color: #B45309; }
form.inline { display: inline; margin: 0; }
.link-perigo { background: none; border: 0; padding: 0; color: var(--erro); text-decoration: underline; cursor: pointer; font-size: .8rem; }
.total-linha { font-weight: 600; color: var(--verde-esc); margin: .6rem 0 .2rem; }
@media (max-width: 900px) { .dois-paineis.tecnico { grid-template-columns: 1fr; } }
.dois-paineis > * { min-width: 0; }
.selo { white-space: nowrap; }
/* cores da situação da OS */
.selo.os-emitida { background: #E3EEFB; color: #1D4E89; }
.selo.os-execucao { background: #FDEBDD; color: #9A3412; }
.selo.os-ciencia { background: #FBF0D5; color: #7A4F06; border: 1px solid #E9C46A; }
.selo.os-concluida { background: #E2F1E7; color: #1E5631; }
.selo.os-cancelada { background: #EEF0EF; color: #6B7570; text-decoration: line-through; }
.tabela tr[class*="linha-os-"] td:first-child { box-shadow: inset 4px 0 0 var(--cor-os, transparent); }
.tabela tr.linha-os-emitida { --cor-os: #2a78d6; } .tabela tr.linha-os-execucao { --cor-os: #eb6834; }
.tabela tr.linha-os-ciencia { --cor-os: #b7791f; } .tabela tr.linha-os-concluida { --cor-os: #2f7d4f; } .tabela tr.linha-os-cancelada { --cor-os: #9aa19d; }
.tabela tr.linha-os-ciencia td { background: #FFFBF0; }
.chips-os { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 .8rem; }
.chip-os { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border: 1px solid var(--linha); border-radius: 99px; background: var(--branco); color: var(--tinta); text-decoration: none; font-size: .88rem; }
.chip-os b { font-weight: 700; } .chip-os.ativo { border-color: var(--verde-esc); box-shadow: 0 0 0 1px var(--verde-esc); }
.chip-os .ponto { width: .7rem; height: .7rem; border-radius: 50%; background: #9aa19d; }
.chip-os.os-emitida .ponto { background: #2a78d6; } .chip-os.os-execucao .ponto { background: #eb6834; } .chip-os.os-ciencia .ponto { background: #b7791f; } .chip-os.os-concluida .ponto { background: #2f7d4f; }
.kpi.kpi-alerta { border-color: #E9C46A; background: #FFFBF0; } .txt-erro { color: var(--erro); }
/* situação da proposta em destaque */
.situacao-proposta { border-left: 6px solid #9aa19d; }
.situacao-proposta.st-azul { border-left-color: #2a78d6; } .situacao-proposta.st-ok { border-left-color: #2f7d4f; } .situacao-proposta.st-erro { border-left-color: var(--erro); }
.situacao-topo { display: grid; grid-template-columns: minmax(220px, 280px) 1fr; gap: 1rem; align-items: start; }
.situacao-campo { font-weight: 600; } .situacao-campo select { font-size: 1.1rem; font-weight: 700; padding: .55rem .6rem; margin-top: .3rem; border-width: 2px; }
.st-azul .situacao-campo select { border-color: #2a78d6; color: #1D4E89; } .st-ok .situacao-campo select { border-color: #2f7d4f; color: #1E5631; } .st-erro .situacao-campo select { border-color: var(--erro); color: var(--erro); }
.situacao-texto { padding-top: 1.4rem; } .situacao-proximo { margin-top: .35rem; color: var(--verde-esc); font-weight: 600; }
.jornada { list-style: none; display: grid; grid-template-columns: repeat(6, 1fr); gap: .4rem; padding: 0; margin: 1rem 0 0; counter-reset: p; }
.jornada li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .15rem; padding-top: .1rem; color: #8A948F; }
.jornada li::before { content: ""; position: absolute; top: 1rem; left: -50%; width: 100%; height: 3px; background: #DDE3DF; z-index: 0; }
.jornada li:first-child::before { display: none; }
.jornada .n { position: relative; z-index: 1; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; background: #EEF0EF; border: 2px solid #CBD3CF; font-weight: 700; font-size: .9rem; }
.jornada b { font-size: .85rem; } .jornada small { font-size: .75rem; }
.jornada li.feito { color: var(--tinta); } .jornada li.feito .n { background: #2f7d4f; border-color: #2f7d4f; color: #fff; } .jornada li.feito::before, .jornada li.atual::before { background: #2f7d4f; }
.jornada li.atual { color: var(--tinta); } .jornada li.atual .n { background: #fff; border-color: #2a78d6; color: #1D4E89; box-shadow: 0 0 0 4px #E3EEFB; }
.jornada li.parado .n { background: var(--erro); border-color: var(--erro); color: #fff; } .jornada li.parado { color: var(--erro); }
.jornada li.pulado .n { border-style: dashed; } .jornada li.pulado { color: #8A948F; }
@media (max-width: 760px) { .situacao-topo { grid-template-columns: 1fr; } .situacao-texto { padding-top: 0; }
  .jornada { grid-template-columns: 1fr; } .jornada li { flex-direction: row; text-align: left; gap: .6rem; } .jornada li::before { display: none; } .jornada small { margin-left: auto; } }
.situacao-pagto { grid-column: 1 / -1; max-width: 560px; font-weight: 600; }
.situacao-pagto select { margin-top: .3rem; border: 2px solid #2f7d4f; font-weight: 600; }
.situacao-pagto small { font-weight: 400; color: var(--cinza); }
.pagto-fixo { display: flex; flex-direction: column; gap: .1rem; background: #E2F1E7; border-radius: 6px; padding: .5rem .8rem; font-weight: 400; max-width: none; }
.pagto-fixo span { font-size: .82rem; color: #1E5631; } .pagto-fixo b { font-size: 1.05rem; color: #1E5631; }
[hidden] { display: none !important; }
.situacao-campo { order: 1; } .situacao-texto { order: 2; } .situacao-pagto { order: 3; }
.kpi.kpi-erro { border-color: #F3C4BF; background: #FFF6F5; } .kpi.kpi-erro b { color: var(--erro); } .tabela tr.linha-vencida td { background: #FFF6F5; }
/* pagamentos */
.parcelas { display: grid; gap: .8rem; }
.parcela { border: 1px solid var(--linha); border-left: 5px solid #2a78d6; border-radius: 8px; padding: .7rem 1rem; background: var(--branco); }
.parcela.paga { border-left-color: #2f7d4f; background: #F6FBF7; } .parcela.vencida { border-left-color: var(--erro); background: #FFF8F7; }
.parcela header { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-bottom: .4rem; }
.parcela-valor { font-size: 1.15rem; font-weight: 700; margin-left: auto; }
.parcela .formulario.baixa .grade { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
input.largo { min-width: 16rem; flex: 1; }
.selo.os-medico { background: #EFE7FB; color: #5B2E91; border: 1px solid #CDB6EE; }
/* análise médica */
.chip-os.os-medico .ponto { background: #7C4DBF; }
.ficha { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .5rem 1rem; margin: .4rem 0 .8rem; }
.ficha div { background: var(--fundo); border-radius: 6px; padding: .4rem .7rem; } .ficha dt { font-size: .78rem; color: var(--cinza); } .ficha dd { margin: 0; font-weight: 600; }
.lista-exames { font-size: .9rem; line-height: 1.6; }
.anotacoes li.anot-medico { border-left-color: #7C4DBF; }
.selo.os-devolvido { background: #FDECEA; color: #9B1C1C; border: 1px solid #F3C4BF; }
.feito-marca { color: #2f7d4f; font-weight: 700; }
.os-fin { display: inline-block; margin: 0 .8rem .2rem 0; } td .os-fin { display: block; } .os-da-proposta { margin: -.3rem 0 1rem; }
/* ===== painéis de trabalho (setor técnico, médico, financeiro) ===== */
.conteudo.largo { max-width: 1640px; }
.cabeca-setor { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; margin-bottom: .6rem; }
.cabeca-setor h1 { margin: 0; } .cabeca-setor h1 small { font-size: .9rem; color: var(--cinza); font-weight: 400; }
.filtros.compacto { margin: 0; flex: 1 1 520px; justify-content: flex-end; } .filtros.compacto input[name=q] { max-width: 340px; }
.painel-os { display: grid; grid-template-columns: minmax(280px, 340px) 1fr; gap: 1rem; align-items: start; }
.painel-os > * { min-width: 0; }
.lista-os { display: flex; flex-direction: column; gap: .45rem; max-height: calc(100vh - 210px); overflow-y: auto; position: sticky; top: .75rem; padding: .15rem .35rem .15rem .1rem; }
.cartao-os { display: flex; flex-direction: column; gap: .2rem; padding: .6rem .75rem .6rem .9rem; background: var(--branco); border: 1px solid var(--linha); border-radius: 8px; color: var(--tinta); text-decoration: none; box-shadow: inset 4px 0 0 var(--cor-os, #CBD3CF); }
.cartao-os:hover { border-color: #AEBBB5; } .cartao-os.ativo { border-color: var(--verde-esc); box-shadow: inset 4px 0 0 var(--cor-os, #CBD3CF), 0 0 0 2px #CFE3D9; background: #F7FBF9; }
.cartao-os.linha-os-emitida { --cor-os: #2a78d6; } .cartao-os.linha-os-execucao { --cor-os: #eb6834; } .cartao-os.linha-os-ciencia { --cor-os: #b7791f; } .cartao-os.linha-os-concluida { --cor-os: #2f7d4f; } .cartao-os.linha-os-cancelada { --cor-os: #9aa19d; }
.cartao-os.linha-pcmso { --cor-os: #7C4DBF; } .cartao-os.linha-devolvido { --cor-os: #C0392B; }
.co-topo { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.co-cliente { font-size: .9rem; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.co-meta { font-size: .76rem; color: var(--cinza); }
.co-prog { display: flex; align-items: center; gap: .5rem; } .co-prog small { font-size: .75rem; color: var(--cinza); white-space: nowrap; }
progress { appearance: none; -webkit-appearance: none; height: .5rem; width: 100%; max-width: 220px; border: 0; border-radius: 99px; background: #E6EBE8; overflow: hidden; vertical-align: middle; }
progress::-webkit-progress-bar { background: #E6EBE8; border-radius: 99px; } progress::-webkit-progress-value { background: #2f7d4f; border-radius: 99px; } progress::-moz-progress-bar { background: #2f7d4f; border-radius: 99px; }
.detalhe-os > .cartao { margin-top: 0; }
.cabeca-os { box-shadow: inset 5px 0 0 var(--cor-os, #CBD3CF); }
.cabeca-os.linha-os-emitida { --cor-os: #2a78d6; } .cabeca-os.linha-os-execucao { --cor-os: #eb6834; } .cabeca-os.linha-os-ciencia { --cor-os: #b7791f; } .cabeca-os.linha-os-concluida { --cor-os: #2f7d4f; } .cabeca-os.linha-os-cancelada { --cor-os: #9aa19d; }
.cabeca-os h2 { margin: 0; } .cabeca-os .aviso { margin: .6rem 0 0; }
.ficha-os { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 0; } .ficha .largo2 { grid-column: span 2; }
.os-colunas { display: grid; grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr); gap: 1rem; align-items: start; margin-top: 1rem; }
.os-colunas > .cartao { margin: 0; } .os-colunas h3 { margin-top: 0; }
.barra-itens { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; margin-top: .6rem; padding: .5rem; background: var(--fundo); border-radius: 8px; }
.barra-itens .grupo { display: inline-flex; gap: .3rem; } .barra-itens.pcmso { background: #F4EEFC; }
.coluna-anot .titulo-linha { margin-bottom: .3rem; }
.anotacoes.rolagem { max-height: 520px; overflow-y: auto; padding-right: .3rem; }
@media (max-width: 1200px) { .ficha-os { grid-template-columns: repeat(2, minmax(0, 1fr)); } .os-colunas { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .painel-os { grid-template-columns: 1fr; } .lista-os { max-height: 340px; position: static; } .filtros.compacto { justify-content: flex-start; } }
@media (max-width: 560px) { .ficha-os, .ficha { grid-template-columns: 1fr; } .ficha .largo2 { grid-column: auto; } }
.lista-exames { columns: 2 220px; padding-left: 1.1rem; margin: .3rem 0 .8rem; font-size: .9rem; } .lista-exames li { break-inside: avoid; }
.parecer { margin-top: .8rem; }
.pendencias { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1rem; align-items: start; margin-bottom: 1rem; } .pendencias > .cartao { margin: 0; }
.rolagem-curta { max-height: 330px; overflow-y: auto; }
.linha-aguard { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--linha); } .linha-aguard:last-child { border-bottom: 0; }
.acoes-linha { display: inline-flex; gap: .3rem; flex-shrink: 0; }
@media (max-width: 1000px) { .pendencias { grid-template-columns: 1fr; } .linha-aguard { flex-wrap: wrap; } }
.fin-colunas { display: grid; grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr); gap: 1rem; align-items: start; }
.fin-colunas .cartao { margin-top: 0; } .fin-lateral { display: flex; flex-direction: column; gap: 1rem; } .fin-lateral .cartao { margin: 0; }
.baixa-det > summary { display: inline-block; list-style: none; cursor: pointer; margin: .2rem 0 .4rem; } .baixa-det > summary::-webkit-details-marker { display: none; }
.baixa-det[open] > summary { background: var(--branco); color: var(--verde-esc); border-color: var(--linha); }
@media (max-width: 1100px) { .fin-colunas { grid-template-columns: 1fr; } }
.os-colunas > *, .fin-colunas > *, .pendencias > *, .detalhe-os { min-width: 0; }
.ficha-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cabeca-os.linha-pcmso { --cor-os: #7C4DBF; }
@media (max-width: 560px) { .ficha-2 { grid-template-columns: 1fr; } }
