/* Calculador de material 3D — estrutura. Cores da vista 3D (--v3d-*) ou tokens da app. */
.calc3d-faixa {
  margin: 0 0 .8rem;
  padding: .55rem .8rem;
  border-radius: 10px;
  background: var(--v3d-aviso-fundo, #FBF0DC);
  color: var(--v3d-aviso-tx, #83560F);
  font-size: .85rem;
  font-weight: 600;
}
.calc3d-grelha {
  display: grid;
  grid-template-columns: minmax(240px, 340px) 1fr;
  gap: 1rem;
  align-items: start;
}
@media (max-width: 860px) {
  .calc3d-grelha { grid-template-columns: 1fr; }
}
.calc3d-form .fld { margin: 0 0 .55rem; }
.calc3d-form .f2 { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.calc3d-vaos { margin: .4rem 0; }
.calc3d-vao { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: .35rem; align-items: end; margin: 0 0 .35rem; }
.calc3d-palco {
  position: relative;
  width: 100%;
  min-height: 320px;
  height: min(52vh, 460px);
  border-radius: 12px;
  overflow: hidden;
  background: var(--v3d-fundo, #0B1511);
}
.calc3d-palco canvas { display: block; width: 100%; height: 100%; touch-action: none; }
.calc3d-tip {
  position: absolute;
  z-index: 3;
  min-width: 8rem;
  max-width: 14rem;
  padding: .4rem .6rem;
  border-radius: 10px;
  background: var(--v3d-etq-bg, rgba(16,24,21,.92));
  color: var(--v3d-etq-tx, #F2F6F4);
  font-size: .8rem;
  pointer-events: none;
  transform: translate(-50%, -120%);
}
.calc3d-tip b { display: block; }
.calc3d-tip span { color: var(--v3d-etq-muted, #A8B8B3); }
.calc3d-lista { width: 100%; border-collapse: collapse; font-size: .85rem; }
.calc3d-lista th, .calc3d-lista td { padding: .35rem .4rem; text-align: left; border-bottom: 1px solid var(--line, #d5deda); }
.calc3d-lista .r { text-align: right; font-variant-numeric: tabular-nums; }
.calc3d-lista .aviso { color: var(--muted, #4A5E59); font-style: italic; }
.calc3d-acts { display: flex; gap: .5rem; justify-content: flex-end; flex-wrap: wrap; margin-top: .8rem; }
.calc3d-dica { font-size: .75rem; color: var(--muted, #4A5E59); margin: .3rem 0 .6rem; }

.calc3d-form input, .calc3d-form select {
  width: 100%;
  box-sizing: border-box;
  max-width: 100%;
  background: var(--v3d-superficie, #15241F);
  color: var(--v3d-texto, #E8EFEC);
  border: 1px solid var(--v3d-linha, #2A3F38);
  border-radius: 6px;
  padding: .35rem .5rem;
  font: inherit;
}
.calc3d-form .fld span { display: block; margin-bottom: .15rem; font-size: .78rem; }
.calc3d-form option { background: #15241F; color: #E8EFEC; }

.calc3d-check {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  margin: 0 0 .45rem;
  font-size: .8rem;
  line-height: 1.35;
}
.calc3d-check input { width: auto; flex: none; margin-top: .15rem; }
.calc3d-vao {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: .35rem;
  align-items: end;
  margin: 0 0 .35rem;
}
.calc3d-vao [data-fld-peit]:not([hidden]) { grid-column: 1 / -2; }
.calc3d-margem-placas { margin-top: -.2rem; }
