:root{
  --papel:#F5F4EF;
  --folha:#FFFFFF;
  --tinta:#17211C;
  --tinta-2:#5A6560;
  --tinta-3:#8C948F;
  --linha:#DAD8CE;
  --linha-forte:#B9B7AC;
  --musgo:#3E6B46;
  --musgo-claro:#E4EDE2;
  --barro:#A9613A;
  --barro-claro:#F5E7DC;
  --agua:#2E6E8E;
  --agua-claro:#E0EDF3;
  --raio:6px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--papel);color:var(--tinta);
  font:400 15px/1.6 "IBM Plex Sans",system-ui,sans-serif;
}
.wrap{max-width:1080px;margin:0 auto;padding:28px 20px 64px;position:relative;isolation:isolate}
.wrap.estreita{max-width:420px}

/* Marca d'água — só aparece na impressão/PDF (Ctrl+P → Salvar como PDF).
   position:fixed faz o navegador repeti-la em cada página impressa. Fica
   atrás do conteúdo pela ordem no DOM (.conteudo-pdf vem depois e também
   é position:relative), sem depender de z-index negativo. */
.marca-dagua{
  display:none;position:fixed;inset:0;
  background-repeat:no-repeat;background-position:center;background-size:460px auto;
  opacity:.1;pointer-events:none;
}
.conteudo-pdf{position:relative}

/* Capa de apresentação — só existe na impressão/PDF, nunca na tela. */
.pdf-capa{display:none}

/* Cabeçalho */
.topo{display:flex;align-items:center;gap:18px;padding-bottom:20px;border-bottom:1.5px solid var(--tinta)}
.topo .marca-link{display:flex;align-items:center;gap:18px;text-decoration:none;color:inherit}
.topo img{height:52px;width:auto;display:block}
.topo .marca{font:600 13px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--musgo)}
.topo h1{font:400 30px/1.15 "Fraunces",Georgia,serif;margin:6px 0 2px;letter-spacing:-.01em}
.topo p{margin:0;color:var(--tinta-2);font-size:14px}
.topo .dir{margin-left:auto;text-align:right;font:400 12px/1.7 "IBM Plex Mono",monospace;color:var(--tinta-3)}

/* Navegação entre páginas */
.nav-conta{margin-top:8px;display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.nav-conta a{font:500 12px/1 "IBM Plex Mono",monospace;letter-spacing:.04em;color:var(--tinta-3);text-decoration:none}
.nav-conta a.ativo,.nav-conta a:hover{color:var(--musgo);text-decoration:underline}

/* Seções */
section{margin-top:34px}
.rotulo{
  font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tinta-3);display:flex;align-items:center;gap:12px;margin-bottom:14px;
}
.rotulo::after{content:"";flex:1;height:1px;background:var(--linha)}

/* Formulário */
.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:14px}
.campo{display:flex;flex-direction:column;gap:5px}
.campo label{font-size:12.5px;color:var(--tinta-2)}

/* Medidas — lista vertical, uma por linha, com rótulo e valor lado a lado */
.grade-medidas{display:flex;flex-direction:column;gap:0}
.grade-medidas .campo{
  flex-direction:row;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:10px 0;border-bottom:1px solid var(--linha);
}
.grade-medidas .campo:last-child{border-bottom:0}
.grade-medidas .campo label{flex:1;min-width:200px}
.grade-medidas .campo input{width:130px;flex:none;text-align:right}
input,select{
  font:400 15px/1 "IBM Plex Sans",sans-serif;color:var(--tinta);
  background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio);
  height:38px;padding:0 10px;width:100%;
}
input[type=number]{font-family:"IBM Plex Mono",monospace;font-size:14px}
input:focus,select:focus{outline:2px solid var(--musgo);outline-offset:1px;border-color:var(--musgo)}
.check{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--tinta-2);margin-top:14px}
.check input{width:17px;height:17px;accent-color:var(--musgo)}

/* Abas de opções */
.abas{display:flex;gap:8px;flex-wrap:wrap}
.aba{padding:8px 14px;border:1px solid var(--linha-forte);border-radius:var(--raio);cursor:pointer;font-size:13px;background:var(--folha)}
.aba.ativa{background:var(--musgo-claro);border-color:var(--musgo);font-weight:600;color:var(--musgo)}

