.elementor-3078 .elementor-element.elementor-element-e1d646a{--display:flex;--min-height:50vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3078 .elementor-element.elementor-element-e1d646a.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-3078 .elementor-element.elementor-element-bd2e80c{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3078 .elementor-element.elementor-element-5db7619{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-3078 .elementor-element.elementor-element-9c3f806 .elementor-button{background-color:#202020;font-family:"Roboto", Sans-serif;font-size:17px;font-weight:500;border-radius:600px 600px 600px 600px;padding:010px 10px 10px 10px;}@media(min-width:768px){.elementor-3078 .elementor-element.elementor-element-e1d646a{--width:126.531%;}.elementor-3078 .elementor-element.elementor-element-bd2e80c{--content-width:1600px;}}/* Start custom CSS for html, class: .elementor-element-aa713b7 *//* Mantive seu estilo original e acrescentei classes para feedback visual e health tag */

#orcamento-obra-root {
    --primary-color: #232323;
    --accent-color: #232323;
    --bg-light: #f9f9f9;
    --border-color: #c9c9c9;
    max-width: 760px;
    margin: 30px auto;
    padding: 25px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.08);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--primary-color);
    transition: background-color 220ms ease, color 220ms ease;
}

html {
    font-size: 62.5% !important;
}

p {
    font-size: 1.6rem !important;
    margin: 0;
}

.calc-header {
    text-align: center;
    margin-bottom: 20px;
}

.calc-header h2 {
    font-size: 3.0rem !important;
    font-weight: 700;
    margin: 0 0 6px 0;
}

.calc-header p {
    font-size: 1.6rem;
    color: #7f8c8d;
}

.calc-section {
    margin-bottom: 20px;
}

.calc-section h3 {
    font-size: 1.9rem;
    border-bottom: 2px solid var(--bg-light);
    padding-bottom: 8px;
    margin-bottom: 12px;
}

.input-row {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
}

.input-group {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
}

.input-group label {
    font-size: 1.5rem;
    color: var(--primary-color) !important;
    font-weight: 500;
    margin-bottom: 8px;
}

.input-group input,
.input-group select {
    padding: 10px;
    border: 1px solid var(--border-color);
    border-radius: 6px;
    font-size: 1.4rem;
    background: #fff;
    transition: all 0.15s;
}

.input-group input:focus,
.input-group select:focus {
    border-color: var(--accent-color);
    outline: none;
    box-shadow: 0 0 0 4px rgba(39, 174, 96, 0.06);
}

.readonly-input {
    background: var(--bg-light) !important;
    color: #7f8c8d;
    cursor: not-allowed;
}

/* Results */

.results-area {
    margin-top: 18px;
}

.summary-card {
    background: var(--bg-light);
    padding: 18px;
    border-radius: 10px;
}

.summary-card h4 {
    margin: 0 0 10px 0;
    font-size: 1.6rem;
}

.result-line {
    display: flex;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 1.4rem;
}

.result-line.highlight {
    color: var(--accent-color);
    font-weight: 500;
}

.result-line.total-budget {
    font-size: 1.8rem;
    font-weight: 700;
}

.linha-divisora {
    border: none;
    height: 1px !important;
    background-color: #e9e9e9 !important;
    margin-bottom: 10px !important;
}

/* risk */

#linha-risco {
    color: #c62828 !important;
    font-weight: 600;
}

/* Health tag styles */

.health-tag {
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 1.2rem;
    font-weight: 600;
    color: #fff;
    min-width: 120px;
    text-align: center;
}

.health-tag.green {
    background: #0f9d58;
}

.health-tag.yellow {
    background: #f59e0b;
}

.health-tag.red {
    background: #ef4444;
}

/* Notas */

.descricoes {
    color: #909090;
    font-size: 1.3rem;
}

/* responsive */

@media (max-width: 600px) {
    .input-group {
        min-width: 100%;
    }

    #orcamento-obra-root {
        padding: 18px;
        margin: 12px;
    }
}

/* ===========================
   ADIÇÕES / OVERRIDES (apenas isto foi acrescentado)
   - Destaques diretos para elementos importantes
   - Classes utilitárias (positive / warning / danger)
   - Modo dark via class "dark" no #orcamento-obra-root
   =========================== */

