:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #172033;
  background: #f2f5f9;
  font-synthesis: none;
  --navy: #102f4c;
  --navy-2: #173f62;
  --blue: #3b82f6;
  --green: #16a34a;
  --orange: #f59e0b;
  --purple: #8b5cf6;
  --cyan: #06b6d4;
  --rose: #f43f5e;
}
* { box-sizing: border-box; }
body { margin: 0; }
.topbar {
  padding: 26px max(22px, calc((100vw - 1240px) / 2));
  background: linear-gradient(120deg, var(--navy), #0d2740);
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.brand h1 { margin: 2px 0; font-size: 34px; line-height: 1; }
.brand p { margin: 8px 0 0; color: #cbd8e5; }
.eyebrow, .section-kicker {
  font-size: 10px;
  letter-spacing: .2em;
  font-weight: 800;
}
.eyebrow { color: #b9ccdd; }
.section-kicker { color: #64748b; }
.header-actions { display: flex; gap: 10px; align-items: center; }
.status, .basis-badge {
  padding: 9px 13px;
  border-radius: 999px;
  font-size: 12px;
}
.status { background: rgba(255,255,255,.12); }
.status.online { background: #dcfce7; color: #166534; }
.status.offline { background: #fee2e2; color: #991b1b; }
.basis-badge { background: rgba(255,255,255,.08); color: #dbe8f3; }
.container { max-width: 1240px; margin: 24px auto 60px; padding: 0 20px; }
.quote, .notice, .panel, .kpi-card {
  background: white;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(15,23,42,.055);
}
.quote {
  border-left: 4px solid var(--navy);
  padding: 18px 22px;
  font-size: 17px;
}
.notice {
  margin-top: 12px;
  padding: 12px 16px;
  color: #475569;
  font-size: 13px;
  border: 1px solid #e2e8f0;
  box-shadow: none;
}
.kpi-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr 1fr;
  gap: 14px;
  margin: 18px 0;
}
.kpi-card { padding: 20px; position: relative; overflow: hidden; }
.kpi-card.featured {
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: white;
}
.kpi-card span { display: block; color: #64748b; font-size: 13px; }
.kpi-card.featured span, .kpi-card.featured small { color: #cbd8e5; }
.kpi-card strong { display: block; font-size: 28px; margin: 10px 0 6px; }
.kpi-card small { color: #94a3b8; }
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 0.82fr;
  gap: 16px;
}
.panel { padding: 22px; margin-bottom: 16px; }
.span-two { grid-column: span 2; }
.panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 16px;
}
.panel-heading h2 { margin: 4px 0 3px; font-size: 20px; }
.panel-heading p { margin: 0; color: #64748b; font-size: 13px; }
.period-control { display: flex; padding: 3px; background: #eef2f7; border-radius: 9px; }
.period-control button {
  border: 0; background: transparent; color: #64748b;
  padding: 7px 10px; border-radius: 7px; cursor: pointer;
}
.period-control button.active { background: white; color: var(--navy); box-shadow: 0 2px 7px rgba(15,23,42,.08); }
.chart-box { height: 285px; position: relative; }
.chart-box svg { width: 100%; height: 100%; overflow: visible; }
.grid-line { stroke: #e5eaf0; stroke-width: 1; }
.axis-label { fill: #8492a6; font-size: 10px; }
.line-area { fill: url(#areaGradient); }
.line-path { fill: none; stroke: var(--blue); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.line-point { fill: white; stroke: var(--blue); stroke-width: 2; }
.empty-chart {
  height: 100%; display: grid; place-items: center;
  color: #94a3b8; border: 1px dashed #dbe3ec; border-radius: 10px;
}
.allocation-content { display: grid; gap: 20px; justify-items: center; }
.donut {
  width: 180px; height: 180px; border-radius: 50%;
  display: grid; place-items: center;
  background: conic-gradient(#e2e8f0 0 100%);
  position: relative;
}
.donut::after {
  content: ""; position: absolute; width: 116px; height: 116px;
  border-radius: 50%; background: white;
}
.donut > div { z-index: 1; text-align: center; }
.donut strong { display: block; font-size: 18px; }
.donut span { font-size: 11px; color: #94a3b8; }
.legend { width: 100%; display: grid; gap: 9px; }
.legend-item {
  display: grid; grid-template-columns: 10px 1fr auto; gap: 8px;
  align-items: center; font-size: 12px;
}
.legend-dot { width: 9px; height: 9px; border-radius: 50%; }
.legend-value { color: #64748b; }
.bar-chart { min-height: 260px; display: flex; align-items: stretch; gap: 8px; overflow-x: auto; padding: 8px 2px 0; }
.bar-group { min-width: 52px; flex: 1; display: grid; grid-template-rows: 1fr auto; gap: 7px; }
.bars { display: flex; align-items: flex-end; justify-content: center; gap: 4px; border-bottom: 1px solid #dfe6ee; }
.bar { width: 13px; min-height: 2px; border-radius: 4px 4px 0 0; }
.bar.purchase { background: var(--blue); }
.bar.sale { background: var(--orange); }
.bar-label { text-align: center; font-size: 10px; color: #718096; }
.ranking-list { display: grid; gap: 14px; }
.ranking-item { display: grid; gap: 6px; }
.ranking-row { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; }
.ranking-row small { color: #64748b; }
.progress { height: 7px; background: #edf1f6; border-radius: 999px; overflow: hidden; }
.progress > div { height: 100%; background: linear-gradient(90deg, var(--blue), var(--cyan)); border-radius: inherit; }
.operations-panel details > summary {
  cursor: pointer; font-size: 16px; font-weight: 750; color: var(--navy);
}
.forms-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 22px; }
h2 { margin: 0 0 16px; }
form { display: grid; gap: 12px; }
label { display: grid; gap: 6px; font-size: 13px; color: #475569; }
input, select {
  width: 100%; border: 1px solid #cbd5e1; border-radius: 9px;
  padding: 11px 12px; font: inherit; background: white;
}
input:focus, select:focus { outline: 2px solid #93c5fd; border-color: #2563eb; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
button {
  border: 0; border-radius: 9px; background: var(--navy); color: white;
  padding: 11px 15px; font-weight: 700; cursor: pointer;
}
button:hover { filter: brightness(1.08); }
button.secondary { background: #e2e8f0; color: #172033; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 900px; }
th, td { padding: 13px 10px; border-bottom: 1px solid #e2e8f0; text-align: left; }
th { font-size: 11px; color: #64748b; text-transform: uppercase; letter-spacing: .04em; }
td { font-size: 13px; }
td small { color: #64748b; }
.empty { text-align: center; color: #94a3b8; padding: 30px; }
.toast {
  position: fixed; right: 22px; bottom: 22px; max-width: 380px;
  padding: 13px 16px; border-radius: 10px; color: white; background: var(--navy);
  box-shadow: 0 8px 24px rgba(15,23,42,.25); opacity: 0;
  transform: translateY(12px); pointer-events: none; transition: .2s ease;
}
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background: #991b1b; }
@media (max-width: 1040px) {
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .allocation-panel, .ranking-panel { grid-column: span 1; }
}
@media (max-width: 760px) {
  .topbar { align-items: flex-start; gap: 18px; }
  .header-actions { align-items: flex-end; flex-direction: column; }
  .dashboard-grid, .forms-grid { grid-template-columns: 1fr; }
  .span-two, .allocation-panel, .ranking-panel { grid-column: span 1; }
}
@media (max-width: 560px) {
  .kpi-grid, .form-grid { grid-template-columns: 1fr; }
  .basis-badge { display: none; }
}

.quote-button {
  background: #dcfce7;
  color: #166534;
  padding: 9px 13px;
  font-size: 12px;
}
.quote-button:disabled {
  opacity: .55;
  cursor: wait;
}
.quote-positive { color: #15803d; }
.quote-negative { color: #b91c1c; }
.quote-stale {
  display: inline-block;
  padding: 3px 7px;
  border-radius: 999px;
  background: #fef3c7;
  color: #92400e;
  font-size: 10px;
}
.quote-fresh {
  display: inline-block;
  padding: 3px 7px;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 10px;
}

.import-panel details > summary {
  cursor: pointer;
  font-size: 18px;
  font-weight: 800;
  color: var(--navy);
}
.import-layout {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 28px;
  margin-top: 20px;
}
.help {
  color: #64748b;
  font-size: 13px;
  line-height: 1.5;
}
#importfolio-file,
#portfolio-file {
  margin-bottom: 10px;
}
#portfolio-import-text {
  width: 100%;
  resize: vertical;
  min-height: 235px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px;
  font: 12px/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.import-actions {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-top: 10px;
}
.check-label {
  display: flex;
  grid-template-columns: none;
  align-items: center;
  gap: 8px;
}
.check-label input {
  width: auto;
}
.import-summary {
  font-size: 12px;
  color: #64748b;
  background: #eef2f7;
  padding: 7px 10px;
  border-radius: 999px;
}
.panel-heading.compact {
  margin-bottom: 8px;
}
.import-table-wrap {
  max-height: 300px;
  overflow: auto;
  margin-bottom: 12px;
}
.row-valid { color: #15803d; }
.row-invalid { color: #b91c1c; }
#commit-import-button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
@media (max-width: 900px) {
  .import-layout {
    grid-template-columns: 1fr;
  }
}

.performance-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.performance-kpis {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-bottom: 18px;
}
.performance-kpis > div {
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  background: #f8fafc;
}
.performance-kpis span {
  display: block;
  color: #64748b;
  font-size: 11px;
  min-height: 30px;
}
.performance-kpis strong {
  display: block;
  margin-top: 6px;
  font-size: 20px;
}
.performance-chart {
  height: 260px;
}
.performance-footnote {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #64748b;
  font-size: 11px;
  margin-top: 12px;
}
@media (max-width: 980px) {
  .performance-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 560px) {
  .performance-kpis {
    grid-template-columns: 1fr;
  }
  .performance-footnote {
    flex-direction: column;
  }
}

.settings-panel[hidden] {
  display: none;
}
.settings-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
}
.settings-card {
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  padding: 20px;
  background: #f8fafc;
}
.settings-card h3 {
  margin-top: 0;
}
.settings-card label:not(.switch-row) {
  display: grid;
  gap: 8px;
}
.settings-card input[type="password"] {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px;
}
.settings-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.settings-status {
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef2f7;
}
.settings-status.configured {
  color: #166534;
  background: #dcfce7;
}
.settings-status.missing {
  color: #991b1b;
  background: #fee2e2;
}
.switch-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px 0;
  border-bottom: 1px solid #e2e8f0;
}
.switch-row input {
  width: auto;
  margin-top: 3px;
}
.switch-row span {
  display: grid;
  gap: 4px;
}
.switch-row small {
  color: #64748b;
}
.danger-outline {
  color: #b91c1c;
  background: transparent;
  border: 1px solid #fecaca;
}
.settings-security-note {
  margin-top: 16px;
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 850px) {
  .settings-grid {
    grid-template-columns: 1fr;
  }
}

.import-mode {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.import-mode label {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 10px;
  background: #f8fafc;
}
.import-mode input {
  width: auto;
  margin-top: 3px;
}
.import-mode span {
  display: grid;
  gap: 4px;
}
.import-mode small {
  color: #64748b;
  line-height: 1.4;
}
.replace-warning {
  margin-top: 12px;
  padding: 11px 12px;
  border-radius: 10px;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fde68a;
  font-size: 12px;
  line-height: 1.45;
}
.replace-warning[hidden] {
  display: none;
}
.import-summary-details {
  margin-top: 8px;
  color: #475569;
  font-size: 12px;
  line-height: 1.5;
}

.import-preview {
  overflow-x: auto;
}
.import-preview table {
  min-width: 920px;
}

.goals-panel { margin-bottom: 22px; }
.goal-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.goal-kpis article,
.goal-chart-card,
.goal-scenarios-card {
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  padding: 18px;
  background: #f8fafc;
}
.goal-kpis span {
  display: block;
  color: #64748b;
  font-size: 13px;
  margin-bottom: 8px;
}
.goal-kpis strong { font-size: 22px; }
.goal-progress { margin-bottom: 22px; }
.goal-progress-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.goal-progress-track {
  height: 16px;
  border-radius: 999px;
  overflow: hidden;
  background: #e2e8f0;
}
#goal-progress-bar {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2563eb, #22c55e);
}
.goal-grid {
  display: grid;
  grid-template-columns: 1.4fr .6fr;
  gap: 18px;
}
.goal-chart {
  min-height: 250px;
  display: flex;
  align-items: end;
  gap: 8px;
  padding-top: 16px;
}
.goal-chart-column {
  flex: 1;
  display: grid;
  align-items: end;
  gap: 6px;
}
.goal-chart-bar {
  min-height: 4px;
  border-radius: 8px 8px 0 0;
  background: linear-gradient(180deg, #3b82f6, #1d4ed8);
}
.goal-chart-column small {
  text-align: center;
  color: #64748b;
  font-size: 10px;
}
.goal-scenario {
  padding: 12px 0;
  border-bottom: 1px solid #e2e8f0;
}
.goal-scenario:last-child { border-bottom: 0; }
.goal-scenario strong,
.goal-scenario span { display: block; }
.goal-scenario span {
  color: #64748b;
  margin-top: 4px;
}
.settings-card input[type="number"] {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 12px;
}
@media (max-width: 900px) {
  .goal-kpis { grid-template-columns: repeat(2, 1fr); }
  .goal-grid { grid-template-columns: 1fr; }
}

.performance-reset-card p {
  color: #64748b;
  line-height: 1.5;
}
.performance-reset-card .danger-outline {
  margin-top: 10px;
}

.allocation-executive-panel { margin-bottom: 22px; }
.allocation-executive-grid {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 20px;
}
.allocation-donut-card,
.allocation-bars-card,
.allocation-alerts-grid > div {
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  padding: 18px;
  background: #f8fafc;
}
.allocation-donut {
  width: 240px;
  height: 240px;
  border-radius: 50%;
  margin: 18px auto;
  position: relative;
  display: grid;
  place-items: center;
}
.allocation-donut::after {
  content: "";
  width: 132px;
  height: 132px;
  border-radius: 50%;
  background: #fff;
  position: absolute;
}
.allocation-donut-center {
  position: relative;
  z-index: 1;
  text-align: center;
}
.allocation-donut-center strong,
.allocation-donut-center span {
  display: block;
}
.allocation-donut-center strong { font-size: 20px; }
.allocation-donut-center span {
  color: #64748b;
  margin-top: 4px;
}
.allocation-legend {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.allocation-legend-item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
}
.allocation-legend-item span:first-child::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin-right: 6px;
  background: var(--legend-color);
}
.allocation-bar-item {
  margin-bottom: 16px;
}
.allocation-bar-head {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  margin-bottom: 7px;
}
.allocation-bar-track {
  position: relative;
  height: 14px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}
.allocation-bar-current {
  height: 100%;
  border-radius: inherit;
  background: #2563eb;
}
.allocation-bar-target {
  position: absolute;
  top: -2px;
  bottom: -2px;
  width: 3px;
  background: #111827;
}
.allocation-alerts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 20px;
}
.allocation-alert,
.allocation-ranking-row {
  padding: 11px 0;
  border-bottom: 1px solid #e2e8f0;
}
.allocation-alert:last-child,
.allocation-ranking-row:last-child {
  border-bottom: 0;
}
.allocation-alert strong,
.allocation-ranking-row strong {
  display: block;
}
.allocation-alert span,
.allocation-ranking-row span {
  color: #64748b;
  font-size: 13px;
}
.allocation-alert.ok strong { color: #15803d; }
.allocation-alert.above strong { color: #b45309; }
.allocation-alert.below strong { color: #b91c1c; }
#allocation-target-total {
  display: block;
  margin-top: 10px;
  font-weight: 700;
}
@media (max-width: 900px) {
  .allocation-executive-grid,
  .allocation-alerts-grid {
    grid-template-columns: 1fr;
  }
}

.rebalancing-panel { margin-bottom: 22px; }
.rebalancing-controls {
  display: flex;
  align-items: end;
  gap: 12px;
}
.rebalancing-controls label {
  display: grid;
  gap: 6px;
  color: #64748b;
  font-size: 13px;
}
.rebalancing-controls input {
  width: 170px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  padding: 11px 12px;
  font: inherit;
}
.rebalancing-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.rebalancing-summary article,
.rebalancing-plan-card,
.rebalancing-priority-card,
.rebalancing-table-card {
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  padding: 18px;
  background: #f8fafc;
}
.rebalancing-summary span {
  display: block;
  color: #64748b;
  font-size: 13px;
  margin-bottom: 8px;
}
.rebalancing-summary strong {
  font-size: 20px;
}
.rebalancing-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 18px;
  margin-bottom: 18px;
}
.rebalancing-plan-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 16px;
  padding: 13px 0;
  border-bottom: 1px solid #e2e8f0;
}
.rebalancing-plan-row:last-child {
  border-bottom: 0;
}
.rebalancing-plan-row span,
.rebalancing-priority-item span {
  color: #64748b;
  font-size: 13px;
}
.rebalancing-plan-track {
  grid-column: 1 / -1;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: #e2e8f0;
}
.rebalancing-plan-fill {
  height: 100%;
  border-radius: inherit;
  background: #2563eb;
}
.rebalancing-priority-item {
  padding: 13px 0;
  border-bottom: 1px solid #e2e8f0;
}
.rebalancing-priority-item:last-child {
  border-bottom: 0;
}
.rebalancing-candidates {
  margin-top: 6px;
  font-size: 13px;
  color: #334155;
}
.rebalancing-table-card {
  overflow: hidden;
}
.rebalancing-table {
  width: 100%;
  border-collapse: collapse;
}
.rebalancing-table th,
.rebalancing-table td {
  padding: 13px 10px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  white-space: nowrap;
}
.rebalancing-table th {
  color: #64748b;
  font-size: 12px;
}
.rebalancing-positive { color: #15803d; }
.rebalancing-negative { color: #b91c1c; }
.rebalancing-neutral { color: #475569; }
@media (max-width: 900px) {
  .rebalancing-summary {
    grid-template-columns: repeat(2, 1fr);
  }
  .rebalancing-grid {
    grid-template-columns: 1fr;
  }
  .rebalancing-controls {
    align-items: stretch;
    flex-direction: column;
  }
  .rebalancing-controls input {
    width: 100%;
  }
}

.contribution-intelligence-panel {
  margin-bottom: 22px;
}
.contribution-intelligence-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 20px;
}
.contribution-intelligence-summary article,
.contribution-purchases-card,
.contribution-impact-card,
.contribution-table-card {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.contribution-intelligence-summary span {
  display: block;
  color: #64748b;
  font-size: 13px;
  margin-bottom: 8px;
}
.contribution-intelligence-summary strong {
  font-size: 20px;
}
.contribution-intelligence-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
  margin-bottom: 18px;
}
.contribution-purchase-item,
.contribution-impact-item {
  padding: 13px 0;
  border-bottom: 1px solid #e2e8f0;
}
.contribution-purchase-item:last-child,
.contribution-impact-item:last-child {
  border-bottom: 0;
}
.contribution-purchase-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.contribution-purchase-item span,
.contribution-impact-item span {
  display: block;
  color: #64748b;
  font-size: 13px;
  margin-top: 4px;
}
.contribution-table-card {
  overflow: hidden;
}
.contribution-table {
  width: 100%;
  border-collapse: collapse;
}
.contribution-table th,
.contribution-table td {
  padding: 13px 10px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  white-space: nowrap;
}
.contribution-table th {
  color: #64748b;
  font-size: 12px;
}
.contribution-mode {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  font-size: 11px;
  font-weight: 700;
}
.contribution-disclaimer {
  margin: 14px 0 0;
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 900px) {
  .contribution-intelligence-summary {
    grid-template-columns: repeat(2, 1fr);
  }
  .contribution-intelligence-grid {
    grid-template-columns: 1fr;
  }
}

.goal-settings-card button {
  margin-top: 12px;
  width: 100%;
}
.settings-feedback {
  display: block;
  margin-top: 10px;
  line-height: 1.4;
}
.settings-feedback.pending {
  color: #b45309;
}
.settings-feedback.saved {
  color: #15803d;
}
.settings-feedback.error {
  color: #b91c1c;
}

.financial-intelligence-panel {
  margin-bottom: 22px;
}
.financial-intelligence-grid {
  display: grid;
  grid-template-columns: 1.25fr .875fr .875fr;
  gap: 16px;
}
.financial-assumptions-card,
.financial-income-card {
  padding: 20px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.financial-assumptions-card h3 {
  margin: 0 0 14px;
}
.financial-assumptions-list {
  margin: 0;
  display: grid;
  gap: 12px;
}
.financial-assumptions-list div {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e2e8f0;
}
.financial-assumptions-list div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.financial-assumptions-list dt {
  color: #64748b;
}
.financial-assumptions-list dd {
  margin: 0;
  font-weight: 800;
  text-align: right;
}
.financial-income-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 190px;
}
.financial-income-card > span {
  color: #64748b;
  font-size: 13px;
}
.financial-income-card > strong {
  margin: 12px 0 8px;
  font-size: 28px;
}
.financial-income-card > small,
.goal-kpis article small {
  color: #64748b;
  line-height: 1.4;
}
.financial-income-card.featured {
  color: white;
  border-color: transparent;
  background: linear-gradient(
    135deg,
    var(--navy),
    var(--navy-2)
  );
}
.financial-income-card.featured > span,
.financial-income-card.featured > small {
  color: #cbd8e5;
}
.financial-transparency-note {
  margin-top: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  color: #475569;
  background: #eef2f7;
  font-size: 12px;
  line-height: 1.5;
}
.goal-kpis article small {
  display: block;
  margin-top: 7px;
}
@media (max-width: 900px) {
  .financial-intelligence-grid {
    grid-template-columns: 1fr;
  }
  .financial-income-card {
    min-height: 150px;
  }
}

.financial-simulator-panel { margin-bottom: 22px; }
.financial-simulator-controls {
  display: flex;
  gap: 14px;
  margin-bottom: 18px;
}
.financial-simulator-controls label {
  display: grid;
  gap: 6px;
  color: #64748b;
  font-size: 13px;
}
.financial-simulator-controls input {
  width: 210px;
  padding: 11px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font: inherit;
}
.financial-simulator-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.financial-simulator-summary article,
.financial-simulator-chart-card,
.financial-simulator-table-card {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.financial-simulator-summary article span,
.financial-simulator-summary article small {
  display: block;
  color: #64748b;
}
.financial-simulator-summary article strong {
  display: block;
  margin: 8px 0;
  font-size: 24px;
}
.financial-simulator-summary article.featured {
  color: white;
  border-color: transparent;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
}
.financial-simulator-summary article.featured span,
.financial-simulator-summary article.featured small {
  color: #cbd8e5;
}
.financial-simulator-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
}
#financial-simulation-chart {
  width: 100%;
  min-height: 320px;
}
.simulation-legend {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.simulation-legend span::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 4px;
  margin-right: 7px;
  vertical-align: middle;
  background: var(--legend-color);
}
.simulation-table {
  width: 100%;
  border-collapse: collapse;
}
.simulation-table th,
.simulation-table td {
  padding: 12px 9px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  white-space: nowrap;
}
.simulation-table th {
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 900px) {
  .financial-simulator-controls { flex-direction: column; }
  .financial-simulator-controls input { width: 100%; }
  .financial-simulator-summary,
  .financial-simulator-grid { grid-template-columns: 1fr; }
}

.scenario-ai-panel {
  margin-bottom: 22px;
}
.scenario-local-badge {
  padding: 8px 12px;
  border-radius: 999px;
  color: #075985;
  background: #e0f2fe;
  font-size: 12px;
  font-weight: 800;
}
.scenario-ai-input-card,
.scenario-changes-card {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.scenario-ai-input-card textarea {
  width: 100%;
  resize: vertical;
  min-height: 100px;
  padding: 14px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  font: inherit;
  line-height: 1.5;
}
.scenario-example-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.scenario-example-chips button {
  padding: 8px 11px;
  color: #334155;
  background: #e2e8f0;
  border: 0;
  border-radius: 999px;
  font-size: 12px;
}
.scenario-ai-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 18px 0;
}
.scenario-ai-summary article {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.scenario-ai-summary span,
.scenario-ai-summary small {
  display: block;
  color: #64748b;
}
.scenario-ai-summary strong {
  display: block;
  margin: 8px 0;
  font-size: 20px;
}
.scenario-ai-summary .featured {
  color: white;
  border-color: transparent;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
}
.scenario-ai-summary .featured span,
.scenario-ai-summary .featured small {
  color: #cbd8e5;
}
.scenario-ai-summary .featured strong {
  font-size: 15px;
  line-height: 1.5;
}
.scenario-ai-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.scenario-change-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 12px;
  padding: 12px 0;
  border-bottom: 1px solid #e2e8f0;
}
.scenario-change-row:last-child {
  border-bottom: 0;
}
.scenario-change-row small {
  grid-column: 1 / -1;
  color: #64748b;
}
.scenario-positive { color: #15803d; }
.scenario-negative { color: #b91c1c; }
.scenario-neutral { color: #475569; }
.scenario-warnings {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  color: #92400e;
  background: #fef3c7;
}
.scenario-disclaimer {
  margin: 14px 0 0;
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 900px) {
  .scenario-ai-summary,
  .scenario-ai-grid {
    grid-template-columns: 1fr;
  }
}

.recommendation-ai-panel {
  margin-bottom: 22px;
}
.recommendation-controls {
  display: flex;
  align-items: end;
  gap: 12px;
}
.recommendation-controls label {
  display: grid;
  gap: 6px;
  color: #64748b;
  font-size: 13px;
}
.recommendation-controls input {
  width: 180px;
  padding: 11px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font: inherit;
}
.recommendation-summary {
  display: grid;
  grid-template-columns: 1.2fr .9fr .9fr;
  gap: 14px;
  margin-bottom: 18px;
}
.recommendation-summary article,
.recommendation-card {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.recommendation-summary article span,
.recommendation-summary article small {
  display: block;
  color: #64748b;
}
.recommendation-summary article strong {
  display: block;
  margin: 8px 0;
  font-size: 24px;
}
.recommendation-summary article.featured {
  color: white;
  border-color: transparent;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
}
.recommendation-summary article.featured span,
.recommendation-summary article.featured small {
  color: #cbd8e5;
}
.recommendation-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
}
.recommendation-row {
  padding: 13px 0;
  border-bottom: 1px solid #e2e8f0;
}
.recommendation-row:last-child {
  border-bottom: 0;
}
.recommendation-row-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.recommendation-row span,
.recommendation-row small {
  display: block;
  margin-top: 5px;
  color: #64748b;
}
.recommendation-action {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}
.recommendation-action.buy {
  color: #166534;
  background: #dcfce7;
}
.recommendation-action.watch {
  color: #92400e;
  background: #fef3c7;
}
.recommendation-action.hold {
  color: #475569;
  background: #e2e8f0;
}
.recommendation-reasons {
  margin: 8px 0 0;
  padding-left: 18px;
  color: #334155;
  font-size: 13px;
}
.recommendation-disclaimer {
  margin: 14px 0 0;
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 900px) {
  .recommendation-controls {
    flex-direction: column;
    align-items: stretch;
  }
  .recommendation-controls input {
    width: 100%;
  }
  .recommendation-summary,
  .recommendation-grid {
    grid-template-columns: 1fr;
  }
}

.market-radar-panel {
  margin-bottom: 22px;
}
.market-radar-source {
  padding: 8px 12px;
  border-radius: 999px;
  color: #075985;
  background: #e0f2fe;
  font-size: 12px;
  font-weight: 800;
}
.market-radar-input {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  margin-bottom: 18px;
}
.market-radar-input input {
  padding: 12px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font: inherit;
}
.market-radar-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.market-radar-summary article,
.market-radar-asset {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}
.market-radar-summary span,
.market-radar-summary small {
  display: block;
  color: #64748b;
}
.market-radar-summary strong {
  display: block;
  margin: 8px 0;
  font-size: 24px;
}
.market-radar-summary .featured {
  color: white;
  border-color: transparent;
  background: linear-gradient(
    135deg,
    var(--navy),
    var(--navy-2)
  );
}
.market-radar-summary .featured span,
.market-radar-summary .featured small {
  color: #cbd8e5;
}
.market-radar-results {
  display: grid;
  gap: 14px;
}
.market-radar-asset-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
}
.market-radar-asset-head span {
  display: block;
  margin-top: 4px;
  color: #64748b;
}
.market-radar-score {
  text-align: right;
}
.market-radar-score strong {
  display: block;
  font-size: 27px;
}
.market-radar-score small {
  color: #64748b;
}
.market-radar-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}
.market-radar-badge {
  padding: 4px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  font-size: 11px;
  font-weight: 800;
}
.market-radar-badge.portfolio {
  color: #166534;
  background: #dcfce7;
}
.market-radar-metrics {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-top: 15px;
}
.market-radar-metric {
  padding: 11px;
  border-radius: 10px;
  background: white;
}
.market-radar-metric span {
  display: block;
  color: #64748b;
  font-size: 11px;
}
.market-radar-metric strong {
  display: block;
  margin-top: 5px;
}
.market-radar-disclaimer {
  margin: 14px 0 0;
  color: #64748b;
  font-size: 12px;
}
@media (max-width: 900px) {
  .market-radar-input {
    grid-template-columns: 1fr;
  }
  .market-radar-summary {
    grid-template-columns: 1fr;
  }
  .market-radar-metrics {
    grid-template-columns: repeat(2, 1fr);
  }
}

.market-radar-source-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.market-radar-mode {
  padding: 8px 12px;
  border-radius: 999px;
  color: #475569;
  background: #e2e8f0;
  font-size: 12px;
  font-weight: 800;
}
.market-radar-mode.free {
  color: #92400e;
  background: #fef3c7;
}
.market-radar-mode.premium {
  color: #166534;
  background: #dcfce7;
}
.market-radar-fallback {
  margin-bottom: 16px;
  padding: 13px 15px;
  border: 1px solid #fde68a;
  border-radius: 10px;
  color: #92400e;
  background: #fffbeb;
  line-height: 1.5;
}
.market-radar-mode-description {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 9px;
  color: #475569;
  background: #eef2f7;
  font-size: 12px;
}

#market-radar-panel {
  scroll-margin-top: 24px;
}
#recommendation-ai-panel + #market-radar-panel {
  margin-top: 22px;
}

.market-radar-status {
  margin-bottom: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  color: #475569;
  background: #eef2f7;
  line-height: 1.5;
}
.market-radar-status.warning {
  color: #92400e;
  background: #fef3c7;
}

.atlas-assistant-panel {
  margin-bottom: 22px;
}
.atlas-assistant-badge {
  padding: 8px 12px;
  border-radius: 999px;
  color: #166534;
  background: #dcfce7;
  font-size: 12px;
  font-weight: 800;
}
.atlas-chat {
  overflow: hidden;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
  background: #f8fafc;
}
.atlas-chat-messages {
  display: grid;
  gap: 14px;
  min-height: 220px;
  max-height: 620px;
  overflow-y: auto;
  padding: 18px;
}
.atlas-message {
  display: flex;
  gap: 11px;
  max-width: 88%;
}
.atlas-message-user {
  margin-left: auto;
  flex-direction: row-reverse;
}
.atlas-avatar {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--navy);
  font-size: 13px;
  font-weight: 900;
}
.atlas-message-user .atlas-avatar {
  background: #2563eb;
}
.atlas-message-content {
  padding: 12px 14px;
  border: 1px solid #dbe4ee;
  border-radius: 4px 14px 14px 14px;
  background: white;
}
.atlas-message-user .atlas-message-content {
  color: white;
  border-color: #2563eb;
  border-radius: 14px 4px 14px 14px;
  background: #2563eb;
}
.atlas-message-content p {
  margin: 6px 0 0;
  line-height: 1.55;
}
.atlas-answer-bullets {
  margin: 10px 0 0;
  padding-left: 18px;
  line-height: 1.55;
}
.atlas-answer-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(110px, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.atlas-answer-card {
  padding: 10px;
  border-radius: 9px;
  background: #eef2f7;
}
.atlas-answer-card span {
  display: block;
  color: #64748b;
  font-size: 10px;
}
.atlas-answer-card strong {
  display: block;
  margin-top: 4px;
  color: #0f172a;
}
.atlas-answer-disclaimer {
  display: block;
  margin-top: 10px;
  color: #64748b;
  font-size: 10px;
  line-height: 1.4;
}
.atlas-question-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 18px 14px;
}
.atlas-question-chips button {
  padding: 7px 10px;
  border: 0;
  border-radius: 999px;
  color: #334155;
  background: #e2e8f0;
  font-size: 12px;
}
.atlas-chat-input {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  padding: 14px 18px 8px;
  border-top: 1px solid #dbe4ee;
  background: white;
}
.atlas-chat-input textarea {
  width: 100%;
  resize: vertical;
  padding: 12px 13px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  font: inherit;
}
.atlas-chat-hint {
  margin: 0;
  padding: 0 18px 14px;
  color: #64748b;
  background: white;
  font-size: 11px;
}
.atlas-typing {
  color: #64748b;
  font-style: italic;
}
@media (max-width: 900px) {
  .atlas-chat-input {
    grid-template-columns: 1fr;
  }
  .atlas-message {
    max-width: 100%;
  }
  .atlas-answer-cards {
    grid-template-columns: 1fr;
  }
}

.atlas-assistant-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.atlas-assistant-actions button {
  padding: 8px 12px;
}
.atlas-context-indicator {
  margin-top: 8px;
  color: #64748b;
  font-size: 10px;
}

.atlas-answer-warnings {
  margin: 10px 0 0;
  padding: 10px 12px 10px 28px;
  border-radius: 8px;
  color: #92400e;
  background: #fef3c7;
  font-size: 11px;
  line-height: 1.45;
}

.workspace-navigation {
  position: sticky;
  top: 0;
  z-index: 40;
  border-bottom: 1px solid #dbe4ee;
  background: rgba(248, 250, 252, 0.96);
  backdrop-filter: blur(14px);
}
.workspace-navigation-inner {
  display: flex;
  gap: 6px;
  width: min(1500px, calc(100% - 32px));
  margin: 0 auto;
  padding: 10px 0;
  overflow-x: auto;
  scrollbar-width: thin;
}
.workspace-tab {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #475569;
  background: transparent;
  font-weight: 750;
  white-space: nowrap;
}
.workspace-tab:hover {
  color: #0f3557;
  background: #eaf0f6;
}
.workspace-tab.active {
  color: white;
  border-color: #12395b;
  background: #12395b;
  box-shadow: 0 7px 18px rgba(15, 53, 87, 0.18);
}
.workspace-tab span {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  font-size: 13px;
}
.workspace-view {
  display: none;
  animation: workspace-fade 180ms ease-out;
}
.workspace-view.active {
  display: block;
}
.workspace-view-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: end;
  margin: 26px 0 18px;
}
.workspace-view-heading h1 {
  margin: 3px 0 0;
  color: #0f172a;
  font-size: clamp(24px, 3vw, 34px);
}
.workspace-view-heading p {
  max-width: 760px;
  margin: 7px 0 0;
  color: #64748b;
}
.workspace-view-kicker {
  color: #56708d;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.18em;
}
.workspace-empty {
  padding: 52px 24px;
  border: 1px dashed #cbd5e1;
  border-radius: 16px;
  color: #64748b;
  text-align: center;
}
.workspace-view > .panel,
.workspace-view > .dashboard-grid,
.workspace-view > .kpi-grid,
.workspace-view > .quote,
.workspace-view > .notice {
  margin-bottom: 22px;
}
.workspace-view[data-view="dashboard"] .quote {
  margin-top: 0;
}
.workspace-view[data-view="configuracoes"] #settings-panel {
  display: block !important;
}
body.workspace-mode {
  scroll-behavior: smooth;
}
body.workspace-mode .container {
  padding-top: 0;
}
@keyframes workspace-fade {
  from {
    opacity: 0;
    transform: translateY(5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 760px) {
  .workspace-navigation-inner {
    width: calc(100% - 18px);
  }
  .workspace-tab {
    padding: 8px 11px;
  }
  .workspace-view-heading {
    align-items: start;
    flex-direction: column;
    margin-top: 20px;
  }
}

.state-source-badge {
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 999px;
  color: #166534;
  background: #dcfce7;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
#recommendation-amount[readonly] {
  color: #475569;
  background: #f1f5f9;
  cursor: not-allowed;
}

.historical-memory-panel {
  overflow: hidden;
}
.history-import-control {
  display: flex;
  gap: 10px;
  align-items: end;
  flex-wrap: wrap;
}
.file-button {
  display: inline-flex;
  min-height: 45px;
  padding: 0 16px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  align-items: center;
  color: #12395b;
  background: #f8fafc;
  font-weight: 800;
  cursor: pointer;
}
.history-import-status {
  margin: 0 0 18px;
  padding: 12px 14px;
  border-radius: 10px;
  color: #475569;
  background: #f1f5f9;
}
.history-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}
.history-kpi {
  display: grid;
  gap: 8px;
  padding: 20px;
  border: 1px solid #dbe4ee;
  border-radius: 15px;
  background: #f8fafc;
}
.history-kpi span,
.history-kpi small {
  color: #64748b;
}
.history-kpi strong {
  color: #0f172a;
  font-size: 25px;
}
.history-kpi-highlight {
  background: #123f63;
}
.history-kpi-highlight span,
.history-kpi-highlight small,
.history-kpi-highlight strong {
  color: white;
}
.history-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 18px;
}
.history-card {
  padding: 22px;
  border: 1px solid #dbe4ee;
  border-radius: 15px;
  background: #f8fafc;
}
.history-card h3 {
  margin: 0 0 18px;
}
.history-timeline {
  display: flex;
  min-height: 250px;
  gap: 7px;
  align-items: end;
  overflow-x: auto;
  padding: 15px 2px 4px;
}
.history-month {
  display: grid;
  flex: 0 0 42px;
  gap: 6px;
  align-items: end;
  text-align: center;
}
.history-month-bars {
  display: flex;
  min-height: 190px;
  gap: 3px;
  align-items: end;
  justify-content: center;
}
.history-month-bar {
  width: 12px;
  min-height: 2px;
  border-radius: 5px 5px 2px 2px;
}
.history-month-bar.invested {
  background: #2563eb;
}
.history-month-bar.income {
  background: #16a34a;
}
.history-month small {
  color: #64748b;
  font-size: 9px;
}
.history-ranking {
  display: grid;
  gap: 11px;
}
.history-ranking-row {
  display: grid;
  grid-template-columns: 72px 1fr auto;
  gap: 10px;
  align-items: center;
}
.history-ranking-track {
  height: 9px;
  overflow: hidden;
  border-radius: 99px;
  background: #dbe4ee;
}
.history-ranking-fill {
  height: 100%;
  border-radius: inherit;
  background: #2563eb;
}
.history-ranking-row.income .history-ranking-fill {
  background: #16a34a;
}
.history-table {
  width: 100%;
  border-collapse: collapse;
}
.history-table th,
.history-table td {
  padding: 11px 8px;
  border-bottom: 1px solid #dbe4ee;
  text-align: left;
}
@media (max-width: 950px) {
  .history-kpi-grid,
  .history-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 650px) {
  .history-kpi-grid,
  .history-grid {
    grid-template-columns: 1fr;
  }
}

.history-biography,
.history-annual-section {
  margin-bottom: 20px;
  padding: 22px;
  border: 1px solid #dbe4ee;
  border-radius: 16px;
  background: #f8fafc;
}
.history-biography-heading {
  display: flex;
  gap: 18px;
  justify-content: space-between;
  align-items: start;
}
.history-biography-heading h3,
.history-annual-section h3 {
  margin: 5px 0 0;
}
.history-biography-heading p {
  max-width: 420px;
  margin: 0;
  color: #64748b;
  text-align: right;
}
.history-biography-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}
.history-story-card {
  display: grid;
  gap: 7px;
  min-height: 125px;
  padding: 17px;
  border: 1px solid #dbe4ee;
  border-radius: 13px;
  background: white;
}
.history-story-card span,
.history-story-card small {
  color: #64748b;
}
.history-story-card strong {
  color: #0f172a;
  font-size: 20px;
}
.history-milestones {
  position: relative;
  display: grid;
  gap: 12px;
  padding-left: 23px;
}
.history-milestones::before {
  position: absolute;
  top: 5px;
  bottom: 5px;
  left: 7px;
  width: 2px;
  content: "";
  background: #cbd5e1;
}
.history-milestone {
  position: relative;
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 16px;
  padding: 13px 15px;
  border-radius: 12px;
  background: white;
}
.history-milestone::before {
  position: absolute;
  top: 20px;
  left: -22px;
  width: 12px;
  height: 12px;
  border: 3px solid #f8fafc;
  border-radius: 50%;
  content: "";
  background: #2563eb;
}
.history-milestone-date {
  color: #64748b;
  font-weight: 800;
}
.history-milestone strong {
  display: block;
  margin-bottom: 4px;
}
.history-milestone p {
  margin: 0;
  color: #64748b;
}
.history-annual-grid {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(190px, 1fr)
  );
  gap: 12px;
  margin-top: 18px;
}
.history-year-card {
  display: grid;
  gap: 9px;
  padding: 17px;
  border: 1px solid #dbe4ee;
  border-radius: 13px;
  background: white;
}
.history-year-card > strong {
  color: #123f63;
  font-size: 25px;
}
.history-year-stat {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #64748b;
}
.history-year-stat strong {
  color: #0f172a;
}
@media (max-width: 1000px) {
  .history-biography-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 650px) {
  .history-biography-heading {
    display: block;
  }
  .history-biography-heading p {
    margin-top: 10px;
    text-align: left;
  }
  .history-biography-grid {
    grid-template-columns: 1fr;
  }
  .history-milestone {
    grid-template-columns: 1fr;
  }
}

.history-bootstrap-info {
  margin: -8px 0 18px;
  padding: 13px 15px;
  border: 1px solid #bfdbfe;
  border-radius: 11px;
  color: #1e3a5f;
  background: #eff6ff;
}
.history-import-control .secondary {
  min-height: 45px;
  border: 1px solid #123f63;
  color: #123f63;
  background: white;
}
.history-import-control .secondary:hover {
  color: white;
  background: #123f63;
}


/* Sprint 21 — Histórico responsivo */
.historical-memory-panel,
.history-dashboard-layout,
.history-secondary-grid,
.history-card,
.history-card-wide {
  min-width: 0;
}

.history-dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}

.history-secondary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.history-card-wide {
  width: 100%;
}

.history-card-heading {
  display: flex;
  gap: 18px;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
}

.history-card-heading h3 {
  margin-bottom: 4px;
}

.history-card-heading p {
  margin: 0;
  color: #64748b;
}

.history-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  color: #64748b;
  font-size: 13px;
}

.history-chart-legend span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.history-chart-legend i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

.legend-invested {
  background: #2563eb;
}

.legend-income {
  background: #16a34a;
}

.history-timeline {
  width: 100%;
  min-width: 0;
  min-height: 330px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  padding-bottom: 8px;
}

.history-month {
  flex: 1 0 48px;
  min-width: 48px;
  max-width: 72px;
}

.history-month-bars {
  min-height: 250px;
}

.history-ranking-row {
  grid-template-columns: minmax(72px, auto) minmax(110px, 1fr) auto;
  min-width: 0;
}

.history-ranking-row strong,
.history-ranking-row span {
  white-space: nowrap;
}

.history-ranking-track {
  min-width: 0;
}

.history-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}

.history-table {
  min-width: 680px;
}

.history-table th:last-child,
.history-table td:last-child {
  text-align: right;
}

@media (max-width: 1100px) {
  .history-secondary-grid {
    grid-template-columns: 1fr;
  }

  .history-timeline {
    min-height: 300px;
  }

  .history-month-bars {
    min-height: 220px;
  }
}

@media (max-width: 760px) {
  .history-card {
    padding: 18px;
  }

  .history-card-heading {
    display: block;
  }

  .history-chart-legend {
    margin-top: 10px;
  }

  .history-timeline {
    min-height: 280px;
  }

  .history-month {
    flex-basis: 44px;
    min-width: 44px;
  }

  .history-ranking-row {
    grid-template-columns: 64px minmax(80px, 1fr) auto;
    gap: 8px;
  }
}

.living-wealth-panel{overflow:hidden;background:linear-gradient(135deg,rgba(18,63,99,.06),rgba(37,99,235,.02)),white}
.living-wealth-heading{align-items:flex-start}
.living-wealth-period{display:inline-flex;padding:9px 12px;border:1px solid #cbd5e1;border-radius:999px;color:#475569;background:rgba(255,255,255,.85);font-size:13px;font-weight:800}
.living-wealth-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px;margin-bottom:16px}
.living-wealth-hero,.living-wealth-goal{min-width:0;padding:24px;border-radius:17px}
.living-wealth-hero{display:grid;gap:10px;color:white;background:linear-gradient(135deg,#123f63,#1d5f8c)}
.living-wealth-hero span,.living-wealth-hero small{color:rgba(255,255,255,.78)}
.living-wealth-hero strong{font-size:clamp(32px,5vw,54px);line-height:1}
.living-wealth-goal{display:grid;gap:12px;align-content:center;border:1px solid #dbe4ee;background:#f8fafc}
.living-wealth-goal>div:first-child{display:flex;gap:12px;justify-content:space-between;align-items:baseline}
.living-wealth-goal span,.living-wealth-goal small{color:#64748b}
.living-wealth-goal strong{display:block;margin-top:5px;color:#0f172a;font-size:24px}
#living-goal-progress-label{color:#123f63;font-weight:900}
.living-goal-track{height:13px;overflow:hidden;border-radius:999px;background:#dbe4ee}
.living-goal-progress{width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#16a34a);transition:width 350ms ease}
.living-wealth-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.living-wealth-kpi{display:grid;min-width:0;gap:8px;padding:17px;border:1px solid #dbe4ee;border-radius:14px;background:rgba(255,255,255,.9)}
.living-wealth-kpi span,.living-wealth-kpi small{color:#64748b}
.living-wealth-kpi strong{overflow-wrap:anywhere;color:#0f172a;font-size:21px}
.living-value-positive{color:#15803d!important}.living-value-negative{color:#b91c1c!important}
@media(max-width:1100px){.living-wealth-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.living-wealth-main-grid,.living-wealth-kpi-grid{grid-template-columns:1fr}.living-wealth-heading{display:block}.living-wealth-period{margin-top:12px}}

/* Sprint 22.2 — histórico estimado + snapshots reais */
.historical-estimated-path {
  stroke-dasharray: 7 6;
  opacity: 0.72;
}
.historical-bridge-path {
  stroke-dasharray: 3 5;
  opacity: 0.45;
}
.historical-estimated-point {
  fill: white;
  stroke-dasharray: 2 2;
  opacity: 0.8;
}

.performance-metric-help {
  display: block;
  margin-top: 8px;
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}

/* Sprint 23.1 — Motor institucional */
.institutional-performance-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.institutional-metric {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #dbe4ee;
  border-radius: 13px;
  background: #f8fafc;
}

.institutional-metric span,
.institutional-metric small {
  color: #64748b;
}

.institutional-metric strong {
  color: #0f172a;
  font-size: 23px;
}

.institutional-methodology {
  color: white;
  background: #123f63;
}

.institutional-methodology span,
.institutional-methodology small,
.institutional-methodology strong {
  color: white;
}

@media (max-width: 1000px) {
  .institutional-performance-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .institutional-performance-grid {
    grid-template-columns: 1fr;
  }
}

/* Sprint 23.2 — Patrimônio consolidado real */
.consolidated-wealth-panel {
  background:
    linear-gradient(
      135deg,
      rgba(18, 63, 99, 0.05),
      rgba(22, 163, 74, 0.03)
    ),
    white;
}

.consolidated-wealth-hero {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.consolidated-wealth-hero > div {
  display: grid;
  gap: 8px;
  padding: 20px;
  border-radius: 15px;
  background: #123f63;
  color: white;
}

.consolidated-wealth-hero span,
.consolidated-wealth-hero small {
  color: rgba(255,255,255,.78);
}

.consolidated-wealth-hero strong {
  font-size: 30px;
}

.consolidated-class-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.consolidated-class-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 16px;
  border: 1px solid #dbe4ee;
  border-radius: 13px;
  background: #f8fafc;
}

.consolidated-class-card span,
.consolidated-class-card small {
  color: #64748b;
}

.consolidated-class-card strong {
  font-size: 22px;
  color: #0f172a;
}

.consolidated-result-positive {
  color: #15803d !important;
}

.consolidated-result-negative {
  color: #b91c1c !important;
}

.consolidated-exclusions {
  margin-top: 14px;
  padding: 13px 15px;
  border: 1px solid #fed7aa;
  border-radius: 12px;
  color: #9a3412;
  background: #fff7ed;
}

@media (max-width: 1000px) {
  .consolidated-class-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .consolidated-wealth-hero,
  .consolidated-class-grid {
    grid-template-columns: 1fr;
  }
}

/* Sprint 23.2.1 — Patrimônio Vivo simplificado */
.living-wealth-class-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.living-wealth-class-card {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 16px 17px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
}

.living-wealth-class-card span,
.living-wealth-class-card small {
  color: #64748b;
}

.living-wealth-class-card strong {
  color: #0f172a;
  font-size: 21px;
}

@media (max-width: 800px) {
  .living-wealth-class-grid {
    grid-template-columns: 1fr;
  }
}

/* Sprint 24 — Benchmark Inteligente */
.benchmark-summary-grid {
  display: grid;
  grid-template-columns:
    repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}

.benchmark-summary-card {
  display: grid;
  gap: 7px;
  padding: 16px;
  border: 1px solid #dbe4ee;
  border-radius: 14px;
  background: #f8fafc;
}

.benchmark-summary-card.portfolio {
  color: white;
  background: #123f63;
}

.benchmark-summary-card span,
.benchmark-summary-card small {
  color: #64748b;
}

.benchmark-summary-card.portfolio span,
.benchmark-summary-card.portfolio small,
.benchmark-summary-card.portfolio strong {
  color: white;
}

.benchmark-summary-card strong {
  font-size: 25px;
  color: #0f172a;
}

.benchmark-insight {
  margin-bottom: 14px;
  padding: 14px 16px;
  border-left: 4px solid #2563eb;
  border-radius: 10px;
  background: #eff6ff;
  color: #1e3a8a;
  font-weight: 700;
}

.benchmark-layout {
  display: grid;
  grid-template-columns:
    minmax(0, 3fr)
    minmax(260px, 1fr);
  gap: 14px;
}

.benchmark-chart-card,
.benchmark-ranking-card {
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 15px;
  background: #fff;
}

.benchmark-card-heading {
  display: flex;
  gap: 14px;
  justify-content: space-between;
  align-items: flex-start;
}

.benchmark-card-heading h3,
.benchmark-ranking-card h3 {
  margin: 0 0 5px;
}

.benchmark-card-heading p {
  margin: 0;
  color: #64748b;
}

.benchmark-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
}

.benchmark-legend-item {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 6px 9px;
  border: 1px solid #dbe4ee;
  border-radius: 999px;
  color: #475569;
  background: white;
  font-size: 12px;
  font-weight: 800;
}

.benchmark-legend-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
}

.benchmark-chart {
  min-height: 350px;
}

.benchmark-ranking-row {
  display: grid;
  grid-template-columns: 32px 1fr auto;
  gap: 9px;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #e2e8f0;
}

.benchmark-ranking-row:last-child {
  border-bottom: 0;
}

.benchmark-ranking-position {
  font-weight: 900;
  color: #64748b;
}

.benchmark-ranking-return {
  font-weight: 900;
  color: #0f172a;
}

.benchmark-empty {
  padding: 18px;
  color: #64748b;
  text-align: center;
}

.benchmark-methodology {
  margin-top: 12px;
  color: #64748b;
  font-size: 12px;
}

.advanced-performance-details {
  margin-top: 16px;
  border-top: 1px solid #dbe4ee;
  padding-top: 13px;
}

.advanced-performance-details summary {
  cursor: pointer;
  color: #123f63;
  font-weight: 900;
}

.advanced-performance-details[open] summary {
  margin-bottom: 14px;
}

@media (max-width: 1100px) {
  .benchmark-summary-grid {
    grid-template-columns:
      repeat(3, minmax(0, 1fr));
  }

  .benchmark-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .benchmark-summary-grid {
    grid-template-columns: 1fr;
  }

  .benchmark-card-heading {
    display: block;
  }

  .benchmark-legend {
    justify-content: flex-start;
    margin-top: 12px;
  }
}

/* Sprint 25.1 — Benchmark profissional */
.benchmark-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.benchmark-comparison-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 7px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.benchmark-badge-above {
  color: #166534;
  background: #dcfce7;
}

.benchmark-badge-below {
  color: #991b1b;
  background: #fee2e2;
}

.benchmark-card-comparison {
  min-height: 31px;
  font-weight: 800;
}

.benchmark-card-source {
  padding-top: 7px;
  border-top: 1px solid rgba(148,163,184,.28);
  font-size: 10px;
}

.benchmark-summary-card.portfolio
.benchmark-card-source {
  border-color: rgba(255,255,255,.25);
}

.benchmark-ranking-note {
  margin-top: 12px;
  padding: 11px;
  border-radius: 9px;
  background: #fff7ed;
  color: #9a3412;
  font-size: 12px;
  line-height: 1.45;
}

.benchmark-insight strong {
  display: inline;
}

/* Sprint 25.1.1 */
.living-wealth-class-grid-four {
  grid-template-columns:
    repeat(4, minmax(0, 1fr));
}

.living-wealth-class-card small {
  line-height: 1.45;
}

@media (max-width: 1100px) {
  .living-wealth-class-grid-four {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 650px) {
  .living-wealth-class-grid-four {
    grid-template-columns: 1fr;
  }
}

/* Sprint 25.2 — reconstrução histórica */
.benchmark-summary-card.portfolio
.benchmark-card-comparison {
  color: rgba(255,255,255,.92);
}

.benchmark-summary-card.portfolio
.benchmark-card-source {
  color: rgba(255,255,255,.72);
}

/* Sprint 26 — Wealth Dashboard */
.wealth-headline-grid{display:grid;grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:12px}.wealth-headline-main,.wealth-headline-metric{display:grid;gap:7px;padding:18px;border-radius:15px}.wealth-headline-main{color:white;background:#123f63}.wealth-headline-main span,.wealth-headline-main small{color:rgba(255,255,255,.78)}.wealth-headline-main strong{font-size:31px}.wealth-headline-metric{border:1px solid #dbe4ee;background:#f8fafc}.wealth-headline-metric span{color:#64748b}.wealth-headline-metric strong{color:#0f172a;font-size:22px}.wealth-positive{color:#15803d!important}.wealth-negative{color:#b91c1c!important}.wealth-class-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.wealth-class-card{display:grid;gap:9px;padding:17px;border:1px solid #dbe4ee;border-radius:15px;background:#fff}.wealth-class-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.wealth-class-card-header span{color:#475569;font-weight:800}.wealth-class-weight{padding:4px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:11px;font-weight:900}.wealth-class-card>strong{font-size:24px}.wealth-class-details{display:grid;gap:5px;color:#64748b;font-size:12px}.wealth-class-result{font-weight:900}.wealth-dashboard-lower{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:14px;margin-top:14px}.wealth-allocation-card,.wealth-goals-card,.wealth-insight-card{padding:18px;border:1px solid #dbe4ee;border-radius:15px;background:#fff}.wealth-allocation-chart{display:grid;gap:11px;margin-top:16px}.wealth-allocation-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,2fr) auto;gap:10px;align-items:center}.wealth-allocation-track,.wealth-goal-track{height:11px;border-radius:999px;background:#e2e8f0;overflow:hidden}.wealth-allocation-fill{height:100%;background:#2563eb}.wealth-allocation-percent,.wealth-goal-header{font-weight:900}.wealth-goal-item{display:grid;gap:7px;padding:12px 0;border-bottom:1px solid #e2e8f0}.wealth-goal-header{display:flex;justify-content:space-between}.wealth-goal-fill{height:100%;background:#16a34a}.wealth-goal-footer{color:#64748b;font-size:12px}.wealth-insight-card{margin-top:14px;border-left:4px solid #2563eb;background:#eff6ff}.wealth-insight-card p{margin:7px 0 0;color:#1e3a8a;line-height:1.6;font-weight:700}@media(max-width:1200px){.wealth-headline-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wealth-headline-main{grid-column:span 2}}@media(max-width:900px){.wealth-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wealth-dashboard-lower{grid-template-columns:1fr}}@media(max-width:650px){.wealth-headline-grid,.wealth-class-grid{grid-template-columns:1fr}.wealth-headline-main{grid-column:auto}.wealth-allocation-row{grid-template-columns:1fr}}

/* Sprint 27 — Registro Inteligente */
.intelligent-registration-panel { background: linear-gradient(135deg,rgba(37,99,235,.05),rgba(255,255,255,.95)); }
.registration-mode-tabs { display:flex; gap:8px; margin-bottom:16px; }
.registration-mode-tabs button { border:1px solid #dbe4ee; background:#fff; color:#475569; }
.registration-mode-tabs button.active { background:#123f63; color:#fff; border-color:#123f63; }
#registration-conversation-mode { display:grid; gap:12px; }
#registration-text { width:100%; resize:vertical; padding:14px; border:1px solid #cbd5e1; border-radius:12px; font:inherit; }
.registration-examples { display:flex; flex-wrap:wrap; gap:8px; }
.registration-examples button { padding:7px 10px; border:1px solid #dbe4ee; border-radius:999px; background:#f8fafc; color:#475569; font-size:12px; }
.registration-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.registration-form-grid label { display:grid; gap:6px; color:#475569; font-weight:700; }
.registration-form-grid input,.registration-form-grid select { padding:10px; border:1px solid #cbd5e1; border-radius:9px; }
.registration-preview { margin-top:16px; padding:18px; border:1px solid #bfdbfe; border-radius:14px; background:#eff6ff; }
.registration-preview h3 { margin:5px 0; }
.registration-error { color:#b91c1c; font-weight:700; }
.registration-confirm-actions { display:flex; gap:9px; margin-top:12px; }
.registration-status { min-height:22px; color:#123f63; font-weight:800; }
@media(max-width:750px){.registration-form-grid{grid-template-columns:1fr;}}

/* Sprint 28 — conversa incremental */
.registration-followup-box {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #bfdbfe;
}

.registration-followup-box label {
  display: block;
  margin-bottom: 7px;
  color: #1e3a8a;
  font-weight: 800;
}

.registration-followup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.registration-followup-row input {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #93c5fd;
  border-radius: 9px;
  font: inherit;
}

@media (max-width: 650px) {
  .registration-followup-row {
    grid-template-columns: 1fr;
  }
}

/* Sprint 29 — Atlas Advisor */
.registration-advisor-result {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #bbf7d0;
  border-left: 5px solid #16a34a;
  border-radius: 15px;
  background: linear-gradient(135deg,#f0fdf4,#ffffff);
}
.registration-advisor-result h3 { margin: 5px 0 14px; color: #14532d; }
.advisor-movement-summary { display:flex; flex-wrap:wrap; gap:9px 16px; padding:12px; border-radius:11px; background:#fff; color:#475569; }
.advisor-movement-summary strong { color:#0f172a; }
.advisor-change-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-top:12px; }
.advisor-change-card { display:grid; gap:6px; padding:14px; border:1px solid #dbe4ee; border-radius:12px; background:#fff; }
.advisor-change-card span,.advisor-change-card small { color:#64748b; }
.advisor-change-card strong { color:#0f172a; font-size:18px; }
.advisor-insight { margin-top:12px; padding:14px; border-radius:11px; background:#eff6ff; color:#1e3a8a; }
.advisor-insight p { margin:6px 0 0; line-height:1.5; }
@media(max-width:950px){.advisor-change-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.advisor-change-grid{grid-template-columns:1fr;}}


/* Sprint 30 — Login seguro */
.auth-body {
  min-height: 100vh;
  margin: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.16), transparent 38%),
    linear-gradient(145deg, #eef4fa, #f8fafc);
}
.auth-shell { width: min(440px, calc(100% - 32px)); }
.auth-card {
  padding: 34px;
  border: 1px solid #dbe4ee;
  border-radius: 22px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 24px 70px rgba(15,23,42,.15);
}
.auth-brand span {
  color: #4f6f91;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .18em;
}
.auth-brand h1 { margin: 8px 0; color: #0f172a; font-size: 31px; }
.auth-brand p { margin: 0 0 22px; color: #64748b; }
#auth-form { display: grid; gap: 15px; }
#auth-form label { display: grid; gap: 7px; color: #334155; font-weight: 800; }
#auth-form input {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  font: inherit;
}
#auth-form input:focus {
  outline: 3px solid rgba(37,99,235,.16);
  border-color: #2563eb;
}
#auth-submit {
  padding: 13px 18px;
  border: 0;
  border-radius: 11px;
  background: #123f63;
  color: white;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}
.auth-message { min-height: 22px; color: #b91c1c; font-weight: 800; }
.auth-card small { color: #94a3b8; }

/* Sprint 31 — administração multiusuário */
.user-admin-card {
  margin-top: 16px;
}

.create-user-form {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr))
    auto;
  gap: 12px;
  align-items: end;
}

.create-user-form label {
  display: grid;
  gap: 6px;
  color: #475569;
  font-weight: 800;
}

.create-user-form input {
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  font: inherit;
}

@media (max-width: 800px) {
  .create-user-form {
    grid-template-columns: 1fr;
  }
}

.auth-link-button {
  width: 100%;
  margin-top: 12px;
  padding: 8px;
  border: 0;
  background: transparent;
  color: #2563eb;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

#forgot-password-form,
#reset-password-form {
  display: grid;
  gap: 15px;
}

#forgot-password-form[hidden],
#reset-password-form[hidden],
#auth-form[hidden] {
  display: none;
}

#forgot-password-form label,
#reset-password-form label {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 800;
}

#forgot-password-form input,
#reset-password-form input {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  font: inherit;
}

#forgot-password-form > button:not(.auth-link-button),
#reset-password-form > button {
  padding: 13px 18px;
  border: 0;
  border-radius: 11px;
  background: #123f63;
  color: white;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.recovery-email-card {
  margin-top: 16px;
}

.invitation-email-lock {
  padding: 12px 14px;
  border: 1px solid #bfdbfe;
  border-radius: 11px;
  background: #eff6ff;
  color: #1e3a8a;
}

.invitation-email-lock span,
.invitation-email-lock strong {
  display: block;
}

.invitation-email-lock span {
  font-size: 12px;
  font-weight: 800;
}

.invitation-email-lock strong {
  margin-top: 4px;
}

#invitation-form {
  display: grid;
  gap: 15px;
}

#invitation-form[hidden] {
  display: none;
}

#invitation-form label {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 800;
}

#invitation-form input {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  font: inherit;
}

#invitation-form button {
  padding: 13px 18px;
  border: 0;
  border-radius: 11px;
  background: #123f63;
  color: white;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.create-user-form select {
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  background: white;
  font: inherit;
}

.admin-user-list {
  display: grid;
  gap: 9px;
  margin-top: 18px;
}

.admin-user-row {
  display: grid;
  grid-template-columns:
    minmax(180px, 1fr)
    auto
    auto
    auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 11px;
  background: #f8fafc;
}

.admin-user-row > div {
  display: grid;
  gap: 3px;
}

.admin-user-row small {
  color: #64748b;
}

.admin-role-badge,
.admin-status-badge {
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
}

.admin-role-badge {
  color: #3730a3;
  background: #eef2ff;
}

.admin-status-badge.active {
  color: #166534;
  background: #dcfce7;
}

.admin-status-badge.disabled {
  color: #991b1b;
  background: #fee2e2;
}

.admin-status-badge.pending {
  color: #92400e;
  background: #fef3c7;
}

@media (max-width: 850px) {
  .admin-user-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
}

/* Sprint 31.3 — fluxo de autenticação separado */
[hidden] {
  display: none !important;
}

.auth-panel {
  display: grid;
  gap: 15px;
}

.auth-panel label {
  display: grid;
  gap: 7px;
  color: #334155;
  font-weight: 800;
}

.auth-panel input,
.auth-panel select {
  width: 100%;
  box-sizing: border-box;
  padding: 13px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 11px;
  background: #fff;
  font: inherit;
}

.auth-panel input:focus,
.auth-panel select:focus {
  outline: 3px solid rgba(37, 99, 235, .15);
  border-color: #2563eb;
}

.auth-panel > button:not(.auth-link-button) {
  padding: 13px 18px;
  border: 0;
  border-radius: 11px;
  background: #123f63;
  color: #fff;
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.auth-panel-heading {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  background: #eff6ff;
}

.auth-panel-heading strong {
  color: #0f2d4a;
}

.auth-panel-heading small {
  color: #64748b;
}

.auth-footer {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #e2e8f0;
  color: #94a3b8;
}

.auth-brand h1 {
  line-height: 1.12;
}

@media (max-width: 520px) {
  .auth-card {
    padding: 26px 22px;
  }

  .auth-brand h1 {
    font-size: 30px;
  }
}

.master-view-banner {
  position: sticky;
  top: 0;
  z-index: 1000;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 10px 18px;
  background: #7c2d12;
  color: white;
  box-shadow: 0 4px 18px rgba(15,23,42,.2);
}

.master-view-banner button {
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 8px;
  background: transparent;
  color: white;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.master-governance-card {
  margin-top: 18px;
}

.master-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(100px, 1fr));
  gap: 10px;
  margin: 16px 0;
}

.master-metrics > div {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  background: #f8fafc;
}

.master-metrics strong {
  font-size: 24px;
  color: #0f2d4a;
}

.master-metrics span {
  color: #64748b;
  font-size: 12px;
  font-weight: 800;
}

.master-governance-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr);
  gap: 18px;
}

.master-user-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.master-role-select {
  padding: 8px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: white;
}

.master-log-list {
  display: grid;
  gap: 8px;
  max-height: 520px;
  overflow: auto;
}

.master-log-row {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
}

.master-log-row span,
.master-log-row small {
  color: #64748b;
}

@media (max-width: 1000px) {
  .master-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .master-governance-grid {
    grid-template-columns: 1fr;
  }

  .master-view-banner {
    grid-template-columns: 1fr;
  }
}

/* Sprint 33 — UX Premium */
.header-actions {
  position: relative;
}

.header-icon-button,
.profile-menu-button {
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: white;
  cursor: pointer;
  transition:
    transform .16s ease,
    background .16s ease,
    border-color .16s ease;
}

.header-icon-button:hover,
.profile-menu-button:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.28);
}

.header-icon-button {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  font-size: 18px;
}

.notification-count {
  position: absolute;
  top: -5px;
  right: -5px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: #dc2626;
  color: white;
  font-size: 10px;
  font-weight: 900;
}

.profile-menu,
.notification-menu {
  position: relative;
}

.profile-menu-button {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 190px;
  padding: 7px 11px;
  border-radius: 13px;
  text-align: left;
}

.profile-avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  background: #dbeafe;
  color: #123f63;
  font-weight: 900;
}

.profile-copy {
  display: grid;
  flex: 1;
  gap: 2px;
}

.profile-copy strong {
  color: white;
  font-size: 13px;
}

.profile-copy small {
  color: #bfdbfe;
  font-size: 11px;
}

.header-popover {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 1200;
  min-width: 220px;
  padding: 9px;
  border: 1px solid #dbe4ee;
  border-radius: 13px;
  background: white;
  color: #0f172a;
  box-shadow: 0 18px 45px rgba(15,23,42,.18);
}

.profile-menu-popover {
  display: grid;
  gap: 4px;
}

.profile-menu-popover button {
  padding: 10px 11px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #0f172a;
  font: inherit;
  font-weight: 800;
  text-align: left;
  cursor: pointer;
}

.profile-menu-popover button:hover {
  background: #eff6ff;
  color: #123f63;
}

.notification-popover strong,
.notification-popover p {
  display: block;
  margin: 4px 6px;
}

.notification-popover p {
  color: #64748b;
  font-size: 13px;
}

.master-navigation-tab {
  color: #7c2d12;
}

.master-navigation-tab.active {
  color: white;
  background: linear-gradient(
    135deg,
    #7c2d12,
    #b45309
  );
}

.master-panel {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.master-panel .master-governance-card {
  margin-top: 0;
}

.panel,
.settings-card,
.kpi-card,
.wealth-class-card {
  transition:
    transform .16s ease,
    box-shadow .16s ease,
    border-color .16s ease;
}

.settings-card:hover,
.kpi-card:hover,
.wealth-class-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(15,23,42,.08);
  border-color: #cbd5e1;
}

@media (max-width: 900px) {
  .profile-menu-button {
    min-width: auto;
  }

  .profile-copy {
    display: none;
  }

  .header-actions {
    flex-wrap: wrap;
  }
}

.financial-audit-panel { margin-top: 18px; }
.financial-audit-status { padding: 12px 14px; border-radius: 11px; font-weight: 900; }
.financial-audit-status.certified { background: #dcfce7; color: #166534; }
.financial-audit-status.warning { background: #fef3c7; color: #92400e; }
.financial-audit-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:16px 0; }
.financial-audit-summary article,.financial-audit-card { padding:16px; border:1px solid #dbe4ee; border-radius:13px; background:#f8fafc; }
.financial-audit-summary article { display:grid; gap:7px; }
.financial-audit-summary strong { font-size:24px; }
.financial-audit-summary small { color:#64748b; }
.financial-audit-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.audit-class-row { display:grid; grid-template-columns:1fr auto; gap:4px 12px; padding:10px 0; border-bottom:1px solid #e2e8f0; }
.audit-class-row small { grid-column:1/-1; color:#64748b; }
.audit-issue { display:grid; gap:5px; padding:11px; margin-bottom:8px; border-radius:10px; border-left:4px solid #64748b; background:white; }
.audit-issue.warning { border-left-color:#d97706; background:#fffbeb; }
.audit-issue.info { border-left-color:#2563eb; background:#eff6ff; }
.audit-issue.success { border-left-color:#16a34a; background:#f0fdf4; }
.audit-issue span,.audit-issue small { color:#64748b; }
.financial-audit-details { margin-top:16px; }
.financial-audit-details summary { cursor:pointer; font-weight:900; color:#123f63; padding:12px 0; }
@media(max-width:900px){.financial-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.financial-audit-grid{grid-template-columns:1fr}}
@media(max-width:600px){.financial-audit-summary{grid-template-columns:1fr}}

/* Sprint 34.1 — Dashboard simples, auditoria sob demanda */
.wealth-heading-actions {
  display: grid;
  justify-items: end;
  gap: 9px;
}

.wealth-heading-actions .secondary {
  padding: 8px 12px;
  font-size: 12px;
}

.workspace-tab[data-workspace-view="auditoria"] {
  color: #475569;
}

.workspace-tab[data-workspace-view="auditoria"].active {
  color: white;
  background: #123f63;
}

.financial-audit-panel {
  border-top: 4px solid #d97706;
}

.financial-audit-panel .panel-heading p {
  max-width: 780px;
}

.financial-audit-details {
  margin-top: 18px;
}

.financial-audit-details > summary {
  cursor: pointer;
  font-weight: 900;
  color: #123f63;
}

@media (max-width: 760px) {
  .wealth-heading-actions {
    justify-items: start;
    margin-top: 12px;
  }
}

/* Sprint 34.2 — consistência patrimonial e fluxo único */
.planning-inputs-panel {
  border-top: 4px solid #2563eb;
}

.planning-settings-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.planning-goal-card {
  margin: 0;
  max-width: none;
}

.planning-goal-card h3 {
  margin-top: 0;
}

.portfolio-import-panel {
  margin-top: 18px;
}

.operations-panel {
  display: none !important;
}

/* Correção 34.2.2 */
.planning-settings-grid {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.planning-goal-card {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}

.planning-goal-card h3,
.planning-goal-card button,
.planning-goal-card small {
  grid-column: 1 / -1;
}

.planning-checkbox {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 52px;
}

.planning-checkbox input {
  width: 18px;
  height: 18px;
}

.market-radar-status.loading {
  display: block;
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

#dashboard-allocation-donut {
  background: #e2e8f0;
}

@media (max-width: 760px) {
  .planning-settings-grid,
  .planning-goal-card {
    grid-template-columns: 1fr;
  }

  .planning-goal-card h3,
  .planning-goal-card button,
  .planning-goal-card small {
    grid-column: auto;
  }
}

/* Sprint 35 — Automação Total */
#market-basis[data-sync-state="loading"] {
  background: #dbeafe;
  color: #1d4ed8;
}

#market-basis[data-sync-state="current"] {
  background: #dcfce7;
  color: #166534;
}

#market-basis[data-sync-state="warning"] {
  background: #fef3c7;
  color: #92400e;
}

/* Sprint 35.5 — Refinamento de UX */
.audit-technical-kpis {
  margin-top: 22px;
}

.portfolio-primary-panel {
  border-top: 4px solid #2563eb;
}

.portfolio-maintenance-panel {
  margin-top: 24px;
  border-top: 3px solid #cbd5e1;
}

.goals-panel {
  border-top: 4px solid #2563eb;
}

.goal-progress {
  margin-top: 22px;
}

.planning-premises-panel {
  margin-top: 18px;
  border-top: 3px solid #cbd5e1;
}

.data-management-card {
  margin-top: 20px;
  border-top: 4px solid #475569;
}

.data-management-card .history-import-control {
  margin-top: 16px;
}

.history-data-shortcut {
  white-space: nowrap;
}

.workspace-tab[data-workspace-view="atlas"] {
  font-weight: 800;
}

@media (max-width: 760px) {
  .history-data-shortcut,
  #toggle-planning-premises {
    width: 100%;
    margin-top: 10px;
  }
}

/* Hotfix 35.6 — cabeçalho resiliente */
#api-status,
#market-basis,
#profile-menu-name,
#profile-menu-role {
  transition:
    background-color 160ms ease,
    color 160ms ease,
    opacity 160ms ease;
}

body[data-user-role="MASTER"]
#master-navigation-tab {
  display: inline-flex;
}


/* Sprint 37 — Premium UX */
:root {
  --premium-ease:
    cubic-bezier(.2, .8, .2, 1);
}

html {
  scroll-behavior: smooth;
}

.panel,
.card,
.dashboard-card,
.settings-card {
  transition:
    transform 180ms var(--premium-ease),
    box-shadow 180ms var(--premium-ease),
    border-color 180ms ease;
}

.panel:hover,
.card:hover,
.dashboard-card:hover,
.settings-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 18px 38px rgba(15, 23, 42, .09);
}

.premium-reveal {
  animation:
    premiumReveal 320ms var(--premium-ease)
    both;
}

@keyframes premiumReveal {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

button {
  position: relative;
  overflow: hidden;
  transition:
    transform 140ms var(--premium-ease),
    box-shadow 140ms ease,
    background-color 140ms ease;
}

button:hover:not(:disabled) {
  transform: translateY(-1px);
}

button:active:not(:disabled),
button.button-pressed:not(:disabled) {
  transform: scale(.98);
}

.button-pressed::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.38);
  transform:
    translate(-50%, -50%)
    scale(0);
  animation:
    premiumRipple 520ms ease-out;
  pointer-events: none;
}

@keyframes premiumRipple {
  to {
    opacity: 0;
    transform:
      translate(-50%, -50%)
      scale(18);
  }
}

.progress > div,
.goal-progress-bar,
.allocation-current-bar {
  transform-origin: left center;
  animation:
    premiumBarGrow 620ms
    var(--premium-ease) both;
}

@keyframes premiumBarGrow {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

.bar,
.goal-chart-bar {
  height: var(--bar-height, 2px) !important;
  transform-origin: bottom center;
  animation:
    premiumColumnGrow 620ms
    var(--premium-ease) both;
}

@keyframes premiumColumnGrow {
  from {
    transform: scaleY(0);
  }
  to {
    transform: scaleY(1);
  }
}

.atlas-tooltip-target {
  outline: none;
  cursor: help;
  transition:
    filter 150ms ease,
    transform 150ms ease,
    opacity 150ms ease;
}

.atlas-tooltip-target.is-highlighted {
  filter: saturate(1.15);
  transform: translateY(-2px);
}

.bar-group.is-highlighted .bar {
  filter:
    brightness(1.08)
    drop-shadow(
      0 8px 8px rgba(37, 99, 235, .18)
    );
}

.atlas-chart-tooltip {
  position: fixed;
  z-index: 9999;
  min-width: 220px;
  max-width: 300px;
  padding: 14px 16px;
  border: 1px solid rgba(148, 163, 184, .32);
  border-radius: 14px;
  color: #f8fafc;
  background:
    rgba(15, 23, 42, .96);
  box-shadow:
    0 18px 45px rgba(15, 23, 42, .3);
  backdrop-filter: blur(10px);
  pointer-events: none;
  animation:
    premiumTooltip 140ms ease-out both;
}

.atlas-chart-tooltip[hidden] {
  display: none;
}

.atlas-chart-tooltip strong {
  display: block;
  margin-bottom: 10px;
  font-size: .95rem;
}

.atlas-chart-tooltip span {
  display: grid;
  grid-template-columns:
    12px 1fr auto;
  gap: 8px;
  align-items: center;
  margin-top: 7px;
  font-size: .86rem;
}

.atlas-chart-tooltip span b {
  color: white;
}

.atlas-chart-tooltip .tooltip-balance {
  grid-template-columns: 1fr auto;
  padding-top: 9px;
  margin-top: 10px;
  border-top:
    1px solid rgba(226, 232, 240, .2);
}

.tooltip-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
}

.tooltip-dot.purchase {
  background: #3b82f6;
}

.tooltip-dot.sale {
  background: #f59e0b;
}

@keyframes premiumTooltip {
  from {
    opacity: 0;
    transform: translateY(5px)
      scale(.98);
  }
  to {
    opacity: 1;
    transform: translateY(0)
      scale(1);
  }
}

.atlas-typing::after {
  content: " •••";
  display: inline-block;
  width: 28px;
  overflow: hidden;
  vertical-align: bottom;
  animation:
    atlasThinking 1.1s steps(4, end)
    infinite;
}

@keyframes atlasThinking {
  from {
    width: 0;
  }
  to {
    width: 28px;
  }
}

.quote-transition {
  opacity: .15;
  transform: translateY(5px);
}

.dashboard-quote,
blockquote {
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Sprint 38 — Solicitações consolidadas */
.dashboard-current-ideal-card {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
}

.dashboard-current-ideal-card h3 {
  display: none;
}

.portfolio-composition-only {
  grid-template-columns: minmax(0, 1fr);
}

.portfolio-composition-only
.allocation-donut-card {
  max-width: none;
}

.data-management-section {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #dbe4ee;
}

.data-management-section h4 {
  margin: 0 0 14px;
  font-size: 1.05rem;
}

.settings-import-panel {
  margin: 0;
  box-shadow: none;
  border: 1px solid #dbe4ee;
}

.planning-premises-secondary {
  margin-top: 20px;
  border-top: 3px solid #cbd5e1;
}

.contribution-simulator-top {
  min-width: 290px;
  max-width: 380px;
  padding: 16px;
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  background: #f8fafc;
}

.contribution-simulator-top label {
  display: block;
  margin-bottom: 8px;
  font-weight: 800;
}

.contribution-simulator-top input {
  width: 100%;
  min-height: 50px;
  font-size: 1.15rem;
  font-weight: 800;
}

.contribution-simulator-top small {
  display: block;
  margin-top: 8px;
  color: #64748b;
}

.recommendation-explanation-only {
  margin-top: 20px;
}

.wealth-goal-name {
  margin: 4px 0 9px;
  color: #64748b;
  font-size: .88rem;
  font-weight: 700;
}

.wealth-goal-item.reached {
  padding: 12px;
  border: 1px solid #facc15;
  border-radius: 14px;
  background: #fffbeb;
}

.wealth-goal-item.reached
.wealth-goal-fill {
  background:
    linear-gradient(
      90deg,
      #16a34a,
      #eab308
    );
}

@media (max-width: 900px) {
  .contribution-simulator-top {
    width: 100%;
    max-width: none;
  }
}

/* Hotfix 38.1 — Dashboard, metas e carteira */
.wealth-current-ideal-card {
  min-height: 100%;
}

.wealth-card-description {
  margin: -4px 0 18px;
  color: #64748b;
  font-size: .92rem;
}

.dashboard-allocation-bars {
  display: grid;
  gap: 16px;
}

.dashboard-allocation-bars
.allocation-bar-head {
  grid-template-columns:
    minmax(130px, 1fr)
    auto
    auto;
}

#portfolio-panel {
  border-top: 4px solid #2563eb;
}

/* Hotfix 38.2 — Atual × Ideal somente no Dashboard */
.allocation-executive-panel
.allocation-executive-grid {
  grid-template-columns: minmax(0, 1fr);
}

.allocation-executive-panel
.allocation-donut-card {
  width: 100%;
  max-width: none;
}

/* Hotfix 38.3 — Simulador de Planejamento */
.planning-simulator-card {
  margin: 26px 0 30px;
  padding: 24px;
  border: 1px solid #d7e1ed;
  border-radius: 20px;
  background:
    linear-gradient(
      135deg,
      rgba(239, 246, 255, .95),
      rgba(248, 250, 252, .98)
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.8);
}

.planning-simulator-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.planning-simulator-heading h3 {
  margin: 5px 0 4px;
  font-size: 1.35rem;
}

.planning-simulator-heading p {
  margin: 0;
  color: #64748b;
}

.planning-live-status {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 999px;
  color: #334155;
  background: #e2e8f0;
  font-size: .82rem;
  font-weight: 800;
}

.planning-live-status.is-loading {
  color: #1d4ed8;
  background: #dbeafe;
}

.planning-live-status.is-success {
  color: #166534;
  background: #dcfce7;
}

.planning-live-status.is-error {
  color: #991b1b;
  background: #fee2e2;
}

.planning-simulator-main {
  display: grid;
  grid-template-columns:
    minmax(240px, 1.2fr)
    minmax(240px, 1fr)
    minmax(210px, .9fr);
  gap: 18px;
}

.planning-simulator-field {
  padding: 18px;
  border: 1px solid #d7e1ed;
  border-radius: 16px;
  background: rgba(255,255,255,.86);
}

.planning-simulator-highlight {
  border-color: #93c5fd;
  box-shadow: 0 10px 24px rgba(37,99,235,.08);
}

.planning-simulator-field > label {
  display: block;
  margin-bottom: 10px;
  color: #475569;
  font-weight: 800;
}

.planning-currency-input,
.planning-percent-input,
.planning-year-input {
  display: flex;
  align-items: center;
  min-height: 52px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: white;
  overflow: hidden;
}

.planning-currency-input span,
.planning-percent-input span,
.planning-year-input span {
  padding: 0 14px;
  color: #64748b;
  font-weight: 800;
  white-space: nowrap;
}

.planning-currency-input input,
.planning-percent-input input,
.planning-year-input input {
  width: 100%;
  min-width: 0;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 1.12rem;
  font-weight: 900;
}

.planning-simulator-field select {
  width: 100%;
  min-height: 52px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 0 14px;
  background: white;
  font-size: 1.05rem;
  font-weight: 800;
}

.planning-simulator-field small {
  display: block;
  margin-top: 9px;
  color: #64748b;
}

.planning-quick-options {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.planning-quick-options button {
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  color: #1e3a8a;
  background: #eff6ff;
  font-size: .78rem;
  font-weight: 800;
}

.planning-quick-options button.active {
  color: white;
  border-color: #2563eb;
  background: #2563eb;
}

.planning-advanced-options {
  margin-top: 18px;
  border-top: 1px solid #d7e1ed;
  padding-top: 15px;
}

.planning-advanced-options summary {
  cursor: pointer;
  color: #334155;
  font-weight: 800;
}

.planning-advanced-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 14px;
  margin-top: 15px;
}

.planning-advanced-grid > label {
  color: #475569;
  font-size: .88rem;
  font-weight: 700;
}

.planning-advanced-grid .planning-checkbox {
  display: flex;
  align-items: center;
  align-self: end;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: white;
}

@media (max-width: 1050px) {
  .planning-simulator-main {
    grid-template-columns: 1fr 1fr;
  }

  .planning-simulator-main
  .planning-simulator-field:last-child {
    grid-column: 1 / -1;
  }

  .planning-advanced-grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 700px) {
  .planning-simulator-heading {
    flex-direction: column;
  }

  .planning-simulator-main,
  .planning-advanced-grid {
    grid-template-columns: 1fr;
  }

  .planning-simulator-main
  .planning-simulator-field:last-child {
    grid-column: auto;
  }
}

/* Sprint 39 — Mercado Premium */
.market-premium-panel {
  overflow: hidden;
}

.market-premium-heading {
  align-items: flex-start;
}

.market-module-statuses {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 9px;
}

.market-module-status {
  min-width: 105px;
  padding: 9px 12px;
  border: 1px solid #d7e1ed;
  border-radius: 14px;
  background: #f8fafc;
}

.market-module-status small,
.market-module-status strong {
  display: block;
}

.market-module-status small {
  color: #64748b;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.market-module-status strong {
  margin-top: 2px;
  font-size: .87rem;
}

.market-module-status.success {
  border-color: #bbf7d0;
  color: #166534;
  background: #f0fdf4;
}

.market-module-status.loading {
  border-color: #bfdbfe;
  color: #1d4ed8;
  background: #eff6ff;
}

.market-module-status.error {
  border-color: #fecaca;
  color: #991b1b;
  background: #fef2f2;
}

.market-premium-search {
  padding: 20px;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  background: #f8fafc;
}

.market-category-filters,
.market-favorites-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.market-category-filters {
  margin: 15px 0;
}

.market-category-filters button,
.market-favorite-chip {
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #334155;
  background: white;
  font-size: .78rem;
  font-weight: 800;
}

.market-category-filters button.active {
  color: white;
  border-color: #0f3a5d;
  background: #0f3a5d;
}

.market-favorites-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
  margin-top: 16px;
}

.market-favorites-row strong {
  display: block;
  margin-bottom: 8px;
}

.market-radar-progress {
  margin: 20px 0;
  padding: 18px;
  border-radius: 16px;
  background: #eff6ff;
}

.market-radar-progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #dbeafe;
}

#market-radar-progress-bar {
  width: 0;
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(90deg, #2563eb, #22c55e);
  transition: width 320ms ease;
}

.market-radar-progress-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-top: 11px;
  color: #94a3b8;
  font-size: .75rem;
  font-weight: 700;
}

.market-radar-progress-steps span.active {
  color: #1d4ed8;
}

.market-radar-error-card {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #fed7aa;
  border-radius: 18px;
  background: #fff7ed;
}

.market-radar-error-card > div {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}

.market-error-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  color: white;
  background: #ea580c;
  font-weight: 900;
}

.market-radar-error-card p {
  margin: 5px 0 0;
  color: #9a3412;
}

.market-radar-empty {
  margin: 20px 0;
  padding: 34px;
  border: 1px dashed #cbd5e1;
  border-radius: 18px;
  text-align: center;
  color: #64748b;
  background: #f8fafc;
}

.market-radar-empty strong {
  display: block;
  color: #0f172a;
  font-size: 1.06rem;
}

.market-radar-empty p {
  margin: 7px 0 0;
}

.market-opportunity-card {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) 150px minmax(260px, 1.4fr);
  gap: 22px;
  align-items: center;
  margin: 22px 0;
  padding: 24px;
  border-radius: 20px;
  color: white;
  background:
    linear-gradient(135deg, #123f62, #0f2d48);
}

.market-opportunity-card h3 {
  margin: 6px 0 2px;
  font-size: 2rem;
}

.market-opportunity-card p {
  margin: 0;
  color: #dbeafe;
}

.market-opportunity-score {
  padding: 16px;
  border-radius: 16px;
  text-align: center;
  background: rgba(255,255,255,.1);
}

.market-opportunity-score strong {
  display: block;
  font-size: 2.2rem;
}

.market-opportunity-score span,
.market-opportunity-score small {
  display: block;
}

.market-opportunity-reasons {
  padding-left: 20px;
  border-left: 1px solid rgba(255,255,255,.2);
}

.market-premium-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 20px;
  margin-top: 20px;
}

.market-ranking-section,
.market-history-section {
  padding: 20px;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  background: #f8fafc;
}

.market-section-heading h3 {
  margin: 5px 0 16px;
}

.market-ranking-card {
  position: relative;
  padding-left: 64px;
}

.market-ranking-position {
  position: absolute;
  top: 20px;
  left: 18px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #0f3a5d;
  background: #dbeafe;
  font-weight: 900;
}

.market-radar-score.excellent {
  color: #166534;
  background: #dcfce7;
}

.market-radar-score.good {
  color: #1d4ed8;
  background: #dbeafe;
}

.market-radar-score.neutral {
  color: #854d0e;
  background: #fef9c3;
}

.market-radar-score.warning {
  color: #991b1b;
  background: #fee2e2;
}

.market-add-favorite {
  cursor: pointer;
}

.market-analysis-history {
  display: grid;
  gap: 9px;
}

.market-history-item {
  width: 100%;
  padding: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 12px;
  text-align: left;
  color: #0f172a;
  background: white;
}

.market-history-item span,
.market-history-item strong,
.market-history-item small {
  display: block;
}

.market-history-item span,
.market-history-item small {
  color: #64748b;
  font-size: .75rem;
}

.market-history-item strong {
  margin: 3px 0;
  font-size: .85rem;
}

.market-history-empty {
  color: #64748b;
}

@media (max-width: 1050px) {
  .market-premium-content {
    grid-template-columns: 1fr;
  }

  .market-opportunity-card {
    grid-template-columns: 1fr 140px;
  }

  .market-opportunity-reasons {
    grid-column: 1 / -1;
    padding: 16px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.2);
  }
}

@media (max-width: 720px) {
  .market-module-statuses,
  .market-favorites-row {
    justify-content: flex-start;
  }

  .market-favorites-row,
  .market-radar-error-card {
    align-items: stretch;
    flex-direction: column;
  }

  .market-radar-progress-steps,
  .market-opportunity-card {
    grid-template-columns: 1fr;
  }
}

/* Hotfix 39.1 — Mercado refinado */
.market-radar-input {
  align-items: stretch;
}

#scan-market-radar-button {
  min-width: 220px;
  font-size: .95rem;
  box-shadow: 0 10px 24px rgba(15, 58, 93, .18);
}

.market-radar-error-compact {
  padding: 14px 16px;
  border-radius: 14px;
}

.market-radar-error-compact .market-error-icon {
  width: 30px;
  height: 30px;
}

.market-radar-error-compact p {
  margin-top: 3px;
  font-size: .9rem;
}

.market-suggestions-block {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #dbe4ee;
}

.market-suggestions-block strong,
.market-suggestions-block small {
  display: block;
}

.market-suggestions-block small {
  margin-top: 4px;
  color: #64748b;
  font-size: .78rem;
}

.market-suggestions-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.market-suggestion-chip {
  min-width: 105px;
  padding: 8px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  text-align: left;
  background: white;
}

.market-suggestion-chip strong,
.market-suggestion-chip small {
  display: block;
}

.market-suggestion-chip small {
  margin-top: 2px;
  font-size: .7rem;
}

.market-suggestion-chip.excellent,
.market-favorite-chip.excellent {
  border-color: #86efac;
  background: #f0fdf4;
}

.market-suggestion-chip.good,
.market-favorite-chip.good {
  border-color: #93c5fd;
  background: #eff6ff;
}

.market-suggestion-chip.neutral,
.market-favorite-chip.neutral {
  border-color: #fde68a;
  background: #fffbeb;
}

.market-suggestion-chip.warning,
.market-favorite-chip.warning {
  border-color: #fecaca;
  background: #fef2f2;
}

.market-favorite-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.market-favorite-chip small {
  display: grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 6px;
  border-radius: 999px;
  color: #334155;
  background: rgba(255,255,255,.75);
  font-size: .7rem;
  font-weight: 900;
}

.market-favorite-chip b {
  font-size: .85rem;
}

@media (max-width: 820px) {
  .market-suggestions-block {
    flex-direction: column;
  }

  .market-suggestions-list {
    justify-content: flex-start;
  }

  #scan-market-radar-button {
    min-width: 0;
  }
}

/* Sprint 40 — Limpeza de duplicações e tooltips */
.sprint40-removed-panel,
.sprint40-removed-composition {
  display: none !important;
}

.allocation-executive-panel
.allocation-alerts-grid {
  margin-top: 0;
}

.history-month.atlas-tooltip-target {
  cursor: help;
}

.history-month.is-highlighted
.history-month-bar {
  filter:
    brightness(1.08)
    drop-shadow(0 7px 7px rgba(37, 99, 235, .18));
}

.tooltip-dot.invested {
  background: #2563eb;
}

.tooltip-dot.income {
  background: #16a34a;
}
.manual-wealth-panel {
  border-top: 4px solid #0f766e;
}

.manual-wealth-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.manual-wealth-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
}

.manual-wealth-card h3 {
  margin: 4px 0 0;
}

.manual-wealth-card label {
  display: grid;
  gap: 6px;
  font-size: 13px;
  color: #475569;
}

.manual-wealth-card input {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 9px;
  font: inherit;
}

.manual-wealth-card small {
  min-height: 18px;
  color: #475569;
}

@media (max-width: 760px) {
  .manual-wealth-grid {
    grid-template-columns: 1fr;
  }
}
.manual-wealth-panel.premium-reveal {
  opacity: 1 !important;
  transform: none !important;
}

.rv-economic-return-inline {
  display: block;
  margin-top: 8px;
  font-size: 0.88rem;
  font-weight: 600;
}
/* Hotfix - layout do simulador de aportes */
@media (min-width: 901px) {
  .contribution-intelligence-panel {
    position: relative;
    padding-right: 424px;
  }

  .contribution-simulator-top {
    position: absolute;
    top: 22px;
    right: 22px;
    width: 380px;
    max-width: 380px;
  }
}


/* Previdencia - graficos historicos */

.pension-summary-grid {
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
}

.pension-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin: 14px 0 18px;
  color: #64748b;
  font-size: 12px;
  font-weight: 700;
}

.pension-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.pension-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
}

.pension-legend-dot.contributions {
  background: #2563eb;
}

.pension-legend-dot.earnings {
  background: #16a34a;
}

.pension-bars {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 24px;
  min-height: 255px;
  padding: 10px 8px 0;
  align-items: end;
}

.pension-bar-group {
  display: grid;
  grid-template-rows: 210px auto;
  gap: 10px;
  min-width: 0;
}

.pension-bar-values {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 14px;
  height: 210px;
  border-bottom: 1px solid #dbe4ee;
}

.pension-bar-column {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 7px;
  width: 42%;
  height: 100%;
  min-width: 0;
}

.pension-bar-column span {
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.pension-bar {
  width: 100%;
  max-width: 38px;
  min-height: 4px;
  border-radius: 7px 7px 0 0;
  transition:
    filter .2s ease,
    transform .2s ease;
}

.pension-bar:hover {
  filter: brightness(1.06);
  transform: translateY(-2px);
}

.pension-bar.contributions {
  background:
    linear-gradient(
      180deg,
      #3b82f6,
      #2563eb
    );
}

.pension-bar.earnings {
  background:
    linear-gradient(
      180deg,
      #22c55e,
      #16a34a
    );
}

.pension-bar-group > strong {
  text-align: center;
  color: #334155;
  font-size: 12px;
}

#pension-balance-chart {
  min-height: 300px;
}

.pension-balance-current {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 12px 0 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #f8fafc;
}

.pension-balance-current span {
  color: #64748b;
  font-size: 12px;
}

.pension-balance-current strong {
  color: #0f172a;
  font-size: 18px;
}

#pension-balance-chart svg {
  display: block;
  width: 100%;
  height: auto;
  min-height: 250px;
  overflow: visible;
}

.pension-balance-line {
  fill: none;
  stroke: #2563eb;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pension-balance-point {
  fill: white;
  stroke: #2563eb;
  stroke-width: 3;
}

.pension-value-label {
  fill: #334155;
  font-size: 10px;
  font-weight: 800;
}

.pension-year-label {
  font-weight: 800;
}

.pension-annual-detail {
  margin-top: 16px;
}

.pension-annual-detail .muted {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 9px;
  background: #f8fafc;
}

@media (max-width: 900px) {
  .pension-summary-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 650px) {
  .pension-bars {
    gap: 12px;
    padding-left: 0;
    padding-right: 0;
  }

  .pension-bar-values {
    gap: 7px;
  }

  .pension-bar-column span {
    font-size: 9px;
    transform: rotate(-18deg);
    transform-origin: center;
  }

  .pension-balance-current {
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Previdencia - refinamentos de periodo */

.pension-bar-group > strong {
  display: grid;
  justify-items: center;
  gap: 2px;
}

.pension-year-partial {
  color: #94a3b8;
  font-size: 9px;
  font-weight: 700;
}

.pension-partial-label {
  fill: #94a3b8;
  font-size: 8px;
  font-weight: 700;
}

#pension-balance-chart {
  padding-top: 8px;
}


/* Previdencia - cards premium */

.pension-kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 18px;
}

.pension-kpis .kpi-card {
  position: relative;
  min-width: 0;
  min-height: 190px;
  padding: 28px 30px;
  border: 0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 12px 30px rgba(15, 23, 42, 0.10);
  transition:
    transform 180ms ease,
    box-shadow 180ms ease;
}

.pension-kpis .kpi-card:hover {
  transform: translateY(-2px);
  box-shadow:
    0 16px 36px rgba(15, 23, 42, 0.14);
}

.pension-kpis .kpi-card:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #123b5c 0%,
      #1765b5 100%
    );
}

.pension-kpis .kpi-card:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #13755d 0%,
      #20a779 100%
    );
}

.pension-kpis .kpi-card:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #5534a7 0%,
      #8b4dd8 100%
    );
}

.pension-kpis .kpi-card::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  right: -45px;
  bottom: -60px;
  border-radius: 50%;
  background:
    rgba(255, 255, 255, 0.07);
  pointer-events: none;
}

.pension-kpis .kpi-card > * {
  position: relative;
  z-index: 1;
}

.pension-kpis .kpi-card span {
  display: block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
  font-weight: 600;
}

.pension-kpis .kpi-card strong {
  display: block;
  margin-bottom: 14px;
  color: #ffffff;
  font-size: clamp(28px, 2.25vw, 38px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.pension-kpis .kpi-card small {
  display: block;
  max-width: 90%;
  color: rgba(255, 255, 255, 0.76);
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 1050px) {
  .pension-kpis {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .pension-kpis .kpi-card:nth-child(3) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .pension-kpis {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .pension-kpis .kpi-card:nth-child(3) {
    grid-column: auto;
  }

  .pension-kpis .kpi-card {
    min-height: 160px;
    padding: 24px;
  }

  .pension-kpis .kpi-card strong {
    font-size: 30px;
  }
}


/* Previdencia - percentual rendimento */

.pension-return-value {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}

.pension-return-value strong {
  margin-bottom: 0 !important;
}

#pension-statement-return-percent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}


/* Previdencia - visual final premium */

.pension-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  width: 100%;
  margin-top: 18px;
}

.pension-kpi {
  position: relative;
  min-width: 0;
  min-height: 205px;
  padding: 26px 30px 28px;
  border: 0 !important;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 10px 28px rgba(15, 23, 42, 0.10);
}

.pension-kpi-balance {
  background:
    linear-gradient(
      135deg,
      #0f5895 0%,
      #1689ed 100%
    ) !important;
}

.pension-kpi-capital {
  background:
    linear-gradient(
      135deg,
      #08775d 0%,
      #19ba83 100%
    ) !important;
}

.pension-kpi-return {
  background:
    linear-gradient(
      135deg,
      #5a2ab6 0%,
      #9348ed 100%
    ) !important;
}

.pension-kpi::after {
  content: "";
  position: absolute;
  right: -46px;
  bottom: -70px;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background:
    rgba(255, 255, 255, 0.08);
  pointer-events: none;
}

.pension-kpi > * {
  position: relative;
  z-index: 2;
}

.pension-kpi-heading {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 22px;
}

.pension-kpi-heading > span {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: 16px !important;
  font-weight: 750 !important;
}

.pension-kpi-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 50%;
  background:
    rgba(255, 255, 255, 0.17);
  box-shadow:
    inset 0 0 0 1px
    rgba(255, 255, 255, 0.08);
}

.pension-kpi-icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: #ffffff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pension-kpi strong {
  display: block;
  margin: 0 0 17px !important;
  color: #ffffff !important;
  font-size: clamp(30px, 2.55vw, 42px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -0.035em;
  white-space: nowrap;
}

.pension-kpi small {
  display: block;
  max-width: 83%;
  color:
    rgba(255, 255, 255, 0.88) !important;
  font-size: 14px !important;
  line-height: 1.55;
}

.pension-return-value {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: nowrap;
  margin-bottom: 17px;
}

.pension-return-value strong {
  margin: 0 !important;
}

#pension-statement-return-percent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  background:
    rgba(255, 255, 255, 0.18);
  box-shadow:
    inset 0 0 0 1px
    rgba(255, 255, 255, 0.08);
  color: #ffffff;
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.pension-bars-watermark {
  position: absolute;
  right: 28px;
  bottom: 35px;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  gap: 7px;
  opacity: 0.23;
}

.pension-bars-watermark i,
.pension-return-watermark i {
  display: block;
  width: 17px;
  border-radius: 5px 5px 2px 2px;
  background: #ffffff;
}

.pension-bars-watermark i:nth-child(1) {
  height: 34px;
}

.pension-bars-watermark i:nth-child(2) {
  height: 51px;
}

.pension-bars-watermark i:nth-child(3) {
  height: 73px;
}

.pension-wallet-watermark {
  position: absolute;
  right: 35px;
  bottom: 56px;
  z-index: 1;
  width: 72px;
  height: 54px;
  border-radius: 10px;
  background:
    rgba(255, 255, 255, 0.18);
  transform: rotate(-2deg);
}

.pension-wallet-watermark::before {
  content: "";
  position: absolute;
  left: 9px;
  top: -12px;
  width: 53px;
  height: 17px;
  border-radius: 7px;
  background:
    rgba(255, 255, 255, 0.12);
}

.pension-wallet-watermark::after {
  content: "";
  position: absolute;
  right: -4px;
  top: 19px;
  width: 28px;
  height: 17px;
  border-radius: 8px;
  background:
    rgba(255, 255, 255, 0.16);
}

.pension-return-watermark {
  position: absolute;
  right: 28px;
  bottom: 38px;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  opacity: 0.20;
}

.pension-return-watermark i:nth-child(1) {
  height: 25px;
}

.pension-return-watermark i:nth-child(2) {
  height: 40px;
}

.pension-return-watermark i:nth-child(3) {
  height: 57px;
}

.pension-return-watermark::before {
  content: "";
  position: absolute;
  width: 65px;
  height: 34px;
  right: 0;
  top: -40px;
  border-top: 5px solid
    rgba(255, 255, 255, 0.65);
  border-right: 5px solid
    rgba(255, 255, 255, 0.65);
  border-radius: 0 10px 0 0;
  transform:
    skewY(-27deg)
    rotate(-2deg);
}

.pension-statement-notice {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 22px;
  padding: 17px 20px;
  border: 1px solid #cfe5fc;
  border-radius: 14px;
  background:
    linear-gradient(
      90deg,
      #edf7ff 0%,
      #e5f1fd 100%
    );
  color: #1263b2;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
}

.pension-statement-notice-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 2px solid #1780dd;
  border-radius: 50%;
  color: #1780dd;
  font-size: 16px;
  font-family: Georgia, serif;
  font-weight: 700;
}

@media (max-width: 1080px) {
  .pension-kpis {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .pension-kpi-return {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .pension-kpis {
    grid-template-columns: 1fr;
    gap: 15px;
  }

  .pension-kpi-return {
    grid-column: auto;
  }

  .pension-kpi {
    min-height: 185px;
    padding: 24px;
  }

  .pension-kpi strong {
    font-size: 31px !important;
  }

  .pension-return-value {
    flex-wrap: wrap;
  }
}


/* Previdencia - compactacao final */

.pension-kpis {
  gap: 18px;
  margin-top: 14px;
}

.pension-kpi {
  min-height: 160px;
  padding: 20px 24px 22px;
  border-radius: 18px;
}

.pension-kpi-heading {
  gap: 12px;
  margin-bottom: 15px;
}

.pension-kpi-heading > span {
  font-size: 14px !important;
}

.pension-kpi-icon {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
}

.pension-kpi-icon svg {
  width: 22px;
  height: 22px;
}

.pension-kpi strong {
  margin-bottom: 12px !important;
  font-size: clamp(28px, 2.15vw, 34px) !important;
}

.pension-kpi small {
  font-size: 12px !important;
  line-height: 1.4;
}

.pension-return-value {
  gap: 10px;
  margin-bottom: 12px;
}

#pension-statement-return-percent {
  min-height: 30px;
  padding: 0 11px;
  font-size: 13px;
}

.pension-bars-watermark,
.pension-return-watermark {
  transform: scale(0.78);
  transform-origin: right bottom;
  right: 20px;
  bottom: 22px;
}

.pension-wallet-watermark {
  transform: scale(0.78) rotate(-2deg);
  transform-origin: right bottom;
  right: 25px;
  bottom: 36px;
}

.pension-kpi::after {
  width: 135px;
  height: 135px;
  right: -38px;
  bottom: -58px;
}

.pension-statement-notice {
  margin-top: 18px;
  padding: 13px 16px;
  font-size: 13px;
}


/* Previdencia - layout referencia final */

.pension-kpis {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 14px;
}

/* Cards mais baixos */
.pension-kpi {
  min-height: 0 !important;
  height: 150px;
  padding: 18px 22px !important;
  border-radius: 17px;
}

/* Cabecalho */
.pension-kpi-heading {
  gap: 11px;
  margin-bottom: 10px !important;
}

.pension-kpi-heading > span {
  font-size: 13px !important;
  line-height: 1.2;
}

/* Icone */
.pension-kpi-icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
}

.pension-kpi-icon svg {
  width: 20px;
  height: 20px;
}

/* Valor */
.pension-kpi strong {
  margin: 0 0 9px !important;
  font-size: clamp(25px, 2vw, 31px) !important;
  line-height: 1 !important;
}

/* Texto inferior */
.pension-kpi small {
  max-width: 78%;
  font-size: 11px !important;
  line-height: 1.35;
}

/* Percentual do rendimento */
.pension-return-value {
  gap: 9px;
  margin: 0 0 9px !important;
}

#pension-statement-return-percent {
  min-height: 27px;
  padding: 0 10px;
  font-size: 12px;
}

/* Circulo decorativo inferior */
.pension-kpi::after {
  width: 105px;
  height: 105px;
  right: -28px;
  bottom: -50px;
}

/* GRAFICO - card azul */
.pension-bars-watermark {
  right: 24px !important;
  bottom: 31px !important;
  left: auto !important;
  transform: scale(0.68);
  transform-origin: right bottom;
  opacity: 0.24;
}

/* CARTEIRA - card verde */
.pension-wallet-watermark {
  right: 25px !important;
  bottom: 38px !important;
  left: auto !important;
  width: 66px;
  height: 48px;
  transform: scale(0.82) rotate(-2deg);
  transform-origin: right bottom;
  opacity: 0.72;
}

/* GRAFICO CRESCENTE - card roxo */
.pension-return-watermark {
  right: 24px !important;
  bottom: 31px !important;
  left: auto !important;
  transform: scale(0.70);
  transform-origin: right bottom;
  opacity: 0.25;
}

/* Aviso abaixo dos cards */
.pension-statement-notice {
  margin-top: 16px;
  padding: 11px 15px;
  border-radius: 12px;
  font-size: 12px;
}

.pension-statement-notice-icon {
  width: 24px;
  height: 24px;
  flex-basis: 24px;
  font-size: 13px;
}

/* Responsividade */
@media (max-width: 1080px) {
  .pension-kpis {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .pension-kpi {
    height: 150px;
  }

  .pension-kpi-return {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .pension-kpis {
    grid-template-columns: 1fr;
  }

  .pension-kpi {
    height: auto;
    min-height: 145px !important;
  }

  .pension-kpi-return {
    grid-column: auto;
  }
}


/* Previdencia - decoracoes canto superior direito */

/* Grafico do card azul */
.pension-bars-watermark {
  top: 26px !important;
  right: 24px !important;
  bottom: auto !important;
  left: auto !important;
  transform: scale(0.60) !important;
  transform-origin: top right !important;
  opacity: 0.24 !important;
}

/* Carteira do card verde */
.pension-wallet-watermark {
  top: 28px !important;
  right: 26px !important;
  bottom: auto !important;
  left: auto !important;
  width: 66px !important;
  height: 48px !important;
  transform:
    scale(0.76)
    rotate(-2deg) !important;
  transform-origin: top right !important;
  opacity: 0.58 !important;
}

/* Grafico crescente do card roxo */
.pension-return-watermark {
  top: 28px !important;
  right: 24px !important;
  bottom: auto !important;
  left: auto !important;
  transform: scale(0.62) !important;
  transform-origin: top right !important;
  opacity: 0.24 !important;
}

/* Mantem o circulo grande somente no canto inferior direito */
.pension-kpi::after {
  top: auto !important;
  right: -28px !important;
  bottom: -52px !important;
  left: auto !important;
}


/* Previdencia - correcao definitiva watermarks */

.pension-kpi {
  position: relative !important;
}

/* Azul */
.pension-bars-watermark {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  bottom: unset !important;
  left: unset !important;
  margin: 0 !important;
  transform: scale(0.60) !important;
  transform-origin: top right !important;
}

/* Verde */
.pension-wallet-watermark {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  bottom: unset !important;
  left: unset !important;
  margin: 0 !important;
  transform: scale(0.72) rotate(-2deg) !important;
  transform-origin: top right !important;
}

/* Roxo */
.pension-return-watermark {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  bottom: unset !important;
  left: unset !important;
  margin: 0 !important;
  transform: scale(0.60) !important;
  transform-origin: top right !important;
}

/* Evita que os desenhos encostem nos textos */
.pension-kpi-heading,
.pension-kpi strong,
.pension-kpi small,
.pension-return-value {
  max-width: 78%;
}

/* Mantem apenas o circulo decorativo embaixo */
.pension-kpi::after {
  top: unset !important;
  right: -28px !important;
  bottom: -52px !important;
  left: unset !important;
}


/* Previdencia - microajustes finais */

.pension-wallet-watermark {
  top: 22px !important;
}


/* Renda variavel - padrao visual Previdencia */

/*
 * O grid atual da renda variavel possui:
 * 1 Valor atual
 * 2 Capital aportado
 * 3 Proventos reinvestidos
 * 4 Resultado economico
 */

.rv-kpis,
.variable-income-kpis,
.variable-income-summary {
  gap: 14px;
}

/* Cards */
.rv-kpis .kpi-card,
.variable-income-kpis .kpi-card,
.variable-income-summary .kpi-card {
  position: relative;
  min-width: 0;
  min-height: 0 !important;
  height: 150px;
  padding: 18px 22px !important;
  border: 0 !important;
  border-radius: 17px;
  overflow: hidden;
  box-shadow:
    0 9px 24px rgba(15, 23, 42, 0.09);
}

/* Azul - Valor atual */
.rv-kpis .kpi-card:nth-child(1),
.variable-income-kpis .kpi-card:nth-child(1),
.variable-income-summary .kpi-card:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #0f5895 0%,
      #1689ed 100%
    ) !important;
}

/* Verde - Capital aportado */
.rv-kpis .kpi-card:nth-child(2),
.variable-income-kpis .kpi-card:nth-child(2),
.variable-income-summary .kpi-card:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #08775d 0%,
      #19ba83 100%
    ) !important;
}

/* Dourado - Proventos reinvestidos */
.rv-kpis .kpi-card:nth-child(3),
.variable-income-kpis .kpi-card:nth-child(3),
.variable-income-summary .kpi-card:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #a87400 0%,
      #e4ae12 100%
    ) !important;
}

/* Roxo - Resultado economico */
.rv-kpis .kpi-card:nth-child(4),
.variable-income-kpis .kpi-card:nth-child(4),
.variable-income-summary .kpi-card:nth-child(4) {
  background:
    linear-gradient(
      135deg,
      #5a2ab6 0%,
      #9348ed 100%
    ) !important;
}

/* Tipografia */
.rv-kpis .kpi-card span,
.variable-income-kpis .kpi-card span,
.variable-income-summary .kpi-card span {
  color: rgba(255,255,255,.93) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}

.rv-kpis .kpi-card strong,
.variable-income-kpis .kpi-card strong,
.variable-income-summary .kpi-card strong {
  color: #fff !important;
  font-size: clamp(24px, 2vw, 31px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -.025em;
}

.rv-kpis .kpi-card small,
.variable-income-kpis .kpi-card small,
.variable-income-summary .kpi-card small {
  color: rgba(255,255,255,.86) !important;
  font-size: 11px !important;
  line-height: 1.4;
}

/* Circulo decorativo inferior direito */
.rv-kpis .kpi-card::after,
.variable-income-kpis .kpi-card::after,
.variable-income-summary .kpi-card::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: 105px;
  height: 105px;
  right: -28px;
  bottom: -52px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}

.rv-kpis .kpi-card > *,
.variable-income-kpis .kpi-card > *,
.variable-income-summary .kpi-card > * {
  position: relative;
  z-index: 2;
}

/* Mini grafico no canto superior direito */
.rv-kpis .kpi-card::before,
.variable-income-kpis .kpi-card::before,
.variable-income-summary .kpi-card::before {
  content: "???";
  position: absolute;
  z-index: 1;
  top: 18px;
  right: 18px;
  color: rgba(255,255,255,.24);
  font-size: 31px;
  font-weight: 900;
  letter-spacing: -7px;
  line-height: 1;
}

/* Proventos: simbolo visual diferente */
.rv-kpis .kpi-card:nth-child(3)::before,
.variable-income-kpis .kpi-card:nth-child(3)::before,
.variable-income-summary .kpi-card:nth-child(3)::before {
  content: "?\A?\A?";
  white-space: pre;
  top: 14px;
  right: 25px;
  font-size: 12px;
  letter-spacing: 0;
  line-height: .62;
  opacity: .9;
}

/* Resultado: percentual integrado */
#rv-economic-return {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-top: 7px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1;
}

/* Responsividade */
@media (max-width: 1120px) {
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary {
    grid-template-columns: 1fr;
  }

  .rv-kpis .kpi-card,
  .variable-income-kpis .kpi-card,
  .variable-income-summary .kpi-card {
    height: auto;
    min-height: 145px !important;
  }
}


/* Renda variavel - acabamento definitivo */

/* Remove os caracteres decorativos anteriores */
.rv-kpis .kpi-card::before,
.variable-income-kpis .kpi-card::before,
.variable-income-summary .kpi-card::before {
  content: "" !important;
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 35px;
  z-index: 1;
  opacity: .22;
  background:
    linear-gradient(
      to top,
      rgba(255,255,255,.95) 0 100%
    ) left bottom / 8px 14px no-repeat,
    linear-gradient(
      to top,
      rgba(255,255,255,.95) 0 100%
    ) center bottom / 8px 23px no-repeat,
    linear-gradient(
      to top,
      rgba(255,255,255,.95) 0 100%
    ) right bottom / 8px 34px no-repeat;
  border-radius: 2px;
}

/* Proventos: moedas em CSS, sem Unicode */
.rv-kpis .kpi-card:nth-child(3)::before,
.variable-income-kpis .kpi-card:nth-child(3)::before,
.variable-income-summary .kpi-card:nth-child(3)::before {
  content: "" !important;
  top: 20px;
  right: 21px;
  width: 36px;
  height: 32px;
  opacity: .22;
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at center,
      transparent 45%,
      rgba(255,255,255,.95) 47% 58%,
      transparent 60%
    ) center 0 / 32px 11px no-repeat,
    radial-gradient(
      ellipse at center,
      transparent 45%,
      rgba(255,255,255,.95) 47% 58%,
      transparent 60%
    ) center 10px / 32px 11px no-repeat,
    radial-gradient(
      ellipse at center,
      transparent 45%,
      rgba(255,255,255,.95) 47% 58%,
      transparent 60%
    ) center 20px / 32px 11px no-repeat;
}

/* Rentabilidade compacta */
#rv-economic-return {
  display: inline-flex !important;
  align-items: center;
  width: auto !important;
  max-width: max-content;
  margin-top: 8px !important;
  padding: 5px 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}


/* Renda variavel - layout final quatro cards */

/* Forca distribuicao perfeitamente igual */
.rv-kpis,
.variable-income-kpis,
.variable-income-summary {
  display: grid !important;
  grid-template-columns:
    repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
  align-items: stretch !important;
}

/* Todos os cards exatamente iguais */
.rv-kpis > .kpi-card,
.variable-income-kpis > .kpi-card,
.variable-income-summary > .kpi-card {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 160px !important;
  min-height: 160px !important;
  padding: 18px 22px !important;
  box-sizing: border-box !important;
  border: 0 !important;
  border-radius: 17px !important;
  overflow: hidden !important;
  position: relative !important;
}

/* Evita regras antigas deixando o primeiro maior */
.rv-kpis > .kpi-card:first-child,
.variable-income-kpis > .kpi-card:first-child,
.variable-income-summary > .kpi-card:first-child,
.rv-kpis > .kpi-card.featured,
.variable-income-kpis > .kpi-card.featured,
.variable-income-summary > .kpi-card.featured {
  grid-column: auto !important;
  grid-row: auto !important;
  width: auto !important;
  min-width: 0 !important;
}

/* Azul */
.rv-kpis > .kpi-card:nth-child(1),
.variable-income-kpis > .kpi-card:nth-child(1),
.variable-income-summary > .kpi-card:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #0f5895 0%,
      #1689ed 100%
    ) !important;
}

/* Verde */
.rv-kpis > .kpi-card:nth-child(2),
.variable-income-kpis > .kpi-card:nth-child(2),
.variable-income-summary > .kpi-card:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #08775d 0%,
      #19ba83 100%
    ) !important;
}

/* Dourado */
.rv-kpis > .kpi-card:nth-child(3),
.variable-income-kpis > .kpi-card:nth-child(3),
.variable-income-summary > .kpi-card:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #9f7000 0%,
      #e6ae10 100%
    ) !important;
}

/* Roxo */
.rv-kpis > .kpi-card:nth-child(4),
.variable-income-kpis > .kpi-card:nth-child(4),
.variable-income-summary > .kpi-card:nth-child(4) {
  background:
    linear-gradient(
      135deg,
      #5a2ab6 0%,
      #9348ed 100%
    ) !important;
}

/* Valores */
.rv-kpis .kpi-card strong,
.variable-income-kpis .kpi-card strong,
.variable-income-summary .kpi-card strong {
  display: block;
  color: #fff !important;
  font-size: clamp(24px, 1.8vw, 30px) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: -.025em;
  white-space: nowrap;
}

/* Titulos */
.rv-kpis .kpi-card > span,
.variable-income-kpis .kpi-card > span,
.variable-income-summary .kpi-card > span {
  display: block;
  padding-left: 48px;
  min-height: 36px;
  line-height: 36px;
  margin-bottom: 10px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 750 !important;
  white-space: nowrap;
}

/* Descricao inferior */
.rv-kpis .kpi-card small,
.variable-income-kpis .kpi-card small,
.variable-income-summary .kpi-card small {
  display: block;
  max-width: 78%;
  margin-top: 10px;
  color: rgba(255,255,255,.88) !important;
  font-size: 11px !important;
  line-height: 1.35;
}

/* Circulo dos icones */
.rv-kpis .kpi-card > span::before,
.variable-income-kpis .kpi-card > span::before,
.variable-income-summary .kpi-card > span::before {
  content: "";
  position: absolute;
  left: 22px;
  top: 18px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.17);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08);
}

/* Simbolos simples dentro dos circulos */
.rv-kpis .kpi-card > span::after,
.variable-income-kpis .kpi-card > span::after,
.variable-income-summary .kpi-card > span::after {
  position: absolute;
  left: 33px;
  top: 25px;
  z-index: 3;
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
}

/* Valor atual */
.rv-kpis .kpi-card:nth-child(1) > span::after,
.variable-income-kpis .kpi-card:nth-child(1) > span::after,
.variable-income-summary .kpi-card:nth-child(1) > span::after {
  content: "$";
}

/* Capital */
.rv-kpis .kpi-card:nth-child(2) > span::after,
.variable-income-kpis .kpi-card:nth-child(2) > span::after,
.variable-income-summary .kpi-card:nth-child(2) > span::after {
  content: "?";
}

/* Proventos */
.rv-kpis .kpi-card:nth-child(3) > span::after,
.variable-income-kpis .kpi-card:nth-child(3) > span::after,
.variable-income-summary .kpi-card:nth-child(3) > span::after {
  content: "?";
}

/* Resultado */
.rv-kpis .kpi-card:nth-child(4) > span::after,
.variable-income-kpis .kpi-card:nth-child(4) > span::after,
.variable-income-summary .kpi-card:nth-child(4) > span::after {
  content: "?";
}

/* Circulo decorativo inferior */
.rv-kpis .kpi-card::after,
.variable-income-kpis .kpi-card::after,
.variable-income-summary .kpi-card::after {
  content: "";
  position: absolute;
  right: -30px;
  bottom: -52px;
  width: 105px;
  height: 105px;
  z-index: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}

/* Pequeno grafico canto superior direito */
.rv-kpis .kpi-card::before,
.variable-income-kpis .kpi-card::before,
.variable-income-summary .kpi-card::before {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 42px;
  height: 35px;
  z-index: 1;
  opacity: .22;
  background:
    linear-gradient(
      rgba(255,255,255,.95),
      rgba(255,255,255,.95)
    ) left bottom / 8px 14px no-repeat,
    linear-gradient(
      rgba(255,255,255,.95),
      rgba(255,255,255,.95)
    ) center bottom / 8px 23px no-repeat,
    linear-gradient(
      rgba(255,255,255,.95),
      rgba(255,255,255,.95)
    ) right bottom / 8px 34px no-repeat;
}

/* Moedas no card de proventos */
.rv-kpis .kpi-card:nth-child(3)::before,
.variable-income-kpis .kpi-card:nth-child(3)::before,
.variable-income-summary .kpi-card:nth-child(3)::before {
  width: 40px;
  height: 36px;
  background:
    radial-gradient(
      ellipse,
      transparent 42%,
      rgba(255,255,255,.95) 44% 57%,
      transparent 59%
    ) center 0 / 36px 12px no-repeat,
    radial-gradient(
      ellipse,
      transparent 42%,
      rgba(255,255,255,.95) 44% 57%,
      transparent 59%
    ) center 10px / 36px 12px no-repeat,
    radial-gradient(
      ellipse,
      transparent 42%,
      rgba(255,255,255,.95) 44% 57%,
      transparent 59%
    ) center 20px / 36px 12px no-repeat;
}

/* Rentabilidade igual ao badge da Previdencia */
#rv-economic-return {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  max-width: max-content !important;
  margin-top: 10px !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* Responsividade */
@media (max-width: 1100px) {
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary {
    grid-template-columns: 1fr !important;
  }
}


/* Renda variavel - icones individuais finais */

/* Remove definitivamente os simbolos antigos */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card > span::after {
  content: "" !important;
  width: 20px !important;
  height: 20px !important;
  left: 30px !important;
  top: 26px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

/* 1 - Valor atual: moedas */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(1) > span::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cellipse cx='12' cy='5' rx='6' ry='2.5'/%3E%3Cpath d='M6 5v4c0 1.4 2.7 2.5 6 2.5s6-1.1 6-2.5V5'/%3E%3Cpath d='M6 9v4c0 1.4 2.7 2.5 6 2.5s6-1.1 6-2.5V9'/%3E%3Cpath d='M6 13v4c0 1.4 2.7 2.5 6 2.5s6-1.1 6-2.5v-4'/%3E%3C/svg%3E") !important;
}

/* 2 - Capital aportado: carteira */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(2) > span::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h15a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h12'/%3E%3Cpath d='M16 11h6v5h-6a2.5 2.5 0 0 1 0-5z'/%3E%3C/svg%3E") !important;
}

/* 3 - Proventos reinvestidos: ciclo */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(3) > span::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7v5h-5'/%3E%3Cpath d='M4 17v-5h5'/%3E%3Cpath d='M6.1 9a7 7 0 0 1 11.4-2.3L20 9'/%3E%3Cpath d='M17.9 15a7 7 0 0 1-11.4 2.3L4 15'/%3E%3C/svg%3E") !important;
}