/* Resumo para o cliente */
.opcoes-resumo{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.opcao-cartao{background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio);overflow:hidden;cursor:pointer;break-inside:avoid}
.opcao-cartao.ativa{border-color:var(--musgo)}
.opcao-cartao .cab{padding:12px 16px;border-bottom:1px solid var(--linha)}
.opcao-cartao .cab .nome{font:600 15px/1.3 "Fraunces",serif}
.opcao-cartao .cab .sub{font-size:11.5px;color:var(--tinta-2);margin-top:3px}
.mini-croqui{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--linha)}
.mini-croqui-svg{width:56px;height:auto;flex:none;border:1px solid var(--linha-forte);border-radius:4px;background:#fff}
.mini-croqui p{margin:0;font-size:11.5px;line-height:1.5;color:var(--tinta-2)}
.opcao-cartao .l{display:flex;justify-content:space-between;padding:9px 16px;border-bottom:1px solid var(--linha);font-size:13px;gap:10px}
.opcao-cartao .l span:last-child{font:500 13px/1 "IBM Plex Mono",monospace;white-space:nowrap}
.opcao-cartao .l.total{background:var(--tinta);color:var(--papel);border-bottom:0;padding:14px 16px}
.opcao-cartao .l.total span:first-child{font:400 15px/1 "Fraunces",serif}
.opcao-cartao .l.total span:last-child{font:500 18px/1 "IBM Plex Mono",monospace}

/* Indicadores */
.indicadores{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:1px;background:var(--linha);border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden}
.ind{background:var(--folha);padding:12px 14px}
.ind .k{font:400 11.5px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-3)}
.ind .v{font:500 21px/1.2 "IBM Plex Mono",monospace;margin-top:7px}

/* Prancha do croqui */
.prancha{background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio);padding:8px 8px 0;position:relative}
.prancha svg{display:block;width:100%;height:auto}
.selo{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  border-top:1px solid var(--linha-forte);margin-top:4px;
}
.selo div{padding:9px 12px;border-right:1px solid var(--linha)}
.selo div:last-child{border-right:0}
.selo .k{font:400 10px/1 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3)}
.selo .v{font:500 13px/1 "IBM Plex Mono",monospace;margin-top:6px}
.legenda{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12.5px;color:var(--tinta-2)}
.legenda span{display:flex;align-items:center;gap:6px}
.am{width:13px;height:13px;border-radius:3px;border:1px solid var(--linha-forte)}
.nota{font-size:13px;color:var(--tinta-2);margin:12px 0 0}

/* Conteúdo exclusivo da impressão/PDF (capa e resumo de medidas) — fica
   oculto na tela normal e só aparece em @media print, mais abaixo. */
.somente-pdf{display:none}
.pdf-titulo{font:400 22px/1.25 "Fraunces",Georgia,serif;margin:0 0 10px}
.pdf-texto{font-size:13.5px;line-height:1.7;color:var(--tinta-2);margin:0}
.pdf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}
.pdf-card{border:1px solid var(--linha-forte);border-top:3px solid var(--cor);border-radius:var(--raio);padding:12px 14px;break-inside:avoid}
.pdf-card strong{display:block;font-size:12.5px;color:var(--tinta);margin-bottom:4px}
.pdf-card span{display:block;font-size:11px;line-height:1.5;color:var(--tinta-2)}
.pdf-beneficios{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;margin-top:4px}
.pdf-beneficios strong{display:block;font-size:12.5px;color:var(--musgo);margin-bottom:2px}
.pdf-beneficios span{display:block;font-size:11.5px;line-height:1.5;color:var(--tinta-2)}
.pdf-fechamento{background:var(--tinta);color:var(--papel);border-radius:var(--raio);padding:16px 20px;margin-top:16px;break-inside:avoid}
.pdf-fechamento p{margin:0;font-size:13px;line-height:1.6}
.pdf-fechamento strong{color:var(--papel)}
.medidas-resumo{font-size:11.5px;color:var(--tinta-2);margin:0;padding:5px 0;border-bottom:1px solid var(--linha)}