/* Variáveis fallback para destaques */
:root {
  --ui-accent-positive: #2e7d32;   /* verde */
  --ui-accent-warning:  #f59e0b;   /* amarelo */
  --ui-accent-danger:   #c62828;   /* vermelho */
  --ui-focus-shadow:    rgba(46,125,50,0.08);
  --ui-bg-light:        #f9f9f9;
}

/* Dark mode: ative adicionando class="dark" em #orcamento-obra-root */
#orcamento-obra-root.dark {
  --ui-accent-positive: #66bb6a;
  --ui-accent-warning:  #ffa726;
  --ui-accent-danger:   #ef5350;
  --ui-focus-shadow:    rgba(102,187,106,0.08);
  --ui-bg-light:        #1e1e1e;
  --primary-color: #e6e6e6;
  --border-color: #444444;
  --bg-light: #1e1e1e;
  background: #232323;
}

/* Classes utilitárias de destaque (para aplicar via JS/HTML) */
.positive, .highlight-positive { color: var(--ui-accent-positive) !important; font-weight: 700 !important; }
.warning, .highlight-warning  { color: var(--ui-accent-warning)  !important; font-weight: 700 !important; }
.danger, .highlight-danger    { color: var(--ui-accent-danger)   !important; font-weight: 800 !important; }

/* Aplicação direta aos IDs que você usa no HTML (garante visual mesmo sem JS) */
#res-total { color: var(--ui-accent-positive) !important; font-weight: 800; font-size: 1.95rem; }
#res-margem-bruta { color: var(--ui-accent-positive) !important; font-weight: 600; }
#res-caixa { color: var(--ui-accent-positive) !important; font-weight: 600; }
#res-contingencia { color: var(--ui-accent-warning) !important; font-weight: 600; }
#res-risco { color: var(--ui-accent-danger) !important; font-weight: 700; }

/* foco mais legível (override leve, não altera seu layout) */
.input-group input:focus,
.input-group select:focus {
  box-shadow: 0 0 0 4px var(--ui-focus-shadow) !important;
}

/* contraste leve do summary-card em dark */
#orcamento-obra-root.dark .summary-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), transparent);
  border: 1px solid rgba(255,255,255,0.03);
}

/* ajuste das descrições para melhor leitura em dark */
#orcamento-obra-root.dark .descricoes {
  color: #bdbdbd;
}

/* animação / feedback visual breve quando valores mudam */
.highlight-flash {
  transition: background 0.35s ease;
  background: rgba(46,125,50,0.06);
}
#orcamento-obra-root.dark .highlight-flash { background: rgba(102,187,106,0.04); }

#orcamento-obra-root.dark .highlight-flash { background: rgba(102,187,106,0.02); } /* suaviza ainda mais no dark */

/* health-tag mapeada às variáveis */
.health-tag.green  { background: var(--ui-accent-positive) !important; }
.health-tag.yellow { background: var(--ui-accent-warning)  !important; }
.health-tag.red    { background: var(--ui-accent-danger)   !important; }

/* utilitária para destaque temporário de linha inteira (pode ser aplicada via JS) */
.line-highlight-temp {
  transition: background 0.35s ease, color 0.25s ease;
  background: rgba(46,125,50,0.03);
}
#orcamento-obra-root.dark .line-highlight-temp { background: rgba(255,255,255,0.02); }

/* estilo do botão de toggle (simples, acessível) */
#theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  border: 1px solid rgba(0,0,0,0.06);
  background: transparent;
  font-size: 1.25rem;
  cursor: pointer;
}
#theme-toggle:focus {
  outline: none;
  box-shadow: 0 0 0 4px rgba(46,125,50,0.08);
}
#orcamento-obra-root.dark #theme-toggle {
  border-color: rgba(255,255,255,0.06);
}

/* suaviza transições gerais */
#orcamento-obra-root,
#orcamento-obra-root * {
  transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease;
}

/* ===========================================================
   BLOCO ADICIONAL (SUAVIZA + GARANTE INPUTS DO ELEMENTOR NO DARK)
   - Apenas overrides sutis para tornar o dark mais confortável
   - Não altera espaçamentos, gaps, bordes ou tipografia já existentes
   =========================================================== */