/* 4 - Resultado economico: crescimento */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(4) > span::after {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 17l5-5 4 3 7-8'/%3E%3Cpath d='M15 7h5v5'/%3E%3C/svg%3E") !important;
}


/* DESENHOS GRANDES DO CANTO SUPERIOR DIREITO */

:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card::before {
  content: "" !important;
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;
  width: 48px !important;
  height: 42px !important;
  opacity: .23 !important;
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

/* Azul: barras */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(1)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 42'%3E%3Crect x='3' y='26' width='9' height='13' rx='2' fill='%23fff'/%3E%3Crect x='19' y='16' width='9' height='23' rx='2' fill='%23fff'/%3E%3Crect x='35' y='4' width='9' height='35' rx='2' fill='%23fff'/%3E%3C/svg%3E") !important;
}

/* Verde: carteira */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(2)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 42' fill='none'%3E%3Crect x='5' y='10' width='37' height='27' rx='6' fill='%23fff'/%3E%3Cpath d='M12 10V6h23v4' stroke='%23fff' stroke-width='5' stroke-linecap='round'/%3E%3Crect x='29' y='19' width='17' height='10' rx='5' fill='%23fff'/%3E%3C/svg%3E") !important;
}

/* Dourado: pilha de moedas */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(3)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 42' fill='none' stroke='%23fff' stroke-width='2'%3E%3Cellipse cx='24' cy='8' rx='14' ry='5'/%3E%3Cellipse cx='24' cy='19' rx='14' ry='5'/%3E%3Cellipse cx='24' cy='30' rx='14' ry='5'/%3E%3C/svg%3E") !important;
}

