/* 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: 100%; 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; }
.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 { line-height: 20px; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#sim-status:empty { display: none; }
.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; } }


/* Semantic color hierarchy for simulation result cards. */

/* 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; }
