/* Mesma área útil e rolagem da calculadora de baterias; controles seguem o fast-simulation. */
.simulacao-orcamento {
    --theme-surface: #fff; --theme-surface-muted: #f8f9fa; --theme-text: #212529;
    --theme-text-muted: #6c757d; --theme-border: #dee2e6; --theme-hover: #e9ecef;
    --theme-primary: #ff7000; --theme-success: #0d8f13;
    flex: 1; min-height: 0; height: calc(100dvh - 130px); color: var(--theme-text);
}
#main:has(.simulacao-orcamento) { height: calc(100dvh - 60px); min-height: 0; max-height: none; overflow: hidden; }
#main:has(.simulacao-orcamento) > .container-fluid { display: flex; flex-direction: column; height: 100%; margin-top: 0 !important; padding-top: 8px; padding-bottom: 8px; }
#main:has(.simulacao-orcamento) > .container-fluid > h4 { flex-shrink: 0; }
.simulacao-orcamento [hidden] { display: none !important; }
#sim-form { height: 100%; min-height: 0; }
.simulacao-orcamento .sim-painel { display: flex; flex-direction: column; height: 100%; min-height: 0; min-width: 0; margin: 0; overflow: hidden; padding: 12px; border: 1px solid var(--theme-border); border-radius: 8px; }
.sim-etapa-conteudo { flex: 1; min-height: 0; overflow-y: auto; scrollbar-gutter: stable; overscroll-behavior: contain; padding: 3px; }
.sim-acoes { display: flex; justify-content: flex-end; flex-shrink: 0; gap: 10px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--theme-border); }
#sim-voltar { margin-right: auto; }
.simulacao-orcamento .sim-primary { background: var(--theme-primary); color: white; font-weight: 700; }
.simulacao-orcamento .sim-secondary { background: var(--theme-text-muted); color: white; font-weight: 700; }
.simulacao-orcamento .sim-primary:hover { background: #e96500; color: white; }
.sim-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-content: start; }
.sim-entrega { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.sim-dimensionamento { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.sim-dimensionamento .sim-campo:has(#sim-rede), .sim-dimensionamento .sim-campo:has(#sim-autotrafo), .sim-largura-total { grid-column: 1 / -1; }
.sim-servicos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sim-campo { min-width: 0; font-size: 14px; }
.sim-campo > label { display: block; margin-bottom: 4px; font-weight: 600; }
.sim-campo .form-control, .sim-campo .form-select { min-width: 0; border: 1px solid var(--theme-border); border-radius: 6px; background-color: var(--theme-surface-muted); color: var(--theme-text); padding: 9px 12px; font-size: 14px; }
.sim-campo .selectize-control { margin-bottom: 0; }
.sim-campo .selectize-input { display: block; min-height: 40px; padding: 9px 12px; border-radius: 6px; background: var(--theme-surface-muted); border-color: var(--theme-border); box-shadow: none; }
.sim-selectize-dropdown { z-index: 1060; background: #fff; border-color: #dee2e6; }
.sim-selectize-dropdown .selectize-dropdown-content { max-height: 230px; }
.sim-empresas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.sim-empresa { display: flex; align-items: center; gap: 8px; position: relative; cursor: pointer; border: 1px solid var(--theme-border); border-radius: 8px; background: var(--theme-surface-muted); padding: 12px; }
.sim-empresa input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sim-empresa:has(input:checked) { border-color: var(--theme-primary); background: #fff0e0; }
.sim-empresa:focus-within { outline: 2px solid var(--theme-primary); outline-offset: 2px; }
.sim-ajuda, #sim-status { color: var(--theme-text-muted); font-size: 14px; }
#sim-status { min-height: 21px; line-height: 21px; margin-bottom: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#sim-status:empty { visibility: hidden; }
.sim-tipos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.sim-tipo, .sim-modelo, .sim-todos-modelos { cursor: pointer; align-items: center; gap: 12px; border: 1px solid var(--theme-border); border-radius: 6px; background: var(--theme-surface); padding: 12px; }
.sim-tipo { display: grid; grid-template-columns: auto 42px minmax(0, 1fr); min-height: 76px; }
.sim-tipo-icone { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--theme-border); border-radius: 6px; color: var(--theme-primary); }
.sim-todos-modelos { display: flex; margin-bottom: 12px; }
.sim-todos-modelos > span, .sim-modelo-corpo { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.sim-todos-modelos small, .sim-modelo-corpo small, .sim-switch small { color: var(--theme-text-muted); }
.simulacao-orcamento .form-check-input { flex: none; width: 18px; height: 18px; margin: 0; cursor: pointer; }
.simulacao-orcamento .form-check-input:checked { background-color: var(--theme-primary); border-color: var(--theme-primary); }
.sim-inversores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.sim-modelo { display: grid; grid-template-columns: auto 72px minmax(0, 1fr); min-height: 118px; font-size: 14px; }
.sim-tipo:hover, .sim-modelo:hover, .sim-todos-modelos:hover { background: var(--theme-hover); }
.sim-tipo:has(input:checked), .sim-modelo.selecionado { border-color: var(--theme-primary); background: #fff5ed; box-shadow: 0 0 0 2px #ff70002e; }
.sim-modelo-imagem { display: grid; place-items: center; width: 72px; height: 72px; cursor: zoom-in; overflow: hidden; border: 1px solid var(--theme-border); border-radius: 6px; background: var(--theme-surface-muted); color: var(--theme-text-muted); }
.sim-modelo-imagem img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sim-imagem-vazia { cursor: default; }
.sim-tipo:focus-within, .sim-modelo:focus-visible, .sim-modelo-imagem:focus-visible { outline: 2px solid var(--theme-primary); outline-offset: 2px; }
.sim-switch { display: flex; cursor: pointer; position: relative; align-items: center; gap: 12px; border: 1px solid var(--theme-border); border-radius: 8px; background: var(--theme-surface-muted); padding: 14px; margin-bottom: 12px; }
.sim-switch > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sim-switch > span:last-child { display: grid; }
.sim-track { position: relative; width: 44px; height: 24px; flex: none; border-radius: 999px; background: var(--theme-border); }
.sim-track > span { position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--theme-surface); transition: transform 160ms ease; }
.sim-switch > input:checked + .sim-track { background: var(--theme-primary); }
.sim-switch > input:checked + .sim-track > span { transform: translateX(20px); }
.sim-switch:focus-within .sim-track { outline: 2px solid var(--theme-primary); outline-offset: 2px; }
#sim-estrutura > .sim-campo { margin-bottom: 12px; }
.sim-resultados-cabecalho { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.sim-resultados-cabecalho .sim-campo { width: 288px; }
.sim-vazio { padding: 16px; border-radius: 6px; background: var(--theme-surface-muted); color: var(--theme-text-muted); }
#sim-detalhes-conteudo { white-space: pre-line; }
#sim-compra-form { display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
#sim-compra fieldset { margin: 16px 0; }
#sim-compra legend { font-size: 18px; }
.sim-marcacao { display: flex; gap: 10px; align-items: center; margin: 12px 0; cursor: pointer; }
@media (max-width: 1199px) { .sim-tipos, .sim-empresas, .sim-inversores { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .sim-grade, .sim-servicos { grid-template-columns: 1fr; } .sim-inversores { grid-template-columns: 1fr; } }
@media (max-width: 575px) { .sim-tipos, .sim-empresas { grid-template-columns: 1fr; } .sim-acoes { gap: 8px; } .sim-acoes button { font-size: 13px; } .sim-resultados-cabecalho .sim-campo { width: 100%; } .sim-modelo { grid-template-columns: auto 60px minmax(0, 1fr); } .sim-modelo-imagem { width: 60px; height: 60px; } }

.simulacao-orcamento .simulation-results {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.simulacao-orcamento .simulation-result-card {
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr) minmax(170px, auto) 190px;
  gap: 1rem;
  align-items: center;
  border: 1px solid var(--theme-border);
  border-radius: 0.375rem;
  background: var(--theme-surface);
  padding: 0.85rem;
}
.simulacao-orcamento .simulation-result-media {
  position: relative;
  display: flex;
  min-height: 104px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--theme-border);
  border-radius: 0.375rem;
  background: var(--theme-surface-muted);
}
.simulacao-orcamento .simulation-result-image,
.simulacao-orcamento .simulation-result-inverter {
  cursor: zoom-in;
  border: 0;
  background: transparent;
  padding: 0;
}
.simulacao-orcamento .simulation-result-image img {
  max-width: 112px;
  max-height: 96px;
  object-fit: contain;
}
.simulacao-orcamento .simulation-result-inverter {
  position: absolute;
  bottom: 0.35rem;
  left: 0.35rem;
  display: flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--theme-border);
  border-radius: 0.375rem;
  background: var(--theme-surface);
}
.simulacao-orcamento .simulation-result-inverter img {
  max-width: 38px;
  max-height: 38px;
  object-fit: contain;
}
.simulacao-orcamento .simulation-result-image:focus-visible,
.simulacao-orcamento .simulation-result-inverter:focus-visible {
  outline: 2px solid var(--theme-primary);
  outline-offset: 2px;
}
.simulacao-orcamento .simulation-result-content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.55rem;
}
.simulacao-orcamento .simulation-result-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.simulacao-orcamento .distribution-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border-radius: 9999px;
  background: var(--theme-hover);
  padding: 0.25rem 0.65rem;
  color: var(--theme-text);
  font-size: 0.75rem;
  font-weight: 700;
}
.simulacao-orcamento .simulation-result-title {
  color: var(--theme-success);
  font-size: 1.2rem;
  line-height: 1.2;
}
.simulacao-orcamento .simulation-result-description {
  color: var(--theme-text);
  font-size: 0.92rem;
  line-height: 1.25;
}
.simulacao-orcamento .simulation-result-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.simulacao-orcamento .simulation-result-metrics span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  border: 1px solid var(--theme-border);
  border-radius: 0.375rem;
  background: var(--theme-surface-muted);
  padding: 0.25rem 0.45rem;
  color: var(--theme-text-muted);
  font-size: 0.8rem;
}
.simulacao-orcamento .simulation-result-price {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.12rem;
}
.simulacao-orcamento .simulation-result-price > strong {
  font-size: 1.1rem;
  line-height: 1.2;
}
.simulacao-orcamento .simulation-result-price > span {
  font-size: 0.78rem;
  line-height: 1.2;
}
.simulacao-orcamento .labor-price {
  font-size: 0.9rem !important;
  font-weight: 700;
}
.simulacao-orcamento .labor-price small {
  font-size: 0.68rem;
  font-weight: 600;
}
.simulacao-orcamento .simulation-result-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
}
.simulacao-orcamento .simulation-result-actions .primary-button,
.simulacao-orcamento .simulation-result-actions .success-button,
.simulacao-orcamento .simulation-result-actions .secondary-button,
.simulacao-orcamento .simulation-result-actions .proposal-button {
  gap: 0.4rem;
  padding: 0.45rem 0.65rem;
  font-size: 0.75rem;
  line-height: 1.2;
  text-align: center;
  white-space: normal;
}
@media (max-width: 1199px) {
  .simulacao-orcamento .simulation-result-card {
    grid-template-columns: 110px minmax(0, 1fr) 180px;
  }
  .simulacao-orcamento .simulation-result-price {
    grid-column: 2/3;
  }
  .simulacao-orcamento .simulation-result-actions {
    grid-column: 3/4;
    grid-row: 1 / span 2;
  }
}
@media (max-width: 767px) {
  .simulacao-orcamento .simulation-result-card {
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 0.75rem;
  }
  .simulacao-orcamento .simulation-result-media {
    min-height: 92px;
  }
  .simulacao-orcamento .simulation-result-image img {
    max-width: 86px;
    max-height: 80px;
  }
  .simulacao-orcamento .simulation-result-price,
  .simulacao-orcamento .simulation-result-actions {
    grid-column: 1/-1;
  }
  .simulacao-orcamento .simulation-result-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .simulacao-orcamento .simulation-result-card {
    grid-template-columns: 1fr;
  }
  .simulacao-orcamento .simulation-result-actions {
    grid-template-columns: 1fr;
  }
}


/* Semantic color hierarchy for simulation result cards. */
.simulacao-orcamento .simulation-result-card {
  border-left: 3px solid var(--theme-primary);
  box-shadow: 0 0.125rem 0.35rem color-mix(in srgb, var(--theme-text) 7%, transparent);
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}
.simulacao-orcamento .simulation-result-card:hover {
  border-left-color: var(--theme-success);
  box-shadow: 0 0.25rem 0.65rem color-mix(in srgb, var(--theme-text) 12%, transparent);
  transform: translateY(-1px);
}
.simulacao-orcamento .status-badge {
  display: inline-flex;
  border: 1px solid color-mix(in srgb, var(--theme-primary) 32%, var(--theme-border));
  border-radius: 9999px;
  background: color-mix(in srgb, var(--theme-primary) 9%, var(--theme-surface));
  padding: 0.25rem 0.65rem;
  color: var(--theme-primary);
  font-size: 0.75rem;
  font-weight: 700;
}
.simulacao-orcamento .status-badge.ready {
  border-color: color-mix(in srgb, var(--theme-success) 35%, var(--theme-border));
  background: color-mix(in srgb, var(--theme-success) 10%, var(--theme-surface));
  color: var(--theme-success);
}
.simulacao-orcamento .simulation-result-metrics i {
  color: var(--theme-primary);
}
.simulacao-orcamento .simulation-result-price > strong {
  color: var(--theme-success);
  font-size: 1.2rem;
}
.simulacao-orcamento .simulation-result-actions button,
.simulacao-orcamento .simulation-result-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 0.375rem;
  font-weight: 700;
  transition:
    filter 150ms ease,
    transform 150ms ease;
}
.simulacao-orcamento .simulation-result-actions button:hover,
.simulacao-orcamento .simulation-result-actions a:hover {
  filter: brightness(0.94);
  transform: translateY(-1px);
}
.simulacao-orcamento .simulation-result-actions .success-button {
  background: var(--theme-success);
  color: #fff;
}
.simulacao-orcamento .simulation-result-actions .primary-button {
  background: var(--theme-primary);
  color: #fff;
}
.simulacao-orcamento .simulation-result-actions .payment-button {
  border-color: color-mix(in srgb, var(--theme-primary) 45%, var(--theme-border));
  background: color-mix(in srgb, var(--theme-primary) 11%, var(--theme-surface));
  color: var(--theme-primary);
}
.simulacao-orcamento .simulation-result-actions .proposal-button {
  border-color: var(--theme-border);
  background: var(--theme-surface-muted);
  color: var(--theme-text);
}
.simulacao-orcamento .simulation-result-actions .secondary-button {
  border-color: color-mix(in srgb, var(--theme-text-muted) 40%, var(--theme-border));
  background: var(--theme-text-muted);
  color: #fff;
}
@media (prefers-reduced-motion: reduce) {
  .simulacao-orcamento .simulation-result-card,
  .simulacao-orcamento .simulation-result-actions button,
  .simulacao-orcamento .simulation-result-actions a {
    transition: none;
  }
  .simulacao-orcamento .simulation-result-card:hover,
  .simulacao-orcamento .simulation-result-actions button:hover,
  .simulacao-orcamento .simulation-result-actions a:hover {
    transform: none;
  }
}
.simulacao-orcamento .payment-link {
  margin-top: 0.25rem;
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--theme-primary);
  font-size: 0.75rem;
  font-weight: 600;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 0.15rem;
  cursor: pointer;
}
.simulacao-orcamento .payment-link:hover {
  color: var(--theme-success);
}
.simulacao-orcamento .payment-link:focus-visible {
  border-radius: 0.2rem;
  outline: 2px solid var(--theme-primary);
  outline-offset: 2px;
}