/* Roxo: grafico crescente */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card:nth-child(4)::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 42' fill='none'%3E%3Crect x='3' y='28' width='8' height='11' rx='2' fill='%23fff'/%3E%3Crect x='17' y='20' width='8' height='19' rx='2' fill='%23fff'/%3E%3Crect x='31' y='10' width='8' height='29' rx='2' fill='%23fff'/%3E%3Cpath d='M5 21l11-9 8 4L42 3' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M35 3h7v7' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}


/* Renda variavel - alinhamento interno final */

:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) > .kpi-card {
  display: grid !important;
  grid-template-rows:
    36px
    42px
    1fr !important;
  align-content: start !important;
}

/* Titulo e icone na mesma linha */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card > span {
  align-self: center !important;
  margin: 0 !important;
  min-height: 36px !important;
  line-height: 36px !important;
}

/* Valor sempre come?a na mesma altura */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card > strong {
  align-self: center !important;
  margin: 0 !important;
}

/* Descricao sempre na terceira faixa */
:is(
  .rv-kpis,
  .variable-income-kpis,
  .variable-income-summary
) .kpi-card > small {
  align-self: start !important;
  margin-top: 7px !important;
}

/* Resultado economico */
#rv-economic-result {
  align-self: center !important;
}

/* Badge de rentabilidade no mesmo bloco inferior */
#rv-economic-return {
  margin-top: 7px !important;
  align-self: start !important;
}


