/* Simulador Empresarial: todos os tamanhos, cores, raios e transições usam os tokens globais documentados em root.css. */
.business-simulator { display: grid; gap: 18px; min-width: 0; }
.business-notice { display: flex; align-items: center; gap: 10px; padding: var(--space-3) 14px; border: var(--border-width) solid var(--warning); border-radius: var(--radius-md); color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, var(--surface)); }
.business-notice span { color: var(--muted); }
.business-notice--neutral { margin-top: 18px; border-color: var(--line); color: var(--ink); background: var(--surface-muted); }
.business-snapshot-notice { margin: 14px 0 0; }
.business-snapshot-notice.is-outdated { border-color: var(--danger); color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, var(--surface)); }
.business-snapshot-notice.is-recalculated { border-color: var(--accent-2); color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 9%, var(--surface)); }
.business-header { display: flex; align-items: end; justify-content: space-between; gap: var(--space-5); margin: 0; }
.business-header__actions { display: grid; grid-template-columns: minmax(15rem, 1fr); gap: var(--space-2); flex: 0 1 34rem; }
.business-header__actions label { flex: 1; min-width: 15rem; }
.business-header__actions select { width: 100%; }
.business-header__actions button { flex: 0 0 auto; white-space: nowrap; }
.business-header__buttons { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); }
.business-header__company { display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: var(--space-2); align-items: end; }
.business-header__company > label { min-width: 0; }
.business-header__company .business-analyst-link { min-width: 0; }
.business-company-list .business-list-row { grid-template-columns: minmax(0, 1fr) auto auto; }
.business-company-list .business-list-row > div:last-child { flex-wrap: wrap; }
.business-company-list b { font-family: var(--font-sans); font-size: var(--font-size-xs); font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04rem; }
.business-company-list b.is-active { color: var(--success); }
@media (max-width: 64rem) { .business-header__company { grid-template-columns: minmax(0, 1fr); } .business-header__company .business-analyst-link { width: 100%; box-sizing: border-box; } }
.business-analyst-link { border-color: color-mix(in srgb, var(--success) 45%, var(--line)); background: color-mix(in srgb, var(--success) 7%, var(--surface)); }
.business-analyst-link:hover { border-color: var(--success); background: color-mix(in srgb, var(--success) 13%, var(--surface)); }
.business-analyst-link .business-vigia-link__icon { color: var(--success); }
.beta-horizon-notice { display: grid; gap: 4px; margin-top: 18px; padding: 14px 16px; border: var(--border-width) solid var(--danger); border-left-width: 4px; border-radius: var(--radius-md); color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, var(--surface)); }
.beta-horizon-notice strong { font-family: var(--font-sans); font-weight: 700; }
.beta-horizon-notice span { color: var(--ink); font-size: var(--font-size-sm); line-height: 1.45; }
.business-tax-warnings small { display: block; margin-top: 4px; color: var(--muted); font-size: var(--font-size-xs); }
.business-vigia-link { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: var(--control-md); padding: 7px 12px; border: var(--border-width) solid color-mix(in srgb, var(--accent-2) 45%, var(--line)); border-radius: var(--radius-md); color: var(--ink); background: color-mix(in srgb, var(--accent-2) 7%, var(--surface)); transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, transform var(--motion-fast) ease; }
.business-vigia-link:hover { border-color: var(--accent-2); color: var(--ink); background: color-mix(in srgb, var(--accent-2) 13%, var(--surface)); transform: translateY(-1px); }
.business-vigia-link > span:nth-child(2) { display: grid; min-width: 0; line-height: 1.2; }
.business-vigia-link strong { font-size: var(--font-size-sm); white-space: nowrap; }
.business-vigia-link small { color: var(--muted); font-size: var(--font-size-xs); }
.business-vigia-link__icon { display: grid; place-items: center; width: var(--icon-lg); height: var(--icon-lg); color: var(--accent-2); }
.business-vigia-link__arrow { width: var(--icon-sm); height: var(--icon-sm); color: var(--muted); }
.business-stage { margin-bottom: 18px; }
.business-stage > span { display: block; margin-bottom: 6px; color: var(--accent-2); font-family: var(--font-sans); font-weight: 600; font-size: var(--font-size-sm); letter-spacing: 0.04rem; text-transform: uppercase; }
.business-stage h2, .business-card h2, .business-history h3 { margin: 0; font-family: var(--font-sans); font-weight: 600; font-size: var(--font-size-lg); }
.business-stage p, .business-card p { margin: var(--space-1) 0 0; color: var(--muted); font-size: var(--font-size-sm); line-height: 1.45; }
.business-stage .business-stage-tip { display: grid; gap: 2px; margin-top: var(--space-3); padding: 10px var(--space-3); border-left: 3px solid var(--accent-2); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--muted); background: var(--surface-muted); }
.business-stage-tip strong { color: var(--accent-2); font-size: var(--font-size-xs); letter-spacing: 0.04rem; text-transform: uppercase; }
/* Sem empresa salva, só Visão geral e Empresa abrem; o aviso fica no topo do corpo. */
.business-notice--gate { margin-bottom: var(--space-4); border-color: color-mix(in srgb, var(--accent-2) 45%, var(--line)); color: var(--ink); background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); }
.business-notice--gate > span { flex: 1; }
.business-notice--gate > button { flex: 0 0 auto; }
.business-tabs .is-locked { opacity: var(--opacity-disabled); cursor: not-allowed; }
.business-tabs .is-locked:hover { color: var(--muted); background: transparent; }
.business-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.business-metrics article { display: grid; gap: 6px; min-width: 0; padding: 18px; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.business-metrics span, .business-result-summary span { color: var(--muted); font-size: var(--font-size-sm); }
.business-metrics strong { overflow-wrap: anywhere; font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-xl); }
.business-metrics small { color: var(--muted); font-size: var(--font-size-xs); }
.business-dashboard-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(17.5rem, 2fr); gap: var(--space-4); margin-top: var(--space-4); }
.business-card { display: grid; align-content: start; gap: 18px; min-width: 0; min-height: 13.75rem; padding: 20px; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface); }
.business-health { display: grid; place-items: center; gap: var(--space-2); min-height: 8.25rem; text-align: center; }
.business-health strong { color: var(--muted); font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-2xl); }
.business-health span { color: var(--muted); font-size: var(--font-size-sm); }
.business-health.is-healthy strong { color: var(--success); }
.business-health.is-attention strong { color: var(--warning); }
.business-health.is-critical strong { color: var(--danger); }
/* Atalho para o campo que falta: o bloco é centralizado, então o botão não estica. */
.business-health__action { justify-self: center; min-height: var(--control-sm); font-size: var(--font-size-sm); }
.business-health__action[hidden] { display: none; }
.business-progress-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: var(--space-2); }
.business-progress-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-2); min-width: 0; min-height: 4.5rem; padding: var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface-muted); text-align: left; transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, transform var(--motion-fast) ease; }
.business-progress-item:hover, .business-progress-item:focus-visible { border-color: var(--accent-2); color: var(--ink); background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); transform: translateY(-1px); }
.business-progress-item > span:first-child { display: grid; gap: var(--space-1); min-width: 0; }
.business-progress-item small { color: var(--muted); font-size: var(--font-size-sm); }
.business-progress-item__arrow { width: var(--icon-sm); height: var(--icon-sm); color: var(--muted); }
.business-progress-grid .is-complete { border-color: var(--accent-2); }
.business-progress-grid .is-complete .business-progress-item__arrow { color: var(--accent-2); }
.business-form { display: grid; gap: 18px; padding: 20px; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.business-form-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.business-form-grid--five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.business-scenario-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.business-scenario-grid > label { grid-column: span 2; }
.business-scenario-grid > label:nth-child(n+7) { grid-column: span 3; }
.business-form label { min-width: 0; }
.business-form input, .business-form select { width: 100%; box-sizing: border-box; }
.business-form .money-field { width: 100%; box-sizing: border-box; }
.business-form label.is-review-target { border-radius: var(--radius-sm); outline: 3px solid color-mix(in srgb, var(--warning) 72%, transparent); outline-offset: var(--space-1); background: color-mix(in srgb, var(--warning) 10%, transparent); }
.business-check-field { display: flex; align-items: center; align-self: end; gap: var(--space-2); min-height: var(--control-md); cursor: pointer; }
.business-form .business-check-field input[type="checkbox"] { flex: 0 0 var(--icon-md); width: var(--icon-md); height: var(--icon-md); min-height: var(--icon-md); margin: 0; padding: 0; accent-color: var(--accent-2); }
.business-check-field > span { line-height: 1.35; }
.business-form input.is-locked { color: var(--muted); background: var(--surface); cursor: not-allowed; }
.business-field-tip { position: relative; display: inline-grid; place-items: center; width: var(--icon-md); height: var(--icon-md); margin-left: var(--space-1); border: var(--border-width) solid var(--line); border-radius: 50%; color: var(--muted); background: var(--surface); font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-xs); line-height: 1; cursor: help; }
.business-floating-tooltip { position: fixed; z-index: var(--layer-modal); width: min(17.5rem, calc(100vw - 1.5rem)); box-sizing: border-box; padding: 10px var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); box-shadow: var(--shadow-lg); font-family: var(--font-sans); font-weight: 400; font-size: var(--font-size-sm); line-height: 1.35; text-align: left; pointer-events: none; }
.business-form input[type="number"] { appearance: textfield; -moz-appearance: textfield; }
.business-form input[type="number"]::-webkit-inner-spin-button,
.business-form input[type="number"]::-webkit-outer-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }
.competence-field { position: relative; display: flex; width: 100%; }
.competence-field > input[data-competence-mask] { padding-right: var(--space-3); }
.competence-field > .icon-button { display: none; }
.competence-field > input[type="month"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.business-form-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.business-step-navigation { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 22px; padding-top: var(--space-4); border-top: var(--border-width) solid var(--line); }
.business-step-navigation.is-first { justify-content: flex-end; }
.business-step-navigation.is-last { justify-content: flex-start; }
.business-step-navigation > button { min-width: 6.875rem; justify-content: center; }
.business-adjustments { display: grid; gap: 14px; min-width: 0; margin: 0; padding: var(--space-4); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); }
.business-adjustments legend { padding-inline: 6px; font-family: var(--font-sans); font-weight: 600; }
.business-adjustments .business-list { margin-top: 0; }
.business-field-wide { grid-column: span 2; }
.business-tax-periods { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.business-tax-periods[hidden] { display: none; }
.business-list { display: grid; gap: var(--space-2); margin-top: 18px; }
.business-list-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(6.875rem, auto) auto; align-items: center; gap: 14px; min-height: 4rem; padding: 10px 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.business-list-row > div:first-child { display: grid; gap: var(--space-1); min-width: 0; }
.business-list-row small { overflow: hidden; color: var(--muted); font-size: var(--font-size-sm); text-overflow: ellipsis; white-space: nowrap; }
.business-list-row > div:last-child, .business-list-row__actions { display: flex; gap: var(--space-2); }
.business-list-row .ghost-button { min-height: var(--control-sm); }
.business-empty { display: grid; place-items: center; min-height: 6.625rem; padding: 18px; color: var(--muted); text-align: center; }
/* Histórico de receitas e despesas em duas colunas e duas linhas: competência e
   descrição / rótulo "Valor total"; produto, quantidade e unitário / valor. */
.business-list-row--detailed { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
.business-list-row__main { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 14px; align-items: baseline; min-width: 0; }
.business-list-row__main > strong { min-width: 0; overflow-wrap: anywhere; }
.business-list-row__main > small { white-space: normal; line-height: 1.4; }
.business-list-row__label { color: var(--muted); font-size: var(--font-size-xs); text-align: right; text-transform: uppercase; letter-spacing: 0.04rem; }
.business-list-row__main > b { text-align: right; white-space: nowrap; }
.business-list-row.is-editing { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 6%, var(--surface)); }
.business-inline-editor { display: grid; grid-column: 1 / -1; gap: var(--space-3); padding-top: var(--space-3); border-top: var(--border-width) solid var(--line); }
.business-inline-editor__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.business-inline-editor label { display: grid; gap: 6px; min-width: 0; }
.business-inline-editor label > span:first-child { color: var(--muted); font-size: var(--font-size-sm); }
.business-inline-editor input, .business-inline-editor .money-field { width: 100%; box-sizing: border-box; }
.business-inline-editor .business-form-actions { justify-content: flex-start; }
.business-scenario-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(17.5rem, 1fr); gap: var(--space-4); align-items: start; }
.business-history { display: grid; gap: 14px; padding: 18px; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); }
.business-history header { display: grid; gap: var(--space-1); }
.business-history small { color: var(--muted); }
.business-history [data-scenario-list] { display: grid; gap: var(--space-2); max-height: 27.5rem; overflow-y: auto; }
.business-scenario-row { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted); }
.business-scenario-row > button:first-child { display: grid; flex: 1; gap: var(--space-1); min-width: 0; padding: var(--space-2); color: var(--ink); background: transparent; text-align: left; }
.business-scenario-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.business-result-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin-bottom: 18px; }
.business-result-summary article { display: grid; gap: 6px; padding: var(--space-4); border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.business-result-summary article.is-loss-value { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, var(--surface)); }
.business-result-summary article.is-loss-value strong { color: var(--danger); }
.business-result-summary strong { font-size: var(--font-size-lg); }
.business-view-switch { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: 18px; padding: var(--space-1); border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.business-view-switch button { flex: 1 1 11.25rem; min-height: var(--control-md); padding-inline: var(--space-3); border-radius: var(--radius-sm); color: var(--muted); background: transparent; font-family: var(--font-sans); font-weight: 600; }
.business-view-switch button[aria-selected="true"] { color: var(--ink); background: var(--surface); box-shadow: var(--shadow-sm); }
.business-view-switch button:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }
.business-result-view { display: grid; gap: 18px; min-width: 0; }
/* min-width: 0 no proprio grid nao basta: o tamanho minimo automatico de
   cada item vira o min-content dele, e um item em bloco que embrulha uma
   tabela de 42.5rem estica a trilha inteira - no celular todo o painel de
   resultados ia a 682 px numa tela de 375 e era cortado. Zerando o minimo
   dos itens, a trilha respeita o container e a tabela rola no proprio
   .business-table-wrap, como ja acontece quando ela e filha direta. */