.simulacao-orcamento .simulation-result-metrics span > span { display: contents; }
@media (max-width: 767px) { .simulacao-orcamento .simulation-result-actions { grid-row: auto; } }

/* Modais da simulação: resumo técnico, composição e ações no rodapé. */
.sim-modal .modal-header small { display: block; margin-top: 3px; color: var(--theme-text-muted); }
.sim-modal .modal-footer .btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-weight: 600; }
#sim-detalhes-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
#sim-detalhes-conteudo { white-space: normal; }
.sim-detalhes-corpo { display: grid; gap: 12px; }
.sim-resumo-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.sim-resumo-grid article { display: grid; grid-column: span 2; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 3px 9px; border: 1px solid var(--theme-border); border-radius: 8px; padding: 12px; background: var(--theme-surface-muted); }
.sim-resumo-grid article.sim-resumo-largo { grid-column: span 3; }
.sim-resumo-grid article > span:first-child { grid-row: 1/3; color: var(--theme-primary); font-size: 19px; }
.sim-resumo-grid article > span:nth-child(2) { color: var(--theme-text-muted); font-size: 12px; }
.sim-resumo-grid strong { font-size: 15px; overflow-wrap: anywhere; }
.sim-resumo-mao-obra { display: flex; justify-content: space-between; gap: 12px; padding: 12px; border: 1px solid #c9e2cd; border-radius: 8px; background: #f0f8f1; }
.sim-resumo-mao-obra strong { color: var(--theme-success); }
.sim-tecnico-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sim-detalhe-secao { min-width: 0; border: 1px solid var(--theme-border); border-radius: 8px; padding: 12px; }
.sim-detalhe-secao h3 { display: flex; align-items: center; gap: 7px; font-size: 15px; font-weight: 700; margin: 0 0 12px; }
.sim-detalhe-secao h3 > span { color: var(--theme-primary); }
.sim-produto-resumo { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 12px; margin-top: 8px; }
.sim-produto-resumo > div { display: flex; flex-direction: column; gap: 3px; font-size: 14px; }
.sim-produto-resumo small, .sim-produto-resumo > div > span { color: var(--theme-text-muted); }
.sim-produto-imagem, .sim-item-imagem { display: grid; flex: none; place-items: center; width: 64px; height: 64px; padding: 4px; border: 1px solid var(--theme-border); border-radius: 6px; background: var(--theme-surface-muted); color: var(--theme-text-muted); cursor: zoom-in; }
.sim-produto-imagem img, .sim-item-imagem img { max-width: 100%; max-height: 100%; object-fit: contain; }
.sim-item-imagem { width: 40px; height: 40px; }
.sim-item-produto { display: flex; gap: 9px; align-items: center; min-width: 220px; }
.sim-tabela { margin: 0; font-size: 13px; }
.sim-tabela thead { background: var(--theme-surface-muted); color: var(--theme-text-muted); }
.sim-tabela th { font-weight: 600; white-space: nowrap; }
.sim-tabela th, .sim-tabela td { padding: 10px; border-color: var(--theme-border); }
.sim-numerico { text-align: right; white-space: nowrap; }
.sim-prevenda-secao { border-color: #f0d9c1; background: #fff8f0; }
.sim-prevenda-texto { margin-top: 12px; font-size: 14px; }
.sim-prevenda-texto p { white-space: pre-line; margin: 6px 0 0; overflow-wrap: anywhere; }
.sim-pagamento-abas { display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--theme-border); padding-bottom: 12px; margin-bottom: 16px; }
.sim-pagamento-abas button { display: flex; align-items: center; gap: 8px; border: 1px solid var(--theme-border); background: var(--theme-surface-muted); color: var(--theme-text); padding: 10px 14px; }
.sim-pagamento-abas button.active { border-color: var(--theme-primary); background: #fff2e7; color: #aa4b00; }
.sim-pagamento-painel .sim-detalhe-secao + .sim-detalhe-secao { margin-top: 12px; }
.sim-valores-vista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.sim-valores-vista > div { display: grid; gap: 5px; padding: 14px; border-radius: 6px; background: var(--theme-surface-muted); color: var(--theme-text-muted); }
.sim-valores-vista strong { color: var(--theme-success); font-size: 20px; }
.sim-compra-resumo { padding: 12px 16px; margin-bottom: 12px; border: 1px solid #c9e2cd; border-radius: 8px; background: #f0f8f1; font-weight: 700; color: var(--theme-success); }
#sim-compra .sim-compra-secao { min-width: 0; margin: 16px 0; padding: 16px; border: 1px solid var(--theme-border); border-radius: 8px; }
#sim-compra .sim-compra-secao > legend { float: none; width: auto; padding: 0 6px; margin: 0 0 12px; font-size: 15px; font-weight: 700; }
#sim-compra .sim-campo:has(input[required]) > label::after { content: ' *'; color: #dc3545; }
.sim-compra-cliente .sim-campo:first-child { grid-column: 1/-1; max-width: 350px; width: 100%; }
.sim-compra-endereco { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.sim-compra-endereco .sim-campo { grid-column: span 4; }
.sim-compra-endereco .sim-campo:nth-child(1), .sim-compra-endereco .sim-campo:nth-child(3) { grid-column: span 2; }
.sim-compra-endereco .sim-campo:nth-child(2) { grid-column: span 8; }
.sim-compra-endereco .sim-campo:last-child { grid-column: 1/-1; }
@media (max-width: 767px) {
    .sim-resumo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .sim-resumo-grid article, .sim-resumo-grid article.sim-resumo-largo { grid-column: auto; }
    .sim-resumo-grid article:last-child { grid-column: 1/-1; }
    .sim-tecnico-grid, .sim-valores-vista { grid-template-columns: 1fr; }
    .sim-compra-endereco .sim-campo { grid-column: 1/-1 !important; }
    #sim-detalhes-acoes { width: 100%; }
    #sim-detalhes-acoes .btn { flex: 1; }
}

.sim-projetos { align-items: stretch; margin-right: 0; margin-left: 0; margin-bottom: 4px; }
.sim-projetos > div { display: flex; }
.sim-projetos .sim-projeto-card { flex: 1; min-width: 0; }
@media (min-width: 768px) {
    .sim-painel[data-etapa="0"] > .sim-etapa-conteudo { display: flex; flex-direction: column; }
    .sim-painel[data-etapa="0"] > .sim-etapa-conteudo > :not(.sim-projetos) { flex-shrink: 0; }
    .sim-projetos { flex: 1 0 auto; }
}
.sim-projeto-card { position: relative; display: flex; flex-direction: column; border: 2px solid #dee2e6; border-radius: 1rem; overflow: hidden; background: #fff; cursor: pointer; }
.sim-projeto-card:has(input:checked) { border-color: #ff7000; box-shadow: 0 0 0 2px #ff700026; }
.sim-projeto-card:focus-within { outline: 2px solid #805500; outline-offset: 3px; }
.sim-projeto-card > input[type=radio] { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; clip-path: inset(50%); }
.sim-projeto-capa { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: .6rem; min-height: 48px; padding: .5rem 1rem; color: #914000; background: #ffead6; }
.sim-projeto-capa i { flex-shrink: 0; font-size: 1.4rem; }
.sim-projeto-descricao { padding: 1.25rem; flex: 1; }
.sim-projeto-escolher, .sim-projeto-disponibilidade { margin: 0 1.25rem 1.25rem; padding: .6rem; text-align: center; border-radius: .5rem; background: #fff1e6; font-weight: 600; }
.sim-projeto-card:has(input:checked) .sim-projeto-escolher, .sim-projeto-disponibilidade { background: #ff7000; color: #fff; }
.sim-produto-imagem { width: 100%; height: 130px; object-fit: contain; }

.sim-produto-imagem img { width: 100%; height: 100%; object-fit: contain; }

/* Componentes compartilhados com a calculadora de baterias. */
.sim-baterias-calculadora { --baterias-primary: #4b9900; }
.sim-baterias-calculadora .sim-bateria-imagem { display: grid; place-items: center; width: 100%; height: 160px; padding: 0; border: 0; border-radius: 7px; background: #f8f9fa; }
.sim-baterias-calculadora .sim-bateria-imagem img { height: 160px; }
.sim-baterias-calculadora .baterias-equipamento-form .input-group { flex-wrap: nowrap; }
.sim-baterias-calculadora .baterias-equipamento-form .input-group > .form-control { min-width: 65px; }
.sim-baterias-calculadora .baterias-unidade-tempo.selectize-control { flex: 0 0 100px; width: 100px; }
.sim-baterias-calculadora .selectize-input { display: block; min-height: 38px; }
.sim-baterias-calculadora .selectize-control { margin-bottom: 0; }

.sim-projetos-intro, .sim-hibridos-intro { margin: 24px 0 16px; }
.sim-projetos-intro h2, .sim-hibridos-intro h2 { font-size: 20px; font-weight: 700; margin-bottom: 6px; }
.sim-projetos-intro p, .sim-hibridos-intro p { color: var(--theme-text-muted); margin: 0; }
.sim-projeto-beneficio { display: flex; gap: 10px; margin-top: 16px; font-size: 13px; line-height: 1.5; }
.sim-projeto-beneficio i { color: #ed7000; margin-top: 4px; }
.sim-projeto-capa strong { display: block; flex: 1; min-width: 0; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sim-hibridos-opcao { max-width: 440px; margin-bottom: 16px; }
.sim-hibridos-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.sim-hibridos-lista .sim-hibrido { grid-template-columns: 80px minmax(0, 1fr) 100px; cursor: default; padding: 16px; }
.sim-hibrido .sim-modelo-corpo strong { line-height: 1.5; overflow-wrap: anywhere; }
.sim-hibrido .sim-campo { display: flex; flex-direction: column; gap: 6px; font-weight: 600; }
.sim-hibrido .sim-modelo-imagem { width: 80px; height: 90px; padding: 6px; }
.sim-bateria-resultado { display: grid; grid-template-columns: 180px 140px minmax(0, 1fr); align-items: center; gap: 24px; padding: 24px; border: 1px solid #ffd7b7; border-radius: 12px; background: linear-gradient(110deg, #fff4e9, #fff); }
.sim-bateria-quantidade { display: flex; flex-direction: column; align-items: center; padding: 18px 12px; border-radius: 10px; color: #8a3b00; background: #ffe4ca; text-align: center; font-weight: 600; }
.sim-bateria-quantidade strong { font-size: 64px; line-height: 1.2; color: #b84c00; }
.sim-bateria-quantidade span { font-size: 13px; }
.sim-bateria-resultado-imagem { display: grid; place-items: center; width: 140px; height: 140px; border: 0; border-radius: 8px; background: #fff; overflow: hidden; cursor: zoom-in; }
.sim-bateria-resultado-imagem img { width: 100%; height: 100%; object-fit: contain; }
.sim-bateria-resultado-corpo { min-width: 0; }
.sim-bateria-resultado-corpo h2 { font-size: 20px; line-height: 1.4; font-weight: 700; }
.sim-bateria-resultado-corpo p { color: var(--theme-text-muted); font-size: 14px; }
.sim-bateria-indicadores { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
.sim-bateria-indicadores span, .sim-bateria-indicadores strong { display: block; }
.sim-bateria-indicadores span { font-size: 12px; color: var(--theme-text-muted); }
.sim-bateria-indicadores strong { font-size: 20px; margin-top: 4px; }
@media(max-width: 1100px) {
    .sim-hibridos-lista { grid-template-columns: 1fr; }
    .sim-bateria-resultado { grid-template-columns: 150px minmax(0, 1fr); gap: 16px; }
    .sim-bateria-resultado-corpo { grid-column: 1/-1; }
}
@media(max-width: 575px) {
    .sim-bateria-resultado { padding: 16px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .sim-bateria-resultado-imagem { width: 100%; }
    .sim-bateria-indicadores { grid-template-columns: 1fr; gap: 10px; }
    .sim-bateria-indicadores > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
    .sim-hibridos-lista .sim-hibrido { grid-template-columns: 64px minmax(0, 1fr); padding: 12px; }
    .sim-hibrido .sim-modelo-imagem { width: 64px; height: 72px; }
    .sim-hibrido .sim-campo { grid-column: 1/-1; flex-direction: row; align-items: center; justify-content: space-between; }
    .sim-hibrido .sim-campo input { width: 100px; }
}

.sim-projeto-em-breve { cursor: default; background: #fafafa; }
.sim-projeto-em-breve .sim-projeto-capa { background: #f1ece7; color: #6b625a; }
.sim-projeto-em-breve .sim-projeto-descricao { color: #656565; }
.sim-projeto-em-breve .sim-projeto-disponibilidade { background: #ececec; color: #616161; }

.sim-projeto-imagem { display: block; width: 70%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; flex-shrink: 0; align-self: center; margin: 1.25rem auto 0; border-radius: 8px; }
.sim-projeto-em-breve { transition: filter .2s ease, background-color .2s ease; }
@media (hover: hover) {
    .sim-projeto-em-breve:hover { filter: grayscale(1); background-color: #e5e5e5; }
}
@media (prefers-reduced-motion: reduce) {
    .sim-projeto-em-breve { transition: none; }
}

.sim-disponibilidade-produto { min-width: 0; margin: 8px 0; font-size: 13px; }
.sim-disponibilidade-produto .badge { white-space: normal; line-height: 1.5; text-align: left; }
.sim-disponibilidade-produto summary { cursor: pointer; margin-top: 8px; font-weight: 600; }
.sim-disponibilidade-produto p { white-space: pre-line; overflow-wrap: anywhere; margin: 8px 0 0; }
.sim-projeto-prevenda { margin-top: 18px; padding: 14px; border: 1px solid #ffd7b7; border-radius: 8px; background: #fff; }
.sim-projeto-prevenda > p { margin: 8px 0; }
.sim-projeto-prevenda .sim-prevenda-texto { margin-top: 12px; }