/* Renda variavel - estrutura final normalizada */

.variable-income-kpis {
  display: grid !important;
  grid-template-columns:
    repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
}

.variable-income-kpis .rv-kpi {
  position: relative !important;
  display: block !important;

  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;

  height: 160px !important;
  min-height: 160px !important;

  padding: 18px 22px !important;

  border: 0 !important;
  border-radius: 17px !important;

  overflow: hidden !important;

  box-sizing: border-box !important;

  box-shadow:
    0 9px 24px rgba(15,23,42,.09);
}

/* Cancela pseudos antigos */
.variable-income-kpis .rv-kpi::before {
  content: none !important;
}

.variable-income-kpis .rv-kpi::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -52px;
  width: 105px;
  height: 105px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  z-index: 0;
}

/* Cores */
.variable-income-kpis .rv-kpi-market {
  background:
    linear-gradient(
      135deg,
      #0f5895 0%,
      #1689ed 100%
    ) !important;
}

.variable-income-kpis .rv-kpi-capital {
  background:
    linear-gradient(
      135deg,
      #08775d 0%,
      #19ba83 100%
    ) !important;
}

.variable-income-kpis .rv-kpi-income {
  background:
    linear-gradient(
      135deg,
      #9f7000 0%,
      #e6ae10 100%
    ) !important;
}

.variable-income-kpis .rv-kpi-result {
  background:
    linear-gradient(
      135deg,
      #5a2ab6 0%,
      #9348ed 100%
    ) !important;
}

/* Cabecalho */
.rv-kpi-heading {
  position: relative;
  z-index: 3;

  display: flex;
  align-items: center;

  height: 36px;
  gap: 10px;

  margin: 0 0 10px !important;
}

.rv-kpi-heading > span {
  margin: 0 !important;
  padding: 0 !important;

  min-height: 0 !important;
  line-height: 1.2 !important;

  color: #fff !important;

  font-size: 13px !important;
  font-weight: 750 !important;

  white-space: nowrap;
}

/* Icone circular */
.rv-kpi-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 36px;
  flex: 0 0 36px;

  border-radius: 50%;

  background:
    rgba(255,255,255,.17);

  box-shadow:
    inset 0 0 0 1px
    rgba(255,255,255,.08);
}

.rv-kpi-icon svg {
  width: 20px;
  height: 20px;

  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Todos os valores na mesma linha */
.variable-income-kpis .rv-kpi > strong {
  position: relative;
  z-index: 3;

  display: block;

  height: 35px;

  margin: 0 !important;

  color: #fff !important;

  font-size: clamp(
    23px,
    1.75vw,
    29px
  ) !important;

  font-weight: 800 !important;
  line-height: 35px !important;

  letter-spacing: -.025em;

  white-space: nowrap;
}

/* Terceira faixa igual */
.variable-income-kpis .rv-kpi > small {
  position: relative;
  z-index: 3;

  display: block;

  margin: 6px 0 0 !important;

  max-width: 79%;

  color:
    rgba(255,255,255,.88) !important;

  font-size: 11px !important;
  line-height: 1.35;
}

/* Badge do resultado */
#rv-economic-return {
  display: inline-flex !important;

  align-items: center;
  justify-content: center;

  width: auto !important;
  max-width: max-content !important;

  min-height: 27px;

  margin-top: 5px !important;

  padding: 0 10px !important;

  border-radius: 999px !important;

  background:
    rgba(255,255,255,.18) !important;

  color: #fff !important;

  font-size: 10px !important;
  font-weight: 800 !important;

  line-height: 1 !important;

  white-space: nowrap !important;
}


/* DESENHOS SUPERIORES */

.rv-bars-watermark,
.rv-coins-watermark,
.rv-growth-watermark,
.rv-wallet-watermark {
  position: absolute !important;
  z-index: 1 !important;

  top: 19px !important;
  right: 18px !important;

  opacity: .23;
}

/* Barras azul */
.rv-bars-watermark {
  display: flex;
  align-items: flex-end;

  width: 44px;
  height: 36px;

  gap: 6px;
}

.rv-bars-watermark i {
  display: block;

  width: 8px;

  border-radius:
    3px 3px 1px 1px;

  background: #fff;
}

.rv-bars-watermark i:nth-child(1) {
  height: 14px;
}

.rv-bars-watermark i:nth-child(2) {
  height: 24px;
}

.rv-bars-watermark i:nth-child(3) {
  height: 35px;
}

/* Carteira verde */
.rv-wallet-watermark {
  width: 45px;
  height: 32px;

  border-radius: 7px;

  background: #fff;
}

.rv-wallet-watermark::before {
  content: "";

  position: absolute;

  left: 7px;
  top: -8px;

  width: 32px;
  height: 11px;

  border-radius: 5px;

  background:
    rgba(255,255,255,.82);
}

.rv-wallet-watermark::after {
  content: "";

  position: absolute;

  right: -3px;
  top: 11px;

  width: 19px;
  height: 11px;

  border-radius: 7px;

  background:
    rgba(255,255,255,.9);
}

/* Moedas douradas */
.rv-coins-watermark {
  display: grid;

  width: 40px;

  gap: 3px;
}

.rv-coins-watermark i {
  display: block;

  width: 31px;
  height: 8px;

  margin-left: auto;

  border: 2px solid #fff;
  border-radius: 50%;
}

/* Crescimento roxo */
.rv-growth-watermark {
  display: flex;
  align-items: flex-end;

  width: 45px;
  height: 36px;

  gap: 6px;
}

.rv-growth-watermark i {
  width: 8px;

  border-radius:
    3px 3px 1px 1px;

  background: #fff;
}

.rv-growth-watermark i:nth-child(1) {
  height: 12px;
}

.rv-growth-watermark i:nth-child(2) {
  height: 22px;
}

.rv-growth-watermark i:nth-child(3) {
  height: 34px;
}

.rv-growth-watermark::before {
  content: "";

  position: absolute;

  right: 0;
  top: -7px;

  width: 39px;
  height: 22px;

  border-top:
    3px solid #fff;

  border-right:
    3px solid #fff;

  border-radius:
    0 6px 0 0;

  transform:
    skewY(-25deg);
}


/* Responsividade */
@media (max-width: 1100px) {
  .variable-income-kpis {
    grid-template-columns:
      repeat(2, minmax(0, 1fr))
      !important;
  }
}

@media (max-width: 700px) {
  .variable-income-kpis {
    grid-template-columns:
      1fr !important;
  }
}


/* Renda variavel - correcao moedas */

.rv-coins-watermark {
  position: absolute !important;
  top: 18px !important;
  right: 18px !important;

  width: 46px !important;
  height: 40px !important;

  display: block !important;

  opacity: .23 !important;
}

.rv-coins-watermark i {
  position: absolute !important;
  left: 7px !important;

  width: 32px !important;
  height: 10px !important;

  margin: 0 !important;

  border: 2px solid rgba(255,255,255,.95) !important;
  border-radius: 50% !important;

  background:
    rgba(255,255,255,.08) !important;

  box-sizing: border-box !important;
}

.rv-coins-watermark i:nth-child(1) {
  top: 2px !important;
}

.rv-coins-watermark i:nth-child(2) {
  top: 13px !important;
}

.rv-coins-watermark i:nth-child(3) {
  top: 24px !important;
}

/* Pequenas ligacoes laterais para parecer uma pilha */
.rv-coins-watermark::before,
.rv-coins-watermark::after {
  content: "";
  position: absolute;

  left: 7px;
  width: 32px;

  border-left:
    2px solid rgba(255,255,255,.65);
  border-right:
    2px solid rgba(255,255,255,.65);

  box-sizing: border-box;
}

.rv-coins-watermark::before {
  top: 7px;
  height: 12px;
}

.rv-coins-watermark::after {
  top: 18px;
  height: 12px;
}


/* Renda variavel - badge resultado final */

.rv-result-value {
  position: relative;
  z-index: 3;

  display: flex;
  align-items: center;
  gap: 10px;

  height: 35px;
  margin: 0;
}

.rv-result-value strong {
  margin: 0 !important;
}

#rv-economic-return-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 27px;
  padding: 0 10px;

  border-radius: 999px;

  background:
    rgba(255,255,255,.18);

  color: #fff;

  font-size: 11px;
  font-weight: 800;

  line-height: 1;
  white-space: nowrap;
}

.rv-kpi-result > small {
  margin-top: 6px !important;
}


/* =========================================================
   VGBL - RENDIMENTO ACUMULADO
   Espelha o Resultado Economico da Renda Variavel
   ========================================================= */

/* Circulo inferior - mesmo tamanho da Renda Variavel */
.pension-kpi-return::after {
  width: 96px !important;
  height: 96px !important;
  right: -26px !important;
  bottom: -43px !important;
  top: auto !important;
  left: auto !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.08) !important;
}

/* Container do grafico */
.pension-kpi-return .pension-return-watermark {
  position: absolute !important;

  display: flex !important;
  align-items: flex-end !important;

  width: 45px !important;
  height: 36px !important;

  gap: 6px !important;

  top: 19px !important;
  right: 18px !important;
  bottom: auto !important;
  left: auto !important;

  margin: 0 !important;

  transform: none !important;
  opacity: .23 !important;

  z-index: 1 !important;
}

/* Barras */
.pension-kpi-return .pension-return-watermark i {
  display: block !important;

  width: 8px !important;

  border-radius: 3px 3px 1px 1px !important;

  background: #fff !important;
}

/* Barra 1 */
.pension-kpi-return .pension-return-watermark i:nth-child(1) {
  height: 12px !important;
}

/* Barra 2 */
.pension-kpi-return .pension-return-watermark i:nth-child(2) {
  height: 22px !important;
}

/* Barra 3 */
.pension-kpi-return .pension-return-watermark i:nth-child(3) {
  height: 34px !important;
}

/* Flecha crescente - copia do Resultado Economico */
.pension-kpi-return .pension-return-watermark::before {
  content: "" !important;

  position: absolute !important;

  right: 0 !important;
  top: -7px !important;

  width: 39px !important;
  height: 22px !important;

  border-top: 3px solid #fff !important;
  border-right: 3px solid #fff !important;

  border-radius: 0 6px 0 0 !important;

  transform: skewY(-24deg) rotate(-2deg) !important;

  opacity: 1 !important;
}

/* Mantem o conteudo acima das decoracoes */
.pension-kpi-return .pension-kpi-heading,
.pension-kpi-return .pension-return-value,
.pension-kpi-return > small {
  position: relative !important;
  z-index: 3 !important;
}


/* =========================================================
   VGBL - Bolas inferiores azul e verde
   Mesmo tamanho do card roxo
   ========================================================= */

.pension-kpi-balance::after,
.pension-kpi-capital::after {
  width: 96px !important;
  height: 96px !important;
  right: -26px !important;
  bottom: -43px !important;
  top: auto !important;
  left: auto !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.08) !important;
}


/* Ajuste de espacamento do aviso da Previdencia */
.pension-statement-notice {
  margin-top: 16px !important;
  margin-bottom: 18px !important;
}


/* =========================================
   Renda Variavel - Registro de movimentacao
   padrao visual semelhante ao VGBL
========================================= */

.rv-registration-wrapper {
  margin-top: 28px;
}

.rv-registration-panel {
  background: #f7f9fc !important;
  border: 1px solid #dbe4ef !important;
  border-radius: 18px !important;
  padding: 18px !important;
  box-shadow: none !important;
}

.rv-registration-panel > .panel-heading {
  margin-bottom: 12px !important;
}

.rv-registration-panel .panel-heading h2 {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
}

.rv-registration-panel .panel-heading p {
  margin: 0 !important;
  color: #64748b !important;
}

.rv-registration-panel .registration-mode-tabs,
.rv-registration-panel #registration-conversation-mode,
.rv-registration-panel #registration-form-mode,
.rv-registration-panel #registration-preview,
.rv-registration-panel #registration-advisor-result {
  background: #ffffff;
}

.rv-registration-panel .registration-mode-tabs {
  border: 1px solid #dbe4ef;
  border-bottom: 0;
  border-radius: 14px 14px 0 0;
  padding: 16px 18px 8px;
  margin: 0;
}

.rv-registration-panel #registration-conversation-mode,
.rv-registration-panel #registration-form-mode {
  border: 1px solid #dbe4ef;
  border-top: 0;
  border-radius: 0 0 14px 14px;
  padding: 18px;
}

.rv-registration-panel #registration-preview,
.rv-registration-panel #registration-advisor-result {
  border: 1px solid #dbe4ef;
  border-radius: 14px;
  padding: 18px;
  margin-top: 14px;
}

.rv-registration-panel textarea,
.rv-registration-panel input,
.rv-registration-panel select {
  background: #ffffff !important;
}

.rv-registration-panel #registration-preview-button,
.rv-registration-panel #registration-form-mode button[type="submit"] {
  width: 100%;
  margin-top: 14px;
}


/* =========================================
   Dashboard - KPIs premium
   mesmo padrao visual da Renda Variavel
========================================= */

.wealth-headline-grid-premium {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.wealth-dashboard-kpi {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: 20px 21px !important;
  border: 0 !important;
  border-radius: 18px !important;
  color: #fff !important;
  box-shadow: none !important;
}

.wealth-dashboard-kpi span,
.wealth-dashboard-kpi small,
.wealth-dashboard-kpi strong {
  position: relative;
  z-index: 2;
  color: #fff !important;
}

.wealth-dashboard-kpi > span {
  font-weight: 800;
}

.wealth-dashboard-kpi > strong,
.wealth-dashboard-result-value > strong:first-child {
  display: block;
  margin-top: 18px;
  font-size: 28px !important;
  line-height: 1.05;
}

.wealth-dashboard-kpi small {
  display: block;
  margin-top: 10px;
  color: rgba(255,255,255,.9) !important;
  line-height: 1.4;
}

/* Azul - patrimonio */
.wealth-dashboard-kpi-current {
  background:
    linear-gradient(
      135deg,
      #1265a8 0%,
      #218be7 100%
    ) !important;
}

/* Verde - capital */
.wealth-dashboard-kpi-capital {
  background:
    linear-gradient(
      135deg,
      #08775d 0%,
      #19ba83 100%
    ) !important;
}

/* Roxo - resultado */
.wealth-dashboard-kpi-result {
  background:
    linear-gradient(
      135deg,
      #5a2ab6 0%,
      #9348ed 100%
    ) !important;
}

/* Dourado - proventos */
.wealth-dashboard-kpi-income {
  background:
    linear-gradient(
      135deg,
      #a87400 0%,
      #e4ae12 100%
    ) !important;
}

/* Circulo decorativo inferior */
.wealth-dashboard-kpi::after {
  content: "";
  position: absolute;
  width: 105px;
  height: 105px;
  right: -28px;
  bottom: -45px;
  border-radius: 50%;
  background: rgba(255,255,255,.09);
  pointer-events: none;
}

/* Rentabilidade dentro do resultado */
.wealth-dashboard-result-value {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  flex-wrap: wrap;
}

.wealth-dashboard-result-value > strong:first-child {
  margin-top: 0 !important;
}

.wealth-dashboard-return-badge {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  margin: 0 !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.18) !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  color: #fff !important;
}

/* Grafico azul */
.wealth-dashboard-bars {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: flex-end;
  gap: 5px;
  height: 38px;
  opacity: .23;
}

.wealth-dashboard-bars i {
  width: 8px;
  border-radius: 3px 3px 1px 1px;
  background: #fff;
}

.wealth-dashboard-bars i:nth-child(1) { height: 13px; }
.wealth-dashboard-bars i:nth-child(2) { height: 24px; }
.wealth-dashboard-bars i:nth-child(3) { height: 36px; }

/* Carteira verde */
.wealth-dashboard-wallet {
  position: absolute;
  top: 22px;
  right: 20px;
  width: 40px;
  height: 30px;
  border-radius: 7px;
  background: rgba(255,255,255,.23);
}