/* Tabela */
table{width:100%;border-collapse:collapse;table-layout:fixed;background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio)}
th{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);text-align:left;padding:11px 12px;border-bottom:1px solid var(--linha-forte)}
th.n,td.n{text-align:right}
td{padding:5px 12px;border-bottom:1px solid var(--linha);font-size:14px}
tr:last-child td{border-bottom:0}
tr.g td{
  font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;
  color:var(--musgo);background:var(--papel);padding:9px 12px;
}
td input{height:32px;font-size:13.5px;padding:0 8px;text-align:right}
td .un{font:400 12px/1 "IBM Plex Mono",monospace;color:var(--tinta-3)}
td.sub{font:500 14px/1 "IBM Plex Mono",monospace}
.linha-acoes{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;flex-wrap:wrap}
button{
  font:500 13.5px/1 "IBM Plex Sans",sans-serif;color:var(--tinta);background:var(--folha);
  border:1px solid var(--linha-forte);border-radius:var(--raio);padding:10px 16px;cursor:pointer;
}
button:hover{background:var(--musgo-claro);border-color:var(--musgo)}
button:focus-visible{outline:2px solid var(--musgo);outline-offset:2px}
button.link{background:none;border:0;color:var(--musgo);text-decoration:underline;padding:0;height:auto}
.aviso{font-size:12.5px;color:var(--barro)}

/* Fechamento */
.fecho{margin-top:18px;background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio);overflow:hidden}
.fecho .l{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--linha);font-size:14.5px}
.fecho .l span:last-child{font:500 15px/1 "IBM Plex Mono",monospace}
.fecho .l.total{background:var(--tinta);color:var(--papel);border-bottom:0;padding:18px 16px}
.fecho .l.total span:first-child{font:400 17px/1 "Fraunces",serif}
.fecho .l.total span:last-child{font:500 22px/1 "IBM Plex Mono",monospace}
.rodape{margin-top:40px;padding-top:16px;border-top:1px solid var(--linha);font-size:12.5px;color:var(--tinta-3);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* Catálogo de preços (Configurações) */
.catalogo-grupo-titulo{
  font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;
  color:var(--musgo);margin:22px 0 10px;
}
.catalogo-grupo-titulo:first-child{margin-top:0}
.catalogo-item{background:var(--folha);border:1px solid var(--linha-forte);border-radius:var(--raio);padding:14px 16px;margin-bottom:10px}
.catalogo-item-cab{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.catalogo-item-cab .nome{font:600 14.5px/1.3 "Fraunces",serif}
.catalogo-item-cab .un{font:400 11.5px/1 "IBM Plex Mono",monospace;color:var(--tinta-3)}
.catalogo-item-cab .preco-atual{margin-left:auto;font:500 15px/1 "IBM Plex Mono",monospace;color:var(--musgo)}
.catalogo-modo{display:flex;gap:16px;margin-bottom:10px;font-size:13px;color:var(--tinta-2)}
.catalogo-modo label{display:flex;align-items:center;gap:6px;cursor:pointer}
.catalogo-modo input{width:auto;height:auto}
.catalogo-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.catalogo-item .campo-pacote{display:none}
.catalogo-item.modo-pacote .campo-pacote{display:flex}
.catalogo-item.modo-pacote .campo-direto{display:none}
.catalogo-item .campo-direto{display:flex}

@media (max-width:640px){
  .topo{flex-wrap:wrap;gap:12px}
  .topo .dir{margin-left:0;text-align:left;width:100%}
  .topo h1{font-size:25px}
  table{table-layout:auto}
}
@media print{
  *{-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}
  body{background:#fff}
  .wrap{max-width:none;padding:0}
  .no-print{display:none !important}
  .oculta-no-pdf{display:none !important}
  .somente-pdf{display:block !important}
  input,select{border-color:transparent;background:transparent;height:auto;padding:0}
  section{margin-top:16px;break-inside:avoid}
  .rotulo{margin-bottom:8px}
  .prancha,.fecho,table,.opcao-cartao{break-inside:avoid}
  .marca-dagua{display:block !important}
  .pdf-capa{display:block !important;break-after:page;page-break-after:always}
  .pdf-capa section:first-child{margin-top:16px}
  .pdf-capa section{margin-top:24px}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}
