/* R2 na aplicação Blazor: Consórcio, Comparativo e ajuste da tabela INCC. */
.page-r2-simulation,
.page-r2-comparison {
  --r2-ink: #203a43;
  --r2-muted: #597079;
  --r2-deep: #12434b;
  --r2-accent: #145e67;
  --r2-line: #dbe5e5;
  --r2-soft: #eef4f4;
  --r2-consortium: #127780;
  --r2-financing: #7854aa;
  width: min(1580px, calc(100% - 40px));
  color: var(--r2-ink);
  font-family: "Segoe UI", Arial, sans-serif;
}

.page-r2-simulation :is(h1,h2,h3),
.page-r2-comparison :is(h1,h2,h3) { font-family: Bahnschrift, "Segoe UI", sans-serif; letter-spacing: -.025em; }
.page-r2-simulation :is(strong,dd),
.page-r2-comparison :is(strong,dd) { font-variant-numeric: tabular-nums; }
.page-r2-simulation :is(button,a,input,select,summary):focus-visible,
.page-r2-comparison :is(button,a,input,select,summary):focus-visible { outline: 3px solid #338bad; outline-offset: 3px; }
.page-r2-simulation .btn-primary,
.page-r2-comparison .btn-primary { background: var(--r2-deep); border-color: var(--r2-deep); }
.page-r2-simulation .btn,
.page-r2-comparison .btn { border-radius: 7px; transition: background .2s cubic-bezier(.22,1,.36,1), border-color .2s cubic-bezier(.22,1,.36,1); }

.r2-workspace-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; margin: 15px 0; }
.r2-workspace-heading h1 { margin: 2px 0 0; font-size: clamp(24px,2.2vw,32px); line-height: 1.13; }
.r2-workspace-heading .eyebrow { margin: 0; color: var(--r2-accent); }
.app-form:has(.page-r2-simulation) > .module-nav,
.app-form:has(.page-r2-simulation) > .crumbbar { background: #fff; }
.page-r2-simulation .proposal-identity :is(#client-name,#consultant-name) { background: #fff; }
.page-r2-simulation .proposal-identity :is(#client-name,#consultant-name):is(:autofill,:-webkit-autofill) { -webkit-box-shadow: 0 0 0 1000px #fff inset; box-shadow: 0 0 0 1000px #fff inset; }
.r2-simulation-shell { background: white; border: 1px solid var(--r2-line); border-radius: 13px; box-shadow: 0 2px 4px #233d4203,0 12px 30px #233d4204; overflow: hidden; }
.r2-simulation-shell:has(.asset-select.is-open, .term-select.is-open) { overflow: visible; }
.r2-simulation-shell:has(.is-initial-proposal) { box-shadow: none; }
.r2-simulation-shell.is-reviewing { display: grid; grid-template-columns: minmax(350px, .42fr) minmax(0,1fr); }
.r2-config-panel { min-width: 0; background: #f8fafa; }
.r2-simulation-shell.is-reviewing .r2-config-panel { border-right: 1px solid var(--r2-line); }
.r2-result-panel { min-width: 0; }
.page-r2-simulation .precision-form-real,
.page-r2-simulation .precision-result { border: 0; border-radius: 0; box-shadow: none; background: transparent; overflow: visible; }
.page-r2-simulation .precision-form-header { padding: 16px 20px 12px; border-color: var(--r2-line); align-items: center; }
.page-r2-simulation .precision-form-header h2 { font-size: 21px; }
.page-r2-simulation .precision-form-status { display: none; }
.r2-input-groups { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 12px 20px; background: #fbfcfc; }
.r2-input-groups button { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 9px; min-width: 0; min-height: 64px; padding: 9px 10px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--r2-muted); text-align: left; cursor: pointer; transition: background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.r2-input-groups button:hover { border-color: #c8d9d9; background: #f1f6f6; }
.r2-input-groups button.is-active { border-color: #a9caca; background: #e3efef; color: var(--r2-deep); box-shadow: inset 3px 0 var(--r2-accent); }
.r2-input-groups button.is-reviewed:not(.is-active) .r2-group-number { border-color: #9bbdb4; background: #edf6f2; color: #17604f; }
.r2-group-number { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid #cadada; border-radius: 999px; color: var(--r2-accent); font-size: 10px; font-weight: 750; font-variant-numeric: tabular-nums; }
.r2-group-copy { min-width: 0; }
.r2-group-copy strong,.r2-group-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.r2-group-copy strong { font-size: 12px; }
.r2-group-copy small { margin-top: 3px; font-size: 10px; font-weight: 400; }
.r2-group-action { display: inline-flex; align-items: center; gap: 3px; color: var(--r2-accent); font-size: 9px; font-weight: 700; white-space: nowrap; }
.r2-group-action span { font-size: 16px; line-height: 1; }
.r2-premise-summary { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px 20px; padding: 11px 20px 12px; border-top: 1px solid var(--r2-line); border-bottom: 1px solid var(--r2-line); background: #f5f8f8; }
.r2-premise-heading strong,.r2-premise-heading span { display: block; }
.r2-premise-heading strong { color: var(--r2-deep); font-size: 11px; }
.r2-premise-heading span { margin-top: 2px; color: var(--r2-muted); font-size: 9px; }
.r2-premise-summary ul { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 0; margin: 0; padding: 0; list-style: none; color: var(--r2-ink); font-size: 11px; font-weight: 650; }
.r2-premise-summary li { display: inline-flex; align-items: center; }
.r2-premise-summary li:not(:last-child)::after { content: "·"; margin: 0 8px; color: #8aa1a5; }
.r2-premise-summary > p { grid-column: 2; margin: -2px 0 0; color: var(--r2-muted); font-size: 10px; }
.page-r2-simulation .precision-input-group[hidden] { display: none !important; }
.page-r2-simulation .precision-input-group:not([hidden]) { animation: r2-panel-in .18s cubic-bezier(.22,1,.36,1); }
.page-r2-simulation .precision-input-groups { padding: 0 20px 6px; }
.page-r2-simulation .precision-input-group { grid-template-columns: 145px minmax(0,1fr); gap: 14px; padding: 13px 0 8px; border-bottom: 1px solid var(--r2-line); }
.page-r2-simulation .precision-input-group:last-child { border-bottom: 0; }
.page-r2-simulation .precision-input-group:has(.precision-acquisition-grid) .precision-group-label { padding-top: 11px; }
.page-r2-simulation .precision-group-label h3 { color: var(--r2-deep); font-size: 12px; }
.page-r2-simulation .precision-group-label p { color: var(--r2-muted); }
.page-r2-simulation .precision-input-group .field label,
.page-r2-simulation .precision-input-group .field-label { font-size: 11px; }
.page-r2-simulation .precision-input-group .field-hint { font-size: 10px; }
.page-r2-simulation .precision-acquisition-grid .asset-select.is-open .asset-menu,
.page-r2-simulation .precision-acquisition-grid .term-select.is-open .term-menu { position: absolute; inset: calc(100% + 5px) 0 auto; width: 100%; max-height: min(276px, 45vh); margin-top: 0; }
.page-r2-simulation .precision-acquisition-grid .term-select.is-open .term-suggest-btn { height: 38px; }
.page-r2-simulation .precision-acquisition-grid .term-select.is-open .affix.suffix { top: 19px; }
.page-r2-simulation .precision-bid-grid > .field > label { display: flex; align-items: center; min-height: 24px; margin-bottom: 5px; }
.page-r2-simulation .form-footer { border-top: 1px solid var(--r2-line); background: #f8fafa; padding: 15px 20px; }
.page-r2-simulation .form-footer { justify-content: flex-end; }
.r2-calculate-check { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 14px 20px 0; padding: 13px 14px; border: 1px solid #b9d4ce; border-radius: 8px; background: #edf6f2; }
.r2-calculate-check strong { display: block; color: var(--r2-deep); font-size: 13px; }
.r2-calculate-check p { max-width: 760px; margin: 4px 0 0; color: var(--r2-muted); font-size: 11px; line-height: 1.45; }
.r2-calculate-check-actions { display: flex; flex: 0 0 auto; gap: 8px; }
.r2-review-reference { margin: 14px 20px 0; padding: 11px 13px; background: #e8f0f0; border-radius: 7px; }
.r2-review-reference > span { display: block; color: var(--r2-accent); font-size: 11px; font-weight: 700; }
.r2-review-reference dl { display: flex; gap: 18px; margin: 7px 0 0; }
.r2-review-reference div { min-width: 0; }
.r2-review-reference dt { color: var(--r2-muted); font-size: 10px; }
.r2-review-reference dd { margin: 3px 0 0; color: var(--r2-deep); font-weight: 700; font-size: 15px; }
.r2-review-reference p { margin: 7px 0 0; color: #825216; font-size: 11px; }
.page-r2-simulation .precision-proposal-header { grid-template-columns: minmax(250px, .8fr) minmax(0, 1.8fr) auto; gap: 28px; padding: 12px 28px; border-color: var(--r2-line); background: var(--r2-result-surface); }
.page-r2-simulation .precision-proposal-title .eyebrow { font-size: 11px; }
.page-r2-simulation .precision-proposal-context { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding-left: 20px; border-left: 1px solid #e2e9ec; }
.page-r2-simulation .precision-proposal-context div:not(:first-child) { padding-left: 14px; border-left: 1px solid #e2e9ec; }
.page-r2-simulation .precision-proposal-context dt { font-size: 10px; }
.page-r2-simulation .precision-proposal-context dd { overflow: visible; text-overflow: clip; white-space: normal; font-size: 13px; }
.page-r2-simulation .precision-proposal-title h1 { font-size: 26px; }
.page-r2-simulation .precision-result-body { max-width: 1408px; margin: 27px auto 19px; padding: 0 24px; }
.page-r2-simulation .client-payment-breakdown > div { font-weight: 500; }
.page-r2-simulation .precision-result-grid { grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); gap: 0; }
.page-r2-simulation .precision-section { border: 0; border-radius: 0; border-top: 1px solid var(--r2-line); background: transparent; padding: 15px 2px; }
.page-r2-simulation .r2-result-panel :is(.precision-credit,.precision-payments,.precision-alternatives) { border-top: 0; }
.page-r2-simulation .r2-result-panel .precision-timeline { border-top: 0; }
.page-r2-simulation .precision-credit { grid-column: auto; padding-right: 25px; }
.page-r2-simulation .precision-payments,
.page-r2-simulation .client-timeline { padding-left: 25px; border-left: 1px solid var(--r2-line); }
.page-r2-simulation .r2-result-panel .precision-payments { border-left: 0; }
.page-r2-simulation .precision-alternatives { grid-column: 1 / -1; }
.page-r2-simulation .precision-section-head h2 { font-size: 18px; color: var(--r2-ink); }
.page-r2-simulation .client-credit-card,
.page-r2-simulation .precision-alternatives-grid { border-radius: 8px; }
.page-r2-simulation .r2-result-panel { --r2-result-surface: #f6fafd; --result-credit-released-surface: var(--r2-result-surface); }
.page-r2-simulation .r2-result-panel .client-credit-card { background: var(--r2-result-surface); }
.page-r2-simulation .r2-result-panel .client-credit-card-released { background: var(--result-credit-released-surface); }
.page-r2-simulation .client-credit-card-released > strong { color: #149978; }
.page-r2-simulation .client-credit-card { padding: 14px 16px; }
.page-r2-simulation .client-credit-card > strong { font-size: clamp(25px,2.5vw,34px); }
@media (min-width: 801px) {
  .page-r2-simulation .r2-result-panel .client-credit-layout { gap: 22px; }
  .page-r2-simulation .r2-result-panel .client-payment-total { margin: 13px 0 10px; }
  .page-r2-simulation .r2-result-panel .client-payment-breakdown > div { padding-block: 6px; }
  .page-r2-simulation .r2-result-panel .client-bid-summary { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 17px; margin-top: 16px; padding-top: 13px; border-color: var(--r2-line); }
  .page-r2-simulation .r2-result-panel .client-bid-summary > div > span { margin-bottom: 4px; font-weight: 650; }
  .page-r2-simulation .r2-result-panel .client-bid-summary p { padding-left: 0; border-left: 0; line-height: 1.45; }
}
.page-r2-simulation .r2-result-panel .client-bid-summary,
.page-r2-simulation .r2-result-panel .client-payment-breakdown { border-top: 0; }
.page-r2-simulation .r2-result-panel .client-payment-total > strong { color: var(--r2-ink); }
.page-r2-simulation .r2-result-panel .client-credit-card > small,
.page-r2-simulation .r2-result-panel .client-payment-total > span,
.page-r2-simulation .r2-result-panel .client-payment-breakdown span { color: #000; font-size: 14px; }
.page-r2-simulation .r2-result-panel .client-bid-summary > div > strong { color: #1d1d1f; }
.page-r2-simulation .r2-result-panel .client-bid-summary small { color: #000; font-size: 14px; font-weight: 500; }
.page-r2-simulation .r2-result-panel .client-bid-summary p { color: #1d1d1f; font-weight: 500; }
@media screen and (min-width: 801px) {
  .page-r2-simulation .r2-result-panel .result-with-mixed-bid .client-bid-summary p { margin-bottom: -20px; }
}
.page-r2-simulation .client-alternatives .precision-alternatives-grid { margin-top: 13px; }
.page-r2-simulation .r2-result-panel .client-alternatives .precision-alternatives-grid article { display: flex; flex-direction: column; min-width: 0; padding: 11px 13px; border: 1px solid var(--r2-line); background: var(--r2-result-surface); }
.page-r2-simulation .r2-result-panel .client-alternatives .precision-alternatives-grid article > span { margin-bottom: 7px; }
.page-r2-simulation .r2-result-panel .client-alternatives .precision-alternatives-grid article > strong { color: var(--r2-ink); }
.page-r2-simulation .r2-result-panel .client-alternatives .precision-alternatives-grid article > strong > em { color: #1d1d1f; font-size: 14px; }
.page-r2-simulation .r2-result-panel .client-alternatives .precision-alternatives-grid article > small { margin-top: auto; padding-top: 7px; color: #1d1d1f; font-size: 13px; font-weight: 500; }
.page-r2-simulation .precision-result-actions { border-color: var(--r2-line); padding: 15px 24px; }
.page-r2-simulation .precision-result-actions .btn-row { flex-wrap: wrap; }
.page-r2-simulation .precision-result-actions .pdf-cet-opt { font-weight: 500; }
.page-r2-simulation .precision-stale { background: #fff5e4; }
.page-r2-simulation .precision-result.is-stale .precision-result-body { opacity: .7; filter: none; }
.r2-simulation-shell.is-reviewing .precision-proposal-tools { display: none; }
.r2-simulation-shell.is-reviewing .client-credit-layout { gap: 10px; }
.r2-simulation-shell.is-reviewing .client-credit-card { padding: 10px 9px; }
.r2-simulation-shell.is-reviewing .client-credit-card > strong { font-size: clamp(18px,1.6vw,23px); }

.page-r2-comparison .comparison-result { border-color: var(--r2-line); border-radius: 12px; box-shadow: 0 2px 4px #233d4203,0 12px 30px #233d4204; }
.page-r2-comparison { --r2-comparison-surface: #f7fbfe; margin-top: 13px; }
.page-r2-comparison > .source-card { background: #fff; }
.page-r2-comparison .comparison-builder .comparison-input { background: var(--r2-comparison-surface); }
.page-r2-comparison .comparison-builder .input-head > span { background: #fff; }
.page-r2-comparison .comparison-head { justify-content: flex-end; padding: 16px 28px 12px; }
.page-r2-comparison .comparison-head h1 { font-size: clamp(24px,2.4vw,32px); }
.page-r2-comparison .comparison-head p:last-child { font-size: 13px; color: var(--r2-muted); }
.r2-comparison-tabs { display: flex; gap: 3px; width: fit-content; margin: 0 28px 20px; padding: 3px; border: 1px solid #c6d8d8; border-radius: 8px; background: #f4f8f8; }
.r2-comparison-tabs button { min-height: 44px; min-width: 148px; padding: 8px 16px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--r2-ink); font-size: 14px; font-weight: 650; }
.r2-comparison-tabs button.is-active { color: var(--r2-deep); background: white; border-color: #a9c6c6; box-shadow: none; }
.page-r2-comparison .scenario-basis { margin: 0 28px 18px; border: 1px solid var(--r2-line); border-radius: 8px; }
.page-r2-comparison .comparison-products { background: white; gap: 18px; padding: 0 28px 18px; }
.page-r2-comparison .product-card { border: 1px solid var(--r2-line); border-radius: 8px; padding: 20px; box-shadow: none; }
.page-r2-comparison :is(.consortium-card,.financing-card) { border-top: 1px solid var(--r2-line); box-shadow: none; }
.page-r2-comparison .flow-compare { margin: 0 28px 18px; border: 1px solid var(--r2-line); border-radius: 8px; padding: 18px; }
.page-r2-comparison .decision-strip { margin: 0 28px 24px; border: 1px solid var(--r2-line); border-radius: 8px; overflow: hidden; }
.page-r2-comparison .decision-access { align-self: stretch; }
.page-r2-comparison .decision-access p { margin: 0; padding: 0; background: transparent; font-size: 13px; }
.page-r2-comparison .comparison-submit { justify-content: flex-end; background: #fff; }
.page-r2-comparison .compact-fields-bank { align-items: start; row-gap: 0; }
.page-r2-comparison .result-actions { border-top: 1px solid var(--r2-line); }

.r2-explorer { margin: 0 28px 22px; padding: 22px 26px; border: 1px solid var(--r2-line); border-radius: 9px; }
.r2-explorer-head { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.r2-explorer-head h2 { margin: 0 0 6px; font-size: clamp(22px,2.2vw,29px); max-width: 650px; }
.r2-explorer-head p { margin: 0; color: var(--r2-muted); font-size: 12px; }
.r2-explorer-head a { font-size: 12px; color: var(--r2-accent); white-space: nowrap; }
.r2-milestone-label { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-top: 22px; }
.r2-milestone-label strong { color: var(--r2-deep); font-size: 11px; }
.r2-milestone-label span { color: var(--r2-muted); font-size: 10px; }
.r2-milestone-rail { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 7px 0 0; padding-bottom: 10px; border-bottom: 1px solid var(--r2-line); }
.r2-milestone-rail button { min-width: 0; min-height: 62px; padding: 10px 12px; border: 1px solid var(--r2-line); border-top: 2px solid var(--r2-line); border-radius: 7px; text-align: left; color: var(--r2-muted); background: #fbfcfc; cursor: pointer; transition: background .16s ease,border-color .16s ease; }
.r2-milestone-rail button:hover { border-color: #bfd3d3; background: #f3f7f7; }
.r2-milestone-rail button.is-active { border-color: #9fc4c4; border-top-color: var(--r2-accent); color: var(--r2-deep); background: #eaf3f3; }
.r2-milestone-rail strong,.r2-milestone-rail span { display: block; }
.r2-milestone-rail strong { font-size: 12px; }
.r2-milestone-rail span { margin-top: 3px; font-size: 10px; }
.r2-selected-moment { padding-top: 20px; }
.r2-selected-moment h3 { margin: 4px 0 15px; font-size: 22px; }
.r2-selected-values { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.r2-selected-values > div { min-width: 0; padding-left: 14px; border-left: 2px solid var(--r2-consortium); }
.r2-selected-values > .r2-value-financing { border-color: var(--r2-financing); }
.r2-selected-values span,.r2-selected-values strong,.r2-selected-values small { display: block; }
.r2-selected-values span { font-size: 12px; }
.r2-selected-values strong { margin: 4px 0 5px; font-size: clamp(23px,2.3vw,34px); color: var(--r2-deep); line-height: 1.1; }
.r2-selected-values small { color: var(--r2-muted); font-size: 10px; }
.r2-moment-details { margin: 14px 0 10px; }
.r2-moment-details[open] { min-height: 94px; }
.r2-moment-details summary { min-height: 36px; width: fit-content; margin-left: auto; padding: 7px 0; color: var(--r2-accent); font-size: 12px; cursor: pointer; }
.r2-moment-details dl { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 24px; margin: 7px 0; }
.r2-moment-details dl div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--r2-line); padding-bottom: 5px; }
.r2-moment-details dt,.r2-moment-details p { color: var(--r2-muted); font-size: 11px; }
.r2-moment-details dd { margin: 0; text-align: right; font-size: 11px; font-weight: 700; }
.r2-graph-controls { display: flex; justify-content: space-between; gap: 14px; margin-top: 10px; }
.r2-graph-controls > div { display: flex; border: 1px solid var(--r2-line); border-radius: 7px; overflow: hidden; }
.r2-graph-controls button { min-height: 42px; padding: 8px 12px; border: 0; background: transparent; color: var(--r2-muted); font-size: 11px; }
.r2-graph-controls button.is-active { background: var(--r2-soft); color: var(--r2-deep); font-weight: 700; }
.r2-graph-controls .r2-expand { color: var(--r2-accent); }
.r2-graph-frame { min-width: 0; }
.r2-graph-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 25px; margin: 2px 0 12px; color: var(--r2-ink); font-size: 11px; }
.r2-graph-legend span { display: inline-flex; align-items: center; gap: 7px; }
.r2-graph-legend i { display: inline-block; width: 27px; border-top: 3px solid var(--r2-consortium); }
.r2-graph-legend .r2-legend-financing i { border-top-color: var(--r2-financing); border-top-style: dashed; }
.r2-chart-svg { display: block; width: 100%; height: clamp(190px,23vw,285px); overflow: visible; cursor: crosshair; touch-action: manipulation; }
.r2-grid-line { stroke: var(--r2-line); stroke-width: 1; }
.r2-chart-line { fill: none; stroke-width: 3; vector-effect: non-scaling-stroke; }
.r2-chart-consortium { stroke: var(--r2-consortium); }
.r2-chart-financing { stroke: var(--r2-financing); stroke-dasharray: 7 5; }
.r2-chart-contemplation { stroke: var(--r2-accent); stroke-width: 1.5; stroke-dasharray: 4 4; opacity: .82; vector-effect: non-scaling-stroke; pointer-events: none; }
.r2-chart-contemplation-label { fill: var(--r2-accent); font: 700 10px "Segoe UI",sans-serif; letter-spacing: .02em; pointer-events: none; }
.r2-chart-selection { stroke: #7a9da1; stroke-width: 1.5; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.r2-chart-dot-consortium { fill: var(--r2-consortium); stroke: white; stroke-width: 2; vector-effect: non-scaling-stroke; }
.r2-chart-dot-financing { fill: var(--r2-financing); stroke: white; stroke-width: 2; vector-effect: non-scaling-stroke; }
.r2-chart-tick { fill: var(--r2-muted); font-size: 11px; font-family: "Segoe UI",sans-serif; }
.r2-month-slider { display: flex; align-items: center; gap: 8px; color: var(--r2-muted); font-size: 11px; }
.r2-month-slider input { flex: 1; min-width: 0; accent-color: var(--r2-accent); }
.r2-graph-note { margin: 12px 0 0; color: var(--r2-muted); font-size: 11px; line-height: 1.5; }
.r2-monthly-data { margin-top: 16px; border-top: 1px solid var(--r2-line); }
.r2-monthly-data summary { cursor: pointer; padding: 12px 0; color: var(--r2-accent); font-size: 12px; font-weight: 650; }
.r2-monthly-scroll { max-height: 420px; overflow: auto; border: 1px solid var(--r2-line); }
.r2-monthly-data table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 11px; }
.r2-monthly-data caption { caption-side: top; padding: 0 8px 7px; color: var(--r2-muted); text-align: left; font-size: 11px; }
.r2-monthly-data th,.r2-monthly-data td { padding: 8px; border-bottom: 1px solid var(--r2-line); text-align: right; white-space: nowrap; }
.r2-monthly-data th:nth-child(n+2),.r2-monthly-data td:nth-child(n+2) { text-align: center; }
.r2-monthly-data thead th { position: sticky; top: 0; background: var(--r2-soft); }
.r2-monthly-data tbody tr.is-selected { background: #e8f0f0; }
.r2-monthly-data td:first-child,.r2-monthly-data th:first-child { text-align: left; }
.r2-monthly-data tbody button { min-width: 32px; min-height: 30px; border: 0; background: transparent; color: var(--r2-accent); font-weight: 700; }
.r2-graph-dialog { width: min(1000px,calc(100vw - 32px)); max-height: 90dvh; padding: 25px; border: 1px solid var(--r2-line); border-radius: 10px; color: var(--r2-ink); background: white; box-shadow: 0 18px 60px #1a313442; }
.r2-graph-dialog::backdrop { background: #172f3499; backdrop-filter: blur(3px); }
.r2-dialog-head { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.r2-dialog-head h2 { margin: 4px 0 10px; font-size: 24px; }
.r2-graph-dialog .r2-chart-svg { height: min(48dvh,380px); }
.r2-graph-dialog > p { font-size: 12px; color: var(--r2-muted); }
.r2-analysis-unavailable { margin: 20px 28px; }

.incc-result .incc-table th:nth-child(n+4),.incc-result .incc-table td:nth-child(n+4) { text-align: center; }
.incc-result .incc-table tr.is-contemplation td:nth-child(3) { padding: 6px 8px; }

@media (min-width: 1200px) {
  .incc-result .incc-table { min-width: 0; table-layout: auto; font-size: 11px; }
  .incc-result .incc-table th,.incc-result .incc-table td { padding-inline: 5px; }
  .incc-result .incc-table th { white-space: normal; line-height: 1.2; }
  .incc-result .incc-table th:last-child,.incc-result .incc-table td:last-child { min-width: 0; white-space: nowrap; }
}

@media (min-width: 1200px) {
  .r2-simulation-shell.is-reviewing .r2-input-groups { grid-template-columns: minmax(0,1fr); gap: 5px; }
  .r2-simulation-shell.is-reviewing .r2-input-groups button { min-height: 52px; }
  .r2-simulation-shell.is-reviewing .r2-premise-summary { display: block; }
  .r2-simulation-shell.is-reviewing .r2-premise-summary ul { margin-top: 8px; }
  .r2-simulation-shell.is-reviewing .r2-premise-summary > p { margin-top: 6px; }
  .r2-simulation-shell.is-reviewing .precision-input-group { display: block; }
  .r2-simulation-shell.is-reviewing .precision-group-label { margin-bottom: 9px; }
  .r2-simulation-shell.is-reviewing .precision-input-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .r2-simulation-shell.is-reviewing .precision-bid-grid { grid-template-columns: minmax(0,1fr); }
  .r2-simulation-shell.is-reviewing .precision-bid-grid > * { grid-column: 1 / -1; }
  .r2-simulation-shell.is-reviewing .precision-span-2,
  .r2-simulation-shell.is-reviewing .precision-span-3 { grid-column: 1 / -1; }
  .r2-simulation-shell.is-reviewing .precision-result-grid { grid-template-columns: minmax(0,1.04fr) minmax(0,.96fr); }
}
@media (max-width: 1199px) {
  .r2-simulation-shell.is-reviewing { display: block; }
  .r2-simulation-shell.is-reviewing .r2-config-panel { border-right: 0; border-bottom: 1px solid var(--r2-line); }
  .page-r2-simulation .precision-input-group { grid-template-columns: 145px minmax(0,1fr); }
  .page-r2-simulation .precision-proposal-header { grid-template-columns: minmax(200px,.7fr) minmax(0,1.5fr); }
}
@media (max-width: 800px) {
  .page-r2-simulation,.page-r2-comparison { width: min(100%,calc(100% - 28px)); }
  .page-r2-simulation .precision-input-group { display: block; }
  .page-r2-simulation .precision-group-label { margin-bottom: 10px; }
  .page-r2-simulation .precision-input-group:has(.precision-acquisition-grid) .precision-group-label { padding-top: 2px; }
  .page-r2-simulation .precision-proposal-header { grid-template-columns: 1fr; }
  .page-r2-simulation .precision-proposal-context { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px 0 0; border-left: 0; border-top: 1px solid #e2e9ec; }
  .page-r2-simulation .precision-proposal-context div:not(:first-child) { padding-left: 0; border-left: 0; }
  .page-r2-simulation .precision-proposal-context div:nth-child(even) { padding-left: 12px; border-left: 1px solid #e2e9ec; }
  .r2-input-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .r2-premise-summary { display: block; }
  .r2-premise-summary ul { margin-top: 8px; }
  .r2-premise-summary > p { margin-top: 6px; }
  .r2-calculate-check { display: block; }
  .r2-calculate-check-actions { justify-content: flex-end; margin-top: 11px; }
  .page-r2-simulation .precision-credit { padding-right: 2px; }
  .page-r2-simulation .precision-payments,.page-r2-simulation .client-timeline { padding-left: 2px; border-left: 0; }
  .page-r2-simulation .precision-result-grid { display: block; }
  .page-r2-comparison .comparison-head { padding: 18px 18px 12px; }
  .r2-comparison-tabs { margin: 0 18px 16px; width: calc(100% - 36px); }
  .r2-comparison-tabs button { flex: 1; min-width: 0; }
  .page-r2-comparison .scenario-basis,.page-r2-comparison .flow-compare,.page-r2-comparison .decision-strip { margin-left: 18px; margin-right: 18px; }
  .page-r2-comparison .decision-access { grid-column: 1 / -1; }
  .page-r2-comparison .comparison-products { padding-left: 18px; padding-right: 18px; }
  .r2-explorer { margin: 0 18px 18px; padding: 18px; }
}
@media (max-width: 560px) {
  .module-nav { display: flex; align-items: stretch; min-height: 48px; gap: 3px; padding: 0 12px; overflow-x: auto; scroll-snap-type: x proximity; mask-image: linear-gradient(to right,#000 0,#000 calc(100% - 16px),transparent 100%); }
  .module-nav .nav-primary,.module-nav .nav-tools,.module-nav .nav-support { display: contents; }
  .module-nav .module-link { flex: 0 0 auto; min-height: 48px; padding: 0 14px; border: 0; border-radius: 0; background: transparent; font-size: 12px; scroll-snap-align: start; }
  .module-nav .module-link.active::after { inset: auto 14px 0; }
  .page-r2-simulation,.page-r2-comparison { width: calc(100% - 24px); }
  .r2-workspace-heading { align-items: start; }
  .r2-workspace-heading h1 { font-size: 23px; }
  .r2-workspace-heading .btn { max-width: 130px; }
  .page-r2-simulation .precision-form-header { padding: 13px 15px 10px; }
  .r2-input-groups { gap: 6px; padding: 9px 11px; }
  .r2-input-groups button { grid-template-columns: auto minmax(0,1fr); min-height: 66px; padding: 8px; }
  .r2-group-action { grid-column: 2; justify-self: start; margin-top: -4px; }
  .r2-premise-summary { padding: 10px 15px 11px; }
  .r2-premise-summary li:not(:last-child)::after { margin-inline: 6px; }
  .r2-calculate-check { margin: 12px 15px 0; }
  .r2-calculate-check-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .page-r2-simulation .precision-input-groups { padding: 0 15px 5px; }
  .page-r2-simulation .form-footer { display: block; padding: 13px 15px; }
  .page-r2-simulation .form-footer .btn-row { display: grid; margin-top: 8px; }
  .page-r2-simulation .precision-proposal-header { padding: 11px 15px; }
  .page-r2-simulation .precision-result-body { margin: 18px 0 15px; padding: 0 15px; }
  .page-r2-simulation .client-credit-card:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 7px 1px 12px; background: transparent; }
  .page-r2-simulation .client-credit-card:first-child > span { font-size: 11px; }
  .page-r2-simulation .client-credit-card:first-child > strong { flex: 0 0 auto; margin: 0; font-size: 17px; }
  .page-r2-simulation .client-credit-card:first-child > small { display: none; }
  .page-r2-simulation .client-credit-card-released { padding: 14px; }
  .page-r2-simulation .client-credit-card-released > strong { font-size: 29px; }
  .page-r2-simulation .precision-section { padding-block: 13px; }
  .page-r2-simulation .precision-result-actions { padding: 14px 15px; }
  .page-r2-simulation .precision-result-actions .btn-row { grid-template-columns: 1fr 1fr; }
  .r2-review-reference { margin: 12px 15px 0; }
  .r2-review-reference dl { flex-wrap: wrap; }
  .page-r2-comparison .comparison-head { display: flex; padding: 15px 15px 12px; }
  .page-r2-comparison .comparison-head .btn { margin-top: 0; }
  .r2-comparison-tabs { margin: 0 15px 14px; width: calc(100% - 30px); }
  .r2-comparison-tabs button { padding: 8px 6px; font-size: 12px; }
  .page-r2-comparison .scenario-basis,.page-r2-comparison .flow-compare,.page-r2-comparison .decision-strip { margin-left: 15px; margin-right: 15px; }
  .page-r2-comparison .comparison-products { padding-left: 15px; padding-right: 15px; }
  .r2-explorer { margin: 0 15px 15px; padding: 16px; }
  .r2-explorer-head { display: block; }
  .r2-explorer-head h2 { font-size: 22px; }
  .r2-explorer-head a { display: inline-block; margin-top: 12px; }
  .r2-milestone-label { display: block; margin-top: 18px; }
  .r2-milestone-label strong,.r2-milestone-label span { display: block; }
  .r2-milestone-label span { margin-top: 3px; }
  .r2-milestone-rail { display: flex; gap: 7px; margin-top: 7px; padding-bottom: 9px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
  .r2-milestone-rail button { flex: 0 0 116px; min-height: 62px; padding: 10px; scroll-snap-align: start; }
  .r2-milestone-rail strong { font-size: 11px; }
  .r2-milestone-rail span { font-size: 10px; }
  .r2-selected-moment h3 { font-size: 19px; }
  .r2-selected-values { gap: 11px; }
  .r2-selected-values > div { padding-left: 9px; }
  .r2-selected-values strong { font-size: 22px; overflow-wrap: anywhere; }
  .r2-moment-details dl { display: block; }
  .r2-moment-details dl div { margin-bottom: 8px; }
  .r2-graph-controls button { padding: 7px 6px; font-size: 10px; }
  .r2-chart-svg { height: 205px; }
  .r2-chart-tick { display: none; }
  .r2-month-slider { flex-wrap: wrap; }
  .r2-month-slider input { flex-basis: 100%; }
  .r2-graph-dialog { padding: 16px; }
  .r2-graph-dialog .r2-chart-svg { height: 240px; }
}
@media (prefers-reduced-motion: reduce) {
  .page-r2-simulation .btn,.page-r2-comparison .btn,.r2-input-groups button,.r2-milestone-rail button { transition: none; }
  .page-r2-simulation .precision-input-group:not([hidden]) { animation: none; }
}

@keyframes r2-panel-in {
  from { opacity: .55; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Ajustes pontuais das anotações, sem tingir superfícies compartilhadas. */
@media screen {
  .app-form { background: #f7fbfe; }
  .page-r2-simulation .r2-config-panel { background: #f7fbfe; }
  .page-r2-simulation .r2-config-panel :is(.proposal-identity input,.precision-form-real .field input,.precision-form-real .field select,.precision-form-real .asset-trigger) {
    border-color: #c4d0d6;
    background: #fff;
    color: #172228;
    font-weight: 500;
  }
  .page-r2-simulation .r2-config-panel :is(.proposal-identity input,.precision-form-real .field input)::placeholder {
    color: #65737a;
    opacity: 1;
  }
  .page-r2-simulation .r2-config-panel :is(.proposal-identity input,.precision-form-real .field input):is(:autofill,:-webkit-autofill) {
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
    box-shadow: 0 0 0 1000px #fff inset;
    -webkit-text-fill-color: #172228;
  }
  .page-r2-simulation .r2-config-panel :is(.precision-form-real .control .affix,.precision-form-real .asset-chevron,.precision-form-real .term-suggest-btn) { color: #34434a; }
  .page-r2-comparison .comparison-builder .comparison-input { box-shadow: none; }
  .page-r2-comparison .comparison-products .product-ref,
  .page-r2-comparison .comparison-products .aligned-metrics dt,
  .page-r2-comparison .decision-access p { font-weight: 500; }
  .page-r2-comparison .decision-strip span,
  .page-r2-comparison .scenario-facts dt,
  .page-r2-comparison .own-bid-context span { color: #000; }
  .page-incc > .source-card,
  .page-incc .incc-builder :is(.workspace-head,.form-section,.section-label,.fields,.form-footer) { background: #fff; }
}

/* Resultado completo em janelas desktop baixas; telas menores mantêm altura natural. */
@media (min-width: 1200px) and (min-height: 620px) and (max-height: 720px) {
  .page-r2-simulation:has(.r2-result-panel):not(:has(.r2-simulation-shell.is-reviewing)) { padding-bottom: 8px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .precision-proposal-header { padding-block: 10px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .precision-result-body { margin-block: 14px 10px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .precision-section { padding-block: 11px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .client-credit-card { padding-block: 11px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .client-bid-summary { margin-top: 12px; padding-top: 10px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .client-alternatives .precision-alternatives-grid { margin-top: 9px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .precision-result-actions { padding-block: 10px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .pdf-export { flex-direction: row; align-items: center; justify-content: flex-end; gap: 18px; }
  .page-r2-simulation .r2-simulation-shell:not(.is-reviewing) .pdf-cet-opt { flex: 0 0 auto; }
}