.wealth-dashboard-wallet::before {
  content: "";
  position: absolute;
  width: 31px;
  height: 8px;
  right: 2px;
  top: -7px;
  border-radius: 6px 6px 0 0;
  background: rgba(255,255,255,.14);
}

/* Grafico de crescimento roxo */
.wealth-dashboard-growth {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: flex-end;
  width: 45px;
  height: 36px;
  gap: 6px;
  opacity: .23;
}

.wealth-dashboard-growth i {
  width: 8px;
  border-radius: 3px 3px 1px 1px;
  background: #fff;
}

.wealth-dashboard-growth i:nth-child(1) { height: 12px; }
.wealth-dashboard-growth i:nth-child(2) { height: 22px; }
.wealth-dashboard-growth i:nth-child(3) { height: 34px; }

.wealth-dashboard-growth::before {
  content: "";
  position: absolute;
  right: 0;
  top: -7px;
  width: 39px;
  height: 22px;
  border-top: 3px solid #fff;
  border-right: 3px solid #fff;
  border-radius: 0 6px 0 0;
  transform: skewY(-24deg) rotate(-2deg);
}

/* Moedas douradas */
.wealth-dashboard-coins {
  position: absolute;
  top: 23px;
  right: 20px;
  width: 43px;
  height: 36px;
  opacity: .23;
}

.wealth-dashboard-coins i {
  position: absolute;
  left: 4px;
  width: 32px;
  height: 9px;
  border: 2px solid #fff;
  border-radius: 50%;
}

.wealth-dashboard-coins i:nth-child(1) { top: 0; }
.wealth-dashboard-coins i:nth-child(2) { top: 10px; }
.wealth-dashboard-coins i:nth-child(3) { top: 20px; }

@media (max-width: 1100px) {
  .wealth-headline-grid-premium {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 650px) {
  .wealth-headline-grid-premium {
    grid-template-columns: 1fr !important;
  }
}

/* Atlas — simplificação da navegação */
[data-workspace-view="carteira"] {
  display: none !important;
}

/* Reserva dentro de Aportes no mesmo padrão das demais telas */
#manual-wealth-panel {
  margin-bottom: 20px;
}

#manual-wealth-panel .manual-wealth-grid {
  grid-template-columns: minmax(0, 520px);
}

#manual-wealth-panel .manual-wealth-card {
  width: 100%;
}

/* Ajuste visual — Planejamento / Meta patrimonial */

/* Quatro KPIs com identidades visuais diferentes */
.goal-kpis article:nth-child(1) {
  border-color: #c4b5fd;
  background:
    linear-gradient(
      135deg,
      #f5f3ff 0%,
      #ede9fe 100%
    );
  box-shadow:
    0 8px 22px rgba(124, 58, 237, .08);
}

.goal-kpis article:nth-child(2) {
  border-color: #bfdbfe;
  background:
    linear-gradient(
      135deg,
      #eff6ff 0%,
      #dbeafe 100%
    );
  box-shadow:
    0 8px 22px rgba(37, 99, 235, .08);
}

.goal-kpis article:nth-child(3) {
  border-color: #bbf7d0;
  background:
    linear-gradient(
      135deg,
      #f0fdf4 0%,
      #dcfce7 100%
    );
  box-shadow:
    0 8px 22px rgba(22, 163, 74, .08);
}

.goal-kpis article:nth-child(4) {
  border-color: #fed7aa;
  background:
    linear-gradient(
      135deg,
      #fff7ed 0%,
      #ffedd5 100%
    );
  box-shadow:
    0 8px 22px rgba(234, 88, 12, .08);
}

/* Mantém o conteúdo acima dos detalhes decorativos */
.goal-kpis article {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.goal-kpis article > * {
  position: relative;
  z-index: 2;
}

/* Detalhe decorativo individual */
.goal-kpis article::after {
  content: "";
  position: absolute;
  right: -20px;
  bottom: -28px;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  opacity: .16;
  z-index: 1;
}

.goal-kpis article:nth-child(1)::after {
  background: #7c3aed;
}

.goal-kpis article:nth-child(2)::after {
  background: #2563eb;
}

.goal-kpis article:nth-child(3)::after {
  background: #16a34a;
}

.goal-kpis article:nth-child(4)::after {
  background: #ea580c;
}

/* Tooltip específico do gráfico de projeção */
.goal-chart-bar + small {
  user-select: none;
}

.atlas-chart-tooltip span:has(b:only-child),
.atlas-chart-tooltip strong + span:last-child {
  grid-template-columns: 1fr;
}

/* Tooltip da projeção: descrição em cima e valor destacado abaixo */
.atlas-chart-tooltip strong + span:last-child {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 0;
}

.atlas-chart-tooltip strong + span:last-child b {
  display: block;
  font-size: 1.08rem;
  line-height: 1.25;
  white-space: nowrap;
}

/* Planejamento — acabamento dos cards KPI */

.goal-kpis article {
  padding-top: 46px;
}

/* Ícone superior */
.goal-kpis article::before {
  position: absolute;
  top: 15px;
  left: 18px;
  z-index: 2;

  width: 24px;
  height: 24px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 8px;

  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}

/* Patrimônio atual */
.goal-kpis article:nth-child(1)::before {
  content: "◆";
  color: #6d28d9;
  background: rgba(124, 58, 237, .12);
}

/* Falta para a meta */
.goal-kpis article:nth-child(2)::before {
  content: "↗";
  color: #1d4ed8;
  background: rgba(37, 99, 235, .12);
}

/* Prazo estimado */
.goal-kpis article:nth-child(3)::before {
  content: "◷";
  color: #15803d;
  background: rgba(22, 163, 74, .12);
}

/* Renda passiva */
.goal-kpis article:nth-child(4)::before {
  content: "₿";
  color: #c2410c;
  background: rgba(234, 88, 12, .12);
}

/* Pequena seta no canto superior direito */
.goal-kpis article > span:first-child::after {
  content: "↗";
  position: absolute;
  top: -31px;
  right: 0;

  font-size: 15px;
  font-weight: 900;
  opacity: .55;
}

.goal-kpis article:nth-child(1)
  > span:first-child::after {
  color: #7c3aed;
}

.goal-kpis article:nth-child(2)
  > span:first-child::after {
  color: #2563eb;
}

.goal-kpis article:nth-child(3)
  > span:first-child::after {
  color: #16a34a;
}

.goal-kpis article:nth-child(4)
  > span:first-child::after {
  color: #ea580c;
}


/* Planejamento Premium - padrao Previdencia */

.goal-kpis {
  gap: 16px;
}

/* Estrutura geral */
.goal-kpis article {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  min-height: 152px;
  padding: 62px 20px 18px;

  border: 0;
  border-radius: 20px;

  color: #fff;

  box-shadow:
    0 14px 28px rgba(15, 23, 42, .10);

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.goal-kpis article:hover {
  transform: translateY(-2px);

  box-shadow:
    0 18px 34px rgba(15, 23, 42, .14);
}

/* Gradientes */

.goal-kpis article:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #6d28d9 0%,
      #7c3aed 52%,
      #9333ea 100%
    );
}

.goal-kpis article:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #1d4ed8 0%,
      #2563eb 52%,
      #3b82f6 100%
    );
}

.goal-kpis article:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #15803d 0%,
      #16a34a 50%,
      #22c55e 100%
    );
}

.goal-kpis article:nth-child(4) {
  background:
    linear-gradient(
      135deg,
      #c2410c 0%,
      #ea580c 50%,
      #f97316 100%
    );
}

/* Texto */

.goal-kpis article > span:first-of-type {
  position: relative;
  z-index: 3;

  display: block;

  color: rgba(255, 255, 255, .94);

  font-size: 14px;
  font-weight: 700;
}

.goal-kpis article > strong {
  position: relative;
  z-index: 3;

  display: block;

  margin-top: 8px;

  color: #fff;

  font-size: 1.62rem;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.goal-kpis article > small {
  position: relative;
  z-index: 3;

  display: block;

  margin-top: 9px;

  color: rgba(255, 255, 255, .88);

  font-size: .82rem;
  line-height: 1.35;
}

/* Ícone superior esquerdo */

.goal-kpis article::before {
  position: absolute;
  top: 18px;
  left: 20px;
  z-index: 4;

  width: 36px;
  height: 36px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;

  color: #fff;
  background: rgba(255, 255, 255, .18);

  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .15);

  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

/* Patrimônio */
.goal-kpis article:nth-child(1)::before {
  content: "▣";
}

/* Falta para a meta */
.goal-kpis article:nth-child(2)::before {
  content: "◎";
}

/* Prazo */
.goal-kpis article:nth-child(3)::before {
  content: "◷";
}

/* Renda passiva */
.goal-kpis article:nth-child(4)::before {
  content: "≡";
}

/* Círculo decorativo inferior */

.goal-kpis article::after {
  content: "";

  position: absolute;
  right: -22px;
  bottom: -35px;
  z-index: 1;

  width: 112px;
  height: 112px;

  border-radius: 50%;

  background:
    rgba(255, 255, 255, .14);

  opacity: 1;
  pointer-events: none;
}

/* Seta superior direita */

.goal-kpis article > span:first-of-type::after {
  content: "↗";

  position: absolute;
  top: -42px;
  right: 0;
  z-index: 5;

  width: 34px;
  height: 34px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  color: #fff;
  background: rgba(255, 255, 255, .22);

  font-size: 17px;
  font-weight: 900;
  line-height: 1;

  opacity: 1;
}

/* Detalhe gráfico no primeiro card */

.goal-kpis article:nth-child(1) {
  background-image:
    linear-gradient(
      135deg,
      #6d28d9 0%,
      #7c3aed 52%,
      #9333ea 100%
    );
}

.goal-kpis article:nth-child(1) > strong::after {
  content: "";

  position: absolute;
  right: 8px;
  bottom: -42px;
  z-index: -1;

  width: 62px;
  height: 55px;

  opacity: .13;

  background:
    linear-gradient(
      to top,
      rgba(255,255,255,.9) 0 100%
    );

  clip-path:
    polygon(
      0 100%,
      0 58%,
      15% 58%,
      15% 100%,
      27% 100%,
      27% 38%,
      42% 38%,
      42% 100%,
      54% 100%,
      54% 18%,
      69% 18%,
      69% 100%,
      81% 100%,
      81% 0,
      96% 0,
      96% 100%
    );
}

/* Detalhe carteira no segundo card */

.goal-kpis article:nth-child(2) > strong::after {
  content: "";

  position: absolute;
  right: 8px;
  bottom: -35px;
  z-index: -1;

  width: 68px;
  height: 45px;

  border-radius: 9px;

  background:
    rgba(255, 255, 255, .10);

  box-shadow:
    8px -7px 0 rgba(255, 255, 255, .07);
}

/* Detalhe temporal no terceiro card */

.goal-kpis article:nth-child(3) > strong::after {
  content: "";

  position: absolute;
  right: 10px;
  bottom: -37px;
  z-index: -1;

  width: 58px;
  height: 58px;

  border:
    8px solid rgba(255, 255, 255, .08);

  border-radius: 50%;
}

/* Detalhe renda no quarto card */

.goal-kpis article:nth-child(4) > strong::after {
  content: "";

  position: absolute;
  right: 13px;
  bottom: -36px;
  z-index: -1;

  width: 58px;
  height: 42px;

  border-radius: 50%;

  background:
    repeating-linear-gradient(
      to bottom,
      rgba(255,255,255,.10) 0 6px,
      transparent 6px 10px
    );
}

/* Responsividade */

@media (max-width: 900px) {
  .goal-kpis article {
    min-height: 145px;
  }
}

@media (max-width: 700px) {
  .goal-kpis article {
    min-height: 140px;
  }

  .goal-kpis article > strong {
    font-size: 1.45rem;
  }
}


/* Planejamento Premium - refinamento final */

/* Altura e respiro equivalentes aos cards da Previdência */
.goal-kpis article {
  min-height: 168px;
  padding:
    66px
    20px
    20px;
}

/* Ícones mais visíveis, como na Previdência */
.goal-kpis article::before {
  color: #ffffff !important;
  border-color: rgba(255,255,255,.20);
  background: rgba(255,255,255,.18);
  opacity: 1;
}

/* Símbolos individuais */
.goal-kpis article:nth-child(1)::before {
  content: "▣";
}

.goal-kpis article:nth-child(2)::before {
  content: "◎";
}

.goal-kpis article:nth-child(3)::before {
  content: "◷";
}

.goal-kpis article:nth-child(4)::before {
  content: "≡";
}

/* Seta com contraste semelhante à Previdência */
.goal-kpis article > span:first-of-type::after {
  color: #ffffff !important;
  background: rgba(255,255,255,.22);
  opacity: 1;
}

/* Títulos */
.goal-kpis article > span:first-of-type {
  color: #ffffff;
  font-weight: 700;
}

/* Valor principal */
.goal-kpis article > strong {
  color: #ffffff;
  font-weight: 900;
}

/* Texto auxiliar */
.goal-kpis article > small {
  color: rgba(255,255,255,.90);
}

/* Mantém os desenhos decorativos atrás do conteúdo */
.goal-kpis article > strong::after,
.goal-kpis article::after {
  pointer-events: none;
}

/* =========================================================
   PLANEJAMENTO — SIMULADOR DE CENÁRIOS PREMIUM
   ========================================================= */

.planning-simulator-card {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
}

.planning-simulator-main {
  gap: 16px;
}

.planning-simulator-field {
  position: relative;
  overflow: hidden;
  min-height: 198px;
  border-radius: 18px;
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    border-color .18s ease;
}

.planning-simulator-field:hover {
  transform: translateY(-2px);
}

/* Aporte mensal — roxo */
.planning-simulator-main
  > .planning-simulator-field:nth-child(1) {
  border-color: #d8b4fe;
  background:
    linear-gradient(
      135deg,
      #faf5ff 0%,
      #f3e8ff 100%
    );
  box-shadow:
    0 10px 24px rgba(124, 58, 237, .08);
}

/* Retorno esperado — azul */
.planning-simulator-main
  > .planning-simulator-field:nth-child(2) {
  border-color: #bfdbfe;
  background:
    linear-gradient(
      135deg,
      #eff6ff 0%,
      #dbeafe 100%
    );
  box-shadow:
    0 10px 24px rgba(37, 99, 235, .08);
}

/* Meta patrimonial — verde */
.planning-simulator-main
  > .planning-simulator-field:nth-child(3) {
  border-color: #bbf7d0;
  background:
    linear-gradient(
      135deg,
      #f0fdf4 0%,
      #dcfce7 100%
    );
  box-shadow:
    0 10px 24px rgba(22, 163, 74, .08);
}

/* Campo principal */
.planning-simulator-field input,
.planning-simulator-field select,
.planning-currency-input,
.planning-percent-input {
  background: rgba(255, 255, 255, .92);
}

/* Botões rápidos */
.planning-quick-options button {
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    color .15s ease,
    background .15s ease,
    border-color .15s ease;
}

.planning-quick-options button:hover {
  transform: translateY(-1px);
  box-shadow:
    0 6px 14px rgba(15, 23, 42, .08);
}

/* Aporte — botões roxos */
.planning-simulator-main
  > .planning-simulator-field:nth-child(1)
  .planning-quick-options button {
  border-color: #c4b5fd;
  color: #6d28d9;
  background: rgba(255, 255, 255, .72);
}

/* Retorno — botões azuis */
.planning-simulator-main
  > .planning-simulator-field:nth-child(2)
  .planning-quick-options button {
  border-color: #bfdbfe;
  color: #1d4ed8;
  background: rgba(255, 255, 255, .72);
}

/* Estado selecionado */
.planning-quick-options button.active,
.planning-quick-options button.is-active,
.planning-quick-options button[aria-pressed="true"] {
  color: #fff !important;
  border-color: transparent !important;
  background:
    linear-gradient(
      135deg,
      #6d28d9 0%,
      #7c3aed 100%
    ) !important;
  box-shadow:
    0 7px 16px rgba(124, 58, 237, .22);
}

/* Selecionado no retorno fica azul */
.planning-simulator-main
  > .planning-simulator-field:nth-child(2)
  .planning-quick-options button.active,
.planning-simulator-main
  > .planning-simulator-field:nth-child(2)
  .planning-quick-options button.is-active,
.planning-simulator-main
  > .planning-simulator-field:nth-child(2)
  .planning-quick-options button[aria-pressed="true"] {
  background:
    linear-gradient(
      135deg,
      #1d4ed8 0%,
      #2563eb 100%
    ) !important;
  box-shadow:
    0 7px 16px rgba(37, 99, 235, .22);
}

/* Status salvo */
.planning-live-status {
  border-radius: 999px;
  padding: 8px 13px;
  color: #15803d;
  background: #ecfdf5;
  border: 1px solid #bbf7d0;
  font-weight: 700;
}

/* Mobile */
@media (max-width: 800px) {
  .planning-simulator-field {
    min-height: auto;
  }
}

/* =========================================================
   PLANEJAMENTO — PREMISSAS E RENDA POTENCIAL PREMIUM
   ========================================================= */

.financial-intelligence-panel {
  border-radius: 22px;
}

.financial-intelligence-grid {
  gap: 16px;
}

/* Card de premissas permanece claro */
.financial-assumptions-card {
  position: relative;
  overflow: hidden;
  border: 1px solid #d7e0ec;
  border-radius: 18px;
  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );
  box-shadow:
    0 8px 20px rgba(15, 23, 42, .04);
}

/* Renda potencial hoje — roxo */
.financial-income-card:not(.featured) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #6d28d9 0%,
      #7c3aed 52%,
      #9333ea 100%
    );
  box-shadow:
    0 14px 28px rgba(124, 58, 237, .18);
}

/* Renda potencial na meta — verde */
.financial-income-card.featured {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #15803d 0%,
      #16a34a 52%,
      #22c55e 100%
    );
  box-shadow:
    0 14px 28px rgba(22, 163, 74, .18);
}

/* Textos brancos */
.financial-income-card span,
.financial-income-card strong,
.financial-income-card small,
.financial-income-card.featured span,
.financial-income-card.featured strong,
.financial-income-card.featured small {
  position: relative;
  z-index: 3;
  color: #ffffff;
}

.financial-income-card span {
  font-weight: 700;
}

.financial-income-card strong {
  font-weight: 900;
  letter-spacing: -.025em;
}

.financial-income-card small {
  color: rgba(255, 255, 255, .88);
}

/* Círculo decorativo inferior */
.financial-income-card::after {
  content: "";
  position: absolute;
  right: -30px;
  bottom: -42px;
  z-index: 1;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .11);
  pointer-events: none;
}

/* Ícone superior */
.financial-income-card::before {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 4;

  width: 38px;
  height: 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;

  color: #ffffff;
  background: rgba(255,255,255,.18);

  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}

/* Renda atual */
.financial-income-card:not(.featured)::before {
  content: "≋";
}

/* Renda na meta */
.financial-income-card.featured::before {
  content: "◎";
}

/* Espaço para o ícone */
.financial-income-card {
  padding-top: 72px;
}

/* Seta superior direita */
.financial-income-card span:first-child::after {
  content: "↗";
  position: absolute;
  top: -49px;
  right: 0;

  width: 34px;
  height: 34px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  color: #ffffff;
  background: rgba(255,255,255,.20);

  font-size: 17px;
  font-weight: 900;
}

/* Barrinhas decorativas no card roxo */
.financial-income-card:not(.featured) strong::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: -52px;
  z-index: -1;

  width: 68px;
  height: 54px;

  opacity: .12;

  background:
    linear-gradient(
      to top,
      rgba(255,255,255,.95) 0 100%
    );

  clip-path:
    polygon(
      0 100%,
      0 65%,
      15% 65%,
      15% 100%,
      28% 100%,
      28% 45%,
      43% 45%,
      43% 100%,
      56% 100%,
      56% 25%,
      71% 25%,
      71% 100%,
      84% 100%,
      84% 0,
      100% 0,
      100% 100%
    );
}

/* Anel decorativo no card verde */
.financial-income-card.featured strong::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: -58px;
  z-index: -1;

  width: 70px;
  height: 70px;

  border:
    9px solid rgba(255,255,255,.08);

  border-radius: 50%;
}

/* Nota inferior */
.financial-transparency-note {
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  background:
    linear-gradient(
      90deg,
      #f8fafc 0%,
      #f1f5f9 100%
    );
}

/* Interação sutil */
.financial-income-card {
  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.financial-income-card:hover {
  transform: translateY(-2px);
}

/* Responsivo */
@media (max-width: 800px) {
  .financial-income-card {
    padding-top: 68px;
  }
}

/* =========================================================
   PLANEJAMENTO — REFINAMENTO DO SIMULADOR
   ========================================================= */

/* Base mais limpa */
.planning-simulator-field {
  min-height: 198px;
  border-width: 1px;
  background: #ffffff !important;
  box-shadow:
    0 8px 20px rgba(15, 23, 42, .035) !important;
}

/* Aporte — identidade roxa */
.planning-simulator-main
  > .planning-simulator-field:nth-child(1) {
  border-color: #d8b4fe !important;
  box-shadow:
    inset 0 4px 0 #7c3aed,
    0 8px 20px rgba(124, 58, 237, .05) !important;
}

/* Retorno — identidade azul */
.planning-simulator-main
  > .planning-simulator-field:nth-child(2) {
  border-color: #bfdbfe !important;
  box-shadow:
    inset 0 4px 0 #2563eb,
    0 8px 20px rgba(37, 99, 235, .05) !important;
}

/* Meta — identidade verde */
.planning-simulator-main
  > .planning-simulator-field:nth-child(3) {
  border-color: #bbf7d0 !important;
  box-shadow:
    inset 0 4px 0 #16a34a,
    0 8px 20px rgba(22, 163, 74, .05) !important;
}

/* Inputs totalmente brancos */
.planning-currency-input,
.planning-percent-input,
.planning-simulator-field input,
.planning-simulator-field select {
  background: #ffffff !important;
}

/* Remove sensação de bloco pastel */
.planning-simulator-field::before,
.planning-simulator-field::after {
  opacity: 0;
}

/* Botões rápidos — mais discretos */
.planning-quick-options button {
  background: #ffffff !important;
  box-shadow: none !important;
}

/* Aporte */
.planning-simulator-main
  > .planning-simulator-field:nth-child(1)
  .planning-quick-options button {
  border-color: #ddd6fe !important;
  color: #6d28d9 !important;
}

/* Retorno */
.planning-simulator-main
  > .planning-simulator-field:nth-child(2)
  .planning-quick-options button {
  border-color: #bfdbfe !important;
  color: #1d4ed8 !important;
}

/* Hover */
.planning-quick-options button:hover {
  transform: translateY(-1px);
  box-shadow:
    0 5px 12px rgba(15, 23, 42, .07) !important;
}

/* Status salvo mais elegante */
.planning-live-status {
  padding: 7px 12px;
  border: 1px solid #bbf7d0;
  border-radius: 999px;
  color: #15803d;
  background: #f0fdf4;
  font-weight: 700;
}

/* =========================================================
   PLANEJAMENTO — COMPARADOR DE CENÁRIOS PREMIUM
   ========================================================= */

.financial-simulator-panel {
  border-radius: 22px;
}

/* Botão principal */
#run-financial-simulation-button {
  border: 0;
  border-radius: 12px;
  padding: 11px 18px;

  color: #ffffff;
  background:
    linear-gradient(
      135deg,
      #1d4ed8 0%,
      #2563eb 100%
    );

  box-shadow:
    0 8px 18px rgba(37, 99, 235, .18);

  font-weight: 800;

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

#run-financial-simulation-button:hover {
  transform: translateY(-1px);
  box-shadow:
    0 11px 22px rgba(37, 99, 235, .24);
}


/* =========================================================
   CONTROLES DO COMPARADOR
   ========================================================= */

.financial-simulator-controls {
  gap: 14px;
}

.financial-simulator-controls label {
  font-weight: 600;
  color: #64748b;
}

.financial-simulator-controls input {
  background: #ffffff;
  border-color: #d7e0ec;
  border-radius: 11px;

  transition:
    border-color .15s ease,
    box-shadow .15s ease;
}

.financial-simulator-controls input:focus {
  border-color: #93c5fd;
  box-shadow:
    0 0 0 3px rgba(37, 99, 235, .08);
}


/* =========================================================
   RESUMO DOS CENÁRIOS
   ========================================================= */

.financial-simulator-summary {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.financial-simulator-summary article {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  min-height: 132px;

  padding:
    24px
    22px
    20px
    78px;

  border-radius: 18px;

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.financial-simulator-summary article:hover {
  transform: translateY(-2px);
}


/* Cenário atual — azul */
.financial-simulator-summary
  article:nth-child(1) {
  border: 1px solid #bfdbfe;

  background:
    linear-gradient(
      135deg,
      #eff6ff 0%,
      #dbeafe 100%
    );

  box-shadow:
    0 10px 24px rgba(37, 99, 235, .07);
}


/* Cenário comparativo — roxo */
.financial-simulator-summary
  article:nth-child(2) {
  border: 1px solid #ddd6fe;

  background:
    linear-gradient(
      135deg,
      #faf5ff 0%,
      #ede9fe 100%
    );

  box-shadow:
    0 10px 24px rgba(124, 58, 237, .07);
}


/* Tempo economizado — verde */
.financial-simulator-summary
  article.featured {
  border: 0;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #15803d 0%,
      #16a34a 52%,
      #22c55e 100%
    );

  box-shadow:
    0 14px 28px rgba(22, 163, 74, .18);
}


/* Textos */
.financial-simulator-summary article span {
  display: block;
  margin-bottom: 8px;

  font-size: .92rem;
  font-weight: 700;
}

.financial-simulator-summary article strong {
  display: block;

  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: -.025em;
}

.financial-simulator-summary article small {
  display: block;
  margin-top: 8px;

  line-height: 1.35;
}


/* Azul */
.financial-simulator-summary
  article:nth-child(1) span {
  color: #2563eb;
}

/* Roxo */
.financial-simulator-summary
  article:nth-child(2) span {
  color: #7c3aed;
}


/* Verde — textos brancos */
.financial-simulator-summary
  article.featured span,
.financial-simulator-summary
  article.featured strong,
.financial-simulator-summary
  article.featured small {
  color: #ffffff;
}

.financial-simulator-summary
  article.featured small {
  color: rgba(255,255,255,.88);
}


/* =========================================================
   ÍCONES DOS TRÊS CARDS
   ========================================================= */

.financial-simulator-summary article::before {
  position: absolute;

  top: 24px;
  left: 22px;

  width: 40px;
  height: 40px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}


/* Atual */
.financial-simulator-summary
  article:nth-child(1)::before {
  content: "↗";

  color: #2563eb;
  background: #dbeafe;
}


/* Comparativo */
.financial-simulator-summary
  article:nth-child(2)::before {
  content: "↗";

  color: #7c3aed;
  background: #ede9fe;
}


/* Tempo economizado */
.financial-simulator-summary
  article.featured::before {
  content: "◷";

  color: #ffffff;
  background: rgba(255,255,255,.18);

  border:
    1px solid rgba(255,255,255,.18);
}


/* Círculo decorativo verde */
.financial-simulator-summary
  article.featured::after {
  content: "";

  position: absolute;

  right: -28px;
  bottom: -48px;

  z-index: -1;

  width: 130px;
  height: 130px;

  border-radius: 50%;

  background:
    rgba(255,255,255,.09);

  pointer-events: none;
}


/* =========================================================
   GRÁFICO + TABELA
   ========================================================= */

.financial-simulator-grid {
  display: grid;

  grid-template-columns:
    minmax(390px, .9fr)
    minmax(560px, 1.35fr);

  gap: 16px;

  align-items: stretch;
}


/* Card do gráfico */
.financial-simulator-chart-card {
  position: relative;

  min-width: 0;
  min-height: 455px;

  padding: 20px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #fbfdff 100%
    );

  overflow: hidden;
}


/* Card da tabela */
.financial-simulator-table-card {
  min-width: 0;
  min-height: 455px;

  padding: 20px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #fbfdff 100%
    );

  overflow: hidden;
}


.financial-simulator-chart-card h3,
.financial-simulator-table-card h3 {
  margin-bottom: 18px;

  font-size: 1.08rem;
  font-weight: 800;
}


/* =========================================================
   GRÁFICO — CORREÇÃO PRINCIPAL
   ========================================================= */

#financial-simulation-chart {
  display: block !important;

  width: 100% !important;
  max-width: none !important;

  height: 330px !important;
  min-height: 330px !important;

  margin: 0 !important;

  overflow: visible;
}


/* Legenda */
.simulation-legend {
  display: flex;
  flex-wrap: wrap;

  gap: 16px;

  margin-top: 12px;
}

.simulation-legend > * {
  font-weight: 600;
}


/* =========================================================
   TABELA
   ========================================================= */

.financial-simulator-table-card
  .table-scroll {
  width: 100%;
  overflow-x: auto;
}


.simulation-table {
  width: 100%;

  border-collapse: collapse;
}


.simulation-table th {
  padding: 12px 10px;

  color: #64748b;

  font-size: .76rem;
  font-weight: 800;

  text-transform: uppercase;
  letter-spacing: .035em;

  border-bottom:
    1px solid #dbe3ef;
}


.simulation-table td {
  padding: 12px 10px;

  border-bottom:
    1px solid #edf2f7;
}


/* Ano */
.simulation-table th:nth-child(1) {
  color: #64748b;
}


/* Atual */
.simulation-table th:nth-child(2) {
  color: #2563eb;
}


/* Comparativo */
.simulation-table th:nth-child(3) {
  color: #7c3aed;
}


/* Renda */
.simulation-table th:nth-child(4) {
  color: #15803d;
}


/* Hover da linha */
.simulation-table tbody tr {
  transition:
    background .12s ease;
}

.simulation-table tbody tr:hover {
  background: #f8fafc;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1100px) {

  .financial-simulator-grid {
    grid-template-columns: 1fr;
  }

  .financial-simulator-chart-card,
  .financial-simulator-table-card {
    min-height: auto;
  }

  #financial-simulation-chart {
    height: 340px !important;
    min-height: 340px !important;
  }
}


@media (max-width: 760px) {

  .financial-simulator-summary {
    grid-template-columns: 1fr;
  }

  .financial-simulator-summary article {
    min-height: 120px;
  }

  #financial-simulation-chart {
    height: 280px !important;
    min-height: 280px !important;
  }
}

/* =========================================================
   PLANEJAMENTO — AJUSTE FINAL DA TABELA DO COMPARADOR
   ========================================================= */

.financial-simulator-table-card {
  padding-left: 16px;
  padding-right: 16px;
}

.financial-simulator-table-card .table-scroll {
  overflow-x: hidden;
}

.simulation-table {
  width: 100%;
  table-layout: fixed;
}

.simulation-table th,
.simulation-table td {
  padding:
    11px
    6px;
  white-space: nowrap;
}

/* Ano */
.simulation-table th:nth-child(1),
.simulation-table td:nth-child(1) {
  width: 12%;
}

/* Atual */
.simulation-table th:nth-child(2),
.simulation-table td:nth-child(2) {
  width: 27%;
}

/* Comparativo */
.simulation-table th:nth-child(3),
.simulation-table td:nth-child(3) {
  width: 30%;
}

/* Renda potencial */
.simulation-table th:nth-child(4),
.simulation-table td:nth-child(4) {
  width: 31%;
}

/* Cabeçalho levemente menor para ganhar espaço */
.simulation-table th {
  font-size: .72rem;
  letter-spacing: .025em;
}

/* Valores */
.simulation-table td {
  font-size: .84rem;
}

/* =========================================================
   PLANEJAMENTO — CORREÇÃO DEFINITIVA DA TABELA
   ========================================================= */

/* Mais espaço para a tabela, sem sacrificar o gráfico */
.financial-simulator-grid {
  grid-template-columns:
    minmax(380px, .82fr)
    minmax(0, 1.38fr);
}

/* Garante que o card possa encolher dentro do grid */
.financial-simulator-table-card {
  min-width: 0;
  overflow: hidden;
}

/* Container ocupa somente a largura disponível */
.financial-simulator-table-card .table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* A tabela passa a respeitar exatamente o card */
.simulation-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  table-layout: fixed;
  border-collapse: collapse;
}

/* Padding passa a fazer parte da largura das colunas */
.simulation-table th,
.simulation-table td {
  box-sizing: border-box;
  padding: 11px 5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
}

/* Distribuição mais eficiente */
.simulation-table th:nth-child(1),
.simulation-table td:nth-child(1) {
  width: 10%;
}

.simulation-table th:nth-child(2),
.simulation-table td:nth-child(2) {
  width: 27%;
}

.simulation-table th:nth-child(3),
.simulation-table td:nth-child(3) {
  width: 31%;
}

.simulation-table th:nth-child(4),
.simulation-table td:nth-child(4) {
  width: 32%;
}

/* Mantém boa legibilidade */
.simulation-table th {
  font-size: .72rem;
  letter-spacing: .02em;
}

.simulation-table td {
  font-size: .84rem;
}

/* Alinhamento visual dos valores */
.simulation-table th:not(:first-child),
.simulation-table td:not(:first-child) {
  text-align: right;
}

/* Ano permanece à esquerda */
.simulation-table th:first-child,
.simulation-table td:first-child {
  text-align: left;
}

/* Em telas menores, gráfico e tabela empilham */
@media (max-width: 1100px) {
  .financial-simulator-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   APORTES — SIMULADOR COMPACTO PREMIUM
   ========================================================= */

.contribution-simulator-top {
  position: relative;
  overflow: hidden;

  padding: 20px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  box-shadow:
    0 10px 24px rgba(15, 23, 42, .05);
}

/* Remove da tela o registro duplicado de proventos */
.contribution-income-register {
  display: none !important;
}

/* Labels */
.contribution-simulator-top > label {
  display: block;

  margin-bottom: 7px;

  color: #475569;

  font-size: .82rem;
  font-weight: 800;
}

/* Espaço entre os dois blocos */
.contribution-simulator-top
  > .contribution-input-wrap {
  margin-bottom: 16px;
}

/* Inputs */
.contribution-simulator-top input {
  width: 100%;
  box-sizing: border-box;

  min-height: 48px;

  padding: 10px 13px;

  border: 1px solid #cbd5e1;
  border-radius: 11px;

  background: #ffffff;

  color: #0f172a;

  font-size: 1rem;
  font-weight: 800;
}

/* Campo principal do aporte */
#recommendation-amount {
  border-color: #bfdbfe;

  box-shadow:
    inset 0 3px 0 #2563eb;
}

/* Proventos disponíveis */
#contribution-dividends {
  border-color: #bbf7d0;

  box-shadow:
    inset 0 3px 0 #16a34a;
}

/* Foco */
.contribution-simulator-top input:focus {
  outline: none;

  border-color: #93c5fd;

  box-shadow:
    0 0 0 3px rgba(37, 99, 235, .08);
}

/* Total disponível */
.contribution-total-box {
  position: relative;
  overflow: hidden;

  margin-top: 4px;
  padding: 16px 17px;

  border: 0;
  border-radius: 14px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #0f766e 0%,
      #0d9488 55%,
      #14b8a6 100%
    );

  box-shadow:
    0 10px 22px rgba(13, 148, 136, .16);
}

.contribution-total-box span {
  display: block;

  color: rgba(255,255,255,.88);

  font-size: .76rem;
  font-weight: 700;
}

.contribution-total-box strong {
  display: block;

  margin-top: 4px;

  color: #ffffff;

  font-size: 1.35rem;
  font-weight: 900;
}

/* Detalhe decorativo */
.contribution-total-box::after {
  content: "";

  position: absolute;

  right: -24px;
  bottom: -36px;

  width: 100px;
  height: 100px;

  border-radius: 50%;

  background:
    rgba(255,255,255,.10);
}

/* Texto explicativo */
.contribution-simulator-top > small {
  display: block;

  margin-top: 11px;

  color: #64748b;

  font-size: .76rem;
  line-height: 1.4;
}

