:root {
  --preto: #2F2F2F;
  --offwhite: #F8F8F6;
  --sage: #B7C1AC;
  --areia: #E9E5DC;
  --sage-escuro: #8b9a7d;
  --erro: #b3433a;
  --borda: #ddd9d0;
  --radius: 12px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Satoshi", -apple-system, system-ui, sans-serif;
  background: var(--offwhite);
  color: var(--preto);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

.wrap { max-width: 880px; margin: 0 auto; padding: 0 24px; }

.topo {
  background: var(--preto);
  color: var(--offwhite);
  padding: 18px 0;
}
.topo .wrap { display: flex; align-items: baseline; gap: 14px; }
.marca { font-weight: 900; font-size: 26px; letter-spacing: -0.02em; }
.marca .ponto { color: var(--sage); }
.sub { font-size: 14px; color: var(--sage); font-weight: 500; }

.intro { font-size: 17px; color: #555; margin: 32px 0 24px; }

.card {
  background: #fff;
  border: 1px solid var(--borda);
  border-radius: var(--radius);
  padding: 28px;
  margin-bottom: 22px;
}
.card h2 {
  margin: 0 0 6px;
  font-size: 19px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 12px;
}
.num {
  display: inline-grid;
  place-items: center;
  width: 28px; height: 28px;
  background: var(--sage);
  color: var(--preto);
  border-radius: 50%;
  font-size: 15px;
  font-weight: 700;
}
.dica { font-size: 13.5px; color: #777; margin: 4px 0 18px; }

label { display: block; font-size: 13.5px; font-weight: 500; margin-bottom: 14px; }
.opc { color: #aaa; font-weight: 400; }
input[type=text], input[type=email], select {
  width: 100%;
  margin-top: 5px;
  padding: 11px 13px;
  border: 1px solid var(--borda);
  border-radius: 8px;
  font: inherit;
  font-size: 14.5px;
  background: var(--offwhite);
  color: var(--preto);
}
input:focus, select:focus { outline: 2px solid var(--sage); border-color: transparent; }
select { cursor: pointer; }

.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0 20px; align-items: end; }
.grid-cep {
  display: grid;
  grid-template-columns: 130px 1fr 80px;
  gap: 0 16px;
}
.grid-cep .full { grid-column: 1 / -1; }
.campo-sistema { margin-top: 20px; }

.check, .check-inline { font-weight: 500; display: flex; align-items: center; gap: 8px; cursor: pointer; }
.check { margin-top: 8px; }
.check input, .check-inline input { width: auto; margin: 0; accent-color: var(--sage-escuro); }
.check-inline { margin-bottom: 14px; }

/* Upload */
.drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px dashed var(--sage);
  border-radius: var(--radius);
  background: var(--offwhite);
  padding: 32px 20px;
  text-align: center;
  cursor: pointer;
  font-weight: 500;
  margin-bottom: 18px;
  transition: background .15s, border-color .15s;
}
.drop:hover { background: var(--areia); }
.drop.drag { background: var(--areia); border-color: var(--sage-escuro); }
.drop.ocupado { border-style: solid; }
.drop strong { color: var(--sage-escuro); }
.status { font-size: 13px; color: #777; }
.status.erro { color: var(--erro); }
.status.ok { color: var(--sage-escuro); }

/* Tabela equipamentos */
.equip { width: 100%; border-collapse: collapse; margin: 4px 0 14px; font-size: 13px; }
.equip th {
  text-align: left;
  font-weight: 600;
  color: #888;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .04em;
  padding: 6px 6px;
  border-bottom: 1px solid var(--borda);
}
.equip td { padding: 4px 4px; vertical-align: top; }
.equip input, .equip select {
  margin: 0;
  padding: 7px 8px;
  font-size: 13px;
  background: #fff;
}
.equip .col-qtd { width: 56px; }
.equip .col-tipo { width: 110px; }
.equip .col-pot { width: 78px; }
.equip .col-fab { width: 130px; }
.equip .col-rm { width: 32px; }
.rm {
  background: none; border: none; cursor: pointer;
  color: #bbb; font-size: 18px; line-height: 1; padding: 6px;
}
.rm:hover { color: var(--erro); }

.btn-secundario {
  background: var(--areia);
  border: 1px solid var(--borda);
  color: var(--preto);
  padding: 8px 16px;
  border-radius: 8px;
  font: inherit;
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
}
.btn-secundario:hover { background: var(--sage); }

/* Pagamento toggle */
.toggle { display: flex; gap: 24px; margin-bottom: 20px; }
.radio { font-weight: 600; display: flex; align-items: center; gap: 8px; cursor: pointer; margin: 0; }
.radio input { width: auto; margin: 0; accent-color: var(--sage-escuro); }

/* Ações */
.acoes { display: flex; align-items: center; gap: 18px; margin: 30px 0 60px; }
.btn {
  background: var(--preto);
  color: var(--offwhite);
  border: none;
  padding: 15px 32px;
  border-radius: 10px;
  font: inherit;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: transform .1s, background .15s;
}
.btn:hover { background: #000; transform: translateY(-1px); }
.btn:disabled { opacity: .5; cursor: wait; transform: none; }
.aviso { font-size: 13.5px; color: var(--erro); }

.rodape { border-top: 1px solid var(--borda); padding: 20px 0; color: #999; font-size: 13px; }

@media (max-width: 640px) {
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
  .grid-cep { grid-template-columns: 1fr 1fr; }
  .grid-cep .full { grid-column: 1 / -1; }
  .equip { display: block; overflow-x: auto; }
}
