/* Obra · materiais — referência visual: ficha e orçamento da Patron (verde de cabeçalho, cinza claro, tabela limpa). */
:root {
  --verde: #3b7a1f; --verde-escuro: #29561a; --verde-fundo: #eaf3e3; --verde-claro: #f4f8f0;
  --tinta: #1b1f18; --suave: #5d6558; --fraco: #8a9184; --linha: #e1e5db; --fundo: #f4f5f1; --cartao: #ffffff;
  --risco: #b42318; --risco-f: #fdecea; --atencao: #9a5b00; --atencao-f: #fff3dc; --info: #1f5aa6; --info-f: #e8f0fb;
  --raio: 10px; --sombra: 0 1px 2px rgba(20, 30, 10, .06), 0 1px 1px rgba(20, 30, 10, .04);
  --fonte: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: var(--fonte); background: var(--fundo); color: var(--tinta); font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--verde); }
.num { font-variant-numeric: tabular-nums; }
.oculto { display: none !important; }
svg.i { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* Topo verde, como o cabeçalho da ficha de solicitação */
.topo { background: var(--verde); color: #fff; }
.topo-in { max-width: 1180px; margin: 0 auto; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.marca { display: flex; align-items: center; gap: 10px; min-width: 0; }
.marca-ico { width: 38px; height: 38px; border-radius: 8px; background: #fff; color: var(--verde); display: grid; place-items: center; flex: none; }
.marca-ico svg.i { width: 22px; height: 22px; stroke-width: 2.4; }
.marca h1 { margin: 0; font-size: 18px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
.marca p { margin: 0; font-size: 12.5px; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topo .espaco { flex: 1; }
.chip-user { display: flex; align-items: center; gap: 6px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25); color: #fff; border-radius: 99px; padding: 6px 12px; cursor: pointer; font-size: 13.5px; font-weight: 600; }
.chip-user:hover { background: rgba(255,255,255,.22); }

/* Abas */
.abas { background: var(--cartao); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 20; }
.abas-in { max-width: 1180px; margin: 0 auto; padding: 0 8px; display: flex; gap: 2px; }
.aba { appearance: none; border: 0; background: none; padding: 13px 14px 11px; font-weight: 650; font-size: 14px; color: var(--suave); border-bottom: 3px solid transparent; cursor: pointer; display: flex; align-items: center; gap: 7px; }
.aba:hover { color: var(--tinta); }
.aba[aria-current="page"] { color: var(--verde); border-bottom-color: var(--verde); }
.aba .badge-n { background: var(--risco); color: #fff; border-radius: 99px; font-size: 11px; padding: 0 6px; line-height: 17px; }

main { max-width: 1180px; margin: 0 auto; padding: 20px 16px 96px; }
h2.titulo { font-size: 22px; margin: 0 0 4px; letter-spacing: -.01em; }
.sub { color: var(--suave); font-size: 14px; margin: 0 0 18px; }
.secao { margin: 26px 0 10px; display: flex; align-items: baseline; gap: 10px; }
.secao h3 { margin: 0; font-size: 13px; text-transform: uppercase; letter-spacing: .07em; color: var(--suave); font-weight: 750; }
.secao .acao { margin-left: auto; }

/* Cartões e indicadores */
.cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); }
.grade { display: grid; gap: 12px; }
.g-kpi { grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); }
.g-2 { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.kpi { padding: 14px 16px; text-align: left; cursor: pointer; border: 1px solid var(--linha); background: var(--cartao); border-radius: var(--raio); box-shadow: var(--sombra); display: flex; flex-direction: column; gap: 2px; }
.kpi:hover { border-color: var(--verde); }
.kpi .rot { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); display: flex; align-items: center; gap: 6px; }
.kpi .val { font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
.kpi .det { font-size: 12.5px; color: var(--fraco); }
.kpi.risco .val, .kpi.risco .rot { color: var(--risco); }
.kpi.atencao .val, .kpi.atencao .rot { color: var(--atencao); }
.kpi.info .val, .kpi.info .rot { color: var(--info); }
.kpi.ok .val, .kpi.ok .rot { color: var(--verde); }
.kpi.zero { opacity: .62; }

.aviso { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: var(--raio); background: var(--verde-fundo); color: var(--verde-escuro); border: 1px solid #cfe2c2; font-size: 14px; }
.aviso.amarelo { background: var(--atencao-f); color: #6b4000; border-color: #f2d9a8; }
.aviso b { font-weight: 750; }
.aviso .acao { margin-left: auto; }

.dinheiro { padding: 16px 18px; }
.dinheiro .rot { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.dinheiro .grande { font-size: 30px; font-weight: 800; letter-spacing: -.02em; margin: 2px 0 10px; }
.dinheiro .linha-v { display: flex; justify-content: space-between; font-size: 14px; padding: 5px 0; border-top: 1px dashed var(--linha); }
.dinheiro .linha-v span:first-child { color: var(--suave); }
.barra { height: 8px; border-radius: 99px; background: #e8ebe3; overflow: hidden; margin: 6px 0 4px; }
.barra > i { display: block; height: 100%; background: var(--verde); border-radius: 99px; }
.barra.vermelha > i { background: var(--risco); }

/* Botões e campos */
.btn { appearance: none; border: 1px solid var(--linha); background: var(--cartao); border-radius: 8px; padding: 9px 14px; font-weight: 650; font-size: 14px; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; min-height: 40px; }
.btn:hover { border-color: #c7cdbf; background: var(--verde-claro); }
.btn.prim { background: var(--verde); border-color: var(--verde); color: #fff; }
.btn.prim:hover { background: var(--verde-escuro); }
.btn.perigo { color: var(--risco); }
.btn.peq { padding: 5px 10px; min-height: 32px; font-size: 13px; }
.btn:disabled { opacity: .55; cursor: default; }
.btn-ico { appearance: none; border: 0; background: none; padding: 8px; border-radius: 8px; cursor: pointer; color: var(--suave); display: inline-grid; place-items: center; }
.btn-ico:hover { background: var(--verde-claro); color: var(--tinta); }

label.campo { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 650; color: var(--suave); min-width: 0; }
.campo input, .campo select, .campo textarea, input.busca, select.sel { border: 1px solid #cfd5c8; border-radius: 8px; padding: 9px 11px; background: #fff; font-size: 15px; font-weight: 450; color: var(--tinta); min-height: 42px; width: 100%; min-width: 0; }
.campo textarea { min-height: 70px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus, input.busca:focus, select.sel:focus, .btn:focus-visible, .aba:focus-visible, .kpi:focus-visible { outline: 3px solid rgba(59,122,31,.3); outline-offset: 1px; border-color: var(--verde); }
.campo .dica { font-weight: 450; color: var(--fraco); font-size: 12px; }
.linha-campos { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }

/* Barra de ferramentas da lista */
.ferramentas { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
.busca-wrap { position: relative; flex: 1 1 260px; }
.busca-wrap svg { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: var(--fraco); }
input.busca { padding-left: 36px; }
select.sel { width: auto; flex: 0 0 auto; }
.chips { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 12px; scrollbar-width: thin; }
.chip { appearance: none; border: 1px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 6px 12px; font-size: 13px; font-weight: 650; color: var(--suave); cursor: pointer; white-space: nowrap; }
.chip[aria-pressed="true"] { background: var(--verde); border-color: var(--verde); color: #fff; }
.chip .n { opacity: .75; margin-left: 4px; font-weight: 600; }

/* Grupos e linhas de material: cabeçalho verde como a tabela da ficha */
.grupo { margin-bottom: 16px; overflow: hidden; }
.grupo-cab { background: var(--verde); color: #fff; padding: 9px 14px; display: flex; align-items: center; gap: 10px; font-weight: 750; font-size: 14px; }
.grupo-cab .meta { font-weight: 550; opacity: .88; font-size: 12.5px; margin-left: auto; }
.cab-col { display: grid; grid-template-columns: minmax(0, 1fr) 130px 160px 140px 92px; gap: 12px; padding: 7px 14px; background: var(--verde-claro); border-bottom: 1px solid var(--linha); font-size: 11.5px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.cab-col.sem-preco, .item.sem-preco { grid-template-columns: minmax(0, 1fr) 130px 140px 92px; }
.item { display: grid; grid-template-columns: minmax(0, 1fr) 130px 160px 140px 92px; gap: 12px; padding: 11px 14px; border-bottom: 1px solid var(--linha); align-items: center; cursor: pointer; }
.item:last-child { border-bottom: 0; }
.item:hover { background: #fafbf8; }
.item.alerta { box-shadow: inset 3px 0 0 var(--risco); }
.item.cancelado .nome { text-decoration: line-through; color: var(--fraco); }
.item .nome { font-weight: 650; }
.item .meta { font-size: 12.5px; color: var(--suave); margin-top: 3px; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.item .meta .obs { color: var(--fraco); }
.item .qtd { font-size: 14px; }
.item .qtd small, .item .din small, .item .ent small { display: block; color: var(--fraco); font-size: 12px; }
.item .din { font-weight: 650; font-size: 14px; }
.item .ent { font-size: 13.5px; }
.item .acoes { display: flex; justify-content: flex-end; gap: 2px; }
.rot-m { display: none; }
.vazio { padding: 28px; text-align: center; color: var(--fraco); }

.selo { display: inline-flex; align-items: center; gap: 4px; border-radius: 99px; padding: 1px 8px; font-size: 11.5px; font-weight: 750; letter-spacing: .01em; white-space: nowrap; border: 1px solid transparent; }
.s-entregue, .s-ok { background: var(--verde-fundo); color: var(--verde-escuro); }
.s-hoje { background: var(--info-f); color: var(--info); border-color: #c7d9f3; }
.s-risco, .s-faltando, .s-atrasado { background: var(--risco-f); color: var(--risco); }
.s-comprar, .s-sem-previsao { background: var(--atencao-f); color: var(--atencao); }
.s-planejado, .s-cancelado { background: #eef0eb; color: var(--suave); }
.st { font-size: 11.5px; font-weight: 700; color: var(--suave); background: #eef0eb; border-radius: 4px; padding: 1px 6px; }
.anexo-ind { display: inline-flex; align-items: center; gap: 3px; color: var(--suave); }
.anexo-ind svg.i { width: 14px; height: 14px; }

/* Etapas */
/* Gantt no formato do cronograma da Patron */
.g-cartao { padding: 0; overflow: hidden; }
.g-barra-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-bottom: 1px solid var(--linha); }
.g-barra-topo .espaco { flex: 1; }
.g-legenda { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12.5px; color: var(--suave); }
.g-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.lg { display: inline-block; width: 18px; height: 10px; border-radius: 3px; }
.lg.g-et { background: var(--verde-escuro); }
.lg.tarefa { background: #bcd9a8; }
.lg.feita { background: var(--verde); }
.lg.atrasada { background: #f7d9a8; box-shadow: inset 0 0 0 1.5px var(--atencao); }
.lg.g-losango { width: 10px; height: 10px; transform: rotate(45deg); background: var(--atencao); border-radius: 1px; }
.lg.hoje { width: 2px; height: 14px; background: var(--info); border-radius: 0; }
.gantt-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gantt { --c1: 290px; --c2: 44px; --c3: 54px; --c4: 54px; --dia: minmax(24px, 1fr);
  display: grid; grid-template-columns: var(--c1) var(--c2) var(--c3) var(--c4) repeat(var(--n), var(--dia));
  grid-auto-rows: 34px; position: relative; font-size: 13px; min-width: min-content; }
.gantt.compacto { grid-auto-rows: 32px; }
.gantt > * { min-width: 0; }
.g-c1, .g-c2, .g-c3, .g-c4 { position: sticky; z-index: 3; background: var(--cartao); }
.g-c1 { grid-column: 1; left: 0; }
.g-c2 { grid-column: 2; left: var(--c1); }
.g-c3 { grid-column: 3; left: calc(var(--c1) + var(--c2)); }
.g-c4 { grid-column: 4; left: calc(var(--c1) + var(--c2) + var(--c3)); box-shadow: 1px 0 0 var(--linha), 6px 0 8px -6px rgba(20, 30, 10, .18); }
.g-cab { z-index: 5; display: flex; align-items: flex-end; padding: 0 8px 7px; font-size: 11.5px; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--linha); background: var(--verde-claro); }
.g-sem { grid-row: 1; display: flex; align-items: center; padding: 0 8px; font-size: 12px; font-weight: 650; color: var(--suave); border-left: 1px solid var(--linha); background: var(--verde-claro); white-space: nowrap; overflow: hidden; }
.g-dia { display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; border-left: 1px solid #eef0eb; border-bottom: 1px solid var(--linha); background: var(--verde-claro); }
.g-dia b { font-size: 12px; font-weight: 650; }
.g-dia span { font-size: 10px; color: var(--fraco); }
.g-dia.fds { background: #e9ece4; }
.g-dia.hoje { background: var(--info); color: #fff; border-radius: 6px 6px 0 0; }
.g-dia.hoje span { color: #dfe9f7; }
.g-linha { grid-column: 1 / -1; border-bottom: 1px solid #eef0eb; z-index: 0; }
.g-linha.g-et { background: #f7faf4; border-top: 1px solid var(--linha); }
.g-fds { background: rgba(120, 130, 110, .07); z-index: 0; pointer-events: none; }
.g-hoje { width: 2px; justify-self: center; background: var(--info); z-index: 2; pointer-events: none; opacity: .8; }
.g-nome { display: flex; align-items: center; gap: 6px; padding: 0 8px 0 4px; white-space: nowrap; overflow: hidden; }
.g-nome.g-et { background: #f7faf4; font-weight: 700; text-transform: uppercase; font-size: 12.5px; letter-spacing: .02em; }
.g-nome.tarefa { color: var(--suave); }
.g-c2.g-n, .g-c3.g-n, .g-c4.g-n { display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--suave); font-variant-numeric: tabular-nums; }
.g-tn { overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1 1 auto; }
.g-tn[role=button] { cursor: pointer; }
.g-tn[role=button]:hover { color: var(--verde); text-decoration: underline; }
.g-cod { flex: none; min-width: 26px; font-size: 11.5px; color: var(--fraco); font-variant-numeric: tabular-nums; font-weight: 600; }
.g-tog, .g-tog-vazio { flex: none; width: 22px; height: 22px; }
.g-tog { border: 0; background: none; padding: 2px; cursor: pointer; color: var(--suave); border-radius: 5px; }
.g-tog:hover { background: var(--verde-fundo); }
.g-tog svg.i { width: 16px; height: 16px; transition: transform .15s; }
.g-tog.aberta svg.i { transform: rotate(90deg); }
.g-mais { flex: none; border: 0; background: none; padding: 3px; border-radius: 5px; color: var(--verde); cursor: pointer; opacity: .55; }
.g-mais:hover { opacity: 1; background: var(--verde-fundo); }
.g-mais svg.i { width: 15px; height: 15px; }
.g-mat { flex: none; font-size: 11px; font-weight: 700; padding: 1px 6px; border-radius: 99px; background: var(--atencao-f); color: var(--atencao); text-transform: none; letter-spacing: 0; }
.g-mat.ok { background: var(--verde-fundo); color: var(--verde-escuro); }
.g-mat.risco { background: var(--risco-f); color: var(--risco); }
.g-ok { color: var(--verde); margin-right: 4px; vertical-align: -3px; }
.g-ok svg.i { width: 15px; height: 15px; }
.g-bar { position: relative; z-index: 1; align-self: center; height: 20px; margin: 0 2px; border-radius: 5px; background: #bcd9a8; display: flex; align-items: center; min-width: 8px; }
.g-bar > span { position: relative; padding: 0 8px; font-size: 11.5px; font-weight: 600; color: var(--verde-escuro); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.g-bar > span.fora { position: absolute; left: calc(100% + 6px); max-width: 360px; padding: 0; color: var(--suave); font-weight: 500; }
.g-bar[data-acao] { cursor: pointer; }
.g-bar.tarefa:hover { filter: brightness(.95); }
.g-bar.tarefa.andamento { background: #9fca83; box-shadow: inset 0 0 0 1.5px var(--verde); }
.g-bar.tarefa.feita { background: var(--verde); }
.g-bar.tarefa.feita > span:not(.fora) { color: #fff; }
.g-bar.tarefa.atrasada { background: #f7d9a8; box-shadow: inset 0 0 0 1.5px var(--atencao); }
.g-bar.g-et { height: 22px; background: #a9c896; }
.g-bar.g-et > i { position: absolute; inset: 0 auto 0 0; background: var(--verde-escuro); border-radius: 5px; }
.g-bar.g-et > span, .g-bar.g-et > span.fora { position: absolute; left: calc(100% + 8px); max-width: 360px; padding: 0; color: var(--verde-escuro); font-weight: 700; }
.g-bar.g-et.feita { background: var(--verde); }
.g-bar.g-et.cliente { background: repeating-linear-gradient(135deg, #dfe7d8 0 6px, #d2dcc9 6px 12px); }
.g-bar.g-et.atrasada { box-shadow: inset 0 0 0 2px var(--atencao); }
.g-marca { z-index: 2; align-self: center; justify-self: start; width: 10px; height: 10px; margin-left: -9px; transform: rotate(45deg); background: var(--atencao); border: 2px solid #fff; border-radius: 2px; box-sizing: content-box; }
.g-marca.ok { background: var(--verde); }
.g-marca.risco { background: var(--risco); }

.etapa { padding: 16px; display: grid; grid-template-columns: 44px 1fr; gap: 14px; }
.etapa .ord { width: 40px; height: 40px; border-radius: 50%; background: var(--verde); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 17px; }
.etapa.feita .ord { background: var(--verde-escuro); }
.etapa h4 { margin: 0; font-size: 17px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.etapa .det { color: var(--suave); font-size: 13.5px; margin: 2px 0 10px; }
.etapa .linha-campos { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); max-width: 560px; }
.etapa details { margin-top: 10px; }
.etapa summary { cursor: pointer; font-weight: 650; font-size: 13.5px; color: var(--verde); }
.etapa ul { list-style: none; padding: 0; margin: 8px 0 0; }
.etapa li { display: flex; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px dashed var(--linha); font-size: 14px; cursor: pointer; }
.etapa li span:first-child { flex: 1; }
.prontidao { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--suave); }
.prontidao .barra { flex: 1; max-width: 260px; }

/* Pagamentos */
.parcela { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.parcela .topo-p { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.parcela .nome-p { font-weight: 750; font-size: 16px; }
.parcela .gat { color: var(--suave); font-size: 13.5px; }
.parcela .valor { font-size: 24px; font-weight: 800; letter-spacing: -.01em; }
.parcela.paga { border-color: #cfe2c2; background: var(--verde-claro); }

/* Histórico */
.hist { padding: 4px 16px; }
.hist-dia { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin: 18px 0 6px; }
.hist-it { display: grid; grid-template-columns: 52px 1fr; gap: 10px; padding: 8px 0; border-top: 1px dashed var(--linha); font-size: 14px; }
.hist-it .h { color: var(--fraco); font-variant-numeric: tabular-nums; }
.hist-it .alvo { color: var(--suave); }

/* Folhas (diálogos) */
dialog.folha { border: 0; padding: 0; border-radius: 14px; width: min(640px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); box-shadow: 0 20px 60px rgba(0,0,0,.25); color: var(--tinta); }
dialog.folha::backdrop { background: rgba(20, 28, 14, .45); }
.folha form { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); }
.folha-cab { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--linha); }
.folha-cab h3 { margin: 0; font-size: 17px; flex: 1; }
.folha-corpo { flex: 1; padding: 16px; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; }
.folha-pe { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--linha); background: #fafbf8; border-radius: 0 0 14px 14px; }
.folha-pe .espaco { flex: 1; }
fieldset.bloco { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; margin: 0; display: flex; flex-direction: column; gap: 12px; }
fieldset.bloco legend { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; color: var(--verde); padding: 0 6px; }
.total-linha { display: flex; justify-content: space-between; font-weight: 700; padding-top: 8px; border-top: 1px dashed var(--linha); }
.anexos { display: flex; flex-wrap: wrap; gap: 8px; }
.anexo { position: relative; width: 84px; height: 84px; border-radius: 8px; overflow: hidden; border: 1px solid var(--linha); background: #eef0eb; display: grid; place-items: center; cursor: pointer; font-size: 12px; color: var(--suave); }
.anexo img { width: 100%; height: 100%; object-fit: cover; }
.anexo .tag { position: absolute; left: 4px; bottom: 4px; background: rgba(0,0,0,.6); color: #fff; font-size: 10.5px; border-radius: 4px; padding: 0 5px; }
.anexo .rem { position: absolute; top: 2px; right: 2px; background: rgba(255,255,255,.9); border: 0; border-radius: 6px; width: 24px; height: 24px; display: grid; place-items: center; cursor: pointer; padding: 0; color: var(--risco); }
.anexo .rem svg.i { width: 14px; height: 14px; }
.ver-foto img { display: block; max-width: 100%; max-height: calc(100dvh - 120px); margin: 0 auto; }
.esperado { background: var(--verde-claro); border: 1px solid #d6e6cb; border-radius: var(--raio); padding: 12px; font-size: 14px; }
.esperado b { font-size: 20px; }

.toast { position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%); background: var(--tinta); color: #fff; padding: 10px 16px; border-radius: 10px; font-size: 14px; z-index: 100; box-shadow: 0 8px 24px rgba(0,0,0,.25); max-width: calc(100vw - 32px); }
.toast.erro { background: var(--risco); }

.rodape { max-width: 1180px; margin: 0 auto; padding: 0 16px 100px; color: var(--fraco); font-size: 12.5px; display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between; }

/* Celular: abas embaixo, linhas viram cartões */
@media (max-width: 760px) {
  .gantt { --c1: 176px; --c2: 0px; --c3: 0px; --c4: 0px; --dia: 28px; }
  .g-nome { gap: 4px; padding-right: 4px; }
  .g-nome.g-et { font-size: 11.5px; letter-spacing: 0; }
  .g-nome.tarefa .g-tog-vazio, .g-mais { display: none; }
  .g-tog, .g-tog-vazio { width: 18px; }
  .g-cod { min-width: 22px; }
  .gantt .g-c2, .gantt .g-c3, .gantt .g-c4 { visibility: hidden; }
  .g-c1 { box-shadow: 1px 0 0 var(--linha), 6px 0 8px -6px rgba(20, 30, 10, .18); }
  .g-legenda { font-size: 12px; }
  body { font-size: 15.5px; }
  .marca h1 { font-size: 16px; }
  .chip-user .nome-u { display: none; }
  .abas { position: fixed; top: auto; bottom: 0; left: 0; right: 0; border-top: 1px solid var(--linha); border-bottom: 0; padding-bottom: env(safe-area-inset-bottom); }
  .abas-in { padding: 0; }
  .aba { flex: 1; flex-direction: column; gap: 2px; font-size: 11px; padding: 8px 2px 7px; border-bottom: 0; border-top: 3px solid transparent; position: relative; }
  .aba[aria-current="page"] { border-top-color: var(--verde); }
  .aba .badge-n { position: absolute; top: 4px; left: calc(50% + 6px); }
  main { padding: 16px 12px 110px; }
  .cab-col { display: none; }
  .item, .item.sem-preco { grid-template-columns: 1fr auto; grid-template-areas: "nome acoes" "qtd din" "ent ent"; gap: 6px 10px; padding: 12px; }
  .item > .col-nome { grid-area: nome; } .item > .qtd { grid-area: qtd; } .item > .din { grid-area: din; text-align: right; }
  .item > .ent { grid-area: ent; } .item > .acoes { grid-area: acoes; align-self: start; }
  .item .qtd small, .item .din small, .item .ent small { display: inline; margin-left: 4px; }
  .rot-m { display: inline; color: var(--fraco); font-size: 12px; margin-right: 4px; }
  .g-kpi { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi .val { font-size: 24px; }
  .folha-pe { position: sticky; bottom: 0; }
  dialog.folha { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; margin: 0; border-radius: 0; }
  .folha form { max-height: 100dvh; height: 100%; }
  .folha-pe { border-radius: 0; }
  .ferramentas .btn .txt-l { display: none; }
  .toast { bottom: 90px; }
}

@media print {
  .abas, .topo .chip-user, .ferramentas, .chips, .acoes, .rodape { display: none !important; }
  body { background: #fff; }
  .item { break-inside: avoid; }
}

/* Caixas de marcar dentro de .campo (tarefa feita, pagamento feito) */
.campo > span:has(> input[type=checkbox]) { display: flex; align-items: center; gap: 10px; font-weight: 650; color: var(--tinta); cursor: pointer; }
.campo input[type=checkbox] { width: 20px; height: 20px; min-height: 0; padding: 0; margin: 0; flex: none; accent-color: var(--verde); }

/* ---------- acompanhamento da execução ---------- */
.aba .badge-n.azul { background: var(--info); }
.titulo-dia { font-size: 15px; font-weight: 600; color: var(--suave); margin-left: 6px; text-transform: capitalize; }
.progresso-c { padding: 14px 16px; display: grid; gap: 14px 28px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); align-items: end; margin-bottom: 14px; }
.progresso-c .rot { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.progresso-c b { font-size: 18px; }
.barra.azul > i { background: var(--info); }
.sub-i { font-size: 12.5px; color: var(--fraco); }
.ex-links { display: flex; gap: 8px; flex-wrap: wrap; grid-column: 1 / -1; }
.g-tarefas { grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); }
.g-3 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.tarefa-c, .ajuste-c { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.tarefa-c.atrasada { border-color: #f0c98a; box-shadow: inset 3px 0 0 var(--atencao), var(--sombra); }
.tarefa-c.feita { background: #fbfdf9; }
.tc-cab { display: flex; gap: 10px; align-items: flex-start; }
.tc-cab .selo { margin-left: auto; flex: none; }
.tc-tit { display: flex; flex-direction: column; min-width: 0; }
.tc-tit b { font-size: 15px; line-height: 1.3; }
.tc-tit span { font-size: 12.5px; color: var(--suave); }
.tc-fotos { display: flex; flex-wrap: wrap; gap: 6px; }
.foto-b .n { background: var(--verde); color: #fff; border-radius: 99px; padding: 0 6px; font-size: 11px; line-height: 17px; }
.foto-b.t-oculto { border-color: #e9c27d; background: var(--atencao-f); color: #6b4000; }
.foto-b.t-depois, .foto-b.t-correcao { border-color: #b7d3a3; }
.fotos-t { display: flex; flex-wrap: wrap; gap: 6px; }
.th-w { position: relative; }
.th { width: 72px; height: 72px; padding: 0; border: 1px solid var(--linha); border-radius: 8px; overflow: hidden; background: #f0f2ec; cursor: zoom-in; position: relative; display: block; }
.th img { width: 100%; height: 100%; object-fit: cover; display: block; }
.th .pdf { display: grid; place-items: center; height: 100%; font-weight: 800; color: var(--suave); }
.th-tipo { position: absolute; left: 0; right: 0; bottom: 0; font-size: 9.5px; font-weight: 700; color: #fff; background: rgba(20, 30, 10, .62); padding: 1px 4px; text-align: left; white-space: nowrap; overflow: hidden; }
.th-tipo.t-oculto { background: rgba(154, 91, 0, .85); }
.th-tipo.t-depois, .th-tipo.t-correcao { background: rgba(41, 86, 26, .85); }
.th-tipo.t-problema { background: rgba(180, 35, 24, .85); }
.th-x { position: absolute; top: -6px; right: -6px; width: 22px; height: 22px; border-radius: 99px; border: 1px solid var(--linha); background: #fff; color: var(--risco); display: grid; place-items: center; padding: 0; cursor: pointer; }
.th-x svg.i { width: 13px; height: 13px; }
.th-mais { align-self: center; font-size: 12.5px; color: var(--suave); font-weight: 650; }
.checks { display: flex; flex-direction: column; gap: 6px; }
.check { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; cursor: pointer; }
.check input { width: 20px; height: 20px; margin: 0; flex: none; accent-color: var(--verde); }
.check small { color: var(--fraco); }
.falta { margin: 0; font-size: 13px; color: var(--atencao); background: var(--atencao-f); border-radius: 8px; padding: 7px 10px; }
.tc-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.tc-acoes .espaco { flex: 1; }
.feita-info { font-size: 12.5px; color: var(--suave); }
.lista-prox { padding: 4px; display: flex; flex-direction: column; }
.prox { appearance: none; border: 0; background: none; text-align: left; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; padding: 10px; border-radius: 8px; cursor: pointer; align-items: center; }
.prox:hover { background: var(--verde-claro); }
.prox .nm { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prox .dt { font-size: 12.5px; color: var(--suave); }
.diario-f { padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.campo textarea { resize: vertical; }
.ajuste-c.st-fechado { opacity: .8; }
.ajuste-c .desc { margin: 0; font-size: 14px; white-space: pre-wrap; }
.rot-f { font-size: 11.5px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.dica-f { margin: 0; font-size: 13px; color: var(--suave); }
.ferr-ac { margin-bottom: 12px; }
.sub-chips .n { background: var(--risco); color: #fff; border-radius: 99px; padding: 0 6px; font-size: 11px; opacity: 1; }
.lt { padding: 4px 16px 12px; }
.lt-dia { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); padding: 16px 0 6px; border-bottom: 1px solid var(--linha); margin-bottom: 4px; }
.lt-it { display: grid; grid-template-columns: 30px 1fr; gap: 10px; padding: 10px 0; border-bottom: 1px solid #f0f2ec; }
.lt-it.novo { background: linear-gradient(90deg, var(--info-f), transparent 70%); border-radius: 8px; padding-left: 6px; }
.lt-ico { width: 30px; height: 30px; border-radius: 99px; display: grid; place-items: center; background: #eef0eb; color: var(--suave); }
.lt-ico svg.i { width: 16px; height: 16px; }
.lt-ico.ok { background: var(--verde-fundo); color: var(--verde); }
.lt-ico.risco { background: var(--risco-f); color: var(--risco); }
.lt-ico.atencao { background: var(--atencao-f); color: var(--atencao); }
.lt-ico.info { background: var(--info-f); color: var(--info); }
.lt-c { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: 14px; }
.lt-c .alvo { color: var(--suave); }
.lt-c a { color: var(--verde-escuro); }
.lt-h { font-size: 12px; color: var(--fraco); margin-left: 8px; white-space: nowrap; }
.lt-obs { margin: 0; color: var(--suave); white-space: pre-wrap; font-size: 13.5px; }
.di-c { padding: 8px 0 12px; display: flex; flex-direction: column; gap: 6px; }
.di-c p { margin: 0; }
.resumo-pr .cartao { padding: 14px; display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.resumo-pr .rot { font-size: 12px; font-weight: 750; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.resumo-pr b { font-size: 20px; }
.tab-wrap { overflow-x: auto; margin-top: 12px; }
.tab-pr { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tab-pr th { text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); padding: 10px; border-bottom: 1px solid var(--linha); background: var(--verde-claro); }
.tab-pr td { padding: 9px 10px; border-bottom: 1px solid #f0f2ec; vertical-align: top; }
.tab-pr td.num { white-space: nowrap; }
.tab-pr td.pre { white-space: pre-wrap; }
.tab-pr a { color: var(--tinta); text-decoration: none; }
.tab-pr a:hover { color: var(--verde); text-decoration: underline; }
.motivos { font-size: 12px; color: var(--suave); margin-top: 2px; }
.tf-nome { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.3; }
.tf-sub { margin: 0; font-size: 13.5px; color: var(--suave); }
.tf-sub .ok { color: var(--verde); }
.bf { display: flex; flex-direction: column; gap: 6px; padding: 6px 0; border-bottom: 1px dashed var(--linha); }
.bf:last-child { border-bottom: 0; }
.bf-cab { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-weight: 650; font-size: 14px; }
.obrig { font-size: 11px; font-weight: 700; color: var(--atencao); background: var(--atencao-f); border-radius: 99px; padding: 1px 7px; margin-left: 4px; }
.sem-f { font-size: 13px; color: var(--fraco); }
.tf-plan { margin: 0; font-size: 13px; color: var(--suave); }
.tf-plan .risco { color: var(--risco); }
.tf-plan .ok { color: var(--verde); }
.mudancas { margin: 0; padding-left: 18px; font-size: 13px; color: var(--suave); }
.bloco-adm { border: 1px dashed var(--linha); border-radius: var(--raio); padding: 10px 12px; }
.bloco-adm summary { cursor: pointer; font-weight: 650; color: var(--verde); }
.bloco-adm > * + * { margin-top: 10px; }
.usuarios { display: flex; flex-direction: column; gap: 8px; }
.usu { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 8px; flex-wrap: wrap; }
.usu.inativo { opacity: .6; }
.usu small { color: var(--fraco); }
.bts { display: flex; gap: 6px; flex-wrap: wrap; }
.aviso .bts { margin-left: auto; }
code.senha { font-size: 16px; background: #fff; border: 1px solid var(--linha); border-radius: 6px; padding: 2px 8px; user-select: all; }
.marco { font-size: 12.5px; color: var(--suave); display: flex; align-items: center; gap: 5px; }
.marco.ok { color: var(--verde-escuro); font-weight: 650; }
.marco svg.i { width: 15px; height: 15px; }
.g-nf { flex: none; display: inline-flex; align-items: center; gap: 2px; font-size: 11px; color: var(--suave); }
.g-nf svg.i { width: 13px; height: 13px; }
.g-base { z-index: 0; align-self: start; margin: 3px 2px 0; height: 5px; border-radius: 3px; border: 1.5px dashed var(--fraco); background: transparent; }
.lg.g-plan { height: 6px; border: 1.5px dashed var(--fraco); background: none; }
.g-vist { flex: none; font-size: 10.5px; font-weight: 750; text-transform: none; letter-spacing: 0; border-radius: 99px; padding: 0 6px; line-height: 17px; }
.g-vist.ok { background: var(--verde); color: #fff; display: inline-grid; place-items: center; width: 18px; height: 18px; padding: 0; }
.g-vist.ok svg.i { width: 12px; height: 12px; stroke-width: 3; }
.g-vist.pend { background: var(--info-f); color: var(--info); }
.g-vist.risco { background: var(--risco-f); color: var(--risco); }

/* Dossiê de entrega */
.dossie { display: flex; flex-direction: column; gap: 18px; }
.ds-barra { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ds-capa { background: var(--verde); color: #fff; border-radius: var(--raio); padding: 28px; }
.ds-marca { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.ds-capa h1 { margin: 6px 0 4px; font-size: 30px; }
.ds-capa p { margin: 0 0 18px; opacity: .9; }
.ds-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.ds-kv div { background: rgba(255, 255, 255, .12); border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; }
.ds-kv span { font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; opacity: .85; }
.ds-etapa { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px; }
.ds-etapa h2 { margin: 0 0 12px; font-size: 18px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.ds-etapa h3 { font-size: 14px; margin: 16px 0 8px; }
.ds-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.ds-fotos figure { margin: 0; }
.ds-fotos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; display: block; background: #eee; }
.ds-fotos figcaption { font-size: 11px; color: var(--suave); margin-top: 3px; }
.ds-aj { padding: 10px 0; border-bottom: 1px solid #f0f2ec; }
.ds-aj p { margin: 4px 0; }

@media (max-width: 760px) {
  .so-desk { display: none !important; }
  .aba { font-size: 10.5px; }
  .titulo-dia { display: block; margin: 2px 0 0; }
  .th { width: 64px; height: 64px; }
  .tc-fotos .btn { flex: 1 1 calc(50% - 6px); justify-content: center; }
  .tc-acoes .btn.prim { flex: 1; justify-content: center; }
  .ds-capa { padding: 20px; }
}
@media print {
  .nao-imprime, .topo, .abas, .rodape, .toast { display: none !important; }
  main { padding: 0 !important; max-width: none !important; }
  .ds-capa { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .ds-etapa { border: 0; padding: 0; margin-top: 12px; }
  .ds-etapa h2 { break-after: avoid; }
  .ds-fotos figure, .tab-pr tr { break-inside: avoid; }
  .ds-fotos { grid-template-columns: repeat(3, 1fr); }
  @page { margin: 14mm; }
}

/* ---------- papéis: gestor, equipe e cliente ---------- */
.aviso.azul { background: var(--info-f); color: #173f73; border-color: #c7d9f3; }
.tf-sub .risco { color: var(--risco); }
.link-b { appearance: none; border: 0; background: none; padding: 6px 0; color: var(--verde-escuro); text-decoration: underline; font: inherit; font-size: 13.5px; cursor: pointer; text-align: left; }
.link-b.centro { align-self: center; color: var(--suave); }
.obs-gestor { margin: 0; background: var(--verde-claro); border-radius: 8px; padding: 9px 11px; font-size: 14px; }
.passo { display: flex; align-items: center; gap: 10px; font-size: 15px; margin-top: 4px; }
.num-p { width: 26px; height: 26px; border-radius: 99px; background: #eef0eb; color: var(--suave); display: grid; place-items: center; font-weight: 750; font-size: 13px; flex: none; }
.num-p.ok { background: var(--verde); color: #fff; }
.fotos-pedidas { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.foto-grande { appearance: none; border: 1.5px solid #b7d3a3; background: #fff; color: var(--verde-escuro); border-radius: 10px; padding: 12px; display: flex; gap: 10px; align-items: center; text-align: left; cursor: pointer; font: inherit; min-height: 60px; }
.foto-grande svg.i { width: 22px; height: 22px; flex: none; }
.foto-grande span { display: flex; flex-direction: column; }
.foto-grande small { font-size: 12px; color: var(--risco); font-weight: 600; }
.foto-grande.ok small { color: var(--verde); }
.foto-grande.t-oculto { border-color: #e9c27d; background: var(--atencao-f); color: #6b4000; }
.foto-grande:disabled { opacity: .6; cursor: default; }
.opc { display: flex; gap: 14px; flex-wrap: wrap; }
.checks.grandes .check { font-size: 15px; padding: 3px 0; }
.checks.grandes .check input { width: 22px; height: 22px; }
.campo-g { display: flex; flex-direction: column; gap: 8px; }
.rot-c { font-size: 12.5px; font-weight: 650; color: var(--suave); }
.rot-c .dica { font-weight: 450; color: var(--fraco); }
.chips-r { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-r input, .chip-f input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip-r span { display: inline-block; border: 1px solid var(--linha); background: #fff; border-radius: 99px; padding: 7px 13px; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.chip-r input:checked + span { background: var(--verde); border-color: var(--verde); color: #fff; }
.chip-r input:focus-visible + span, .chip-f input:focus-visible + span { outline: 3px solid rgba(59,122,31,.3); }
.chips-f { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-f span { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--linha); background: #fff; border-radius: 8px; padding: 9px 13px; font-weight: 600; cursor: pointer; }
.chip-f span::before { content: ''; width: 16px; height: 16px; border-radius: 4px; border: 1.5px solid #b5bcae; background: #fff; flex: none; }
.chip-f input:checked + span { border-color: #b7d3a3; background: var(--verde-claro); }
.chip-f input:checked + span::before { background: var(--verde) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat; border-color: var(--verde); }
.chip-f.alerta input:checked + span { border-color: #e9c27d; background: var(--atencao-f); }
.chip-f small { font-weight: 450; color: var(--fraco); }
.linha-add { display: flex; gap: 8px; }
.linha-add input { flex: 1; border: 1px dashed #c7cdbf; border-radius: 8px; padding: 8px 10px; font: inherit; min-width: 0; }
.cli-cab { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; }
.cli-grade { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 16px; }
.cli-fotos, .cli-lado { display: flex; flex-direction: column; gap: 12px; }
.grupo-f { display: flex; flex-direction: column; gap: 6px; }
.rot-f.t-oculto { color: var(--atencao); }
.rot-f.t-depois { color: var(--verde-escuro); }
.cli-chk { font-size: 14px; color: var(--fraco); }
.cli-chk.ok { color: var(--tinta); }
.cli-chk small { color: var(--fraco); }
.cli-box { border: 1px solid var(--linha); border-radius: 10px; padding: 11px 13px; display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.cli-box.verde { background: var(--verde-claro); border-color: transparent; }
.cli-box .ok { color: var(--verde); } .cli-box .risco { color: var(--risco); }
.faixa-plano { padding: 12px 16px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.faixa-plano .espaco { flex: 1; }
.pp-l { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pp-l > i { width: 28px; height: 2px; background: var(--linha); }
.pp { display: inline-flex; align-items: center; gap: 7px; color: var(--suave); font-weight: 600; }
.pp.on { color: var(--tinta); font-weight: 750; }
.pp-n { width: 24px; height: 24px; border-radius: 99px; background: #eef0eb; display: grid; place-items: center; font-size: 12px; font-weight: 750; }
.pp.on .pp-n { background: var(--verde); color: #fff; }
.pp.feito .pp-n { background: var(--verde-fundo); color: var(--verde); }
.pp-n svg.i { width: 13px; height: 13px; stroke-width: 3; }
.pedido-c { padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.pd-datas { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pd-datas s { color: var(--fraco); }
.pedido-c .ok { color: var(--verde); } .pedido-c .risco { color: var(--risco); }
@media (max-width: 760px) {
  .cli-grade { grid-template-columns: 1fr; }
  .faixa-plano .btn { width: 100%; justify-content: center; }
}

/* ---------- cotações ---------- */
.g-cot { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); margin-top: 14px; }
.cot-f { padding: 14px; display: flex; flex-direction: column; gap: 6px; }
.cot-f.rec { border-color: #b7d3a3; box-shadow: inset 0 3px 0 var(--verde), var(--sombra); }
.cot-f .linha-v { display: flex; justify-content: space-between; gap: 10px; font-size: 13.5px; color: var(--suave); }
.cot-f .linha-v b { color: var(--tinta); }
.cot-tab td { vertical-align: top; }
.cot-o label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; }
.cot-o input { margin-top: 3px; accent-color: var(--verde); width: 17px; height: 17px; flex: none; }
.cot-o span { display: flex; flex-direction: column; }
.cot-o small { font-size: 11.5px; color: var(--suave); }
.cot-o.melhor { background: #f1f8ec; }
.cot-o.melhor b { color: var(--verde-escuro); }
.cot-o.vazio { color: var(--fraco); text-align: center; }
.cot-aviso { font-size: 12px; color: var(--atencao); margin-top: 4px; }
.cot-rodape { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-top: 1px solid var(--linha); flex-wrap: wrap; }
.cot-rodape .espaco { flex: 1; }
.lista-sem { padding: 12px 14px; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; }
.lista-sem small { color: var(--fraco); }
.cot-ed input, .cot-ed select { width: 100%; min-width: 90px; border: 1px solid #d5dacd; border-radius: 6px; padding: 6px 7px; font: inherit; font-size: 13px; }
.cot-ed input.curto { min-width: 54px; width: 60px; }
.cot-ed input.medio { min-width: 80px; width: 86px; }
.cot-ed select { min-width: 180px; }
.cot-ed td { padding: 4px; }
dialog.folha:has(.cot-ed) { width: min(1100px, 96vw); max-width: 96vw; }

/* leitura automática de orçamentos */
.cot-f.lendo, .cot-f.erro { min-height: 0; }
.cot-f.erro { border-color: #f0c0b8; }
.giro { width: 22px; height: 22px; border-radius: 99px; border: 3px solid var(--verde-fundo); border-top-color: var(--verde); animation: giro 0.9s linear infinite; flex: none; }
@keyframes giro { to { transform: rotate(360deg); } }
.cot-rev { display: flex; gap: 8px; align-items: center; background: var(--atencao-f); color: #6b4000; border-radius: 8px; padding: 7px 9px; font-size: 13px; font-weight: 600; }
.cot-rev span { flex: 1; }
.cot-rev svg.i { width: 16px; height: 16px; }
.cot-obs { margin: 0; font-size: 12.5px; color: var(--atencao); }
.cot-ed tr.duvida td { background: #fff3dc; }
.cot-ed tr.media td { background: #fbf8ef; }

/* fases 2 e 3: sequência e biblioteca */
.fica-assim { margin: 0; font-size: 14px; background: var(--verde-claro); border-radius: 8px; padding: 9px 11px; color: var(--verde-escuro); }
.faixa-cfg { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; width: 100%; border-top: 1px dashed var(--linha); padding-top: 10px; font-size: 13.5px; }
.bib-c { padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.bib-l { margin: 0; padding-left: 18px; font-size: 13.5px; color: var(--suave); }
.bib-c .tc-cab > .btn { margin-left: auto; flex: none; }

/* melhorias da consultoria: FVS, diário completo, ajustes 5W2H */
.fvs-i { display: flex; flex-direction: column; gap: 2px; padding: 3px 0; }
.fvs-l { display: block; font-size: 12px; color: var(--suave); margin-left: 31px; }
.cli-chk .fvs-l { margin-left: 14px; }
.fvs-x { font-size: 12.5px; color: var(--risco); margin-left: 31px; padding: 0; align-self: flex-start; }
small.risco { color: var(--risco); }
.efetivo { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.ef { display: flex; align-items: center; justify-content: space-between; gap: 6px; border: 1px solid var(--linha); border-radius: 8px; padding: 4px 4px 4px 9px; font-size: 13px; }
.ef input { width: 46px; border: 1px solid #d5dacd; border-radius: 6px; padding: 5px; font: inherit; text-align: center; }
.prazo-d { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13.5px; background: var(--verde-claro); border-radius: 8px; padding: 9px 12px; margin-bottom: 10px; }
.prazo-d.atencao { background: var(--atencao-f); }
.prazo-d.risco { background: var(--risco-f); color: var(--risco); }
.aj-plano { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13px; color: var(--suave); background: #fafbf8; border-radius: 8px; padding: 7px 9px; }
.aj-plano .risco { color: var(--risco); }