/* Mobile */
@media (max-width: 800px) {
  .contribution-simulator-top {
    padding: 16px;
  }
}

/* =========================================================
   APORTES — LAYOUT HORIZONTAL DEFINITIVO
   ========================================================= */

/*
  Neutraliza o hotfix antigo que colocava o simulador
  absoluto no canto direito.
*/
@media (min-width: 901px) {

  .contribution-intelligence-panel {
    position: relative;
    padding-right: 22px !important;
  }

  .contribution-simulator-top {
    position: relative !important;

    top: auto !important;
    right: auto !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    box-sizing: border-box;

    display: grid;
    grid-template-columns:
      minmax(220px, 1fr)
      minmax(220px, 1fr)
      minmax(240px, .9fr);

    column-gap: 18px;
    row-gap: 6px;

    align-items: end;

    margin:
      18px
      0
      20px;

    padding: 18px 20px;
  }


  /* Aporte */
  .contribution-simulator-top
    > label[for="recommendation-amount"] {
    grid-column: 1;
    grid-row: 1;
  }

  .contribution-simulator-top
    > .contribution-input-wrap:nth-of-type(1) {
    grid-column: 1;
    grid-row: 2;

    margin-bottom: 0;
  }


  /* Proventos */
  .contribution-simulator-top
    > label[for="contribution-dividends"] {
    grid-column: 2;
    grid-row: 1;
  }

  .contribution-simulator-top
    > .contribution-input-wrap:nth-of-type(2) {
    grid-column: 2;
    grid-row: 2;

    margin-bottom: 0;
  }


  /* Total */
  .contribution-total-box {
    grid-column: 3;
    grid-row: 1 / span 2;

    align-self: stretch;

    display: flex;
    flex-direction: column;
    justify-content: center;

    margin: 0;

    min-height: 76px;
  }


  /* Observação */
  .contribution-simulator-top > small {
    grid-column: 1 / -1;
    grid-row: 3;

    margin-top: 5px;
  }
}


/* =========================================================
   RESUMO DO PLANO
   ========================================================= */

.contribution-intelligence-summary {
  gap: 14px;
  margin-top: 0;
}

.contribution-intelligence-summary article {
  position: relative;
  overflow: hidden;

  min-height: 104px;

  padding: 18px;

  border-radius: 16px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.contribution-intelligence-summary article:hover {
  transform: translateY(-2px);

  box-shadow:
    0 10px 22px rgba(15, 23, 42, .07);
}


/* Aporte considerado */
.contribution-intelligence-summary
  article:nth-child(1) {
  border-color: #c4b5fd;
  box-shadow:
    inset 0 3px 0 #7c3aed;
}


/* Valor utilizado */
.contribution-intelligence-summary
  article:nth-child(2) {
  border-color: #bfdbfe;
  box-shadow:
    inset 0 3px 0 #2563eb;
}


/* Sobra */
.contribution-intelligence-summary
  article:nth-child(3) {
  border-color: #bbf7d0;
  box-shadow:
    inset 0 3px 0 #16a34a;
}


/* Redução do desvio */
.contribution-intelligence-summary
  article:nth-child(4) {
  border-color: #fed7aa;
  box-shadow:
    inset 0 3px 0 #ea580c;
}


.contribution-intelligence-summary span {
  margin-bottom: 9px;

  font-size: .79rem;
  font-weight: 700;
}


.contribution-intelligence-summary strong {
  font-size: 1.28rem;
  font-weight: 900;

  color: #0f172a;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 900px) {

  .contribution-intelligence-panel {
    padding-right: initial !important;
  }

  .contribution-simulator-top {
    position: relative !important;

    top: auto !important;
    right: auto !important;

    width: 100% !important;
    max-width: none !important;

    margin: 16px 0 20px;
  }
}

/* =========================================================
   APORTES — RESERVA DE EMERGÊNCIA PREMIUM
   ========================================================= */

#manual-wealth-panel {
  position: relative;
  overflow: hidden;

  margin-bottom: 22px;

  border-radius: 22px;

  border-top:
    4px solid #0d9488;
}


/* Usa toda a largura disponível */
#manual-wealth-panel .manual-wealth-grid {
  display: block;

  width: 100%;
  max-width: none !important;

  grid-template-columns: none !important;
}


/* Card principal */
#manual-wealth-panel .manual-wealth-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  max-width: none !important;
  box-sizing: border-box;

  display: grid;

  grid-template-columns:
    minmax(280px, 1.15fr)
    minmax(240px, 1fr)
    minmax(210px, .72fr);

  gap: 18px;

  align-items: end;

  padding: 22px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  box-shadow:
    0 10px 24px rgba(15, 23, 42, .045);
}


/* Remove repetição "RESERVA / Reserva de emergência" */
#manual-wealth-panel
  .manual-wealth-card
  > div:first-child {
  display: none;
}


/* Labels */
#manual-wealth-panel
  .manual-wealth-card
  > label {
  display: block;

  margin: 0;

  color: #475569;

  font-size: .82rem;
  font-weight: 800;
}


/* Inputs */
#manual-wealth-panel
  .manual-wealth-card
  input {
  width: 100%;
  min-height: 54px;

  box-sizing: border-box;

  margin-top: 8px;
  padding: 11px 14px;

  border: 1px solid #cbd5e1;
  border-radius: 12px;

  background: #ffffff;

  color: #0f172a;

  font-size: 1.05rem;
  font-weight: 900;

  transition:
    border-color .15s ease,
    box-shadow .15s ease;
}


/* Valor atual — teal */
#manual-reserve-market-value {
  border-color: #99f6e4 !important;

  box-shadow:
    inset 0 3px 0 #0d9488;
}


/* Novo aporte — azul */
#manual-reserve-contribution {
  border-color: #bfdbfe !important;

  box-shadow:
    inset 0 3px 0 #2563eb;
}


/* Foco */
#manual-wealth-panel
  .manual-wealth-card
  input:focus {
  outline: none;

  border-color: #5eead4;

  box-shadow:
    0 0 0 3px rgba(13, 148, 136, .09);
}


/* Botão */
#manual-reserve-update {
  min-height: 54px;

  margin: 0;

  border: 0;
  border-radius: 12px;

  padding: 0 22px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #0f766e 0%,
      #0d9488 55%,
      #14b8a6 100%
    );

  box-shadow:
    0 10px 20px rgba(13, 148, 136, .18);

  font-weight: 800;

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}


#manual-reserve-update:hover {
  transform: translateY(-1px);

  box-shadow:
    0 13px 24px rgba(13, 148, 136, .24);
}


/* Status ocupa toda a largura */
#manual-reserve-status {
  grid-column: 1 / -1;

  display: block;

  min-height: 0;

  margin-top: -2px;

  color: #64748b;

  font-size: .78rem;
}


/* Círculo decorativo */
#manual-wealth-panel
  .manual-wealth-card::after {
  content: "";

  position: absolute;

  right: -35px;
  bottom: -58px;

  z-index: -1;

  width: 150px;
  height: 150px;

  border-radius: 50%;

  background:
    rgba(13, 148, 136, .06);

  pointer-events: none;
}


/* Cabeçalho da seção mais compacto */
#manual-wealth-panel .panel-heading {
  margin-bottom: 16px;
}


/* Responsivo */
@media (max-width: 900px) {

  #manual-wealth-panel
    .manual-wealth-card {
    grid-template-columns: 1fr;
  }

  #manual-reserve-update {
    width: 100%;
  }
}

/* =========================================================
   APORTES — PLANO PARA O PRÓXIMO APORTE PREMIUM
   ========================================================= */

/* Painel que contém o simulador */
section:has(#rebalancing-contribution) {
  border-radius: 22px;
  border-top: 4px solid #0d9488;
}


/* =========================================================
   CAMPO DO APORTE — COMPACTO
   ========================================================= */

label:has(#rebalancing-contribution) {
  display: flex;
  flex-direction: column;
  gap: 7px;

  width: 270px;
  max-width: 100%;

  margin: 0;

  color: #64748b;

  font-size: .8rem;
  font-weight: 700;
}


/* Campo */
#rebalancing-contribution {
  width: 100%;
  min-height: 46px;

  box-sizing: border-box;

  padding: 9px 13px;

  border: 1px solid #bfdbfe;
  border-radius: 11px;

  background: #ffffff;

  color: #0f172a;

  font-size: 1rem;
  font-weight: 800;

  box-shadow:
    inset 0 3px 0 #2563eb;

  transition:
    border-color .15s ease,
    box-shadow .15s ease;
}


#rebalancing-contribution:focus {
  outline: none;

  border-color: #60a5fa;

  box-shadow:
    0 0 0 3px rgba(37, 99, 235, .09),
    inset 0 3px 0 #2563eb;
}


/* =========================================================
   QUATRO INDICADORES
   ========================================================= */

.rebalancing-summary {
  gap: 14px;
  margin-top: 18px;
  margin-bottom: 20px;
}


.rebalancing-summary article {
  position: relative;
  overflow: hidden;

  min-height: 108px;

  padding: 18px;

  border-radius: 16px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}


.rebalancing-summary article:hover {
  transform: translateY(-2px);

  box-shadow:
    0 10px 22px rgba(15, 23, 42, .07);
}


/* Aporte simulado */
.rebalancing-summary article:nth-child(1) {
  border-color: #c4b5fd;

  box-shadow:
    inset 0 3px 0 #7c3aed;
}


/* Prioridade */
.rebalancing-summary article:nth-child(2) {
  border-color: #bfdbfe;

  box-shadow:
    inset 0 3px 0 #2563eb;
}


/* Patrimônio projetado */
.rebalancing-summary article:nth-child(3) {
  border-color: #bbf7d0;

  box-shadow:
    inset 0 3px 0 #16a34a;
}


/* Estratégia */
.rebalancing-summary article:nth-child(4) {
  border-color: #fed7aa;

  box-shadow:
    inset 0 3px 0 #ea580c;
}


.rebalancing-summary span {
  display: block;

  margin-bottom: 9px;

  color: #64748b;

  font-size: .79rem;
  font-weight: 700;
}


.rebalancing-summary strong {
  color: #0f172a;

  font-size: 1.28rem;
  font-weight: 900;
}


/* =========================================================
   DISTRIBUIÇÃO + PRIORIDADE
   ========================================================= */

.rebalancing-grid {
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(330px, .8fr);

  gap: 16px;
}


.rebalancing-plan-card,
.rebalancing-priority-card {
  padding: 22px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  box-shadow:
    0 8px 20px rgba(15, 23, 42, .035);
}


.rebalancing-plan-card h3,
.rebalancing-priority-card h3 {
  margin-bottom: 18px;

  color: #0f172a;

  font-size: 1.1rem;
  font-weight: 900;
}


/* =========================================================
   BARRAS DA DISTRIBUIÇÃO
   ========================================================= */

#rebalancing-plan > * {
  padding-top: 13px;
  padding-bottom: 13px;
}


#rebalancing-plan strong {
  color: #0f172a;
  font-weight: 800;
}


/* Deixa barras mais elegantes */
#rebalancing-plan progress,
#rebalancing-plan .progress,
#rebalancing-plan [class*="bar"] {
  border-radius: 999px;
}


/* =========================================================
   ORDEM DE PRIORIDADE
   ========================================================= */

#rebalancing-priorities > * {
  position: relative;

  padding:
    14px
    0
    14px
    46px;

  border-bottom: 1px solid #e2e8f0;
}


#rebalancing-priorities > *:last-child {
  border-bottom: 0;
}


/* Bolinhas 1 / 2 / 3 */
#rebalancing-priorities > *::before {
  position: absolute;

  top: 14px;
  left: 0;

  width: 32px;
  height: 32px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: .9rem;
  font-weight: 900;
}


#rebalancing-priorities > *:nth-child(1)::before {
  content: "1";

  color: #7c3aed;
  background: #ede9fe;
}


#rebalancing-priorities > *:nth-child(2)::before {
  content: "2";

  color: #2563eb;
  background: #dbeafe;
}


#rebalancing-priorities > *:nth-child(3)::before {
  content: "3";

  color: #16a34a;
  background: #dcfce7;
}


/* =========================================================
   TABELA ANTES × DEPOIS
   ========================================================= */

.rebalancing-table-card {
  margin-top: 16px;

  padding: 22px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );
}


.rebalancing-table {
  width: 100%;
  border-collapse: collapse;
}


.rebalancing-table th {
  padding: 11px 8px;

  color: #64748b;

  font-size: .73rem;
  font-weight: 800;

  letter-spacing: .025em;
  text-transform: uppercase;
}


.rebalancing-table td {
  padding: 11px 8px;

  border-bottom: 1px solid #e8edf3;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1000px) {

  .rebalancing-grid {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 700px) {

  label:has(#rebalancing-contribution) {
    width: 100%;
  }

  .rebalancing-summary {
    grid-template-columns: 1fr 1fr;
  }

}

/* =========================================================
   APORTES — REBALANCEAMENTO PREMIUM VALIDADO
   ========================================================= */

/* =========================================================
   PAINEL PRINCIPAL
   ========================================================= */

section:has(#rebalancing-contribution) {
  border-radius: 22px;
  border-top: 4px solid #0d9488;
}


/* =========================================================
   CAMPO DO APORTE
   ========================================================= */

label:has(#rebalancing-contribution) {
  display: flex;
  flex-direction: column;
  gap: 7px;

  width: 270px;
  max-width: 100%;

  margin: 0;

  color: #64748b;

  font-size: .8rem;
  font-weight: 700;
}

#rebalancing-contribution {
  width: 100%;
  min-height: 46px;

  box-sizing: border-box;

  padding: 9px 13px;

  border: 1px solid #bfdbfe;
  border-radius: 11px;

  background: #ffffff;

  color: #0f172a;

  font-size: 1rem;
  font-weight: 800;

  box-shadow:
    inset 0 3px 0 #2563eb;

  transition:
    border-color .15s ease,
    box-shadow .15s ease;
}

#rebalancing-contribution:focus {
  outline: none;

  border-color: #60a5fa;

  box-shadow:
    0 0 0 3px rgba(37, 99, 235, .09),
    inset 0 3px 0 #2563eb;
}


/* =========================================================
   CARDS RESUMO
   ========================================================= */

.rebalancing-summary {
  gap: 14px;
  margin-top: 18px;
  margin-bottom: 20px;
}

.rebalancing-summary article {
  position: relative;
  overflow: hidden;

  min-height: 112px;

  padding:
    22px
    18px
    18px
    66px;

  border-radius: 16px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.rebalancing-summary article:hover {
  transform: translateY(-2px);

  box-shadow:
    0 10px 22px rgba(15, 23, 42, .07);
}


/* =========================================================
   ÍCONES DOS CARDS
   ========================================================= */

.rebalancing-summary article::before {
  position: absolute;

  top: 22px;
  left: 18px;

  width: 36px;
  height: 36px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: 18px;
  font-weight: 900;
  line-height: 1;
}


/* Aporte simulado */
.rebalancing-summary article:nth-child(1) {
  border-color: #c4b5fd;

  box-shadow:
    inset 0 3px 0 #7c3aed;
}

.rebalancing-summary article:nth-child(1)::before {
  content: "◎";

  color: #7c3aed;
  background: #ede9fe;
}


/* Prioridade principal */
.rebalancing-summary article:nth-child(2) {
  border-color: #bfdbfe;

  box-shadow:
    inset 0 3px 0 #2563eb;
}

.rebalancing-summary article:nth-child(2)::before {
  content: "◉";

  color: #2563eb;
  background: #dbeafe;
}


/* Patrimônio projetado */
.rebalancing-summary article:nth-child(3) {
  border-color: #bbf7d0;

  box-shadow:
    inset 0 3px 0 #16a34a;
}

.rebalancing-summary article:nth-child(3)::before {
  content: "▥";

  color: #16a34a;
  background: #dcfce7;
}


/* Estratégia */
.rebalancing-summary article:nth-child(4) {
  border-color: #fed7aa;

  box-shadow:
    inset 0 3px 0 #ea580c;
}

.rebalancing-summary article:nth-child(4)::before {
  content: "◐";

  color: #ea580c;
  background: #ffedd5;
}


.rebalancing-summary span {
  display: block;

  margin-bottom: 8px;

  color: #64748b;

  font-size: .79rem;
  font-weight: 700;
}

.rebalancing-summary strong {
  color: #0f172a;

  font-size: 1.28rem;
  font-weight: 900;
}


/* =========================================================
   DISTRIBUIÇÃO RECOMENDADA
   ========================================================= */

.rebalancing-grid {
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(330px, .8fr);

  gap: 16px;
}

.rebalancing-plan-card,
.rebalancing-priority-card {
  padding: 22px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  box-shadow:
    0 8px 20px rgba(15, 23, 42, .035);
}

.rebalancing-plan-card h3,
.rebalancing-priority-card h3 {
  margin-bottom: 18px;

  color: #0f172a;

  font-size: 1.1rem;
  font-weight: 900;
}

#rebalancing-plan > * {
  padding-top: 13px;
  padding-bottom: 13px;
}

#rebalancing-plan strong {
  color: #0f172a;
  font-weight: 800;
}

#rebalancing-plan progress,
#rebalancing-plan .progress,
#rebalancing-plan [class*="bar"] {
  border-radius: 999px;
}


/* =========================================================
   ORDEM DE PRIORIDADE
   ========================================================= */

#rebalancing-priorities > * {
  position: relative;

  padding:
    14px
    0
    14px
    46px;

  border-bottom: 1px solid #e2e8f0;
}

#rebalancing-priorities > *:last-child {
  border-bottom: 0;
}

#rebalancing-priorities > *::before {
  position: absolute;

  top: 14px;
  left: 0;

  width: 32px;
  height: 32px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 50%;

  font-size: .9rem;
  font-weight: 900;
}

#rebalancing-priorities > *:nth-child(1)::before {
  content: "1";

  color: #7c3aed;
  background: #ede9fe;
}

#rebalancing-priorities > *:nth-child(2)::before {
  content: "2";

  color: #2563eb;
  background: #dbeafe;
}

#rebalancing-priorities > *:nth-child(3)::before {
  content: "3";

  color: #16a34a;
  background: #dcfce7;
}


/* =========================================================
   IMPACTO NA ALOCAÇÃO
   ========================================================= */

.rebalancing-table-card {
  position: relative;

  margin-top: 18px;

  padding: 22px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );
}

/* Título atualizado visualmente */
.rebalancing-table-card h3 {
  margin-bottom: 6px;

  color: #0f172a;

  font-size: 1.15rem;
  font-weight: 900;
}

/* Explicação auxiliar */
.rebalancing-table-card h3::after {
  content:
    "Veja como o aporte sugerido altera a alocação de cada classe em relação ao objetivo.";

  display: block;

  margin-top: 6px;
  margin-bottom: 18px;

  color: #64748b;

  font-size: .8rem;
  font-weight: 500;
}


/* =========================================================
   TABELA
   ========================================================= */

.rebalancing-table {
  width: 100%;

  border-collapse: separate;
  border-spacing: 0 4px;
}

.rebalancing-table thead th {
  padding: 11px 10px;

  color: #64748b;

  background: #f1f5f9;

  font-size: .72rem;
  font-weight: 800;

  letter-spacing: .025em;
  text-transform: uppercase;

  border-bottom: 0;
}

.rebalancing-table thead th:first-child {
  border-radius: 10px 0 0 10px;
}

.rebalancing-table thead th:last-child {
  border-radius: 0 10px 10px 0;
}


.rebalancing-table tbody td {
  padding: 12px 10px;

  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;

  background: #ffffff;

  vertical-align: middle;
}


/* Primeira coluna em negrito */
.rebalancing-table tbody td:first-child {
  font-weight: 800;
  color: #0f172a;
}


/* =========================================================
   LINHAS SEM APORTE
   ========================================================= */

.rebalancing-table tbody tr:not(:has(td:nth-child(4):not(:empty))) {
  opacity: .8;
}


/* =========================================================
   LINHAS COM APORTE
   ========================================================= */

.rebalancing-table tbody tr:has(
  td:nth-child(4):not(:empty)
) {
  background:
    linear-gradient(
      90deg,
      rgba(219, 234, 254, .35) 0%,
      rgba(220, 252, 231, .35) 100%
    );
}

/*
  Dá destaque real quando o valor sugerido
  não é R$ 0,00.
*/
.rebalancing-table tbody tr:has(
  td:nth-child(4)
) td:nth-child(4) {
  font-weight: 800;
}


/* =========================================================
   APORTE SUGERIDO
   ========================================================= */

.rebalancing-table tbody td:nth-child(4) {
  color: #1e3a8a;
}


/* =========================================================
   DESVIO PROJETADO — BADGE VISUAL
   ========================================================= */

.rebalancing-table tbody td:last-child {
  font-weight: 800;
}


/* excesso — vermelho */
.rebalancing-table tbody td:last-child {
  border-radius: 999px;
}


/* Positivos */
.rebalancing-table tbody td:last-child:not(:empty) {
  padding-left: 12px;
  padding-right: 12px;
}


/* Mantém os textos positivos/negativos existentes */
.rebalancing-table tbody td:last-child {
  width: 140px;
}


/* =========================================================
   AJUSTES DE COR POR CONTEÚDO JÁ EXISTENTE
   ========================================================= */

.rebalancing-table tbody td:last-child {
  text-align: left;
}


/* =========================================================
   LINHAS PRIORITÁRIAS
   FIIs / Exterior / Renda fixa
   ========================================================= */

.rebalancing-table tbody tr:nth-child(4) td,
.rebalancing-table tbody tr:nth-child(5) td,
.rebalancing-table tbody tr:nth-child(6) td {
  background:
    linear-gradient(
      90deg,
      rgba(239, 246, 255, .92) 0%,
      rgba(240, 253, 244, .92) 100%
    );

  border-top-color: #dbeafe;
  border-bottom-color: #dcfce7;
}

.rebalancing-table tbody tr:nth-child(4) td:first-child,
.rebalancing-table tbody tr:nth-child(5) td:first-child,
.rebalancing-table tbody tr:nth-child(6) td:first-child {
  border-left:
    3px solid #3b82f6;

  border-radius:
    10px
    0
    0
    10px;
}

.rebalancing-table tbody tr:nth-child(4) td:last-child,
.rebalancing-table tbody tr:nth-child(5) td:last-child,
.rebalancing-table tbody tr:nth-child(6) td:last-child {
  border-radius:
    0
    10px
    10px
    0;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1000px) {

  .rebalancing-grid {
    grid-template-columns: 1fr;
  }

}


@media (max-width: 760px) {

  label:has(#rebalancing-contribution) {
    width: 100%;
  }

  .rebalancing-summary {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .rebalancing-table-card {
    overflow-x: auto;
  }

}

/* =========================================================
   APORTES — ÍCONES DAS CLASSES NO IMPACTO DA ALOCAÇÃO
   ========================================================= */

.rebalancing-table tbody td:first-child {
  display: flex;
  align-items: center;
  gap: 11px;
}

.rebalancing-class-icon {
  flex: 0 0 auto;

  width: 26px;
  height: 26px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: #334e68;
}

.rebalancing-class-icon svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* FIIs */
.rebalancing-class-icon[data-class="fiis"] {
  color: #2563eb;
}

/* Exterior */
.rebalancing-class-icon[data-class="exterior"] {
  color: #2563eb;
}

/* Renda fixa */
.rebalancing-class-icon[data-class="renda-fixa"] {
  color: #2563eb;
}

/* Bitcoin */
.rebalancing-class-icon[data-class="bitcoin"] {
  color: #334e68;
}

/* =========================================================
   APORTES — LIMPEZA DE BLOCOS REDUNDANTES
   Mantém:
   - resumo do aporte
   - impacto na alocação
   - plano detalhado
   - análise Atlas
   ========================================================= */

/* Remove Distribuição recomendada + Ordem de prioridade */
#contribution-panel .contribution-plan-grid {
  display: none !important;
}

/* Remove Compras sugeridas + Impacto esperado */
#contribution-intelligence-panel .contribution-intelligence-grid {
  display: none !important;
}

/* Ajusta espaçamento após a remoção dos blocos */
#contribution-panel .allocation-comparison,
#contribution-intelligence-panel .contribution-plan-table-card {
  margin-top: 20px;
}

}

/* =========================================================
   APORTES — REMOÇÃO DOS BLOCOS REDUNDANTES
   ========================================================= */

/* Distribuição recomendada + Ordem de prioridade */
.rebalancing-grid {
  display: none !important;
}

/* Compras sugeridas + Impacto esperado */
.contribution-intelligence-grid {
  display: none !important;
}

/* Impacto na alocação sobe logo após os cards */
.rebalancing-table-card {
  margin-top: 16px !important;
}

/* Plano detalhado sobe logo após o resumo */
.contribution-table-card {
  margin-top: 16px !important;
}

/* =========================================================
   APORTES — REMOVE APORTE DUPLICADO DO PLANO DE COMPRAS
   O #recommendation-amount permanece no DOM e sincronizado.
   ========================================================= */

/* Esconde somente o label do aporte duplicado */
.contribution-simulator-top
  > label[for="recommendation-amount"] {
  display: none !important;
}

/* Esconde o container onde o input sincronizado permanece */
.contribution-simulator-top
  > .contribution-input-wrap:nth-of-type(1) {
  display: none !important;
}


/* =========================================================
   NOVO LAYOUT — PROVENTOS + TOTAL DISPONÍVEL
   ========================================================= */

@media (min-width: 901px) {

  .contribution-simulator-top {
    grid-template-columns:
      minmax(260px, 1fr)
      minmax(300px, 1fr);

    column-gap: 18px;
    align-items: stretch;
  }

  /* Proventos */
  .contribution-simulator-top
    > label[for="contribution-dividends"] {
    grid-column: 1;
    grid-row: 1;
  }

  .contribution-simulator-top
    > .contribution-input-wrap:nth-of-type(2) {
    grid-column: 1;
    grid-row: 2;

    margin-bottom: 0;
  }

  /* Total */
  .contribution-total-box {
    grid-column: 2;
    grid-row: 1 / span 2;

    min-height: 76px;
    margin: 0;
  }

  /* Observação */
  .contribution-simulator-top > small {
    grid-column: 1 / -1;
    grid-row: 3;

    margin-top: 5px;
  }
}

/* =========================================================
   APORTES — REMOVE PAINEL AUXILIAR DO PLANO DE COMPRAS
   A lógica permanece preservada no DOM.
   ========================================================= */

#contribution-simulator-top {
  display: none !important;
}

/* Cabeçalho volta a ocupar a largura normalmente */
#contribution-intelligence-panel .panel-heading {
  grid-template-columns: 1fr !important;
}

/* =========================================================
   APORTES — PLANO DE COMPRAS PREMIUM
   ========================================================= */

/* ---------- RESUMO ---------- */

.contribution-intelligence-summary {
  gap: 14px;
  margin-bottom: 20px;
}

.contribution-intelligence-summary article {
  position: relative;
  overflow: hidden;

  min-height: 104px;

  display: flex;
  flex-direction: column;
  justify-content: center;

  padding:
    18px
    18px
    18px
    68px;

  border-radius: 16px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  transition:
    transform .18s ease,
    box-shadow .18s ease;
}

.contribution-intelligence-summary article:hover {
  transform: translateY(-2px);

  box-shadow:
    0 10px 22px rgba(15, 23, 42, .07);
}

/* Aporte considerado */
.contribution-intelligence-summary article:nth-child(1) {
  border-color: #c4b5fd;

  box-shadow:
    inset 0 3px 0 #7c3aed;
}

/* Valor utilizado */
.contribution-intelligence-summary article:nth-child(2) {
  border-color: #bfdbfe;

  box-shadow:
    inset 0 3px 0 #2563eb;
}

/* Sobra estimada */
.contribution-intelligence-summary article:nth-child(3) {
  border-color: #bbf7d0;

  box-shadow:
    inset 0 3px 0 #16a34a;
}

/* Redução do desvio */
.contribution-intelligence-summary article:nth-child(4) {
  border-color: #fed7aa;

  box-shadow:
    inset 0 3px 0 #ea580c;
}

.contribution-intelligence-summary span {
  margin-bottom: 6px;

  color: #64748b;

  font-size: .79rem;
  font-weight: 700;
}

.contribution-intelligence-summary strong {
  color: #0f172a;

  font-size: 1.28rem;
  font-weight: 900;
}

/* Ícone do resumo */
.contribution-summary-icon {
  position: absolute;

  left: 18px;
  top: 50%;

  width: 36px;
  height: 36px;

  display: flex;
  align-items: center;
  justify-content: center;

  transform: translateY(-50%);

  border-radius: 50%;
}

.contribution-summary-icon svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contribution-intelligence-summary
  article:nth-child(1)
  .contribution-summary-icon {
  color: #7c3aed;
  background: #ede9fe;
}

.contribution-intelligence-summary
  article:nth-child(2)
  .contribution-summary-icon {
  color: #2563eb;
  background: #dbeafe;
}

.contribution-intelligence-summary
  article:nth-child(3)
  .contribution-summary-icon {
  color: #16a34a;
  background: #dcfce7;
}

.contribution-intelligence-summary
  article:nth-child(4)
  .contribution-summary-icon {
  color: #ea580c;
  background: #ffedd5;
}


/* =========================================================
   PLANO DETALHADO
   ========================================================= */

.contribution-table-card {
  padding: 20px;

  border: 1px solid #d7e0ec;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    );

  overflow: hidden;
}

.contribution-table-card h3 {
  margin-bottom: 16px;

  color: #0f172a;

  font-size: 1.08rem;
  font-weight: 900;
}

.contribution-table {
  width: 100%;

  border-collapse: separate;
  border-spacing: 0 5px;
}

.contribution-table thead th {
  padding: 11px 10px;

  border-bottom: 0;

  color: #64748b;
  background: #f1f5f9;

  font-size: .72rem;
  font-weight: 800;

  text-transform: uppercase;
  letter-spacing: .025em;
}

.contribution-table thead th:first-child {
  border-radius: 10px 0 0 10px;
}

.contribution-table thead th:last-child {
  border-radius: 0 10px 10px 0;
}

.contribution-table tbody td {
  padding: 13px 10px;

  border-top: 1px solid #dbeafe;
  border-bottom: 1px solid #dcfce7;

  background:
    linear-gradient(
      90deg,
      rgba(239, 246, 255, .92) 0%,
      rgba(240, 253, 244, .92) 100%
    );

  vertical-align: middle;
}

/* barra azul lateral */
.contribution-table tbody td:first-child {
  border-left: 3px solid #3b82f6;

  border-radius:
    10px
    0
    0
    10px;
}

.contribution-table tbody td:last-child {
  border-radius:
    0
    10px
    10px
    0;
}

/* Ativo + ícone */
.contribution-table tbody td:first-child {
  display: flex;
  align-items: center;
  gap: 11px;

  color: #0f172a;

  font-weight: 900;
}

.contribution-plan-icon {
  flex: 0 0 auto;

  width: 27px;
  height: 27px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  color: #2563eb;
}