.business-result-view > * { min-width: 0; }
.business-diagnostics { display: grid; gap: var(--space-2); }
.business-diagnostics article { display: grid; gap: var(--space-1); padding: var(--space-3) 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted); }
.business-diagnostics article.is-critical { border-color: var(--danger); color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, var(--surface)); }
.business-diagnostics article.is-warning { border-color: var(--warning); color: var(--warning); background: color-mix(in srgb, var(--warning) 14%, var(--surface)); }
.business-diagnostics article.is-positive { border-color: var(--success); color: var(--success); background: color-mix(in srgb, var(--success) 12%, var(--surface)); }
.business-diagnostics article.is-info { border-color: var(--accent-2); color: var(--ink); background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); }
.business-diagnostics span { color: var(--muted); }
.business-table-wrap--spaced { margin-top: 14px; }
.business-dre-header { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-2); padding: var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted); }
.business-dre-header span { display: grid; gap: 2px; min-width: 0; color: var(--muted); font-size: var(--font-size-sm); }
.business-dre-header strong { color: var(--ink); font-size: var(--font-size-xs); text-transform: uppercase; }
.business-dre-filters { display: grid; grid-template-columns: minmax(11.25rem, 1.3fr) repeat(3, minmax(9.375rem, 1fr)); gap: var(--space-3); padding: 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted); }
.business-dre-filters label { display: grid; gap: 6px; min-width: 0; color: var(--muted); font-size: var(--font-size-sm); }
.business-dre-filters input, .business-dre-filters select { width: 100%; min-width: 0; box-sizing: border-box; }
.business-table-wrap--dre { position: relative; }
.business-table--dre { width: max-content; min-width: 100%; }
.business-table--dre th, .business-table--dre td { min-width: 8.75rem; }
.business-table--dre th.is-dre-account, .business-table--dre td.is-dre-account { left: 0; min-width: 15rem; max-width: 20rem; white-space: normal; }
.business-table--dre th.is-dre-total, .business-table--dre td.is-dre-total { position: sticky; right: 9.5rem; z-index: 2; width: 9.5rem; min-width: 9.5rem; max-width: 9.5rem; box-sizing: border-box; background: var(--surface); box-shadow: calc(2px * -1) 0 0 var(--line); }
.business-table--dre th.is-dre-percent, .business-table--dre td.is-dre-percent { position: sticky; right: 0; z-index: 2; width: 9.5rem; min-width: 9.5rem; max-width: 9.5rem; box-sizing: border-box; background: var(--surface); }
.business-table--dre th.is-dre-total, .business-table--dre th.is-dre-percent { z-index: 4; background: var(--surface-muted); }
.business-table--dre th.is-dre-percent { white-space: normal; }
.business-table--dre td:first-child { font-family: var(--font-sans); font-weight: 600; }
.business-table--dre .is-line td:first-child { padding-left: 28px; color: var(--muted); font-family: var(--font-sans); font-weight: 400; }
.business-table--dre .is-group td { background: var(--surface-muted); font-family: var(--font-sans); font-weight: 600; }
.business-table--dre .is-group td.is-dre-total, .business-table--dre .is-group td.is-dre-percent { background: var(--surface-muted); }
.business-table--dre .is-result td { border-top: 2px solid var(--line); color: var(--ink); font-family: var(--font-sans); font-weight: 700; }
.business-table--dre tbody tr { transition: background-color var(--motion-fast) ease; }
.business-table--dre tbody tr:hover td,
.business-table--dre tbody tr:hover td.is-dre-total,
.business-table--dre tbody tr:hover td.is-dre-percent { background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); }
.business-table--dre tbody tr.is-group:hover td,
.business-table--dre tbody tr.is-group:hover td.is-dre-total,
.business-table--dre tbody tr.is-group:hover td.is-dre-percent { background: color-mix(in srgb, var(--accent-2) 10%, var(--surface-muted)); }
.business-table--dre tr.is-collapsible { cursor: pointer; }
.business-table--dre tr.is-collapsible:focus-visible { outline: 2px solid var(--accent-2); outline-offset: calc(2px * -1); }
.business-dre-disclosure { display: flex; align-items: center; gap: var(--space-2); min-width: 0; }
.business-dre-disclosure > span:last-child { min-width: 0; overflow-wrap: anywhere; }
.business-dre-row-toggle { display: inline-grid; place-items: center; flex: 0 0 var(--icon-md); width: var(--icon-md); height: var(--icon-md); color: var(--muted); transform: rotate(90deg); transition: transform var(--motion-fast) ease; }
.business-dre-row-toggle svg { width: 100%; height: 100%; fill: currentColor; }
.business-table--dre tr.is-collapsed .business-dre-row-toggle { transform: rotate(0deg); }
.business-table td.is-loss-value, .business-table tr.is-selected td.is-loss-value,
.business-table--dre .is-result td.is-loss-value, .business-bars strong.is-loss-value { color: var(--danger); }
.business-table tr.is-selected td { color: var(--ink); background: color-mix(in srgb, var(--success) 12%, var(--surface)); font-family: var(--font-sans); font-weight: 600; }
.business-adjusted-result { padding: var(--space-3) 14px; border-left: 3px solid var(--accent-2); color: var(--muted); background: var(--surface-muted); }
.business-table-wrap { overflow-x: auto; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); }
.business-table { width: 100%; min-width: 42.5rem; border-collapse: collapse; }
.business-table th, .business-table td { padding: var(--space-3); border-bottom: var(--border-width) solid var(--line); text-align: right; white-space: nowrap; }
.business-table th { color: var(--muted); background: var(--surface-muted); font-size: var(--font-size-sm); }
.business-table th:first-child, .business-table td:first-child { text-align: left; }
.business-table th:first-child, .business-table td:first-child { position: sticky; left: 0; z-index: 1; background: var(--surface); }
.business-table th:first-child { z-index: 2; background: var(--surface-muted); }
.business-table--dre .is-group td:first-child { background: var(--surface-muted); }
.business-bars { display: grid; gap: 10px; }
.business-bars > div:not(.business-empty) { display: grid; grid-template-columns: 5.125rem minmax(0, 1fr) minmax(6.625rem, auto); align-items: center; gap: 10px; font-size: var(--font-size-sm); }
/* Barra composta: a largura total é o faturamento do mês; dentro dela, custos e despesas
   (--danger), impostos (--taxes) e o que sobra (resultado). No prejuízo, o excedente
   aparece tracejado além do faturamento. */
