/* ====== Simulador de Emolumentos – estilos do componente (compat sem/csec) ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) {
  --primary-color: var(--e-global-color-primary, #6a1b9a);
  --secondary-color: var(--e-global-color-secondary, #f9a825);
  --text-color: var(--e-global-color-text, #333333);
  --accent-color: #D4AF37;
  --background-light: #f9f9f9;
  --border-color: #ddd;

  font-family: inherit;
  color: var(--text-color);
  max-width: 900px;
  margin: 20px auto;
  padding: 25px;
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background-color: #fff;
  box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

/* ====== Layout ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-row, .csec-row) {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-col, .csec-col) {
  flex: 1 1 0;
  min-width: 300px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-col--result, .csec-col--result) {
  background-color: var(--background-light);
  padding: 25px;
  border-radius: 8px;
  border: 1px solid #e5e5e5;
}

/* ====== Form ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-form-group, .csec-form-group) { margin-bottom: 20px; }

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-label, .csec-label) {
  display: block;
  font-weight: 700;
  margin-bottom: 8px;
  font-size: 16px;
}

/* inputs e selects — altura e alinhamento vertical corrigidos */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-input, .csec-input, .sem-select, .csec-select) {
  width: 100%;
  box-sizing: border-box;
  font-size: 16px;
  line-height: 1.4;
  padding: 12px 14px;
  min-height: 44px;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  background: #fff;
}

/* Aparência neutra para selects (evita interferência do tema/navegador) */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-select, .csec-select) {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-clip: padding-box;
}

/* Estados de foco acessíveis */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-input, .csec-input, .sem-select, .csec-select):focus {
  outline: none;
  border-color: var(--primary-color);
  box-shadow: 0 0 0 3px rgba(106, 27, 154, 0.15);
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-help, .csec-help) {
  display: block;
  margin-top: 6px;
  font-size: 13px;
  color: #777;
}

/* Fieldset/legend */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-fieldset, .csec-fieldset) {
  border: 1px solid var(--border-color);
  padding: 14px 16px;
  border-radius: 6px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-legend, .csec-legend) { padding: 0 6px; font-weight: 700; }

/* Checkboxes */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-checkbox-group, .csec-checkbox-group) { margin-top: 8px; }
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-checkbox, .csec-checkbox) {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 400;
  margin-bottom: 10px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-checkbox, .csec-checkbox) input[type="checkbox"] {
  width: 18px; height: 18px;
}

/* ====== Botão de calcular ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-calculate, #csec-calculate, .sem-button, .csec-button) {
  background-color: var(--primary-color);
  color: #fff;
  border: none;
  padding: 15px 25px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 18px;
  font-weight: 700;
  width: 100%;
  transition: background-color .25s ease, transform .05s ease;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-calculate, #csec-calculate, .sem-button, .csec-button):hover { background-color: var(--secondary-color); }
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-calculate, #csec-calculate, .sem-button, .csec-button):active { transform: translateY(1px); }

/* ====== Resultados ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-result-card, .csec-result-card) { background: #fff; border-radius: 8px; }
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-result-title, .csec-result-title) {
  margin-top: 0;
  border-bottom: 2px solid var(--accent-color);
  padding-bottom: 10px;
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) { margin-top: 10px; }
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result .sem-result-placeholder, #csec-result .csec-result-placeholder) {
  color: #888; font-style: italic;
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-result-item, .csec-result-item) {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-result-item, .csec-result-item) span:last-child { font-weight: 700; }

/* total */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-total, #csec-total) {
  margin-top: 20px;
  padding-top: 15px;
  border-top: 2px solid var(--accent-color);
  display: flex;
  justify-content: space-between;
  font-size: 20px;
  font-weight: 700;
}

/* Adicionais (preenchidos via additional-breakdown.js) */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-additionals, #csec-additionals) { margin-top: 16px; }

/* Diagnóstico (details) */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-debug, .csec-debug) {
  margin-top: 14px;
  font-size: 13px;
  color: #666;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-diagnostic, .csec-diagnostic) {
  white-space: pre-wrap;
  background: #fafafa;
  border: 1px dashed #e3e3e3;
  padding: 10px;
  border-radius: 4px;
}

/* Aviso */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(.sem-alert, .csec-alert) {
  margin-top: 20px;
  font-size: 13px;
  color: #777;
  background-color: #fff;
  border-left: 3px solid var(--accent-color);
  padding: 10px;
  border-radius: 4px;
}