.contribution-plan-icon svg {
  width: 21px;
  height: 21px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Valor sugerido */
.contribution-table tbody td:nth-child(5) {
  color: #1e3a8a;

  font-weight: 900;
}

/* Badge Unidades */
.contribution-mode {
  padding: 5px 10px;

  border-radius: 999px;

  color: #334155;
  background: #e2e8f0;

  font-size: .7rem;
  font-weight: 800;
}

/* Nota inferior */
.contribution-disclaimer {
  margin-top: 12px;

  color: #64748b;

  font-size: .76rem;
  line-height: 1.4;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 900px) {

  .contribution-intelligence-summary {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .contribution-table-card {
    overflow-x: auto;
  }

}

/* =========================================================
   APORTES — CENTRALIZA ÍCONES DOS CARDS
   ========================================================= */

.contribution-summary-icon {
  position: absolute;

  left: 18px;
  top: 50%;

  width: 38px;
  height: 38px;

  display: flex;
  align-items: center;
  justify-content: center;

  transform: translateY(-50%);

  border-radius: 50%;

  line-height: 0;
}

.contribution-summary-icon svg {
  display: block;

  width: 20px;
  height: 20px;

  margin: 0;

  overflow: visible;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contribution-summary-icon svg * {
  vector-effect: non-scaling-stroke;
}

/* =========================================================
   APORTES — ANALISE ATLAS PREMIUM FINAL
   ========================================================= */

.atlas-analysis-panel {
  border-radius: 22px;
}

.atlas-analysis-heading {
  margin-bottom: 18px;
}


/* =========================================================
   LAYOUT PRINCIPAL
   ========================================================= */

.atlas-analysis-layout {
  display: grid;

  grid-template-columns:
    minmax(0, 1.28fr)
    minmax(0, 1.05fr)
    minmax(280px, .95fr);

  gap: 16px;

  align-items: stretch;
}


/* =========================================================
   PRINCIPAL RECOMENDAÇÃO
   ========================================================= */

.atlas-analysis-primary {
  position: relative;
  overflow: hidden;

  display: flex;
  gap: 18px;

  min-height: 190px;

  padding: 24px;

  border: 0;
  border-radius: 18px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #123958 0%,
      #164c72 100%
    );

  box-shadow:
    0 14px 30px rgba(15, 50, 78, .12);
}


.atlas-analysis-primary::after {
  content: "";

  position: absolute;

  right: -38px;
  bottom: -60px;

  width: 150px;
  height: 150px;

  border-radius: 50%;

  background:
    rgba(255,255,255,.06);
}


.atlas-analysis-primary-icon {
  flex: 0 0 auto;

  width: 54px;
  height: 54px;

  display: flex;
  align-items: center;
  justify-content: center;

  margin-top: 3px;

  border-radius: 50%;

  color: #60a5fa;
  background: rgba(59,130,246,.24);
}


.atlas-analysis-primary-icon svg {
  display: block;

  width: 27px;
  height: 27px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}


.atlas-analysis-primary-copy {
  min-width: 0;
  flex: 1;

  position: relative;
  z-index: 2;
}


.atlas-analysis-primary-copy > span {
  display: block;

  margin-bottom: 7px;

  color: rgba(255,255,255,.82);

  font-size: .82rem;
  font-weight: 700;
}


.atlas-analysis-primary-title {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 12px;

  margin-bottom: 9px;
}


.atlas-analysis-primary-title strong {
  color: #ffffff;

  font-size: 1.8rem;
  font-weight: 900;

  letter-spacing: -.025em;
}


.atlas-analysis-badge {
  flex: 0 0 auto;

  padding: 6px 12px;

  border-radius: 999px;

  color: #ffffff;
  background: #22b573;

  font-size: .74rem;
  font-weight: 800;
}


.atlas-analysis-primary small {
  display: -webkit-box;

  overflow: hidden;

  color: rgba(255,255,255,.90);

  font-size: .82rem;
  line-height: 1.45;

  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}


/* =========================================================
   POR QUE ESTES ATIVOS
   ========================================================= */

.atlas-analysis-reasons {
  min-height: 190px;

  padding: 22px;

  border: 1px solid #d7e2ee;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fbff 100%
    );
}


.atlas-analysis-reasons h3 {
  margin:
    0
    0
    15px;

  color: #0f172a;

  font-size: 1.03rem;
  font-weight: 900;
}


/*
  Compacta os itens que o JS atual já gera.
  Os dados continuam vindo do Atlas.
*/

.atlas-analysis-reasons
  .recommendation-asset-item {
  position: relative;

  padding:
    10px
    0
    10px
    38px;

  border-bottom:
    1px solid #edf2f7;
}


.atlas-analysis-reasons
  .recommendation-asset-item:last-child {
  border-bottom: 0;
}


.atlas-analysis-reasons
  .recommendation-asset-item::before {
  content: "▥";

  position: absolute;

  left: 0;
  top: 9px;

  width: 28px;
  height: 28px;

  display: flex;
  align-items: center;
  justify-content: center;

  color: #2563eb;

  font-size: 20px;
  font-weight: 900;
}


/* IVVB11 usa globo */
.atlas-analysis-reasons
  .recommendation-asset-item:has(
    strong:first-child
  ) {
  min-height: 38px;
}


.atlas-analysis-reasons
  .recommendation-asset-head {
  margin-bottom: 3px;
}


.atlas-analysis-reasons
  .recommendation-asset-head strong {
  font-size: .86rem;
}


.atlas-analysis-reasons
  .recommendation-action-badge {
  display: none !important;
}


/* tira valores repetidos */
.atlas-analysis-reasons
  .recommendation-asset-item
  > span {
  display: none;
}


/* deixa somente o principal motivo */
.atlas-analysis-reasons
  .recommendation-asset-item
  ul {
  margin:
    3px
    0
    0;

  padding-left: 16px;
}


.atlas-analysis-reasons
  .recommendation-asset-item
  li {
  display: none;

  color: #64748b;

  font-size: .76rem;
  line-height: 1.35;
}


.atlas-analysis-reasons
  .recommendation-asset-item
  li:nth-child(2) {
  display: list-item;
}


/* =========================================================
   VER ANÁLISE COMPLETA
   ========================================================= */

.atlas-analysis-details {
  min-height: 190px;

  border: 1px solid #d8e5f3;
  border-radius: 18px;

  background:
    linear-gradient(
      135deg,
      #f5f9ff 0%,
      #edf5ff 100%
    );

  overflow: hidden;
}


.atlas-analysis-details > summary {
  position: relative;

  min-height: 190px;

  box-sizing: border-box;

  display: flex;
  align-items: center;

  gap: 16px;

  padding: 24px;

  cursor: pointer;

  list-style: none;
}


.atlas-analysis-details > summary::-webkit-details-marker {
  display: none;
}


.atlas-analysis-details-icon {
  flex: 0 0 auto;

  width: 42px;
  height: 42px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 12px;

  color: #2563eb;
  background: #dbeafe;
}


.atlas-analysis-details-icon svg {
  width: 23px;
  height: 23px;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}


.atlas-analysis-details summary strong {
  display: block;

  margin-bottom: 7px;

  color: #0f172a;

  font-size: .98rem;
  font-weight: 900;
}


.atlas-analysis-details summary div > span {
  display: block;

  padding-right: 20px;

  color: #64748b;

  font-size: .78rem;
  line-height: 1.4;
}


.atlas-analysis-chevron {
  position: absolute;

  right: 20px;
  top: 50%;

  transform: translateY(-50%);

  color: #164e7a;

  font-size: 28px;

  transition:
    transform .18s ease;
}


.atlas-analysis-details[open]
  .atlas-analysis-chevron {
  transform:
    translateY(-50%)
    rotate(90deg);
}


/* =========================================================
   CONTEÚDO EXPANDIDO
   ========================================================= */

.atlas-analysis-details[open] {
  grid-column: 1 / -1;
}


.atlas-analysis-details[open]
  > summary {
  min-height: auto;

  border-bottom:
    1px solid #d8e5f3;
}


.atlas-analysis-details-body {
  padding: 20px;

  background: #ffffff;
}


.atlas-analysis-metrics {
  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap: 14px;

  margin-bottom: 18px;
}


.atlas-analysis-metrics article {
  padding: 16px;

  border: 1px solid #e2e8f0;
  border-radius: 14px;

  background: #f8fafc;
}


.atlas-analysis-metrics span,
.atlas-analysis-metrics small {
  display: block;

  color: #64748b;

  font-size: .76rem;
}


.atlas-analysis-metrics strong {
  display: block;

  margin:
    6px
    0;

  color: #0f172a;

  font-size: 1.25rem;
  font-weight: 900;
}


.atlas-analysis-class-reading {
  padding: 18px;

  border: 1px solid #e2e8f0;
  border-radius: 14px;

  background: #f8fafc;
}


.atlas-analysis-class-reading h3 {
  margin:
    0
    0
    15px;

  color: #0f172a;
}


/* Disclaimer só na análise expandida visualmente */
.atlas-analysis-panel
  .recommendation-disclaimer {
  margin-top: 15px;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1050px) {

  .atlas-analysis-layout {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .atlas-analysis-details {
    grid-column: 1 / -1;
    min-height: auto;
  }

  .atlas-analysis-details > summary {
    min-height: 120px;
  }
}


@media (max-width: 700px) {

  .atlas-analysis-layout {
    grid-template-columns: 1fr;
  }

  .atlas-analysis-details {
    grid-column: auto;
  }

  .atlas-analysis-metrics {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   APORTES — ANALISE ATLAS SEM CARD REDUNDANTE
   ========================================================= */

/* Remove o card "Ver análise completa" */
.atlas-analysis-details {
  display: none !important;
}

/* Deixa os três blocos principais lado a lado */
.atlas-analysis-layout {
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 16px;
}

/* O bloco da recomendação principal deixa de ocupar aparência dominante */
.atlas-analysis-primary,
.atlas-analysis-reasons {
  min-height: 170px;
}

/* Mantém a área de análise completa visível logo abaixo */
.atlas-analysis-panel
  .atlas-analysis-details-body {
  display: block !important;
}

/* Como o details foi ocultado, mostramos os detalhes em um bloco próprio */
.atlas-analysis-panel::after {
  content: "";
  display: block;
  height: 0;
}

/* Responsivo */
@media (max-width: 1000px) {
  .atlas-analysis-layout {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .atlas-analysis-layout {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   APORTES — ANALISE ATLAS FINAL
   ========================================================= */

.atlas-analysis-assets-grid {
  display: grid;
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
}

/* Cada recomendação vira um card */
.atlas-analysis-assets-grid
  .recommendation-asset {
  position: relative;
  min-width: 0;
  padding: 20px;
  border: 1px solid #d7e2ef;
  border-radius: 18px;
  background: #fff;
}

/* Área completa ocupa toda a largura */
.atlas-analysis-complete {
  grid-column: 1 / -1;
  margin-top: 4px;
  padding: 22px;
  border: 1px solid #d7e2ef;
  border-radius: 18px;
  background: #fff;
}

.atlas-analysis-complete > h3 {
  margin: 0 0 18px;
  color: #172033;
  font-size: 1.05rem;
  font-weight: 800;
}

/* Não usamos mais o antigo details */
.atlas-analysis-details {
  display: none !important;
}

/* Mantém os detalhes sempre visíveis */
.atlas-analysis-complete
  .atlas-analysis-details-body {
  display: grid !important;
  grid-template-columns:
    minmax(280px, .9fr)
    minmax(420px, 1.6fr);
  gap: 18px;
  padding: 0;
}

/* Métricas */
.atlas-analysis-complete
  .atlas-analysis-metrics {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.atlas-analysis-complete
  .atlas-analysis-metrics article {
  min-height: 125px;
}

/* Leitura por classe */
.atlas-analysis-complete
  .atlas-analysis-class-reading {
  margin: 0;
}

/* Responsivo */
@media (max-width: 1000px) {
  .atlas-analysis-assets-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .atlas-analysis-complete
    .atlas-analysis-details-body {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .atlas-analysis-assets-grid {
    grid-template-columns: 1fr;
  }

  .atlas-analysis-complete
    .atlas-analysis-metrics {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   ATLAS — FONTES TÉCNICAS DO RENDER
   ========================================================= */

.atlas-analysis-data-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

/* =========================================================
   APORTES — ANALISE ATLAS / AJUSTE FINAL DOS 3 ATIVOS
   ========================================================= */

/* Os ativos ocupam toda a largura */
.atlas-analysis-assets-grid {
  grid-column: 1 / -1 !important;

  display: grid !important;
  grid-template-columns:
    repeat(3, minmax(0, 1fr)) !important;

  gap: 16px !important;

  width: 100% !important;
}


/* Cada recommendation-row vira um card */
.atlas-analysis-assets-grid
  .recommendation-row {
  position: relative;

  min-width: 0;
  min-height: 150px;

  padding:
    18px
    18px
    18px
    68px;

  border: 1px solid #d7e2ef;
  border-radius: 18px;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fbff 100%
    );

  box-shadow:
    0 8px 20px rgba(15, 23, 42, .035);
}


/* Ícone padrão */
.atlas-analysis-assets-grid
  .recommendation-row::before {
  content: "▥";

  position: absolute;

  left: 18px;
  top: 18px;

  width: 36px;
  height: 36px;

  display: flex;
  align-items: center;
  justify-content: center;

  border-radius: 12px;

  color: #2563eb;
  background: #dbeafe;

  font-size: 21px;
  font-weight: 900;
}


/* IVVB11 = Exterior */
.atlas-analysis-assets-grid
  .recommendation-row:nth-child(2)::before {
  content: "◎";
}


/* Cabeçalho */
.atlas-analysis-assets-grid
  .recommendation-row-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 10px;

  margin-bottom: 8px;
}


.atlas-analysis-assets-grid
  .recommendation-row-head
  > div:first-child {
  display: grid;
  gap: 3px;
}


.atlas-analysis-assets-grid
  .recommendation-row-head strong {
  color: #0f172a;

  font-size: 1rem;
  font-weight: 900;
}


.atlas-analysis-assets-grid
  .recommendation-row-head
  span:not(.recommendation-action) {
  color: #64748b;

  font-size: .8rem;
}


/* Comprar */
.atlas-analysis-assets-grid
  .recommendation-action {
  padding: 5px 10px !important;

  border-radius: 999px !important;

  color: #166534 !important;
  background: #dcfce7 !important;

  font-size: .7rem !important;
  font-weight: 800 !important;
}


/* Valor e quantidade já aparecem no Plano detalhado */
.atlas-analysis-assets-grid
  .recommendation-row
  > small {
  display: none !important;
}


/* Motivos */
.atlas-analysis-assets-grid
  .recommendation-reasons {
  margin: 9px 0 0 !important;

  padding: 0 !important;

  list-style: none !important;
}


/* Oculta todos */
.atlas-analysis-assets-grid
  .recommendation-reasons li {
  display: none !important;
}


/* Exibe só o motivo de alocação */
.atlas-analysis-assets-grid
  .recommendation-reasons
  li:nth-child(2) {
  display: block !important;

  color: #52657d;

  font-size: .79rem;
  line-height: 1.4;
}


/* =========================================================
   ANALISE COMPLETA — LOGO ABAIXO
   ========================================================= */

.atlas-analysis-complete {
  grid-column: 1 / -1 !important;

  margin-top: 2px !important;
}


/* deixa o painel inferior mais compacto */
.atlas-analysis-complete
  .atlas-analysis-details-body {
  grid-template-columns:
    minmax(320px, .85fr)
    minmax(0, 1.65fr) !important;

  gap: 18px !important;
}


/* cards das métricas sem altura exagerada */
.atlas-analysis-complete
  .atlas-analysis-metrics article {
  min-height: 105px !important;

  padding: 16px !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1000px) {

  .atlas-analysis-assets-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }

  .atlas-analysis-complete
    .atlas-analysis-details-body {
    grid-template-columns: 1fr !important;
  }

}


@media (max-width: 700px) {

  .atlas-analysis-assets-grid {
    grid-template-columns: 1fr !important;
  }

}

/* =========================================================
   APORTES — CENTRALIZAÇÃO DOS ÍCONES DOS KPIs
   ========================================================= */

.contribution-intelligence-summary article {
  display: grid !important;

  grid-template-columns:
    48px
    minmax(0, 1fr) !important;

  grid-template-rows:
    auto
    auto !important;

  column-gap: 12px !important;

  align-items: center !important;
}


/* Ícone ocupa as duas linhas e fica centralizado */
.contribution-intelligence-summary
  .contribution-summary-icon {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;

  align-self: center !important;
  justify-self: center !important;

  margin: 0 !important;

  position: static !important;
  transform: none !important;
}


/* Título */
.contribution-intelligence-summary
  article > span:not(.contribution-summary-icon) {
  grid-column: 2 !important;
  grid-row: 1 !important;

  align-self: end !important;

  margin: 0 0 3px !important;
}


/* Valor */
.contribution-intelligence-summary
  article > strong {
  grid-column: 2 !important;
  grid-row: 2 !important;

  align-self: start !important;

  margin: 0 !important;
}

/* =========================================================
   APORTES — ICONES NO MESMO PADRAO DO REBALANCEAMENTO
   ========================================================= */

.contribution-intelligence-summary
  .contribution-summary-icon {
  width: 38px !important;
  height: 38px !important;

  min-width: 38px !important;
  min-height: 38px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 !important;
  margin: 0 !important;

  border-radius: 50% !important;

  position: static !important;
  transform: none !important;

  overflow: hidden !important;
  box-sizing: border-box !important;
}


/* Desenho centralizado dentro do circulo */
.contribution-intelligence-summary
  .contribution-summary-icon svg {
  display: block !important;

  width: 18px !important;
  height: 18px !important;

  max-width: 18px !important;
  max-height: 18px !important;

  margin: 0 !important;
  padding: 0 !important;

  flex: 0 0 18px !important;

  fill: none;
  stroke: currentColor;

  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;

  box-sizing: border-box !important;
}


/* Mesmo espacamento horizontal dos cards superiores */
.contribution-intelligence-summary article {
  grid-template-columns:
    38px
    minmax(0, 1fr) !important;

  column-gap: 12px !important;

  align-items: center !important;
}


/* Roxo — Aporte considerado */
.contribution-intelligence-summary
  article:nth-child(1)
  .contribution-summary-icon {
  color: #7c3aed !important;
  background: #ede9fe !important;
}


/* Azul — Valor utilizado */
.contribution-intelligence-summary
  article:nth-child(2)
  .contribution-summary-icon {
  color: #2563eb !important;
  background: #dbeafe !important;
}


/* Verde — Sobra estimada */
.contribution-intelligence-summary
  article:nth-child(3)
  .contribution-summary-icon {
  color: #16a34a !important;
  background: #dcfce7 !important;
}


/* Laranja — Reducao do desvio */
.contribution-intelligence-summary
  article:nth-child(4)
  .contribution-summary-icon {
  color: #ea580c !important;
  background: #ffedd5 !important;
}

/*
=========================================================
 APORTES — KPIs PLANO DE COMPRAS
 GEOMETRIA IDÊNTICA AO PLANO PARA O PRÓXIMO APORTE
=========================================================
*/

.contribution-intelligence-summary article {
  position: relative !important;
  display: block !important;

  min-height: 112px !important;

  padding:
    22px
    18px
    18px
    66px !important;

  border-radius: 16px !important;
}

/* Ícone: mesma posição e mesmo tamanho do rebalancing */
.contribution-intelligence-summary
  .contribution-summary-icon {

  position: absolute !important;

  top: 22px !important;
  left: 18px !important;

  width: 36px !important;
  height: 36px !important;

  min-width: 36px !important;
  min-height: 36px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 0 !important;

  border-radius: 50% !important;

  transform: none !important;
}

/* Desenho dentro do círculo */
.contribution-intelligence-summary
  .contribution-summary-icon svg {

  display: block !important;

  width: 18px !important;
  height: 18px !important;

  max-width: 18px !important;
  max-height: 18px !important;

  margin: 0 !important;
  padding: 0 !important;

  flex: 0 0 18px !important;

  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;

  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Título: mesma posição do segundo conjunto */
.contribution-intelligence-summary
  article > span:not(.contribution-summary-icon) {

  display: block !important;

  margin: 0 0 8px !important;

  color: #64748b;

  font-size: .79rem;
  font-weight: 700;
}

/* Valor */
.contribution-intelligence-summary
  article > strong {

  display: block !important;

  margin: 0 !important;

  color: #0f172a;

  font-size: 1.28rem;
  font-weight: 900;
  line-height: 1.2;
}

/* =========================================================
   APORTES — ANALISE COMPLETA COMPACTA
   ========================================================= */

.atlas-analysis-complete {
  padding: 18px !important;
}

.atlas-analysis-complete > h3 {
  margin-bottom: 14px !important;
}

/* Coluna esquerda mais compacta */
.atlas-analysis-complete
  .atlas-analysis-details-body {
  grid-template-columns:
    320px
    minmax(0, 1fr) !important;

  gap: 16px !important;
}

/* Métricas lado a lado */
.atlas-analysis-complete
  .atlas-analysis-metrics {
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;

  gap: 12px !important;

  align-content: start;
}

.atlas-analysis-complete
  .atlas-analysis-metrics article {
  min-height: 92px !important;

  padding: 14px !important;
}

/* =========================================================
   LEITURA POR CLASSE EM GRADE
   ========================================================= */

.atlas-analysis-class-reading {
  padding: 16px !important;
}

.atlas-analysis-class-reading h3 {
  margin-bottom: 12px !important;
}

#recommendation-classes {
  display: grid !important;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  gap:
    8px
    14px;
}

/* Cada classe vira uma linha compacta */
#recommendation-classes
  .recommendation-row {
  padding:
    9px
    10px !important;

  border: 1px solid #e2e8f0 !important;
  border-radius: 10px !important;

  background: #ffffff !important;
}

/* Cabeçalho classe + desvio */
#recommendation-classes
  .recommendation-row-head {
  margin-bottom: 4px !important;
}

/* Texto explicativo */
#recommendation-classes
  .recommendation-row > span {
  display: block;

  color: #64748b;

  font-size: .76rem;
  line-height: 1.3;
}

/* Esconde "Aporte sugerido" nessa leitura,
   pois já aparece nas seções anteriores */
#recommendation-classes
  .recommendation-row > small {
  display: none !important;
}

/* Menos separadores antigos */
#recommendation-classes
  .recommendation-row {
  border-bottom:
    1px solid #e2e8f0 !important;
}

/* Responsivo */
@media (max-width: 900px) {

  .atlas-analysis-complete
    .atlas-analysis-details-body {
    grid-template-columns: 1fr !important;
  }

  #recommendation-classes {
    grid-template-columns: 1fr;
  }

}

/* =========================================================
   APORTES — DESTAQUE SOMENTE QUANDO HOUVER APORTE
   ========================================================= */

/* Todas as linhas ficam neutras por padrão */
.rebalancing-table tbody tr td {
  background: transparent !important;
}

/* Remove borda azul indevida */
.rebalancing-table tbody tr td:first-child {
  border-left-color: transparent !important;
}


/* Somente classes que recebem aporte */
.rebalancing-table tbody
  tr.has-suggested-contribution td {

  background:
    linear-gradient(
      90deg,
      rgba(239,246,255,.88) 0%,
      rgba(240,253,244,.88) 100%
    ) !important;
}


/* Borda lateral somente nas prioridades */
.rebalancing-table tbody
  tr.has-suggested-contribution
  td:first-child {

  border-left:
    3px solid #3b82f6 !important;

  border-radius:
    10px
    0
    0
    10px !important;
}


/* Final arredondado */
.rebalancing-table tbody
  tr.has-suggested-contribution
  td:last-child {

  border-radius:
    0
    10px
    10px
    0 !important;
}

/* =========================================================
   APORTES — RESULTADO DA RECOMENDACAO COMPACTO
   ========================================================= */

.atlas-analysis-complete {
  padding: 18px 20px !important;
}

.atlas-analysis-complete > h3 {
  margin:
    0
    0
    14px !important;

  font-size: 1.02rem !important;
}

/* Resultado ocupa somente o necessário */
.atlas-analysis-complete
  .atlas-analysis-details-body {

  display: block !important;

  padding: 0 !important;
}

/* Dois cards lado a lado */
.atlas-analysis-complete
  .atlas-analysis-metrics {

  display: grid !important;

  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;

  gap: 14px !important;

  max-width: 560px;

  margin: 0 !important;
}

.atlas-analysis-complete
  .atlas-analysis-metrics article {

  min-height: 92px !important;

  padding: 15px 16px !important;

  border: 1px solid #dbe4ee !important;
  border-radius: 14px !important;

  background:
    linear-gradient(
      180deg,
      #ffffff 0%,
      #f8fafc 100%
    ) !important;
}

.atlas-analysis-complete
  .atlas-analysis-metrics span {

  color: #64748b;

  font-size: .76rem;
  font-weight: 700;
}

.atlas-analysis-complete
  .atlas-analysis-metrics strong {

  margin:
    6px
    0
    4px !important;

  color: #0f172a;

  font-size: 1.25rem;
  font-weight: 900;
}

.atlas-analysis-complete
  .atlas-analysis-metrics small {

  color: #64748b;

  font-size: .74rem;
  line-height: 1.35;
}

/* Mantém a fonte técnica para o JS sem ocupar espaço */
.atlas-analysis-class-source {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;

  clip-path: inset(50%) !important;

  white-space: nowrap !important;

  pointer-events: none !important;
}


/* Responsivo */
@media (max-width: 700px) {

  .atlas-analysis-complete
    .atlas-analysis-metrics {

    grid-template-columns: 1fr !important;

    max-width: none;
  }

}

/* =========================================================
   APORTES — REMOVE RESULTADO REDUNDANTE DA ANALISE ATLAS
   ========================================================= */

.atlas-analysis-complete {
  position: absolute !important;

  width: 1px !important;
  height: 1px !important;

  overflow: hidden !important;

  clip-path: inset(50%) !important;

  white-space: nowrap !important;

  pointer-events: none !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
}

/* Remove também o disclaimer inferior da IA */
#recommendation-ai-panel
  .recommendation-disclaimer {
  display: none !important;
}

/* =========================================================
   HISTORICO - PADRAO VISUAL ATLAS
   ========================================================= */

/* ---------- KPIs principais ---------- */

#historical-memory-panel .history-kpi-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin: 20px 0 22px !important;
}

#historical-memory-panel .history-kpi {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;

  min-width: 0 !important;
  min-height: 178px !important;

  padding: 24px 22px !important;

  overflow: hidden !important;

  border: 0 !important;
  border-radius: 18px !important;

  color: #fff !important;

  box-shadow:
    0 10px 26px rgba(15, 23, 42, .08) !important;
}

/* circulo decorativo inferior */

#historical-memory-panel .history-kpi::after {
  position: absolute;
  right: -28px;
  bottom: -48px;

  width: 130px;
  height: 130px;

  border-radius: 50%;

  content: "";

  background: rgba(255, 255, 255, .10);
}

/* textos */

#historical-memory-panel .history-kpi > span {
  position: relative;
  z-index: 2;

  color: #fff !important;

  font-size: 16px !important;
  font-weight: 700 !important;
}

#historical-memory-panel .history-kpi > strong {
  position: relative;
  z-index: 2;

  margin-top: 22px !important;

  color: #fff !important;

  font-size: 28px !important;
  line-height: 1.05 !important;
  letter-spacing: -.5px !important;
}

#historical-memory-panel .history-kpi > small {
  position: relative;
  z-index: 2;

  margin-top: auto !important;
  padding-top: 16px !important;

  color: rgba(255, 255, 255, .92) !important;

  font-size: 13px !important;
  line-height: 1.35 !important;
}

/* ---------- CARD 1 - COMPRAS ---------- */

#historical-memory-panel
.history-kpi:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #1267bd 0%,
      #2697e9 100%
    ) !important;
}

#historical-memory-panel
.history-kpi:nth-child(1)::before {
  position: absolute;
  top: 24px;
  right: 22px;

  content: "▥";

  color: rgba(255, 255, 255, .25);

  font-size: 40px;
  font-weight: 800;
  line-height: 1;
}

/* ---------- CARD 2 - PROVENTOS ---------- */

#historical-memory-panel
.history-kpi:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #07833f 0%,
      #17c979 100%
    ) !important;
}

#historical-memory-panel
.history-kpi:nth-child(2)::before {
  position: absolute;
  top: 20px;
  right: 22px;

  content: "◎";

  color: rgba(255, 255, 255, .25);

  font-size: 44px;
  font-weight: 700;
  line-height: 1;
}

/* ---------- CARD 3 - MOVIMENTACOES ---------- */

#historical-memory-panel
.history-kpi:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #bf7900 0%,
      #f4bd05 100%
    ) !important;
}

#historical-memory-panel
.history-kpi:nth-child(3)::before {
  position: absolute;
  top: 22px;
  right: 22px;

  content: "↔";

  color: rgba(255, 255, 255, .27);

  font-size: 42px;
  font-weight: 800;
  line-height: 1;
}

/* ---------- CARD 4 - CAPITAL EXTERNO ---------- */

#historical-memory-panel
.history-kpi:nth-child(4) {
  background:
    linear-gradient(
      135deg,
      #6422bd 0%,
      #9b42e8 100%
    ) !important;
}

#historical-memory-panel
.history-kpi:nth-child(4)::before {
  position: absolute;
  top: 22px;
  right: 22px;

  content: "▣";

  color: rgba(255, 255, 255, .25);

  font-size: 40px;
  font-weight: 700;
  line-height: 1;
}

/* neutraliza regra antiga do card destacado */

#historical-memory-panel
.history-kpi-highlight {
  color: #fff !important;
}


/* =========================================================
   BIOGRAFIA FINANCEIRA
   ========================================================= */

#historical-memory-panel .history-biography {
  margin-top: 14px !important;

  padding: 24px !important;

  border: 1px solid #e1e8f0 !important;
  border-radius: 20px !important;

  background: #fff !important;

  box-shadow:
    0 8px 24px rgba(15, 23, 42, .035) !important;
}

#historical-memory-panel
.history-biography-heading {
  align-items: flex-start !important;
}

#historical-memory-panel
.history-biography-heading h3 {
  margin-top: 6px !important;
}

#historical-memory-panel
.history-biography-heading p {
  max-width: 470px !important;

  color: #64748b !important;

  line-height: 1.45 !important;
}


/* ---------- cards dos marcos ---------- */

#historical-memory-panel
.history-biography-grid {
  display: grid !important;

  grid-template-columns:
    repeat(4, minmax(0, 1fr)) !important;

  gap: 16px !important;

  margin: 22px 0 0 !important;
}

#historical-memory-panel
.history-story-card {
  position: relative !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;

  min-width: 0 !important;
  min-height: 132px !important;

  padding:
    18px 18px 18px 76px !important;

  border:
    1px solid #d8e3ef !important;

  border-radius: 17px !important;

  background: #fff !important;

  box-shadow:
    0 4px 14px rgba(15, 23, 42, .025) !important;
}

/* circulo dos icones */

#historical-memory-panel
.history-story-card::before {
  position: absolute;

  top: 50%;
  left: 20px;

  display: flex;

  width: 40px;
  height: 40px;

  align-items: center;
  justify-content: center;

  transform: translateY(-50%);

  border-radius: 50%;

  color: #1682db;

  background: #eaf5ff;

  font-size: 20px;
  font-weight: 800;
}

/* primeira compra */

#historical-memory-panel
.history-story-card:nth-child(1)::before {
  content: "▦";
}

/* primeiro provento */

#historical-memory-panel
.history-story-card:nth-child(2)::before {
  content: "$";
}

/* maior mes de aportes */

#historical-memory-panel
.history-story-card:nth-child(3)::before {
  content: "↗";
}

/* maior mes de renda passiva */

#historical-memory-panel
.history-story-card:nth-child(4)::before {
  content: "▥";
}

#historical-memory-panel
.history-story-card > span {
  color: #64748b !important;

  font-size: 14px !important;
}

#historical-memory-panel
.history-story-card > strong {
  margin-top: 5px !important;

  color: #0f172a !important;

  font-size: 22px !important;
  line-height: 1.15 !important;
}

#historical-memory-panel
.history-story-card > small {
  margin-top: 5px !important;

  color: #64748b !important;

  font-size: 13px !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1050px) {

  #historical-memory-panel
  .history-kpi-grid,

  #historical-memory-panel
  .history-biography-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 650px) {

  #historical-memory-panel
  .history-kpi-grid,

  #historical-memory-panel
  .history-biography-grid {
    grid-template-columns:
      1fr !important;
  }

  #historical-memory-panel
  .history-kpi {
    min-height: 160px !important;
  }

  #historical-memory-panel
  .history-biography {
    padding: 18px !important;
  }

  #historical-memory-panel
  .history-biography-heading p {
    margin-top: 10px !important;
    text-align: left !important;
  }
}

/* =========================================================
   HISTORICO - TIMELINE PADRAO VISUAL ATLAS
   ========================================================= */

#historical-memory-panel .history-milestones {
  position: relative !important;

  display: grid !important;
  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;

  gap: 12px !important;

  margin-top: 22px !important;
  padding: 0 !important;
}

/* remove a linha vertical antiga */

#historical-memory-panel
.history-milestones::before {
  display: none !important;
}

/* cada marco vira um card */

#historical-memory-panel
.history-milestone {
  position: relative !important;

  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) !important;

  gap: 16px !important;
  align-items: center !important;

  min-width: 0 !important;
  min-height: 86px !important;

  padding: 16px 18px 16px 22px !important;

  overflow: hidden !important;

  border: 1px solid #dbe5ef !important;
  border-radius: 15px !important;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #f8fbff 100%
    ) !important;

  box-shadow:
    0 4px 14px rgba(15, 23, 42, .025) !important;
}

/* faixa azul lateral */

#historical-memory-panel
.history-milestone::after {
  position: absolute;

  top: 14px;
  bottom: 14px;
  left: 0;

  width: 4px;

  border-radius: 0 99px 99px 0;

  content: "";

  background: #2784e6;
}

/* remove bolinha da timeline antiga */

#historical-memory-panel
.history-milestone::before {
  display: none !important;
}

/* data */

#historical-memory-panel
.history-milestone-date {
  color: #1d6fc8 !important;

  font-size: 14px !important;
  font-weight: 800 !important;

  white-space: nowrap !important;
}

/* titulo */

#historical-memory-panel
.history-milestone strong {
  margin: 0 0 5px !important;

  color: #0f172a !important;

  font-size: 15px !important;
  line-height: 1.25 !important;
}

/* detalhe */

#historical-memory-panel
.history-milestone p {
  margin: 0 !important;

  color: #64748b !important;

  font-size: 13px !important;
  line-height: 1.35 !important;
}


/* hover bem discreto */

#historical-memory-panel
.history-milestone {
  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
}

#historical-memory-panel
.history-milestone:hover {
  transform: translateY(-2px);

  border-color: #bfdbfe !important;

  box-shadow:
    0 8px 20px rgba(15, 23, 42, .06) !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 900px) {

  #historical-memory-panel
  .history-milestones {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 520px) {

  #historical-memory-panel
  .history-milestone {
    grid-template-columns: 1fr !important;

    gap: 7px !important;
  }
}

/* =========================================================
   HISTORICO - EVOLUCAO ANUAL PADRAO ATLAS
   ========================================================= */

#historical-memory-panel .history-annual-section {
  padding: 24px !important;

  border: 1px solid #dbe4ee !important;
  border-radius: 20px !important;

  background: #f8fafc !important;
}

#historical-memory-panel .history-annual-grid {
  display: grid !important;

  grid-template-columns:
    repeat(2, minmax(0, 1fr)) !important;

  gap: 16px !important;

  margin-top: 20px !important;
}

#historical-memory-panel .history-year-card {
  position: relative !important;

  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto !important;

  column-gap: 18px !important;
  row-gap: 10px !important;

  align-items: center !important;

  min-width: 0 !important;

  padding: 22px !important;

  border: 1px solid #d8e3ef !important;
  border-radius: 17px !important;

  background: #fff !important;

  box-shadow:
    0 5px 16px rgba(15, 23, 42, .03) !important;
}

/* ano em destaque */

#historical-memory-panel
.history-year-card > strong {
  grid-row: 1 / span 3 !important;

  display: flex !important;

  width: 66px !important;
  height: 66px !important;

  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;

  border-radius: 50% !important;

  color: #155e9a !important;

  background:
    linear-gradient(
      135deg,
      #e7f3ff 0%,
      #d9ecff 100%
    ) !important;

  font-size: 20px !important;
  font-weight: 800 !important;
}

/* linhas de indicadores */

#historical-memory-panel
.history-year-stat {
  display: flex !important;

  justify-content: space-between !important;
  align-items: center !important;

  gap: 12px !important;

  min-width: 0 !important;

  padding-bottom: 8px !important;

  border-bottom:
    1px solid #eef2f7 !important;
}

#historical-memory-panel
.history-year-stat:last-child {
  padding-bottom: 0 !important;

  border-bottom: 0 !important;
}

#historical-memory-panel
.history-year-stat span {
  color: #64748b !important;

  font-size: 14px !important;
}

#historical-memory-panel
.history-year-stat strong {
  color: #0f172a !important;

  font-size: 15px !important;
  font-weight: 800 !important;

  white-space: nowrap !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 900px) {

  #historical-memory-panel
  .history-annual-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 520px) {

  #historical-memory-panel
  .history-year-card {
    grid-template-columns: 1fr !important;
  }

  #historical-memory-panel
  .history-year-card > strong {
    grid-row: auto !important;

    width: 58px !important;
    height: 58px !important;
  }
}

/* =========================================================
   HISTORICO - EVOLUCAO MENSAL PADRAO ATLAS
   ========================================================= */

#historical-memory-panel
.history-card.history-card-wide {
  padding: 24px !important;

  border: 1px solid #dbe4ee !important;
  border-radius: 20px !important;

  background: #fff !important;

  box-shadow:
    0 6px 18px rgba(15, 23, 42, .03) !important;
}

#historical-memory-panel
.history-card-heading {
  margin-bottom: 18px !important;
}

#historical-memory-panel
.history-card-heading h3 {
  margin: 0 0 6px !important;

  color: #0f172a !important;

  font-size: 18px !important;
}

#historical-memory-panel
.history-card-heading p {
  color: #64748b !important;

  font-size: 14px !important;
}


/* ---------- legenda ---------- */

#historical-memory-panel
.history-chart-legend {
  gap: 14px !important;

  padding: 7px 10px !important;

  border: 1px solid #e5eaf0 !important;
  border-radius: 999px !important;

  background: #f8fafc !important;

  font-size: 12px !important;
}

#historical-memory-panel
.history-chart-legend span {
  display: inline-flex !important;
  gap: 6px !important;

  align-items: center !important;
}

#historical-memory-panel
.history-chart-legend i {
  width: 9px !important;
  height: 9px !important;

  border-radius: 50% !important;
}


/* ---------- area do grafico ---------- */

#historical-memory-panel
.history-timeline {
  position: relative !important;

  display: flex !important;

  min-height: 300px !important;

  gap: 10px !important;

  align-items: flex-end !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;

  padding:
    20px 8px 10px !important;

  border-top:
    1px solid #eef2f7 !important;
}

/* linha de base */

#historical-memory-panel
.history-timeline::after {
  position: absolute;

  right: 8px;
  bottom: 35px;
  left: 8px;

  height: 1px;

  content: "";

  background: #dbe4ee;
}


/* ---------- cada mes ---------- */

#historical-memory-panel
.history-month {
  position: relative !important;
  z-index: 2 !important;

  display: grid !important;

  flex:
    1 0 54px !important;

  min-width: 54px !important;
  max-width: 72px !important;

  gap: 7px !important;

  align-items: end !important;

  text-align: center !important;

  cursor: default !important;

  transition:
    transform .18s ease !important;
}

#historical-memory-panel
.history-month:hover {
  transform:
    translateY(-3px) !important;
}


/* ---------- barras ---------- */

#historical-memory-panel
.history-month-bars {
  display: flex !important;

  min-height: 230px !important;

  gap: 5px !important;

  align-items: flex-end !important;
  justify-content: center !important;
}

#historical-memory-panel
.history-month-bar {
  width: 14px !important;

  min-height: 3px !important;

  border-radius:
    7px 7px 3px 3px !important;

  transition:
    filter .18s ease,
    transform .18s ease !important;
}

#historical-memory-panel
.history-month:hover
.history-month-bar {
  filter:
    brightness(1.05) !important;
}

/* aporte */

#historical-memory-panel
.history-month-bar.invested {
  background:
    linear-gradient(
      180deg,
      #3b82f6 0%,
      #2563eb 100%
    ) !important;

  box-shadow:
    0 3px 8px rgba(37, 99, 235, .18) !important;
}

/* provento */

#historical-memory-panel
.history-month-bar.income {
  background:
    linear-gradient(
      180deg,
      #22c55e 0%,
      #16a34a 100%
    ) !important;

  box-shadow:
    0 3px 8px rgba(22, 163, 74, .18) !important;
}