.business-bars i { position: relative; display: flex; height: 0.75rem; overflow: hidden; border-radius: var(--radius-pill); background: var(--surface-muted); }
.business-bars b { display: block; flex: 0 0 auto; width: var(--bar-size); height: 100%; background: var(--accent-2); }
.business-bars b.is-expenses { background: var(--danger); }
.business-bars b.is-taxes { background: var(--taxes); }
.business-bars b.is-result { background: var(--accent-2); }
.business-bars u.is-loss { position: absolute; top: 0; bottom: 0; display: block; background: repeating-linear-gradient(135deg, color-mix(in srgb, var(--danger) 85%, #000) 0 4px, color-mix(in srgb, var(--danger) 25%, var(--surface)) 4px 8px); outline: 1px solid var(--surface); }
.business-bars strong { text-align: right; }
.business-bars-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 12px; padding: 0; list-style: none; color: var(--muted); font-size: var(--font-size-xs); }
.business-bars-legend li { display: inline-flex; align-items: center; gap: 6px; }
.business-bars-legend i { width: 0.75rem; height: 0.75rem; border-radius: 3px; }
.business-bars-legend i.is-expenses { background: var(--danger); }
.business-bars-legend i.is-taxes { background: var(--taxes); }
.business-bars-legend i.is-result { background: var(--accent-2); }
.business-bars-legend i.is-loss { background: repeating-linear-gradient(135deg, var(--danger) 0 3px, color-mix(in srgb, var(--danger) 35%, var(--surface)) 3px 6px); }

.payroll-summary { display: grid; gap: var(--space-4); margin-bottom: 18px; padding: 20px; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.payroll-summary > header, .payroll-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-4); }
.payroll-summary > header h3, .payroll-section-heading h3 { margin: 0 0 var(--space-1); }
.payroll-summary > header p, .payroll-section-heading p { margin: 0; color: var(--muted); }
.payroll-summary > header > span { padding: 6px 10px; border-radius: var(--radius-pill); color: var(--ink); background: color-mix(in srgb, var(--ink) 10%, var(--surface)); font-family: var(--font-sans); font-weight: 600; font-size: var(--font-size-xs); text-align: center; }
.payroll-summary__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.payroll-summary__grid article { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.payroll-summary__grid span { color: var(--muted); font-size: var(--font-size-sm); }
.payroll-summary__grid strong { overflow-wrap: anywhere; font-size: var(--font-size-base); }
.payroll-summary__grid small { color: var(--muted); }
.payroll-summary__grid .payroll-summary__total { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 7%, var(--surface)); }
.payroll-breakdown { border-top: var(--border-width) solid var(--line); padding-top: var(--space-3); }
.payroll-breakdown summary { cursor: pointer; font-family: var(--font-sans); font-weight: 600; }
.payroll-breakdown__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); margin-top: var(--space-3); }
.payroll-breakdown__grid span { display: flex; justify-content: space-between; gap: var(--space-2); padding: 10px; border-radius: var(--radius-sm); color: var(--muted); background: var(--surface); font-size: var(--font-size-sm); }
.payroll-breakdown__grid strong { color: var(--ink); white-space: nowrap; }
.payroll-live-summary { position: sticky; top: calc(var(--payroll-topbar-height, var(--topbar-height)) + var(--space-3)); z-index: calc(var(--layer-header) - 1); display: grid; grid-template-columns: repeat(3, minmax(8.125rem, 1fr)) minmax(13.75rem, 1.25fr); align-items: stretch; gap: var(--space-2); margin-bottom: 18px; padding: 10px; border: var(--border-width) solid color-mix(in srgb, var(--accent-2) 38%, var(--line)); border-radius: var(--radius-md); background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: 0 12px 28px rgba(15, 23, 42, .14); backdrop-filter: blur(12px); }
.payroll-live-summary > div { display: grid; align-content: center; gap: 3px; min-width: 0; padding: 8px 10px; border-radius: var(--radius-sm); background: var(--surface-muted); }
.payroll-live-summary span, .payroll-live-summary small { color: var(--muted); font-size: var(--font-size-xs); }
.payroll-live-summary strong { overflow: hidden; font-size: var(--font-size-base); text-overflow: ellipsis; white-space: nowrap; }
.payroll-live-summary .payroll-live-summary__total { border: var(--border-width) solid var(--accent-2); background: color-mix(in srgb, var(--accent-2) 8%, var(--surface)); }
.payroll-live-summary__total strong { color: var(--accent-2); }
.payroll-live-summary .payroll-live-summary__action { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.payroll-live-summary__action small { line-height: 1.3; }
.payroll-live-summary__action button { flex: 0 0 auto; min-height: var(--control-sm); padding-inline: var(--space-3); }
.payroll-employee-cost-preview { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px var(--space-4); padding: 14px var(--space-4); border: var(--border-width) solid color-mix(in srgb, var(--accent-2) 38%, var(--line)); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--accent-2) 7%, var(--surface)); }
.payroll-employee-cost-preview > span { color: var(--muted); font-size: var(--font-size-sm); }
.payroll-employee-cost-preview > output { color: var(--accent-2); font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-lg); }
.payroll-employee-cost-preview > small { grid-column: 1 / -1; color: var(--muted); font-size: var(--font-size-xs); }
.payroll-settings-disclosure { margin-bottom: 18px; overflow: clip; border: var(--border-width) solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted); }
.payroll-settings-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding: 16px 20px; cursor: pointer; list-style: none; }
.payroll-settings-disclosure > summary::-webkit-details-marker { display: none; }
.payroll-settings-disclosure > summary > span { display: grid; gap: 3px; min-width: 0; }
.payroll-settings-disclosure > summary strong { font-size: var(--font-size-base); }
.payroll-settings-disclosure > summary small { color: var(--muted); font-family: var(--font-sans); font-weight: 400; }
.payroll-settings-disclosure > summary b { flex: 0 0 auto; padding: 6px 10px; border-radius: var(--radius-pill); color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 10%, var(--surface)); font-size: var(--font-size-xs); }
.payroll-settings-disclosure[open] > summary { border-bottom: var(--border-width) solid var(--line); }
.payroll-settings-disclosure > .payroll-settings { margin: 0; border: 0; border-radius: 0; }
.payroll-settings, .payroll-employee-form { margin-bottom: 18px; }
.partner-explainer { display: grid; grid-template-columns: minmax(10rem, auto) minmax(0, 1fr); align-items: start; margin: 0 0 18px; }
.partner-summary { display: grid; gap: var(--space-3); margin-bottom: 18px; padding: 18px; border: var(--border-width) solid color-mix(in srgb, var(--accent-2) 36%, var(--line)); border-radius: var(--radius-md); background: color-mix(in srgb, var(--accent-2) 5%, var(--surface)); }
.partner-summary > header { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.partner-summary > header > div { display: grid; gap: 3px; }
.partner-summary h3, .partner-summary p { margin: 0; }
.partner-summary p, .partner-summary > header > span { color: var(--muted); font-size: var(--font-size-sm); }
.partner-summary > header > span { padding: 6px 10px; border-radius: var(--radius-pill); background: var(--surface-muted); white-space: nowrap; }
.partner-summary__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.partner-summary__grid article { display: grid; gap: 5px; padding: 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.partner-summary__grid span { color: var(--muted); font-size: var(--font-size-sm); }
.partner-summary__grid strong { font-size: var(--font-size-lg); }
.partner-summary__grid .partner-summary__total { border-color: var(--accent-2); }
.partner-summary__total strong { color: var(--accent-2); }
.payroll-partner-form { margin-top: 0; }
.payroll-settings input:not([type="checkbox"]), .payroll-settings select,
.payroll-employee-form input:not([type="checkbox"]), .payroll-employee-form select,
.payroll-settings .money-field, .payroll-employee-form .money-field { height: var(--control-md); min-height: var(--control-md); box-sizing: border-box; }
.payroll-settings .money-field input, .payroll-employee-form .money-field input { height: 100%; min-height: 0; }
.payroll-settings input[type="checkbox"], .payroll-employee-form input[type="checkbox"] { flex: 0 0 var(--icon-md); width: var(--icon-md); height: var(--icon-md); min-height: var(--icon-md); margin: 0; padding: 0; accent-color: var(--accent-2); }
.payroll-switch { display: flex; align-items: flex-start; gap: 10px; max-width: 22.5rem; padding: 10px var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); cursor: pointer; }
.payroll-switch input { margin-top: 3px; }
.payroll-switch > span { display: grid; gap: 3px; }
.payroll-switch small { color: var(--muted); line-height: 1.35; }
.payroll-benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); }
.payroll-benefit-grid[hidden] { display: none; }
.payroll-benefit-field { display: grid; gap: var(--space-2); min-width: 0; padding: var(--space-3); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.payroll-benefit-field > small { color: var(--muted); font-family: var(--font-sans); font-weight: 400; line-height: 1.35; }
.payroll-benefit-field--extended { align-content: start; }
.payroll-inline-check { display: flex; align-items: center; gap: var(--space-2); color: var(--muted); font-size: var(--font-size-sm); cursor: pointer; }
.payroll-inline-check input { flex: 0 0 1.125rem; }
.payroll-note { margin: 0; padding: 10px var(--space-3); border-left: 3px solid var(--accent-2); color: var(--muted); background: var(--surface); font-size: var(--font-size-sm); }
.payroll-contract-note { border-left-color: var(--accent-2); }
.payroll-settings input:disabled, .payroll-settings select:disabled { color: var(--muted); background: var(--surface-muted); cursor: not-allowed; }

@media (min-width: 47.5625rem) and (max-width: 82.5rem) {
  .business-header { align-items: start; }
  .business-header__actions { flex-direction: column; align-items: stretch; flex-basis: 20rem; }
  .business-header__actions label { min-width: 0; }
  .business-header__actions button { justify-content: center; }
  .business-header__buttons { grid-template-columns: 1fr; }
  .business-metrics, .business-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-dre-header { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-dre-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-scenario-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-scenario-grid > label,
  .business-scenario-grid > label:nth-child(n+7) { grid-column: span 1; }
  .business-tax-parameters > .business-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-field-wide { grid-column: span 2; }
  .business-tax-periods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-dashboard-grid, .business-scenario-layout { grid-template-columns: 1fr; }
  .business-progress-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .partner-summary__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .payroll-summary__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .payroll-benefit-grid, .payroll-breakdown__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-live-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .payroll-live-summary .payroll-live-summary__action { grid-column: 1 / -1; }
}
@media (max-width: 47.5rem) {
  .business-simulator { gap: 14px; }
  .business-notice, .business-header, .business-header__actions { display: grid; align-items: stretch; }
  .business-header { gap: var(--space-4); }
  .business-header__actions label { min-width: 0; }
  .business-header__actions button { justify-content: center; }
  .business-header__buttons { grid-template-columns: 1fr; }
  .business-vigia-link { width: 100%; box-sizing: border-box; }
  .business-metrics, .business-dashboard-grid, .business-form-grid, .business-form-grid--five, .business-scenario-layout, .business-result-summary, .business-progress-grid { grid-template-columns: 1fr; }
  .business-dre-header { grid-template-columns: 1fr; }
  .business-dre-filters { grid-template-columns: 1fr; }
  /* DRE no celular: a coluna da conta continua fixa (orientação), mas encolhe e
     quebra em até três linhas, e as colunas de valor ficam mais estreitas. Assim
     cabem duas competências ao lado da conta em 375 px, em vez de uma. */
  .business-table--dre th, .business-table--dre td { min-width: 6.25rem; padding: 8px 6px; font-size: var(--font-size-xs); }
  .business-table--dre th.is-dre-account, .business-table--dre td.is-dre-account { width: 6.75rem; min-width: 6.75rem; max-width: 6.75rem; box-sizing: border-box; line-height: 1.25; overflow-wrap: anywhere; box-shadow: 2px 0 0 var(--line); }
  .business-table--dre .is-line td:first-child { padding-left: 14px; }
  .business-dre-disclosure { gap: var(--space-1); }
  .business-dre-row-toggle { flex-basis: var(--icon-sm); width: var(--icon-sm); height: var(--icon-sm); }
  .business-table--dre th.is-dre-total, .business-table--dre td.is-dre-total,
  .business-table--dre th.is-dre-percent, .business-table--dre td.is-dre-percent { position: static; right: auto; z-index: auto; box-shadow: none; }
  .business-view-switch { display: grid; }
  .business-scenario-grid > label,
  .business-scenario-grid > label:nth-child(n+7) { grid-column: span 1; }
  .business-tax-parameters > .business-form-grid { grid-template-columns: 1fr; }
  .business-field-wide { grid-column: span 1; }
  .business-tax-periods { grid-template-columns: 1fr; }
  .business-metrics { gap: 10px; }
  .business-card, .business-form, .business-history { min-height: 0; padding: 14px; }
  .business-list-row { grid-template-columns: minmax(0, 1fr) auto; }
  .business-list-row > div:last-child, .business-list-row__actions { grid-column: 1 / -1; }
  .business-list-row > div:last-child button, .business-list-row__actions button { flex: 1; justify-content: center; }
  .business-list-row--detailed { grid-template-columns: 1fr; }
  .business-inline-editor__grid { grid-template-columns: 1fr; }
  .business-notice--gate { grid-template-columns: 1fr; }
  .business-notice--gate > button { width: 100%; justify-content: center; }
  .business-form-actions { display: grid; grid-template-columns: 1fr; }
  .business-form-actions button { justify-content: center; }
  .partner-summary > header { align-items: flex-start; flex-direction: column; }
  .partner-summary__grid { grid-template-columns: 1fr; }
  .partner-explainer { grid-template-columns: 1fr; }
  .payroll-live-summary { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-live-summary .payroll-live-summary__total,
  .payroll-live-summary .payroll-live-summary__action { grid-column: 1 / -1; }
  .payroll-settings-disclosure > summary { align-items: flex-start; padding: 14px; }
  .payroll-settings-disclosure > summary b { max-width: 42%; text-align: center; white-space: normal; }
  .business-step-navigation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .business-step-navigation.is-first, .business-step-navigation.is-last { grid-template-columns: 1fr; }
  .business-step-navigation > button { width: 100%; }
  .business-bars > div:not(.business-empty) { grid-template-columns: 4.625rem minmax(0, 1fr); }
  .business-bars strong { grid-column: 2; }
  .payroll-summary > header, .payroll-section-heading { display: grid; }
  .payroll-summary__grid, .payroll-benefit-grid, .payroll-breakdown__grid { grid-template-columns: 1fr; }
  .payroll-switch { max-width: none; }
  /* Resultados no celular. A tabela da DRE ja recebia padding e fonte menores
     aqui; as tabelas comuns nao, e cada celula saia larga demais. Sem o
     min-width fixo, tabela de poucas colunas passa a caber inteira na tela e so
     as largas rolam - e a rolagem para nelas, sem arrastar a pagina junto. */
  .business-table { min-width: 0; }
  .business-table th, .business-table td { padding: var(--space-2); font-size: var(--font-size-xs); }
  .business-table-wrap { overscroll-behavior-inline: contain; }
  /* Os titulos das secoes de resultado nunca receberam tamanho: ficavam no
     padrao do navegador, maiores que o h2 da propria etapa. */
  .business-result-view h3 { font-size: var(--font-size-base); }
  .business-empty { min-height: 0; padding: var(--space-4); font-size: var(--font-size-sm); }
  .business-tax-result > p { font-size: var(--font-size-sm); line-height: 1.45; }
}
.business-optional{margin:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.business-optional summary{cursor:pointer;font-weight:700}.business-optional>p{color:var(--muted);margin:8px 0 16px}.business-plan-comparison{display:flex;flex-direction:column;gap:4px;margin:12px 0 18px;padding:12px 0;border-bottom:1px solid var(--line)}

/* Cenários: cards do piso, perguntas "E se…" e editor inline. As premissas do
   motor não aparecem para o usuário; ele só escolhe um cenário e responde. */
.business-scenario-kinds { display: grid; gap: 12px; min-width: 0; margin: 0; padding: var(--space-4); border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); }
.business-scenario-kinds legend { padding-inline: 6px; font-family: var(--font-sans); font-weight: 600; }
.scenario-kind-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.scenario-kind-card { position: relative; display: grid; gap: 4px; min-width: 0; padding: 12px 14px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); cursor: pointer; transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease, transform var(--motion-fast) ease; }
.scenario-kind-card:hover { border-color: color-mix(in srgb, var(--accent-2) 60%, var(--line)); transform: translateY(-1px); }
.scenario-kind-card.is-selected { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 9%, var(--surface)); }
.scenario-kind-card:has(input:focus-visible) { outline: 3px solid color-mix(in srgb, var(--accent-2) 55%, transparent); outline-offset: 2px; }
.business-form .scenario-kind-card input[type="radio"] { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; padding: 0; opacity: 0; pointer-events: none; }
.scenario-kind-card__title { font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-sm); }
.scenario-kind-card__text { color: var(--muted); font-size: var(--font-size-xs); line-height: 1.4; }
.business-scenario-kinds__summary, .beta-preset-summary { margin: 0; padding: 12px 14px; border-left: 3px solid var(--accent-2); background: var(--surface-muted); color: var(--muted); font-size: var(--font-size-sm); }
.business-questions { border-color: color-mix(in srgb, var(--accent-2) 45%, var(--line)); }
.business-questions > p { margin: 0; color: var(--muted); font-size: var(--font-size-sm); }
.business-question-groups { display: grid; gap: 14px; }
.business-question-group { display: grid; gap: 8px; }
.business-question-group > strong { font-family: var(--font-sans); font-size: var(--font-size-xs); font-weight: 600; letter-spacing: 0.04rem; text-transform: uppercase; color: var(--accent-2); }
.business-question-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.business-question-button { display: inline-flex; align-items: center; min-height: var(--control-sm); padding: 6px 12px; border: var(--border-width) solid var(--line); border-radius: 999px; color: var(--ink); background: var(--surface); font: inherit; font-size: var(--font-size-sm); text-align: left; cursor: pointer; transition: border-color var(--motion-fast) ease, background-color var(--motion-fast) ease; }
.business-question-button:hover, .business-question-button:focus-visible { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 9%, var(--surface)); }
.business-question-button:disabled { opacity: 0.55; cursor: not-allowed; }
.business-question-editor { display: grid; gap: 14px; padding: var(--space-4); border: var(--border-width) solid var(--accent-2); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--accent-2) 6%, var(--surface)); }
.business-question-editor h3 { margin: 0; font-family: var(--font-sans); font-weight: 600; font-size: var(--font-size-md, 1rem); }
.business-question-editor .field-description { display: block; margin-top: 0; color: var(--muted); font-size: var(--font-size-xs); }
/* Editor em duas colunas com rótulo, campo e descrição alinhados entre as colunas (subgrid). */
.business-question-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.business-question-grid > label > span:first-child { display: flex; align-items: center; min-width: 0; font-size: var(--font-size-sm); }
.business-question-grid > label > .business-check-field { align-self: start; height: var(--control-lg); min-height: var(--control-lg); }
.business-question-grid > label > .business-month-chips { align-self: start; }
.business-question-grid > label.business-field-wide { grid-column: 1 / -1; }
.business-question-grid > label[hidden] { display: none; }
.business-question-editor .business-form-actions { justify-content: flex-start; }
.business-month-chips { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.business-month-chip { display: flex; align-items: center; justify-content: center; min-height: var(--control-sm); padding: 4px 6px; border: var(--border-width) solid var(--line); border-radius: var(--radius-sm); background: var(--surface); font-size: var(--font-size-xs); cursor: pointer; }
.business-month-chip:has(input:checked) { border-color: var(--accent-2); background: color-mix(in srgb, var(--accent-2) 14%, var(--surface)); font-weight: 600; }
.business-form .business-month-chip input[type="checkbox"] { position: absolute; width: 1px; height: 1px; min-height: 0; margin: 0; opacity: 0; pointer-events: none; }
.business-question-list .business-empty { min-height: 4.5rem; }
.business-question-row { grid-template-columns: auto minmax(0, 1fr) auto auto; }
.business-question-row > div, .beta-question-impacts .business-list-row > div { display: grid; gap: 4px; min-width: 0; }
.business-question-order, .beta-question-impacts .business-question-order { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; color: var(--surface); background: var(--accent-2); font-family: var(--font-sans); font-size: var(--font-size-xs); font-weight: 700; }
.business-question-row small, .beta-question-impacts .business-list-row small { overflow: visible; text-overflow: initial; white-space: normal; line-height: 1.4; }
.business-question-note { color: var(--warning) !important; }
.business-scenario-advanced > p { margin: 8px 0 16px; color: var(--muted); font-size: var(--font-size-sm); }
.business-scenario-advanced .business-adjustments { margin-top: 16px; }
.beta-impact { margin-top: 24px; }
.beta-impact h3 { margin: 22px 0 12px; font-size: 1rem; letter-spacing: 0; }
.beta-impact .business-result-summary small { display: block; margin-top: 5px; color: var(--muted); }
.beta-question-impacts .business-list-row { grid-template-columns: auto minmax(0, 1fr); }
.beta-question-impact { font-weight: 600; color: var(--ink) !important; }
.beta-question-impact.is-loss-value { color: var(--danger) !important; }
.beta-trace-details { margin: 18px 0 0; }
.beta-trace-list { max-height: 21.25rem; overflow: auto; margin-top: 12px; }
.beta-trace-list .business-list-row small { overflow: visible; text-overflow: initial; white-space: normal; line-height: 1.45; }
@media (max-width: 56.25rem) { .scenario-kind-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .business-month-chips { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 35rem) { .scenario-kind-cards { grid-template-columns: minmax(0, 1fr); } .business-question-grid { grid-template-columns: minmax(0, 1fr); } .business-month-chips { grid-template-columns: repeat(3, minmax(0, 1fr)); } .business-question-row { grid-template-columns: auto minmax(0, 1fr); } .business-question-row > .ghost-button { grid-column: 2; justify-self: start; } .business-question-button { white-space: normal; } }

.business-tax-result { margin-top: 20px; }
.business-tax-result > p { margin: 0 0 var(--space-4); color: var(--muted); }
.business-tax-summary { margin-bottom: var(--space-4); }
.business-table tr.is-informational td {
  color: var(--muted);
  background: color-mix(in srgb, var(--surface) 88%, var(--accent-2) 12%);
}

/* Atalho exibido depois que o resultado está pronto. A revisão precisa estar
   salva porque o Vigia consome a memória fiscal imutável daquele cenário. */
.business-vigia-result-action {
  display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  margin: var(--space-5) 0; padding: var(--space-4);
  border: var(--border-width) solid color-mix(in srgb, var(--accent-2) 45%, var(--line));
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--accent-2) 8%, var(--surface));
}
.business-vigia-result-action[hidden] { display: none; }
.business-vigia-result-action > div {
  display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center;
  gap: var(--space-3); min-width: 0;
}
.business-vigia-result-action > div > span:last-child { display: grid; gap: var(--space-1); }
.business-vigia-result-action strong { font-size: var(--font-size-md); }
.business-vigia-result-action small,
.business-vigia-result-action__pending { color: var(--muted); font-size: var(--font-size-xs); line-height: 1.4; }
.business-vigia-result-action__icon { width: var(--icon-lg); height: var(--icon-lg); color: var(--accent-2); }
.business-vigia-result-action .primary-button,
.business-vigia-result-action__pending { flex: 0 0 auto; }