/* ====== Tabela completa (abaixo da calculadora) ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin: 28px 0 10px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table-title {
  margin: 0; font-size: 20px; font-weight: 700;
  color: var(--text-color);
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table-wrapper {
  border: 1px solid var(--border-color);
  border-radius: 10px; overflow: auto; background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  min-width: 720px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--primary-color); color: #fff; text-align: left;
  padding: 12px 14px; font-weight: 700; font-size: 14px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table tbody td {
  padding: 12px 14px; border-top: 1px solid #eee; font-size: 14px;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table tbody tr:hover {
  background: var(--background-light);
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table tfoot td {
  padding: 12px 14px; font-weight: 700; border-top: 2px solid var(--accent-color);
}

:is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table-footer {
  display: flex; justify-content: flex-end;
  padding: 8px 2px; color: #666; font-size: 13px;
}

/* ====== Responsividade ====== */
@media (max-width: 640px) {
  :is(#sem-calculator-wrapper, #csec-calculator-wrapper) { padding: 18px; margin: 15px auto; }
  :is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-calculate, #csec-calculate, .sem-button, .csec-button) {
    font-size: 16px;
    padding: 12px 18px;
  }
  :is(#sem-calculator-wrapper, #csec-calculator-wrapper) .sem-table-title { font-size: 18px; }
}

/* ====== Accordion da Tabela de Emolumentos ====== */
.sem-table-accordion-wrap {
  margin-top: 28px;
}

#sem-table-accordion {
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

#sem-table-accordion > summary.sem-accordion-summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  user-select: none;
  background: var(--background-light);
  border-bottom: 1px solid var(--border-color);
}

#sem-table-accordion > summary.sem-accordion-summary::-webkit-details-marker { display: none; }

.sem-accordion-title {
  font-weight: 700;
  font-size: 16px;
  color: var(--text-color);
}

.sem-accordion-meta {
  margin-left: auto;
  font-size: 13px;
  color: #666;
}

/* Indicador (seta) */
#sem-table-accordion > summary.sem-accordion-summary::after {
  content: "▾";
  margin-left: 8px;
  transition: transform .2s ease;
  opacity: .8;
}
#sem-table-accordion[open] > summary.sem-accordion-summary::after {
  transform: rotate(180deg);
}

/* Conteúdo interno */
.sem-accordion-content {
  padding: 0;
}

/* Scroller e tabela */
.sem-table-scroller {
  overflow: auto;
  max-height: 480px; /* ajuste se quiser */
}

.sem-data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.sem-data-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
  border-bottom: 2px solid var(--accent-color);
  text-align: left;
  padding: 12px;
}

.sem-data-table tbody td {
  border-bottom: 1px solid #eee;
  padding: 10px 12px;
  vertical-align: top;
}

/* Listras leves */
.sem-data-table tbody tr:nth-child(odd) { background: #fafafa; }

/* Responsivo mínimo */
@media (max-width: 640px) {
  .sem-accordion-title { font-size: 15px; }
  .sem-data-table thead th, .sem-data-table tbody td { padding: 10px; }
}

/* ====== Resultados – acabamento visual ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) #sem-result,
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) #csec-result {
  background: #fff;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}

/* linhas padrão dos resultados */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-result-item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}

/* primeira coluna (rótulo) e última (valor) */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-result-item span:first-child {
  color: var(--text-color);
  font-weight: 500;
}
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-result-item span:last-child {
  font-weight: 700;
}

/* total destaque */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-total, #csec-total) {
  border-top: 2px solid var(--accent-color);
  padding-top: 14px;
  margin-top: 6px;
  font-size: 20px;
  font-weight: 800;
}

/* ====== Seção “Serviços” (opcional – se usar a classe abaixo no HTML/JS) ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-services-title {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px dashed var(--border-color);
  font-size: 13px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #666;
  display: flex;
  justify-content: space-between;
}

/* cada linha de serviço (principal/adicional) — leve recuo */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-service-line {
  padding-left: 8px;
}

/* marcador sutil para tipo de serviço (se quiser ativar via <small>) */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) :is(#sem-result, #csec-result) .sem-service-line small {
  background: var(--background-light);
  color: #555;
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 999px;
  margin-right: 8px;
}

/* ====== Sem box central: ocupar 100% ====== */
:is(#sem-calculator-wrapper, #csec-calculator-wrapper) {
  max-width: none;   /* remove limite de 900px */
  width: 100%;
  margin: 0;         /* encosta nas bordas do container do tema */
}

/* Opcional: aparência mais "flat" quando for full-width */
.sem-full-flat :is(#sem-calculator-wrapper, #csec-calculator-wrapper) {
  border: none;
  box-shadow: none;
  padding-left: clamp(16px, 3vw, 32px);
  padding-right: clamp(16px, 3vw, 32px);
}

/* A tabela/accordion já é fluida; só garantimos 100% no scroller */
.sem-table-scroller,
#sem-table-accordion .sem-data-table {
  width: 100%;
}