/* ---------- rotulo do mes ---------- */

#historical-memory-panel
.history-month small {
  color: #64748b !important;

  font-size: 10px !important;
  font-weight: 700 !important;

  line-height: 1.2 !important;

  white-space: nowrap !important;
}


/* ---------- scrollbar discreta ---------- */

#historical-memory-panel
.history-timeline::-webkit-scrollbar {
  height: 8px;
}

#historical-memory-panel
.history-timeline::-webkit-scrollbar-track {
  background: transparent;
}

#historical-memory-panel
.history-timeline::-webkit-scrollbar-thumb {
  border-radius: 99px;

  background: #cbd5e1;
}

#historical-memory-panel
.history-timeline::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 760px) {

  #historical-memory-panel
  .history-card.history-card-wide {
    padding: 18px !important;
  }

  #historical-memory-panel
  .history-card-heading {
    display: block !important;
  }

  #historical-memory-panel
  .history-chart-legend {
    display: inline-flex !important;

    margin-top: 10px !important;
  }

  #historical-memory-panel
  .history-timeline {
    min-height: 270px !important;
  }

  #historical-memory-panel
  .history-month-bars {
    min-height: 210px !important;
  }
}

/* =========================================================
   PADRAO VISUAL DE ATUALIZACAO - RESERVA / RV / PREVIDENCIA
   ========================================================= */

/* =========================================================
   RENDA VARIAVEL - REGISTRAR MOVIMENTACAO
   ========================================================= */

#intelligent-registration-panel {
  position: relative !important;

  margin-top: 18px !important;
  padding: 22px !important;

  overflow: hidden !important;

  border: 1px solid #dbe4ee !important;
  border-top: 4px solid #0f9f8c !important;
  border-radius: 20px !important;

  background: #fff !important;

  box-shadow:
    0 8px 24px rgba(15, 23, 42, .035) !important;
}

/* detalhe decorativo inferior direito */

#intelligent-registration-panel::after {
  position: absolute;
  right: -34px;
  bottom: -52px;

  width: 150px;
  height: 150px;

  border-radius: 50%;

  content: "";

  pointer-events: none;

  background:
    rgba(15, 159, 140, .06);
}

#intelligent-registration-panel .panel-heading {
  position: relative;
  z-index: 2;

  margin-bottom: 14px !important;
}

#intelligent-registration-panel .panel-heading h2 {
  margin: 7px 0 5px !important;

  font-size: 21px !important;
}

#intelligent-registration-panel .panel-heading p {
  margin: 0 !important;

  color: #64748b !important;
}

/* caixa interna */

#intelligent-registration-panel
#registration-conversation-mode {
  position: relative;
  z-index: 2;

  padding: 20px !important;

  border: 1px solid #d7e2ee !important;
  border-radius: 17px !important;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fbfdff 100%
    ) !important;
}

/* tabs */

#intelligent-registration-panel
.registration-mode-tabs {
  position: relative;
  z-index: 2;

  display: flex !important;

  gap: 8px !important;

  margin-bottom: 16px !important;
}

#intelligent-registration-panel
.registration-mode-tabs button {
  min-height: 40px !important;

  padding: 0 16px !important;

  border: 1px solid #d7e2ee !important;
  border-radius: 11px !important;

  color: #334155 !important;

  background: #fff !important;

  font-weight: 700 !important;
}

#intelligent-registration-panel
.registration-mode-tabs button.active {
  border-color: #123f63 !important;

  color: #fff !important;

  background: #123f63 !important;
}

/* textarea */

#intelligent-registration-panel
#registration-text {
  width: 100% !important;

  min-height: 132px !important;

  padding: 15px !important;

  border: 1px solid #c9d8e8 !important;
  border-radius: 14px !important;

  background: #fff !important;

  box-shadow: none !important;
}

#intelligent-registration-panel
#registration-text:focus {
  outline: none !important;

  border-color: #0f9f8c !important;

  box-shadow:
    0 0 0 3px rgba(15, 159, 140, .10) !important;
}

/* exemplos */

#intelligent-registration-panel
.registration-examples {
  display: flex !important;

  flex-wrap: wrap !important;

  gap: 8px !important;

  margin-top: 10px !important;
}

#intelligent-registration-panel
.registration-examples button {
  padding: 7px 11px !important;

  border: 1px solid #d7e2ee !important;
  border-radius: 999px !important;

  color: #334155 !important;

  background: #f8fafc !important;

  font-size: 12px !important;
  font-weight: 700 !important;
}

/* botao principal */

#intelligent-registration-panel
#registration-preview-button {
  width: 100% !important;

  min-height: 48px !important;

  margin-top: 18px !important;

  border: 0 !important;
  border-radius: 12px !important;

  color: #fff !important;

  background:
    linear-gradient(
      90deg,
      #087b70 0%,
      #16bba7 100%
    ) !important;

  font-weight: 800 !important;

  box-shadow:
    0 6px 16px rgba(15, 159, 140, .14) !important;
}


/* =========================================================
   PREVIDENCIA - ATUALIZAR VGBL
   ========================================================= */

/*
  Usamos seletores estruturais para não alterar IDs nem
  funcionamento do formulário existente.
*/

#pension-panel .panel,
#previdencia-panel .panel,
.pension-update-panel,
.retirement-update-panel {
  position: relative;
}

/*
  Bloco que contém os campos Valor atual / Novo aporte.
  O :has() é suportado pelo Chrome atual.
*/

section:has(#pension-current-value),
section:has(#pension-contribution),
section:has(#pension-update-button),
section:has(#retirement-current-value),
section:has(#retirement-contribution),
section:has(#retirement-update-button) {
  border-top-color: #0f9f8c !important;
}

/* caixa interna do formulario */

form:has(#pension-current-value),
form:has(#pension-contribution),
form:has(#retirement-current-value),
form:has(#retirement-contribution),
div:has(> #pension-current-value),
div:has(> #retirement-current-value) {
  position: relative !important;

  overflow: hidden !important;

  border-radius: 17px !important;
}

/*
  Quando os inputs de previdencia estiverem dentro do mesmo
  container, organiza Valor atual + Novo aporte + Botao
  como na Reserva.
*/

#pension-current-value,
#retirement-current-value {
  border-color: #4fd9c6 !important;
}

#pension-contribution,
#retirement-contribution {
  border-color: #78a9ff !important;
}

#pension-update-button,
#retirement-update-button {
  min-height: 52px !important;

  border: 0 !important;
  border-radius: 12px !important;

  color: #fff !important;

  background:
    linear-gradient(
      90deg,
      #087b70 0%,
      #16bba7 100%
    ) !important;

  font-weight: 800 !important;

  box-shadow:
    0 6px 16px rgba(15, 159, 140, .14) !important;
}


/* =========================================================
   PREVIDENCIA - FALLBACK VISUAL PELOS CAMPOS NUMBER
   ========================================================= */

.workspace-section[data-workspace-view="previdencia"]
input[type="number"],
#previdencia-panel input[type="number"],
.pension-panel input[type="number"] {
  min-height: 54px !important;

  padding: 0 14px !important;

  border-radius: 12px !important;

  background: #fff !important;

  font-weight: 700 !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 850px) {

  #intelligent-registration-panel {
    padding: 18px !important;
  }

  #intelligent-registration-panel
  #registration-conversation-mode {
    padding: 16px !important;
  }
}

/* =========================================================
   PREVIDENCIA - ATUALIZAR VGBL PADRAO RESERVA
   ========================================================= */

.pension-update-card {
  position: relative !important;

  overflow: hidden !important;

  padding: 22px !important;

  border: 1px solid #dbe4ee !important;
  border-top: 4px solid #0f9f8c !important;
  border-radius: 20px !important;

  background: #fff !important;

  box-shadow:
    0 8px 24px rgba(15, 23, 42, .035) !important;
}

/* circulo decorativo no canto */

.pension-update-card::after {
  position: absolute;

  right: -35px;
  bottom: -55px;

  width: 145px;
  height: 145px;

  border-radius: 50%;

  content: "";

  pointer-events: none;

  background:
    rgba(15, 159, 140, .06);
}


/* ---------- cabecalho ---------- */

.pension-update-card
.panel-heading.compact {
  position: relative;
  z-index: 2;

  margin-bottom: 14px !important;
}

.pension-update-card
.panel-heading.compact h3 {
  margin: 7px 0 5px !important;

  color: #172033 !important;

  font-size: 21px !important;
}

.pension-update-card
.panel-heading.compact p {
  margin: 0 !important;

  color: #64748b !important;

  line-height: 1.45 !important;
}


/* =========================================================
   FORMULARIO INTERNO
   ========================================================= */

.pension-update-card
.manual-wealth-card {
  position: relative;
  z-index: 2;

  display: grid !important;

  grid-template-columns:
    minmax(0, 1.15fr)
    minmax(0, 1.15fr)
    minmax(240px, .9fr) !important;

  gap: 18px !important;

  align-items: end !important;

  padding: 24px 22px !important;

  border: 1px solid #d7e2ee !important;
  border-radius: 17px !important;

  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fbfdff 100%
    ) !important;

  box-shadow: none !important;
}


/* remove PREVIDENCIA / VGBL duplicado dentro da caixa */

.pension-update-card
.manual-wealth-card > div:first-child {
  display: none !important;
}


/* ---------- labels ---------- */

.pension-update-card
.manual-wealth-card > label {
  display: flex !important;

  flex-direction: column !important;

  gap: 8px !important;

  margin: 0 !important;

  color: #3f4b5f !important;

  font-size: 13px !important;
  font-weight: 700 !important;
}


/* ---------- inputs ---------- */

#manual-pension-market-value,
#manual-pension-contribution {
  width: 100% !important;

  min-height: 54px !important;

  padding: 0 14px !important;

  border-radius: 12px !important;

  background: #fff !important;

  color: #0f172a !important;

  font-size: 15px !important;
  font-weight: 800 !important;

  box-shadow: none !important;
}


/* Valor atual - teal */

#manual-pension-market-value {
  border:
    2px solid #4fd9c6 !important;
}

#manual-pension-market-value:focus {
  outline: none !important;

  border-color: #0f9f8c !important;

  box-shadow:
    0 0 0 3px
    rgba(15, 159, 140, .10) !important;
}


/* Novo aporte - azul */

#manual-pension-contribution {
  border:
    2px solid #6ea8ff !important;
}

#manual-pension-contribution:focus {
  outline: none !important;

  border-color: #2563eb !important;

  box-shadow:
    0 0 0 3px
    rgba(37, 99, 235, .10) !important;
}


/* ---------- botao ---------- */

#manual-pension-update {
  width: 100% !important;

  min-height: 54px !important;

  margin: 0 !important;
  padding: 0 20px !important;

  border: 0 !important;
  border-radius: 12px !important;

  color: #fff !important;

  background:
    linear-gradient(
      90deg,
      #087b70 0%,
      #16bba7 100%
    ) !important;

  font-size: 14px !important;
  font-weight: 800 !important;

  box-shadow:
    0 6px 16px
    rgba(15, 159, 140, .14) !important;

  transition:
    transform .18s ease,
    box-shadow .18s ease !important;
}

#manual-pension-update:hover {
  transform:
    translateY(-1px) !important;

  box-shadow:
    0 8px 20px
    rgba(15, 159, 140, .18) !important;
}


/* ---------- status ---------- */

#manual-pension-status {
  grid-column: 1 / -1 !important;

  min-height: 0 !important;

  margin: 0 !important;

  color: #64748b !important;

  font-size: 12px !important;
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 950px) {

  .pension-update-card
  .manual-wealth-card {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }

  #manual-pension-update {
    grid-column: 1 / -1 !important;
  }
}

@media (max-width: 650px) {

  .pension-update-card {
    padding: 18px !important;
  }

  .pension-update-card
  .manual-wealth-card {
    grid-template-columns:
      1fr !important;

    padding: 18px !important;
  }

  #manual-pension-update {
    grid-column: auto !important;
  }
}

/* =========================================================
   HISTORICO - REFINAMENTO EVOLUCAO MENSAL
   ========================================================= */

#historical-memory-panel
.history-month-bar {
  width: 15px !important;
}

#historical-memory-panel
.history-month-bar.income {
  min-height: 4px !important;
}

/* barra verde continua proporcional,
   mas permanece visivel quando o valor e pequeno */
#historical-memory-panel
.history-month-bar.income[style*="height:2px"] {
  height: 4px !important;
}

#historical-memory-panel
.history-timeline::after {
  background: #e5eaf0 !important;
}

#historical-memory-panel
.history-timeline::-webkit-scrollbar {
  height: 6px !important;
}

#historical-memory-panel
.history-timeline::-webkit-scrollbar-thumb {
  background: #d4dde8 !important;
}

/* =========================================================
   HISTORICO - EVOLUCAO MENSAL SEM CORTAR MESES
   ========================================================= */

#historical-memory-panel
.history-timeline {
  display: flex !important;

  width: 100% !important;

  gap: 6px !important;

  overflow-x: hidden !important;

  padding-left: 8px !important;
  padding-right: 8px !important;
}


/* Todos os meses dividem igualmente o espaco */

#historical-memory-panel
.history-month {
  flex: 1 1 0 !important;

  width: auto !important;

  min-width: 0 !important;
  max-width: none !important;
}


/* Mantem as duas barras centralizadas */

#historical-memory-panel
.history-month-bars {
  width: 100% !important;

  gap: 4px !important;

  justify-content: center !important;
}


/* Barras um pouco mais compactas para caber tudo */

#historical-memory-panel
.history-month-bar {
  width: 12px !important;

  flex: 0 0 12px !important;
}


/* Mes sempre centralizado */

#historical-memory-panel
.history-month small {
  display: block !important;

  width: 100% !important;

  overflow: visible !important;

  text-align: center !important;

  white-space: nowrap !important;
}


/* scrollbar deixa de ser necessaria no desktop */

#historical-memory-panel
.history-timeline::-webkit-scrollbar {
  display: none !important;
}


/* Em telas pequenas volta a permitir rolagem */

@media (max-width: 760px) {

  #historical-memory-panel
  .history-timeline {
    overflow-x: auto !important;
  }

  #historical-memory-panel
  .history-month {
    flex: 0 0 48px !important;

    min-width: 48px !important;
  }
}

/*
=========================================================
   HISTORICO - RANKING CUSTO ATUAL FULL WIDTH
=========================================================
*/

#historical-memory-panel
.history-secondary-grid {
  display: grid !important;
  grid-template-columns:
    minmax(0, 1fr) !important;
  gap: 16px !important;
}

#historical-memory-panel
.history-secondary-grid > .history-card {
  width: 100% !important;
  min-width: 0 !important;
}

#historical-memory-panel
.history-ranking {
  width: 100% !important;
}

#historical-memory-panel
.history-ranking-row {
  grid-template-columns:
    90px minmax(0, 1fr) 130px !important;

  gap: 14px !important;
  width: 100% !important;
}

#historical-memory-panel
.history-ranking-track {
  width: 100% !important;
  min-width: 0 !important;
}

#historical-memory-panel
.history-ranking-row > span {
  text-align: right !important;
}

@media (max-width: 650px) {

  #historical-memory-panel
  .history-ranking-row {
    grid-template-columns:
      68px minmax(70px, 1fr) auto !important;

    gap: 8px !important;
  }
}

/* =========================================================
   AUDITORIA — KPIs PATRIMONIAIS PREMIUM
   Mesmo padrão visual dos KPIs do Histórico
   ========================================================= */

#financial-audit-panel .financial-audit-summary {
  gap: 16px;
  margin: 20px 0 22px;
}

#financial-audit-panel .financial-audit-summary article {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
  min-height: 178px;
  padding: 20px;
  overflow: hidden;
  border: 0;
  border-radius: 18px;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .08);
}

/* círculo decorativo inferior */
#financial-audit-panel .financial-audit-summary article::after {
  position: absolute;
  right: -28px;
  bottom: -48px;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .13);
  content: "";
  pointer-events: none;
}

/* textos */
#financial-audit-panel .financial-audit-summary article > span {
  position: relative;
  z-index: 2;
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}

#financial-audit-panel .financial-audit-summary article > strong {
  position: relative;
  z-index: 2;
  margin-top: 22px;
  color: #fff;
  font-size: 28px;
  line-height: 1.15;
}

#financial-audit-panel .financial-audit-summary article > small {
  position: relative;
  z-index: 2;
  margin-top: auto;
  padding-top: 16px;
  color: rgba(255, 255, 255, .92);
  line-height: 1.35;
}

/* Patrimônio oficial — azul */
#financial-audit-panel .financial-audit-summary article:nth-child(1) {
  background: linear-gradient(
    135deg,
    #1267bd 0%,
    #2697e9 100%
  );
}

#financial-audit-panel .financial-audit-summary article:nth-child(1)::before {
  position: absolute;
  top: 22px;
  right: 22px;
  content: "▥";
  color: rgba(255, 255, 255, .27);
  font-size: 34px;
  line-height: 1;
}

/* Patrimônio conciliado — verde */
#financial-audit-panel .financial-audit-summary article:nth-child(2) {
  background: linear-gradient(
    135deg,
    #07833f 0%,
    #17c979 100%
  );
}

#financial-audit-panel .financial-audit-summary article:nth-child(2)::before {
  position: absolute;
  top: 20px;
  right: 22px;
  content: "◎";
  color: rgba(255, 255, 255, .27);
  font-size: 36px;
  line-height: 1;
}

/* Renda variável — amarelo */
#financial-audit-panel .financial-audit-summary article:nth-child(3) {
  background: linear-gradient(
    135deg,
    #bf7900 0%,
    #f4bd05 100%
  );
}

#financial-audit-panel .financial-audit-summary article:nth-child(3)::before {
  position: absolute;
  top: 21px;
  right: 22px;
  content: "↗";
  color: rgba(255, 255, 255, .29);
  font-size: 35px;
  line-height: 1;
}

/* Demais classes — roxo */
#financial-audit-panel .financial-audit-summary article:nth-child(4) {
  background: linear-gradient(
    135deg,
    #6422bd 0%,
    #9b42e8 100%
  );
}

#financial-audit-panel .financial-audit-summary article:nth-child(4)::before {
  position: absolute;
  top: 21px;
  right: 22px;
  content: "▣";
  color: rgba(255, 255, 255, .27);
  font-size: 34px;
  line-height: 1;
}

@media (max-width: 600px) {
  #financial-audit-panel .financial-audit-summary article {
    min-height: 160px;
  }
}
/* Auditoria — barras da composição patrimonial */
#financial-audit-panel #audit-class-list .audit-class-row {
  padding: 13px 0;
}

#financial-audit-panel #audit-class-list .audit-class-progress {
  grid-column: 1 / -1;
  width: 100%;
  height: 6px;
  margin-top: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: #e8eef5;
}

#financial-audit-panel #audit-class-list .audit-class-progress > span {
  display: block;
  height: 100%;
  min-width: 3px;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    #1267bd 0%,
    #2697e9 100%
  );
}

/* =========================================================
   AUDITORIA — MEMÓRIA TÉCNICA VISUAL
   ========================================================= */

#financial-audit-panel .financial-audit-technical-heading {
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid #e2e8f0;
}

#financial-audit-panel .financial-audit-technical-heading h3 {
  margin: 8px 0 6px;
  color: #172033;
  font-size: 20px;
}

#financial-audit-panel .financial-audit-technical-heading p {
  margin: 0;
  color: #64748b;
}

#financial-audit-panel .audit-technical-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 18px 0 22px;
}

#financial-audit-panel .audit-technical-kpis > .kpi-card,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 168px;
  padding: 22px 20px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-top: 4px solid var(--audit-accent);
  border-radius: 18px;
  color: #172033;
  background: var(--audit-bg);
  box-shadow: 0 9px 24px rgba(15, 23, 42, .055);
}

/* círculo decorativo */
#financial-audit-panel .audit-technical-kpis > .kpi-card::after {
  position: absolute;
  right: -26px;
  bottom: -44px;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  content: "";
  background: var(--audit-circle);
  pointer-events: none;
}

/* ícone superior */
#financial-audit-panel .audit-technical-kpis > .kpi-card::before {
  position: absolute;
  top: 18px;
  right: 20px;
  z-index: 1;
  color: var(--audit-icon);
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
}

/* conteúdo */
#financial-audit-panel .audit-technical-kpis > .kpi-card > span,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > span {
  position: relative;
  z-index: 2;
  max-width: 78%;
  color: #526277;
  font-size: 13px;
  font-weight: 700;
}

#financial-audit-panel .audit-technical-kpis > .kpi-card > strong,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > strong {
  position: relative;
  z-index: 2;
  margin: 22px 0 0;
  color: #172033;
  font-size: 27px;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.35px;
}

#financial-audit-panel .audit-technical-kpis > .kpi-card > small,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > small {
  position: relative;
  z-index: 2;
  margin-top: auto;
  padding-top: 14px;
  color: #718096;
  font-size: 12px;
  line-height: 1.35;
}

/* 1 — Total precificado */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(1) {
  --audit-accent: #2563eb;
  --audit-bg: #f5f9ff;
  --audit-circle: rgba(37, 99, 235, .07);
  --audit-icon: rgba(37, 99, 235, .20);
}

#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(1)::before {
  content: "▥";
}

/* 2 — Custo contábil */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(2) {
  --audit-accent: #0f9f6e;
  --audit-bg: #f5fcf9;
  --audit-circle: rgba(15, 159, 110, .07);
  --audit-icon: rgba(15, 159, 110, .20);
}

#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(2)::before {
  content: "▣";
}

/* 3 — Resultado não realizado */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(3) {
  --audit-accent: #d89a08;
  --audit-bg: #fffaf0;
  --audit-circle: rgba(216, 154, 8, .08);
  --audit-icon: rgba(190, 125, 0, .22);
}

#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(3)::before {
  content: "↗";
}

/* 4 — Resultado realizado */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(4) {
  --audit-accent: #7c3aed;
  --audit-bg: #faf7ff;
  --audit-circle: rgba(124, 58, 237, .07);
  --audit-icon: rgba(124, 58, 237, .20);
}

#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(4)::before {
  content: "◎";
}

@media (max-width: 1040px) {
  #financial-audit-panel .audit-technical-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  #financial-audit-panel .audit-technical-kpis {
    grid-template-columns: 1fr;
  }
}


/* AUDITORIA — memória técnica no padrão visual Atlas */

#financial-audit-panel .audit-technical-kpis > .kpi-card,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured {
  min-height: 178px !important;
  padding: 24px 22px !important;
  border: 0 !important;
  border-radius: 18px !important;
  color: #fff !important;
  box-shadow: 0 10px 26px rgba(15, 23, 42, .08) !important;
}

/* Azul */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(1) {
  background:
    linear-gradient(
      135deg,
      #1267bd 0%,
      #2697e9 100%
    ) !important;
}

/* Verde */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(2) {
  background:
    linear-gradient(
      135deg,
      #07833f 0%,
      #17c979 100%
    ) !important;
}

/* Dourado */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(3) {
  background:
    linear-gradient(
      135deg,
      #bf7900 0%,
      #f4bd05 100%
    ) !important;
}

/* Roxo */
#financial-audit-panel .audit-technical-kpis > .kpi-card:nth-child(4) {
  background:
    linear-gradient(
      135deg,
      #6422bd 0%,
      #9b42e8 100%
    ) !important;
}

/* Títulos */
#financial-audit-panel .audit-technical-kpis > .kpi-card > span,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > span {
  max-width: 78%;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}

/* Valores */
#financial-audit-panel .audit-technical-kpis > .kpi-card > strong,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > strong {
  margin-top: 22px !important;
  color: #fff !important;
  font-size: 28px !important;
  line-height: 1.05 !important;
  letter-spacing: -.5px !important;
}

/* Descrições */
#financial-audit-panel .audit-technical-kpis > .kpi-card > small,
#financial-audit-panel .audit-technical-kpis > .kpi-card.featured > small {
  margin-top: auto !important;
  padding-top: 16px !important;
  color: rgba(255, 255, 255, .92) !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}

/* Círculo inferior — mesmo padrão do Histórico */
#financial-audit-panel .audit-technical-kpis > .kpi-card::after {
  right: -28px !important;
  bottom: -48px !important;
  width: 130px !important;
  height: 130px !important;
  background: rgba(255, 255, 255, .10) !important;
}

/* Desenhos superiores */
#financial-audit-panel .audit-technical-kpis > .kpi-card::before {
  top: 22px !important;
  right: 22px !important;
  color: rgba(255, 255, 255, .25) !important;
  font-size: 40px !important;
}

/* Auditoria - diagnostico refinado */

#financial-audit-panel #audit-issue-list {
  display: grid;
  gap: 10px;
}

#financial-audit-panel #audit-issue-list .audit-issue {
  position: relative;
  display: grid;
  gap: 8px;
  margin-bottom: 0;
  padding: 14px 16px;
  overflow: hidden;
  border-radius: 12px;
}

#financial-audit-panel .audit-issue-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

#financial-audit-panel .audit-issue-heading > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

#financial-audit-panel .audit-issue-heading strong {
  color: #172033;
  font-size: 15px;
  line-height: 1.35;
}

#financial-audit-panel .audit-issue-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

#financial-audit-panel .audit-issue-value {
  color: #475569;
  font-size: 15px;
  font-weight: 800;
}

#financial-audit-panel .audit-issue small {
  color: #64748b;
  font-size: 13px;
  line-height: 1.45;
}

/* Divergência patrimonial */

#financial-audit-panel .audit-issue.warning {
  border-left-color: #d97706;
  background: #fffbeb;
}

#financial-audit-panel .audit-issue.warning .audit-issue-badge {
  color: #92400e;
  background: #fef3c7;
}

/* Informação de escopo */

#financial-audit-panel .audit-issue.info {
  border-left-color: #2563eb;
  background: #eff6ff;
}

#financial-audit-panel .audit-issue.info .audit-issue-badge {
  color: #1d4ed8;
  background: #dbeafe;
}

/* Patrimônio conciliado */

#financial-audit-panel .audit-issue.success {
  border-left-color: #16a34a;
  background: #f0fdf4;
}

#financial-audit-panel .audit-issue.success .audit-issue-badge {
  color: #166534;
  background: #dcfce7;
}
/* =========================================================
   Visão do Mercado — Custódia Atlas
   ========================================================= */

.market-overview-panel {
  margin-bottom: 22px;
  overflow: hidden;
}

.market-overview-heading {
  align-items: flex-start;
}

.market-overview-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.market-overview-status {
  min-width: 105px;
  padding: 9px 12px;
  border: 1px solid #d7e1ed;
  border-radius: 14px;
  background: #f8fafc;
}

.market-overview-status small,
.market-overview-status strong {
  display: block;
}

.market-overview-status small {
  color: #64748b;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.market-overview-status strong {
  margin-top: 2px;
  color: #334155;
  font-size: .87rem;
}

.market-overview-status.current {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.market-overview-status.current strong {
  color: #166534;
}

.market-overview-status.stale {
  border-color: #fde68a;
  background: #fffbeb;
}

.market-overview-status.stale strong {
  color: #92400e;
}

.market-overview-status.error {
  border-color: #fecaca;
  background: #fef2f2;
}

.market-overview-status.error strong {
  color: #991b1b;
}

.market-overview-updated {
  color: #64748b;
  font-size: .78rem;
  white-space: nowrap;
}

.market-overview-grid {
  display: grid;
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(250px, .8fr)
    minmax(250px, .8fr);
  gap: 16px;
  margin-top: 20px;
}

.market-overview-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  background: #f8fafc;
}

.market-overview-card.custody {
  background:
    linear-gradient(
      145deg,
      #f8fbff 0%,
      #f8fafc 100%
    );
}

.market-overview-card.gainers {
  background:
    linear-gradient(
      145deg,
      #f6fff9 0%,
      #f8fafc 100%
    );
}

.market-overview-card.losers {
  background:
    linear-gradient(
      145deg,
      #fff8f8 0%,
      #f8fafc 100%
    );
}
.market-overview-opportunities {
  min-width: 0;
  padding: 18px;
  border: 1px solid #dbe4ee;
  border-radius: 18px;
  background:
    linear-gradient(
      145deg,
      #faf8ff 0%,
      #f8fafc 100%
    );
}

.market-overview-opportunities .market-overview-icon {
  color: #7c3aed;
  background: #ede9fe;
}

.market-overview-opportunities .market-overview-count {
  color: #6d28d9;
  background: #ede9fe;
}

.market-overview-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.market-overview-card-heading > div {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.market-overview-card-heading small {
  display: block;
  margin-bottom: 2px;
  color: #64748b;
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .06em;
}

.market-overview-card-heading h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
}

.market-overview-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  color: #1d4ed8;
  background: #dbeafe;
  font-size: 1rem;
  font-weight: 900;
}

.market-overview-card.gainers
.market-overview-icon {
  color: #15803d;
  background: #dcfce7;
}

.market-overview-card.losers
.market-overview-icon {
  color: #b91c1c;
  background: #fee2e2;
}

.market-overview-count {
  display: grid;
  place-items: center;
  min-width: 32px;
  height: 28px;
  padding: 0 9px;
  border-radius: 999px;
  color: #475569;
  background: #e2e8f0;
  font-size: .75rem;
  font-weight: 800;
}

.market-overview-list {
  display: grid;
  gap: 0;
}

.market-overview-item {
  display: grid;
  grid-template-columns:
    minmax(70px, 1fr)
    auto
    minmax(70px, auto);
  align-items: center;
  gap: 10px;
  min-height: 51px;
  padding: 9px 2px;
  border-bottom: 1px solid #e5eaf0;
}

.market-overview-item:last-child {
  border-bottom: 0;
}

.market-overview-asset {
  min-width: 0;
}

.market-overview-asset strong,
.market-overview-asset small {
  display: block;
}

.market-overview-asset strong {
  color: #0f172a;
  font-size: .87rem;
}

.market-overview-asset small {
  margin-top: 2px;
  overflow: hidden;
  color: #64748b;
  font-size: .7rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-overview-price {
  color: #334155;
  font-size: .82rem;
  font-weight: 800;
  text-align: right;
  white-space: nowrap;
}

.market-overview-change {
  min-width: 62px;
  padding: 5px 7px;
  border-radius: 9px;
  text-align: center;
  font-size: .75rem;
  font-weight: 900;
  white-space: nowrap;
}

.market-overview-change.positive {
  color: #166534;
  background: #dcfce7;
}

.market-overview-change.negative {
  color: #991b1b;
  background: #fee2e2;
}

.market-overview-change.neutral {
  color: #475569;
  background: #e2e8f0;
}

.market-overview-opportunity-item {
  min-height: 62px;
}

.market-overview-opportunity-reason {
  margin-top: 4px !important;
  color: #2563eb !important;
  font-size: .66rem !important;
  font-weight: 700;
  line-height: 1.25;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
}
.market-overview-empty {
  padding: 26px 10px;
  color: #94a3b8;
  font-size: .8rem;
  text-align: center;
}

.market-overview-more {
  width: 100%;
  margin-top: 10px;
  padding: 9px 12px;
  border: 1px solid #dbe4ee;
  border-radius: 11px;
  color: #0f3a5d;
  background: white;
  font: inherit;
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
}

.market-overview-more:hover {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.market-overview-note {
  margin: 14px 2px 0;
  color: #64748b;
  font-size: .75rem;
}

@media (max-width: 1100px) {
  .market-overview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-overview-card.custody {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .market-overview-meta {
    justify-content: flex-start;
  }

  .market-overview-grid {
    grid-template-columns: 1fr;
  }

  .market-overview-card.custody {
    grid-column: auto;
  }

  .market-overview-item {
    grid-template-columns:
      minmax(70px, 1fr)
      auto
      auto;
  }
}
/* Visão do Mercado não pode permanecer oculta pelo reveal global. */
.market-overview-panel.premium-reveal {
  opacity: 1 !important;
  transform: none !important;
}

/* =========================================================
   Radar Atlas — refinamento compacto
   ========================================================= */

/* A Visão do Mercado já concentra as sugestões automáticas. */
#market-radar-panel .market-suggestions-block {
  display: none;
}

/* Mantém o elemento disponível para o JS, sem ocupar espaço. */
#market-radar-panel #market-radar-empty {
  display: none !important;
}

/* Reduz a altura do bloco principal do scanner. */
#market-radar-panel .market-premium-controls {
  padding-bottom: 16px;
}

/* Ranking passa a ser o conteúdo principal do Radar. */
#market-radar-panel .market-premium-content {
  margin-top: 20px;
  align-items: stretch;
}

/* Mais espaço para os resultados e menos para a memória. */
#market-radar-panel .market-premium-content {
  grid-template-columns:
    minmax(0, 2.2fr)
    minmax(260px, .8fr);
  gap: 20px;
}

/* Ranking e histórico ficam visualmente mais próximos do scanner. */
#market-radar-panel .market-ranking-section,
#market-radar-panel .market-history-section {
  min-height: 0;
}

@media (max-width: 900px) {
  #market-radar-panel .market-premium-content {
    grid-template-columns: 1fr;
  }
}

/* Atlas Mobile - tabela Desempenho por ativo */
@media (max-width: 760px) {
  #rv-position-table {
    white-space: nowrap;
  }

  .financial-audit-card:has(#rv-position-table) {
    min-width: 0;
    overflow: hidden;
  }

  .financial-audit-card:has(#rv-position-table) .table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .financial-audit-card:has(#rv-position-table) table {
    width: max-content;
    min-width: 900px;
  }
}

/* Atlas Mobile - Previdencia anual */
@media (max-width: 760px) {
  .pension-summary-grid,
  .pension-summary-grid > .financial-audit-card,
  .pension-annual-detail {
    min-width: 0;
    max-width: 100%;
  }

  #pension-annual-chart {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  #pension-annual-chart .pension-bars {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
  }

  #pension-annual-chart .pension-bar-group {
    min-width: 0;
  }

  .pension-annual-detail {
    overflow: hidden;
  }

  .pension-annual-detail .table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .pension-annual-detail table {
    width: max-content;
    min-width: 650px;
  }

  #pension-annual-table {
    white-space: nowrap;
  }
}

/* Atlas Mobile - valores da meta patrimonial */
@media (max-width: 760px) {
  #goal-current-value,
  #goal-remaining-value {
    font-size: 1.15rem;
    letter-spacing: -0.04em;
    white-space: nowrap;
  }
}

/* Atlas Mobile - metas em uma coluna */
@media (max-width: 760px) {
  .goal-kpis {
    grid-template-columns: 1fr;
  }

  #goal-current-value,
  #goal-remaining-value {
    font-size: 1.45rem;
    letter-spacing: -0.025em;
  }
}

/* Atlas Mobile - tabela Projecao ano a ano */
@media (max-width: 760px) {
  .financial-simulator-table-card {
    min-width: 0;
    overflow: hidden;
  }

  .financial-simulator-table-card .table-scroll {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .financial-simulator-table-card .simulation-table {
    width: max-content !important;
    max-width: none !important;
    min-width: 650px !important;
    table-layout: auto;
  }

  .financial-simulator-table-card .simulation-table th,
  .financial-simulator-table-card .simulation-table td {
    width: auto;
    overflow: visible;
    white-space: nowrap;
  }
}

/* Atlas Mobile - grafico anual da Previdencia */
@media (max-width: 760px) {
  #pension-annual-chart .pension-bar-column span {
    font-size: 8px;
    transform: none;
    transform-origin: center;
    letter-spacing: -0.02em;
  }

  #pension-annual-chart .pension-bar-values {
    gap: 4px;
  }

  #pension-annual-chart .pension-bar-column {
    width: 46%;
  }
}

/* Atlas Mobile - resumo de Aportes em uma coluna */
@media (max-width: 760px) {
  .rebalancing-summary {
    grid-template-columns: 1fr;
  }
}

/* Atlas Mobile - Plano de compras em uma coluna */
@media (max-width: 760px) {
  .contribution-intelligence-summary {
    grid-template-columns: 1fr;
  }
}