@media (max-width: 47.5rem) {
  .business-vigia-result-action { display: grid; align-items: stretch; }
  .business-vigia-result-action .primary-button { justify-content: center; }
}

/* Aviso de competência atrasada: o mesmo .business-notice, com o botão de ação
   à direita e quebrando abaixo do texto quando a tela não comporta os dois. */
.business-competence { justify-content: space-between; flex-wrap: wrap; margin-bottom: var(--space-4); }
.business-competence__text { flex: 1 1 20rem; min-width: 0; display: grid; gap: var(--space-1); }
.business-competence__text strong { color: var(--warning); font-family: var(--font-sans); font-weight: 700; font-size: var(--font-size-sm); }
.business-competence__text p { margin: 0; color: var(--ink); font-size: var(--font-size-sm); line-height: 1.45; }
.business-competence > button { flex: 0 0 auto; }
/* Depois de atualizar sozinho o aviso vira confirmação: mesma caixa, tom neutro,
   sem botão. Some só quando não há nada a dizer. */
.business-competence.is-done {
    border-color: var(--line); color: var(--ink); background: var(--surface-muted);
}
.business-competence.is-done .business-competence__text strong { color: var(--ink); }
@media (max-width: 47.5rem) {
    .business-competence > button { width: 100%; justify-content: center; }
}
