/* Obra aberta no Canteiro (01/10/2026): a faixa na tela do projeto, o selo
   no cartão e a ficha da obra. A página pública tem estilo próprio (obra.py). */

.vp.obra { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px;
  background: var(--marca-fraca); color: var(--marca); font-weight: 600; font-size: 11.5px; white-space: nowrap; }
.vp.obra .ic { width: 12px; height: 12px; }

.obra-faixa { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin: 12px 0 4px;
  padding: 12px 14px; border-radius: var(--raio); border: 1px solid color-mix(in srgb, var(--marca) 45%, transparent);
  background: color-mix(in srgb, var(--marca) 9%, var(--fundo2)); font-size: 13.5px; color: var(--fraco); }
.obra-faixa b { color: var(--texto); }
.obra-faixa.desligada { border-color: var(--linha-forte); background: var(--fundo2); }
.obra-selo { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--marca);
  text-transform: uppercase; letter-spacing: .06em; font-size: 12px; }
.obra-selo .ic { width: 16px; height: 16px; }
.obra-acoes { display: flex; gap: 8px; margin-left: auto; }
.obra-acoes a.vpd-bt { text-decoration: none; }

#obra-folha { position: fixed; inset: 0; z-index: 130; pointer-events: none; }
#obra-folha.aberta { pointer-events: auto; }
#obra-folha.aberta .vs-veu { opacity: 1; }
#obra-folha.aberta .vs { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.obra-vs { width: min(92vw, 980px); height: min(92vh, 860px); }
.obra-cab { flex: 1; min-width: 0; }
.obra-cab .vs-num { display: flex; align-items: center; gap: 6px; color: var(--marca); font-weight: 650; }
.obra-cab .vs-num .ic { width: 14px; height: 14px; }
.obra-end { font-family: var(--mono); font-size: 13px; color: var(--fraco); display: flex; align-items: center; flex-wrap: wrap; }
.obra-end input { font-family: var(--mono); font-size: 13px; background: var(--fundo2); border: 1px solid var(--linha-forte);
  border-radius: 8px; padding: 6px 8px; color: var(--texto); min-width: 160px; }
.obra-liga { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 10px;
  border: 1px solid var(--linha-forte); font-size: 13px; color: var(--fraco); cursor: pointer; white-space: nowrap; }
.obra-liga.on { border-color: var(--ok); color: var(--ok); }
.obra-liga input { accent-color: var(--ok); }
.obra-abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); flex: none; overflow-x: auto; }
.obra-abas button { border: 0; background: none; border-radius: 0; border-bottom: 2px solid transparent; color: var(--fraco);
  font-weight: 600; font-size: 13.5px; padding: 8px 12px; white-space: nowrap; }
.obra-abas button.on { color: var(--texto); border-bottom-color: var(--marca); }
.obra-corpo { flex: 1; min-height: 0; overflow-y: auto; padding: 4px 2px 8px; display: flex; flex-direction: column; gap: 12px; }
.obra-campo { display: flex; flex-direction: column; gap: 6px; }
.obra-campo > span { font-size: 13px; font-weight: 600; color: var(--fraco); }
.obra-campo small { font-weight: 400; color: var(--apagado); margin-left: 6px; }
.obra-campo input, .obra-campo textarea, .obra-novo input, .obra-novo select { background: var(--fundo2); border: 1px solid var(--linha-forte);
  border-radius: 10px; padding: 9px 11px; color: var(--texto); font-size: 14px; }
.obra-campo textarea { resize: vertical; line-height: 1.5; }
.obra-campo .mono { font-family: var(--mono); font-size: 13px; }
.obra-campo.grande textarea { min-height: 320px; }
.obra-campo input:focus, .obra-campo textarea:focus, .obra-novo input:focus { outline: none; border-color: var(--marca); }
.obra-dica { margin: 0; font-size: 13px; color: var(--fraco); line-height: 1.5; }
.obra-dica code { font-family: var(--mono); font-size: 12px; background: var(--fundo2); padding: 1px 5px; border-radius: 4px; }
.obra-sub { margin: 8px 0 0; font-size: 14px; }
.obra-sub small { font-weight: 400; color: var(--apagado); margin-left: 6px; }
.obra-sis, .obra-pessoas { display: flex; flex-wrap: wrap; gap: 8px; }
.obra-sis label, .obra-pessoas label { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px;
  border: 1px solid var(--linha-forte); background: var(--fundo2); cursor: pointer; font-size: 13.5px; min-height: 44px; }
.obra-sis label.on, .obra-pessoas label.on { border-color: var(--marca); background: var(--marca-fraca); }
.obra-sis input, .obra-pessoas input { accent-color: var(--marca); }
.obra-pessoas small { color: var(--apagado); font-size: 12px; }
.obra-lista { display: flex; flex-direction: column; border: 1px solid var(--linha); border-radius: var(--raio-p); overflow: hidden; }
.obra-lista > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 9px 12px; border-top: 1px solid var(--linha); }
.obra-lista > div:first-child { border-top: 0; }
.obra-lista span { grid-column: 1; font-size: 12.5px; color: var(--fraco); }
.obra-lista .so-ic { grid-row: 1 / span 2; grid-column: 2; align-self: center; }
.obra-novo { display: grid; grid-template-columns: 1fr 130px 110px 150px auto; gap: 8px; }
.obra-novo button { display: inline-flex; align-items: center; gap: 6px; }
.obra-pe { flex: none; display: flex; align-items: center; gap: 10px; border-top: 1px solid var(--linha); padding-top: 10px; }
.obra-pe a.vpd-bt { text-decoration: none; }
#obra-aviso { flex: 1; font-size: 13px; color: var(--fraco); }
#obra-aviso.ruim { color: var(--alerta); }
#obra-aviso.bom { color: var(--ok); }
.obra-salvar { background: var(--marca); border-color: var(--marca); color: #fff; font-weight: 650; min-width: 120px; }
/* No celular a ficha sobe de baixo, como o cartão do Canteiro (voo.css, 700px). */
@media (max-width: 700px) {
  .obra-vs { width: 100%; height: auto; left: 0; top: 6vh; bottom: 0; }
  #obra-folha.aberta .vs { transform: none; }
  .obra-corpo { overflow-y: visible; flex: none; }
  .obra-end input { min-width: 0; width: 100%; margin-top: 4px; }
  .obra-novo { grid-template-columns: 1fr 1fr; }
  .obra-novo input:first-child { grid-column: 1 / -1; }
  .obra-acoes { margin-left: 0; }
}