/* Cores adicionais e overrides suaves para modo dark (não intrusivo) */
#orcamento-obra-root.dark {
  /* torna o fundo do container um pouco mais suave, com leve gradiente discreto */
  background: linear-gradient(180deg, #07121a 0%, #0c161c 100%);
  box-shadow: 0 12px 30px rgba(2,6,12,0.55);
}

/* Ajuste de superfícies (summary-card e inputs) para dark confortável */
#orcamento-obra-root.dark .summary-card {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border: 1px solid rgba(255,255,255,0.03);
  box-shadow: 0 6px 18px rgba(0,0,0,0.45);
}

/* Inputs/selects/readonlys no modo dark — mantém padding e radius originais (sem alterar espaçamentos) */
#orcamento-obra-root.dark .input-group input,
#orcamento-obra-root.dark .input-group select,
#orcamento-obra-root.dark .readonly-input {
  background: #0b1418; /* escuro suave, longe do preto absoluto */
  color: var(--primary-color);
  border-color: #263238; /* borda discreta */
}

/* Placeholder mais suave em dark */
#orcamento-obra-root.dark .input-group input::placeholder,
#orcamento-obra-root.dark .input-group select::placeholder {
  color: #6f7b84;
  opacity: 1;
}

/* Focus ring no dark: mais suave e menos agressivo (mantém tamanho do outline original) */
#orcamento-obra-root.dark .input-group input:focus,
#orcamento-obra-root.dark .input-group select:focus {
  box-shadow: 0 0 0 6px rgba(102,187,106,0.06);
  border-color: rgba(102,187,106,0.5);
}

/* Garante que os campos inseridos por Elementor herdem o estilo dark */
#orcamento-obra-root.dark .elementor-field,
#orcamento-obra-root.dark .elementor-field-group input,
#orcamento-obra-root.dark .elementor-field-group textarea,
#orcamento-obra-root.dark .elementor-form .elementor-field,
#orcamento-obra-root.dark .elementor-form .elementor-field-type-text input,
#orcamento-obra-root.dark .elementor-form .elementor-field-type-number input,
#orcamento-obra-root.dark .elementor-form .elementor-field-type-date input,
#orcamento-obra-root.dark .elementor-widget input,
#orcamento-obra-root.dark .elementor-widget select,
#orcamento-obra-root.dark .elementor-widget textarea {
  background: #0b1418;
  border: 1px solid #263238;
  color: var(--primary-color);
}

/* Ajuste de texto secundário em dark para melhor leitura sem contraste agressivo */
#orcamento-obra-root.dark .calc-header p,
#orcamento-obra-root.dark .descricoes,
#orcamento-obra-root.dark .result-line span {
  color: #9aa3ad;
}

/* Botões no dark (suave) — mantém tamanho e padding originais */
#orcamento-obra-root.dark button {
  border-color: rgba(255,255,255,0.04);
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  color: var(--primary-color);
}

/* Reduz ainda mais a intensidade do destaque de risco para ser informativo sem gritar */
#orcamento-obra-root.dark #linha-risco { color: #ff8989 !important; }

/* Suaviza animação de flash no dark para ser quase imperceptível, só um sinal */
#orcamento-obra-root.dark .highlight-flash { background: rgba(102,187,106,0.02); }

/* Garantia: não alteramos gap, margin, padding, font-size ou layout — apenas cores e sombras */



/* Estilos específicos para impressão e para a janela de print gerada */

/* Estilos específicos para impressão e para a janela de print gerada */

/* Estilos específicos para impressão e para a janela de print gerada */


@media print {
  /* Caso o navegador use diretamente a página atual para imprimir */
  #botao-impressao,
  #theme-toggle,
  button,
  input[type="button"],
  input[type="submit"],
  .no-print {
    display: none !important;
  }

  /* Ajustes básicos de impressão */
  body {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    margin: 10mm;
  }

  /* Garante fontes legíveis e tamanhos adequados */
  #orcamento-obra-root {
    font-size: 12pt;
  }

  /* Remove bordas visuais desnecessárias ao imprimir */
  hr.linha-divisora { border: none; border-top: 1px solid #ccc; margin: 8px 0; }
}

/* Pequeno estilo para os spans gerados pelo script (apenas para a janela de print) */
.print-value {
  display:inline-block;
  vertical-align:middle;
  padding:0;
  margin:0;
  font-weight:500;
}/* End custom CSS */