/* ================================================================
   MOVA · Finance architecture upgrade
   Capa visual aditiva. Conserva el sistema existente y solo estiliza
   las vistas/componentes introducidos por mova-finance-upgrade.js.
   ================================================================ */

:root {
  --finance-surface: #111519;
  --finance-surface-raised: #15191e;
  --finance-surface-soft: #0f1317;
  --finance-border: #292e34;
  --finance-border-strong: #3a4149;
  --finance-text: #f3f4f5;
  --finance-copy: #989fa7;
  --finance-muted: #707981;
  --finance-white: #f4f2f5;
  --finance-green: #5ee5a2;
  --finance-red: #ff8d86;
  --finance-yellow: #e9c967;
  --finance-cyan: #62d9ef;
  --finance-purple: #b78cf4;
  --finance-radius: 18px;
  --finance-radius-sm: 11px;
  --finance-shadow: 0 16px 46px #00000024;
}

/* Ajustes de interacción y personalización */
@media (min-width: 761px) {
  .topbar { display: none; }
}

.sidebar-period {
  margin: 0 4px 10px;
  padding: 0 0 13px;
  border-bottom: 1px solid #292e34;
}

.sidebar-period .period-control { gap: 3px; }
.sidebar-period .period-control > button:first-child,
.sidebar-period .period-control > button:last-child { width: 25px; min-width: 25px; }
.sidebar-period .period-control #periodLabel { min-width: 0; width: 160px; height: 42px; padding: 0 10px; }
.sidebar-period .period-control #periodLabel b { font-size: 11px; }
.sidebar-period .period-menu { left: 0; width: 216px; transform: none; }
.sidebar.collapsed .sidebar-period { display: none; }

.nav-label {
  margin: 11px 3px 5px;
  padding: 7px 9px;
  border-left: 2px solid #7e669e;
  border-radius: 0 7px 7px 0;
  background: linear-gradient(90deg, #b78cf414, transparent);
  color: #a49aaa;
  font-size: 8px;
  letter-spacing: .18em;
}

.movement-search small {
  flex: 0 0 auto;
  color: #717a82;
  font-size: 7px;
  white-space: nowrap;
}

.movement-date-range {
  display: none;
  align-items: end;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid #3a3245;
  border-radius: 11px;
  background: linear-gradient(90deg, #b78cf40b, #0e1216);
}

.movement-date-range.open { display: flex; }
.movement-date-range > span { padding-bottom: 12px; color: #766b80; }
.movement-date-range label { width: min(210px, 45%); display: flex; flex-direction: column; gap: 6px; }
.movement-date-range label > span { color: #91849d; font-size: 7px; font-weight: 700; letter-spacing: .11em; }
.movement-date-range input { height: 38px; padding: 0 10px; border: 1px solid #40364d; border-radius: 9px; background: #0e1216; color: #e6e0ea; color-scheme: dark; }
.movement-extra-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.account-brand-logo { overflow: hidden; padding: 7px; background: #f7f8fa; }
.account-brand-logo img { width: 100%; height: 100%; display: block; object-fit: contain; }
.account-brand-logo.fallback { padding: 0; background: #24212b; }
.account-brand-logo.is-nu { padding: 6px; background: #fff; }
.account-brand-logo.is-binance { padding: 7px; background: #15191d; border-color: #f3ba2f55; }
.account-brand-logo.is-paxum { padding: 7px; background: #fff; }
.account-brand-logo.is-paxum img { object-fit: contain; }
.account-brand-logo.is-uala { padding: 5px; background: #fff; border-color: rgba(18,57,183,.25); }
.account-brand-logo.is-uala img { max-width: 100%; object-fit: contain; }
.account-brand-logo.is-plata { padding: 5px; background: #111614; border-color: rgba(29,207,91,.28); }
.account-brand-logo.is-plata img { max-width: 100%; object-fit: contain; }
.account-identity { margin-top: 17px; }
.account-identity h2 { margin: 0 0 4px; color: #f1eef3; font: 650 16px Manrope, sans-serif; }
.account-identity span { color: #818991; font-size: 8px; }
.live-account .account-balance { margin-top: 17px; }

.debt-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.debt-summary-grid .progress-global,
.debt-summary-grid .progress-period { border-color: #5a4770; }
.debt-summary-grid .progress-period { border-color: #345b67; }
.debt-summary-grid article > i { height: 4px; overflow: hidden; border-radius: 99px; background: #282d33; }
.debt-summary-grid article > i > em { height: 100%; display: block; border-radius: inherit; background: var(--finance-purple); }
.debt-summary-grid .progress-period > i > em { background: var(--finance-cyan); }

.smart-calendar .event {
  border-color: color-mix(in srgb, var(--event-type) 25%, #30363c);
  border-left-color: var(--event-type);
  background: color-mix(in srgb, var(--event-type) 10%, #15191e);
}
.smart-calendar .event em { display: inline-flex; align-items: center; gap: 4px; width: fit-content; padding: 2px 5px; border-radius: 999px; background: color-mix(in srgb, var(--event-business) 14%, #171b20); color: var(--event-business); }
.smart-calendar .event em i { width: 4px; height: 4px; border-radius: 50%; background: var(--event-business); }

.element-quick-actions {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 15px;
}
.element-quick-actions button { min-height: 105px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; color: inherit; text-align: left; cursor: pointer; }
.element-quick-actions button:hover { border-color: #5b4b6b; transform: translateY(-2px); }
.element-quick-actions span { color: #8f7da0; font-size: 7px; font-weight: 700; letter-spacing: .12em; }
.element-quick-actions b { color: #eee9f1; font: 650 11px Manrope, sans-serif; }
.element-quick-actions small { color: #757d85; font-size: 8px; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.catalog-card { min-height: 170px; }
.catalog-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.catalog-card-head small { color: #a68bbd; font-size: 7px; font-weight: 700; letter-spacing: .12em; }
.catalog-card-head p { margin: 6px 0 0; color: #747d85; font-size: 8px; }
.catalog-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; }
.catalog-tags span { padding: 6px 8px; border: 1px solid #33383f; border-radius: 8px; background: #171b20; color: #aab0b5; font-size: 8px; }
.mova-form-grid.single { grid-template-columns: 1fr; }

@media (max-width: 1050px) {
  .element-quick-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .debt-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .topbar { display: flex; }
  .sidebar-period { margin-inline: 3px; }
  .catalog-grid, .element-quick-actions, .debt-summary-grid { grid-template-columns: 1fr; }
  .movement-date-range { align-items: stretch; flex-direction: column; }
  .movement-date-range > span { display: none; }
  .movement-date-range label { width: 100%; }
}

/* Dashboard reconciliation layout: keep labels, tracks and values inside their card. */
.general-dashboard-page .finance-bars-card .simple-section-head {
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  text-align: left;
}

.general-dashboard-page .finance-bars-card .simple-section-head > span {
  position: static;
  flex: 0 0 auto;
  white-space: nowrap;
}

.general-dashboard-page .finance-bars-card .simple-bars {
  width: 100%;
  max-width: none;
  min-width: 0;
}

.general-dashboard-page .finance-bars-card .simple-bar-row {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(86px, 1fr) minmax(72px, 1.15fr) minmax(68px, max-content);
  gap: 12px;
  padding: 16px 14px;
}

.general-dashboard-page .finance-bars-card .simple-bar-row > span,
.general-dashboard-page .finance-bars-card .simple-bar-row > div,
.general-dashboard-page .finance-bars-card .simple-bar-row > b {
  min-width: 0;
}

.general-dashboard-page .finance-bars-card .simple-bar-row > b {
  font-size: clamp(12px, 1.15vw, 15px);
  white-space: nowrap;
}

@media (max-width: 1180px) and (min-width: 1051px) {
  .general-dashboard-page .finance-bars-card .simple-bar-row {
    grid-template-columns: minmax(78px, 1fr) minmax(58px, .9fr) minmax(62px, max-content);
    gap: 9px;
    padding-inline: 11px;
  }
}

/* Navegación principal y submenús */
.sidebar nav {
  scrollbar-width: thin;
  scrollbar-color: #393f46 transparent;
}

.nav-submenu {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.nav-parent {
  width: 100%;
}

.nav-parent > i {
  margin-left: auto;
  color: #6d747c;
  font-style: normal;
  font-size: 10px;
  transition: transform 180ms ease, color 180ms ease;
}

.nav-submenu.open .nav-parent > i {
  color: #dfe2e5;
  transform: rotate(180deg);
}

.nav-subitems {
  position: relative;
  display: none;
  width: calc(100% - 28px);
  margin: 5px 0 8px 28px;
  padding: 3px 0 3px 13px;
  border-left: 1px solid #30363c;
}

.nav-submenu.open .nav-subitems {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.nav-subitem {
  width: 100%;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #7f8991;
  font-size: 11px;
  text-align: left;
  cursor: pointer;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.nav-subitem:hover {
  border-color: #ffffff0b;
  background: #161a1f;
  color: #e3e6e8;
}

.nav-subitem > span {
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: #525a62;
}

.nav-subitem.active {
  border-color: #ffffff16;
  background: linear-gradient(90deg, #ffffff16, #ffffff08);
  color: #fff;
  box-shadow: inset 2px 0 #f5f3f6;
}

.nav-subitem.active > span {
  background: #fff;
  box-shadow: 0 0 10px #ffffffaa;
}

.config-submenu .nav-subitem.active {
  background: linear-gradient(90deg, #b78cf417, #ffffff07);
  box-shadow: inset 2px 0 #b78cf4;
}

.config-submenu .nav-subitem.active > span {
  background: #c9abf5;
  box-shadow: 0 0 10px #b78cf488;
}

.sidebar.collapsed .nav-subitems,
.sidebar.collapsed .nav-parent > i {
  display: none !important;
}

.sidebar.collapsed .nav-parent {
  justify-content: center;
  padding-inline: 0;
}

.sidebar.collapsed .nav-parent > span:not(.nav-icon) {
  display: none !important;
}

.sidebar.collapsed .nav-submenu {
  align-items: center;
}

.sidebar.collapsed .nav-parent .nav-icon {
  width: 18px;
  min-width: 18px;
  margin: 0;
  text-align: center;
}

/* Helion: el anillo comunica participación; la leyenda comunica dinero. */
.helion-donut::after {
  z-index: 1;
}

.helion-donut .donut-share {
  position: absolute;
  z-index: 2;
  min-width: 28px;
  padding: 3px 5px;
  border-radius: 999px;
  background: #090b0dcc;
  color: #fff;
  font: 700 9px Manrope, sans-serif;
  line-height: 1;
  text-align: center;
  box-shadow: 0 2px 8px #0009;
  pointer-events: none;
}

.helion-donut .share-1 { right: 1px; bottom: 35px; }
.helion-donut .share-2 { left: -2px; bottom: 33px; }
.helion-donut .share-3 { left: 5px; top: 22px; }

/* Cabeceras compartidas de las vistas nuevas */
.upgraded-registry,
.registry-visualizer,
.movements-ledger-view,
.accounts-live-view,
.debts-management-view,
.savings-management-view,
.smart-calendar-view,
.analysis-view,
.configuration-deep-view {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
}

.upgraded-registry .registry-page-head,
.registry-visualizer .registry-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}

.upgraded-registry .registry-page-head h1,
.registry-visualizer .registry-page-head h1 {
  margin: 0 0 7px;
  color: var(--finance-text);
  font: 700 34px/1.05 Manrope, sans-serif;
  letter-spacing: -.045em;
}

.upgraded-registry .registry-page-head p,
.registry-visualizer .registry-page-head p {
  margin: 0;
  color: var(--finance-copy);
  font-size: 12px;
}

/* Registro: resumen, captura y formularios ampliados */
.upgraded-registry .registry-current-note {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 11px;
  margin: -7px 0 17px;
  padding: 10px 14px;
  border: 1px solid #30353b;
  border-radius: 12px;
  background: linear-gradient(100deg, #161a1e, #111418);
}

.upgraded-registry .registry-current-note > span {
  width: 27px;
  height: 27px;
  display: grid;
  flex: 0 0 27px;
  place-items: center;
  border-radius: 8px;
  background: #ffffff0b;
  color: #f7f5f7;
  font-size: 8px;
  box-shadow: inset 0 0 0 1px #ffffff0d;
}

.upgraded-registry .registry-current-note b,
.upgraded-registry .registry-current-note small {
  display: block;
}

.upgraded-registry .registry-current-note b {
  font-size: 10px;
}

.upgraded-registry .registry-current-note small {
  margin-top: 3px;
  color: var(--finance-muted);
  font-size: 8px;
}

.upgraded-registry .remainder-summary,
.registry-visualizer > .unified-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin-bottom: 16px;
}

.upgraded-registry .registry-kpi,
.registry-visualizer .registry-kpi {
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 9px;
  padding: 19px 20px;
  overflow: hidden;
  position: relative;
}

.upgraded-registry .registry-kpi::after,
.registry-visualizer .registry-kpi::after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -42px;
  width: 105px;
  height: 105px;
  border-radius: 50%;
  background: currentColor;
  filter: blur(52px);
  opacity: .08;
  pointer-events: none;
}

.upgraded-registry .registry-kpi small,
.registry-visualizer .registry-kpi small {
  color: #858d95;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
}

.upgraded-registry .registry-kpi strong,
.registry-visualizer .registry-kpi strong {
  color: #f3f4f5;
  font: 650 23px Manrope, sans-serif;
  letter-spacing: -.035em;
}

.upgraded-registry .registry-kpi > span,
.registry-visualizer .registry-kpi > span {
  color: #737b84;
  font-size: 8px;
  line-height: 1.35;
}

.upgraded-registry .registry-kpi.income,
.registry-visualizer .registry-kpi.income {
  border-color: #2d654d;
  color: var(--finance-green);
  background: linear-gradient(145deg, #11221b, #101417 68%);
}

.upgraded-registry .registry-kpi.income strong,
.registry-visualizer .registry-kpi.income strong {
  color: var(--finance-green);
}

.upgraded-registry .registry-kpi.expense,
.registry-visualizer .registry-kpi.expense {
  border-color: #653b38;
  color: var(--finance-red);
  background: linear-gradient(145deg, #231716, #101417 70%);
}

.upgraded-registry .registry-kpi.expense strong,
.registry-visualizer .registry-kpi.expense strong {
  color: var(--finance-red);
}

.upgraded-registry .registry-kpi.remaining,
.registry-visualizer .registry-kpi.remaining {
  border-color: #4b4e55;
  color: #e7e2ea;
  background: linear-gradient(145deg, #1c1e24, #101417 72%);
}

.planned-opening-edit {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 7px;
  margin-top: 12px;
}

.planned-opening-edit > span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #9ca3aa;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .12em;
}

.planned-opening-edit > span i {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #ffffff0d;
  color: #fff;
  font-style: normal;
  font-size: 9px;
}

.planned-opening-field {
  height: 45px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 30px;
  align-items: center;
  padding: 0 12px;
  border: 1px solid #454a51;
  border-radius: 11px;
  background: linear-gradient(145deg, #15191e, #0d1014);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.planned-opening-field b {
  color: #aab0b6;
  font: 600 15px Manrope, sans-serif;
}

.planned-opening-field input {
  width: 100%;
  height: 100%;
  padding: 0 5px;
  border: 0;
  background: transparent;
  color: #f4f3f5;
  font: 700 20px Manrope, sans-serif;
  letter-spacing: -.03em;
  outline: 0;
}

.planned-opening-field em {
  color: #747c84;
  font-size: 7px;
  font-style: normal;
  font-weight: 700;
}

.planned-opening-field:focus-within {
  border-color: #f3f1f4aa;
  background: linear-gradient(145deg, #1c2026, #101318);
  box-shadow: 0 0 0 3px #ffffff0a, 0 8px 24px #0004;
}

.planned-opening-edit > small {
  color: #69717a !important;
  font-size: 7px !important;
  line-height: 1.35;
}

.upgraded-registry .registry-ai-capture {
  display: grid;
  grid-template-columns: 1.2fr .92fr 1.3fr auto;
  align-items: end;
  gap: 14px;
  margin-bottom: 16px;
  padding: 18px;
  border-color: #343a40;
  background: linear-gradient(120deg, #15191e, #101418 70%);
}

.upgraded-registry .registry-ai-copy {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.upgraded-registry .registry-ai-icon {
  width: 40px;
  height: 40px;
  display: grid;
  flex: 0 0 40px;
  place-items: center;
  border: 1px solid #ffffff22;
  border-radius: 12px;
  background: linear-gradient(145deg, #ffffff14, #ffffff05);
  color: #fff;
  box-shadow: 0 0 24px #ffffff0b;
}

.upgraded-registry .registry-ai-copy small,
.upgraded-registry .registry-ai-drop > span,
.upgraded-registry .registry-ai-description > span {
  display: block;
  margin-bottom: 6px;
  color: #868e96;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .12em;
}

.upgraded-registry .registry-ai-copy h2 {
  margin: 0 0 3px;
  font: 600 13px Manrope, sans-serif;
}

.upgraded-registry .registry-ai-copy p {
  margin: 0;
  color: #747c84;
  font-size: 8px;
}

.upgraded-registry .registry-ai-drop {
  position: relative;
}

.upgraded-registry .registry-ai-drop input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.upgraded-registry .registry-ai-drop em,
.upgraded-registry .registry-ai-description textarea {
  width: 100%;
  height: 70px;
  border: 1px solid #353b42;
  border-radius: 11px;
  background: #0d1115;
  color: #c6cbd0;
  font-size: 9px;
}

.upgraded-registry .registry-ai-drop em {
  display: grid;
  place-items: center;
  padding: 10px;
  border-style: dashed;
  font-style: normal;
  text-align: center;
  cursor: pointer;
}

.upgraded-registry .registry-ai-drop:hover em {
  border-color: #858c94;
  background: #14181c;
}

.upgraded-registry .registry-ai-description textarea {
  padding: 11px;
  resize: none;
  outline: 0;
}

.upgraded-registry .registry-ai-description textarea:focus {
  border-color: #858c94;
  box-shadow: 0 0 0 3px #ffffff0b;
}

.upgraded-registry .registry-ai-action,
.upgraded-registry .registry-save {
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid #dedbe0;
  border-radius: 10px;
  background: #f3f1f4;
  color: #111318;
  font: 700 9px Manrope, sans-serif;
  white-space: nowrap;
  cursor: pointer;
  transition: background 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.upgraded-registry .registry-ai-action:hover,
.upgraded-registry .registry-save:hover {
  background: #fff;
  transform: translateY(-1px);
  box-shadow: 0 9px 24px #ffffff14;
}

.upgraded-registry .upgraded-register-form {
  padding: 0;
  overflow: visible;
}

.upgraded-registry .quick-register-head {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 18px;
  border-bottom: 1px solid #292e34;
}

.upgraded-registry .quick-register-head > div {
  display: flex;
  align-items: center;
  gap: 12px;
}

.upgraded-registry .quick-register-icon {
  width: 38px;
  height: 38px;
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 11px;
  background: #ffffff0d;
  color: #f3f3f4;
  font-size: 18px;
  box-shadow: inset 0 0 0 1px #ffffff08;
}

.upgraded-registry .quick-register-head h2 {
  margin: 0 0 4px;
  font: 600 14px Manrope, sans-serif;
}

.upgraded-registry .quick-register-head p {
  margin: 0;
  color: #737b83;
  font-size: 8px;
}

.upgraded-registry .registry-month-badge {
  padding: 6px 9px;
  border: 1px solid #393f46;
  border-radius: 999px;
  background: #171b20;
  color: #bdc2c7;
  font-size: 8px;
}

.upgraded-registry .finance-register-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 13px;
  padding: 18px;
}

.upgraded-registry .finance-register-grid label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.upgraded-registry .finance-register-grid label > span,
.upgraded-registry .registry-conversion-preview > span,
.upgraded-registry .registry-impact-preview > span {
  color: #777f88;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .12em;
}

.upgraded-registry .finance-register-grid input,
.upgraded-registry .finance-register-grid select {
  width: 100%;
  height: 41px;
  padding: 0 11px;
  border: 1px solid #30363c;
  border-radius: 10px;
  background: #0e1216;
  color: #e6e9eb;
  font-size: 10px;
  outline: 0;
}

.upgraded-registry .finance-register-grid input:focus,
.upgraded-registry .finance-register-grid select:focus {
  border-color: #858c94;
  box-shadow: 0 0 0 3px #ffffff0b;
}

.upgraded-registry .finance-register-grid input:disabled {
  color: #7c848b;
  background: #11151a;
  opacity: .7;
}

.upgraded-registry .finance-register-grid .wide {
  grid-column: span 2;
}

.upgraded-registry .quick-money {
  position: relative;
}

.upgraded-registry .quick-money > i {
  position: absolute;
  z-index: 1;
  left: 12px;
  top: 13px;
  color: #747c84;
  font-style: normal;
  font-size: 10px;
}

.upgraded-registry .quick-money input {
  padding-left: 25px;
}

.upgraded-registry .conditional-field.hidden {
  display: none !important;
}

.upgraded-registry .registry-conversion-preview {
  min-height: 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 10px 13px;
  border: 1px solid #30363c;
  border-radius: 11px;
  background: linear-gradient(145deg, #15191e, #101418);
}

.upgraded-registry .registry-conversion-preview b {
  color: #fff;
  font: 650 14px Manrope, sans-serif;
}

.upgraded-registry .registry-conversion-preview small {
  color: #727b83;
  font-size: 8px;
}

.upgraded-registry .registry-save {
  align-self: end;
}

.upgraded-registry .registry-impact-preview {
  grid-column: 1 / -1;
  min-height: 54px;
  display: grid;
  grid-template-columns: auto minmax(190px, 1fr) 1.5fr;
  align-items: center;
  gap: 13px;
  padding: 10px 13px;
  border: 1px solid #30363c;
  border-radius: 11px;
  background: #0f1317;
}

.upgraded-registry .registry-impact-preview b {
  font-size: 10px;
}

.upgraded-registry .registry-impact-preview small {
  color: #737b83;
  font-size: 8px;
  line-height: 1.4;
  text-align: right;
}

/* Visualizador por empresa */
.registry-visualizer .registry-visual-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  padding: 7px;
  border: 1px solid #30353b;
  border-radius: 13px;
  background: #101419;
}

.registry-visualizer .registry-visual-tabs {
  display: flex;
  gap: 5px;
}

.registry-visualizer .registry-visual-tabs button {
  height: 38px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #858d95;
  font: 600 10px Manrope, sans-serif;
  cursor: pointer;
}

.registry-visualizer .registry-visual-tabs button:hover {
  background: #181c21;
  color: #e1e4e6;
}

.registry-visualizer .registry-visual-tabs button.active {
  border-color: #fff;
  background: #f4f2f5;
  color: #101217;
  box-shadow: 0 8px 22px #ffffff14;
}

.registry-visualizer .registry-visual-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 13px;
  padding-right: 9px;
  font-size: 8px;
}

.registry-visual-legend .income { color: var(--finance-green); }
.registry-visual-legend .expense { color: var(--finance-red); }
.registry-visual-legend .debt { color: var(--finance-yellow); }
.registry-visual-legend .transfer { color: var(--finance-cyan); }
.registry-visual-legend .saving { color: var(--finance-purple); }

.registry-business-board {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.registry-business-panel {
  padding: 0;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--panel-accent) 30%, #292e34);
}

.registry-business-head {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 14px 16px;
  border-bottom: 1px solid #292e34;
  background: linear-gradient(110deg, color-mix(in srgb, var(--panel-accent) 11%, #111519), #111519 65%);
}

.registry-business-head > div {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
}

.registry-business-mark {
  width: 39px;
  height: 39px;
  display: grid;
  flex: 0 0 39px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--panel-accent) 50%, #343940);
  border-radius: 11px;
  background: color-mix(in srgb, var(--panel-accent) 14%, #15191e);
  color: var(--panel-accent);
  font-weight: 700;
}

.registry-business-head h2 {
  margin: 0 0 3px;
  font: 600 14px Manrope, sans-serif;
}

.registry-business-head p {
  margin: 0;
  color: #747c84;
  font-size: 8px;
}

.registry-business-head > strong {
  flex: 0 0 auto;
  font: 650 14px Manrope, sans-serif;
}

.positive { color: var(--finance-green) !important; }
.negative { color: var(--finance-red) !important; }
.neutral { color: var(--finance-cyan) !important; }

.registry-visual-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 12px;
}

.registry-visual-entry {
  --entry-color: var(--finance-green);
  position: relative;
  min-height: 154px;
  padding: 13px;
  border: 1px solid #2d3238;
  border-radius: 12px;
  background: #0f1317;
  overflow: hidden;
}

.registry-visual-entry::before {
  content: "";
  position: absolute;
  inset: 14px auto 14px -1px;
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: var(--entry-color);
}

.registry-visual-entry.expense { --entry-color: var(--finance-red); }
.registry-visual-entry.debt { --entry-color: var(--finance-yellow); }
.registry-visual-entry.transfer { --entry-color: var(--finance-cyan); }
.registry-visual-entry.saving { --entry-color: var(--finance-purple); }

.registry-visual-entry-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.registry-visual-entry-top > span {
  padding: 4px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--entry-color) 10%, transparent);
  color: var(--entry-color);
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.registry-visual-entry-top strong {
  font-size: 11px;
}

.registry-visual-entry h3 {
  margin: 12px 0 4px;
  font: 600 11px Manrope, sans-serif;
}

.registry-visual-entry > p {
  min-height: 17px;
  margin: 0;
  color: #7b838b;
  font-size: 8px;
}

.registry-visual-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}

.registry-visual-meta span {
  max-width: 100%;
  padding: 4px 6px;
  overflow: hidden;
  border: 1px solid #292e34;
  border-radius: 6px;
  background: #15191e;
  color: #9299a0;
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.registry-native-amount {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
  padding: 7px 8px;
  border-radius: 8px;
  background: #151a1f;
}

.registry-native-amount b { font-size: 9px; }
.registry-native-amount span { color: #78818a; font-size: 7px; }

.registry-visual-actions {
  display: flex;
  gap: 5px;
  margin-top: 11px;
  padding-top: 9px;
  border-top: 1px solid #252a2f;
}

.registry-visual-actions button {
  min-width: 0;
  flex: 1;
  height: 28px;
  padding: 0 5px;
  border: 1px solid #30363c;
  border-radius: 7px;
  background: #171b20;
  color: #a8afb6;
  font: 600 7px Manrope, sans-serif;
  cursor: pointer;
}

.registry-visual-actions button:hover {
  border-color: #747c84;
  color: #fff;
}

.registry-visual-actions .danger:hover {
  border-color: #7b403e;
  background: #2b1d1d;
  color: #ffa49e;
}

.registry-empty-business {
  grid-column: 1 / -1;
  min-height: 112px;
  display: grid;
  place-items: center;
  border: 1px dashed #32383f;
  border-radius: 12px;
  color: #68717a;
  font-size: 9px;
}

/* Visualizador agrupado por tipo, con desglose bajo demanda */
.registry-visualizer-grouped .registry-business-board {
  grid-template-columns: 1fr;
}

.registry-visualizer-grouped .registry-business-head h2 {
  letter-spacing: .05em;
}

.registry-business-compare {
  display: flex;
  gap: 8px;
}

.registry-business-compare span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 92px;
  padding: 7px 9px;
  border: 1px solid #30363c;
  border-radius: 9px;
  color: #777f87;
  font-size: 7px;
}

.registry-business-compare b {
  color: #eef1f2;
  font: 650 10px Manrope, sans-serif;
}

.registry-type-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
  padding: 12px;
}

.registry-type-group {
  --type-color: var(--finance-green);
  min-width: 0;
  border: 1px solid #2d3238;
  border-radius: 12px;
  background: #0f1317;
  overflow: hidden;
}

.registry-type-group.expense { --type-color: var(--finance-red); }
.registry-type-group.debt { --type-color: var(--finance-yellow); }
.registry-type-group.transfer { --type-color: var(--finance-cyan); }
.registry-type-group.saving { --type-color: var(--finance-purple); }
.registry-type-group.expanded { grid-column: 1 / -1; }

.registry-type-summary {
  width: 100%;
  min-height: 78px;
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr) auto 20px;
  align-items: center;
  gap: 9px;
  padding: 11px;
  border: 0;
  background: transparent;
  color: #e6eaec;
  text-align: left;
  cursor: pointer;
}

.registry-type-summary:hover {
  background: color-mix(in srgb, var(--type-color) 6%, #0f1317);
}

.registry-type-icon {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: color-mix(in srgb, var(--type-color) 12%, #171b20);
  color: var(--type-color);
  font-size: 12px;
}

.registry-type-summary > div:nth-child(2) {
  min-width: 0;
}

.registry-type-summary > div:nth-child(2) small {
  display: block;
  overflow: hidden;
  color: var(--type-color);
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.registry-type-summary > div:nth-child(2) b {
  display: block;
  margin-top: 4px;
  color: #818a92;
  font-size: 8px;
  white-space: nowrap;
}

.registry-type-summary > strong {
  color: #f0f2f3;
  font: 650 11px Manrope, sans-serif;
  white-space: nowrap;
}

.registry-type-summary > i {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #1a1f24;
  color: #8e979e;
  font-style: normal;
}

.registry-type-categories {
  min-height: 48px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 0 11px 11px;
}

.registry-type-categories span {
  display: flex;
  justify-content: space-between;
  gap: 7px;
  overflow: hidden;
  color: #747d84;
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.registry-type-categories b {
  color: #aeb5ba;
  font-weight: 600;
}

.registry-type-group.expanded .registry-type-categories {
  display: none;
}

.registry-type-compare-values {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
}

.registry-type-compare-values span {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 72px;
  padding: 5px 6px;
  border-radius: 7px;
  background: #181d21;
}

.registry-type-compare-values small {
  color: #6f7880;
  font-size: 6px;
}

.registry-type-compare-values b {
  color: #eef1f2;
  font: 650 9px Manrope, sans-serif;
}

.registry-type-detail {
  border-top: 1px solid #293038;
  background: #101419;
}

.registry-type-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
}

.registry-type-detail-head > div:first-child small {
  display: block;
  color: var(--type-color);
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .09em;
}

.registry-type-detail-head > div:first-child b {
  display: block;
  margin-top: 4px;
  color: #8a9299;
  font-size: 8px;
}

.registry-type-detail-head > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
}

.registry-type-detail-head > div:last-child span {
  padding: 5px 7px;
  border: 1px solid #2d3339;
  border-radius: 7px;
  color: #828b92;
  font-size: 7px;
}

.registry-type-detail-head > div:last-child b { color: #d8dcde; }

.registry-type-ledger {
  padding: 0 14px 8px;
}

.registry-type-ledger-row {
  display: grid;
  grid-template-columns: 44px minmax(150px, 1.5fr) 70px minmax(100px, .8fr) 90px 108px;
  align-items: center;
  gap: 10px;
  min-height: 55px;
  border-top: 1px solid #272d33;
}

.registry-ledger-mode {
  width: max-content;
  padding: 4px 6px;
  border-radius: 6px;
  background: #20252a;
  color: #aab1b7;
  font-size: 6px;
  font-weight: 700;
}

.registry-ledger-mode.actual { background: #173027; color: var(--finance-green); }
.registry-ledger-mode.planned { background: #292331; color: #c6a9e7; }
.registry-type-ledger-row > div:nth-child(2) b { display: block; font-size: 9px; }
.registry-type-ledger-row > div:nth-child(2) small { display: block; margin-top: 3px; color: #747d84; font-size: 7px; }
.registry-type-ledger-row > span:nth-child(3),
.registry-type-ledger-row > span:nth-child(4) { color: #788188; font-size: 7px; }
.registry-type-ledger-row > strong { text-align: right; font-size: 10px; }

.registry-ledger-actions {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}

.registry-ledger-actions button {
  width: 23px;
  height: 23px;
  border: 1px solid #30373e;
  border-radius: 6px;
  background: #171c20;
  color: #9da5ab;
  cursor: pointer;
}

.registry-ledger-actions button:hover { color: #fff; border-color: #626b72; }
.registry-ledger-actions .danger:hover { color: #ff9e98; border-color: #7d403e; }
.registry-type-empty { padding: 18px 0; border-top: 1px solid #272d33; color: #747c83; font-size: 8px; }

.registry-compare-kpi > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 14px;
}

.registry-compare-kpi > div span {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  border: 1px solid #30363c;
  border-radius: 9px;
  background: #111519;
}

.registry-compare-kpi em {
  color: #737c83;
  font-size: 6px;
  font-style: normal;
}

.registry-compare-kpi > div strong {
  font-size: 12px !important;
}

@media (max-width: 1250px) {
  .registry-type-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .registry-type-ledger-row { grid-template-columns: 42px minmax(140px, 1fr) 62px 82px 92px; }
  .registry-type-ledger-row > span:nth-child(4) { display: none; }
}

@media (max-width: 760px) {
  .registry-type-grid { grid-template-columns: 1fr 1fr; }
  .registry-type-detail-head { align-items: flex-start; flex-direction: column; }
  .registry-type-detail-head > div:last-child { justify-content: flex-start; }
  .registry-type-ledger-row { grid-template-columns: 40px 1fr 78px; padding: 9px 0; }
  .registry-type-ledger-row > span:nth-child(3),
  .registry-type-ledger-row > span:nth-child(4) { display: none; }
  .registry-type-ledger-row > strong { grid-column: 3; grid-row: 1; }
  .registry-ledger-actions { grid-column: 2 / -1; }
  .registry-business-compare { width: 100%; }
  .registry-business-compare span { flex: 1; }
}

/* Movimientos: filtros, libro cronológico y drawer de solo lectura */
.movements-ledger-view .page-head,
.accounts-live-view .page-head,
.debts-management-view .page-head,
.savings-management-view .page-head,
.smart-calendar-view .page-head,
.analysis-view .page-head,
.configuration-deep-view .page-head {
  margin-bottom: 22px;
}

.csv-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.movement-filter-shell {
  margin-bottom: 13px;
  padding: 14px;
}

.movement-primary-filters {
  display: grid;
  grid-template-columns: minmax(210px, 1.5fr) repeat(4, minmax(105px, .75fr)) auto;
  align-items: end;
  gap: 9px;
}

.movement-primary-filters label,
.movement-extra-filters label,
.calendar-filter-toolbar label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.movement-primary-filters label > span,
.movement-extra-filters label > span,
.calendar-filter-toolbar label > span {
  color: #737c84;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .11em;
}

.movement-primary-filters select,
.movement-extra-filters select,
.movement-extra-filters input,
.calendar-filter-toolbar select {
  width: 100%;
  height: 38px;
  padding: 0 10px;
  border: 1px solid #30363c;
  border-radius: 9px;
  background: #0e1216;
  color: #dce0e3;
  font-size: 9px;
  outline: 0;
}

.movement-search {
  height: 38px;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 8px !important;
  padding: 0 11px;
  border: 1px solid #30363c;
  border-radius: 9px;
  background: #0e1216;
}

.movement-search:focus-within {
  border-color: #80878f;
  box-shadow: 0 0 0 3px #ffffff0a;
}

.movement-search > span {
  color: #7e8790 !important;
  font-size: 16px !important;
  letter-spacing: 0 !important;
}

.movement-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  color: #e5e8ea;
  font-size: 9px;
  outline: 0;
}

.movement-primary-filters > .secondary {
  height: 38px;
  white-space: nowrap;
}

.movement-extra-filters {
  display: none;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 9px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #292e34;
}

.movement-extra-filters.open {
  display: grid;
}

.movement-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 13px;
}

.movement-summary-strip article {
  min-height: 77px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 13px 15px;
  border: 1px solid #292e34;
  border-radius: 13px;
  background: linear-gradient(145deg, #14181d, #101418);
}

.movement-summary-strip span {
  color: #737c84;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .11em;
}

.movement-summary-strip b {
  font: 650 17px Manrope, sans-serif;
}

.movement-summary-strip article:first-child { border-color: #295a45; }
.movement-summary-strip article:first-child b { color: var(--finance-green); }
.movement-summary-strip article:nth-child(2) { border-color: #5e3836; }
.movement-summary-strip article:nth-child(2) b { color: var(--finance-red); }

.movement-ledger {
  padding: 0;
  overflow: hidden;
}

.movement-ledger-head,
.movement-ledger-row {
  display: grid;
  grid-template-columns: 104px minmax(170px, 1.35fr) minmax(130px, .95fr) minmax(135px, 1fr) 116px;
  align-items: center;
  gap: 12px;
}

.movement-ledger-head {
  min-height: 42px;
  padding: 0 17px;
  border-bottom: 1px solid #30363c;
  background: #0d1115;
  color: #737c84;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.movement-ledger-head span:last-child { text-align: right; }

.movement-ledger-row {
  width: 100%;
  min-height: 67px;
  padding: 10px 17px;
  border: 0;
  border-bottom: 1px solid #242a30;
  background: transparent;
  color: #dce0e3;
  text-align: left;
  cursor: pointer;
  transition: background 150ms ease, box-shadow 150ms ease;
}

.movement-ledger-row:last-of-type { border-bottom: 0; }

.movement-ledger-row:hover {
  background: #ffffff05;
  box-shadow: inset 3px 0 #ffffff55;
}

.movement-ledger-row time {
  color: #8b939a;
  font-size: 8px;
}

.movement-ledger-row > span:not(.movement-kind) {
  min-width: 0;
}

.movement-ledger-row > span b,
.movement-ledger-row > span small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.movement-ledger-row > span b { font-size: 9px; }
.movement-ledger-row > span small { margin-top: 4px; color: #737c84; font-size: 7px; }

.movement-kind {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 10px;
}

.movement-kind > i {
  grid-row: 1 / 3;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #17261f;
  color: var(--finance-green);
  font-style: normal;
}

.movement-kind.expense > i { background: #2a1c1d; color: var(--finance-red); }
.movement-kind.debt > i { background: #2d291c; color: var(--finance-yellow); }
.movement-kind.transfer > i { background: #17262b; color: var(--finance-cyan); }
.movement-kind.saving > i { background: #251d31; color: var(--finance-purple); }

.movement-ledger-row > strong {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font: 650 10px Manrope, sans-serif;
  text-align: right;
}

.movement-ledger-row > strong small {
  margin-top: 3px;
  color: #7a838b;
  font: 400 7px DM Sans, sans-serif;
}

.movement-empty {
  min-height: 210px;
  display: grid;
  place-content: center;
  gap: 5px;
  color: #757e86;
  text-align: center;
}

.movement-empty b { color: #dfe2e4; font-size: 12px; }
.movement-empty span { font-size: 9px; }

.movement-detail-panel {
  position: fixed;
  z-index: 85;
  inset: 0 0 0 auto;
  width: min(410px, calc(100vw - 40px));
  padding: 24px;
  overflow-y: auto;
  border-left: 1px solid #3b4148;
  background: linear-gradient(160deg, #171b20, #0e1216 75%);
  box-shadow: -28px 0 80px #000b;
  animation: movaDrawerIn 180ms ease-out;
}

@keyframes movaDrawerIn {
  from { opacity: 0; transform: translateX(24px); }
  to { opacity: 1; transform: translateX(0); }
}

.movement-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid #30363c;
}

.movement-detail-head small {
  color: #818991;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .13em;
}

.movement-detail-head h2 {
  margin: 7px 0 0;
  font: 650 20px Manrope, sans-serif;
}

.movement-detail-head button {
  width: 32px;
  height: 32px;
  display: grid;
  flex: 0 0 32px;
  place-items: center;
  border: 1px solid #343a41;
  border-radius: 9px;
  background: #1b2025;
  color: #aeb4ba;
  cursor: pointer;
}

.movement-detail-amount,
.debt-detail-balance {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 18px 0;
  padding: 18px;
  border: 1px solid #343a41;
  border-radius: 14px;
  background: linear-gradient(145deg, #191e23, #12161a);
}

.movement-detail-amount span,
.debt-detail-balance span {
  color: #808890;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .11em;
}

.movement-detail-amount strong,
.debt-detail-balance strong {
  font: 650 25px Manrope, sans-serif;
  letter-spacing: -.035em;
}

.movement-detail-amount b,
.debt-detail-balance b {
  color: #8d959d;
  font-size: 9px;
}

.movement-detail-panel dl {
  margin: 0;
}

.movement-detail-panel dl > div {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid #272d32;
}

.movement-detail-panel dt {
  color: #737c84;
  font-size: 9px;
}

.movement-detail-panel dd {
  max-width: 62%;
  margin: 0;
  color: #e1e4e6;
  font-size: 9px;
  font-weight: 600;
  text-align: right;
  overflow-wrap: anywhere;
}

/* Cuentas */
.accounts-current-summary {
  min-height: 116px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  margin-bottom: 16px;
  padding: 20px 23px;
  border: 1px solid #454a51;
  border-radius: 17px;
  background: radial-gradient(circle at 84% 30%, #ffffff0c, transparent 32%), linear-gradient(145deg, #1a1e23, #111519);
  box-shadow: var(--finance-shadow);
}

.accounts-current-summary span {
  color: #8b929a;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .13em;
}

.accounts-current-summary strong {
  font: 650 31px Manrope, sans-serif;
  letter-spacing: -.04em;
}

.accounts-current-summary small {
  color: #747d85;
  font-size: 8px;
}

.accounts-live-view .account-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.live-account {
  min-height: 230px;
  display: flex;
  flex-direction: column;
  padding: 20px;
}

.live-account .account-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.live-account .source-logo {
  width: 40px;
  height: 40px;
  border: 1px solid #ffffff12;
  border-radius: 12px;
}

.account-currency {
  padding: 5px 8px;
  border: 1px solid #343a41;
  border-radius: 999px;
  color: #a4abb2;
  background: #171b20;
  font-size: 8px;
  font-weight: 700;
}

.live-account .account-balance {
  margin: 25px 0 4px;
  font: 650 25px Manrope, sans-serif;
  letter-spacing: -.035em;
}

.live-account .account-balance small {
  color: #7d858d;
  font-size: 9px;
}

.account-native {
  min-height: 19px;
  color: var(--finance-cyan);
  font: 600 10px Manrope, sans-serif;
}

.live-account .muted {
  margin-top: 8px;
  font-size: 9px;
}

.live-account .ownership {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #292e34;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.live-account .ownership span {
  color: #747d85;
  font-size: 7px;
  letter-spacing: .1em;
}

.live-account .ownership b {
  font-size: 8px;
  text-align: right;
}

.account-transfer-note,
.savings-rule-note,
.settings-note {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 16px;
  padding: 15px 17px;
}

.account-transfer-note > span,
.savings-rule-note > span,
.settings-note > span {
  width: 36px;
  height: 36px;
  display: grid;
  flex: 0 0 36px;
  place-items: center;
  border-radius: 10px;
  background: #ffffff0b;
  color: #dfe2e4;
}

.account-transfer-note b,
.savings-rule-note b,
.settings-note b { font-size: 10px; }

.account-transfer-note p,
.savings-rule-note p,
.settings-note p {
  margin: 4px 0 0;
  color: #737c84;
  font-size: 8px;
  line-height: 1.45;
}

/* Deudas */
.debt-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 9px;
  margin-bottom: 14px;
}

.debt-summary-grid article {
  min-height: 91px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 13px 14px;
  border: 1px solid #292e34;
  border-radius: 13px;
  background: linear-gradient(145deg, #15191e, #101418);
}

.debt-summary-grid article:first-child,
.debt-summary-grid article:nth-child(4),
.debt-summary-grid article:last-child {
  border-color: #5e3937;
}

.debt-summary-grid article:nth-child(2),
.debt-summary-grid article:nth-child(5) {
  border-color: #2d5b47;
}

.debt-summary-grid span {
  color: #747d85;
  font-size: 6.8px;
  font-weight: 700;
  letter-spacing: .1em;
}

.debt-summary-grid b {
  font: 650 15px Manrope, sans-serif;
}

.debt-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 14px;
  padding: 5px;
  border: 1px solid #292e34;
  border-radius: 12px;
  background: #101419;
}

.debt-filter-bar button {
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #7e878f;
  font-size: 9px;
  cursor: pointer;
}

.debt-filter-bar button:hover {
  background: #181d22;
  color: #e0e3e5;
}

.debt-filter-bar button.active {
  border-color: #ffffff30;
  background: #f2f0f3;
  color: #111318;
}

.upgraded-debt-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.debt-account-card {
  display: flex;
  flex-direction: column;
  min-height: 448px;
  padding: 19px;
}

.debt-summary-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.debt-summary-grid > article { grid-column: span 3; }
.debt-summary-grid > article:nth-child(n + 5) { grid-column: span 4; }

.debt-account-card.paid-period {
  border-color: #2e654d;
  background: linear-gradient(145deg, #12221b, #111519 50%);
}

.debt-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.debt-card-head > div > span {
  color: #7d858d;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.debt-card-head h2 {
  margin: 6px 0 0;
  font: 650 15px Manrope, sans-serif;
}

.debt-period-status {
  padding: 5px 7px;
  border-radius: 999px;
  background: #332d20;
  color: #e8ca66;
  font-size: 7px;
  font-weight: 700;
  text-align: center;
}

.paid-period .debt-period-status {
  background: #193326;
  color: #6fe3a8;
}

.debt-main-amount {
  display: flex;
  align-items: baseline;
  gap: 7px;
  margin-top: 23px;
}

.debt-main-amount strong {
  font: 650 23px Manrope, sans-serif;
  letter-spacing: -.035em;
}

.debt-main-amount span {
  color: #747d85;
  font-size: 8px;
}

.debt-progress,
.saving-goal-progress {
  height: 7px;
  margin: 15px 0 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #282d33;
}

.debt-progress i,
.saving-goal-progress i {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #a87cf5, #63d9e9);
}

.debt-progress-copy {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #7b838b;
  font-size: 8px;
}

.debt-progress-copy b { color: #d9dde0; }

.debt-period-box {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 17px 0;
  padding: 12px;
  border: 1px solid #343a40;
  border-radius: 11px;
  background: #0f1317;
}

.debt-period-box span {
  color: #777f87;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
}

.debt-period-box b { font: 650 16px Manrope, sans-serif; }
.debt-period-box small { color: #7b838b; font-size: 8px; }

.debt-account-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 0 0 17px;
}

.debt-account-card dl > div {
  min-width: 0;
  padding: 9px;
  border-radius: 9px;
  background: #15191e;
}

.debt-account-card dt {
  margin-bottom: 4px;
  color: #6f7880;
  font-size: 7px;
}

.debt-account-card dd {
  margin: 0;
  overflow: hidden;
  color: #d8dcdf;
  font-size: 8px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.debt-account-card .full-button {
  width: 100%;
  margin-top: auto;
}

.debt-detail-panel h3 {
  margin: 21px 0 11px;
  font: 600 13px Manrope, sans-serif;
}

.debt-detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.debt-detail-facts > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 11px;
  border: 1px solid #2d3339;
  border-radius: 10px;
  background: #111519;
}

.debt-detail-facts span { color: #737c84; font-size: 8px; }
.debt-detail-facts b { font-size: 10px; }

.debt-reconciliation-note {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 14px;
  margin-top: 11px;
  padding: 12px 13px;
  border: 1px solid rgba(233, 201, 103, .28);
  border-radius: 10px;
  background: rgba(233, 201, 103, .055);
}
.debt-reconciliation-note span { color: #e9c967; font-size: 7px; font-weight: 750; letter-spacing: .11em; }
.debt-reconciliation-note b { color: #e9c967; font-size: 12px; }
.debt-reconciliation-note p { grid-column: 1 / -1; margin: 0; color: #7d858c; font-size: 8px; line-height: 1.45; }

.debt-payment-history {
  display: flex;
  flex-direction: column;
}

.debt-payment-history > div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 12px;
  padding: 11px 0;
  border-bottom: 1px solid #292f34;
}

.debt-payment-history .debt-opening-row {
  margin-bottom: 3px;
  padding: 10px 11px;
  border: 1px solid #343a41;
  border-radius: 10px;
  background: #171b20;
}

.debt-payment-history .debt-opening-row b {
  color: #dfe2e4;
}

.debt-payment-history span,
.debt-payment-history small,
.debt-payment-history em {
  color: #788189;
  font-size: 8px;
  font-style: normal;
}

.debt-payment-history b { text-align: right; font-size: 10px; }
.debt-payment-history small { grid-column: 1; }
.debt-payment-history em { grid-column: 2; grid-row: 2; text-align: right; }

/* Ahorros y metas */
.savings-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
  margin-bottom: 12px;
}

.savings-summary-grid article {
  min-height: 119px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 9px;
  padding: 19px 20px;
}

.savings-summary-grid article.total { border-color: #47705d; }
.savings-summary-grid article.assigned { border-color: #57416f; }
.savings-summary-grid article.free { border-color: #345b67; }

.savings-summary-grid span {
  color: #7b848c;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .11em;
}

.savings-summary-grid b {
  font: 650 22px Manrope, sans-serif;
}

.savings-summary-grid .total b { color: var(--finance-green); }
.savings-summary-grid .assigned b { color: var(--finance-purple); }
.savings-summary-grid .free b { color: var(--finance-cyan); }
.savings-summary-grid small { color: #737c84; font-size: 8px; }

.savings-equation {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 11px;
  margin-bottom: 15px;
  padding: 11px 15px;
  border: 1px solid #292e34;
  border-radius: 12px;
  background: #101418;
}

.savings-equation b { font-size: 10px; }
.savings-equation span { color: #5f6870; font-size: 12px; }

.savings-goal-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.saving-goal-card {
  min-height: 329px;
  display: flex;
  flex-direction: column;
  padding: 19px;
}

.saving-goal-head {
  display: flex;
  align-items: center;
  gap: 11px;
}

.saving-goal-head > span {
  width: 38px;
  height: 38px;
  display: grid;
  flex: 0 0 38px;
  place-items: center;
  border: 1px solid #5a4770;
  border-radius: 11px;
  background: #251d30;
  color: #c6a3f6;
}

.saving-goal-head small {
  color: #777f87;
  font-size: 7px;
  letter-spacing: .11em;
}

.saving-goal-head h2 {
  margin: 4px 0 0;
  font: 650 14px Manrope, sans-serif;
}

.saving-goal-value {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 24px;
}

.saving-goal-value strong {
  font: 650 22px Manrope, sans-serif;
}

.saving-goal-value span { color: #747d85; font-size: 9px; }

.saving-goal-facts {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #777f87;
  font-size: 8px;
}

.saving-goal-facts b { color: #dce0e3; }
.saving-goal-card > p { margin: 15px 0 0; color: #7b838b; font-size: 8px; }

.saving-projection {
  margin: 15px 0;
  padding: 10px 11px;
  border: 1px solid #2e343a;
  border-radius: 10px;
  background: #0f1317;
  color: #858d95;
  font-size: 8px;
  line-height: 1.45;
}

.saving-goal-card > button { width: 100%; margin-top: auto; }

/* Calendario financiero */
.calendar-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: -7px 0 13px;
  color: #858d95;
  font-size: 8px;
}

.calendar-legend span {
  display: flex;
  align-items: center;
  gap: 6px;
}

.calendar-legend i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.calendar-legend .green { background: var(--finance-green); }
.calendar-legend .red { background: var(--finance-red); }
.calendar-legend .purple { background: var(--finance-purple); }
.calendar-legend .cyan { background: var(--finance-cyan); }
.calendar-legend .yellow { background: var(--finance-yellow); }

.calendar-today-button {
  min-width: 72px;
  height: 37px;
  margin-left: auto;
}

.calendar-month-insights {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 13px;
}

.calendar-month-insights article {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 14px 15px;
  border: 1px solid #2d3339;
  border-radius: 13px;
  background: linear-gradient(145deg, #13181d, #101419);
}

.calendar-month-insights small {
  color: #7d878e;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .11em;
}

.calendar-month-insights b {
  overflow: hidden;
  color: #edf0f1;
  font: 650 18px Manrope, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.calendar-month-insights span { color: #747d84; font-size: 7.5px; }
.calendar-month-insights article:first-child { border-color: #285845; }
.calendar-month-insights article:first-child b { color: var(--finance-green); }
.calendar-month-insights article:nth-child(2) { border-color: #594c29; }
.calendar-month-insights article:nth-child(2) b { color: var(--finance-yellow); }
.calendar-month-insights article.has-overdue { border-color: #653c3b; }
.calendar-month-insights article.has-overdue b { color: var(--finance-red); }

.calendar-filter-toolbar {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
  margin-bottom: 13px;
  padding: 14px;
}

.smart-calendar {
  padding: 17px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #414850 #111519;
}

.smart-calendar .calendar-head,
.smart-calendar .calendar-grid {
  min-width: 720px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.smart-calendar .calendar-head div {
  padding: 9px;
  color: #6e7780;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .09em;
  text-align: center;
}

.smart-calendar .day {
  height: 126px;
  min-height: 126px;
  overflow: hidden;
  padding: 8px;
  border-top: 1px solid #292e34;
  border-right: 1px solid #20262b;
  color: #818991;
  cursor: pointer;
  transition: background .16s ease, box-shadow .16s ease;
}

.smart-calendar .day:nth-child(7n) { border-right: 0; }
.smart-calendar .day.muted-day { opacity: .28; }

.smart-calendar .day:not(.muted-day):hover,
.smart-calendar .day.selected-day {
  background: linear-gradient(145deg, #ffffff09, #ffffff03);
  box-shadow: inset 0 0 0 1px #ffffff18;
}

.calendar-day-top {
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.calendar-day-top > small {
  min-width: 17px;
  height: 17px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #21272d;
  color: #9ca4aa;
  font-size: 6.5px;
  font-weight: 700;
}

.calendar-day-events {
  height: calc(100% - 24px);
  overflow: hidden;
}

.smart-calendar .day.today {
  background: linear-gradient(145deg, #ffffff08, #ffffff03);
  box-shadow: inset 0 0 0 1px #ffffff13;
}

.smart-calendar .day.today .day-num {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f2f0f3;
  color: #111318;
  font-weight: 700;
}

.smart-calendar .event {
  width: 100%;
  display: block;
  margin-top: 6px;
  padding: 6px 7px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--event-business) 22%, #30363c);
  border-left: 3px solid var(--event-business);
  border-radius: 7px;
  background: color-mix(in srgb, var(--event-business) 9%, #15191e);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.smart-calendar .event:hover { filter: brightness(1.14); }

.smart-calendar .event.calendar-day-event-preview {
  margin-top: 4px;
  padding: 4px 6px 5px;
  line-height: 1.2;
}

.calendar-preview-meta {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 2px;
  overflow: hidden;
}

.smart-calendar .event.calendar-day-event-preview .calendar-preview-meta small,
.smart-calendar .event.calendar-day-event-preview .calendar-preview-meta em {
  min-width: 0;
  display: block;
  margin-top: 0;
  font-size: 6.5px;
}

.smart-calendar .event.calendar-day-event-preview .calendar-preview-meta small { flex: 0 0 auto; }
.smart-calendar .event.calendar-day-event-preview .calendar-preview-meta em { flex: 1; }
.smart-calendar .event.calendar-day-event-preview .calendar-preview-meta em i { display: none; }

.smart-calendar .event b,
.smart-calendar .event small,
.smart-calendar .event em {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.smart-calendar .event b { color: #e3e6e8; font-size: 7px; }
.smart-calendar .event small { margin-top: 3px; color: #9da4ab; font-size: 6px; }
.smart-calendar .event em { margin-top: 3px; color: var(--event-business); font-size: 6px; font-style: normal; }

.smart-calendar .event.status-received,
.smart-calendar .event.status-paid,
.smart-calendar .event.status-paid-period {
  box-shadow: inset 0 0 0 1px #5ee5a21b;
}

.smart-calendar .event.status-overdue {
  border-color: #743f3c;
  border-left-color: var(--finance-red);
  background: #2b1b1d;
}

.smart-calendar .event.status-overdue small { color: #ff9b95; }

.calendar-day-more {
  width: 100%;
  margin-top: 4px;
  padding: 4px 7px;
  border: 1px dashed #3b4248;
  border-radius: 7px;
  background: #11161a;
  color: #a8b0b5;
  font-size: 7.5px;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

.calendar-day-more:hover { border-color: #7b648d; color: #f2edf5; }

.calendar-day-detail-backdrop {
  position: fixed;
  inset: 0;
  z-index: 340;
  background: #050709a8;
  backdrop-filter: blur(3px);
}

.calendar-day-detail {
  position: fixed;
  top: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 341;
  width: min(430px, calc(100vw - 44px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #3b4248;
  border-radius: 18px;
  background: linear-gradient(160deg, #171c21, #0d1115 72%);
  box-shadow: 0 24px 80px #000c;
}

.calendar-day-detail > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 21px 22px 17px;
  border-bottom: 1px solid #2a3035;
}

.calendar-day-detail > header small {
  color: #9775ae;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .12em;
}

.calendar-day-detail > header h2 { margin: 6px 0 4px; font: 650 19px Manrope, sans-serif; }
.calendar-day-detail > header p { margin: 0; color: #7d868d; font-size: 8.5px; }

.calendar-day-detail > header button {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border: 1px solid #363d43;
  border-radius: 10px;
  background: #11161a;
  color: #c9ced1;
  font-size: 18px;
  cursor: pointer;
}

.calendar-day-detail-totals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  padding: 14px 22px;
}

.calendar-day-detail-totals span {
  display: grid;
  gap: 5px;
  padding: 11px 12px;
  border: 1px solid #2c3338;
  border-radius: 11px;
  background: #10151a;
}

.calendar-day-detail-totals small { color: #7a848b; font-size: 6.5px; letter-spacing: .1em; }
.calendar-day-detail-totals b { color: #e4e8e9; font: 650 14px Manrope, sans-serif; }
.calendar-day-detail-totals span:first-child b { color: var(--finance-green); }
.calendar-day-detail-totals span:last-child b { color: var(--finance-red); }

.calendar-day-detail-list {
  max-height: 60vh;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 8px;
  flex: 1;
  overflow-y: auto;
  padding: 0 22px 22px;
  scrollbar-width: thin;
  scrollbar-color: #414850 #111519;
}

.calendar-day-detail-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid #2b3237;
  border-left: 3px solid var(--calendar-event-color);
  border-radius: 11px;
  background: #11161a;
}

.calendar-detail-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: color-mix(in srgb, var(--calendar-event-color) 13%, #181d22);
  color: var(--calendar-event-color);
  font-size: 13px;
}

.calendar-day-detail-item > div { min-width: 0; }
.calendar-day-detail-item small { display: block; color: var(--calendar-event-color); font-size: 6.5px; font-weight: 700; letter-spacing: .08em; }
.calendar-day-detail-item b { display: block; margin-top: 4px; overflow: hidden; color: #e2e6e8; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.calendar-day-detail-item p { margin: 4px 0 0; color: #7f888f; font-size: 7.5px; line-height: 1.4; }
.calendar-day-detail-item em { display: block; margin-top: 5px; color: #929aa0; font-size: 7.5px; font-style: normal; line-height: 1.4; }
.calendar-day-detail-item > strong { color: #dce1e3; font: 650 11px Manrope, sans-serif; white-space: nowrap; }
.calendar-day-detail-item.positive > strong { color: var(--finance-green); }
.calendar-day-detail-item.negative > strong { color: var(--finance-red); }

.calendar-day-detail-empty {
  min-height: 210px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 7px;
  color: #7f888f;
  text-align: center;
}

.calendar-day-detail-empty > span { color: #9c79b4; font-size: 24px; }
.calendar-day-detail-empty b { color: #d9dddf; font-size: 10px; }
.calendar-day-detail-empty small { font-size: 8px; }

.calendar-rule-note {
  margin: 11px 2px 0;
  color: #727b83;
  font-size: 8px;
  line-height: 1.5;
}

/* Análisis */
.analysis-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 6px;
  border: 1px solid #292e34;
  border-radius: 13px;
  background: #101419;
}

.analysis-business-switcher {
  display: flex;
  gap: 4px;
  padding: 0;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.analysis-business-switcher::-webkit-scrollbar { display: none; }

.analysis-business-switcher > button {
  height: 34px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #7e878f;
  font-size: 8px;
  white-space: nowrap;
  cursor: pointer;
}

.analysis-business-switcher > button:hover {
  background: #191d22;
  color: #dfe2e4;
}

.analysis-business-switcher > button > i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--selector-accent);
  box-shadow: 0 0 8px color-mix(in srgb, var(--selector-accent) 52%, transparent);
}

.analysis-business-switcher > button.active {
  border-color: color-mix(in srgb, var(--selector-accent) 45%, #ffffff22);
  background: color-mix(in srgb, var(--selector-accent) 22%, #171b20);
  color: color-mix(in srgb, var(--selector-accent) 60%, #fff);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--selector-accent) 18%, transparent);
}

.analysis-period-switcher {
  display: flex;
  gap: 4px;
}

.analysis-period-switcher button {
  height: 34px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #7e878f;
  font-size: 8px;
  cursor: pointer;
}

.analysis-period-switcher button:hover {
  background: #191d22;
  color: #dfe2e4;
}

.analysis-period-switcher button.active {
  border-color: #ffffff2c;
  background: #f2f0f3;
  color: #111318;
}

.analysis-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.analysis-kpis article {
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 14px 15px;
  border: 1px solid #292e34;
  border-radius: 13px;
  background: linear-gradient(145deg, #15191e, #101418);
}

.analysis-kpis article:first-child { border-color: #2d5f49; }
.analysis-kpis article:nth-child(2) { border-color: #603a37; }

.analysis-kpis span {
  color: #747d85;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
}

.analysis-kpis b { font: 650 17px Manrope, sans-serif; }
.analysis-kpis article:first-child b { color: var(--finance-green); }
.analysis-kpis article:nth-child(2) b { color: var(--finance-red); }

.analysis-main-grid {
  grid-template-columns: minmax(0, 1.55fr) minmax(260px, .65fr);
  margin-bottom: 14px;
}

.analysis-secondary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.analysis-main-grid > .card,
.analysis-secondary-grid > .card {
  min-height: 315px;
  padding: 21px;
}

.analysis-evolution {
  overflow: hidden;
}

.analysis-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
}

.analysis-card-head h2,
.analysis-indicators h2,
.analysis-secondary-grid h2 {
  margin: 0;
  font: 650 15px Manrope, sans-serif;
}

.analysis-card-head p {
  margin: 5px 0 0;
  color: #747d85;
  font-size: 8px;
}

.analysis-card-head > div:last-child {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  color: #858d95;
  font-size: 7px;
}

.analysis-card-head .income { color: var(--finance-green); }
.analysis-card-head .expense { color: var(--finance-red); }
.analysis-card-head .remaining { color: var(--finance-purple); }

.analysis-bars {
  height: 225px;
  display: flex;
  align-items: flex-end;
  justify-content: space-around;
  gap: 18px;
  margin-top: 23px;
  padding: 18px 12px 0;
  border-bottom: 1px solid #292e34;
  background: repeating-linear-gradient(to top, transparent 0, transparent 52px, #20262b 53px);
}

.analysis-bars > div {
  height: 100%;
  min-width: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}

.analysis-bars > div > div {
  width: 100%;
  height: calc(100% - 24px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 5px;
}

.analysis-bars i {
  width: 9px;
  min-height: 4px;
  display: block;
  border-radius: 4px 4px 1px 1px;
}

.analysis-bars i.income { background: var(--finance-green); }
.analysis-bars i.expense { background: var(--finance-red); }
.analysis-bars i.remaining { background: var(--finance-purple); }
.analysis-bars > div > b { color: #788189; font-size: 8px; }

.analysis-indicators > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
  padding: 15px 0;
  border-bottom: 1px solid #292e34;
}

.analysis-indicators > div:last-child { border-bottom: 0; }
.analysis-indicators span { color: #7d858d; font-size: 9px; }
.analysis-indicators b { font-size: 10px; text-align: right; }

.analysis-line-list {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin-top: 23px;
}

.analysis-line-list > div {
  display: grid;
  grid-template-columns: 76px minmax(90px, 1fr) 86px;
  align-items: center;
  gap: 11px;
}

.analysis-line-list span { color: #808890; font-size: 8px; }

.analysis-line-list > div > i {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #282d33;
}

.analysis-line-list > div > i > b {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff8d86, #e9c967);
}

.analysis-line-list.savings > div > i > b {
  background: linear-gradient(90deg, #5ee5a2, #62d9ef);
}

.analysis-line-list strong { font-size: 9px; text-align: right; }

.analysis-view-tabs {
  width: fit-content;
  display: flex;
  gap: 4px;
  margin: 0 0 14px;
  padding: 5px;
  border: 1px solid #2b3136;
  border-radius: 12px;
  background: #101419;
}

.analysis-view-tabs button {
  min-width: 128px;
  height: 36px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #858f96;
  font-size: 8px;
  font-weight: 750;
  cursor: pointer;
}

.analysis-view-tabs button:hover { background: #191e23; color: #e7eaec; }

.analysis-view-tabs button.active {
  border-color: #ffffff30;
  background: #f1eff2;
  color: #111419;
  box-shadow: 0 7px 18px #00000038;
}

.forecast-toolbar { margin-bottom: 12px; }

.analysis-horizon {
  display: grid;
  gap: 2px;
  padding: 4px 10px;
  text-align: right;
}

.analysis-horizon span,
.analysis-section-copy > div > span,
.analysis-forecast-summary article > span,
.forecast-result > span {
  color: #727d85;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .12em;
}

.analysis-horizon b { color: #dce1e4; font-size: 9px; }

.analysis-forecast-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.analysis-forecast-summary article {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 16px;
  border-color: #30373d;
  background: linear-gradient(145deg, #151a1f, #101419);
}

.analysis-forecast-summary article > b {
  color: #f1f3f4;
  font: 650 20px Manrope, sans-serif;
}

.analysis-forecast-summary article > small { color: #768189; font-size: 8px; }
.analysis-forecast-summary article.forecast-base { border-color: #41455f; }
.analysis-forecast-summary article.forecast-base > b { color: #aeb7ed; }
.analysis-forecast-summary article.forecast-scenario { border-color: #2b634d; background: linear-gradient(145deg, #11221d, #101719); }
.analysis-forecast-summary article.forecast-scenario > b { color: #65e2a7; }

.analysis-forecast-controls,
.forecast-table-card { margin-bottom: 12px; padding: 19px; }

.analysis-section-copy {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.analysis-section-copy h2 {
  margin: 4px 0 0;
  color: #edf0f1;
  font: 650 15px Manrope, sans-serif;
}

.analysis-section-copy > p {
  max-width: 330px;
  margin: 2px 0 0;
  color: #768189;
  font-size: 8px;
  line-height: 1.55;
  text-align: right;
}

.analysis-forecast-control-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 17px;
}

.analysis-forecast-control-grid label {
  display: grid;
  gap: 11px;
  padding: 14px;
  border: 1px solid #2f363c;
  border-radius: 11px;
  background: #0f1418;
}

.analysis-forecast-control-grid label > span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #a3abb0;
  font-size: 9px;
}

.analysis-forecast-control-grid label > span b { color: #eef1f2; }

.analysis-forecast-control-grid input[type="range"] {
  width: 100%;
  accent-color: #7bdcb2;
  cursor: pointer;
}

.analysis-forecast-control-grid label:first-child input[type="range"] { accent-color: #79c9da; }

.analysis-forecast-control-grid em {
  display: flex;
  gap: 5px;
  font-style: normal;
}

.analysis-forecast-control-grid em button {
  min-height: 26px;
  padding: 0 9px;
  border: 1px solid #343c42;
  border-radius: 7px;
  background: #171d21;
  color: #89939a;
  font-size: 7px;
  cursor: pointer;
}

.analysis-forecast-control-grid em button:hover { border-color: #5b6a72; color: #e7ebed; }

.analysis-forecast-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(230px, .6fr);
  gap: 12px;
  margin-bottom: 12px;
}

.analysis-forecast-layout > .card { min-height: 280px; padding: 19px; }

.forecast-legend {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #7e888f;
  font-size: 7px;
}

.forecast-legend i { width: 7px; height: 7px; border-radius: 50%; background: #7f89b9; }
.forecast-legend i.forecast-scenario { margin-left: 5px; background: #62dfa5; }

.forecast-chart {
  display: grid;
  gap: 20px;
  margin-top: 27px;
}

.forecast-chart-month {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.forecast-chart-month > div:first-child { display: grid; gap: 3px; }
.forecast-chart-month > div:first-child b { color: #d8dddf; font-size: 10px; text-transform: uppercase; }
.forecast-chart-month > div:first-child small { color: #69747b; font-size: 7px; }
.forecast-chart-bars { display: grid; gap: 7px; }

.forecast-chart-bars > span {
  position: relative;
  height: 21px;
  display: flex;
  align-items: center;
  overflow: hidden;
  border-radius: 7px;
  background: #1c2227;
}

.forecast-chart-bars > span i {
  position: absolute;
  inset: 0 auto 0 0;
  min-width: 3px;
  border-radius: inherit;
  background: linear-gradient(90deg, #606b9d, #8c96c8);
}

.forecast-chart-bars > span.forecast-scenario i { background: linear-gradient(90deg, #2c825c, #67dfa7); }

.forecast-chart-bars > span em {
  position: relative;
  z-index: 1;
  margin-left: 9px;
  color: #f0f2f3;
  font-size: 7px;
  font-style: normal;
  font-weight: 750;
  text-shadow: 0 1px 2px #000;
}

.forecast-result {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-color: #2e664e;
  background: linear-gradient(145deg, #12221d, #101519);
}

.forecast-result > b { margin-top: 8px; color: #63e0a5; font: 650 27px Manrope, sans-serif; }
.forecast-result > p { margin: 6px 0 22px; color: #7c878e; font-size: 8px; line-height: 1.55; }

.forecast-result > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid #2a3532;
}

.forecast-result > div small { color: #718078; font-size: 8px; }
.forecast-result > div strong { color: #dce3df; font-size: 8px; text-align: right; }

.forecast-table-scroll { margin-top: 16px; overflow-x: auto; }
.forecast-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.forecast-table th { padding: 0 12px 9px; color: #6f7a82; font-size: 7px; letter-spacing: .08em; text-align: right; }
.forecast-table th:first-child { text-align: left; }
.forecast-table td { padding: 12px; border-top: 1px solid #293036; color: #cbd1d4; font-size: 8px; text-align: right; }
.forecast-table td:first-child { display: grid; gap: 3px; text-align: left; }
.forecast-table td:first-child b { color: #e1e5e7; font-size: 9px; }
.forecast-table td:first-child small { color: #6f7a81; font-size: 7px; }
.forecast-table td.forecast-base { color: #aab4e3; font-weight: 750; }
.forecast-table td.forecast-scenario { color: #64dfa6; font-weight: 750; }

.analysis-forecast-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 2px 15px;
  color: #778289;
  font-size: 8px;
  line-height: 1.5;
}

.analysis-forecast-note > span { color: #8c96c8; font-size: 15px; }
.analysis-forecast-note b { color: #aeb6bb; }

.analysis-forecast-goals { margin-top: 16px; }
.analysis-forecast-goals > .analysis-section-copy { margin-bottom: 11px; }
.analysis-forecast-goals > div:last-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }

.analysis-forecast-goals article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 12px;
  min-height: 95px;
  padding: 15px;
}

.analysis-forecast-goals article > div { display: grid; gap: 4px; }
.analysis-forecast-goals article b { color: #e0e4e6; font-size: 9px; }
.analysis-forecast-goals article small { color: #778188; font-size: 7px; }
.analysis-forecast-goals article > strong { color: #8eddb9; font-size: 11px; }
.analysis-forecast-goals article > i { grid-column: 1 / -1; height: 5px; overflow: hidden; border-radius: 999px; background: #242b30; }
.analysis-forecast-goals article > i > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #6d77ab, #66dfa7); }

/* Forecast v2: the same financial engine feeds Analysis and MOVA AI. */
.forecast-v2 .forecast-toolbar { gap: 10px; align-items: center; flex-wrap: wrap; }
.forecast-scenario-switch { display: inline-flex; padding: 3px; gap: 3px; border: 1px solid #293139; border-radius: 10px; background: #0e1317; }
.forecast-scenario-switch button { min-height: 30px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: #7f8a91; font: 700 8px Manrope, sans-serif; cursor: pointer; }
.forecast-scenario-switch button.active { color: #f1f3f4; background: #303842; box-shadow: 0 4px 12px #0005; }
.forecast-v2 .analysis-horizon { margin-left: auto; display: grid; gap: 2px; }
.forecast-v2 .analysis-horizon small { color: #66737b; font-size: 7px; }
.forecast-primary-metrics article { min-height: 122px; }
.forecast-primary-metrics article > b.positive { color: var(--finance-green); }
.forecast-primary-metrics article > b.negative { color: var(--finance-red); }
.forecast-v2-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 12px; margin-top: 12px; }
.forecast-v2-grid > .card { padding: 18px; min-height: 250px; }
.forecast-formula > div:not(.analysis-section-copy) { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #222a30; color: #8b969d; font-size: 8px; }
.forecast-formula > div b { color: #d7dcdf; font-size: 9px; }
.forecast-formula > div b.income { color: #65dba4; }
.forecast-formula > div b.expense,
.forecast-formula > div b.debt,
.forecast-formula > div b.saving { color: #ef8585; }
.forecast-formula footer { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; padding: 12px; border: 1px solid #35634f; border-radius: 10px; background: #11211c; }
.forecast-formula footer span { color: #77a990; font: 700 7px Manrope, sans-serif; letter-spacing: .1em; }
.forecast-formula footer b { color: #67e0a7; font-size: 17px; }
.forecast-upcoming > article { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid #222a30; }
.forecast-upcoming > article > span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 8px; background: #1b2228; color: #aab4ba; }
.forecast-upcoming > article > div { display: grid; gap: 2px; min-width: 0; }
.forecast-upcoming > article b { overflow: hidden; color: #dce0e2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.forecast-upcoming > article small { color: #69757d; font-size: 7px; }
.forecast-upcoming > article strong { color: #e7eaec; font-size: 9px; }
.forecast-table td b { display: block; color: #dfe3e5; }
.forecast-table td small { display: block; margin-top: 3px; color: #68747c; }
.forecast-status { display: inline-flex; padding: 3px 6px; border: 1px solid #39434a; border-radius: 999px; color: #aeb7bc; font-size: 7px; }
.forecast-status.partial { border-color: #705d2f; color: #e5c572; }
.forecast-status.realized { border-color: #2e694e; color: #67dca4; }
.forecast-status.cancelled,
.forecast-status.skipped { opacity: .6; }
.forecast-simulation-result { display: flex; gap: 8px; margin-top: 12px; }
.forecast-simulation-result span { flex: 1; display: flex; justify-content: space-between; padding: 11px 12px; border: 1px solid #2d373e; border-radius: 9px; color: #748087; font: 700 7px Manrope, sans-serif; }
.forecast-simulation-result b { color: #dfe5e7; font-size: 10px; }
.forecast-assumptions { margin-top: 12px; padding: 13px 16px; }
.forecast-assumptions summary { color: #9ba5aa; font: 700 8px Manrope, sans-serif; cursor: pointer; }
.forecast-assumptions ul { display: grid; gap: 6px; margin: 12px 0 0; padding-left: 18px; color: #77838a; font-size: 8px; line-height: 1.5; }

@media (max-width: 900px) {
  .forecast-v2-grid { grid-template-columns: 1fr; }
  .forecast-v2 .analysis-horizon { margin-left: 0; }
  .forecast-scenario-switch { width: 100%; }
  .forecast-scenario-switch button { flex: 1; }
  .forecast-simulation-result { flex-direction: column; }
}

/* Configuración */
.settings-companies {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.configuration-deep-view .company-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.configuration-deep-view .business-settings-card {
  min-height: 218px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  align-items: start;
  gap: 13px;
  padding: 19px;
  border-color: color-mix(in srgb, var(--company-accent) 26%, #292e34);
  background: linear-gradient(145deg, color-mix(in srgb, var(--company-accent) 7%, #13171b), #101418 72%);
}

.configuration-deep-view .company-theme-preview {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--company-accent) 45%, #343a41);
  border-radius: 13px;
  background: color-mix(in srgb, var(--company-accent) 14%, #161a1f);
  color: var(--company-accent);
  font: 700 16px Manrope, sans-serif;
}

.configuration-deep-view .company-theme-copy { min-width: 0; }

.configuration-deep-view .company-theme-copy > small {
  color: #7c848c;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .11em;
}

.configuration-deep-view .company-theme-copy h3 {
  margin: 5px 0 8px;
  font: 650 14px Manrope, sans-serif;
}

.configuration-deep-view .business-core-meta,
.configuration-deep-view .theme-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.configuration-deep-view .business-core-meta span,
.configuration-deep-view .theme-meta span {
  padding: 5px 7px;
  border: 1px solid #2e343a;
  border-radius: 7px;
  background: #15191e;
  color: #8c949b;
  font-size: 7px;
}

.configuration-deep-view .theme-meta { margin-top: 10px; }

.configuration-deep-view .theme-meta i {
  width: 7px;
  height: 7px;
  display: inline-block;
  margin-right: 5px;
  border-radius: 50%;
}

.configuration-deep-view .theme-meta b {
  margin-left: 3px;
  color: #bdc2c7;
  font-size: 6px;
}

.configuration-deep-view .business-settings-card > .secondary {
  grid-column: 2;
  justify-self: start;
}

.settings-account-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.settings-account-list > .card { flex: 0 0 auto; }

.settings-account-card {
  min-height: 90px;
  display: grid;
  grid-template-columns: 42px minmax(180px, 1.5fr) minmax(160px, .8fr) auto;
  align-items: center;
  gap: 14px;
  padding: 15px 17px;
}

.settings-account-card .source-logo {
  width: 40px;
  height: 40px;
}

.settings-account-card small {
  color: #747d85;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.settings-account-card h2 {
  margin: 4px 0;
  font: 650 13px Manrope, sans-serif;
}

.settings-account-card p {
  margin: 0;
  color: #7d858d;
  font-size: 8px;
}

.settings-account-card > div:nth-of-type(2) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.settings-account-card > div:nth-of-type(2) > b {
  color: #aeb4ba;
  font-size: 8px;
}

.business-status {
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 7px;
  font-weight: 700;
}

.business-status.active { background: #193326; color: #72e1aa; }
.business-status.archived { background: #292d31; color: #818991; }

.settings-data-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  margin-bottom: 15px;
}

.currency-settings,
.fx-example {
  min-height: 225px;
  padding: 21px;
}

.currency-settings {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(230px, 1.2fr);
  align-items: start;
  gap: 18px;
}

.currency-settings > div > small,
.fx-example > small {
  color: #7c848c;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .12em;
}

.currency-settings h2,
.fx-example h2 {
  margin: 9px 0 5px;
  font: 650 26px Manrope, sans-serif;
}

.currency-settings p,
.fx-example p {
  margin: 0;
  color: #7b838b;
  font-size: 8px;
  line-height: 1.5;
}

.currency-settings > label {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.currency-settings > label > span {
  color: #7c848c;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .1em;
}

.currency-settings > label > div {
  height: 43px;
  display: flex;
  align-items: center;
  border: 1px solid #343a41;
  border-radius: 10px;
  background: #0e1216;
}

.currency-settings input {
  width: 100%;
  height: 100%;
  padding: 0 11px;
  border: 0;
  background: transparent;
  color: #f0f2f3;
  font-size: 12px;
  outline: 0;
}

.currency-settings > label > div > b {
  padding-right: 12px;
  color: #858d95;
  font-size: 8px;
}

.currency-settings > label > small {
  color: #707981;
  font-size: 7px;
}

.currency-settings > button {
  grid-column: 2;
  justify-self: start;
}

.fx-example {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-color: #3f5660;
  background: linear-gradient(145deg, #142027, #101418 70%);
}

.fx-example h2 { color: var(--finance-cyan); }
.fx-example > b { margin-bottom: 13px; color: #d3d8dc; font-size: 10px; }

.remainder-settings {
  padding: 20px;
}

.remainder-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
  margin-top: 18px;
}

.remainder-timeline article {
  padding: 14px;
  border: 1px solid #30363c;
  border-radius: 12px;
  background: #0f1317;
}

.remainder-timeline article > small {
  display: block;
  margin-bottom: 11px;
  color: #aaa2b0;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
}

.remainder-timeline article > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 0;
  border-bottom: 1px solid #252b30;
}

.remainder-timeline article > div:last-child { border-bottom: 0; }
.remainder-timeline span { color: #737c84; font-size: 8px; }
.remainder-timeline b { font-size: 9px; }

.remainder-timeline .result {
  margin-top: 4px;
  color: var(--finance-purple);
}

.remainder-timeline .result span,
.remainder-timeline .result b { color: #c3a5ef; }

.remainder-rule,
.modal-rule-note {
  margin: 14px 0 0;
  padding: 10px 12px;
  border: 1px solid #30363c;
  border-radius: 10px;
  background: #0f1317;
  color: #7d858d;
  font-size: 8px;
  line-height: 1.5;
}

.preference-list {
  padding: 4px 20px;
}

.preference-list > label {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid #292e34;
}

.preference-list > label:last-child { border-bottom: 0; }
.preference-list b,
.preference-list span { display: block; }
.preference-list b { margin-bottom: 4px; font-size: 10px; }
.preference-list span { color: #737c84; font-size: 8px; }
.preference-list input { width: 16px; height: 16px; flex: 0 0 16px; }

/* Formularios modales de cuenta/meta/recordatorio */
.mova-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0;
}

.mova-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #858d95;
  font-size: 8px;
}

.mova-form-grid input,
.mova-form-grid select {
  width: 100%;
  height: 40px;
  padding: 0 11px;
  border: 1px solid #343a41;
  border-radius: 9px;
  background: #0f1317;
  color: #e5e8ea;
  font-size: 10px;
  outline: 0;
}

.mova-form-grid input:focus,
.mova-form-grid select:focus {
  border-color: #7f878f;
  box-shadow: 0 0 0 3px #ffffff0b;
}

.mova-form-grid .mova-check {
  min-height: 40px;
  flex-direction: row;
  align-items: center;
  grid-column: 1 / -1;
  padding: 9px 11px;
  border: 1px solid #343a41;
  border-radius: 9px;
  background: #0f1317;
}

.mova-form-grid .mova-check input {
  width: 15px;
  height: 15px;
}

/* Control discreto para contraer/expandir el panel lateral */
.sidebar-toggle {
  flex: 0 0 auto;
  color: #aeb7bc;
}

.sidebar-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sidebar-toggle .toggle-arrow {
  transform-origin: center;
  transition: transform .2s ease;
}

.sidebar.collapsed .sidebar-toggle .toggle-arrow {
  transform: scaleX(-1);
}

/* Misma tarjeta para todas las métricas; solo cambia el color del monto */
.history-view .history-period-metrics > div:nth-child(3) b,
.history-view .history-kpi.saving strong {
  color: var(--cyan);
}

.history-view .history-period-metrics .remaining b,
.history-view .history-kpi.best strong {
  color: var(--green);
}

.history-view .history-period-metrics > div:nth-child(3),
.history-view .history-period-metrics .remaining {
  border-color: #2c2931;
  background: #14171a;
}

.history-view .history-kpi.saving,
.history-view .history-kpi.best {
  border-color: var(--mova-border);
}

/* Responsive: viewport habitual de Codex (1088px) */
@media (max-width: 1180px) {
  .upgraded-registry .remainder-summary,
  .registry-visualizer > .unified-summary,
  .analysis-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .upgraded-registry .registry-ai-capture {
    grid-template-columns: 1fr 1fr;
  }

  .upgraded-registry .registry-ai-copy { grid-column: 1 / -1; }
  .upgraded-registry .registry-ai-action { grid-column: 2; justify-self: end; }

  .upgraded-registry .finance-register-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .upgraded-registry .finance-register-grid .wide { grid-column: span 1; }
  .upgraded-registry .registry-impact-preview { grid-column: 1 / -1; }

  .registry-business-board { grid-template-columns: 1fr; }
  .registry-visual-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .movement-primary-filters {
    grid-template-columns: minmax(210px, 1.5fr) repeat(2, minmax(120px, 1fr));
  }

  .movement-primary-filters > .secondary { justify-self: start; }
  .movement-extra-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .movement-ledger-head,
  .movement-ledger-row {
    grid-template-columns: 88px minmax(160px, 1.35fr) minmax(110px, .9fr) minmax(120px, 1fr) 102px;
    gap: 9px;
  }

  .accounts-live-view .account-grid,
  .upgraded-debt-grid,
  .savings-goal-grid,
  .configuration-deep-view .company-theme-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .debt-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .analysis-main-grid { grid-template-columns: 1fr; }
  .analysis-indicators { min-height: 0 !important; }

  .settings-data-grid { grid-template-columns: 1fr; }
  .currency-settings { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  .registry-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .movement-ledger-head,
  .movement-ledger-row {
    grid-template-columns: 82px minmax(150px, 1.4fr) minmax(120px, .85fr) 100px;
  }

  .movement-ledger-head span:nth-child(4),
  .movement-ledger-row > span:nth-child(4) {
    display: none;
  }

  .calendar-filter-toolbar,
  .calendar-month-insights { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .analysis-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .analysis-period-switcher { overflow-x: auto; }
  .analysis-period-switcher button { flex: 0 0 auto; }

  .settings-account-card {
    grid-template-columns: 42px minmax(150px, 1fr) auto;
  }

  .settings-account-card > div:nth-of-type(2) { display: none; }
}

/* Responsive móvil */
@media (max-width: 760px) {
  .upgraded-registry .registry-page-head,
  .registry-visualizer .registry-page-head {
    flex-direction: column;
    gap: 16px;
    margin-bottom: 19px;
  }

  .upgraded-registry .registry-page-head h1,
  .registry-visualizer .registry-page-head h1 { font-size: 29px; }

  .upgraded-registry .registry-page-head .dashboard-period-wrap,
  .upgraded-registry .registry-page-head .dashboard-period-chip,
  .registry-visualizer .registry-page-head .dashboard-period-wrap,
  .registry-visualizer .registry-page-head .dashboard-period-chip {
    width: 100%;
  }

  .upgraded-registry .remainder-summary,
  .registry-visualizer > .unified-summary,
  .movement-summary-strip,
  .savings-summary-grid,
  .analysis-kpis {
    grid-template-columns: 1fr;
  }

  .upgraded-registry .registry-ai-capture,
  .upgraded-registry .finance-register-grid {
    grid-template-columns: 1fr;
  }

  .upgraded-registry .registry-ai-copy { grid-column: auto; }
  .upgraded-registry .registry-ai-action,
  .upgraded-registry .registry-save { width: 100%; }
  .upgraded-registry .registry-ai-action { grid-column: auto; }
  .upgraded-registry .finance-register-grid .wide { grid-column: auto; }

  .upgraded-registry .registry-impact-preview {
    grid-template-columns: 1fr;
  }

  .upgraded-registry .registry-impact-preview small { text-align: left; }

  .registry-visualizer .registry-visual-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .registry-visualizer .registry-visual-tabs button { flex: 1; }
  .registry-visualizer .registry-visual-legend { padding: 2px 7px 5px; }
  .registry-visual-grid { grid-template-columns: 1fr; }

  .registry-business-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .registry-visual-actions { flex-wrap: wrap; }
  .registry-visual-actions button { min-width: calc(50% - 3px); }

  .csv-actions {
    width: 100%;
    justify-content: stretch;
  }

  .csv-actions button { flex: 1; }

  .movement-primary-filters,
  .movement-extra-filters,
  .calendar-filter-toolbar {
    grid-template-columns: 1fr;
  }

  .movement-primary-filters > .secondary { width: 100%; }

  .movement-ledger { overflow-x: hidden; }
  .movement-ledger-head { display: none; }

  .movement-ledger-row {
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 9px;
    padding: 12px;
  }

  .movement-ledger-row > span:nth-child(3),
  .movement-ledger-row > span:nth-child(4) {
    display: none;
  }

  .movement-ledger-row > strong { font-size: 9px; }

  .movement-detail-panel {
    inset: auto 0 0;
    width: 100%;
    max-height: 90vh;
    border-top: 1px solid #3b4148;
    border-left: 0;
    border-radius: 18px 18px 0 0;
    animation-name: movaDrawerUp;
  }

  @keyframes movaDrawerUp {
    from { opacity: 0; transform: translateY(25px); }
    to { opacity: 1; transform: translateY(0); }
  }

  .accounts-live-view .account-grid,
  .upgraded-debt-grid,
  .savings-goal-grid,
  .configuration-deep-view .company-theme-grid,
  .analysis-secondary-grid {
    grid-template-columns: 1fr;
  }

  .account-transfer-note,
  .savings-rule-note,
  .settings-note {
    align-items: flex-start;
  }

  .debt-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .debt-account-card { min-height: 0; }

  .savings-equation {
    align-items: flex-start;
    flex-direction: column;
  }

  .smart-calendar .calendar-head,
  .smart-calendar .calendar-grid { min-width: 640px; }

  .calendar-day-detail {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 88vh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 18px 18px 0 0;
  }

  .calendar-day-detail-list { max-height: 60vh; }

  .analysis-card-head { flex-direction: column; }
  .analysis-card-head > div:last-child { justify-content: flex-start; }
  .analysis-main-grid > .card,
  .analysis-secondary-grid > .card { min-height: 0; padding: 17px; }
  .analysis-bars { gap: 9px; padding-inline: 4px; }
  .analysis-bars > div { min-width: 36px; }

  .settings-account-card {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .settings-account-card > .secondary { grid-column: 2; justify-self: start; }

  .settings-data-grid,
  .currency-settings,
  .remainder-timeline,
  .mova-form-grid {
    grid-template-columns: 1fr;
  }

  .currency-settings > button { grid-column: auto; }
  .mova-form-grid .mova-check { grid-column: auto; }

}

@media (prefers-reduced-motion: reduce) {
  .movement-detail-panel { animation: none; }
  .nav-parent > i,
  .nav-subitem,
  .registry-visual-actions button,
  .movement-ledger-row { transition: none; }
}

/* Overrides finales para componentes con reglas históricas más abajo. */
.nav-label {
  margin: 11px 3px 5px;
  padding: 7px 9px;
  border-left: 2px solid #7e669e;
  border-radius: 0 7px 7px 0;
  background: linear-gradient(90deg, #b78cf414, transparent);
  color: #a49aaa;
  font-size: 8px;
  letter-spacing: .18em;
}
.movement-extra-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.debt-summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.smart-calendar .event {
  border-color: color-mix(in srgb, var(--event-type) 25%, #30363c);
  border-left-color: var(--event-type);
  background: color-mix(in srgb, var(--event-type) 10%, #15191e);
}
@media (max-width: 1050px) { .debt-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .debt-summary-grid { grid-template-columns: 1fr; } }

/* Controles compactos y listas extensas con desplazamiento interno. */
.registry-preset-field { position: relative; }
.registry-preset-options {
  position: absolute;
  z-index: 30;
  top: calc(100% + 5px);
  left: 0;
  right: 0;
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  max-height: 220px;
  overflow-y: auto;
  padding: 6px;
  border: 1px solid #343b43;
  border-radius: 10px;
  background: #10151b;
  box-shadow: 0 16px 36px #000a;
}
.registry-preset-field:focus-within .registry-preset-options { display: grid; }
.registry-preset-options button {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #2a323a;
  border-radius: 7px;
  background: #161c23;
  color: #aeb7c0;
  text-align: left;
  font-size: 8px;
}
.registry-preset-options button:hover {
  border-color: #765c99;
  color: #fff;
  background: #21192c;
}

.registry-type-ledger {
  max-height: 448px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.registry-type-ledger-row {
  grid-template-columns: 44px minmax(150px, 1.5fr) 70px minmax(90px, .75fr) 90px 150px;
}
.registry-ledger-actions,
.registry-ledger-actions.has-realize {
  justify-self: end;
  align-items: center;
  justify-content: end;
  gap: 4px;
}
.registry-ledger-actions {
  width: 104px;
  grid-template-columns: repeat(4, 23px);
}
.registry-ledger-actions.has-realize {
  width: 150px;
  grid-template-columns: 48px repeat(4, 23px);
}
.registry-ledger-actions button {
  display: grid;
  place-items: center;
  padding: 0;
  line-height: 1;
}
.registry-ledger-actions .realize {
  width: 48px;
  border-color: #2d664e;
  background: #153026;
  color: var(--finance-green);
  font-size: 7px;
  font-weight: 700;
}

.history-detail-card,
.history-ledger,
.debt-payment-history,
.settings-account-list,
.payment-list,
.other-income-list,
.spending-list,
.unified-register-list,
.catalog-tags {
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.history-ledger { max-height: 310px; }
.history-range-detail .history-detail-card { max-height: 355px; }
.debt-payment-history { max-height: 310px; }
.settings-account-list { max-height: 510px; padding-right: 4px; }
.payment-list,
.other-income-list,
.spending-list,
.unified-register-list { max-height: 330px; }
.catalog-tags { max-height: 145px; }
.movement-ledger {
  max-height: 352px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.movement-ledger-head {
  position: sticky;
  z-index: 2;
  top: 0;
  background: #111519;
}

/* Keep long category breakdowns inside the dashboard card. */
.fv-dashboard-view ~ .spending-section .spending-grid {
  align-items: stretch;
}
.fv-dashboard-view ~ .spending-section .spending-list,
.fv-dashboard-view ~ .spending-section .category-card {
  box-sizing: border-box;
  height: 390px;
  min-height: 390px;
  max-height: 390px;
}
.fv-dashboard-view ~ .spending-section .category-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.fv-dashboard-view ~ .spending-section .category-card > .simple-section-head {
  flex: 0 0 auto;
}
.fv-dashboard-view ~ .spending-section .category-card > .category-list {
  flex: 1 1 auto;
  min-height: 0;
  margin-bottom: 0;
  padding-right: 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #4b3c60 transparent;
}

@media (max-width: 1050px) {
  .fv-dashboard-view ~ .spending-section .spending-list,
  .fv-dashboard-view ~ .spending-section .category-card {
    height: 360px;
    min-height: 360px;
    max-height: 360px;
  }
}

@media (max-width: 1250px) {
  .registry-type-ledger-row {
    grid-template-columns: 42px minmax(140px, 1fr) 62px 92px 150px;
  }
}

@media (max-width: 760px) {
  .registry-preset-options { grid-template-columns: 1fr; }
  .registry-type-ledger-row { grid-template-columns: 40px 1fr 78px; }
  .registry-ledger-actions,
  .registry-ledger-actions.has-realize {
    width: auto;
    justify-self: start;
    grid-template-columns: 48px repeat(4, 23px);
  }
}

/* ================================================================
   MOVA · Pulido visual final
   Unifica ritmo, jerarquía y legibilidad sin alterar composiciones.
   ================================================================ */

:root {
  --mova-surface: #12171c;
  --mova-surface-raised: #161b20;
  --mova-surface-soft: #101419;
  --mova-border: #2d3238;
  --mova-border-strong: #424950;
  --mova-text-secondary: #9aa2aa;
  --mova-text-muted: #7b848c;
  --mova-shadow-card: 0 12px 32px #0000001f;
  --mova-transition: 150ms ease;
  --finance-copy: #9aa2aa;
  --finance-muted: #7b848c;
  --finance-border: #2d3238;
}

html {
  scrollbar-color: #414850 #0b0e11;
  scrollbar-width: thin;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.page {
  width: 100%;
  padding: 30px clamp(22px, 3vw, 38px) 64px;
  overflow-x: clip;
}

#page > *,
.grid > *,
.dashboard-main-grid > *,
.spending-grid > * { min-width: 0; }

.general-dashboard-page .dashboard-main-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
}

.card {
  border-color: var(--mova-border);
  background: linear-gradient(145deg, #14191e, #101418);
  box-shadow: var(--mova-shadow-card);
}

.page-head,
.movements-ledger-view .page-head,
.accounts-live-view .page-head,
.debts-management-view .page-head,
.savings-management-view .page-head,
.smart-calendar-view .page-head,
.analysis-view .page-head,
.configuration-deep-view .page-head {
  gap: 24px;
  margin-bottom: 24px;
}

.page-head h1 {
  margin-bottom: 7px;
  font: 650 31px/1.12 Manrope, sans-serif;
  letter-spacing: -.04em;
}

.dashboard-themed .identity-page-head h1,
.general-dashboard-page .identity-page-head h1,
.source-dashboard-page .identity-page-head h1,
#page[data-dashboard-theme="virtuality"] .identity-page-head h1,
#page[data-dashboard-theme="otros"] .identity-page-head h1 {
  font-size: 33px;
  line-height: 1.1;
}

.upgraded-registry .registry-page-head h1,
.registry-visualizer .registry-page-head h1 {
  font-size: 32px;
  line-height: 1.1;
}

.page-head p,
.upgraded-registry .registry-page-head p,
.registry-visualizer .registry-page-head p {
  color: var(--mova-text-secondary);
  font-size: 12px;
  line-height: 1.5;
}

.section-title-row { margin: 28px 0 14px; }
.section-title-row h2,
.simple-section-head h2,
.card h3 { letter-spacing: -.012em; }

.head-actions {
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.action-btn,
.secondary,
.filter {
  min-height: 38px;
  padding: 0 13px;
  border-radius: 10px;
  font-size: 10.5px;
  line-height: 1;
}

:where(button):active:not(:disabled) {
  transform: translateY(0) scale(.985);
}

:where(button,input,select,textarea):focus-visible {
  outline: 0;
  box-shadow: var(--mova-focus);
}

:where(input,select,textarea)::placeholder { color: #626b73; opacity: 1; }
:where(button,input,select,textarea):disabled { cursor: not-allowed; opacity: .5; }

.sidebar {
  border-right-color: #252a30;
  background: linear-gradient(180deg, #0e1216, #0b0f12);
}

.sidebar nav {
  gap: 2px;
  scrollbar-color: #343b42 transparent;
  scrollbar-width: thin;
}

.nav-label {
  margin: 12px 3px 5px;
  padding: 7px 9px;
  color: #9a91a0;
  font-size: 8px;
}

.nav-item,
.nav-parent {
  height: 38px;
  min-height: 38px;
  padding-inline: 11px;
  border-radius: 9px;
  font-size: 12px;
}

.nav-icon {
  width: 19px;
  flex: 0 0 19px;
  font-size: 13px;
}

.sidebar .nav-item.active,
.sidebar .nav-item.active:hover {
  background: linear-gradient(135deg, #eeecef, #dcd8df);
  color: #111318;
  box-shadow: 0 7px 18px #0004, inset 0 0 0 1px #fff9;
}

.nav-subitems {
  margin-top: 3px;
  margin-bottom: 6px;
  gap: 2px !important;
}

.nav-subitem {
  height: 33px;
  min-height: 33px;
  flex-basis: 33px;
  padding-inline: 9px;
  border-radius: 8px;
  font-size: 10.5px;
}

.nav-subitem.active {
  background: linear-gradient(90deg, #ffffff10, #ffffff04);
  box-shadow: inset 2px 0 color-mix(in srgb, var(--mova-accent) 65%, #fff);
}

.nav-subitem.active > span { box-shadow: none; }
.profile { min-height: 48px; }
.profile-copy small { color: #8a9299; }

.dashboard-switcher,
.dashboard-mode,
.history-filter,
.settings-tabs,
.registry-visual-toolbar,
.analysis-toolbar,
.debt-filter-bar {
  border-color: var(--mova-border);
  box-shadow: inset 0 1px #ffffff05;
}

.dashboard-switcher button,
.dashboard-mode button,
.history-filter button,
.settings-tabs button,
.registry-visual-tabs button,
.analysis-business-switcher > button,
.analysis-period-switcher button,
.debt-filter-bar button {
  min-height: 34px;
  font-size: 9.5px;
}

.dashboard-switcher button.active,
.dashboard-mode button.active,
.history-filter button.active,
.settings-tabs button.active,
.registry-visual-tabs button.active,
.analysis-period-switcher button.active,
.debt-filter-bar button.active {
  box-shadow: 0 5px 14px #0004, inset 0 0 0 1px #ffffff52;
}

.dashboard-kpis .simple-kpi {
  border-color: color-mix(in srgb, var(--glow, var(--mova-accent)) 24%, var(--mova-border));
}

.simple-kpi p,
.source-breakdown small,
.simple-section-head p { color: var(--mova-text-muted); }

.movement-filter-shell,
.calendar-filter-toolbar {
  padding: 15px;
  border-color: var(--mova-border);
}

.movement-primary-filters label > span,
.movement-extra-filters label > span,
.movement-date-range label > span,
.calendar-filter-toolbar label > span,
.quick-register-form label > span,
.registry-ai-copy small,
.registry-ai-drop > span,
.registry-ai-description > span,
.mova-form-grid label,
.currency-settings > label > span {
  color: #89929a;
  font-size: 8px;
  line-height: 1.2;
}

.movement-primary-filters select,
.movement-extra-filters select,
.movement-extra-filters input,
.movement-date-range input,
.calendar-filter-toolbar select,
.quick-register-form :is(input,select),
.mova-form-grid :is(input,select) {
  height: 40px;
  border-color: #343a41;
  border-radius: 10px;
  background: #0e1216;
  color: #e6e9eb;
  font-size: 10px;
}

.movement-search {
  height: 40px;
  border-color: #343a41;
  border-radius: 10px;
}

.movement-search input { font-size: 10px; }
.movement-search small { color: #858e96; font-size: 8px; }

.quick-register-form { gap: 14px; padding: 20px; }
.quick-register-head { min-height: 74px; padding: 16px 20px; }
.quick-register-head h2 { font-size: 15px; }
.quick-register-head p,
.registry-ai-copy p { color: #858e96; font-size: 8.5px; line-height: 1.45; }
.registry-ai-copy h2 { font-size: 14px; }
.registry-save,
.registry-ai-action { height: 40px; border-radius: 10px; }

.movement-summary-strip span,
.debt-summary-grid span,
.analysis-kpis span,
.savings-summary-grid span {
  color: #89929a;
  font-size: 8px;
  line-height: 1.3;
}

.movement-summary-strip b,
.analysis-kpis b { font-size: 17px; }
.debt-summary-grid b { font-size: 16px; }

.movement-ledger-head {
  color: #89929a;
  font-size: 8px;
}

.movement-ledger-row { min-height: 64px; }
.movement-ledger-row time { color: #939ba2; font-size: 8.5px; }
.movement-ledger-row > span b { font-size: 10px; }
.movement-ledger-row > span small { color: #7f8890; font-size: 8px; }
.movement-ledger-row > strong { font-size: 11px; }
.movement-ledger-row > strong small { font-size: 8px; }

.registry-type-summary > div:nth-child(2) small,
.registry-type-detail-head > div:first-child small { font-size: 8px; }
.registry-type-summary > div:nth-child(2) b,
.registry-type-detail-head > div:first-child b,
.registry-type-categories span { font-size: 8px; }
.registry-type-compare-values small,
.registry-compare-kpi em { font-size: 7.5px; }
.registry-ledger-mode { font-size: 7px; }
.registry-type-ledger-row > div:nth-child(2) b { font-size: 10px; }
.registry-type-ledger-row > div:nth-child(2) small,
.registry-type-ledger-row > span:nth-child(3),
.registry-type-ledger-row > span:nth-child(4) { color: #808991; font-size: 8px; }

.debt-account-card {
  min-height: 430px;
  padding: 20px;
}

.debt-card-head > div > span,
.debt-period-box span,
.debt-account-card dt,
.debt-period-status { font-size: 8px; }
.debt-card-head h2 { font-size: 16px; }
.debt-main-amount strong { font-size: 24px; }
.debt-main-amount span,
.debt-progress-copy,
.debt-period-box small { color: #818a92; font-size: 8.5px; }
.debt-account-card dd { font-size: 9px; }

.saving-goal-head small { font-size: 8px; }
.saving-goal-head h2 { font-size: 15px; }
.saving-goal-value strong { font-size: 23px; }
.saving-goal-facts,
.saving-goal-card > p,
.saving-projection { color: #818a92; font-size: 8.5px; }

.accounts-current-summary strong { font-size: 32px; }
.account-identity h2 { font-size: 17px; }
.account-identity span,
.live-account .muted { color: #848d95; font-size: 9px; }
.live-account .account-balance { font-size: 26px; }
.account-native { font-size: 11px; }
.live-account .ownership span { color: #818a92; font-size: 8px; }
.live-account .ownership b { font-size: 9px; }

.smart-calendar .calendar-head div { color: #818a92; font-size: 8px; }
.smart-calendar .day { color: #90989f; }
.smart-calendar .event { padding: 7px; }
.smart-calendar .event b { font-size: 8.5px; }
.smart-calendar .event small,
.smart-calendar .event em { font-size: 7.5px; }
.calendar-legend,
.calendar-rule-note { color: #818a92; font-size: 8.5px; }

.analysis-card-head p,
.analysis-card-head > div:last-child,
.analysis-bars > div > b,
.analysis-line-list span { color: #818a92; font-size: 8.5px; }
.analysis-indicators span { color: #89929a; font-size: 9px; }
.analysis-indicators b,
.analysis-line-list strong { font-size: 10px; }

.element-quick-actions span,
.catalog-card-head small,
.configuration-deep-view .company-theme-copy > small,
.settings-account-card small,
.currency-settings > div > small,
.fx-example > small { font-size: 8px; }
.element-quick-actions b { font-size: 12px; }
.element-quick-actions small,
.catalog-card-head p,
.settings-account-card p,
.currency-settings p,
.fx-example p { color: #818a92; font-size: 8.5px; line-height: 1.5; }
.catalog-tags span,
.configuration-deep-view .business-core-meta span,
.configuration-deep-view .theme-meta span { font-size: 8px; }
.configuration-deep-view .theme-meta b { font-size: 7.5px; }
.settings-account-card h2 { font-size: 14px; }

.history-kpi small,
.history-table-head,
.history-detail-head small,
.history-detail-side > div > small { color: #858e96; font-size: 8px; }
.history-month-name small { color: #7f8890; }
.history-detail-card { border-color: var(--mova-border); }

/* Historial: búsqueda, exportación y desglose mensual sobre el mismo ledger */
.fv-history-list-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #292e34;
}

.fv-history-list-tools .history-search {
  flex: 1 1 360px;
  min-width: 220px;
}

.fv-history-export {
  flex: 0 0 auto;
  height: 38px;
  white-space: nowrap;
}

.fv-history-export:disabled {
  opacity: .38;
  cursor: not-allowed;
}

.fv-history-month .history-toggle {
  justify-self: end;
}

.fv-history-preview {
  background: linear-gradient(180deg, #101419, #0d1115);
}

.fv-history-detail-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid #292e34;
}

.fv-history-detail-heading small,
.fv-history-detail-heading b {
  display: block;
}

.fv-history-detail-heading small {
  margin-bottom: 5px;
  color: #858e96;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .13em;
}

.fv-history-detail-heading b {
  color: #e4e7e9;
  font-size: 11px;
}

.fv-history-detail-heading > span {
  color: #727c84;
  font-size: 8px;
}

.fv-history-ledger {
  max-height: 410px;
  overflow-y: auto;
  padding-right: 5px;
  scrollbar-color: #4b5158 transparent;
  scrollbar-width: thin;
}

.fv-history-preview .history-ledger-row {
  grid-template-columns: 30px minmax(0, 1fr) 110px;
}

.fv-history-preview .history-ledger-row > div small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.fv-history-preview .history-ledger-row > strong.positive { color: #65e4ab; }
.fv-history-preview .history-ledger-row > strong.negative { color: #ff827d; }
.fv-history-preview .history-ledger-row > strong.neutral { color: #69d9ee; }

@media (max-width: 760px) {
  .fv-history-list-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .fv-history-list-tools .history-search {
    flex-basis: auto;
    width: 100%;
  }

  .fv-history-export { width: 100%; }
  .fv-history-detail-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .fv-history-preview .history-ledger-row { grid-template-columns: 28px minmax(0, 1fr) 82px; }
}

.movement-empty,
.registry-type-empty,
.range-empty {
  color: #818a92;
}

.movement-empty b,
.range-empty b { color: #e4e7e9; }

.modal {
  border-color: var(--mova-border-strong);
  background: linear-gradient(155deg, #171c21, #12161b);
}

.modal-head h2 { font-size: 20px; }
.modal-head p { color: var(--mova-text-secondary); line-height: 1.5; }
.toast { box-shadow: 0 14px 38px #0007; }

@media (max-width: 1180px) {
  .page { padding-inline: 30px; }
}

@media (max-width: 900px) {
  .general-dashboard-page .dashboard-main-grid { grid-template-columns: 1fr; }
  .dashboard-top .page-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 13px;
  }
  .dashboard-top .page-head > div:first-child { width: 100%; }
  .page-head h1 { font-size: 29px; }
  .head-actions { width: 100%; justify-content: flex-start; }
  .element-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .topbar.context-topbar-hidden,
  .topbar.registry-topbar-hidden {
    display: flex !important;
    height: 58px;
  }
  .page { padding: 22px 16px 48px; }
  .page-head,
  .upgraded-registry .registry-page-head,
  .registry-visualizer .registry-page-head { gap: 14px; margin-bottom: 20px; }
  .page-head h1,
  .dashboard-themed .identity-page-head h1,
  .general-dashboard-page .identity-page-head h1,
  .source-dashboard-page .identity-page-head h1,
  #page[data-dashboard-theme="virtuality"] .identity-page-head h1,
  #page[data-dashboard-theme="otros"] .identity-page-head h1,
  .upgraded-registry .registry-page-head h1,
  .registry-visualizer .registry-page-head h1 { font-size: 28px; }
  .page-head p { font-size: 11.5px; }
  .head-actions { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }
  .head-actions > * { flex: 0 0 auto; }
  .element-quick-actions { grid-template-columns: 1fr; }
  .smart-calendar { padding: 13px; }
  .smart-calendar .calendar-head,
  .smart-calendar .calendar-grid { min-width: 640px; }
  .movement-ledger-row { min-height: 60px; }
}

/* Planning templates and annual registry analysis */
.registry-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.registry-duplicate-button {
  min-height: 47px;
  padding-inline: 16px;
  border-color: #4e3e60;
  color: #d5c2ed;
  background: linear-gradient(145deg, #1c1722, #15171c);
}

.planning-repeat-banner {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 15px;
  margin: 0 0 15px;
  padding: 16px 18px;
  border-color: #60477b;
  background: radial-gradient(circle at 10% 50%, #6e479128, transparent 33%), linear-gradient(135deg, #18131f, #12171b 72%);
}
.planning-repeat-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid #674d82;
  border-radius: 12px;
  background: #2b2037;
  color: #d9baf6;
  font-size: 18px;
}
.planning-repeat-banner small { color: #ae88d1; font-size: 7.5px; font-weight: 700; letter-spacing: .15em; }
.planning-repeat-banner h2 { margin: 4px 0 3px; font: 600 14px Manrope; }
.planning-repeat-banner p { margin: 0; color: #818a91; font-size: 9px; }
.planning-repeat-banner button {
  min-height: 40px;
  padding: 0 15px;
  border: 1px solid #9470b9;
  border-radius: 10px;
  background: #ece7f1;
  color: #17121c;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}
.planning-repeat-banner button:hover { background: white; transform: translateY(-1px); }

.registry-entry-repeat {
  grid-column: 1 / -1;
  border: 1px solid #493b58;
  border-radius: 13px;
  overflow: hidden;
  background: linear-gradient(135deg, #17131c, #11161a 72%);
}
.registry-entry-repeat.editing-disabled { display: none; }
.registry-entry-repeat-toggle {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 38px 1fr auto 20px;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border: 0;
  background: transparent;
  color: #e4e7e8;
  text-align: left;
  cursor: pointer;
}
.registry-entry-repeat-toggle:hover { background: #ffffff04; }
.repeat-entry-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid #634c79;
  border-radius: 10px;
  background: #2b2036;
  color: #d2b2ec;
  font-size: 16px;
}
.registry-entry-repeat-toggle > div { display: grid; gap: 3px; }
.registry-entry-repeat-toggle b { font: 600 11px Manrope; }
.registry-entry-repeat-toggle small { color: #7d868d; font-size: 8.5px; }
.registry-entry-repeat-toggle em { padding: 6px 9px; border-radius: 8px; background: #251d2e; color: #c5a8dd; font-size: 8px; font-style: normal; }
.registry-entry-repeat-toggle i { color: #80708d; font-size: 9px; font-style: normal; transition: transform .18s ease; }
.registry-entry-repeat.open .registry-entry-repeat-toggle i { transform: rotate(180deg); }
.registry-entry-repeat-panel { display: none; padding: 15px; border-top: 1px solid #302936; background: #101419; }
.registry-entry-repeat.open .registry-entry-repeat-panel { display: block; }
.repeat-entry-panel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; }
.repeat-entry-panel-head > div:first-child { display: grid; gap: 4px; }
.repeat-entry-panel-head small { color: #9776b5; font-size: 7px; font-weight: 700; letter-spacing: .13em; }
.repeat-entry-panel-head b { font: 600 11px Manrope; }
.repeat-entry-panel-head > div:last-child { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.repeat-entry-panel-head button {
  padding: 6px 8px;
  border: 1px solid #343a40;
  border-radius: 7px;
  background: #171c21;
  color: #8f989e;
  font-size: 7.5px;
  cursor: pointer;
}
.repeat-entry-panel-head button:hover { border-color: #6b527f; color: #d8c4e8; }
.repeat-entry-months { display: grid; grid-template-columns: repeat(12, minmax(40px, 1fr)); gap: 6px; margin-top: 13px; }
.repeat-entry-months label { position: relative; min-width: 0; cursor: pointer; }
.repeat-entry-months input {
  position: absolute !important;
  inset: 0 !important;
  z-index: 2;
  width: 100% !important;
  height: 100% !important;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0;
  cursor: pointer;
}
.repeat-entry-months span {
  display: grid;
  place-items: center;
  gap: 2px;
  min-height: 44px;
  border: 1px solid #30363c;
  border-radius: 8px;
  background: #151a1f;
  transition: .16s ease;
}
.repeat-entry-months b { color: #959da2; font: 600 8px Manrope; text-transform: uppercase; }
.repeat-entry-months small { color: #626b71; font-size: 6.5px; }
.repeat-entry-months input:checked + span { border-color: #8b68a9; background: #30233c; box-shadow: inset 0 0 0 1px #8b68a944; }
.repeat-entry-months input:checked + span b { color: #f0e5f8; }
.repeat-entry-months input:checked + span small { color: #c0a6d5; }
.registry-entry-repeat-panel > p { margin: 11px 1px 0; color: #707980; font-size: 8px; line-height: 1.5; }

/* `display` rules on cards and ledger rows must never override native visibility. */
[hidden] { display: none !important; }

#modalContent:has([data-save-plan-duplicate]) { width: min(720px, calc(100vw - 36px)); }
.duplicate-eyebrow,
.annual-section-head small,
.annual-controls small {
  color: #a988ca;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .15em;
}
.duplicate-source-summary {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 18px 0;
  padding: 13px 15px;
  border: 1px solid #34303b;
  border-radius: 12px;
  background: #111419;
  color: #899198;
  font-size: 10px;
}
.duplicate-source-summary b { color: var(--green); font-size: 15px; margin-right: 4px; }
.duplicate-year-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
}
.duplicate-year-row > label { display: grid; gap: 7px; color: #7f8990; font-size: 8px; letter-spacing: .1em; }
.duplicate-year-row select {
  width: 140px;
  height: 40px;
  padding: 0 11px;
  border: 1px solid #343a40;
  border-radius: 9px;
  background: #11161b;
  color: #e4e8e7;
}
.duplicate-year-row > div { display: flex; gap: 7px; }
.duplicate-month-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(38px, 1fr));
  gap: 6px;
  margin: 12px 0 20px;
}
.duplicate-month-grid label { cursor: pointer; }
.duplicate-month-grid input { position: absolute; opacity: 0; pointer-events: none; }
.duplicate-month-grid span {
  display: grid;
  place-items: center;
  height: 38px;
  border: 1px solid #30363c;
  border-radius: 9px;
  background: #11161b;
  color: #858e95;
  font-size: 9px;
  transition: .18s ease;
}
.duplicate-month-grid input:checked + span { border-color: #8e69b8; background: #2b2037; color: #eadcf7; box-shadow: inset 0 0 0 1px #8e69b855; }
.duplicate-month-grid input:disabled + span { opacity: .28; cursor: not-allowed; }
.duplicate-type-options {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 13px;
  border: 1px solid #30363c;
  border-radius: 12px;
}
.duplicate-type-options legend { padding: 0 6px; color: #7f8990; font-size: 8px; letter-spacing: .12em; }
.duplicate-type-options label { display: flex; align-items: center; gap: 6px; padding: 7px 9px; border-radius: 8px; background: #171c21; color: #aab1b5; font-size: 9px; }
.duplicate-type-options input,
.duplicate-opening-option input { accent-color: var(--purple); }
.duplicate-opening-option { display: flex; align-items: flex-start; gap: 10px; margin: 15px 2px; color: #c8ced0; font-size: 10px; }
.duplicate-opening-option span { display: grid; gap: 3px; }
.duplicate-opening-option small { color: #798289; font-size: 8.5px; line-height: 1.45; }
.duplicate-rule-note { display: grid; gap: 4px; padding: 11px 13px; border-left: 2px solid #725594; background: #17131c; color: #818990; font-size: 9px; line-height: 1.5; }
.duplicate-rule-note b { color: #cbb4e3; }

.annual-visualizer { max-width: 1260px; margin-inline: auto; }
.annual-year-control {
  display: flex;
  align-items: center;
  min-width: 185px;
  height: 49px;
  border: 1px solid #343940;
  border-radius: 13px;
  background: #11151a;
}
.annual-year-control button { width: 45px; height: 100%; border: 0; background: transparent; color: #929ba1; cursor: pointer; font-size: 18px; }
.annual-year-control button:hover { color: white; }
.annual-year-control span { display: grid; flex: 1; gap: 2px; text-align: center; }
.annual-year-control small { color: #6e777e; font-size: 7px; letter-spacing: .13em; }
.annual-year-control b { font: 600 13px Manrope; }
.annual-controls {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin: 15px 0;
  padding: 16px 18px;
}
.annual-controls > div { display: grid; gap: 9px; }
.fv-calendar-month-nav {
  display: grid !important;
  grid-template-columns: 36px minmax(150px, 1fr) 36px;
  align-items: center;
  gap: 12px !important;
}
.fv-calendar-month-nav > div { display: grid; gap: 5px; }
.fv-calendar-month-nav > button {
  width: 36px;
  height: 36px;
  border: 1px solid #343a40;
  border-radius: 10px;
  background: #10151a;
  color: #aeb6bc;
  font-size: 18px;
  cursor: pointer;
}
.fv-calendar-month-nav > button:hover { border-color: #765c8d; background: #181d22; color: #fff; }
.annual-mode-tabs { display: flex; gap: 4px; }
.annual-mode-tabs button {
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 8px 13px;
  background: #171c21;
  color: #899299;
  font-size: 10px;
  cursor: pointer;
}
.annual-mode-tabs button.active { border-color: #6c587e; background: #2a2331; color: #eee8f2; }
.annual-controls > label { display: grid; gap: 7px; min-width: 190px; }
.annual-controls > label span { color: #747e85; font-size: 8px; letter-spacing: .1em; }
.annual-controls select { height: 37px; border: 1px solid #343a40; border-radius: 9px; padding: 0 11px; background: #10151a; color: #d9dddf; }
.annual-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 15px; }
.annual-kpi { min-height: 118px; display: flex; flex-direction: column; justify-content: space-between; padding: 18px; }
.annual-kpi small { color: #7d868d; font-size: 8px; letter-spacing: .1em; }
.annual-kpi strong { font: 650 23px Manrope; }
.annual-kpi > span { color: #7d868d; font-size: 8.5px; }
.annual-kpi > span b { margin-left: 3px; }
.annual-kpi.income { border-color: #295b49; }
.annual-kpi.income > strong { color: var(--green); }
.annual-kpi.expense { border-color: #603b3b; }
.annual-kpi.expense > strong { color: #f0928b; }
.annual-kpi.saving { border-color: #4a3a5d; }
.annual-kpi.saving > strong { color: #c19ae9; }
.annual-kpi.remaining { border-color: #36545a; }
.annual-kpi.remaining > strong { color: var(--cyan); }
.annual-trend,
.annual-table { padding: 22px; margin-bottom: 15px; }
.annual-section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 15px; }
.annual-section-head h2 { margin: 5px 0 0; font: 600 17px Manrope; }
.annual-section-head > span { color: #737c83; font-size: 9px; }
.annual-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(42px, 1fr));
  gap: 8px;
  height: 205px;
  margin-top: 23px;
  padding: 8px 7px 0;
  border-bottom: 1px solid #30353b;
  background: repeating-linear-gradient(to top, transparent 0, transparent 47px, #20262b 48px);
}
.annual-chart-month { display: grid; grid-template-rows: 1fr 16px 18px; gap: 2px; min-width: 0; border: 0; background: transparent; color: #8d969c; cursor: pointer; }
.annual-chart-month:hover { background: #ffffff05; }
.annual-chart-bars { display: flex; align-items: flex-end; justify-content: center; gap: 3px; min-height: 0; }
.annual-chart-bars i { display: block; width: 9px; min-height: 3px; border-radius: 4px 4px 1px 1px; opacity: .88; }
.annual-chart-bars .income { background: var(--green); }
.annual-chart-bars .outgoing { background: var(--coral); }
.annual-chart-bars .planned { background: var(--purple); opacity: .6; }
.annual-chart-month b { font: 600 8px Manrope; text-transform: uppercase; }
.annual-chart-month small { font-size: 7.5px; white-space: nowrap; }
.annual-chart-month.empty .annual-chart-bars { opacity: .25; }
.annual-chart-key { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 14px; margin-top: 32px; color: #7c858b; font-size: 8px; }
.annual-chart-key span { display: flex; align-items: center; gap: 5px; }
.annual-chart-key i { width: 7px; height: 7px; border-radius: 2px; }
.annual-chart-key i.income { background: var(--green); }
.annual-chart-key i.outgoing { background: var(--coral); }
.annual-chart-key i.planned { background: var(--purple); }
.annual-plan-legend { color: var(--purple) !important; }
.annual-table-scroll { margin-top: 18px; min-width: 780px; }
.annual-table { overflow-x: auto; }
.annual-table-head,
.annual-table-row { display: grid; grid-template-columns: 1.25fr repeat(5, 1fr) 24px; align-items: center; gap: 10px; }
.annual-table-head { padding: 0 13px 9px; color: #6f787f; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.annual-table-row { width: 100%; min-height: 60px; padding: 9px 13px; border: 0; border-top: 1px solid #272d32; background: transparent; color: #dde1e2; text-align: left; cursor: pointer; }
.annual-table-row:hover { border-radius: 9px; background: #171c21; }
.annual-table-row > span { display: grid; gap: 3px; }
.annual-table-row > span:not(:first-child) { text-align: right; }
.annual-table-row b,
.annual-table-row strong { font: 600 10px Manrope; }
.annual-table-row small { color: #727b82; font-size: 7.5px; }
.annual-table-row i { color: #626c72; font-style: normal; text-align: right; }

.annual-month-board { overflow: visible; }
.annual-month-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}
.annual-month-card {
  min-width: 0;
  min-height: 210px;
  padding: 15px;
  border: 1px solid #30363d;
  border-radius: 14px;
  background: linear-gradient(145deg, #151a1f, #101419);
  color: #e4e8e8;
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.annual-month-card:hover {
  transform: translateY(-3px);
  border-color: #665179;
  box-shadow: 0 16px 32px #0004;
}
.annual-month-card.empty { opacity: .58; }
.annual-month-card.empty:hover { opacity: .85; }
.annual-month-card.has-data.positive-month { border-color: #315448; }
.annual-month-card.has-data.negative-month { border-color: #593737; }
.annual-month-card header {
  display: grid;
  grid-template-columns: 31px 1fr 24px;
  align-items: center;
  gap: 9px;
  padding-bottom: 12px;
  border-bottom: 1px solid #292f35;
}
.annual-month-card header > span {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #292134;
  color: #c6a3e4;
  font: 700 8px Manrope;
}
.annual-month-card header h3 { margin: 0 0 2px; font: 600 13px Manrope; }
.annual-month-card header small { display: block; color: #747e85; font-size: 7.5px; }
.annual-month-card header i {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border: 1px solid #343b42;
  border-radius: 7px;
  color: #879097;
  font-size: 9px;
  font-style: normal;
}
.annual-month-net {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2px 10px;
  padding: 13px 2px 11px;
}
.annual-month-net > span { color: #747e85; font-size: 7px; letter-spacing: .1em; }
.annual-month-net > strong { grid-row: 1 / span 2; grid-column: 2; font: 700 17px Manrope; }
.annual-month-net > small { font-size: 7px; }
.annual-month-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}
.annual-month-metrics > span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid #292f35;
  border-radius: 9px;
  background: #11161a;
}
.annual-month-metrics small { color: #727c83; font-size: 7px; }
.annual-month-metrics strong { overflow: hidden; font: 600 10px Manrope; text-overflow: ellipsis; }
.annual-month-metrics > span > small:last-child { color: #8c7c98; }
.annual-month-metrics .income strong { color: #7be1ae; }
.annual-month-metrics .expense strong { color: #ed928b; }
.annual-month-metrics .debt strong { color: #e3c56b; }
.annual-month-metrics .saving strong { color: #bd98df; }

@media (max-width: 980px) {
  .annual-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .annual-month-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .annual-chart { min-width: 760px; }
  .annual-trend { overflow-x: auto; }
  .annual-chart-key { min-width: 760px; }
  .repeat-entry-months { grid-template-columns: repeat(6, minmax(48px, 1fr)); }
}

@media (max-width: 760px) {
  .registry-head-actions,
  .annual-controls,
  .duplicate-year-row { align-items: stretch; flex-direction: column; }
  .registry-head-actions { width: 100%; }
  .registry-duplicate-button { width: 100%; }
  .duplicate-month-grid { grid-template-columns: repeat(6, 1fr); }
  .annual-kpi-grid { grid-template-columns: 1fr; }
  .annual-month-grid { grid-template-columns: 1fr; }
  .annual-controls > label { min-width: 0; }
  .fv-calendar-month-nav { grid-template-columns: 36px 1fr 36px; }
  .planning-repeat-banner { grid-template-columns: 42px 1fr; }
  .planning-repeat-banner button { grid-column: 1 / -1; width: 100%; }
  .registry-entry-repeat-toggle { grid-template-columns: 38px 1fr 18px; }
  .registry-entry-repeat-toggle em { display: none; }
  .repeat-entry-panel-head { align-items: flex-start; flex-direction: column; }
  .repeat-entry-months { grid-template-columns: repeat(3, 1fr); }
}

/* Registro: el resumen de impacto y la repetición cierran siempre la fila. */
.functional-registry .finance-register-grid > .registry-impact-preview,
.functional-registry .finance-register-grid > .registry-entry-repeat {
  grid-column: 1 / span 4 !important;
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 1180px) {
  .functional-registry .finance-register-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .functional-registry.planning-registry .registry-notes,
  .functional-registry.planning-registry .registry-save {
    grid-column: auto;
  }

  .functional-registry .finance-register-grid > .registry-impact-preview,
  .functional-registry .finance-register-grid > .registry-entry-repeat {
    grid-column: 1 / span 2 !important;
  }
}

@media (max-width: 760px) {
  .functional-registry .finance-register-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .functional-registry .finance-register-grid > .registry-impact-preview,
  .functional-registry .finance-register-grid > .registry-entry-repeat {
    grid-column: 1 !important;
  }
}

/* Helion: gráfico y leyenda centrados sin desbordar la tarjeta. */
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-wrap {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 19px;
  padding: 12px 4px;
  overflow: hidden;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut {
  width: 154px;
  height: 154px;
  flex: 0 0 154px;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 29px 32px;
  gap: 0 8px;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > span,
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > b {
  min-width: 0;
  min-height: 0;
  padding: 0 8px;
  overflow: hidden;
  border-color: #302936;
  background: #18151d;
  white-space: nowrap;
  text-overflow: ellipsis;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > span {
  justify-content: flex-start;
  border: 1px solid #302936;
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
  color: #aaa0ae;
  font-size: 8px;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > b {
  justify-content: flex-start;
  border: 1px solid #302936;
  border-top: 0;
  border-radius: 0 0 9px 9px;
  color: #f0e9f5;
  font: 600 11px Manrope;
}
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(1),
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(2) { grid-column: 1; }
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(3),
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(4) { grid-column: 2; }
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(5),
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(6) { grid-column: 3; }
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(odd) { grid-row: 1; }
#page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > :nth-child(even) { grid-row: 2; }

@media (max-width: 760px) {
  #page[data-dashboard-theme="helion"] .helion-income-clean .donut-wrap { height: auto; overflow: visible; }
  #page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend { grid-template-columns: 1fr; grid-template-rows: repeat(6, auto); gap: 0; }
  #page[data-dashboard-theme="helion"] .helion-income-clean .donut-legend > * { grid-column: 1 !important; grid-row: auto !important; }
}

/* Dashboards funcionales por empresa: navegación persistente y cuadrícula estable. */
.fv-business-switcher {
  display: flex;
  justify-content: flex-start;
  margin: -10px 0 18px;
}
.fv-business-switcher .dashboard-switcher { max-width: 100%; overflow-x: auto; }
.source-dashboard-page .fv-business-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
  margin: 0 0 18px;
}
.source-dashboard-page .fv-business-kpis .simple-kpi,
.source-dashboard-page .fv-business-kpis .simple-kpi:not(.available-highlight) {
  width: auto;
  height: auto;
  min-height: 132px !important;
  padding: 18px;
  transform: none !important;
}
.source-dashboard-page .fv-business-kpis .simple-value { margin: 16px 0 8px; }
.source-dashboard-page .fv-business-detail {
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .75fr);
  align-items: stretch;
  gap: 16px;
  margin-top: 26px;
}
.source-dashboard-page .fv-business-detail > .card { min-width: 0; min-height: 330px; }

/* Virtuality conserva su lectura propia sin separar los datos del ledger. */
.fv-virtuality-dashboard .fv-virtuality-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
  margin: 0 0 16px;
}
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi,
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:not(.available-highlight) {
  width: auto;
  height: auto;
  min-height: 142px !important;
  padding: 19px;
  transform: none !important;
}
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-value { margin: 17px 0 8px; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(1) { border-color: #315b4d; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(1) .simple-value { color: #8fe2ba; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(2) { border-color: color-mix(in srgb, var(--dashboard-accent) 45%, #30343a); }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(2) .simple-value { color: var(--dashboard-accent); }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(3) { border-color: #603b3b; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(3) .simple-value { color: #efa19b; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(4) { border-color: #5a5132; }
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi:nth-child(4) .simple-value { color: #e8cf7b; }
.fv-virtuality-total {
  min-height: 112px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin: 0 0 18px;
  padding: 22px 26px;
  border-color: color-mix(in srgb, var(--dashboard-accent) 38%, #30343a);
  background: radial-gradient(circle at 12% 50%, color-mix(in srgb, var(--dashboard-accent) 12%, transparent), transparent 38%), linear-gradient(135deg, #15191d, #111519);
}
.fv-virtuality-total small { color: var(--dashboard-accent); font-size: 8px; font-weight: 700; letter-spacing: .14em; }
.fv-virtuality-total p { max-width: 560px; margin: 8px 0 0; color: #7f8b92; font-size: 10px; }
.fv-virtuality-total strong { flex: 0 0 auto; font: 700 30px Manrope, sans-serif; }
.fv-virtuality-detail { margin-top: 0 !important; }
.virtuality-head-actions {
  display: grid;
  grid-template-columns: auto;
  justify-items: end;
  align-items: center;
  gap: 7px 6px;
}
.virtuality-head-actions > small {
  grid-column: 1 / -1;
  color: #6f7b83;
  font-size: 8px;
}
@media(max-width:760px){
  .virtuality-head-actions { grid-template-columns: 1fr; justify-items: stretch; }
  .virtuality-head-actions > small { grid-column: 1; text-align: left; }
}

/* Otros ingresos es deliberadamente una vista de entradas, no un balance empresarial. */
.fv-other-summary { min-height: 138px; margin-bottom: 24px; }
.fv-other-count {
  min-width: 150px;
  display: grid;
  justify-items: end;
  gap: 6px;
}
.fv-other-count span { color: var(--dashboard-accent); font: 700 32px Manrope, sans-serif; }
.fv-other-count small { color: #7f7884; font-size: 8px; font-weight: 700; letter-spacing: .12em; }
.fv-other-detail { margin-top: 0; }
.fv-other-detail .other-income-list { min-height: 108px; }
.fv-other-empty { min-height: 88px; }

/* Ahorros: la ubicación física se presenta como bloque legible, incluso vacía. */
.savings-location-card {
  margin: 0 0 15px;
  padding: 0;
  overflow: hidden;
}
.savings-location-card > header {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 14px 18px;
  border-bottom: 1px solid #2b3137;
  background: linear-gradient(135deg, #151b20, #11161a);
}
.savings-location-card > header > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #355866;
  border-radius: 11px;
  background: #14262d;
  color: var(--finance-cyan);
}
.savings-location-card header small { color: #70808a; font-size: 7px; font-weight: 700; letter-spacing: .14em; }
.savings-location-card header h2 { margin: 4px 0 0; font: 650 14px Manrope, sans-serif; }
.savings-location-card header strong { color: var(--finance-cyan); font: 650 20px Manrope, sans-serif; }
.savings-location-list { display: grid; gap: 8px; padding: 12px 18px 15px; }
.savings-location-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 43px;
  padding: 0 12px;
  border: 1px solid #293139;
  border-radius: 10px;
  background: #10151a;
}
.savings-location-row > span { display: flex; align-items: center; gap: 9px; }
.savings-location-row i { color: #67cce3; font-style: normal; }
.savings-location-row b { font-size: 9px; }
.savings-location-row strong { color: #dce4e7; font-size: 10px; }
.savings-location-empty {
  min-height: 62px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px dashed #303942;
  border-radius: 11px;
  color: #78848c;
}
.savings-location-empty > span { color: #66747c; font-size: 18px; }
.savings-location-empty b { display: block; margin-bottom: 4px; color: #c8d0d4; font-size: 9px; }
.savings-location-empty small { color: #6f7a82; font-size: 8px; }

@media (max-width: 900px) {
  .source-dashboard-page .fv-business-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-dashboard-page .fv-business-detail { grid-template-columns: 1fr; }
  .fv-virtuality-dashboard .fv-virtuality-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .source-dashboard-page .fv-business-kpis { grid-template-columns: 1fr; }
  .fv-virtuality-dashboard .fv-virtuality-kpis { grid-template-columns: 1fr; }
  .fv-virtuality-total,
  .fv-other-summary { align-items: flex-start; flex-direction: column; gap: 18px; }
  .fv-other-count { min-width: 0; justify-items: start; }
  .savings-location-card > header { grid-template-columns: 38px 1fr; }
  .savings-location-card header strong { grid-column: 2; font-size: 17px; }
}

/* Cuenta real y estado de sincronización. */
.login-card .auth-toggle {
  width: 100%;
  margin-top: 10px;
  padding: 8px;
  text-align: center;
}
.login-button.is-loading { opacity: .65; cursor: progress; }
.demo-note[data-state="saved"] { color: #68dca8; }
.demo-note[data-state="saving"],
.demo-note[data-state="loading"] { color: #73d8e9; }
.demo-note[data-state="error"],
.demo-note[data-state="setup"] { color: #ee9a94; }
.login-card .demo-note[data-cloud-status] {
  min-height: 34px;
  display: grid;
  place-items: center;
  margin-top: 13px;
  padding: 8px 11px;
  border: 1px solid #2d3036;
  border-radius: 9px;
  background: #11151a;
  line-height: 1.35;
}
.login-card .demo-note[data-state="saved"],
.login-card .demo-note[data-state="resolved"] { border-color: #285a47; background: #10231c; }
.login-card .demo-note[data-state="pending"] { border-color: #665a2e; background: #242012; }
.login-card .demo-note[data-state="offline"] { border-color: #3e4c56; background: #151c21; }
.login-card .demo-note[data-state="temporary-error"] { border-color: #6a4d31; background: #261b12; }
.login-card .demo-note[data-state="error"],
.login-card .demo-note[data-state="pending-error"],
.login-card .demo-note[data-state="conflict"],
.login-card .demo-note[data-state="setup"] { border-color: #613b3a; background: #251516; }
.cloud-sync-status {
  display: block;
  margin: 0 9px 9px;
  color: #73808a;
  font-size: 8px;
  text-align: center;
}
.cloud-sync-status[data-state="saved"],
.cloud-sync-status[data-state="resolved"] { color: #62c997; }
.cloud-sync-status[data-state="pending"] { color: #dfc46b; }
.cloud-sync-status[data-state="offline"] { color: #91a3ae; }
.cloud-sync-status[data-state="temporary-error"] { color: #e6a36f; }
.cloud-sync-status[data-state="saving"],
.cloud-sync-status[data-state="loading"] { color: #67cadc; }
.cloud-sync-status[data-state="error"],
.cloud-sync-status[data-state="pending-error"],
.cloud-sync-status[data-state="conflict"],
.cloud-sync-status[data-state="setup"] { color: #e68f89; }

.sidebar.collapsed .cloud-sync-status {
  position: relative;
  width: 42px;
  height: 28px;
  display: grid;
  place-items: center;
  margin: 0 auto 9px;
  overflow: hidden;
  border: 1px solid #303840;
  border-radius: 9px;
  background: linear-gradient(145deg, #171c20, #101418);
  font-size: 0;
  line-height: 0;
  white-space: nowrap;
}

.sidebar.collapsed .cloud-sync-status::before {
  content: '';
  width: 15px;
  height: 15px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.5 19a4.5 4.5 0 0 1-.6-8.96A6.25 6.25 0 0 1 18 11.7 3.65 3.65 0 0 1 17.8 19H6.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6.5 19a4.5 4.5 0 0 1-.6-8.96A6.25 6.25 0 0 1 18 11.7 3.65 3.65 0 0 1 17.8 19H6.5Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sidebar.collapsed .cloud-sync-status::after {
  content: '';
  position: absolute;
  right: 8px;
  bottom: 6px;
  width: 5px;
  height: 5px;
  border: 2px solid #111519;
  border-radius: 50%;
  background: currentColor;
  box-sizing: content-box;
}

.sidebar.collapsed .cloud-sync-status[data-state="saving"]::after,
.sidebar.collapsed .cloud-sync-status[data-state="loading"]::after { animation: mova-cloud-pulse 1.15s ease-in-out infinite; }

@keyframes mova-cloud-pulse {
  50% { opacity: .35; transform: scale(.72); }
}

/* Lectura financiera: cada salida conserva su categoría visible. */
.upgraded-registry .registry-kpi.debt,
.registry-visualizer .registry-kpi.debt {
  border-color: #66582f;
  color: #e3c56b;
  background: linear-gradient(145deg, #242014, #101417 70%);
}
.upgraded-registry .registry-kpi.debt strong,
.registry-visualizer .registry-kpi.debt strong { color: #e3c56b; }
.upgraded-registry .registry-kpi.saving,
.registry-visualizer .registry-kpi.saving {
  border-color: #4e3c62;
  color: #bd98df;
  background: linear-gradient(145deg, #211829, #101417 70%);
}
.upgraded-registry .registry-kpi.saving strong,
.registry-visualizer .registry-kpi.saving strong { color: #bd98df; }

.upgraded-registry .remainder-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.registry-visualizer > .unified-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.annual-kpi-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.annual-kpi.debt { border-color: #66582f; }
.annual-kpi.debt > strong { color: #e3c56b; }
.annual-chart-bars i { width: 7px; }
.annual-chart-bars .expense,
.annual-chart-key i.expense { background: var(--coral); }
.annual-chart-bars .debt,
.annual-chart-key i.debt { background: #e3c56b; }
.annual-chart-bars .saving,
.annual-chart-key i.saving { background: #bd98df; }

@media (max-width: 1180px) {
  .upgraded-registry .remainder-summary,
  .registry-visualizer > .unified-summary,
  .annual-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .upgraded-registry .remainder-summary,
  .registry-visualizer > .unified-summary,
  .annual-kpi-grid { grid-template-columns: 1fr; }
}

.settings-model-card .settings-model-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid #78427a;
  border-radius: 12px;
  background: linear-gradient(145deg, #3b1838, #1c1526);
  color: #ff64ce;
  font: 700 15px Manrope, sans-serif;
  box-shadow: 0 8px 24px #ff49c619;
}
.settings-model-card {
  min-height: 0;
  align-items: center;
  grid-template-columns: 42px minmax(180px, 1fr) minmax(105px, auto) auto;
  row-gap: 13px;
}
.settings-model-copy { min-width: 0; }
.settings-model-status { display: grid; gap: 5px; justify-items: end; }
.settings-model-status > b { color: #848d94; font-size: 8px; }
.settings-model-card .settings-card-actions { justify-content: flex-end; }

.fv-helion-models {
  display: grid;
  gap: 14px;
  margin: 20px 0;
}
.fv-helion-models > .simple-section-head { align-items: flex-end; }
.fv-helion-models > .simple-section-head h2 { margin: 0 0 5px; }
.fv-helion-models > .simple-section-head p { margin: 0; color: #79838b; font-size: 9px; }
.fv-helion-model-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fv-helion-model-card { min-width: 0; padding: 17px; border-color: #49324d; background: linear-gradient(145deg, #19131d, #11161a 70%); }
.fv-helion-model-card header { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.fv-helion-model-card header > span,
.fv-helion-model-empty > span {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #75406f;
  border-radius: 11px;
  background: #32182f;
  color: #ff63cd;
  font: 700 13px Manrope, sans-serif;
}
.fv-helion-model-card header small { color: #9f739f; font-size: 7px; letter-spacing: .12em; }
.fv-helion-model-card header h3 { margin: 3px 0; overflow: hidden; color: #f2eaf2; font: 650 13px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.fv-helion-model-card header p { margin: 0; color: #737e85; font-size: 7.5px; }
.fv-helion-model-card header > strong { font: 650 18px Manrope, sans-serif; }
.fv-helion-model-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }
.fv-helion-model-metrics > span { display: grid; gap: 4px; padding: 9px 10px; border: 1px solid #2b3035; border-radius: 9px; background: #11161a; }
.fv-helion-model-metrics small { color: #747e85; font-size: 7px; }
.fv-helion-model-metrics b { overflow: hidden; color: #dce1e4; font-size: 10px; text-overflow: ellipsis; }
.fv-helion-model-empty { display: flex; align-items: center; gap: 13px; min-height: 78px; padding: 15px 17px; border-style: dashed; }
.fv-helion-model-empty b { color: #dce1e4; font-size: 10px; }
.fv-helion-model-empty p { margin: 4px 0 0; color: #758087; font-size: 8px; }

@media (max-width: 1180px) {
  .fv-helion-model-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .fv-helion-model-grid { grid-template-columns: 1fr; }
  .fv-helion-models > .simple-section-head { align-items: flex-start; flex-direction: column; gap: 10px; }
}

/* Configurable Helion economics */
.settings-model-economics {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: repeat(5, minmax(86px, 1fr));
  gap: 7px;
  width: 100%;
  margin-top: 0;
}
.settings-model-economics > span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border: 1px solid #2c3238;
  border-radius: 8px;
  background: #11161a;
}
.settings-model-economics small { color: #89939b; font-size: 8px; letter-spacing: .08em; }
.settings-model-economics b { overflow: hidden; color: #e7d8ed; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 900px) {
  .settings-model-card { grid-template-columns: 42px minmax(150px, 1fr) auto; }
  .settings-model-card > .settings-model-status { display: grid; }
  .settings-model-card .settings-card-actions { grid-column: 2 / -1; justify-self: end; }
  .settings-model-economics { grid-column: 2 / -1; grid-template-columns: repeat(3, minmax(100px, 1fr)); }
}
@media (max-width: 760px) {
  .settings-model-card { grid-template-columns: 40px minmax(0, 1fr); }
  .settings-model-status { grid-column: 2; justify-items: start; }
  .settings-model-card .settings-card-actions { grid-column: 2; justify-self: start; }
  .settings-model-economics { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.upgraded-registry .registry-conversion-preview .registry-helion-rule-note {
  margin-top: 2px;
  padding-top: 6px;
  border-top: 1px solid #2d3339;
  color: #a98db6;
  line-height: 1.35;
}
.registry-automatic-badge {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 9px;
  border: 1px solid #5b3a64;
  border-radius: 7px;
  background: #28192d;
  color: #dca9e8;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: .04em;
}
.registry-type-ledger-row.automatic { background: linear-gradient(90deg, rgba(168,124,245,.045), transparent 38%); }

@media (max-width: 760px) {
  .settings-model-economics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Notificaciones financieras: retiros detectados en OnlyFans. */
.nav-item { position: relative; }
.nav-notification-count {
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  margin-left: auto;
  padding: 0 5px;
  border-radius: 999px;
  background: #ff5b72;
  color: #fff;
  font: 800 8px/1 Manrope, sans-serif;
  box-shadow: 0 0 16px rgba(255,91,114,.32);
}
.sidebar.collapsed .nav-notification-count {
  position: absolute;
  top: 4px;
  right: 5px;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  font-size: 6px;
}
.fv-notifications-view { display: grid; gap: 18px; }
.notification-page-head { display: grid; gap: 12px; }
.notification-page-head .page-head { margin-bottom: 0; }
.notification-sync-note {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border: 1px solid #30353a;
  border-radius: 11px;
  background: linear-gradient(90deg, rgba(255,73,198,.08), rgba(168,124,245,.035));
}
.notification-sync-note > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(255,73,198,.35);
  border-radius: 9px;
  color: #ff75d3;
}
.notification-sync-note div { display: grid; gap: 2px; }
.notification-sync-note b { color: #ece8ed; font-size: 10px; }
.notification-sync-note small { color: #7d858c; font-size: 8px; }
.notification-summary {
  display: grid;
  grid-template-columns: .7fr 1.15fr 1.15fr;
  gap: 12px;
}
.notification-summary article {
  display: grid;
  align-content: center;
  min-height: 105px;
  padding: 18px;
  border: 1px solid #30353a;
  border-radius: 13px;
  background: #15191d;
}
.notification-summary article.owner {
  border-color: rgba(255,73,198,.34);
  background: linear-gradient(145deg, rgba(255,73,198,.11), rgba(168,124,245,.045) 65%, #15191d);
}
.notification-summary small,
.notification-section-title small { color: #737d84; font-size: 7px; font-weight: 700; letter-spacing: .12em; }
.notification-summary b { margin: 7px 0 3px; color: #f1edf2; font: 650 22px Manrope, sans-serif; }
.notification-summary article:first-child b { color: #ff8cd9; font-size: 29px; }
.notification-summary article.owner b { color: #ff8cd9; }
.notification-summary span { color: #7f888f; font-size: 8px; }
.notification-section-title { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-top: 4px; }
.notification-section-title h2 { margin: 4px 0 0; color: #eee9ef; font: 650 18px Manrope, sans-serif; }
.notification-section-title p { margin: 0; color: #778087; font-size: 9px; }
.withdrawal-notification-list { display: grid; gap: 13px; }
.withdrawal-notification-card { padding: 20px; border-color: rgba(255,73,198,.28); background: linear-gradient(145deg, #1d151d, #15191d 58%); }
.withdrawal-notification-card > header { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 13px; }
.withdrawal-notification-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,73,198,.38);
  border-radius: 12px;
  background: rgba(255,73,198,.1);
  color: #ff82d8;
  font-size: 17px;
}
.withdrawal-notification-card header small { color: #ff82d8; font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.withdrawal-notification-card header h2 { margin: 3px 0; color: #f0ebf1; font: 650 16px Manrope, sans-serif; }
.withdrawal-notification-card header p { margin: 0; color: #778188; font-size: 8px; }
.notification-status {
  padding: 6px 9px;
  border: 1px solid rgba(233,201,103,.34);
  border-radius: 999px;
  background: rgba(233,201,103,.08);
  color: #e9c967;
  font-size: 7px;
  font-weight: 700;
}
.withdrawal-notification-money {
  display: grid;
  grid-template-columns: minmax(0,1fr) 28px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  margin: 18px 0 13px;
}
.withdrawal-notification-money > span { display: grid; gap: 5px; padding: 14px 15px; border: 1px solid #30353a; border-radius: 11px; background: #12161a; }
.withdrawal-notification-money > span.owner-share { border-color: rgba(94,229,162,.28); background: rgba(94,229,162,.045); }
.withdrawal-notification-money small { color: #747e85; font-size: 7px; letter-spacing: .1em; }
.withdrawal-notification-money b { color: #e8e4e9; font: 650 18px Manrope, sans-serif; }
.withdrawal-notification-money .owner-share b { color: #5ee5a2; }
.withdrawal-notification-money em { color: #7f8a91; font-size: 8px; font-style: normal; }
.withdrawal-notification-money > i { color: #667078; font-style: normal; text-align: center; }
.withdrawal-destination-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 11px; }
.withdrawal-destination-form label { display: grid; gap: 6px; }
.withdrawal-destination-form label > span { color: #838c93; font-size: 7px; font-weight: 700; letter-spacing: .1em; }
.withdrawal-destination-form select { width: 100%; min-height: 39px; border: 1px solid #373d42; border-radius: 9px; background: #111519; color: #e7e3e8; padding: 0 11px; }
.withdrawal-destination-form label small { color: #6f7980; font-size: 7px; }
.withdrawal-rule { margin: 13px 0 0; padding-top: 11px; border-top: 1px solid #282d31; color: #768087; font-size: 8px; }
.withdrawal-no-account { display: flex; align-items: center; gap: 10px; grid-column: 1/-1; padding: 12px; border: 1px dashed #3a4045; border-radius: 9px; }
.withdrawal-no-account span { color: #778188; font-size: 8px; }
.withdrawal-no-account button { margin-left: auto; }
.notification-empty { display: flex; align-items: center; gap: 14px; min-height: 92px; padding: 19px; }
.notification-empty > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(94,229,162,.09); color: #5ee5a2; }
.notification-empty h2 { margin: 0 0 4px; color: #e7e3e8; font-size: 13px; }
.notification-empty p { margin: 0; color: #778188; font-size: 8px; }
.notification-history { padding: 18px; }
.notification-history .simple-section-head > span { color: #7d878e; font-size: 8px; }
.notification-history-row { display: grid; grid-template-columns: 28px minmax(0,1.25fr) minmax(120px,.7fr) auto; align-items: center; gap: 11px; padding: 12px 2px; border-top: 1px solid #292e32; }
.notification-history-check { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; background: rgba(94,229,162,.09); color: #5ee5a2; }
.notification-history-row > div,
.notification-history-row > span { display: grid; gap: 3px; }
.notification-history-row b { color: #dfe2e4; font-size: 9px; }
.notification-history-row small { color: #717b82; font-size: 7px; }
.notification-history-row strong { color: #5ee5a2; font-size: 10px; }

@media (max-width: 900px) {
  .notification-summary { grid-template-columns: 1fr 1fr; }
  .notification-summary article.owner { grid-column: 1/-1; }
}
@media (max-width: 640px) {
  .notification-summary { grid-template-columns: 1fr; }
  .notification-summary article.owner { grid-column: auto; }
  .notification-section-title { align-items: flex-start; flex-direction: column; }
  .withdrawal-notification-card > header { grid-template-columns: 42px minmax(0,1fr); }
  .notification-status { grid-column: 1/-1; width: max-content; }
  .withdrawal-notification-money { grid-template-columns: 1fr; }
  .withdrawal-notification-money > i { transform: rotate(90deg); }
  .withdrawal-destination-form { grid-template-columns: 1fr; }
  .notification-history-row { grid-template-columns: 28px 1fr; }
  .notification-history-row > span:not(.notification-history-check),.notification-history-row > strong { grid-column: 2; }
}

/* Helion actual: ubicación del dinero sin confundirla con ingresos. */
.helion-platform-section {
  display: grid;
  gap: 13px;
  margin: 20px 0;
}
.helion-platform-section > .simple-section-head { align-items: flex-end; }
.helion-platform-section > .simple-section-head h2 { margin: 0 0 5px; }
.helion-platform-section > .simple-section-head p { margin: 0; color: #79838b; font-size: 9px; }
.helion-platform-sync-status {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 9px;
  border: 1px solid #393f44;
  border-radius: 999px;
  color: #879198;
  font-size: 7px;
}
.helion-platform-totals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.helion-platform-totals article {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid #30363b;
  border-radius: 11px;
  background: linear-gradient(145deg, #171c20, #111519);
}
.helion-platform-totals small { color: #778188; font-size: 6.5px; font-weight: 750; letter-spacing: .1em; }
.helion-platform-totals b { overflow: hidden; color: #e9ecee; font: 650 16px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.helion-platform-totals span { color: #747e85; font-size: 7.5px; }
.helion-platform-totals article:first-child { border-color: rgba(94,229,162,.26); background: linear-gradient(145deg, rgba(94,229,162,.075), #12171a 72%); }
.helion-platform-totals article:first-child b { color: #5ee5a2; }
.helion-platform-totals article:nth-child(2) { border-color: rgba(233,201,103,.24); }
.helion-platform-totals article:nth-child(2) b { color: #e9c967; }
.helion-platform-totals article.transit { border-color: rgba(94,215,230,.25); }
.helion-platform-totals article.transit b { color: #5ed7e6; }
.dashboard-platform-activity .helion-platform-totals {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}
.dashboard-platform-activity .simple-section-head h2 { font-family: inherit; }
.dashboard-platform-activity .helion-platform-totals article { align-content: start; gap: 9px; }
.dashboard-platform-activity .helion-platform-totals small { font-size: 9px; letter-spacing: .04em; }
.dashboard-platform-activity .helion-platform-totals span { font-size: 11px; line-height: 1.5; }
.dashboard-platform-activity > .muted { font-size: 11px; line-height: 1.6; }
.general-dashboard-page .money-overview-kpis .simple-kpi { height: auto; }
.helion-platform-model-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.helion-platform-model { min-width: 0; padding: 16px; border-color: #3d3040; background: linear-gradient(145deg, #19141c, #12171a 70%); }
.helion-platform-model > header { display: grid; grid-template-columns: 35px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.helion-platform-model > header > span {
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border: 1px solid rgba(255,73,198,.32);
  border-radius: 10px;
  background: rgba(255,73,198,.08);
  color: #ff75d3;
  font: 700 11px Manrope, sans-serif;
}
.helion-platform-model header small { color: #8d718d; font-size: 6px; letter-spacing: .11em; }
.helion-platform-model header h3 { margin: 3px 0 0; overflow: hidden; color: #ebe7ec; font: 650 12px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.helion-platform-model header > b { padding: 5px 7px; border: 1px solid #4c3650; border-radius: 999px; color: #d9a9d9; font-size: 7px; }
.helion-platform-model-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 13px; }
.helion-platform-model-values > span { display: grid; gap: 4px; min-width: 0; padding: 9px 10px; border: 1px solid #2c3237; border-radius: 8px; background: #111519; }
.helion-platform-model-values small { color: #737d84; font-size: 6px; letter-spacing: .08em; }
.helion-platform-model-values b { overflow: hidden; color: #e2e5e7; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.helion-platform-model-values em { color: #6f7980; font-size: 6.5px; font-style: normal; }
.helion-platform-model-values .available b { color: #5ee5a2; }
.helion-platform-model-values .pending b { color: #e9c967; }
.helion-platform-model-values .transit b { color: #5ed7e6; }
.helion-platform-empty { display: flex; align-items: center; gap: 12px; grid-column: 1/-1; min-height: 82px; padding: 16px; border-style: dashed; }
.helion-platform-empty > span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; background: #20262a; color: #88939a; }
.helion-platform-empty b { color: #dfe2e4; font-size: 10px; }
.helion-platform-empty p { margin: 4px 0 0; color: #737d84; font-size: 8px; }

/* Retiros son traslados: el cian identifica movimiento, no ingreso. */
.registry-type-ledger-row.withdrawal strong.neutral,
.spending-row strong.neutral,
.list-row .row-amount strong.neutral { color: #5ed7e6; }
.registry-type-group.withdrawal { --registry-type-accent: #5ed7e6; }

/* Notificaciones agrupadas por modelo. */
.notification-model-group {
  overflow: hidden;
  border: 1px solid #343a3f;
  border-radius: 14px;
  background: #12171a;
}
.notification-model-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 15px;
  border-bottom: 1px solid #2c3135;
  background: linear-gradient(90deg, rgba(255,73,198,.075), transparent 52%);
}
.notification-model-group > header > div { display: flex; align-items: center; gap: 10px; }
.notification-model-group > header > div > span {
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border: 1px solid rgba(255,73,198,.3);
  border-radius: 9px;
  color: #ff78d4;
  font: 700 10px Manrope, sans-serif;
}
.notification-model-group header small { color: #99769a; font-size: 6px; letter-spacing: .1em; }
.notification-model-group header h3 { margin: 2px 0 0; color: #e9e5ea; font: 650 12px Manrope, sans-serif; }
.notification-model-group > header > strong { color: #9ba4aa; font-size: 8px; }
.notification-model-group > div { display: grid; gap: 10px; padding: 10px; }
.notification-model-group .withdrawal-notification-card { margin: 0; border-color: #352f36; box-shadow: none; }
.notification-history-groups { display: grid; gap: 12px; }
.notification-history-model { overflow: hidden; border: 1px solid #2c3236; border-radius: 10px; }
.notification-history-model > header { display: flex; justify-content: space-between; padding: 9px 12px; background: #13181b; }
.notification-history-model > header b { color: #dfe2e4; font-size: 9px; }
.notification-history-model > header span { color: #747e85; font-size: 7px; }
.notification-history-model .notification-history-row { padding-inline: 12px; }
.notification-history-row > strong { display: grid; gap: 2px; color: #5ed7e6; }
.notification-history-row > strong small { color: #717b82; font-size: 6px; font-weight: 600; }
.notification-import-button { white-space: nowrap; }

/* Importación manual privada de Helion. */
.helion-import-panel { display: grid; gap: 12px; }
.helion-import-panel > label { display: grid; gap: 7px; }
.helion-import-panel label > span { color: #858e95; font-size: 7px; font-weight: 750; letter-spacing: .1em; }
.helion-import-panel textarea {
  width: 100%;
  min-height: 220px;
  resize: vertical;
  border: 1px solid #3a4045;
  border-radius: 10px;
  outline: none;
  background: #0f1316;
  color: #dfe4e7;
  padding: 13px;
  font: 9px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.helion-import-panel textarea:focus { border-color: #765174; box-shadow: 0 0 0 3px rgba(255,73,198,.07); }
.helion-import-panel label > small { color: #737d84; font-size: 7px; line-height: 1.45; }
.helion-import-rule { display: flex; align-items: flex-start; gap: 9px; padding: 10px 11px; border: 1px solid #49402a; border-radius: 9px; background: rgba(233,201,103,.045); }
.helion-import-rule > span { display: grid; place-items: center; flex: 0 0 22px; height: 22px; border-radius: 7px; background: rgba(233,201,103,.1); color: #e9c967; font-weight: 800; }
.helion-import-rule p { margin: 0; color: #8c8b81; font-size: 7.5px; line-height: 1.45; }
.helion-import-rule b { color: #d9d1b7; }

/* Registro real: saldo de la cuenta elegida y aviso no bloqueante. */
.registry-account-balance {
  display: flex;
  align-items: center;
  gap: 9px;
  align-self: end;
  min-height: 48px;
  padding: 9px 11px;
  border: 1px solid #294a3c;
  border-radius: 9px;
  background: rgba(94,229,162,.045);
}
.registry-account-balance.hidden { display: none; }
.registry-account-balance > span { display: grid; place-items: center; flex: 0 0 25px; height: 25px; border-radius: 8px; background: rgba(94,229,162,.1); color: #5ee5a2; font-weight: 800; }
.registry-account-balance > div { display: grid; gap: 3px; }
.registry-account-balance b { color: #cddbd4; font-size: 8px; }
.registry-account-balance small { color: #76867e; font-size: 7px; line-height: 1.35; }
.registry-account-balance[data-state="warning"] { border-color: #66423c; background: rgba(255,124,115,.06); }
.registry-account-balance[data-state="warning"] > span { background: rgba(255,124,115,.12); color: #ff8d86; }
.registry-account-balance[data-state="warning"] b { color: #efc0bc; }
.registry-account-balance[data-state="warning"] small { color: #a57c78; }

@media (max-width: 900px) {
  .helion-platform-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .helion-platform-model-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .helion-platform-section > .simple-section-head { align-items: flex-start; flex-direction: column; gap: 9px; }
  .helion-platform-totals { grid-template-columns: 1fr; }
  .helion-platform-model-values { grid-template-columns: 1fr; }
  .notification-model-group > header { align-items: flex-start; flex-direction: column; }
}

/* Cuentas: acciones trazables sin romper la jerarquía de las tarjetas. */
.fv-accounts-view .page-head .modal-actions {
  align-items: center;
  padding: 0;
  border: 0;
}

.fv-accounts-view [data-fv-open-account-transfer] {
  border-color: #39505a;
  background: linear-gradient(145deg, #172126, #11171b);
  color: #a9e6ef;
  box-shadow: inset 0 1px #ffffff08;
}

.fv-accounts-view [data-fv-open-account-transfer]:hover {
  border-color: #52717d;
  background: linear-gradient(145deg, #1b2930, #141b20);
  color: #d4f7fb;
}

  .fv-accounts-view .live-account {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: #31383e;
  background:
    radial-gradient(circle at 94% 4%, rgba(94, 215, 230, .055), transparent 32%),
    linear-gradient(145deg, #14191d, #101417);
}

.fv-accounts-view .live-account::after {
  content: "";
  position: absolute;
  inset: auto 18px 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(94, 215, 230, .2), transparent);
  pointer-events: none;
}

.fv-accounts-view .live-account .ownership {
  margin-top: auto;
}

.fv-accounts-view .live-account > .modal-actions {
  justify-content: stretch;
  margin-top: 13px;
  padding: 0;
  border: 0;
}

.fv-accounts-view .live-account > .modal-actions .secondary {
  width: 100%;
  min-height: 37px;
  border-color: #343d43;
  background: #151b1f;
  color: #aeb7bc;
  box-shadow: inset 0 1px #ffffff06;
}

.fv-accounts-view .live-account > .modal-actions .secondary:hover {
  border-color: #52616a;
  background: #1a2227;
  color: #eef3f5;
}

/* Conciliación y transferencias entre cuentas. */
#modalContent:has([data-fv-account-adjustment-target]),
#modalContent:has([data-fv-transfer-source]) {
  width: min(660px, calc(100vw - 36px));
  max-height: min(88vh, 760px);
  overflow: auto;
  padding: 0;
  border-color: #3a4249;
  background:
    radial-gradient(circle at 92% -5%, rgba(94, 215, 230, .075), transparent 28%),
    linear-gradient(155deg, #171c20, #111519 64%);
  box-shadow: 0 34px 100px #000c, inset 0 1px #ffffff08;
}

#modalContent:has([data-fv-transfer-source]) {
  width: min(760px, calc(100vw - 36px));
}

#modalContent:has([data-fv-account-adjustment-target]) > .modal-head,
#modalContent:has([data-fv-transfer-source]) > .modal-head {
  padding: 22px 24px 18px;
  border-bottom-color: #2d343a;
  background: linear-gradient(90deg, rgba(94, 215, 230, .035), transparent 66%);
}

#modalContent:has([data-fv-account-adjustment-target]) .business-modal-eyebrow,
#modalContent:has([data-fv-transfer-source]) .business-modal-eyebrow {
  color: #67d6e5;
}

#modalContent:has([data-fv-account-adjustment-target]) .modal-head h2,
#modalContent:has([data-fv-transfer-source]) .modal-head h2 {
  margin-top: 5px;
  color: #f0f3f4;
  letter-spacing: -.025em;
}

#modalContent:has([data-fv-account-adjustment-target]) .modal-head p,
#modalContent:has([data-fv-transfer-source]) .modal-head p {
  max-width: 580px;
  margin: 6px 0 0;
  color: #838d94;
  font-size: 9px;
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid {
  gap: 13px;
  margin: 0;
  padding: 20px 24px;
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid label,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid label {
  gap: 8px;
  color: #8d979e;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .045em;
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid input,
#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid select,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid input,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid select {
  height: 44px;
  border-color: #363e44;
  background: #0e1317;
  color: #edf0f2;
  font-size: 10px;
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid input:focus,
#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid select:focus,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid input:focus,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid select:focus {
  border-color: #56808a;
  box-shadow: 0 0 0 3px rgba(94, 215, 230, .08);
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid input:disabled {
  border-color: #2c3338;
  background: #11161a;
  color: #889198;
  opacity: 1;
}

#modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid label:last-child,
#modalContent:has([data-fv-transfer-source]) .mova-form-grid label:last-child {
  grid-column: 1 / -1;
}

#modalContent:has([data-fv-account-adjustment-target]) > .modal-rule-note,
#modalContent:has([data-fv-transfer-source]) > .modal-rule-note {
  margin: 0 24px 20px;
}

#modalContent:has([data-fv-account-adjustment-target]) > .modal-actions,
#modalContent:has([data-fv-transfer-source]) > .modal-actions {
  margin: 0;
  padding: 17px 24px 21px;
  border-top-color: #2d343a;
  background: rgba(10, 13, 16, .34);
}

[data-fv-transfer-quote] {
  position: relative;
  min-height: 68px;
  padding: 13px 15px 13px 47px;
  border-color: #394249;
  background: linear-gradient(145deg, #12191d, #0e1317);
  color: #89949a;
  font-size: 8.5px;
  line-height: 1.65;
}

[data-fv-transfer-quote]::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 14px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: rgba(94, 215, 230, .09);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2368d9e8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h11m0 0-3-3m3 3-3 3M17 17H6m0 0 3 3m-3-3 3-3'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 13px 13px;
}

[data-fv-transfer-quote] b {
  color: #e8edef;
  font: 700 10px Manrope, sans-serif;
}

[data-fv-transfer-quote][data-valid="true"] {
  border-color: #315c51;
  background: linear-gradient(145deg, rgba(94, 229, 162, .07), #101619 70%);
  color: #8ca49a;
}

[data-fv-transfer-quote][data-valid="true"]::before {
  content: "";
  background: rgba(94, 229, 162, .12);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2365e5aa' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 13px 13px;
}

[data-fv-transfer-quote][data-valid="true"] b { color: #baf3d7; }

[data-fv-transfer-quote][data-valid="false"] {
  border-color: #54462f;
  background: linear-gradient(145deg, rgba(233, 201, 103, .055), #101519 72%);
  color: #a79b78;
}

[data-fv-transfer-quote][data-valid="false"]::before {
  content: "";
  background: rgba(233, 201, 103, .1);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e9c967' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5M12 8h.01'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 13px 13px;
}

/* Registro: comisión, cálculo previo y control de saldo para transferencias. */
.upgraded-registry .transfer-fee-field > em {
  position: absolute;
  top: 50%;
  right: 11px;
  transform: translateY(-50%);
  color: #727c83;
  font-size: 7px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .08em;
  pointer-events: none;
}

.upgraded-registry .transfer-fee-field:has([data-registry-transfer-fee-pct]) > i {
  right: 12px;
  left: auto;
}

.upgraded-registry .transfer-fee-field:has([data-registry-transfer-fee-pct]) input {
  padding-right: 28px;
  padding-left: 11px;
}

.upgraded-registry .transfer-fee-field:has([data-registry-transfer-fee-fixed]) input {
  padding-right: 44px;
}

.upgraded-registry .transfer-calculation {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
  min-height: 88px;
  padding: 11px;
  border: 1px solid #344149;
  border-radius: 13px;
  background:
    radial-gradient(circle at 92% 12%, rgba(94, 215, 230, .055), transparent 28%),
    linear-gradient(145deg, #12181c, #0e1317);
}

.upgraded-registry .transfer-calculation > div:not(.transfer-preview-empty) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 11px 12px;
  border: 1px solid #2f383e;
  border-radius: 10px;
  background: rgba(20, 26, 30, .92);
}

.upgraded-registry .transfer-calculation > i {
  align-self: center;
  color: #66747c;
  font-size: 12px;
  font-style: normal;
  font-weight: 800;
}

.upgraded-registry .transfer-calculation small {
  color: #76828a;
  font-size: 6.5px;
  font-weight: 750;
  letter-spacing: .09em;
}

.upgraded-registry .transfer-calculation b {
  overflow: hidden;
  color: #dfe5e8;
  font: 700 9px Manrope, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.upgraded-registry .transfer-calculation em {
  color: #78838a;
  font-size: 6.5px;
  font-style: normal;
}

.upgraded-registry .transfer-calculation .result {
  border-color: #315849;
  background: linear-gradient(145deg, rgba(94, 229, 162, .095), rgba(16, 25, 22, .92));
}

.upgraded-registry .transfer-calculation .result small { color: #67b994; }
.upgraded-registry .transfer-calculation .result b { color: #6be6ad; }

.upgraded-registry .transfer-preview-empty {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  min-height: 64px;
  text-align: center;
}

.upgraded-registry .transfer-preview-empty::before {
  content: "";
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  margin-bottom: 2px;
  border-radius: 8px;
  background: rgba(94, 215, 230, .08);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2366d3e1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h11m0 0-3-3m3 3-3 3M17 17H6m0 0 3 3m-3-3 3-3'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 14px 14px;
}

.upgraded-registry .transfer-preview-empty b {
  color: #aeb8bd;
  font-size: 9px;
}

.upgraded-registry .transfer-preview-empty small {
  color: #6f7b82;
  font-size: 7px;
  font-weight: 500;
  letter-spacing: 0;
}

.upgraded-registry .registry-account-balance {
  grid-column: span 2;
  box-shadow: inset 0 1px #ffffff05;
}

.upgraded-registry .registry-account-balance[data-state="warning"] {
  box-shadow: inset 0 1px rgba(255, 255, 255, .04), 0 0 22px rgba(255, 124, 115, .035);
}

@media (max-width: 760px) {
  .fv-accounts-view .page-head .modal-actions {
    width: 100%;
  }

  .fv-accounts-view .page-head .modal-actions > button {
    flex: 1;
  }

  #modalContent:has([data-fv-account-adjustment-target]),
  #modalContent:has([data-fv-transfer-source]) {
    width: min(100%, calc(100vw - 24px));
    max-height: 92vh;
  }

  #modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid,
  #modalContent:has([data-fv-transfer-source]) .mova-form-grid {
    grid-template-columns: 1fr;
  }

  #modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid label:last-child,
  #modalContent:has([data-fv-transfer-source]) .mova-form-grid label:last-child {
    grid-column: auto;
  }

  .upgraded-registry .transfer-calculation {
    grid-template-columns: 1fr;
    padding: 10px;
  }

  .upgraded-registry .transfer-calculation > i {
    transform: rotate(90deg);
  }

  .upgraded-registry .transfer-calculation > div:not(.transfer-preview-empty) {
    min-height: 62px;
  }

  .upgraded-registry .registry-account-balance {
    grid-column: 1 / -1;
  }
}

@media (max-width: 480px) {
  .fv-accounts-view .page-head .modal-actions,
  #modalContent:has([data-fv-account-adjustment-target]) > .modal-actions,
  #modalContent:has([data-fv-transfer-source]) > .modal-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .fv-accounts-view .page-head .modal-actions > button,
  #modalContent:has([data-fv-account-adjustment-target]) > .modal-actions > button,
  #modalContent:has([data-fv-transfer-source]) > .modal-actions > button {
    width: 100%;
  }

  #modalContent:has([data-fv-account-adjustment-target]) > .modal-head,
  #modalContent:has([data-fv-transfer-source]) > .modal-head,
  #modalContent:has([data-fv-account-adjustment-target]) .mova-form-grid,
  #modalContent:has([data-fv-transfer-source]) .mova-form-grid {
    padding-right: 17px;
    padding-left: 17px;
  }

  #modalContent:has([data-fv-account-adjustment-target]) > .modal-rule-note,
  #modalContent:has([data-fv-transfer-source]) > .modal-rule-note {
    margin-right: 17px;
    margin-left: 17px;
  }

  #modalContent:has([data-fv-account-adjustment-target]) > .modal-actions,
  #modalContent:has([data-fv-transfer-source]) > .modal-actions {
    padding-right: 17px;
    padding-left: 17px;
  }

  [data-fv-transfer-quote] {
    padding-right: 12px;
    padding-left: 43px;
  }

.fv-accounts-view .live-account {
    padding: 18px;
  }
}

/* Cierre mensual: convertir remanente en ahorro sin moverlo de su cuenta. */
.savings-close-section-title small { color: #68e4b0; }
.savings-close-notification-list { display: grid; gap: 13px; }
.savings-close-notification-card {
  padding: 20px;
  border-color: rgba(94, 229, 162, .32);
  background: linear-gradient(145deg, rgba(94, 229, 162, .075), rgba(168, 124, 245, .035) 58%, #15191d);
}
.savings-close-notification-card > header {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
}
.savings-close-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(94, 229, 162, .38);
  border-radius: 12px;
  background: rgba(94, 229, 162, .1);
  color: #68e4b0;
  font-size: 17px;
}
.savings-close-notification-card header small {
  color: #68e4b0;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .13em;
}
.savings-close-notification-card header h2 { margin: 3px 0; color: #f0ebf1; font: 650 16px Manrope, sans-serif; }
.savings-close-notification-card header p { margin: 0; color: #7d878e; font-size: 8px; }
.savings-close-balance {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  margin: 18px 0 13px;
  padding: 15px;
  border: 1px solid rgba(94, 229, 162, .24);
  border-radius: 11px;
  background: rgba(10, 25, 21, .5);
}
.savings-close-balance > span { display: grid; gap: 5px; }
.savings-close-balance small { color: #789189; font-size: 7px; font-weight: 750; letter-spacing: .1em; }
.savings-close-balance b { color: #61e6aa; font: 680 24px Manrope, sans-serif; }
.savings-close-balance em { color: #758078; font-size: 8px; font-style: normal; }
.savings-close-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.savings-close-form > label { display: grid; align-content: start; gap: 6px; }
.savings-close-form > label > span { color: #89938f; font-size: 7px; font-weight: 750; letter-spacing: .1em; }
.savings-close-form select,
.savings-close-amount {
  width: 100%;
  min-height: 42px;
  border: 1px solid #39413f;
  border-radius: 9px;
  background: #101519;
  color: #ece9ed;
}
.savings-close-form select { padding: 0 11px; }
.savings-close-amount { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 0 11px; }
.savings-close-amount i,
.savings-close-amount b { color: #7e8986; font-size: 8px; font-style: normal; }
.savings-close-amount input { min-width: 0; border: 0; outline: 0; background: transparent; color: #61e6aa; font: 650 15px Manrope, sans-serif; }
.savings-close-form label > small { color: #6f7b77; font-size: 7px; line-height: 1.45; }
.savings-close-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 15px; padding-top: 13px; border-top: 1px solid #29312e; }
.savings-close-no-account { display: grid; gap: 5px; padding: 11px 12px; border: 1px dashed #3b4441; border-radius: 9px; }
.savings-close-no-account b { color: #e7e4e7; font-size: 9px; }
.savings-close-no-account span { color: #75807c; font-size: 8px; }
.savings-close-no-account button { width: max-content; margin-top: 3px; }
.savings-close-history { border-color: rgba(94, 229, 162, .19); }
.savings-close-history-row strong { display: grid; gap: 3px; color: #61e6aa; }

.savings-close-preferences { margin-top: 14px; }
.preference-section-head { padding: 18px 0 10px; border-bottom: 1px solid #292e34; }
.preference-section-head small { color: #68e4b0; font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.preference-section-head h2 { margin: 5px 0 4px; color: #ece8ed; font: 650 15px Manrope, sans-serif; }
.preference-section-head p { margin: 0; color: #747d84; font-size: 8px; line-height: 1.5; }

@media (max-width: 900px) {
  .savings-close-form { grid-template-columns: 1fr 1fr; }
  .savings-close-form > label:last-child,
  .savings-close-no-account { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .savings-close-notification-card > header { grid-template-columns: 42px minmax(0, 1fr); }
  .savings-close-notification-card .notification-status { grid-column: 1 / -1; width: max-content; }
  .savings-close-form { grid-template-columns: 1fr; }
  .savings-close-form > label:last-child,
  .savings-close-no-account { grid-column: auto; }
  .savings-close-balance { align-items: flex-start; flex-direction: column; }
  .savings-close-actions { align-items: stretch; flex-direction: column-reverse; }
}

/* Helion: costo económico por modelo sin alterar la fecha contable del pago. */
.helion-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.helion-head-actions > .action-btn {
  min-height: 44px;
  white-space: nowrap;
}

.sidebar-global-refresh {
  width: 100%;
  min-height: 42px;
  margin: 0 0 9px;
  padding: 0 11px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  border: 1px solid #333940;
  border-radius: 11px;
  background: linear-gradient(135deg, #181c20, #111519);
  color: #eef1f2;
  font: 600 10px Manrope, sans-serif;
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.sidebar-global-refresh:hover:not(:disabled) { border-color: #555e66; background: linear-gradient(135deg, #20252a, #151a1e); }
.sidebar-global-refresh:disabled { cursor: wait; color: #919ba2; opacity: .78; }
.sidebar-refresh-icon { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #3b4248; border-radius: 7px; background: #0d1012; font-size: 12px; }
.sidebar-global-refresh.is-syncing .sidebar-refresh-icon { animation: mova-refresh-spin .8s linear infinite; }
.sidebar.collapsed .sidebar-global-refresh { width: 42px; padding: 0; justify-content: center; }
.sidebar.collapsed .sidebar-refresh-label { display: none; }
@keyframes mova-refresh-spin { to { transform: rotate(360deg); } }

.helion-refresh-button {
  border-color: color-mix(in srgb, var(--dashboard-accent) 42%, #34383d);
  color: color-mix(in srgb, var(--dashboard-accent) 78%, #fff);
}

.helion-refresh-button:hover:not(:disabled) {
  background: color-mix(in srgb, var(--dashboard-accent) 10%, #15191c);
}

.helion-refresh-button:disabled {
  cursor: wait;
  opacity: .62;
}

.models-settings-view .fixed-economic-field {
  border-color: #30363b;
  background: #111619;
  color: #aeb5ba;
  cursor: default;
  opacity: .82;
}

.helion-cost-report {
  display: grid;
  gap: 14px;
  margin-top: 19px;
}

.helion-cost-report > .simple-section-head {
  align-items: flex-end;
  gap: 18px;
}

.helion-cost-report > .simple-section-head h2 {
  margin: 0 0 5px;
  color: #ece8ed;
}

.helion-cost-report > .simple-section-head p {
  max-width: 560px;
  margin: 0;
  color: #7f888f;
  font-size: 8px;
  line-height: 1.55;
}

.helion-cost-head-tools {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 9px;
}

.helion-cost-period-action {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.helion-cost-period-action > label {
  display: grid;
  gap: 5px;
  min-width: 142px;
}

.helion-cost-period-action > label > span {
  color: #7b858c;
  font-size: 6px;
  font-weight: 750;
  letter-spacing: .1em;
}

.helion-venuz-batch-button {
  min-height: 39px;
  border-color: color-mix(in srgb, var(--dashboard-accent) 45%, #30363b);
  color: color-mix(in srgb, var(--dashboard-accent) 80%, #fff);
  white-space: nowrap;
}

.helion-cost-head-tools > label {
  display: grid;
  gap: 5px;
  min-width: 142px;
}

.helion-cost-head-tools > label > span {
  color: #7b858c;
  font-size: 6px;
  font-weight: 750;
  letter-spacing: .1em;
}

.helion-cost-head-tools select {
  height: 39px;
  padding: 0 30px 0 10px;
  border: 1px solid #3b3340;
  border-radius: 9px;
  background-color: #12171a;
  color: #e5e0e6;
  font-size: 8px;
  font-weight: 700;
}

.helion-cost-head-tools select:focus {
  border-color: color-mix(in srgb, var(--dashboard-accent) 55%, #3b3340);
  outline: none;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--dashboard-accent) 8%, transparent);
}

.helion-cost-totals {
  display: flex;
  gap: 7px;
}

.helion-cost-totals > span {
  display: grid;
  gap: 3px;
  min-width: 92px;
  padding: 8px 10px;
  border: 1px solid #30363b;
  border-radius: 9px;
  background: #12171a;
  text-align: right;
}

.helion-cost-totals > span.credit {
  border-color: color-mix(in srgb, var(--green) 35%, #30363b);
  background: color-mix(in srgb, var(--green) 6%, #12171a);
}

.helion-cost-totals > span.credit b { color: var(--green); }

.venuz-payment-summary span:nth-child(2) b { color: #f3cd65; }
.venuz-payment-summary span:nth-child(3) b { color: var(--green); }

.helion-cost-totals small {
  color: #737d84;
  font-size: 6px;
  font-weight: 750;
  letter-spacing: .1em;
}

.helion-cost-totals b {
  color: #e4e7e9;
  font-size: 10px;
}

.helion-cost-totals > span:last-child b { color: #e9c967; }

.helion-cost-type-summary {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid #383d42;
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .025), #101518 76%);
}

.helion-cost-type-summary > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
}

.helion-cost-type-summary > header > div { min-width: 0; }
.helion-cost-type-summary > header small { color: #7c858c; font-size: 6px; font-weight: 800; letter-spacing: .11em; }
.helion-cost-type-summary > header h3 { margin: 4px 0; color: #e9ecee; font: 650 12px Manrope, sans-serif; }
.helion-cost-type-summary > header p { margin: 0; color: #747e85; font-size: 7px; }
.helion-cost-type-summary > header > span { display: grid; flex: 0 0 auto; gap: 3px; text-align: right; }
.helion-cost-type-summary > header > span b { color: #f0e8cd; font: 650 14px Manrope, sans-serif; }

.helion-cost-type-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.helion-cost-type-summary-grid > article {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid #343a3f;
  border-radius: 10px;
  background: #12171a;
}

.helion-cost-type-summary-grid > article.chatter { border-color: rgba(241, 181, 108, .24); }
.helion-cost-type-summary-grid > article.venuz { border-color: rgba(104, 200, 237, .24); }
.helion-cost-type-summary-grid > article > div:first-child { display: flex; align-items: center; gap: 9px; }
.helion-cost-type-summary-grid i { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: #f1b56c; box-shadow: 0 0 12px rgba(241, 181, 108, .2); }
.helion-cost-type-summary-grid .venuz i { background: #68c8ed; box-shadow: 0 0 12px rgba(104, 200, 237, .22); }
.helion-cost-type-summary-grid article > div > span { display: grid; gap: 2px; }
.helion-cost-type-summary-grid article > div small { color: #7b858c; font-size: 6px; font-weight: 800; letter-spacing: .08em; }
.helion-cost-type-summary-grid strong { color: #edf0f1; font: 650 16px Manrope, sans-serif; }
.helion-cost-type-summary-grid dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; }
.helion-cost-type-summary-grid dl > div { display: grid; gap: 3px; padding: 7px 8px; border-radius: 7px; background: #0f1417; }
.helion-cost-type-summary-grid dt { color: #707a81; font-size: 6px; }
.helion-cost-type-summary-grid dd { margin: 0; color: #dce1e3; font-size: 9px; font-weight: 750; }
.helion-cost-type-summary-grid dl > div:last-child dd { color: #e9c967; }
.helion-cost-type-summary-grid article > p { margin: 0; color: #68737a; font-size: 6.5px; line-height: 1.45; }

.helion-cost-model-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.helion-cost-model {
  min-width: 0;
  overflow: hidden;
  padding: 0;
  border-color: #413244;
  background: linear-gradient(145deg, rgba(255, 73, 198, .035), #111619 70%);
}

.helion-cost-model > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 17px 14px;
  border-bottom: 1px solid #2a3034;
}

.helion-cost-model > header > div:first-child { min-width: 0; }
.helion-cost-model > header small { color: #9b789a; font-size: 6px; font-weight: 750; letter-spacing: .11em; }
.helion-cost-model > header h3 { margin: 4px 0 0; overflow: hidden; color: #f0edf1; font: 650 13px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.helion-cost-model > header > div:last-child { display: grid; flex: 0 0 auto; gap: 2px; text-align: right; }
.helion-cost-model > header > div:last-child span { color: #747e84; font-size: 6px; letter-spacing: .1em; }
.helion-cost-model > header > div:last-child strong { color: #f3f0f3; font: 650 16px Manrope, sans-serif; }
.helion-cost-model > header > div:last-child small { color: #707a81; letter-spacing: 0; }

.helion-cost-line {
  display: grid;
  grid-template-columns: minmax(110px, .72fr) 1.4fr;
  align-items: center;
  gap: 13px;
  padding: 13px 17px;
  border-bottom: 1px solid #252b2f;
}

.helion-cost-line > div {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr);
  align-items: center;
  column-gap: 8px;
}

.helion-cost-line > div > span { grid-row: 1 / span 2; width: 7px; height: 7px; border-radius: 50%; background: #68c8ed; box-shadow: 0 0 12px rgba(104, 200, 237, .22); }
.helion-cost-line.chatter > div > span { background: #f1b56c; box-shadow: 0 0 12px rgba(241, 181, 108, .2); }
.helion-cost-line.reddit > div > span { background: #ef718d; box-shadow: 0 0 12px rgba(239, 113, 141, .2); }
.helion-cost-line > div > b { color: #dde2e5; font-size: 9px; }
.helion-cost-line > div > small { color: #747e84; font-size: 6.5px; }
.helion-cost-line > div > em {
  grid-column: 2;
  width: max-content;
  margin-top: 3px;
  padding: 3px 6px;
  border: 1px solid #554827;
  border-radius: 999px;
  color: #e9c967;
  font-size: 5.5px;
  font-style: normal;
  font-weight: 750;
  letter-spacing: .04em;
}
.helion-cost-line[data-payment-state="pagado"] > div > em { border-color: #28513f; color: #5ee5a2; }
.helion-cost-line[data-payment-state="sin-plan"] > div > em { border-color: #353b40; color: #858f96; }
.helion-cost-register {
  grid-column: 2;
  width: max-content;
  margin-top: 3px;
  padding: 0;
  border: 0;
  background: transparent;
  color: color-mix(in srgb, var(--dashboard-accent) 76%, #fff);
  font-size: 6.5px;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.helion-cost-register:hover { color: #fff; }
.helion-cost-line dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin: 0; }
.helion-cost-line dl > div { display: grid; gap: 3px; min-width: 0; padding: 7px 8px; border-radius: 7px; background: #0f1417; }
.helion-cost-line dt { color: #6f7980; font-size: 6px; }
.helion-cost-line dd { overflow: hidden; margin: 0; color: #d8dde0; font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.helion-cost-line dd.pending { color: #e9c967; }
.helion-cost-line dd.settled { color: #5ee5a2; }
.helion-cost-line > p {
  grid-column: 1 / -1;
  margin: -5px 0 0;
  color: #657078;
  font-size: 6.5px;
  line-height: 1.4;
}

.helion-cost-model > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 17px;
  background: rgba(255, 255, 255, .012);
}

.helion-cost-model > footer > span { display: grid; gap: 3px; color: #79838a; font-size: 7px; }
.helion-cost-model > footer > span:last-child { text-align: right; }
.helion-cost-model > footer small { color: #707a81; font-size: 6px; letter-spacing: .07em; }
.helion-cost-model > footer b { color: #dfe3e5; font-size: 10px; }
.helion-cost-model > footer .pending b { color: #e9c967; }

.helion-other-paid {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 11px 17px;
  border-bottom: 1px solid #252b2f;
  background: rgba(255, 255, 255, .009);
}
.helion-other-paid > span { width: 7px; height: 7px; border-radius: 50%; background: #88939a; }
.helion-other-paid > div { display: grid; gap: 3px; }
.helion-other-paid b { color: #d8dde0; font-size: 8.5px; }
.helion-other-paid small { color: #707a81; font-size: 6.5px; }
.helion-other-paid > strong { color: #dfe3e5; font-size: 9px; }

.helion-cost-rule {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border: 1px solid rgba(233, 201, 103, .18);
  border-radius: 9px;
  background: rgba(233, 201, 103, .035);
}

.helion-cost-rule > span {
  display: grid;
  place-items: center;
  flex: 0 0 21px;
  height: 21px;
  border-radius: 7px;
  background: rgba(233, 201, 103, .1);
  color: #e9c967;
  font-size: 8px;
  font-weight: 800;
}

.helion-cost-rule p { margin: 0; color: #85847c; font-size: 7.5px; line-height: 1.45; }
.helion-cost-rule b { color: #ded8c3; }
.helion-cost-empty { display: flex; align-items: center; gap: 12px; grid-column: 1 / -1; min-height: 82px; padding: 16px; border-style: dashed; }
.helion-cost-empty > span { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; background: #20262a; color: #8d969c; }
.helion-cost-empty b { color: #e0e4e6; font-size: 10px; }
.helion-cost-empty p { margin: 4px 0 0; color: #778188; font-size: 8px; }

/* Registro Real: la atribución económica vive junto al gasto, sin cambiar su fecha real. */
.upgraded-registry .helion-model-allocation {
  display: grid;
  grid-column: 1 / -1;
  gap: 11px;
  padding: 13px;
  border: 1px solid #3b3549;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(147, 94, 235, .07), rgba(18, 23, 26, .82));
}

.upgraded-registry .helion-model-allocation.hidden { display: none; }
.upgraded-registry .helion-allocation-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.upgraded-registry .helion-allocation-head > div:first-child { display: grid; gap: 3px; }
.upgraded-registry .helion-allocation-head span,
.upgraded-registry .helion-allocation-method > span { color: #aa9bb5; font-size: 7px; font-weight: 800; letter-spacing: .1em; }
.upgraded-registry .helion-allocation-head small { color: #7f8790; font-size: 7px; line-height: 1.4; }
.upgraded-registry .helion-allocation-head > div:last-child { display: flex; gap: 6px; }
.upgraded-registry .helion-allocation-head button { min-height: 29px; padding: 0 10px; border: 1px solid #474050; border-radius: 8px; background: #171b20; color: #c5bdce; font-size: 7px; font-weight: 750; }
.upgraded-registry .helion-allocation-head button:hover { border-color: #8164aa; color: #fff; }
.upgraded-registry .helion-model-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 7px; }
.upgraded-registry .helion-model-choices > label { display: flex; align-items: center; gap: 8px; min-height: 37px; padding: 8px 10px; border: 1px solid #343941; border-radius: 9px; background: #111619; cursor: pointer; }
.upgraded-registry .helion-model-choices > label:has(input:checked) { border-color: #7554a0; background: rgba(132, 81, 194, .12); }
.upgraded-registry .helion-model-choices input { width: 14px; height: 14px; accent-color: #9562d7; }
.upgraded-registry .helion-model-choices span { color: #dadddf; font-size: 8px; font-weight: 700; }
.upgraded-registry .helion-model-choices p { grid-column: 1 / -1; margin: 0; color: #d68181; font-size: 8px; }
.upgraded-registry .helion-allocation-method { display: grid; grid-template-columns: minmax(120px, .35fr) minmax(220px, 1fr); align-items: center; gap: 10px; }
.upgraded-registry .helion-allocation-method.hidden { display: none; }
.upgraded-registry .helion-allocation-values { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.upgraded-registry .helion-allocation-values > label { display: grid; gap: 5px; }
.upgraded-registry .helion-allocation-values > label > span { color: #8d939a; font-size: 7px; font-weight: 750; }
.upgraded-registry .helion-allocation-values > label > div { display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid #343941; border-radius: 8px; background: #0f1417; overflow: hidden; }
.upgraded-registry .helion-allocation-values input { min-width: 0; border: 0; background: transparent; }
.upgraded-registry .helion-allocation-values em { padding: 0 9px; color: #9c87b8; font-size: 7px; font-style: normal; font-weight: 800; }
.upgraded-registry .helion-allocation-summary { min-height: 31px; padding: 8px 10px; border: 1px solid #313740; border-radius: 8px; background: #101518; color: #8e969c; font-size: 7px; line-height: 1.5; }
.upgraded-registry .helion-model-allocation[data-state="valid"] .helion-allocation-summary { border-color: rgba(73, 205, 153, .28); color: #7bcda9; }
.upgraded-registry .helion-model-allocation[data-state="invalid"] .helion-allocation-summary { border-color: rgba(236, 102, 102, .34); color: #e58585; }

.upgraded-registry .helion-cost-fields {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: minmax(180px, .8fr) minmax(180px, .8fr) minmax(260px, 1.4fr);
  align-items: end;
  gap: 11px;
  padding: 12px;
  border: 1px solid #49354b;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(255, 73, 198, .045), rgba(18, 23, 26, .78));
}

.upgraded-registry .helion-cost-fields.hidden { display: none; }
.upgraded-registry .helion-cost-fields > label { display: grid; gap: 7px; }
.upgraded-registry .helion-cost-fields label > span { color: #98829a; font-size: 7px; font-weight: 750; letter-spacing: .1em; }
.upgraded-registry .helion-cost-fields[data-cost-selected="false"] .helion-economic-period { opacity: .38; pointer-events: none; }
.upgraded-registry .helion-economic-note { display: grid; align-content: center; gap: 3px; min-height: 48px; padding: 8px 10px 8px 39px; border: 1px solid #30363b; border-radius: 8px; background: #111619; position: relative; }
.upgraded-registry .helion-economic-note::before { content: "i"; position: absolute; left: 10px; display: grid; place-items: center; width: 20px; height: 20px; border-radius: 7px; background: rgba(255, 73, 198, .08); color: #d99ad0; font-size: 8px; font-weight: 800; }
.upgraded-registry .helion-economic-note b { color: #d8dadd; font-size: 7.5px; }
.upgraded-registry .helion-economic-note span { color: #747e84; font-size: 6.5px; line-height: 1.4; }

.helion-reality-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
  margin: 13px 0 19px;
}
.helion-reality-strip > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 12px 13px;
  border: 1px solid #33393e;
  border-radius: 10px;
  background: #12171a;
}
.helion-reality-strip small { color: #737d84; font-size: 6px; font-weight: 750; letter-spacing: .09em; }
.helion-reality-strip b { overflow: hidden; color: #e5e8ea; font: 650 14px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.helion-reality-strip span { color: #707a81; font-size: 6.5px; }
.helion-reality-strip .paid { border-color: rgba(239,113,141,.2); }
.helion-reality-strip .paid b { color: #ef879d; }
.helion-reality-strip .pending { border-color: rgba(233,201,103,.22); }
.helion-reality-strip .pending b { color: #e9c967; }
.helion-reality-strip .cash { border-color: rgba(94,229,162,.22); background: linear-gradient(145deg, rgba(94,229,162,.055), #12171a 75%); }
.helion-reality-strip .cash b { color: #5ee5a2; }

.helion-section-kicker { display: block; margin-bottom: 5px; color: color-mix(in srgb, var(--dashboard-accent) 76%, #fff); font-size: 6px; font-weight: 800; letter-spacing: .13em; }
.helion-cost-totals > span.paid b { color: #5ee5a2; }

.helion-plan-report { display: grid; gap: 14px; margin: 19px 0; }
.helion-plan-report > .simple-section-head { align-items: flex-end; gap: 18px; }
.helion-plan-report > .simple-section-head h2 { margin: 0 0 5px; color: #ece8ed; }
.helion-plan-report > .simple-section-head p { max-width: 580px; margin: 0; color: #7f888f; font-size: 8px; line-height: 1.55; }
.helion-plan-totals { display: flex; gap: 7px; }
.helion-plan-totals > span { display: grid; gap: 3px; min-width: 112px; padding: 8px 10px; border: 1px solid #343a3f; border-radius: 9px; background: #12171a; text-align: right; }
.helion-plan-totals small { color: #737d84; font-size: 5.8px; font-weight: 750; letter-spacing: .08em; }
.helion-plan-totals b { color: #e5e8ea; font-size: 10px; }
.helion-plan-totals > span:nth-child(2) b { color: #e9c967; }
.helion-plan-totals > span:last-child b { color: #5ee5a2; }
.helion-plan-model-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.helion-plan-model { min-width: 0; overflow: hidden; padding: 0; border-color: #413b31; background: linear-gradient(145deg, rgba(233,201,103,.035), #111619 70%); }
.helion-plan-model > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 17px 13px; border-bottom: 1px solid #2a3034; }
.helion-plan-model > header > div:first-child { min-width: 0; }
.helion-plan-model header small { color: #8d8271; font-size: 6px; font-weight: 750; letter-spacing: .1em; }
.helion-plan-model header h3 { margin: 4px 0; overflow: hidden; color: #f0edf1; font: 650 13px Manrope, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.helion-plan-model > header > div:last-child { display: grid; flex: 0 0 auto; gap: 2px; text-align: right; }
.helion-plan-model > header > div:last-child span { color: #747e84; font-size: 6px; letter-spacing: .08em; }
.helion-plan-model > header > div:last-child strong { color: #f2f0ed; font: 650 15px Manrope, sans-serif; }
.helion-plan-model > header > div:last-child small { color: #707a81; letter-spacing: 0; }
.helion-plan-basis { display: inline-flex; width: max-content; padding: 3px 6px; border: 1px solid #3d4246; border-radius: 999px; color: #899299; font-size: 5.7px; font-style: normal; }
.helion-plan-basis.actual { border-color: rgba(94,229,162,.22); color: #78d7a8; }
.helion-plan-cost-list { display: grid; }
.helion-plan-cost-list > div { display: grid; grid-template-columns: 7px minmax(0, 1fr) auto auto; align-items: center; gap: 8px; min-height: 51px; padding: 10px 17px; border-bottom: 1px solid #252b2f; }
.helion-plan-cost-list > div > span { width: 7px; height: 7px; border-radius: 50%; background: #68c8ed; }
.helion-plan-cost-list .chatter > span { background: #f1b56c; }
.helion-plan-cost-list .reddit > span { background: #ef718d; }
.helion-plan-cost-list .other > span { background: #8d969c; }
.helion-plan-cost-list > div > div { display: grid; gap: 3px; min-width: 0; }
.helion-plan-cost-list b { color: #dce1e4; font-size: 8.5px; }
.helion-plan-cost-list small { overflow: hidden; color: #737d84; font-size: 6.3px; text-overflow: ellipsis; white-space: nowrap; }
.helion-plan-cost-list strong { color: #e2e5e7; font-size: 9px; }
.helion-plan-cost-list .missing strong { color: #6f7980; }
.helion-plan-cost-list button { padding: 4px 7px; border: 1px solid rgba(239,113,141,.25); border-radius: 6px; background: rgba(239,113,141,.055); color: #e99aaa; font-size: 6px; font-weight: 750; }
.helion-plan-model > footer { display: flex; justify-content: space-between; gap: 12px; padding: 11px 17px; background: rgba(255,255,255,.012); }
.helion-plan-model > footer > span { display: grid; gap: 3px; }
.helion-plan-model > footer > span:last-child { text-align: right; }
.helion-plan-model footer small { color: #707a81; font-size: 6px; letter-spacing: .07em; }
.helion-plan-model footer b { color: #dfe3e5; font-size: 10px; }
.helion-plan-rule { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid rgba(233,201,103,.18); border-radius: 10px; background: rgba(233,201,103,.035); }
.helion-plan-rule > span { display: grid; place-items: center; flex: 0 0 25px; height: 25px; border-radius: 8px; background: rgba(233,201,103,.1); color: #e9c967; font-size: 9px; }
.helion-plan-rule > div { display: grid; gap: 3px; }
.helion-plan-rule b { color: #ded8c3; font-size: 7.5px; }
.helion-plan-rule p { margin: 0; color: #85847c; font-size: 7px; line-height: 1.45; }

@media (max-width: 900px) {
  .helion-cost-model-grid { grid-template-columns: 1fr; }
  .helion-plan-model-grid { grid-template-columns: 1fr; }
  .helion-reality-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .upgraded-registry .helion-cost-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .upgraded-registry .helion-economic-note { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .helion-head-actions { align-items: stretch; flex-wrap: wrap; width: 100%; }
  .helion-head-actions > button { flex: 1; }
  .helion-head-actions .segmented { flex: 1 0 100%; }
  .helion-cost-report > .simple-section-head { align-items: flex-start; flex-direction: column; }
  .helion-plan-report > .simple-section-head { align-items: flex-start; flex-direction: column; }
  .helion-cost-head-tools { align-items: stretch; flex-direction: column; width: 100%; }
  .helion-cost-head-tools > label,
  .helion-cost-period-action,
  .helion-cost-period-action > label { width: 100%; }
  .helion-cost-period-action { align-items: stretch; }
  .helion-cost-totals { width: 100%; }
  .helion-cost-totals > span { flex: 1; min-width: 0; text-align: left; }
  .helion-plan-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
  .helion-plan-totals > span { min-width: 0; text-align: left; }
}

@media (max-width: 520px) {
  .helion-cost-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .helion-cost-type-summary > header { align-items: flex-start; flex-direction: column; }
  .helion-cost-type-summary > header > span { text-align: left; }
  .helion-cost-type-summary-grid { grid-template-columns: 1fr; }
  .helion-cost-line { grid-template-columns: 1fr; }
  .helion-reality-strip { grid-template-columns: 1fr; }
  .helion-plan-totals { grid-template-columns: 1fr; }
  .helion-plan-model > header { align-items: flex-start; flex-direction: column; }
  .helion-plan-model > header > div:last-child { text-align: left; }
  .helion-plan-cost-list > div { grid-template-columns: 7px minmax(0, 1fr) auto; }
  .helion-plan-cost-list button { grid-column: 2 / -1; width: max-content; }
  .upgraded-registry .helion-cost-fields { grid-template-columns: 1fr; }
  .upgraded-registry .helion-economic-note { grid-column: auto; }
  .upgraded-registry .helion-allocation-head { align-items: flex-start; flex-direction: column; }
  .upgraded-registry .helion-allocation-method { grid-template-columns: 1fr; }
  .upgraded-registry .helion-model-choices,
  .upgraded-registry .helion-allocation-values { grid-template-columns: 1fr; }
}

/* MOVA position-first dashboard and staged withdrawal confirmation. */
.general-dashboard-page .money-overview-kpis {
  grid-template-columns: 1.08fr repeat(4, minmax(0, 1fr));
}
.account-balance-kpi .simple-value { margin: 8px 0 5px !important; }
.account-balance-kpi > p { gap: 5px !important; margin: 0; }
.account-balance-kpi .kpi-secondary-line {
  margin-top: 0;
  color: #aab4bd;
  letter-spacing: .08em;
}
.account-balance-kpi .kpi-secondary-line b { color: #eef2f4; }
.account-balance-kpi .kpi-secondary-line.onlyfans { color: #7addec; }
.account-balance-kpi .kpi-secondary-line.onlyfans b { color: #9de9f2; }
.actual-flow-kpi { --kpi-tone: #aab4bd; }
.actual-flow-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin: 9px 0 5px;
}
.actual-flow-split > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #2b343a;
  border-radius: 9px;
  background: rgba(255,255,255,.025);
}
.actual-flow-split span {
  color: #89939b;
  font-size: 7.5px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.actual-flow-split strong {
  overflow: hidden;
  color: #e8edf0;
  font: 700 13px Manrope, sans-serif;
  letter-spacing: -.025em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.actual-flow-split [data-dashboard-flow="income"] { border-color: rgba(94,229,162,.25); }
.actual-flow-split [data-dashboard-flow="income"] strong { color: #70e6aa; }
.actual-flow-split [data-dashboard-flow="expense"] { border-color: rgba(255,124,115,.25); }
.actual-flow-split [data-dashboard-flow="expense"] strong { color: #ff928b; }
/* Dashboard totals stay inside a content-sized card, even with many sources. */
.general-dashboard-page .income-composition > .income-total {
  min-width: 0;
  margin: 0;
  text-align: center;
}
.general-dashboard-page .income-composition > .income-total strong {
  display: block;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.general-dashboard-page .money-position-card > .income-total p {
  max-width: 58ch;
  margin: 9px auto 0;
  line-height: 1.6;
}
.general-dashboard-page .income-composition.money-position-card > * {
  min-width: 0;
  flex-shrink: 0;
}
.general-dashboard-page .money-position-card > .future-money-reserve {
  width: 100%;
  max-width: 100%;
  align-self: center;
}
.general-dashboard-page .money-position-card > .future-money-reserve > div:first-child,
.general-dashboard-page .money-position-card > .future-money-reserve > footer {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  text-align: center;
}
.general-dashboard-page .money-position-card > .future-money-reserve > div:first-child strong,
.general-dashboard-page .money-position-card > .future-money-reserve > footer b {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.general-dashboard-page .money-position-card > .future-money-reserve > p {
  text-align: left;
}
.general-dashboard-page .money-position-card > .future-money-reserve > p span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.general-dashboard-page .money-position-card > .future-money-reserve > p b {
  flex: 0 0 auto;
  max-width: 60%;
  overflow-wrap: anywhere;
  text-align: right;
}
.money-position-card .money-location-list {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.money-location-list i.confirmed {
  background: #e9c967;
  box-shadow: 0 0 10px rgba(233, 201, 103, .38);
}
.money-location-list i.saving {
  background: #a779f4;
  box-shadow: 0 0 10px rgba(167, 121, 244, .3);
}
.future-money-reserve p.money-cushion {
  margin-top: 11px;
  padding-top: 9px;
  border-top: 1px dashed #473a35;
  color: #c5b582;
}
.contextual-dashboard-mode button {
  min-width: 82px;
}
.notification-summary {
  grid-template-columns: .8fr .9fr 1.15fr 1.2fr;
}
.withdrawal-notification-card.transit {
  border-color: rgba(94, 215, 230, .3);
  background: linear-gradient(145deg, rgba(94, 215, 230, .055), #15191d 58%);
}
.withdrawal-notification-card.transit .notification-status {
  border-color: rgba(94, 215, 230, .32);
  background: rgba(94, 215, 230, .07);
  color: #77dbea;
}
.withdrawal-stage-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.withdrawal-stage-actions button {
  min-height: 39px;
  white-space: nowrap;
}
.registry-ai-source {
  display: grid;
  gap: 7px;
}
.registry-ai-photo-actions {
  display: grid;
  grid-template-columns: minmax(82px, .7fr) minmax(0, 1.3fr);
  gap: 7px;
}
.registry-ai-camera em { min-height: 58px; }
.registry-ai-review-badge {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin-top: 7px;
  padding: 4px 7px;
  border: 1px solid #343a40;
  border-radius: 999px;
  color: #9ba4ab;
  font-size: 6.5px;
}
.registry-ai-dictation {
  min-height: 29px;
  border: 1px solid #343a40;
  border-radius: 8px;
  background: #111519;
  color: #aeb5ba;
  font-size: 7px;
  font-weight: 700;
}
.registry-ai-audio-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px 9px;
  padding: 8px;
  border: 1px solid rgba(94, 215, 230, .2);
  border-radius: 9px;
  background: rgba(94, 215, 230, .045);
}
.registry-ai-audio-preview audio { grid-column: 1 / -1; width: 100%; height: 34px; }
.registry-ai-audio-preview span { color: #8fa1aa; font-size: 7px; }
.registry-ai-audio-preview button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid rgba(255, 128, 128, .26);
  border-radius: 7px;
  background: rgba(255, 128, 128, .06);
  color: #ff9898;
  font-size: 7px;
  font-weight: 750;
}

@media (max-width: 1120px) {
  /* Five cards used to leave a visibly empty third column on the second row.
     A six-track grid keeps the 3 + 2 composition balanced without changing
     the dashboard's information hierarchy. */
  .general-dashboard-page .money-overview-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .general-dashboard-page .money-overview-kpis > .simple-kpi { grid-column: span 2; }
  .general-dashboard-page .money-overview-kpis > .simple-kpi:nth-last-child(-n + 2) { grid-column: span 3; }
}
@media (max-width: 900px) {
  .notification-summary { grid-template-columns: 1fr 1fr; }
  .notification-summary article.owner { grid-column: auto; }
  .money-position-card .money-location-list { grid-template-columns: 1fr; }
  .general-dashboard-page .money-overview-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .general-dashboard-page .money-overview-kpis > .simple-kpi,
  .general-dashboard-page .money-overview-kpis > .simple-kpi:nth-last-child(-n + 2) { grid-column: span 1; }
  .general-dashboard-page .money-overview-kpis > .simple-kpi:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .general-dashboard-page .money-overview-kpis { grid-template-columns: 1fr; }
  .withdrawal-stage-actions { align-items: stretch; flex-direction: column; }
  .contextual-dashboard-mode button { min-width: 0; }
}

/* Fast confirmations and a persistent notification entry point. */
.sidebar-data-actions {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 7px;
  margin-bottom: 9px;
}
.sidebar-data-actions .sidebar-global-refresh { margin: 0; }
.sidebar-notification-bell {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 42px;
  border: 1px solid #333940;
  border-radius: 11px;
  background: linear-gradient(135deg, #181c20, #111519);
  color: #aeb6bc;
  cursor: pointer;
}
.sidebar-notification-bell > span { display: grid; width: 17px; height: 17px; place-items: center; }
.sidebar-notification-bell svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.sidebar-notification-bell > b {
  position: absolute;
  top: -5px;
  right: -5px;
  display: none;
  min-width: 16px;
  height: 16px;
  place-items: center;
  padding: 0 4px;
  border: 2px solid #0d1012;
  border-radius: 999px;
  background: #ff75d3;
  color: #160b13;
  font-size: 6.5px;
}
.sidebar-notification-bell.has-alerts { border-color: rgba(255,117,211,.38); color: #ff8cda; }
.sidebar-notification-bell.has-alerts > b { display: grid; }
.sidebar.collapsed .sidebar-data-actions { grid-template-columns: 42px; justify-content: center; }
.sidebar.collapsed .sidebar-data-actions .sidebar-global-refresh { width: 42px; }
.virtuality-receivable-row { flex-wrap: nowrap; }
.virtuality-receivable-action {
  flex: 0 0 auto;
  padding: 6px 8px;
  border: 1px solid color-mix(in srgb, var(--dashboard-accent) 35%, #343a40);
  border-radius: 8px;
  background: color-mix(in srgb, var(--dashboard-accent) 7%, #12161a);
  color: color-mix(in srgb, var(--dashboard-accent) 72%, #fff);
  font-size: 7px;
  font-weight: 750;
  white-space: nowrap;
}
.quick-settlement-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0;
}
.quick-settlement-summary > :is(span, label) {
  display: grid;
  gap: 5px;
  padding: 10px;
  border: 1px solid #30363b;
  border-radius: 9px;
  background: #111519;
}
.quick-settlement-summary small { color: #737d84; font-size: 6px; letter-spacing: .09em; }
.quick-settlement-summary b { overflow: hidden; color: #e5e8ea; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.quick-settlement-amount > span {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Registro Real · compositor de MOVA AI */
.upgraded-registry .registry-ai-capture {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 19px;
  margin-bottom: 18px;
  padding: 23px;
  overflow: hidden;
  border: 1px solid rgba(166, 126, 255, .24);
  border-radius: 18px;
  background:
    radial-gradient(circle at 8% 0%, rgba(166, 126, 255, .13), transparent 29%),
    radial-gradient(circle at 94% 100%, rgba(91, 216, 229, .07), transparent 32%),
    linear-gradient(145deg, #15191f, #0f1318 68%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045), 0 18px 50px rgba(0,0,0,.18);
}
.upgraded-registry .registry-ai-capture::before {
  content: '';
  position: absolute;
  width: 250px;
  height: 250px;
  top: -190px;
  right: 10%;
  border-radius: 50%;
  background: rgba(181, 142, 255, .16);
  filter: blur(52px);
  pointer-events: none;
}
.upgraded-registry .registry-ai-copy {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 0;
}
.upgraded-registry .registry-ai-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  border: 1px solid rgba(205, 184, 255, .34);
  border-radius: 16px;
  background: linear-gradient(145deg, #ab78f7, #6d4bd3);
  color: #fff;
  font-size: 19px;
  box-shadow: 0 12px 32px rgba(126, 76, 222, .28), inset 0 1px 0 rgba(255,255,255,.34);
}
.upgraded-registry .registry-ai-copy > div { min-width: 0; }
.upgraded-registry .registry-ai-copy small {
  margin-bottom: 5px;
  color: #b9a3ed;
  font-size: 7px;
  letter-spacing: .16em;
}
.upgraded-registry .registry-ai-copy h2 {
  margin: 0 0 5px;
  color: #f5f2fa;
  font: 700 17px/1.2 Manrope, sans-serif;
  letter-spacing: -.025em;
}
.upgraded-registry .registry-ai-copy p {
  max-width: 650px;
  margin: 0;
  color: #8f98a2;
  font-size: 8.5px;
  line-height: 1.55;
}
.upgraded-registry .registry-ai-review-badge {
  margin-top: 9px;
  padding: 5px 9px;
  border-color: rgba(175, 143, 245, .24);
  background: rgba(155, 111, 237, .075);
  color: #b9a7dd;
  font-size: 6.8px;
}
.registry-ai-workspace {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(235px, .8fr) minmax(390px, 1.55fr) minmax(165px, .48fr);
  align-items: stretch;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 15px;
  background: rgba(7, 10, 14, .36);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.registry-ai-workspace .registry-ai-source {
  align-content: start;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(255,255,255,.065);
  border-radius: 12px;
  background: rgba(17, 22, 28, .72);
}
.registry-ai-tools-title {
  color: #7f8993;
  font-size: 6.8px;
  font-weight: 750;
  letter-spacing: .14em;
}
.registry-ai-workspace .registry-ai-photo-actions { gap: 7px; }
.registry-ai-workspace .registry-ai-drop > span { margin-bottom: 5px; font-size: 6.2px; }
.registry-ai-workspace .registry-ai-drop em {
  min-height: 55px;
  height: 55px;
  border-color: rgba(255,255,255,.12);
  background: rgba(7, 10, 14, .52);
  color: #b8c0c8;
  transition: border-color 150ms ease, background 150ms ease, transform 150ms ease;
}
.registry-ai-workspace .registry-ai-drop:hover em {
  border-color: rgba(174, 140, 246, .55);
  background: rgba(156, 111, 239, .07);
  transform: translateY(-1px);
}
.registry-ai-workspace .registry-ai-description {
  display: flex;
  min-width: 0;
  flex-direction: column;
}
.registry-ai-workspace .registry-ai-description > span {
  margin: 2px 0 7px;
  color: #969fa8;
  font-size: 6.8px;
  letter-spacing: .14em;
}
.registry-ai-workspace .registry-ai-description textarea {
  width: 100%;
  min-height: 119px;
  height: 100%;
  padding: 14px 15px;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 12px;
  background: rgba(7, 10, 14, .7);
  color: #eff1f4;
  font: 500 11px/1.55 Manrope, sans-serif;
  caret-color: #b78cf8;
}
.registry-ai-workspace .registry-ai-description textarea::placeholder { color: #59636e; }
.registry-ai-workspace .registry-ai-description textarea:focus {
  border-color: rgba(174, 140, 246, .65);
  box-shadow: 0 0 0 3px rgba(159, 111, 239, .095), 0 12px 28px rgba(0,0,0,.16);
}
.registry-ai-workspace .registry-ai-action {
  min-width: 0;
  min-height: 48px;
  align-self: end;
  padding: 0 16px;
  border-color: rgba(211, 193, 255, .35);
  background: linear-gradient(135deg, #a86ff0, #7551da);
  color: #fff;
  font-size: 8.5px;
  box-shadow: 0 12px 28px rgba(110, 72, 207, .22), inset 0 1px 0 rgba(255,255,255,.24);
}
.registry-ai-workspace .registry-ai-action:hover {
  background: linear-gradient(135deg, #b77df7, #8060e5);
  box-shadow: 0 15px 34px rgba(110, 72, 207, .3), inset 0 1px 0 rgba(255,255,255,.3);
  transform: translateY(-1px);
}
.registry-ai-workspace .registry-ai-dictation {
  position: relative;
  min-height: 36px;
  padding: 0 11px 0 27px;
  border-color: rgba(175, 143, 245, .23);
  background: rgba(155, 111, 237, .07);
  color: #c2b2e6;
  font-size: 7.5px;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}
.registry-ai-workspace .registry-ai-dictation::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 50%;
  width: 7px;
  height: 7px;
  border: 1px solid currentColor;
  border-radius: 50%;
  transform: translateY(-50%);
}
.registry-ai-workspace .registry-ai-dictation:hover { border-color: rgba(183, 145, 255, .55); background: rgba(155, 111, 237, .12); color: #d8c8fa; }
.registry-ai-workspace .registry-ai-dictation.listening {
  border-color: rgba(255, 112, 190, .5);
  background: rgba(255, 93, 178, .1);
  color: #ff9bd2;
}
.registry-ai-workspace .registry-ai-dictation.listening::before {
  border-color: transparent;
  background: currentColor;
  box-shadow: 0 0 0 4px rgba(255, 117, 193, .1);
  animation: mova-dictation-pulse 1.35s ease-in-out infinite;
}
.registry-ai-workspace .registry-ai-dictation-hint {
  color: #77828d;
  font-size: 6.8px;
  line-height: 1.45;
  text-align: left;
}
.registry-ai-capture > .registry-ai-draft { position: relative; z-index: 1; }
@keyframes mova-dictation-pulse {
  50% { box-shadow: 0 0 0 7px rgba(255, 117, 193, 0); opacity: .72; }
}

@media (max-width: 1180px) {
  .functional-registry.upgraded-registry .registry-ai-capture { grid-template-columns: minmax(0,1fr); }
  .functional-registry.upgraded-registry .registry-ai-copy { grid-column: auto; }
  .registry-ai-workspace { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.45fr); }
  .registry-ai-workspace .registry-ai-action { width: 100%; grid-column: 1 / -1; justify-self: stretch; }
}

@media (max-width: 760px) {
  .functional-registry.upgraded-registry .registry-ai-capture { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 17px; border-radius: 15px; }
  .functional-registry.upgraded-registry .registry-ai-copy { grid-column: auto; align-items: flex-start; }
  .upgraded-registry .registry-ai-icon { width: 44px; height: 44px; flex-basis: 44px; border-radius: 13px; }
  .upgraded-registry .registry-ai-copy h2 { font-size: 15px; }
  .upgraded-registry .registry-ai-review-badge { width: 100%; justify-content: center; }
  .registry-ai-workspace { grid-template-columns: minmax(0,1fr); padding: 9px; }
  .registry-ai-workspace .registry-ai-action { grid-column: auto; min-height: 46px; }
  .registry-ai-workspace .registry-ai-description textarea { min-height: 125px; font-size: 16px; }
  .registry-ai-workspace .registry-ai-dictation { min-height: 44px; font-size: 8px; }
}

/* Finance clarity pass: neutral auth bootstrap, explicit account controls and compact sync sources. */
.auth-boot {
  position: fixed;
  z-index: 500;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background:
    radial-gradient(circle at 50% 45%, rgba(148, 101, 225, .11), transparent 30%),
    #090b0d;
  color: #f3f6f4;
}
.auth-boot-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, #c49aff, #7655d9);
  box-shadow: 0 0 34px rgba(155, 115, 238, .28);
  font: 800 19px Manrope, sans-serif;
}
.auth-boot > div:last-child { display: flex; flex-direction: column; gap: 4px; }
.auth-boot b { font: 650 13px Manrope, sans-serif; }
.auth-boot span { color: #7f8990; font-size: 9px; }
.session-persistence-note { margin-top: -13px; color: #667178; font-size: 9px; line-height: 1.45; }
.login-options .check input:disabled { opacity: 1; cursor: default; }

.profile { cursor: default; }
.profile:hover { background: #151a1e; }
.profile-avatar-wrap { position: relative; flex: 0 0 35px; }
.profile-crown {
  position: absolute;
  right: -5px;
  top: -7px;
  min-width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border: 2px solid var(--side);
  border-radius: 999px;
  background: linear-gradient(145deg, #f0cf72, #b9862e);
  color: #16110a;
  font-size: 10px;
  line-height: 1;
  box-shadow: 0 4px 12px #0008;
}
.profile-role {
  width: max-content;
  margin-top: 2px;
  padding: 2px 6px;
  border: 1px solid rgba(240, 207, 114, .24);
  border-radius: 999px;
  background: rgba(240, 207, 114, .07);
  color: #d9bc67;
  font: 750 7px Manrope, sans-serif;
  letter-spacing: .11em;
}
.profile-logout {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #687278;
  cursor: pointer;
}
.profile-logout:hover { border-color: #4a3540; background: #23191e; color: #ff9d98; }
.profile-logout:focus-visible { outline: 2px solid #f4f1f5; outline-offset: 2px; }
.sidebar.collapsed .profile-logout { display: none; }

.sidebar-refresh-status { display: grid; gap: 3px; min-height: 0; color: #7d868d; }
.sidebar-refresh-status:before { display: none; }
.sidebar-refresh-status .sync-source {
  display: grid;
  grid-template-columns: 6px 36px minmax(0, 1fr);
  align-items: center;
  gap: 5px;
  min-width: 0;
}
.sidebar-refresh-status .sync-source i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #626a72;
}
.sidebar-refresh-status .sync-source b { color: #aab1b6; font-size: 7.5px; }
.sidebar-refresh-status .sync-source em { overflow: hidden; color: #747d84; font-size: 7.5px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-refresh-status[data-state="loading"] .sync-source i { background: #55d9f3; box-shadow: 0 0 8px #55d9f366; }
.sidebar-refresh-status[data-state="success"] .sync-source i { background: #5ee5a2; }
.sidebar-refresh-status[data-state="partial"] .sync-source i { background: #e5c964; }
.sidebar-refresh-status[data-state="error"] .sync-source i { background: #ef7771; }
.sidebar-refresh-status .sync-source[data-state="loading"] i { background: #55d9f3; box-shadow: 0 0 8px #55d9f366; }
.sidebar-refresh-status .sync-source[data-state="success"] i { background: #5ee5a2; }
.sidebar-refresh-status .sync-source[data-state="partial"] i { background: #e5c964; }
.sidebar-refresh-status .sync-source[data-state="error"] i { background: #ef7771; }

/* Show several more ledger rows without turning the page into an unbounded list. */
.movement-ledger { max-height: min(520px, calc(100dvh - 260px)); min-height: 410px; }
.account-distribution-card { margin-top: 22px; }
.account-total-dual { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.account-total-dual .available-usd { display: grid; justify-items: end; gap: 3px; margin: 0 0 3px; text-align: right; }
.account-total-dual .available-usd small { display: block; color: #859098; font-size: 7px; font-weight: 750; letter-spacing: .11em; }
.account-total-dual .available-usd b { display: block; color: #d9e7ea; font: 650 16px Manrope, sans-serif; white-space: nowrap; }
.account-total-dual .available-usd span { display: block; color: #78838a; font-size: 8px; white-space: nowrap; }

.debt-account-card.provider-mercado-pago { position: relative; }
.debt-provider-context {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 10px 0 2px;
  padding: 9px 10px;
  border: 1px solid rgba(98, 217, 239, .13);
  border-radius: 10px;
  background: rgba(98, 217, 239, .035);
  color: #7e8a91;
  font-size: 8px;
  line-height: 1.45;
}
.debt-provider-context b { color: #b9d9df; }

.calendar-focus-switch {
  width: max-content;
  display: flex;
  gap: 4px;
  margin: -8px 0 16px;
  padding: 4px;
  border: 1px solid #30283a;
  border-radius: 11px;
  background: #111016;
}
.calendar-focus-switch button {
  height: 34px;
  padding: 0 14px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #817a88;
  font-size: 9px;
  cursor: pointer;
}
.calendar-focus-switch button.active { background: #2a2038; color: #e0cdf8; }
.calendar-focus-switch button:focus-visible { outline: 2px solid #f4f1f5; outline-offset: 2px; }
.calendar-day-event-preview.status-due_today { box-shadow: inset 0 0 0 1px rgba(240, 202, 104, .5); }
.calendar-day-event-preview.status-overdue { box-shadow: inset 0 0 0 1px rgba(255, 116, 116, .42); }
.calendar-month-insights.obligations article:nth-child(2) b { color: #f0ca68; }

.payment-notification-title { margin-top: 22px; }
.payment-notification-list { display: grid; gap: 18px; }
.payment-notification-group > header { display: flex; align-items: center; justify-content: space-between; margin: 0 2px 8px; }
.payment-notification-group > header small { color: #88818e; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.payment-notification-group > header b { color: #737b81; font-size: 9px; }
.payment-notification-group > div { display: grid; gap: 8px; }
.payment-notification-card {
  min-height: 82px;
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
}
.payment-notification-card.overdue { border-color: rgba(255, 116, 116, .32); background: linear-gradient(145deg, rgba(255,116,116,.07), #101417 52%); }
.payment-notification-card.due_today { border-color: rgba(240, 202, 104, .3); background: linear-gradient(145deg, rgba(240,202,104,.065), #101417 52%); }
.payment-notification-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: #241d2e; color: #c4a0f3; }
.payment-notification-card small { color: #958a9e; font-size: 7.5px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.payment-notification-card h3 { margin: 3px 0; font-size: 11px; }
.payment-notification-card p { margin: 0; color: #747e84; font-size: 8px; }
.payment-notification-card > strong { font: 700 13px Manrope, sans-serif; }
.payment-notification-card .action-btn { white-space: nowrap; }
.generic-notification-list { display: grid; gap: 8px; }
.generic-notification-card {
  min-height: 76px;
  display: grid;
  grid-template-columns: 36px minmax(0,1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
}
.generic-notification-card.active { border-color: rgba(168,124,245,.28); background: linear-gradient(145deg, rgba(168,124,245,.065), #101417 55%); }
.generic-notification-card.history { opacity: .78; }
.generic-notification-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 10px; background: #241d2e; color: #c4a0f3; }
.generic-notification-card small { color: #958a9e; font-size: 7.5px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.generic-notification-card h3 { margin: 3px 0; font-size: 11px; }
.generic-notification-card p { margin: 0; color: #747e84; font-size: 8px; }
.generic-notification-card > strong { font: 700 13px Manrope, sans-serif; }
.generic-notification-card > button { white-space: nowrap; }

@media (max-width: 760px) {
  .calendar-focus-switch { width: 100%; }
  .calendar-focus-switch button { flex: 1; padding: 0 8px; }
  .payment-notification-card { grid-template-columns: 34px minmax(0,1fr) auto; }
  .payment-notification-card .action-btn { grid-column: 2 / -1; width: 100%; }
  .generic-notification-card { grid-template-columns: 34px minmax(0,1fr) auto; }
  .generic-notification-card > strong { grid-column: 3; }
  .generic-notification-card > button { grid-column: 2 / -1; width: 100%; }
}

@media (max-width: 760px) {
  .movement-ledger { min-height: 360px; max-height: min(480px, calc(100dvh - 190px)); }
  .account-total-dual { align-items: flex-start; flex-direction: column; }
  .account-total-dual .available-usd { justify-items: start; text-align: left; }
}
.quick-settlement-amount input {
  min-width: 0;
  width: 100%;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: #f3f5f6;
  font-size: 11px;
  font-weight: 750;
}
.quick-settlement-amount input:focus { color: #fff; }
.quick-settlement-amount em { color: #9f79e9; font-size: 7px; font-style: normal; font-weight: 800; }
.quick-settlement-amount i { color: #68737a; font-size: 6px; font-style: normal; line-height: 1.25; }
.quick-settlement-error {
  margin: 12px 0 0;
  padding: 9px 11px;
  border: 1px solid rgba(255,124,115,.34);
  border-radius: 9px;
  background: rgba(255,124,115,.07);
  color: #ff9a94;
  font-size: 7.5px;
  line-height: 1.45;
}

/* Los botones de texto que cierran un modal no heredan el cuadro fijo del botón ×. */
.modal-actions > .modal-close {
  flex: 0 0 auto;
  width: auto;
  height: auto;
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #14191d;
  color: #b8c0c3;
}
.modal-actions > .modal-close:hover { border-color: #3a454b; background: #1a2024; color: #e5e8ea; }

.simple-kpi .remainder-ending-note {
  display: block;
  margin-top: 7px;
  padding-top: 7px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: #858e95;
  font-size: 7px;
}
.simple-kpi .remainder-ending-note b { color: #c6ccd0; font-size: inherit; }

@media (max-width: 760px) {
  .quick-settlement-summary { grid-template-columns: 1fr; }
  .virtuality-receivable-row { flex-wrap: wrap; }
  .virtuality-receivable-action { margin-left: 46px; }
}

/* Registro Real: captura primero, revisión después y un solo camino de guardado. */
.functional-registry.real-registry {
  display: flex;
  flex-direction: column;
}
.functional-registry.real-registry > .registry-page-head { order: 1; }
.functional-registry.real-registry > .registry-current-note { order: 2; }
.functional-registry.real-registry > .registry-ai-capture { order: 3; }
.functional-registry.real-registry > .registry-pending-confirmations { order: 4; }
.functional-registry.real-registry > .registry-manual-disclosure { order: 5; }
.functional-registry.real-registry > .remainder-summary { order: 6; margin-top: 16px; }

.registry-ai-capture .registry-ai-draft {
  grid-column: 1 / -1;
  display: grid;
  gap: 13px;
  padding: 16px;
  border: 1px solid #3b4249;
  border-radius: 13px;
  background: linear-gradient(145deg, #11161a, #0d1115);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}
.registry-ai-capture .registry-ai-draft.hidden { display: none; }
.registry-ai-draft-head,
.registry-ai-draft-actions,
.registry-pending-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.registry-ai-draft-head small,
.registry-ai-draft-grid small,
.registry-draft-receivables > small,
.registry-pending-head small {
  color: #89939a;
  font-size: 7px;
  font-weight: 750;
  letter-spacing: .11em;
}
.registry-ai-draft-head h3 { margin: 4px 0 0; color: #f2f4f5; font-size: 14px; }
.registry-ai-draft-head > span {
  padding: 6px 9px;
  border: 1px solid #394149;
  border-radius: 999px;
  background: #171c21;
  color: #c9d0d5;
  font-size: 8px;
  font-weight: 750;
}
.registry-ai-draft-head > span.income { border-color: rgba(96,232,170,.3); color: #76eab5; }
.registry-ai-draft-head > span.expense,
.registry-ai-draft-head > span.debt { border-color: rgba(255,124,119,.3); color: #ff918c; }
.registry-ai-draft-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.registry-ai-draft-grid > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 10px;
  border: 1px solid #2d343a;
  border-radius: 9px;
  background: #101519;
}
.registry-ai-draft-grid b { overflow: hidden; color: #dce1e4; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.registry-draft-evidence {
  margin: 0;
  padding: 9px 10px;
  border: 1px dashed #3d454c;
  border-radius: 9px;
  color: #aab2b8;
  font-size: 8px;
}
.registry-draft-receivables {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(110px, .55fr));
  align-items: center;
  gap: 8px;
  padding: 11px;
  border: 1px solid rgba(96,215,230,.2);
  border-radius: 10px;
  background: rgba(96,215,230,.035);
}
.registry-draft-receivables > span { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #b9c2c7; font-size: 8px; }
.registry-draft-receivables strong { color: #72dce9; font-size: 9px; }
.registry-draft-receivable-components { display: block; max-width: 560px; margin-top: 3px; color: #89969d; font-size: 7px; font-style: normal; font-weight: 500; line-height: 1.5; }
.registry-draft-receivables p { grid-column: 1 / -1; margin: 2px 0 0; color: #7e898f; font-size: 7.5px; line-height: 1.45; }
.registry-ai-draft-warnings { display: grid; gap: 6px; }
.registry-ai-draft-warnings p {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #c1aa87;
  font-size: 8px;
  line-height: 1.45;
}
.registry-ai-draft-warnings span {
  display: grid;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  place-items: center;
  border: 1px solid rgba(242,189,100,.28);
  border-radius: 50%;
  color: #efbd69;
  font-weight: 800;
}
.registry-ai-draft-actions { justify-content: flex-end; padding-top: 3px; }
.registry-ai-draft-actions button { min-height: 40px; }
.registry-ai-draft-actions .registry-ai-action:disabled { opacity: .42; cursor: not-allowed; transform: none; box-shadow: none; }
.registry-ai-dictation.listening { border-color: rgba(255,117,211,.45); background: rgba(255,117,211,.08); color: #ff91dc; }
.registry-ai-dictation-hint { color: #718087; font-size: 6.5px; line-height: 1.35; text-align: center; }
.registry-draft-transcript {
  margin: 0;
  padding: 10px 11px;
  border: 1px solid rgba(164, 126, 255, .2);
  border-radius: 9px;
  background: rgba(164, 126, 255, .045);
  color: #aab2b8;
  font-size: 8px;
  line-height: 1.55;
}
.registry-draft-transcript b { color: #c7b5ff; }
.registry-ai-action:disabled,
.registry-ai-dictation:disabled { opacity: .5; cursor: wait; }

/* MOVA AI en Registro Real: una sola revisión canónica, compacta y editable. */
.registry-ai-plan-head,
.registry-ai-plan-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.registry-ai-plan-head > div { min-width: 0; }
.registry-ai-plan-head small,
.registry-ai-plan-edit-card > div:first-child small,
.registry-ai-plan-assumptions small,
.registry-ai-plan-edit-grid span,
.registry-ai-plan-no-account span {
  color: #8c969d;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .1em;
}
.registry-ai-plan-head h3 {
  margin: 4px 0 0;
  color: #f1f4f6;
  font-size: 14px;
}
.registry-ai-plan-head > strong {
  color: #d7c5ff;
  font-size: 12px;
  white-space: nowrap;
}
.registry-ai-plan-related {
  padding: 6px 9px;
  border: 1px solid rgba(164, 126, 255, .25);
  border-radius: 999px;
  color: #c8b5f4;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .06em;
  white-space: nowrap;
}
.registry-ai-plan-list,
.registry-ai-plan-edit-list {
  display: grid;
  gap: 7px;
}
.registry-ai-plan-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #2d353b;
  border-radius: 10px;
  background: #101519;
}
.registry-ai-plan-type {
  padding: 5px 7px;
  border: 1px solid #39434a;
  border-radius: 999px;
  color: #c9d0d5;
  font-size: 7px;
  font-weight: 800;
  white-space: nowrap;
}
.registry-ai-plan-type.income { border-color: rgba(96,232,170,.3); color: #76eab5; }
.registry-ai-plan-type.expense,
.registry-ai-plan-type.debt { border-color: rgba(255,124,119,.3); color: #ff918c; }
.registry-ai-plan-type.saving { border-color: rgba(164,126,255,.34); color: #c3a8ff; }
.registry-ai-plan-type.transfer { border-color: rgba(96,215,230,.3); color: #76dce8; }
.registry-ai-plan-copy { display: grid; gap: 3px; min-width: 0; }
.registry-ai-plan-copy b {
  overflow: hidden;
  color: #e0e5e8;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.registry-ai-plan-copy small { overflow: hidden; color: #78858d; font-size: 7px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.registry-ai-plan-row > strong { color: #eef1f3; font-size: 9px; white-space: nowrap; }
.registry-ai-plan-value { display: grid; gap: 3px; justify-items: end; }
.registry-ai-plan-value small { color: #7ed9e4; font-size: 6.5px; font-weight: 700; }
.registry-ai-plan-assumptions,
.registry-ai-plan-evidence,
.registry-ai-plan-notice,
.registry-ai-plan-question,
.registry-ai-plan-message {
  margin: 0;
  padding: 10px 11px;
  border: 1px solid #30383f;
  border-radius: 9px;
  background: rgba(255,255,255,.018);
  color: #b5bec4;
  font-size: 8px;
  line-height: 1.55;
}
.registry-ai-plan-assumptions p { margin: 4px 0 0; color: #aeb7bd; }
.registry-ai-plan-evidence { border-style: dashed; color: #9aa6ad; }
.registry-ai-plan-notice,
.registry-ai-plan-question { border-color: rgba(164,126,255,.28); background: rgba(164,126,255,.055); color: #c9b8ef; }
.registry-ai-plan-message { font-size: 9px; }
.registry-ai-plan-foot { margin: -2px 0 0; color: #727d84; font-size: 7px; line-height: 1.45; }
.registry-ai-plan-actions { justify-content: flex-end; padding-top: 2px; }
.registry-ai-plan-actions button { min-height: 40px; }
.registry-ai-plan-actions button:disabled { opacity: .48; cursor: wait; }
.registry-ai-plan-edit-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #30383f;
  border-radius: 11px;
  background: #101519;
}
.registry-ai-plan-edit-card > div:first-child { display: grid; gap: 4px; }
.registry-ai-plan-edit-card > div:first-child b { color: #e2e6e9; font-size: 10px; }
.registry-ai-plan-edit-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(110px, 1fr));
  gap: 8px;
}
.registry-ai-plan-edit-grid .wide { grid-column: span 2; }
.registry-ai-plan-edit-grid label,
.registry-ai-plan-no-account { display: grid; gap: 5px; min-width: 0; }
.registry-ai-plan-edit-grid input,
.registry-ai-plan-edit-grid select,
.registry-ai-plan-no-account b {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid #303940;
  border-radius: 8px;
  outline: 0;
  background: #0c1114;
  color: #dbe0e3;
  font: 700 8px/1 var(--mova-font-body);
}
.registry-ai-plan-edit-grid input:focus,
.registry-ai-plan-edit-grid select:focus { border-color: #a47eff; box-shadow: 0 0 0 2px rgba(164,126,255,.1); }
.registry-ai-plan-no-account b { display: flex; align-items: center; color: #91a0a8; }

/* Configuración visible de MOVA AI: la clave permanece únicamente en el servidor. */
.mova-ai-settings {
  display: grid;
  gap: 16px;
  margin-bottom: 18px;
  padding: 21px;
  border-color: rgba(164, 126, 255, .28);
  background:
    radial-gradient(circle at 8% 0%, rgba(164, 126, 255, .13), transparent 34%),
    linear-gradient(145deg, rgba(18, 23, 29, .98), rgba(12, 16, 20, .98));
}
.mova-ai-settings-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
}
.mova-ai-settings-mark {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(164, 126, 255, .36);
  border-radius: 12px;
  background: rgba(164, 126, 255, .11);
  color: #c8b5ff;
  box-shadow: 0 0 24px rgba(164, 126, 255, .1);
  font-size: 15px;
}
.mova-ai-settings-head small {
  color: #9c86d9;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .12em;
}
.mova-ai-settings-head h2 { margin: 4px 0 3px; font-size: 19px; }
.mova-ai-settings-head p { margin: 0; color: #89939a; font-size: 9px; }
.mova-ai-status {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0 10px;
  border: 1px solid #3a4147;
  border-radius: 999px;
  color: #aeb6bc;
  font-size: 7px;
  font-weight: 800;
  white-space: nowrap;
}
.mova-ai-status.ready { border-color: rgba(94, 229, 162, .32); background: rgba(94, 229, 162, .08); color: #72e8af; }
.mova-ai-status.loading { border-color: rgba(94, 215, 230, .3); background: rgba(94, 215, 230, .07); color: #70dbe8; }
.mova-ai-status.warning { border-color: rgba(242, 189, 100, .3); background: rgba(242, 189, 100, .07); color: #edbf71; }
.mova-ai-settings-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 9px;
}
.mova-ai-settings-flow span {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  border: 1px solid #30373d;
  border-radius: 10px;
  background: #101519;
  color: #b9c1c6;
  font-size: 8px;
  font-weight: 700;
}
.mova-ai-settings-flow b {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 7px;
  background: rgba(164, 126, 255, .12);
  color: #c7b3ff;
  font-size: 8px;
}
.mova-ai-settings-flow i { color: #596168; font-size: 10px; font-style: normal; }
.mova-ai-settings-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 2px;
}
.mova-ai-settings-foot > div { display: grid; gap: 4px; }
.mova-ai-settings-foot b { color: #d7dcdf; font-size: 9px; }
.mova-ai-settings-foot small { color: #7f8990; font-size: 7.5px; }

@media (max-width: 760px) {
  .mova-ai-settings-head { grid-template-columns: 42px minmax(0, 1fr); }
  .mova-ai-settings-head .mova-ai-status { grid-column: 1 / -1; width: max-content; }
  .mova-ai-settings-flow { grid-template-columns: 1fr; }
  .mova-ai-settings-flow i { display: none; }
  .mova-ai-settings-foot { align-items: stretch; flex-direction: column; }
}

.registry-manual-disclosure {
  border: 1px solid #30363c;
  border-radius: 13px;
  background: #101418;
  overflow: hidden;
}
.registry-manual-disclosure > summary {
  min-height: 58px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 10px 14px;
  cursor: pointer;
  list-style: none;
}
.registry-manual-disclosure > summary::-webkit-details-marker { display: none; }
.registry-manual-disclosure > summary > span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 1px solid #3a4249;
  border-radius: 9px;
  color: #cbd1d5;
  font-size: 15px;
}
.registry-manual-disclosure > summary div { display: grid; gap: 3px; }
.registry-manual-disclosure > summary b { color: #e3e7e9; font-size: 10px; }
.registry-manual-disclosure > summary small { color: #768087; font-size: 8px; line-height: 1.4; }
.registry-manual-disclosure > summary em { color: #9ea7ad; font-size: 8px; font-style: normal; font-weight: 700; }
.registry-manual-disclosure[open] > summary { border-bottom: 1px solid #2d3338; background: #13181c; }
.registry-manual-disclosure[open] > summary > span { transform: rotate(45deg); }
.registry-manual-disclosure > .quick-register { border: 0; border-radius: 0; }

.registry-pending-confirmations { margin-bottom: 16px; padding: 16px; }
.registry-pending-head h2 { margin: 4px 0 3px; color: #eff2f3; font-size: 14px; }
.registry-pending-head p { margin: 0; color: #79838a; font-size: 8px; }
.registry-pending-head > span {
  padding: 5px 8px;
  border: 1px solid #394148;
  border-radius: 999px;
  color: #aeb6bb;
  font-size: 7px;
}
.registry-pending-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.registry-pending-item {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 10px;
  border: 1px solid #2f363c;
  border-radius: 10px;
  background: #101519;
}
.registry-pending-item > span { color: #ff8c87; font-size: 14px; }
.registry-pending-item.income > span { color: #6fe4ae; }
.registry-pending-item > div { display: grid; gap: 3px; min-width: 0; }
.registry-pending-item small { color: #788289; font-size: 6.5px; letter-spacing: .07em; text-transform: uppercase; }
.registry-pending-item b { overflow: hidden; color: #d8dde0; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
.registry-pending-item em { color: #687178; font-size: 7px; font-style: normal; }
.registry-pending-item > strong { color: #dfe3e5; font-size: 9px; white-space: nowrap; }
.registry-pending-item > button {
  min-height: 34px;
  padding: 0 9px;
  border: 1px solid #3a434a;
  border-radius: 8px;
  background: #171d21;
  color: #c5ccd0;
  font-size: 7px;
  font-weight: 750;
  cursor: pointer;
  white-space: nowrap;
}
.registry-pending-item > button:hover { border-color: #6d777e; background: #1c2328; }

@media (max-width: 1080px) {
  .registry-ai-draft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registry-ai-plan-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .registry-pending-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .functional-registry.real-registry > .remainder-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .functional-registry.real-registry > .remainder-summary > article { min-height: 104px; }
  .registry-ai-capture .registry-ai-draft { padding: 12px; }
  .registry-ai-draft-grid,
  .registry-draft-receivables { grid-template-columns: 1fr; }
  .registry-ai-draft-actions { align-items: stretch; flex-direction: column-reverse; }
  .registry-ai-draft-actions button { width: 100%; min-height: 44px; }
  .registry-ai-plan-head { align-items: flex-start; }
  .registry-ai-plan-row { grid-template-columns: minmax(0, 1fr) auto; }
  .registry-ai-plan-type { grid-column: 1 / -1; justify-self: start; }
  .registry-ai-plan-copy small { white-space: normal; }
  .registry-ai-plan-edit-grid { grid-template-columns: 1fr; }
  .registry-ai-plan-edit-grid .wide { grid-column: auto; }
  .registry-ai-plan-actions { align-items: stretch; flex-direction: column-reverse; }
  .registry-ai-plan-actions button { width: 100%; min-height: 44px; }
  .registry-manual-disclosure > summary { min-height: 66px; grid-template-columns: 34px minmax(0, 1fr); }
  .registry-manual-disclosure > summary em { grid-column: 2; }
  .registry-pending-head { align-items: flex-start; }
  .registry-pending-item { grid-template-columns: 26px minmax(0, 1fr) auto; }
  .registry-pending-item > button { grid-column: 2 / -1; min-height: 42px; }
}

@media (max-width: 760px) {
  .analysis-view-tabs { width: 100%; }
  .analysis-view-tabs button { min-width: 0; flex: 1; }
  .analysis-forecast-summary,
  .analysis-forecast-control-grid,
  .analysis-forecast-layout,
  .analysis-forecast-goals > div:last-child { grid-template-columns: 1fr; }
  .analysis-section-copy { flex-direction: column; }
  .analysis-section-copy > p { max-width: none; text-align: left; }
  .analysis-horizon { text-align: left; }
  .forecast-table-scroll { overflow-x: auto; }
  .forecast-chart-month { grid-template-columns: 56px minmax(0, 1fr); gap: 9px; }
}

/* ================================================================
   MOVA · Coherencia visual semántica
   Una misma lectura para todas las vistas: el tipo de dato define
   fondo, borde y cifra. Esta capa no altera contenido ni interacción.
   ================================================================ */

:root {
  --visual-income: #62e6a8;
  --visual-expense: #ff8580;
  --visual-debt: #e8c85f;
  --visual-saving: #b991f0;
  --visual-transfer: #62d9ea;
  --visual-neutral: #eef1f2;
  --visual-positive-surface: #102019;
  --visual-negative-surface: #221617;
  --visual-debt-surface: #211e13;
  --visual-saving-surface: #1d1825;
  --visual-transfer-surface: #111d21;
  --visual-neutral-surface: #171b20;
  --mova-text-secondary: #a7afb5;
  --mova-text-muted: #89939b;
  --mova-border: #32383f;
  --mova-border-strong: #49515a;
  --mova-shadow-card: 0 14px 34px #0000002b, inset 0 1px #ffffff05;
}

/* General conserva identidad blanca/perla; los colores vivos quedan para
   categorías financieras y para las empresas con identidad propia. */
.general-dashboard-page {
  --business-context-accent: #f2f0f3 !important;
  --business-context-secondary: #aeb7bd !important;
  --selector-accent: #f2f0f3 !important;
}

.general-dashboard-page .dashboard-switcher button.active,
.general-dashboard-page .dashboard-mode button.active,
.general-dashboard-page .segmented button.active {
  background: linear-gradient(135deg, #f2f0f3, #d9dde0) !important;
  color: #111418 !important;
  box-shadow: 0 6px 16px #0005, inset 0 0 0 1px #ffffffb8 !important;
}

.general-dashboard-page .data-cutoff span {
  background: #f2f0f3 !important;
  box-shadow: 0 0 11px rgba(242,240,243,.38) !important;
}

.page {
  padding-top: 32px;
}

.card {
  border-radius: 16px;
  box-shadow: var(--mova-shadow-card);
}

.page-head h1,
.upgraded-registry .registry-page-head h1,
.registry-visualizer .registry-page-head h1,
.dashboard-themed .identity-page-head h1,
.general-dashboard-page .identity-page-head h1,
.source-dashboard-page .identity-page-head h1 {
  font-size: clamp(31px, 3vw, 36px);
  font-weight: 680;
  letter-spacing: -.045em;
}

.page-head p,
.upgraded-registry .registry-page-head p,
.registry-visualizer .registry-page-head p {
  color: var(--mova-text-secondary);
  font-size: 12.5px;
  line-height: 1.55;
}

.section-title-row h2,
.simple-section-head h2,
.history-section-head h2,
.analysis-card-head h2,
.analysis-indicators h2,
.analysis-secondary-grid h2 {
  color: #f0f2f3;
  font-size: 17px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.section-title-row p,
.simple-section-head p,
.history-section-head p,
.analysis-card-head p {
  color: var(--mova-text-muted);
  font-size: 9.5px;
  line-height: 1.5;
}

/* Tarjetas de Dashboard: lectura rápida con color semántico completo. */
.simple-kpi {
  --kpi-tone: var(--visual-neutral);
  --kpi-surface: var(--visual-neutral-surface);
  position: relative;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--kpi-tone) 32%, var(--mova-border)) !important;
  background:
    radial-gradient(circle at 88% 14%, color-mix(in srgb, var(--kpi-tone) 13%, transparent), transparent 36%),
    linear-gradient(145deg, color-mix(in srgb, var(--kpi-tone) 6%, var(--kpi-surface)), #101418 76%) !important;
}

.simple-kpi:is(.income, .positive, .general-income-kpi) {
  --kpi-tone: var(--visual-income);
  --kpi-surface: var(--visual-positive-surface);
}

.simple-kpi:is(.expense, .negative, .general-expense-kpi) {
  --kpi-tone: var(--visual-expense);
  --kpi-surface: var(--visual-negative-surface);
}

.simple-kpi:is(.debt, .general-debt-kpi) {
  --kpi-tone: var(--visual-debt);
  --kpi-surface: var(--visual-debt-surface);
}

.simple-kpi:is(.saving, .savings, .general-saving-kpi) {
  --kpi-tone: var(--visual-saving);
  --kpi-surface: var(--visual-saving-surface);
}

.simple-kpi:is(.neutral, .transfer) {
  --kpi-tone: var(--visual-transfer);
  --kpi-surface: var(--visual-transfer-surface);
}

.general-dashboard-page .simple-kpi:is(.featured, .purple, .available-highlight),
.general-dashboard-page .simple-kpi.general-remaining-kpi {
  --kpi-tone: var(--visual-neutral);
  --kpi-surface: var(--visual-neutral-surface);
}

.simple-kpi .kpi-label {
  color: color-mix(in srgb, var(--kpi-tone) 76%, #a9b0b6);
  font-size: 9.5px;
  font-weight: 760;
  letter-spacing: .13em;
  line-height: 1.35;
}

.simple-kpi .simple-value {
  color: var(--kpi-tone) !important;
  font-size: clamp(23px, 2.35vw, 28px);
  font-weight: 670;
  letter-spacing: -.04em;
}

.simple-kpi p,
.simple-kpi > small,
.simple-kpi .remainder-ending-note {
  color: color-mix(in srgb, var(--kpi-tone) 24%, #8f989f);
  font-size: 9.5px;
  line-height: 1.5;
}

.general-dashboard-page .money-overview-kpis .simple-kpi,
.source-dashboard-page .fv-business-kpis .simple-kpi,
.fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi {
  min-height: 142px !important;
  padding: 20px;
}

#page[data-dashboard-theme="helion"] .fv-business-kpis .simple-kpi:nth-child(1),
#page[data-dashboard-theme="helion"] .fv-business-kpis .simple-kpi:nth-child(6) {
  --kpi-tone: var(--visual-income);
  --kpi-surface: var(--visual-positive-surface);
}

#page[data-dashboard-theme="helion"] .fv-business-kpis .simple-kpi:nth-child(2) {
  --kpi-tone: var(--visual-expense);
  --kpi-surface: var(--visual-negative-surface);
}

#page[data-dashboard-theme="helion"] .fv-business-kpis .simple-kpi:is(:nth-child(3), :nth-child(4), :nth-child(5)) {
  --kpi-tone: var(--visual-transfer);
  --kpi-surface: var(--visual-transfer-surface);
}

#page[data-dashboard-theme="virtuality"] .fv-business-kpis .simple-kpi:nth-child(1) {
  --kpi-tone: var(--visual-income);
  --kpi-surface: var(--visual-positive-surface);
}

#page[data-dashboard-theme="virtuality"] .fv-business-kpis .simple-kpi:nth-child(2) {
  --kpi-tone: var(--visual-transfer);
  --kpi-surface: var(--visual-transfer-surface);
}

#page[data-dashboard-theme="virtuality"] .fv-business-kpis .simple-kpi:nth-child(3) {
  --kpi-tone: var(--visual-expense);
  --kpi-surface: var(--visual-negative-surface);
}

#page[data-dashboard-theme="virtuality"] .fv-business-kpis .simple-kpi:nth-child(4) {
  --kpi-tone: var(--visual-debt);
  --kpi-surface: var(--visual-debt-surface);
}

#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(1),
#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(6) {
  --kpi-tone: var(--visual-income);
  --kpi-surface: var(--visual-positive-surface);
}

#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(2) {
  --kpi-tone: var(--visual-expense);
  --kpi-surface: var(--visual-negative-surface);
}

#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(3) {
  --kpi-tone: var(--visual-debt);
  --kpi-surface: var(--visual-debt-surface);
}

#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(4) {
  --kpi-tone: var(--visual-saving);
  --kpi-surface: var(--visual-saving-surface);
}

#page[data-dashboard-theme="otros"] .fv-business-kpis .simple-kpi:nth-child(5) {
  --kpi-tone: var(--visual-transfer);
  --kpi-surface: var(--visual-transfer-surface);
}

#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(1),
#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(6) {
  --kpi-tone: var(--visual-income);
  --kpi-surface: var(--visual-positive-surface);
}

#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(2) {
  --kpi-tone: var(--visual-expense);
  --kpi-surface: var(--visual-negative-surface);
}

#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(3),
#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(5) {
  --kpi-tone: var(--visual-debt);
  --kpi-surface: var(--visual-debt-surface);
}

#page[data-dashboard-theme="personal"] .fv-business-kpis .simple-kpi:nth-child(4) {
  --kpi-tone: var(--visual-saving);
  --kpi-surface: var(--visual-saving-surface);
}

/* Panorama y Registro: el patrón favorito se convierte en sistema. */
.registry-kpi {
  --kpi-tone: var(--visual-neutral);
  --kpi-surface: var(--visual-neutral-surface);
  border-color: color-mix(in srgb, var(--kpi-tone) 38%, var(--mova-border)) !important;
  background:
    radial-gradient(circle at 88% 20%, color-mix(in srgb, var(--kpi-tone) 12%, transparent), transparent 38%),
    linear-gradient(145deg, color-mix(in srgb, var(--kpi-tone) 8%, var(--kpi-surface)), #101418 76%) !important;
}

.registry-kpi.income { --kpi-tone: var(--visual-income); --kpi-surface: var(--visual-positive-surface); }
.registry-kpi.expense { --kpi-tone: var(--visual-expense); --kpi-surface: var(--visual-negative-surface); }
.registry-kpi.debt { --kpi-tone: var(--visual-debt); --kpi-surface: var(--visual-debt-surface); }
.registry-kpi.saving { --kpi-tone: var(--visual-saving); --kpi-surface: var(--visual-saving-surface); }
.registry-kpi.remaining { --kpi-tone: var(--visual-neutral); --kpi-surface: var(--visual-neutral-surface); }

.registry-kpi small {
  color: color-mix(in srgb, var(--kpi-tone) 78%, #aab2b8) !important;
  font-size: 9.5px !important;
  line-height: 1.35;
}

.registry-kpi > strong {
  color: var(--kpi-tone) !important;
  font-size: clamp(22px, 2.3vw, 27px) !important;
}

.registry-kpi > span {
  color: color-mix(in srgb, var(--kpi-tone) 24%, #939ba2) !important;
  font-size: 9.5px !important;
  line-height: 1.45;
}

.registry-type-group {
  border-color: color-mix(in srgb, var(--type-color) 30%, var(--mova-border));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--type-color) 8%, #12171b), #0f1317 70%);
}

.registry-type-group.withdrawal { --type-color: var(--visual-transfer) !important; }

.registry-type-summary > div:nth-child(2) small { font-size: 9px; }
.registry-type-summary > div:nth-child(2) b { color: #9aa3aa; font-size: 9px; }
.registry-type-summary > strong { color: var(--type-color); font-size: 12px; }

/* Resúmenes transversales de gestión. */
.movement-summary-strip article,
.debt-summary-grid article,
.savings-summary-grid article,
.analysis-kpis article,
.calendar-month-insights article,
.history-kpi {
  --summary-tone: var(--visual-neutral);
  --summary-surface: var(--visual-neutral-surface);
  border-color: color-mix(in srgb, var(--summary-tone) 34%, var(--mova-border)) !important;
  background:
    radial-gradient(circle at 88% 16%, color-mix(in srgb, var(--summary-tone) 11%, transparent), transparent 38%),
    linear-gradient(145deg, color-mix(in srgb, var(--summary-tone) 7%, var(--summary-surface)), #101418 76%) !important;
}

.movement-summary-strip article:first-child,
.debt-summary-grid article:nth-child(2),
.debt-summary-grid article:nth-child(6),
.savings-summary-grid article.total,
.analysis-kpis article:first-child,
.calendar-month-insights article:first-child,
.history-kpi.positive {
  --summary-tone: var(--visual-income);
  --summary-surface: var(--visual-positive-surface);
}

.movement-summary-strip article:nth-child(2),
.movement-summary-strip article:has(b.negative),
.debt-summary-grid article:first-child,
.debt-summary-grid article:last-child,
.analysis-kpis article:nth-child(2),
.calendar-month-insights article.has-overdue,
.history-kpi.negative {
  --summary-tone: var(--visual-expense);
  --summary-surface: var(--visual-negative-surface);
}

.debt-summary-grid article:is(:nth-child(5)),
.analysis-kpis article:nth-child(4),
.calendar-month-insights article:nth-child(2) {
  --summary-tone: var(--visual-debt);
  --summary-surface: var(--visual-debt-surface);
}

.debt-summary-grid article:nth-child(3),
.savings-summary-grid article.assigned,
.history-kpi.saving {
  --summary-tone: var(--visual-saving);
  --summary-surface: var(--visual-saving-surface);
}

.debt-summary-grid article:nth-child(4),
.savings-summary-grid article.free {
  --summary-tone: var(--visual-transfer);
  --summary-surface: var(--visual-transfer-surface);
}

.movement-summary-strip article:has(b.positive) {
  --summary-tone: var(--visual-income);
  --summary-surface: var(--visual-positive-surface);
}

.history-kpis .history-kpi:nth-child(4) {
  --summary-tone: var(--visual-debt);
  --summary-surface: var(--visual-debt-surface);
}

.history-quick-ranges button.active,
.history-range-presets button.active {
  border-color: #f2f0f366;
  background: linear-gradient(135deg, #f2f0f3, #d9dde0);
  color: #111418;
  box-shadow: 0 5px 14px #0004;
}

.movement-summary-strip span,
.debt-summary-grid span,
.savings-summary-grid span,
.analysis-kpis span,
.calendar-month-insights small,
.history-kpi small {
  color: color-mix(in srgb, var(--summary-tone) 72%, #a7afb5) !important;
  font-size: 9.5px !important;
  line-height: 1.35;
}

.movement-summary-strip b,
.debt-summary-grid b,
.savings-summary-grid b,
.analysis-kpis b,
.calendar-month-insights b,
.history-kpi strong {
  color: var(--summary-tone) !important;
  font-size: clamp(18px, 2vw, 23px);
}

.savings-summary-grid small,
.calendar-month-insights span {
  color: color-mix(in srgb, var(--summary-tone) 22%, #9099a0);
  font-size: 9.5px;
  line-height: 1.45;
}

/* Las tarjetas largas mantienen el color como guía, sin volverse pesadas. */
.debt-account-card {
  border-color: color-mix(in srgb, var(--visual-debt) 24%, var(--mova-border));
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--visual-debt) 6%, transparent), transparent 34%),
    linear-gradient(145deg, #151a1f, #101418 76%);
}

.debt-account-card.paid-period {
  border-color: color-mix(in srgb, var(--visual-income) 34%, var(--mova-border));
}

.saving-goal-card {
  border-color: color-mix(in srgb, var(--visual-saving) 28%, var(--mova-border));
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--visual-saving) 9%, transparent), transparent 38%),
    linear-gradient(145deg, #171923, #101418 76%);
}

.saving-goal-card .saving-goal-value strong,
.saving-goal-card .saving-goal-facts b { color: var(--visual-saving); }

.movement-ledger-row,
.registry-type-ledger-row,
.history-ledger-row,
.savings-location-row {
  transition: background-color 150ms ease, border-color 150ms ease;
}

.movement-ledger-row:hover,
.registry-type-ledger-row:hover,
.history-ledger-row:hover,
.savings-location-row:hover {
  background: #ffffff05;
}

/* Controles y navegación: mayor precisión visual y táctil. */
.dashboard-switcher,
.dashboard-mode,
.history-filter,
.settings-tabs,
.registry-visual-toolbar,
.analysis-toolbar,
.debt-filter-bar {
  border-radius: 13px;
  background: linear-gradient(145deg, #13181d, #0f1317);
}

.dashboard-switcher button,
.dashboard-mode button,
.history-filter button,
.settings-tabs button,
.registry-visual-tabs button,
.analysis-business-switcher > button,
.analysis-period-switcher button,
.debt-filter-bar button {
  min-height: 36px;
  font-size: 10px;
  font-weight: 650;
}

.action-btn,
.secondary,
.filter,
.registry-save,
.registry-ai-action {
  min-height: 40px;
  font-size: 10.5px;
  font-weight: 680;
}

.movement-primary-filters label > span,
.movement-extra-filters label > span,
.movement-date-range label > span,
.calendar-filter-toolbar label > span,
.quick-register-form label > span,
.registry-ai-copy small,
.registry-ai-drop > span,
.registry-ai-description > span,
.mova-form-grid label,
.currency-settings > label > span {
  font-size: 9px;
}

.movement-ledger-row > span b,
.registry-type-ledger-row > div:nth-child(2) b,
.history-ledger-row > div b { font-size: 10.5px; }

.movement-ledger-row > span small,
.registry-type-ledger-row > div:nth-child(2) small,
.history-ledger-row > div small,
.movement-ledger-row time { color: #8f989f; font-size: 8.5px; }

.movement-ledger-row > strong,
.registry-type-ledger-row > strong,
.history-ledger-row > strong { font-size: 11.5px; }

@media (max-width: 1180px) {
  .general-dashboard-page .money-overview-kpis .simple-kpi,
  .source-dashboard-page .fv-business-kpis .simple-kpi,
  .fv-virtuality-dashboard .fv-virtuality-kpis .simple-kpi { min-height: 132px !important; }
}

@media (max-width: 760px) {
  .page { padding-top: 24px; }
  .page-head h1,
  .upgraded-registry .registry-page-head h1,
  .registry-visualizer .registry-page-head h1,
  .dashboard-themed .identity-page-head h1,
  .general-dashboard-page .identity-page-head h1,
  .source-dashboard-page .identity-page-head h1 { font-size: 29px; }
  .page-head p,
  .upgraded-registry .registry-page-head p,
  .registry-visualizer .registry-page-head p { font-size: 11.5px; }
  .simple-kpi .simple-value,
  .registry-kpi > strong { font-size: 24px !important; }
  .dashboard-switcher button,
  .dashboard-mode button,
  .history-filter button,
  .settings-tabs button,
  .registry-visual-tabs button,
  .analysis-business-switcher > button,
  .analysis-period-switcher button,
  .debt-filter-bar button { min-height: 39px; }
}

/* Identidad de empresa aplicada al título, sin puntos ni encabezados extra. */
#page[data-dashboard-theme="helion"] .page-head h1,
#page[data-dashboard-theme="virtuality"] .page-head h1,
#page[data-dashboard-theme="otros"] .page-head h1,
#page[data-dashboard-theme="personal"] .page-head h1 {
  color: color-mix(in srgb, var(--dashboard-accent) 66%, #ffffff);
  text-shadow: 0 0 24px color-mix(in srgb, var(--dashboard-accent) 16%, transparent);
}

/* Helion: conserva detalle por modelo, pero deja de depender de microtexto. */
.fv-helion-model-card header small,
.fv-helion-model-metrics small,
.helion-platform-totals small,
.helion-platform-model header small,
.helion-platform-model-values small,
.helion-reality-strip small {
  font-size: 9px;
  line-height: 1.35;
}

.fv-helion-model-card header p,
.helion-platform-totals span,
.helion-platform-model-values em,
.helion-reality-strip span {
  color: #8c969d;
  font-size: 9px;
  line-height: 1.45;
}

.helion-reality-strip .paid {
  background: linear-gradient(145deg, rgba(255,133,128,.07), #12171a 75%);
}

.helion-reality-strip .pending {
  background: linear-gradient(145deg, rgba(232,200,95,.07), #12171a 75%);
}

.helion-platform-totals article:nth-child(2) {
  background: linear-gradient(145deg, rgba(232,200,95,.07), #12171a 75%);
}

.helion-platform-totals article.transit {
  background: linear-gradient(145deg, rgba(98,217,234,.07), #12171a 75%);
}

.helion-platform-totals article:last-child {
  border-color: rgba(238,241,242,.2);
  background: linear-gradient(145deg, rgba(238,241,242,.045), #12171a 75%);
}

.virtuality-receivable-action {
  min-height: 33px;
  padding: 0 10px;
  font-size: 9.5px;
}

.virtuality-head-actions > small {
  width: max-content;
  padding: 5px 8px;
  border: 1px solid color-mix(in srgb, var(--dashboard-accent) 18%, #30363c);
  border-radius: 999px;
  background: color-mix(in srgb, var(--dashboard-accent) 5%, #111519);
  color: #8f9ba2;
  font-size: 9px;
}

.fv-virtuality-total p { font-size: 11px; line-height: 1.5; }

/* Cuentas: una placa uniforme evita que una marca pese más que otra. */
.accounts-current-summary {
  border-color: color-mix(in srgb, var(--visual-neutral) 28%, var(--mova-border));
  background:
    radial-gradient(circle at 84% 30%, rgba(255,255,255,.075), transparent 34%),
    linear-gradient(145deg, #1a1f24, #111519 76%);
}

.accounts-current-summary span { color: #bec4c8; font-size: 9px; }
.accounts-current-summary strong { color: var(--visual-neutral); font-size: 34px; }
.accounts-current-summary small { color: #929ba2; font-size: 9.5px; }
.accounts-opening-note { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 18px; margin-bottom: 18px; }
.accounts-opening-note > div { flex: 1 1 250px; min-width: 0; }
.accounts-opening-note b { color: var(--visual-neutral); font-size: 12px; }
.accounts-opening-note p { margin: 5px 0 0; color: #929ba2; font-size: 11px; line-height: 1.5; }
.accounts-opening-note button { max-width: 100%; white-space: normal; }

.account-brand-logo {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  padding: 7px !important;
  border: 1px solid #343b42;
  border-radius: 11px;
  background: #e9ecef !important;
}

.account-brand-logo.is-binance { background: #171b1f !important; }
.account-brand-logo.fallback { background: #242a30 !important; }
.account-brand-logo img { width: 100%; height: 100%; max-width: 28px; max-height: 28px; margin: auto; }
.account-brand-logo.is-uala img { max-width: 100%; max-height: 100%; }
.account-brand-logo.is-switch {
  padding: 7px !important;
  border-color: rgba(255, 69, 84, .42);
  background: #e60012 !important;
}
.account-brand-logo.is-switch img { max-width: 100%; max-height: 100%; }
.account-brand-logo.is-coppel {
  width: 74px;
  flex-basis: 74px;
  padding: 5px 7px !important;
  border-color: rgba(255, 220, 0, .35);
  background: #ffdc00 !important;
}
.account-brand-logo.is-coppel img { max-width: 60px; max-height: 30px; }
.account-brand-logo.debt-generic-icon {
  display: grid;
  place-items: center;
  padding: 8px !important;
  color: #d9e1e6;
  background: #242a30 !important;
}
.account-brand-logo.debt-generic-icon.is-personal {
  border-color: rgba(177, 125, 255, .34);
  color: #c8a7ff;
  background: linear-gradient(145deg, #2b2337, #1a1821) !important;
}
.account-brand-logo.debt-generic-icon.is-loan {
  border-color: rgba(245, 203, 77, .3);
  color: #f5cb4d;
  background: linear-gradient(145deg, #302b1d, #1d1c18) !important;
}
.account-brand-logo.debt-generic-icon.is-other {
  border-color: rgba(120, 207, 228, .28);
  color: #8ad7e9;
  background: linear-gradient(145deg, #1d2b30, #171d20) !important;
}
.account-brand-logo.debt-generic-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Calendario: chips legibles y celdas capaces de alojar sus previews. */
.calendar-legend {
  gap: 7px;
  font-size: 9px;
}

.calendar-legend span {
  --legend-tone: var(--visual-neutral);
  min-height: 29px;
  padding: 5px 9px;
  border: 1px solid color-mix(in srgb, var(--legend-tone) 25%, var(--mova-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--legend-tone) 7%, #111519);
  color: color-mix(in srgb, var(--legend-tone) 62%, #c7cdd1);
  font-weight: 650;
}

.calendar-legend span:has(.green) { --legend-tone: var(--visual-income); }
.calendar-legend span:has(.red) { --legend-tone: var(--visual-expense); }
.calendar-legend span:has(.purple) { --legend-tone: var(--visual-debt); }
.calendar-legend span:has(.cyan) { --legend-tone: var(--visual-transfer); }
.calendar-legend span:has(.yellow) { --legend-tone: #d9a6e8; }
.calendar-legend .purple { background: var(--visual-debt); }
.calendar-legend .yellow { background: #d9a6e8; }

.smart-calendar .calendar-grid { grid-auto-rows: 156px; }
.smart-calendar .day { height: 156px; min-height: 156px; }
.smart-calendar .event.income { --event-type: var(--visual-income) !important; }
.smart-calendar .event.expense { --event-type: var(--visual-expense) !important; }
.smart-calendar .event.debt { --event-type: var(--visual-debt) !important; }
.smart-calendar .event.saving { --event-type: var(--visual-saving) !important; }
.smart-calendar .event.transfer,
.smart-calendar .event.withdrawal { --event-type: var(--visual-transfer) !important; }
.smart-calendar .event.reminder { --event-type: #d9a6e8 !important; }

.smart-calendar .calendar-head div,
.smart-calendar .event b { font-size: 9px; }
.smart-calendar .event small,
.smart-calendar .event em { font-size: 8px; }

/* Análisis: comparación visible sin llenar la pantalla de cajas vacías. */
.analysis-card-head > div:last-child,
.analysis-bars > div > b,
.analysis-line-list span { font-size: 9.5px; }

.analysis-line-list strong { font-size: 11px; }
.analysis-bars > div > div { gap: 4px; }
.analysis-bars > div > div > i { width: 11px; }
.analysis-secondary-grid > .card { min-height: 235px; }

.analysis-forecast-presets button,
.forecast-presets button {
  min-height: 34px;
  font-size: 10px;
}

/* Estado real y vacíos: más claros, menos sensación de placeholder. */
.real-registry .registry-current-note {
  border-color: color-mix(in srgb, var(--visual-income) 22%, var(--mova-border));
  background: linear-gradient(100deg, rgba(98,230,168,.065), #111418 62%);
}

.real-registry .registry-current-note > span {
  background: rgba(98,230,168,.1);
  color: var(--visual-income);
}

.movement-empty,
.range-empty,
.registry-type-empty {
  border-color: #343b42;
  background: linear-gradient(145deg, #13181d, #101418);
}

/* Dashboard: el remanente económico y la liquidez dejan de competir por el mismo número. */
.dashboard-remainder-reconciliation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1.08fr) minmax(0, 1.18fr);
  gap: 10px;
  align-items: stretch;
  margin: 14px 0 20px;
  padding: 12px;
  border-color: rgba(255,255,255,.13);
  background: linear-gradient(115deg, #11161a, #0f1317 62%, rgba(93,215,230,.035));
}

.dashboard-remainder-reconciliation.no-liquidity {
  grid-template-columns: minmax(0, 1fr) 22px minmax(0, 1fr) 22px minmax(0, 1.08fr);
}

.dashboard-remainder-reconciliation .remainder-part {
  display: flex;
  min-width: 0;
  min-height: 88px;
  padding: 14px 15px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 13px;
  background: rgba(255,255,255,.018);
  flex-direction: column;
  justify-content: center;
}

.dashboard-remainder-reconciliation small {
  color: #929ca3;
  font-size: 8px;
  font-weight: 750;
  letter-spacing: .12em;
}

.dashboard-remainder-reconciliation strong {
  margin-top: 7px;
  color: #f3f5f6;
  font-size: clamp(20px, 2vw, 27px);
  letter-spacing: -.035em;
}

.dashboard-remainder-reconciliation strong.positive { color: var(--visual-income); }
.dashboard-remainder-reconciliation strong.negative { color: var(--visual-expense); }

.dashboard-remainder-reconciliation .remainder-part > span {
  margin-top: 5px;
  color: #778188;
  font-size: 8.5px;
  line-height: 1.35;
}

.dashboard-remainder-reconciliation .remainder-operator {
  align-self: center;
  color: #68727a;
  font-size: 20px;
  font-weight: 500;
  text-align: center;
}

.dashboard-remainder-reconciliation .accumulated {
  border-color: rgba(98,230,168,.32);
  background: linear-gradient(145deg, rgba(98,230,168,.105), rgba(98,230,168,.025));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.025);
}

.dashboard-remainder-reconciliation .liquidity {
  border-color: rgba(93,215,230,.28);
  background: linear-gradient(145deg, rgba(93,215,230,.09), rgba(93,215,230,.018));
}

.dashboard-remainder-reconciliation .liquidity strong { color: var(--visual-transfer); }

@media (max-width: 1180px) {
  .dashboard-remainder-reconciliation {
    grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr);
  }
  .dashboard-remainder-reconciliation.no-liquidity {
    grid-template-columns: minmax(0, 1fr) 18px minmax(0, 1fr) 18px minmax(0, 1fr);
  }
  .dashboard-remainder-reconciliation .liquidity { grid-column: 1 / -1; min-height: 76px; }
  .fv-virtuality-dashboard .fv-virtuality-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-dashboard-page .fv-business-detail { grid-template-columns: 1fr; }
  .calendar-filter-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .movement-summary-strip article { min-height: 96px; }
}

@media (max-width: 1050px) {
  .debt-summary-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .debt-summary-grid > article { grid-column: span 6; }
  .debt-summary-grid > article:nth-child(n + 5) { grid-column: span 4; }
}

@media (max-width: 900px) {
  .movement-summary-strip,
  .calendar-month-insights { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smart-calendar .calendar-grid { grid-auto-rows: 146px; }
  .smart-calendar .day { height: 146px; min-height: 146px; }
}

@media (max-width: 760px) {
  .dashboard-remainder-reconciliation { grid-template-columns: 1fr; gap: 8px; }
  .dashboard-remainder-reconciliation .remainder-part { min-height: 76px; }
  .dashboard-remainder-reconciliation .remainder-operator { height: 12px; line-height: 12px; }
  .dashboard-remainder-reconciliation .liquidity { grid-column: auto; }
  .calendar-filter-toolbar { grid-template-columns: 1fr; }
  .calendar-legend { margin-top: 0; }
  .smart-calendar .calendar-grid { grid-auto-rows: 140px; }
  .smart-calendar .day { height: 140px; min-height: 140px; }
  .account-brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
  .debt-summary-grid > article,
  .debt-summary-grid > article:nth-child(n + 5) { grid-column: 1 / -1; }
}

/* Deudas: jerarquía compacta y estable.
   Las áreas explícitas evitan que las reglas históricas de span deformen el
   resumen cuando el viewport está cerca del ancho del sidebar. */
.fv-debts-view .debt-summary-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-areas:
    "pending pending pending pending due due due due remaining remaining remaining remaining"
    "historical historical historical paid paid paid global global global period period period";
  gap: 11px;
  margin: 0 0 18px;
}

.fv-debts-view .debt-summary-grid > article,
.fv-debts-view .debt-summary-grid > article:nth-child(n + 5) {
  min-width: 0;
  min-height: 94px;
  padding: 15px 16px;
  gap: 7px;
}

.fv-debts-view .debt-summary-grid > article:nth-child(1) { grid-area: pending; }
.fv-debts-view .debt-summary-grid > article:nth-child(2) { grid-area: historical; }
.fv-debts-view .debt-summary-grid > article:nth-child(3) { grid-area: global; }
.fv-debts-view .debt-summary-grid > article:nth-child(4) { grid-area: period; }
.fv-debts-view .debt-summary-grid > article:nth-child(5) { grid-area: due; }
.fv-debts-view .debt-summary-grid > article:nth-child(6) { grid-area: paid; }
.fv-debts-view .debt-summary-grid > article:nth-child(7) { grid-area: remaining; }

.fv-debts-view .debt-summary-grid > article:nth-child(1),
.fv-debts-view .debt-summary-grid > article:nth-child(5),
.fv-debts-view .debt-summary-grid > article:nth-child(7) {
  min-height: 108px;
}

.fv-debts-view .debt-summary-grid > article:nth-child(1) b,
.fv-debts-view .debt-summary-grid > article:nth-child(5) b,
.fv-debts-view .debt-summary-grid > article:nth-child(7) b {
  font-size: clamp(22px, 2.25vw, 27px);
}

.fv-debts-view .debt-summary-grid article > i {
  width: 100%;
  margin-top: 2px;
}

.fv-debts-view .debt-filter-bar {
  flex-wrap: nowrap;
  gap: 5px;
  margin: 0 0 16px;
  overflow-x: auto;
  scrollbar-width: none;
}

.fv-debts-view .debt-filter-bar::-webkit-scrollbar { display: none; }
.fv-debts-view .debt-filter-bar button { flex: 0 0 auto; }

.fv-debts-view .upgraded-debt-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
  gap: 16px;
}

.fv-debts-view .debt-account-card {
  min-height: 336px;
  padding: 20px;
}

@media (max-width: 900px) {
  .fv-debts-view .debt-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "pending due"
      "remaining remaining"
      "historical paid"
      "global period";
  }
}

@media (max-width: 480px) {
  .fv-debts-view .debt-summary-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "pending"
      "due"
      "remaining"
      "historical"
      "paid"
      "global"
      "period";
  }

  .fv-debts-view .debt-summary-grid > article,
  .fv-debts-view .debt-summary-grid > article:nth-child(1),
  .fv-debts-view .debt-summary-grid > article:nth-child(5),
  .fv-debts-view .debt-summary-grid > article:nth-child(7) {
    min-height: 88px;
  }
}
/* Helion · utilidad económica por modelo */
.helion-shared-allocation-setting{align-items:center;margin-bottom:18px}
.helion-shared-allocation-setting > div{flex:1}
.helion-shared-allocation-setting label{display:block;margin-top:12px}
.helion-shared-allocation-setting select{width:min(100%,340px);height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);font:700 12px/1 var(--mova-font-body)}
.helion-view-tabs{
  display:inline-flex;
  align-items:center;
  gap:4px;
  width:max-content;
  margin:2px 0 22px;
  padding:5px;
  border:1px solid color-mix(in srgb,var(--dashboard-accent) 24%,var(--line));
  border-radius:14px;
  background:rgba(15,19,27,.78);
}
.helion-view-tabs button{
  min-height:38px;
  padding:0 18px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:var(--muted);
  font:700 12px/1 var(--mova-font-body);
  cursor:pointer;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.helion-view-tabs button:hover{color:var(--text)}
.helion-view-tabs button.active{
  color:#fff;
  background:color-mix(in srgb,var(--dashboard-accent) 34%,rgba(29,23,37,.95));
  box-shadow:0 0 22px color-mix(in srgb,var(--dashboard-accent) 16%,transparent);
}
.helion-profit-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:16px;
  padding:22px 24px;
  border:1px solid color-mix(in srgb,var(--dashboard-accent) 24%,var(--line));
  border-radius:18px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--dashboard-accent) 9%,var(--card)) 0%,var(--card) 58%);
}
.helion-profit-heading h2{margin:5px 0 6px;font-size:25px;line-height:1.1}
.helion-profit-heading p{max-width:670px;margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.helion-profit-actions{display:flex;align-items:flex-end;gap:10px;flex:0 0 auto}
.helion-profit-actions label{display:grid;gap:7px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em}
.helion-profit-actions select{
  min-width:168px;
  height:40px;
  padding:0 34px 0 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--surface);
  color:var(--text);
  font:700 12px/1 var(--mova-font-body);
}
.helion-profit-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
  margin-bottom:14px;
}
.helion-profit-summary .card{min-height:132px;padding:19px;display:flex;flex-direction:column;justify-content:center}
.helion-profit-summary small{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.14em;line-height:1.45}
.helion-profit-summary strong{display:block;margin-top:14px;font-size:25px;line-height:1;letter-spacing:-.035em}
.helion-profit-summary span{display:block;margin-top:9px;color:var(--muted);font-size:10px;line-height:1.35}
.helion-profit-summary .income{border-color:rgba(255,255,255,.32);background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.015))}
.helion-profit-summary .revenue{border-color:rgba(88,226,164,.38);background:linear-gradient(135deg,rgba(88,226,164,.13),rgba(88,226,164,.025))}
.helion-profit-summary .revenue strong{color:var(--green)}
.helion-profit-summary .costs{border-color:rgba(255,112,112,.38);background:linear-gradient(135deg,rgba(255,112,112,.13),rgba(255,112,112,.025))}
.helion-profit-summary .costs strong{color:var(--red)}
.helion-profit-summary .shared{border-color:rgba(88,207,230,.34);background:linear-gradient(135deg,rgba(88,207,230,.11),rgba(88,207,230,.02))}
.helion-profit-summary .shared strong{color:var(--cyan)}
.helion-profit-summary .profit{border-color:color-mix(in srgb,var(--dashboard-accent) 48%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--dashboard-accent) 18%,var(--card)),var(--card))}
.helion-profit-summary .profit strong{color:var(--dashboard-accent)}
.helion-venuz-allocation{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:26px;
  padding:19px 22px;
  border-color:rgba(88,207,230,.34);
  background:linear-gradient(105deg,rgba(88,207,230,.09),rgba(18,22,29,.94) 52%);
}
.helion-venuz-allocation > div small{color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.14em}
.helion-venuz-allocation h3{margin:7px 0 4px;font-size:20px}
.helion-venuz-allocation p{max-width:620px;margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.helion-venuz-allocation dl{display:flex;gap:8px;margin:0}
.helion-venuz-allocation dl div{min-width:100px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:rgba(8,11,16,.52)}
.helion-venuz-allocation dt{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.helion-venuz-allocation dd{margin:7px 0 0;font-size:15px;font-weight:850}
.helion-profit-models{margin-bottom:32px}
.helion-profit-models > .simple-section-head{align-items:flex-end;margin-bottom:14px}
.helion-profit-formula{max-width:480px;color:var(--muted);font-size:10px;line-height:1.45;text-align:right}
.helion-profit-model-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.helion-profit-model{overflow:hidden;padding:0;border-color:color-mix(in srgb,var(--dashboard-accent) 25%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--dashboard-accent) 6%,var(--card)),var(--card) 45%)}
.helion-profit-model > header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 20px 17px;border-bottom:1px solid var(--line)}
.helion-profit-model-name{display:flex;align-items:center;gap:11px;min-width:0}
.helion-profit-model-name > span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--dashboard-accent) 45%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--dashboard-accent) 12%,transparent);color:var(--dashboard-accent);font-weight:900}
.helion-profit-model-name small,.helion-profit-result small{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.13em}
.helion-profit-model-name h3{margin:4px 0 0;font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.helion-profit-result{text-align:right;flex:0 0 auto}
.helion-profit-result strong{display:block;margin:5px 0 3px;color:var(--green);font-size:21px;line-height:1}
.helion-profit-result em{color:var(--muted);font-size:9px;font-style:normal}
.helion-profit-model.is-negative .helion-profit-result strong{color:var(--red)}
.helion-profit-core{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.helion-profit-core > div{min-height:76px;padding:14px;background:rgba(15,19,26,.97)}
.helion-profit-core small{display:block;min-height:24px;color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.08em;line-height:1.35}
.helion-profit-core b{display:block;margin-top:8px;font-size:15px}
.helion-profit-costs{padding:12px 20px}
.helion-profit-costs p{display:grid;grid-template-columns:1fr auto;gap:3px 12px;margin:0;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.055);font-size:11px}
.helion-profit-costs p:last-child{border-bottom:0}
.helion-profit-costs p span{color:var(--muted)}
.helion-profit-costs p b{color:var(--red)}
.helion-profit-costs p small{grid-column:1/-1;color:var(--muted);font-size:8px}
.helion-profit-model > footer{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:14px 20px;border-top:1px solid var(--line);background:rgba(8,11,16,.42)}
.helion-profit-model > footer span{color:var(--muted);font-size:9px}
.helion-profit-model > footer i{height:5px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.08)}
.helion-profit-model > footer i b{display:block;width:var(--profit-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--dashboard-accent),var(--green))}
.helion-profit-model > footer strong{color:var(--green);font-size:15px}
.helion-profit-model.is-negative > footer strong{color:var(--red)}

@media (max-width:1200px){
  .helion-profit-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:900px){
  .helion-profit-heading,.helion-venuz-allocation{align-items:stretch;flex-direction:column}
  .helion-profit-model-grid{grid-template-columns:1fr}
  .helion-profit-actions{justify-content:space-between}
  .helion-venuz-allocation dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .helion-venuz-allocation dl div{min-width:0}
}
@media (max-width:620px){
  .helion-view-tabs{display:grid;width:100%;grid-template-columns:1fr 1fr}
  .helion-view-tabs button{padding:0 10px}
  .helion-profit-heading{padding:18px}
  .helion-profit-actions{display:grid;grid-template-columns:1fr}
  .helion-profit-actions select{width:100%}
  .helion-profit-summary{grid-template-columns:1fr}
  .helion-venuz-allocation dl{grid-template-columns:1fr}
  .helion-profit-formula{display:none}
  .helion-profit-model > header{align-items:flex-start}
  .helion-profit-core{grid-template-columns:1fr}
  .helion-profit-core > div{min-height:auto}
  .helion-profit-core small{min-height:0}
  .helion-profit-model > footer{grid-template-columns:1fr auto}
  .helion-profit-model > footer i{grid-column:1/-1;grid-row:2}
}

/* RappiCard y tarjetas revolventes.
   El estado de cuenta y los planes diferidos pertenecen a una sola deuda. */
.account-brand-logo.is-rappi {
  width: 74px;
  height: 42px;
  flex: 0 0 74px;
  padding: 7px 9px !important;
  border-color: rgba(0, 231, 179, .28);
  background: linear-gradient(145deg, #172221, #101716) !important;
}

.account-brand-logo.is-rappi img {
  width: 100%;
  max-width: 58px;
  max-height: 24px;
  object-fit: contain;
}

.debt-card-brand,
.debt-detail-title {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.debt-card-brand > div,
.debt-detail-title > div { min-width: 0; }

.debt-card-brand h2,
.debt-detail-title h2 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.debt-detail-title > div > span {
  display: block;
  margin-top: 4px;
  color: #7e898e;
  font-size: 8.5px;
}

.revolving-debt-card {
  min-height: 448px;
  border-color: rgba(0, 231, 179, .28);
  background:
    radial-gradient(circle at 92% 2%, rgba(0, 231, 179, .09), transparent 33%),
    linear-gradient(145deg, #151c20, #101518 72%);
}

.revolving-debt-card .debt-period-status {
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.045);
  color: #bfc7cb;
}

.revolving-debt-card .debt-period-status:first-letter { text-transform: uppercase; }

.revolving-primary {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 22px 0 14px;
  padding: 15px;
  border: 1px solid rgba(0, 231, 179, .24);
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(0, 231, 179, .1), rgba(0, 231, 179, .018));
}

.revolving-primary span,
.revolving-metrics small,
.credit-card-hero span,
.credit-payment-options span,
.credit-line-summary span,
.debt-plan-head > div > small {
  color: #879198;
  font-size: 7.5px;
  font-weight: 800;
  letter-spacing: .1em;
}

.revolving-primary strong {
  color: #67e8b4;
  font: 720 25px Manrope, sans-serif;
  letter-spacing: -.04em;
}

.revolving-primary b { color: #aeb7bc; font-size: 9px; }

.revolving-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.revolving-metrics > span {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 10px;
  background: rgba(255,255,255,.02);
}

.revolving-metrics small { display: block; }
.revolving-metrics b { display: block; margin-top: 6px; font-size: 11px; }

.revolving-utilization { margin: 10px 0 4px; }
.revolving-utilization i { background: linear-gradient(90deg, #00e7b3, #f0ca68 72%, #ff7474); }
.revolving-utilization.unknown i { width: 0 !important; }

.revolving-minimum {
  margin-top: 12px;
  border-color: rgba(240,202,104,.2);
  background: rgba(240,202,104,.035);
}

.revolving-minimum b { color: #f0ca68; }

.revolving-card-detail {
  width: min(780px, calc(100vw - 40px));
  padding: 25px 27px 34px;
  border-left-color: rgba(0, 231, 179, .32);
  background:
    radial-gradient(circle at 96% 0, rgba(0, 231, 179, .065), transparent 30%),
    linear-gradient(155deg, #171d21, #0e1316 70%);
}

.credit-card-hero {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 10px;
  margin: 19px 0 12px;
}

.credit-card-hero > div {
  display: flex;
  min-height: 118px;
  padding: 17px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
  flex-direction: column;
  justify-content: center;
}

.credit-card-hero > div:first-child {
  border-color: rgba(0,231,179,.3);
  background: linear-gradient(135deg, rgba(0,231,179,.11), rgba(0,231,179,.018));
}

.credit-card-hero strong {
  margin: 8px 0 5px;
  color: #f2f5f6;
  font: 720 29px Manrope, sans-serif;
  letter-spacing: -.045em;
}

.credit-card-hero > div:first-child strong { color: #67e8b4; }
.credit-card-hero b,
.credit-card-hero small { color: #8e989e; font-size: 8.5px; line-height: 1.45; }

.credit-payment-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  margin: 12px 0;
}

.credit-payment-options article {
  min-height: 105px;
  display: flex;
  padding: 13px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
  flex-direction: column;
}

.credit-payment-options article.recommended {
  border-color: rgba(168,124,245,.22);
  background: rgba(168,124,245,.035);
}

.credit-payment-options article.no-interest {
  border-color: rgba(0,231,179,.24);
  background: rgba(0,231,179,.035);
}

.credit-payment-options b { margin: 8px 0 6px; font-size: 15px; }
.credit-payment-options .recommended b { color: #b797f3; }
.credit-payment-options .no-interest b { color: #67e8b4; }
.credit-payment-options small { margin-top: auto; color: #7f898f; font-size: 8px; line-height: 1.45; }

.credit-line-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
  padding: 13px;
  border: 1px solid #30383d;
  border-radius: 12px;
  background: #101519;
}

.credit-line-summary > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.credit-line-summary b { font-size: 12px; }
.credit-line-summary > i {
  height: 6px;
  grid-column: 1 / -1;
  overflow: hidden;
  border-radius: 99px;
  background: #282f34;
}
.credit-line-summary > i > em {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #00e7b3, #f0ca68 72%, #ff7474);
}
.credit-line-summary.unknown > i { background: repeating-linear-gradient(90deg, #273038 0 8px, #20272c 8px 15px); }

.credit-ownership {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0 2px;
}
.credit-ownership span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 8px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 999px;
  background: rgba(255,255,255,.025);
  color: #7f8b91;
  font-size: 7.5px;
}
.credit-ownership b { color: #d8e0e3; font-weight: 700; }
.credit-ownership.compact { margin: 10px 0 -8px; }
.credit-ownership.compact span { padding: 4px 7px; font-size: 7px; }

.credit-cycle-context {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin: 12px 0;
}
.credit-cycle-context > div {
  display: flex;
  min-height: 75px;
  padding: 13px;
  border: 1px solid rgba(29,207,91,.16);
  border-radius: 12px;
  background: linear-gradient(145deg, rgba(29,207,91,.045), rgba(255,255,255,.015));
  flex-direction: column;
  justify-content: center;
}
.credit-cycle-context small {
  color: #7f9089;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .1em;
}
.credit-cycle-context b { margin-top: 7px; color: #e6ece9; font-size: 11px; }
.credit-cycle-context span { margin-top: 4px; color: #7f8b86; font-size: 7.5px; line-height: 1.45; }

.credit-card-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.credit-evidence-transactions {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid rgba(88,205,227,.2);
  border-radius: 14px;
  background: linear-gradient(150deg, rgba(88,205,227,.045), rgba(8,12,15,.18));
}
.credit-evidence-transactions > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.credit-evidence-transactions h3 { margin: 5px 0 0; font-size: 14px; }
.credit-evidence-transactions > header > span { max-width: 290px; color: #84949c; font-size: 8px; line-height: 1.5; text-align: right; }
.credit-evidence-transactions > div { display: grid; gap: 7px; margin-top: 10px; }
.credit-evidence-transactions article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 14px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  background: rgba(7,11,14,.42);
}
.credit-evidence-transactions article > div { display: flex; flex-direction: column; gap: 4px; }
.credit-evidence-transactions article span { color: #62d5ee; font-size: 7px; font-weight: 800; letter-spacing: .06em; }
.credit-evidence-transactions article b { color: #e8eef1; font-size: 9px; }
.credit-evidence-transactions article strong { color: #f2f6f8; font-size: 11px; }
.credit-evidence-transactions article > small { grid-column: 1 / -1; color: #809097; font-size: 7.5px; line-height: 1.4; }

.debt-plan-detail {
  margin-top: 15px;
  padding: 16px;
  border: 1px solid rgba(168,124,245,.26);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(168,124,245,.075), rgba(168,124,245,.012));
}

.debt-plan-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.debt-plan-head h3 { margin: 6px 0 0; font-size: 15px; }
.debt-plan-head > strong { color: #b797f3; font-size: 18px; text-align: right; }
.debt-plan-head > strong small { display: block; margin-top: 3px; color: #7f898f; font-size: 7px; font-weight: 650; }

.debt-plan-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 13px 0;
}

.debt-plan-facts > span {
  padding: 9px;
  border: 1px solid rgba(255,255,255,.065);
  border-radius: 9px;
  color: #7e888f;
  font-size: 7.5px;
}
.debt-plan-facts b { display: block; margin-top: 5px; color: #e5e8ea; font-size: 9px; }

.debt-installment-timeline { display: grid; gap: 7px; }
.debt-installment {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 5px 12px;
  align-items: center;
  padding: 11px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px;
  background: rgba(8,11,14,.42);
}
.debt-installment > span { color: #b797f3; font-size: 8px; font-weight: 750; }
.debt-installment > div b { display: block; font-size: 9px; }
.debt-installment > div small,
.debt-installment > small { color: #78838a; font-size: 7.5px; }
.debt-installment > strong { color: #edf0f1; font-size: 10px; text-align: right; }
.debt-installment > strong em { color: #f0ca68; font-size: 8px; font-style: normal; }
.debt-installment > small { grid-column: 2 / -1; }
.debt-installment.applied { border-color: rgba(93,215,230,.2); }
.debt-installment.paid { border-color: rgba(98,230,168,.25); }
.debt-plan-rule { margin: 12px 0 0; color: #8a949a; font-size: 8px; line-height: 1.5; }

/* Configuración reusable de tarjetas y planes diferidos. */
.credit-liability-guide {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-color: rgba(0,231,179,.2);
  background: linear-gradient(110deg, rgba(0,231,179,.055), #12171b 62%);
}
.credit-liability-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(0,231,179,.28);
  border-radius: 11px;
  color: #67e8b4;
  font-size: 18px;
}

#modalContent:has([data-functional-debt-save]),
#modalContent:has([data-card-statement-dialog]) {
  width: min(900px, calc(100vw - 36px));
  max-height: min(92vh, 880px);
  overflow-y: auto;
  padding: 0;
  border-color: #3a4249;
  background:
    radial-gradient(circle at 94% 0, rgba(0,231,179,.05), transparent 29%),
    linear-gradient(155deg, #171c20, #111519 66%);
}

#modalContent:has([data-functional-debt-save]) > .modal-head,
#modalContent:has([data-card-statement-dialog]) > .modal-head {
  position: sticky;
  z-index: 3;
  top: 0;
  padding: 21px 24px 17px;
  border-bottom: 1px solid #30373d;
  background: rgba(18,23,27,.96);
  backdrop-filter: blur(16px);
}

.debt-editor-form { display: grid; gap: 13px; padding: 18px 24px; }
.modal-head .card-statement-error {
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(255,132,120,.35);
  border-radius: 10px;
  background: rgba(255,132,120,.08);
  color: #ffc6be;
  font-size: 13px;
  line-height: 1.45;
}
.debt-editor-section {
  padding: 15px;
  border: 1px solid #30373d;
  border-radius: 14px;
  background: rgba(255,255,255,.016);
}
.debt-editor-heading { display: flex; align-items: center; gap: 11px; }
.debt-editor-heading > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  border: 1px solid rgba(0,231,179,.25);
  border-radius: 9px;
  background: rgba(0,231,179,.055);
  color: #67e8b4;
  font-size: 10px;
  font-weight: 800;
}
.debt-editor-heading b { display: block; color: #e5e9eb; font-size: 12px; }
.debt-editor-heading small { display: block; margin-top: 3px; color: #7f898f; font-size: 8px; }
.debt-editor-section .mova-form-grid { margin: 15px 0 0; }
.debt-editor-section .mova-form-grid .wide { grid-column: 1 / -1; }
.debt-security-note,
.debt-installment-schedule small {
  display: block;
  margin: 10px 0 0;
  color: #7f898f;
  font-size: 8px;
  line-height: 1.5;
}
.debt-plan-toggle {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid rgba(168,124,245,.21);
  border-radius: 10px;
  background: rgba(168,124,245,.035);
  color: #c7b2ed;
  font-size: 9px;
}
.debt-plan-toggle input { width: 15px; height: 15px; }
.debt-installment-schedule textarea {
  min-height: 124px;
  padding: 11px;
  resize: vertical;
  border: 1px solid #343b41;
  border-radius: 9px;
  background: #0e1317;
  color: #e5e8ea;
  font: 9px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.debt-editor-actions {
  position: sticky;
  z-index: 3;
  bottom: 0;
  margin: 0;
  padding: 15px 24px 19px;
  border-top: 1px solid #30373d;
  background: rgba(15,19,23,.96);
  backdrop-filter: blur(16px);
}

@media (max-width: 760px) {
  .revolving-card-detail { width: 100vw; padding: 20px 18px 30px; }
  .credit-card-hero,
  .credit-payment-options { grid-template-columns: 1fr; }
  .credit-card-facts,
  .debt-plan-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .debt-installment { grid-template-columns: 64px minmax(0, 1fr); }
  .debt-installment > strong { grid-column: 2; text-align: left; }
  .debt-installment > small { grid-column: 2; }
  .credit-liability-guide { grid-template-columns: auto minmax(0, 1fr); }
  .credit-liability-guide > button { grid-column: 1 / -1; width: 100%; }
  .debt-editor-form { padding: 14px; }
  #modalContent:has([data-functional-debt-save]) > .modal-head,
  #modalContent:has([data-card-statement-dialog]) > .modal-head,
  .debt-editor-actions { padding-left: 16px; padding-right: 16px; }
}

@media (max-width: 520px) {
  .revolving-metrics,
  .credit-line-summary,
  .credit-card-facts,
  .debt-plan-facts,
  .debt-editor-section .mova-form-grid { grid-template-columns: 1fr; }
  .credit-cycle-context { grid-template-columns: 1fr; }
  .debt-installment { grid-template-columns: 1fr; }
  .debt-installment > strong,
  .debt-installment > small { grid-column: 1; }
  .debt-plan-head { flex-direction: column; }
  .debt-plan-head > strong { text-align: left; }
}

/* Préstamos agrupados (por ejemplo, Mercado Pago): una deuda, varios planes. */
.grouped-loan-card {
  min-height: 380px;
  border-color: rgba(77, 182, 172, .3);
  background: radial-gradient(circle at 94% 2%, rgba(77,182,172,.1), transparent 34%), linear-gradient(145deg,#141c20,#101518 72%);
}
.grouped-loan-primary,
.grouped-loan-hero > div {
  display:flex;flex-direction:column;justify-content:center;gap:6px;padding:16px;border:1px solid rgba(77,182,172,.25);border-radius:13px;background:rgba(77,182,172,.055)
}
.grouped-loan-primary { margin:22px 0 14px; }
.grouped-loan-primary span,.grouped-loan-card-facts small,.grouped-loan-hero span,.grouped-loan-plan small,.grouped-loan-month small {color:#839096;font-size:7.5px;font-weight:800;letter-spacing:.09em}
.grouped-loan-primary strong,.grouped-loan-hero strong{color:#67e8b4;font:720 25px Manrope,sans-serif;letter-spacing:-.04em}
.grouped-loan-primary b,.grouped-loan-hero b,.grouped-loan-hero small{color:#9da8ad;font-size:8.5px}
.grouped-loan-card-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.grouped-loan-card-facts>span{padding:10px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.018)}
.grouped-loan-card-facts small,.grouped-loan-card-facts b{display:block}.grouped-loan-card-facts b{margin-top:6px;font-size:11px}
.grouped-loan-progress{margin:11px 0 16px}.grouped-loan-progress i{background:linear-gradient(90deg,#4db6ac,#67e8b4)}
.grouped-loan-detail{width:min(820px,calc(100vw - 40px));padding:25px 27px 34px;border-left-color:rgba(77,182,172,.35);background:radial-gradient(circle at 96% 0,rgba(77,182,172,.075),transparent 30%),linear-gradient(155deg,#171e22,#0e1316 70%)}
.grouped-loan-hero{display:grid;grid-template-columns:1.15fr 1fr;gap:10px;margin:19px 0 14px}.grouped-loan-hero>div{min-height:112px}.grouped-loan-hero>div+div{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.02)}
.grouped-loan-plans,.grouped-loan-calendar{margin-top:14px;padding:16px;border:1px solid rgba(77,182,172,.2);border-radius:14px;background:rgba(77,182,172,.025)}
.grouped-loan-plan{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(120px,.75fr) minmax(125px,.65fr);align-items:center;gap:13px;margin-top:8px;padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:11px;background:rgba(7,11,14,.42)}
.grouped-loan-plan h4,.grouped-loan-month h4{margin:4px 0;font-size:10px}.grouped-loan-plan span{color:#818d93;font-size:8px}.grouped-loan-plan>div:last-child{text-align:right}.grouped-loan-plan>div:last-child strong{display:block;color:#67e8b4;font-size:12px}.grouped-plan-progress{display:flex;align-items:center;gap:8px}.grouped-plan-progress i{height:5px;flex:1;overflow:hidden;border-radius:99px;background:#293137}.grouped-plan-progress i em{display:block;height:100%;border-radius:inherit;background:#4db6ac}.grouped-plan-progress b{font-size:8px}.grouped-plan-settled{justify-self:end;color:#67e8b4;font-size:9px}
.grouped-loan-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.grouped-loan-month{overflow:hidden;border:1px solid rgba(255,255,255,.075);border-radius:11px;background:rgba(7,11,14,.42)}.grouped-loan-month header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-bottom:1px solid rgba(255,255,255,.065)}.grouped-loan-month header strong{color:#67e8b4;font-size:12px}.grouped-loan-month>div>span{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05)}.grouped-loan-month>div>span:last-child{border-bottom:0}.grouped-loan-month>div b{font-size:8.5px}.grouped-loan-month>div small{grid-row:2}.grouped-loan-month>div strong{grid-row:1/3;grid-column:2;align-self:center;font-size:9px}.grouped-loan-empty{color:#829097;font-size:9px}
.functional-grouped-loan-field textarea{width:100%}
@media(max-width:760px){.grouped-loan-detail{width:100vw;padding:20px 18px 30px}.grouped-loan-hero,.grouped-loan-months{grid-template-columns:1fr}.grouped-loan-plan{grid-template-columns:1fr}.grouped-loan-plan>div:last-child{text-align:left}.grouped-plan-settled{justify-self:start}}
@media(max-width:520px){.grouped-loan-card-facts{grid-template-columns:1fr}}

/* Planeación de uso de tarjetas: capacidad futura, nunca efectivo disponible. */
.revolving-debt-card { min-height: 520px; }
.credit-card-actions {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: 8px;
  margin-top: auto;
  padding-top: 14px;
}
.credit-card-actions button { width: 100%; min-height: 39px; }
.credit-use-card-summary {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(88, 205, 227, .34);
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(64,181,205,.13), rgba(57,120,179,.035));
}
.credit-use-card-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.credit-use-card-summary span,
.credit-balance-breakdown span,
.credit-statement-calendar small,
.credit-use-position span,
.credit-use-existing > div > small,
.credit-use-form-head small {
  color: #86a1ad;
  font-size: 7.5px;
  font-weight: 800;
  letter-spacing: .1em;
}
.credit-use-card-summary b { color: #62d5ee; font-size: 12px; }
.credit-use-card-summary small { color: #a2b1b8; font-size: 8px; line-height: 1.45; }
.credit-use-card-summary.over-limit {
  border-color: rgba(255, 130, 122, .48);
  background: linear-gradient(135deg, rgba(255,107,107,.14), rgba(136,48,48,.035));
}
.credit-use-card-summary.over-limit b,
.credit-use-card-summary.over-limit small { color: #ff8b84; }
.credit-use-card-summary.unverified { border-style: dashed; border-color: rgba(243,206,103,.32); background: rgba(243,206,103,.045); }
.credit-use-card-summary.unverified small { color: #c8b98c; }

.credit-detail-actions {
  display: grid;
  grid-template-columns: minmax(190px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  margin: 14px 0;
  padding: 12px;
  border: 1px solid rgba(88,205,227,.2);
  border-radius: 12px;
  background: rgba(88,205,227,.04);
}
.credit-detail-actions span { color: #8f9da4; font-size: 8px; line-height: 1.5; }
.credit-balance-breakdown,
.credit-statement-calendar {
  margin-top: 14px;
  padding: 16px;
  border: 1px solid rgba(88,205,227,.2);
  border-radius: 14px;
  background: linear-gradient(150deg, rgba(88,205,227,.045), rgba(8,12,15,.18));
}
.credit-balance-breakdown > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.credit-balance-breakdown h3 { margin: 5px 0 0; color: #f2f6f8; font: 720 22px/1.1 Manrope,sans-serif; }
.credit-balance-breakdown > header > span { max-width: 270px; color: #84949c; font-size: 8px; line-height: 1.5; text-align: right; }
.credit-balance-breakdown > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.credit-balance-breakdown article {
  display: flex;
  min-height: 92px;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 11px;
  background: rgba(7,11,14,.46);
}
.credit-balance-breakdown article b { color: #edf5f7; font-size: 13px; }
.credit-balance-breakdown article:first-child b { color: #ff8b84; }
.credit-balance-breakdown article:nth-child(2) b { color: #62d5ee; }
.credit-balance-breakdown article:last-child b { color: #f3ce67; }
.credit-balance-breakdown article small { color: #86949b; font-size: 7.5px; line-height: 1.4; }
.credit-statement-months {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 11px;
}
.credit-statement-month {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(7,11,14,.48);
}
.credit-statement-month header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.credit-statement-month h4 { margin: 4px 0 0; color: #e8eef1; font-size: 9px; line-height: 1.35; }
.credit-statement-month header strong { color: #f2f6f8; font-size: 12px; white-space: nowrap; }
.credit-statement-month > div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 11px;
  padding: 10px 12px;
}
.credit-statement-month > div span {
  padding: 4px 7px;
  border-radius: 99px;
  background: rgba(243,206,103,.12);
  color: #f3ce67;
  font-size: 7px;
  font-weight: 800;
}
.credit-statement-month > div b { color: #aeb9be; font-size: 8px; }
.credit-statement-month > div small { width: 100%; color: #7f8c92; font-size: 7px; letter-spacing: 0; line-height: 1.45; }
.credit-statement-month.paid,
.credit-statement-month.applied { border-color: rgba(92,224,165,.3); }
.credit-statement-month.paid > div span,
.credit-statement-month.applied > div span { background: rgba(92,224,165,.12); color: #5ce0a5; }
.credit-statement-month.current { border-color: rgba(88,205,227,.34); }
.credit-statement-month.current > div span { background: rgba(88,205,227,.12); color: #62d5ee; }

#modalContent:has(.credit-use-planner) {
  width: min(860px, calc(100vw - 32px));
  max-height: min(92vh, 880px);
  overflow: auto;
  padding: 0;
  border-color: rgba(88,205,227,.26);
  background: radial-gradient(circle at 95% 0, rgba(88,205,227,.1), transparent 30%), #10161a;
}
.credit-use-planner > .modal-head {
  position: sticky;
  z-index: 5;
  top: 0;
  margin: 0;
  padding: 21px 23px 17px;
  border-bottom: 1px solid rgba(255,255,255,.075);
  background: rgba(16,22,26,.94);
  backdrop-filter: blur(18px);
}
.credit-use-planner .debt-detail-title { display: flex; align-items: center; gap: 13px; min-width: 0; }
.credit-use-planner .debt-detail-title > div { min-width: 0; }
.credit-use-planner .debt-detail-title h2 { margin: 4px 0 5px; }
.credit-use-planner .debt-detail-title p { margin: 0; color: #94a2a9; font-size: 8.5px; }
.credit-use-position {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 18px 23px 0;
}
.credit-use-position article {
  display: flex;
  min-height: 84px;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 11px;
  background: rgba(7,11,14,.5);
}
.credit-use-position article:nth-child(2),
.credit-use-position article:nth-child(4) { border-color: rgba(88,205,227,.24); background: rgba(88,205,227,.05); }
.credit-use-position b { color: #eff5f7; font-size: 11px; line-height: 1.3; }
.credit-use-position article:nth-child(2) b,
.credit-use-position article:nth-child(4) b { color: #62d5ee; }
.credit-use-safety {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 11px;
  margin: 10px 23px 0;
  padding: 12px;
  border: 1px solid rgba(88,205,227,.2);
  border-radius: 11px;
  background: rgba(88,205,227,.045);
}
.credit-use-safety > span {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  background: rgba(88,205,227,.14);
  color: #62d5ee;
  font-weight: 800;
}
.credit-use-safety b { color: #dcebef; font-size: 9px; }
.credit-use-safety p { margin: 4px 0 0; color: #8d9ca3; font-size: 8px; line-height: 1.5; }
.credit-use-form,
.credit-use-existing {
  margin: 13px 23px 0;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 14px;
  background: rgba(7,11,14,.36);
}
.credit-use-existing { margin-bottom: 23px; }
.credit-use-form-head { display: flex; align-items: center; justify-content: space-between; gap: 13px; margin-bottom: 13px; }
.credit-use-form-head h3,
.credit-use-existing h3 { margin: 4px 0 0; font-size: 12px; }
.credit-use-form-head > strong { color: #62d5ee; font: 750 17px Manrope,sans-serif; }
.credit-use-planner .mova-form-grid { margin-top: 0; }
.credit-use-planner .mova-form-grid label { font-size: 7.5px; }
.credit-use-kind-note { margin: 10px 0 0; color: #84939a; font-size: 7.5px; line-height: 1.5; }
.credit-use-warning {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 12px;
  padding: 12px 13px;
  border: 1px solid rgba(92,224,165,.32);
  border-radius: 11px;
  background: rgba(92,224,165,.07);
}
.credit-use-warning b { color: #5ce0a5; font-size: 9px; line-height: 1.45; }
.credit-use-warning span { color: #a6b6ae; font-size: 8px; line-height: 1.5; }
.credit-use-warning.warning { border-color: rgba(243,206,103,.42); background: rgba(243,206,103,.08); }
.credit-use-warning.warning b { color: #f3ce67; }
.credit-use-warning.warning span { color: #c6b991; }
.credit-use-warning.danger { border-color: rgba(255,130,122,.42); background: rgba(255,107,107,.08); }
.credit-use-warning.danger b { color: #ff8b84; }
.credit-use-warning.danger span { color: #c9a3a0; }
.credit-use-warning.unknown { border-style: dashed; border-color: rgba(243,206,103,.38); background: rgba(243,206,103,.055); }
.credit-use-warning.unknown b { color: #f3ce67; }
.credit-use-warning.unknown span { color: #c2b58d; }
.credit-use-form .modal-actions { margin: 14px 0 0; }
.credit-use-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 13px;
  margin-top: 9px;
  padding: 11px 12px;
  border: 1px solid rgba(255,255,255,.065);
  border-radius: 11px;
  background: rgba(255,255,255,.018);
}
.credit-use-row > div:first-child { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.credit-use-row > div:first-child b { overflow: hidden; color: #eaf0f2; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.credit-use-row > div:first-child span { color: #819096; font-size: 7.5px; }
.credit-use-row > strong { color: #62d5ee; font-size: 11px; white-space: nowrap; }
.credit-use-row > div:last-child { display: flex; align-items: center; gap: 6px; }
.credit-use-row button { min-height: 32px; }
.credit-use-empty { margin: 12px 0 0; padding: 16px; border: 1px dashed rgba(255,255,255,.11); border-radius: 10px; color: #819096; font-size: 8px; text-align: center; }

.settings-credit-plan-summary {
  display: inline-flex;
  margin-top: 7px;
  padding: 5px 8px;
  border: 1px solid rgba(88,205,227,.23);
  border-radius: 99px;
  background: rgba(88,205,227,.06);
  color: #62d5ee;
  font-size: 7.5px;
  font-weight: 750;
}
.settings-card-actions { flex-wrap: wrap; justify-content: flex-end; }
.settings-card-actions .credit-plan-config-button { border-color: rgba(88,205,227,.3); color: #86dded; }

@media (max-width: 760px) {
  .credit-card-actions,
  .credit-detail-actions,
  .credit-balance-breakdown > div,
  .credit-statement-months { grid-template-columns: 1fr; }
  .credit-balance-breakdown > header { align-items: flex-start; flex-direction: column; }
  .credit-balance-breakdown > header > span { max-width: none; text-align: left; }
  .credit-use-position { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .credit-use-row { grid-template-columns: minmax(0, 1fr) auto; }
  .credit-use-row > div:last-child { grid-column: 1 / -1; }
  .credit-evidence-transactions > header { align-items: flex-start; flex-direction: column; }
  .credit-evidence-transactions > header > span { max-width: none; text-align: left; }
}
@media (max-width: 520px) {
  #modalContent:has(.credit-use-planner) { width: 100vw; max-height: 100vh; border-radius: 0; }
  .credit-use-planner > .modal-head { padding: 16px; }
  .credit-use-position { grid-template-columns: 1fr; padding: 14px 16px 0; }
  .credit-use-safety,
  .credit-use-form,
  .credit-use-existing { margin-left: 16px; margin-right: 16px; }
  .credit-use-form { padding: 13px; }
  .credit-use-form-head { align-items: flex-start; flex-direction: column; }
  .credit-use-row { grid-template-columns: 1fr; }
  .credit-use-row > div:last-child { grid-column: 1; }
  .settings-card-actions { justify-content: stretch; }
  .settings-card-actions .credit-plan-config-button { width: 100%; }
}

/* Private receipt and voice evidence stored with real registry movements. */
.movement-evidence {
  display: grid;
  gap: 10px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid #272d32;
}
.movement-evidence-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.movement-evidence-head small { color: #5ed7e6; font-size: 7px; font-weight: 800; letter-spacing: .13em; }
.movement-evidence-head h3 { margin: 4px 0 0; color: #e9eef0; font-size: 12px; }
.movement-evidence-head > span { padding: 5px 8px; border: 1px solid rgba(94,215,230,.2); border-radius: 99px; color: #8ea2aa; font-size: 7px; white-space: nowrap; }
.movement-evidence-files { display: grid; gap: 7px; }
.movement-evidence-files > button {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr) auto;
  min-height: 48px;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  background: rgba(255,255,255,.025);
  color: #e4eaec;
  text-align: left;
}
.movement-evidence-files > button:disabled { opacity: .62; }
.movement-evidence-files i { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: rgba(94,215,230,.1); color: #5ed7e6; font-style: normal; }
.movement-evidence-files span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.movement-evidence-files b { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.movement-evidence-files small { color: #7e8d94; font-size: 7px; }
.movement-evidence-files em { color: #77dce8; font-size: 7px; font-style: normal; font-weight: 750; }
.movement-evidence-preview { display: grid; gap: 8px; padding: 9px; border: 1px solid rgba(94,215,230,.16); border-radius: 10px; background: rgba(6,12,15,.55); }
.movement-evidence-preview[hidden] { display: none; }
.movement-evidence-preview audio,
.movement-evidence-preview img { width: 100%; }
.movement-evidence-preview audio { min-height: 38px; }
.movement-evidence-preview img { max-height: 42vh; border-radius: 8px; object-fit: contain; background: #050708; }
.movement-evidence-preview a { min-height: 34px; align-content: center; border: 1px solid rgba(255,255,255,.09); border-radius: 8px; color: #9ba9ae; font-size: 7.5px; text-align: center; text-decoration: none; }
.movement-evidence-loading,
.movement-evidence-error { padding: 10px; color: #91a0a6; font-size: 8px; text-align: center; }
.movement-evidence-error { color: #ff8b84; }

@media (max-width: 620px) {
  .registry-ai-photo-actions { grid-template-columns: 1fr; }
  .registry-ai-camera em,
  .registry-ai-gallery em,
  .registry-ai-dictation { min-height: 44px; }
  .registry-ai-audio-preview { grid-template-columns: 1fr; }
  .registry-ai-audio-preview audio { grid-column: 1; }
  .movement-evidence-files > button { min-height: 52px; }
  .movement-evidence-files b,
  .movement-evidence-files em,
  .movement-evidence-preview a { font-size: 10px; }
  .movement-evidence-files small,
  .movement-evidence-loading,
  .movement-evidence-error { font-size: 9px; }
}

/* Configuración > Cuentas: conciliación individual y múltiple. */
.account-settings-head-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
}
.settings-card-actions .account-balance-action {
  border-color: rgba(164,126,255,.34);
  background: rgba(164,126,255,.07);
  color: #ceb9ff;
}
.settings-card-actions .account-balance-action:hover {
  border-color: rgba(164,126,255,.58);
  background: rgba(164,126,255,.12);
  color: #f0e8ff;
}
.settings-card-actions .account-balance-action:disabled {
  opacity: .42;
  cursor: not-allowed;
}

#modalContent.account-reconciliation-modal {
  display: grid;
  width: min(1100px, calc(100vw - 36px));
  max-width: 1100px;
  max-height: min(850px, calc(100vh - 32px));
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  padding: 0;
  overflow: hidden;
  border-color: #3a4248;
  background:
    radial-gradient(circle at 8% 0, rgba(164,126,255,.07), transparent 28%),
    linear-gradient(145deg,#151a1e,#101417);
}
.account-reconciliation-head {
  padding: 22px 24px 17px;
  border-bottom: 1px solid rgba(255,255,255,.065);
}
.account-reconciliation-head h2 { margin-top: 4px; font-size: 20px; }
.account-reconciliation-head p { max-width: 650px; margin: 3px 0 0; font-size: 10px; line-height: 1.5; }
.account-reconciliation-head .modal-close:disabled { opacity: .42; cursor: wait; }
.account-reconciliation-steps {
  display: grid;
  grid-template-columns: auto minmax(28px, 1fr) auto minmax(28px, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 13px 24px;
  border-bottom: 1px solid rgba(255,255,255,.055);
  background: rgba(6,10,13,.34);
}
.account-reconciliation-steps span {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #6f7b82;
  font-size: 7.5px;
  font-weight: 800;
  letter-spacing: .06em;
  white-space: nowrap;
}
.account-reconciliation-steps i {
  display: grid;
  width: 21px;
  height: 21px;
  place-items: center;
  border: 1px solid #343d43;
  border-radius: 50%;
  color: #7d8990;
  font-size: 7px;
  font-style: normal;
}
.account-reconciliation-steps b { height: 1px; background: #293137; }
.account-reconciliation-steps span.active { color: #d9c8ff; }
.account-reconciliation-steps span.active i {
  border-color: #a47eff;
  background: rgba(164,126,255,.16);
  color: #e5d8ff;
  box-shadow: 0 0 18px rgba(164,126,255,.16);
}
.account-reconciliation-steps span.complete { color: #75dcb0; }
.account-reconciliation-steps span.complete i { border-color: rgba(94,229,162,.38); background: rgba(94,229,162,.1); color: #72e1ad; }
.account-reconciliation-body {
  min-height: 0;
  padding: 18px 24px 22px;
  overflow: auto;
  scrollbar-color: #354047 transparent;
}
.account-reconciliation-body[aria-busy="true"] { opacity: .72; cursor: wait; }
.account-reconciliation-actions {
  align-items: center;
  min-height: 68px;
  padding: 14px 24px;
  border-top: 1px solid rgba(255,255,255,.07);
  background: rgba(10,14,17,.92);
}
.account-reconciliation-actions button { min-height: 39px; }
.account-reconciliation-actions button:disabled { opacity: .46; cursor: wait; }
.account-reconciliation-intro {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
  padding: 13px 15px;
  border: 1px solid rgba(164,126,255,.22);
  border-radius: 12px;
  background: linear-gradient(110deg,rgba(164,126,255,.09),rgba(94,215,230,.035));
}
.account-reconciliation-intro > span {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 10px;
  background: rgba(164,126,255,.14);
  color: #cfb8ff;
}
.account-reconciliation-intro h3 { margin: 0 0 3px; color: #edf0f2; font-size: 12px; }
.account-reconciliation-intro p { margin: 0; color: #8a969d; font-size: 8px; line-height: 1.5; }
.account-reconciliation-context {
  display: grid;
  grid-template-columns: minmax(180px,.34fr) minmax(260px,1fr);
  gap: 10px;
  margin-bottom: 12px;
}
.account-reconciliation-context label,
.account-reconciliation-note,
.account-reconciliation-real {
  display: grid;
  min-width: 0;
  gap: 6px;
}
.account-reconciliation-context label > span,
.account-reconciliation-note > span,
.account-reconciliation-real > span {
  color: #78858c;
  font-size: 6.5px;
  font-weight: 800;
  letter-spacing: .1em;
}
.account-reconciliation-context input,
.account-reconciliation-note input,
.account-reconciliation-real input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 11px;
  border: 1px solid #303940;
  border-radius: 9px;
  outline: 0;
  background: #0c1114;
  color: #e4e8ea;
  font-size: 9px;
  font-weight: 700;
}

/* Panorama: categorías visibles, controles explicados y edición rápida local. */
.registry-ledger-actions-help {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px 12px;
  padding: 0 14px 9px;
  color: #737d84;
  font-size: 7px;
}
.registry-ledger-actions-help span { display: inline-flex; align-items: center; gap: 4px; }
.registry-ledger-actions-help b { color: #b7c0c6; font-size: 8px; }
.registry-ledger-category {
  overflow: hidden;
  margin: 0 0 10px;
  border: 1px solid #293139;
  border-radius: 10px;
  background: #0e1317;
}
.registry-ledger-category:last-child { margin-bottom: 0; }
.registry-ledger-category-head {
  position: sticky;
  z-index: 1;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 38px;
  padding: 8px 11px;
  border-bottom: 1px solid #293139;
  background: linear-gradient(90deg, color-mix(in srgb, var(--type-color) 9%, #12171b), #12171b 55%);
}
.registry-ledger-category-head > div { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.registry-ledger-category-head span { overflow: hidden; color: #e0e5e7; font-size: 8.5px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.registry-ledger-category-head small { color: #737d84; font-size: 6.5px; white-space: nowrap; }
.registry-ledger-category-head strong { color: var(--type-color); font-size: 9px; white-space: nowrap; }
.registry-ledger-category-rows { padding: 0 10px; }
.registry-ledger-category-rows .registry-type-ledger-row:first-child { border-top: 0; }

.panorama-quick-context {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0;
}
.panorama-quick-context > span {
  display: grid;
  gap: 5px;
  padding: 10px;
  border: 1px solid #30363b;
  border-radius: 9px;
  background: #111519;
}
.panorama-quick-context small { color: #737d84; font-size: 6px; letter-spacing: .09em; }
.panorama-quick-context b { overflow: hidden; color: #e5e8ea; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.panorama-quick-edit-grid .wide { grid-column: 1 / -1; }
.panorama-quick-field-hint { margin-top: 4px; color: #9f79e9; font-size: 7px; font-weight: 750; }
.panorama-quick-actions { flex-wrap: wrap; }

@media (max-width: 760px) {
  .registry-ledger-actions-help { justify-content: flex-start; }
  .registry-ledger-category-head > div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .registry-ledger-category-rows { padding: 0 8px; }
  .panorama-quick-context { grid-template-columns: 1fr; }
  .panorama-quick-actions > button { flex: 1 1 100%; }
}
.account-reconciliation-context input:focus,
.account-reconciliation-note input:focus,
.account-reconciliation-real input:focus {
  border-color: #a47eff;
  box-shadow: 0 0 0 2px rgba(164,126,255,.11);
}
.account-reconciliation-list,
.account-reconciliation-preview-list { display: grid; gap: 8px; }
.account-reconciliation-row {
  display: grid;
  grid-template-columns: 40px minmax(150px,1.15fr) 130px 150px minmax(180px,1.25fr);
  align-items: center;
  gap: 12px;
  padding: 12px 13px;
  border: 1px solid #293138;
  border-radius: 12px;
  background: rgba(11,16,19,.72);
  transition: border-color .18s, background .18s;
}
.account-reconciliation-row.changed { border-color: rgba(164,126,255,.29); background: rgba(164,126,255,.035); }
.account-reconciliation-row > .source-logo { width: 38px; height: 38px; }
.account-reconciliation-account,
.account-reconciliation-registered,
.account-reconciliation-result { display: grid; min-width: 0; gap: 4px; }
.account-reconciliation-account small,
.account-reconciliation-registered small,
.account-reconciliation-result small,
.account-reconciliation-preview-row small {
  color: #707d84;
  font-size: 6.5px;
  font-weight: 800;
  letter-spacing: .08em;
}
.account-reconciliation-account b { overflow: hidden; color: #e8ecee; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.account-reconciliation-account span { overflow: hidden; color: #758189; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-reconciliation-registered b { color: #cbd2d6; font-size: 9px; }
.account-reconciliation-real { position: relative; }
.account-reconciliation-real input { padding-right: 45px; font-size: 11px; }
.account-reconciliation-real em { position: absolute; right: 10px; bottom: 12px; color: #837393; font-size: 6.5px; font-style: normal; font-weight: 800; }
.account-reconciliation-result b { font-size: 10px; }
.account-reconciliation-result b.match,
.account-reconciliation-proposal.match { color: #65dba4; }
.account-reconciliation-result b.expense,
.account-reconciliation-proposal.expense { color: #ff8f88; }
.account-reconciliation-result b.income,
.account-reconciliation-proposal.income { color: #65dfa7; }
.account-reconciliation-result b.invalid,
.account-reconciliation-proposal.invalid { color: #efc965; }
.account-reconciliation-proposal { font-size: 7px; line-height: 1.35; }
.account-reconciliation-note { grid-column: 2 / -1; grid-template-columns: 145px minmax(0,1fr); align-items: center; }
.account-reconciliation-note input { height: 32px; font-weight: 500; }
.account-reconciliation-footnote { margin: 13px 0 0; color: #707c83; font-size: 7.5px; line-height: 1.5; }
.account-reconciliation-alert {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px;
  padding: 10px 12px;
  border: 1px solid rgba(94,215,230,.25);
  border-radius: 10px;
  background: rgba(94,215,230,.055);
}
.account-reconciliation-alert > span { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 7px; background: rgba(94,215,230,.1); color: #6edce9; font-weight: 800; }
.account-reconciliation-alert p { margin: 0; color: #a9bcc1; font-size: 8px; line-height: 1.5; }
.account-reconciliation-alert.error { border-color: rgba(255,124,115,.32); background: rgba(255,124,115,.06); }
.account-reconciliation-alert.error > span { background: rgba(255,124,115,.11); color: #ff918a; }
.account-reconciliation-alert.error p { color: #d3aaa7; }
.account-reconciliation-alert.stale { border-color: rgba(233,201,103,.34); background: rgba(233,201,103,.065); }
.account-reconciliation-alert.stale > span { background: rgba(233,201,103,.11); color: #e9c967; }
.account-reconciliation-alert.stale p { color: #cabe98; }
.account-reconciliation-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 10px;
}
.account-reconciliation-section-head small { color: #9f82d8; font-size: 6.5px; font-weight: 800; letter-spacing: .12em; }
.account-reconciliation-section-head h3 { margin: 4px 0 0; color: #e9edef; font-size: 12px; }
.account-reconciliation-section-head > p { margin: 0; color: #737f86; font-size: 7.5px; }
.account-reconciliation-preview-row {
  display: grid;
  grid-template-columns: 38px minmax(145px,1fr) 125px 16px 125px minmax(155px,1fr);
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border: 1px solid #2c343a;
  border-radius: 11px;
  background: rgba(9,14,17,.62);
}
.account-reconciliation-preview-row > .source-logo { width: 36px; height: 36px; }
.account-reconciliation-preview-row > div { display: grid; min-width: 0; gap: 4px; }
.account-reconciliation-preview-row > div > b { overflow: hidden; color: #dfe4e6; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.account-reconciliation-preview-row > div > span { color: #78858c; font-size: 7px; }
.account-reconciliation-preview-row > i { color: #4e5a61; font-size: 10px; font-style: normal; }
.account-reconciliation-preview-row > div.expense b,
.account-reconciliation-preview-row > div.expense span { color: #ff8f88; }
.account-reconciliation-preview-row > div.income b,
.account-reconciliation-preview-row > div.income span { color: #69dda9; }
.account-reconciliation-suggestions,
.account-reconciliation-totals { margin-top: 20px; }
.account-reconciliation-suggestions > div:last-child { display: grid; gap: 8px; }
.account-reconciliation-suggestion {
  display: grid;
  grid-template-columns: 26px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  border: 1px solid #30383e;
  border-radius: 11px;
  background: rgba(255,255,255,.018);
  cursor: pointer;
}
.account-reconciliation-suggestion:hover { border-color: #465159; }
.account-reconciliation-suggestion:focus-within {
  border-color: #a47eff;
  outline: 2px solid rgba(164,126,255,.5);
  outline-offset: 2px;
  box-shadow: 0 0 0 3px rgba(164,126,255,.08);
}
.account-reconciliation-suggestion.selected { border-color: rgba(94,215,230,.33); background: rgba(94,215,230,.045); }
.account-reconciliation-suggestion.ambiguous { border-style: dashed; border-color: rgba(233,201,103,.32); }
.account-reconciliation-suggestion input { position: absolute; opacity: 0; pointer-events: none; }
.account-reconciliation-suggestion:has(input:disabled) { opacity: .58; cursor: wait; }
.account-reconciliation-suggestion-check {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid #3b454c;
  border-radius: 7px;
  color: transparent;
  font-size: 8px;
}
.account-reconciliation-suggestion.selected .account-reconciliation-suggestion-check { border-color: #5ed7e6; background: rgba(94,215,230,.13); color: #75e0ed; }
.account-reconciliation-suggestion > span:last-child { display: grid; gap: 4px; min-width: 0; }
.account-reconciliation-suggestion small { color: #6998a2; font-size: 6.5px; font-weight: 800; letter-spacing: .09em; }
.account-reconciliation-suggestion.ambiguous small { color: #bda85f; }
.account-reconciliation-suggestion b { color: #dce3e6; font-size: 9px; line-height: 1.4; }
.account-reconciliation-suggestion em { color: #79868d; font-size: 7px; font-style: normal; line-height: 1.45; }
.account-reconciliation-totals > div:last-child { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.account-reconciliation-totals article {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid #2d353b;
  border-radius: 10px;
  background: rgba(255,255,255,.018);
}
.account-reconciliation-totals article > small { color: #7d8990; font-size: 6.5px; font-weight: 800; letter-spacing: .1em; }
.account-reconciliation-totals article > div { display: flex; align-items: center; gap: 7px; }
.account-reconciliation-totals article span { color: #909ba1; font-size: 8px; }
.account-reconciliation-totals article i { color: #4e5a61; font-size: 8px; font-style: normal; }
.account-reconciliation-totals article b { color: #e5e9eb; font-size: 9px; }
.account-reconciliation-totals article p { margin: 0; color: #7d8990; font-size: 7px; line-height: 1.4; }
.account-reconciliation-totals article p.income { color: #67dca7; }
.account-reconciliation-totals article p.expense { color: #ff8e87; }
.account-reconciliation-total-mxn { border-color: rgba(164,126,255,.25) !important; background: rgba(164,126,255,.045) !important; }
.account-reconciliation-empty {
  display: grid;
  min-height: 150px;
  place-items: center;
  align-content: center;
  gap: 6px;
  padding: 24px;
  border: 1px dashed #343d43;
  border-radius: 12px;
  text-align: center;
}
.account-reconciliation-empty > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: rgba(164,126,255,.1); color: #cbb2ff; }
.account-reconciliation-empty.success > span { background: rgba(94,229,162,.1); color: #69dda9; }
.account-reconciliation-empty h3 { margin: 3px 0 0; color: #dce2e4; font-size: 11px; }
.account-reconciliation-empty p { margin: 0; color: #78858c; font-size: 8px; }
.account-reconciliation-success {
  display: grid;
  min-height: 330px;
  place-items: center;
  align-content: center;
  text-align: center;
}
.account-reconciliation-success > span {
  display: grid;
  width: 55px;
  height: 55px;
  margin-bottom: 13px;
  place-items: center;
  border: 1px solid rgba(94,229,162,.3);
  border-radius: 18px;
  background: rgba(94,229,162,.1);
  color: #6ee0ad;
  font-size: 20px;
  box-shadow: 0 0 35px rgba(94,229,162,.09);
}
.account-reconciliation-success > small { color: #68cfa0; font-size: 6.5px; font-weight: 800; letter-spacing: .14em; }
.account-reconciliation-success h3 { margin: 7px 0 6px; color: #eff3f3; font-size: 18px; }
.account-reconciliation-success > p { max-width: 610px; margin: 0; color: #929da3; font-size: 9px; line-height: 1.65; }
.account-reconciliation-success > div { display: grid; width: min(600px,100%); grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 23px; }
.account-reconciliation-success > div span { display: grid; gap: 4px; padding: 11px; border: 1px solid #2d363b; border-radius: 10px; color: #79868d; font-size: 7px; }
.account-reconciliation-success > div b { color: #e4e9ea; font-size: 15px; }

/* Origen de movimientos y reclasificación posterior de conciliaciones. */
.fv-origin-filter {
  display: grid;
  min-width: 155px;
  gap: 6px;
}
.fv-origin-filter > span {
  color: #737f86;
  font-size: 6.5px;
  font-weight: 800;
  letter-spacing: .1em;
}
.fv-origin-filter select {
  width: 100%;
  height: 38px;
  padding: 0 30px 0 10px;
  border: 1px solid #303940;
  border-radius: 9px;
  outline: 0;
  background: #0e1316;
  color: #c7ced2;
  font-size: 8px;
}
.fv-origin-filter select:focus { border-color: #a47eff; box-shadow: 0 0 0 2px rgba(164,126,255,.1); }
.fv-history-list-tools .fv-origin-filter { flex: 0 0 170px; }
.analysis-toolbar > .fv-origin-filter { flex: 0 0 165px; }
.reconciliation-movement-actions {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  margin-top: 17px;
  padding: 13px;
  border: 1px solid rgba(164,126,255,.28);
  border-radius: 11px;
  background: linear-gradient(120deg,rgba(164,126,255,.075),rgba(94,215,230,.025));
}
.reconciliation-movement-actions > div { display: grid; min-width: 0; gap: 4px; }
.reconciliation-movement-actions small { color: #b28eea; font-size: 6.5px; font-weight: 800; letter-spacing: .1em; }
.reconciliation-movement-actions b { color: #e4e8ea; font-size: 9px; }
.reconciliation-movement-actions p { margin: 0; color: #849098; font-size: 7px; line-height: 1.5; }
.reconciliation-movement-actions button { min-height: 36px; white-space: nowrap; }
.reconciliation-readonly-summary {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 9px;
  margin: 18px 0 14px;
}
.reconciliation-readonly-summary > div {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #30383e;
  border-radius: 10px;
  background: #101519;
}
.reconciliation-readonly-summary span { color: #78858c; font-size: 6.5px; font-weight: 800; letter-spacing: .08em; }
.reconciliation-readonly-summary b { overflow: hidden; color: #e4e9eb; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 900px) {
  .account-reconciliation-row { grid-template-columns: 40px minmax(140px,1fr) repeat(2,minmax(125px,.7fr)); }
  .account-reconciliation-result,
  .account-reconciliation-note { grid-column: 2 / -1; }
  .account-reconciliation-result { grid-template-columns: 80px 110px minmax(0,1fr); align-items: center; }
  .account-reconciliation-preview-row { grid-template-columns: 38px minmax(140px,1fr) 115px 14px 115px; }
  .account-reconciliation-preview-row > div:last-child { grid-column: 2 / -1; grid-template-columns: 80px 110px minmax(0,1fr); align-items: center; }
  .account-reconciliation-totals > div:last-child { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .fv-history-list-tools .fv-origin-filter,
  .analysis-toolbar > .fv-origin-filter { width: 100%; min-width: 0; flex: 0 0 auto; }
  .fv-origin-filter select { min-height: 44px; font-size: 16px; }
  .reconciliation-movement-actions { grid-template-columns: 1fr; }
  .reconciliation-movement-actions button { width: 100%; min-height: 44px; }
  .reconciliation-readonly-summary { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  #modal:has(.account-reconciliation-modal) { place-items: end center; padding: 0; }
  #modalContent.account-reconciliation-modal {
    width: 100vw !important;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-width: 1px 0 0;
    border-radius: 0;
  }
  .account-settings-head-actions { width: 100%; flex-direction: column; align-items: stretch; }
  .account-settings-head-actions button { width: 100%; min-height: 42px; }
  .account-reconciliation-head { padding: 17px 16px 13px; }
  .account-reconciliation-head h2 { font-size: 18px; }
  .account-reconciliation-steps { padding: 10px 16px; }
  .account-reconciliation-steps span { font-size: 0; gap: 0; }
  .account-reconciliation-steps i { font-size: 8px; }
  .account-reconciliation-body { padding: 14px 16px 18px; }
  .account-reconciliation-actions { min-height: auto; padding: 12px 16px; flex-direction: column-reverse; }
  .account-reconciliation-actions button { width: 100%; min-height: 44px; }
  .account-reconciliation-context { grid-template-columns: 1fr; }
  .account-reconciliation-context input,
  .account-reconciliation-note input,
  .account-reconciliation-real input { height: 44px; font-size: 16px; }
  .account-reconciliation-real em { bottom: 15px; font-size: 8px; }
  .account-reconciliation-row { grid-template-columns: 38px minmax(0,1fr); gap: 10px; padding: 13px; }
  .account-reconciliation-row > .source-logo { grid-column: 1; grid-row: 1; }
  .account-reconciliation-account { grid-column: 2; grid-row: 1; }
  .account-reconciliation-registered,
  .account-reconciliation-real,
  .account-reconciliation-result,
  .account-reconciliation-note { grid-column: 1 / -1; }
  .account-reconciliation-registered { grid-template-columns: 1fr auto; align-items: center; padding: 8px 0; border-top: 1px solid rgba(255,255,255,.055); border-bottom: 1px solid rgba(255,255,255,.055); }
  .account-reconciliation-result { grid-template-columns: 1fr auto; gap: 5px 10px; }
  .account-reconciliation-result .account-reconciliation-proposal { grid-column: 1 / -1; }
  .account-reconciliation-note { grid-template-columns: 1fr; }
  .account-reconciliation-note input { height: 42px; }
  .account-reconciliation-section-head { align-items: flex-start; flex-direction: column; gap: 5px; }
  .account-reconciliation-preview-row { grid-template-columns: 36px minmax(0,1fr); gap: 9px; }
  .account-reconciliation-preview-row > .source-logo { grid-column: 1; grid-row: 1; }
  .account-reconciliation-preview-row > div:first-of-type { grid-column: 2; grid-row: 1; }
  .account-reconciliation-preview-row > div:nth-of-type(2),
  .account-reconciliation-preview-row > i,
  .account-reconciliation-preview-row > div:nth-of-type(3) { grid-row: 2; }
  .account-reconciliation-preview-row > div:nth-of-type(2) { grid-column: 1 / 2; }
  .account-reconciliation-preview-row > i { grid-column: 1 / -1; justify-self: center; }
  .account-reconciliation-preview-row > div:nth-of-type(3) { grid-column: 2; justify-self: end; text-align: right; }
  .account-reconciliation-preview-row > div:last-child { grid-column: 1 / -1; grid-template-columns: 1fr auto; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.055); }
  .account-reconciliation-preview-row > div:last-child span { grid-column: 1 / -1; }
  .account-reconciliation-suggestion { grid-template-columns: 22px minmax(0,1fr); }
  .account-reconciliation-suggestion > input + .account-reconciliation-suggestion-check { grid-column: 1; }
  .account-reconciliation-suggestion > span:last-child { grid-column: 2; }
  .account-reconciliation-totals > div:last-child { grid-template-columns: 1fr; }
  .account-reconciliation-success { min-height: 290px; }
  .account-reconciliation-success > div { grid-template-columns: repeat(2,1fr); }
}

/* Sidebar polish: same navigation and actions, with clearer hierarchy and a quieter footer. */
.sidebar {
  padding: 17px 12px 13px;
}
.sidebar .side-head {
  min-height: 47px;
  padding: 0 7px 13px;
}
.sidebar nav {
  flex: 1;
  min-height: 0;
  padding: 2px 2px 10px 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.sidebar .nav-label {
  margin: 9px 3px 4px;
  padding: 5px 9px;
  color: #77707d;
  letter-spacing: .16em;
}
.sidebar .nav-item,
.sidebar .nav-parent {
  position: relative;
  height: 37px;
  min-height: 37px;
  border: 1px solid transparent;
  border-radius: 9px;
}
.sidebar .nav-item.active,
.sidebar .nav-item.active:hover {
  border-color: rgba(183, 140, 244, .24);
  background: linear-gradient(90deg, rgba(183, 140, 244, .16), rgba(183, 140, 244, .045));
  color: #f3effb;
  box-shadow: inset 2px 0 #b78cf4, 0 7px 18px rgba(0, 0, 0, .18);
}
.sidebar .nav-item.active .nav-icon { color: #d6bdff; }
.sidebar .nav-submenu.active > .nav-parent,
.sidebar .nav-submenu.active > .nav-parent:hover {
  border-color: transparent;
  background: rgba(183, 140, 244, .055);
  color: #c9c1d5;
  box-shadow: none;
}
.sidebar .nav-submenu.active > .nav-parent .nav-icon { color: #bfa2ed; }
.sidebar .nav-subitems {
  width: calc(100% - 25px);
  margin: 3px 0 5px 25px;
  padding: 2px 0 2px 12px;
  border-left-color: #32303a;
}
.sidebar .nav-subitem {
  min-height: 32px;
  height: 32px;
  color: #7f8890;
}
.sidebar .nav-subitem.active,
.sidebar .nav-subitem.active:hover {
  background: linear-gradient(90deg, rgba(183, 140, 244, .14), rgba(183, 140, 244, .025));
  color: #f1ecf8;
  box-shadow: inset 2px 0 #b78cf4;
}
.sidebar .side-foot {
  position: relative;
  flex: none;
  margin-top: auto;
  padding-top: 10px;
  border-top-color: #232a30;
}
.sidebar-data-actions {
  align-items: start;
  gap: 7px;
  margin-bottom: 6px;
}
.sidebar-refresh-control {
  position: relative;
  min-height: 68px;
  padding-bottom: 25px;
}
.sidebar-global-refresh,
.sidebar-notification-bell {
  min-height: 40px;
  height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, #171c20, #111519);
}
.sidebar-notification-bell.active {
  border-color: rgba(183, 140, 244, .38);
  background: rgba(183, 140, 244, .12);
  color: #d7c0ff;
  box-shadow: inset 0 0 0 1px rgba(183, 140, 244, .08);
}
.sidebar-refresh-status {
  position: absolute;
  z-index: 35;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  min-height: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  padding: 4px;
  border: 1px solid #252c32;
  border-radius: 8px;
  outline: 0;
  background: #0d1114;
  cursor: help;
}
.sidebar-refresh-status .sync-source {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.sidebar-refresh-status .sync-source b {
  overflow: hidden;
  color: #8e989f;
  font-size: 7px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar-refresh-status .sync-source em {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.sidebar-refresh-status:hover,
.sidebar-refresh-status:focus-visible {
  top: auto;
  bottom: calc(100% - 25px);
  grid-template-columns: 1fr;
  gap: 5px;
  padding: 9px;
  border-color: #3a4249;
  background: #11171b;
  box-shadow: 0 15px 32px rgba(0, 0, 0, .62);
}
.sidebar-refresh-status:hover .sync-source,
.sidebar-refresh-status:focus-visible .sync-source {
  display: grid;
  grid-template-columns: 6px 39px minmax(0, 1fr);
  justify-content: stretch;
  gap: 6px;
}
.sidebar-refresh-status:hover .sync-source b,
.sidebar-refresh-status:focus-visible .sync-source b {
  color: #b7bec3;
  font-size: 7.5px;
}
.sidebar-refresh-status:hover .sync-source em,
.sidebar-refresh-status:focus-visible .sync-source em {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: hidden;
  clip: auto;
  color: #7e8990;
  font-size: 7.5px;
  text-overflow: ellipsis;
}
.sidebar:not(.collapsed) .cloud-sync-status {
  display: flex;
  min-height: 20px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0 2px 6px;
  padding: 3px 7px;
  border-radius: 7px;
  background: rgba(255, 255, 255, .018);
  font-size: 7.5px;
  line-height: 1.25;
}
.sidebar:not(.collapsed) .cloud-sync-status::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 8px color-mix(in srgb, currentColor 42%, transparent);
}
.sidebar .profile {
  min-height: 49px;
  gap: 9px;
  padding: 6px 7px;
  border: 1px solid #252c32;
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .025), rgba(255, 255, 255, .008));
}
.sidebar .profile:hover { background: linear-gradient(135deg, rgba(255, 255, 255, .025), rgba(255, 255, 255, .008)); }
.sidebar .profile-copy {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1px 6px;
}
.sidebar .profile-copy b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar .profile-copy small {
  grid-column: 1 / -1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sidebar .profile-role {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
}
.sidebar .profile-logout {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
}
.sidebar.collapsed .sidebar-refresh-control {
  min-height: 40px;
  padding-bottom: 0;
}
.sidebar.collapsed .sidebar-refresh-status { display: none; }
.sidebar.collapsed .side-foot { padding-top: 9px; }

/* H5 · una sola lectura auditable de Dinero comprometido. */
.commitment-kpi,
.receivable-kpi {
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  transition: border-color .18s ease, transform .18s ease, background-color .18s ease;
}
.commitment-kpi:hover,
.commitment-kpi:focus-visible,
.receivable-kpi:hover,
.receivable-kpi:focus-visible {
  border-color: #80585a;
  transform: translateY(-2px) !important;
  outline: none;
}
.commitment-kpi-copy {
  color: #9b8d92;
  font-size: 8px;
}
.commitment-kpi em,
.receivable-kpi em {
  color: #e19b97;
  font-size: 8px;
  font-style: normal;
  font-weight: 700;
}
.receivable-kpi em { color: #e2c762; }
.commitment-variable-note {
  margin-top: 8px !important;
  padding-top: 8px;
  border-top: 1px dashed #3f3531;
  color: #d6bd74 !important;
}
.commitment-variable-note.opening { color: #b9a2d9 !important; }
.commitment-inline-detail {
  width: 100%;
  margin: 10px 0 0;
  padding: 8px 0 1px;
  border: 0;
  border-top: 1px solid #3a2d30;
  background: transparent;
  color: #d99b96;
  font: 700 8px Manrope, sans-serif;
  text-align: left;
  cursor: pointer;
}
.future-money-reserve .commitment-empty-line { color: #8e9399; }
#modalContent:has(.commitment-detail-modal) {
  width: min(920px, calc(100vw - 36px));
  max-height: min(88vh, 860px);
  overflow: auto;
}
.commitment-detail-modal { display: grid; gap: 16px; }
.commitment-detail-total {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(280px, 1.2fr);
  gap: 12px;
  padding: 16px;
  border: 1px solid #49343a;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(224, 104, 105, .1), rgba(18, 20, 24, .45));
}
.commitment-detail-total > div:first-child { display: flex; flex-direction: column; gap: 5px; }
.commitment-detail-total > div:first-child span,
.commitment-detail-total > div:first-child small {
  color: #a88f94;
  font-size: 8px;
}
.commitment-detail-total > div:first-child strong { color: #f0a09b; font: 700 28px Manrope, sans-serif; }
.commitment-detail-native { display: grid; align-content: center; gap: 7px; }
.commitment-detail-native > div,
.commitment-detail-sources > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 9px;
}
.commitment-detail-native span,
.commitment-detail-sources span { color: #9399a1; }
.commitment-detail-native b,
.commitment-detail-sources b { color: #ebe8ed; font: 700 10px Manrope, sans-serif; }
.commitment-detail-sources {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.commitment-detail-sources > div { padding: 10px 11px; border: 1px solid #2d3239; border-radius: 10px; background: #11151a; }
.commitment-detail-list { display: grid; gap: 8px; }
.commitment-detail-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 95px 125px auto;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid #292f36;
  border-radius: 12px;
  background: #11151a;
}
.commitment-detail-main { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; }
.commitment-detail-main b,
.commitment-detail-main small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.commitment-detail-main b { margin-bottom: 4px; font-size: 11px; }
.commitment-detail-main small { color: #7e8790; font-size: 8px; }
.commitment-detail-main div > em {
  display: block;
  margin-top: 5px;
  color: #8e969f;
  font-size: 7px;
  font-style: normal;
  line-height: 1.4;
}
.commitment-source-chip {
  padding: 5px 7px;
  border-radius: 8px;
  background: #272131;
  color: #c8a9ea;
  font-size: 7px;
  font-weight: 700;
  text-transform: uppercase;
}
.commitment-detail-state { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.commitment-detail-state span { padding: 4px 6px; border-radius: 999px; background: #2d2930; color: #d6ccd8; font-size: 7px; font-weight: 700; }
.commitment-detail-state span.vencido,
.commitment-detail-state span.trasladado { background: #402527; color: #f1a19b; }
.commitment-detail-state span.confirmado { background: #20352d; color: #8cddb5; }
.commitment-detail-state em { color: #737c84; font-size: 7px; font-style: normal; }
.commitment-detail-amount { text-align: right; }
.commitment-detail-amount strong,
.commitment-detail-amount small { display: block; }
.commitment-detail-amount strong { color: #f3eef4; font: 700 11px Manrope, sans-serif; }
.commitment-detail-amount small { margin-top: 4px; color: #879099; font-size: 7px; }
.commitment-detail-actions { display: flex; gap: 6px; }
.commitment-detail-actions button { padding: 7px 8px; white-space: nowrap; }
.commitment-rate-disclosure { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.commitment-rate-disclosure b { margin-right: 4px; font-size: 8px; }
.commitment-rate-disclosure span { padding: 5px 7px; border-radius: 8px; background: #1b2423; color: #91cbb0; font-size: 7px; }
.commitment-rate-disclosure span.missing { background: #3c2426; color: #eda19c; }
.commitment-detail-formula { margin: 0; color: #777f87; font-size: 8px; line-height: 1.55; }
.commitment-class-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.commitment-class-overview article {
  display: grid;
  gap: 5px;
  padding: 13px;
  border: 1px solid #3d3526;
  border-radius: 12px;
  background: rgba(214, 183, 91, .045);
}
.commitment-class-overview article:last-child { border-color: #392f4b; background: rgba(160, 111, 225, .04); }
.commitment-class-overview small { color: #b6a66f; font-size: 7px; font-weight: 750; letter-spacing: .11em; }
.commitment-class-overview strong { color: #ebd184; font: 700 17px Manrope, sans-serif; }
.commitment-class-overview span { color: #7f8790; font-size: 8px; }
.commitment-detail-row.variable { border-left-color: #846d37; }
.commitment-detail-row.opening_review { border-left-color: #6c4d91; }
.receivable-detail-modal { display: grid; gap: 14px; }
.receivable-detail-group {
  display: grid;
  gap: 8px;
  padding: 14px;
  border: 1px solid #323941;
  border-radius: 13px;
  background: #11151a;
}
.receivable-detail-group > header,
.receivable-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.receivable-detail-group > header { padding-bottom: 9px; border-bottom: 1px solid #2b3138; }
.receivable-detail-group header small { color: #c4ae5b; font-size: 7px; letter-spacing: .12em; }
.receivable-detail-group header h3 { margin: 3px 0 0; }
.receivable-detail-row { padding: 10px 0; border-bottom: 1px solid #242a30; }
.receivable-detail-row:last-child { border-bottom: 0; }
.receivable-detail-row > div { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 9px; min-width: 0; }
.receivable-detail-row > div b,
.receivable-detail-row > div small { grid-column: 2; }
.receivable-detail-row > div small { color: #818991; font-size: 8px; }
.receivable-detail-row > strong { margin-left: auto; }
.receivable-detail-row > em { color: #8b939b; font-size: 7px; font-style: normal; }

@media (max-width: 1100px) {
  .commitment-detail-row { grid-template-columns: minmax(0, 1fr) auto; }
  .commitment-detail-main { grid-column: 1 / -1; }
  .commitment-detail-state { grid-column: 1; }
  .commitment-detail-amount { grid-column: 2; }
  .commitment-detail-actions { grid-column: 1 / -1; }
  .commitment-detail-actions button { flex: 1; }
}

@media (max-width: 760px) {
  #modalContent:has(.commitment-detail-modal) { width: calc(100vw - 20px); max-height: 94vh; padding: 17px; }
  .commitment-detail-total { grid-template-columns: 1fr; }
  .commitment-detail-sources { grid-template-columns: 1fr 1fr; }
  .commitment-class-overview { grid-template-columns: 1fr; }
  .receivable-detail-row { align-items: flex-start; flex-direction: column; }
  .receivable-detail-row > strong { margin-left: 0; }
}
.asset-position-list{display:grid;gap:0;min-width:0}
.asset-position-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-top:1px solid var(--border,#30383d);min-width:0}
.asset-position-row>div{display:grid;gap:6px;min-width:0;overflow-wrap:anywhere}
.asset-position-row>div:last-child{text-align:right}
.asset-position-row small,.accounts-platform-position>.simple-section-head small{display:block;color:var(--muted,#91a0ad);font-size:12px;line-height:1.5}
.asset-position-totals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}
.asset-position-totals>div{display:grid;gap:8px;border:1px solid var(--border,#30383d);padding:16px;border-radius:12px}
.asset-position-totals span{color:var(--muted,#91a0ad);font-size:12px}
.asset-position-disclosure summary{cursor:pointer;padding:12px 0;font-size:13px}
.capital-receivables,.accounts-platform-position{margin-top:20px;min-width:0}
.capital-receivables .simple-section-head,.accounts-platform-position .simple-section-head{align-items:flex-start;gap:20px}
.capital-receivables .simple-section-head strong,.accounts-platform-position .simple-section-head strong{white-space:nowrap}
@media(max-width:600px){
  .asset-position-row{align-items:flex-start;flex-direction:column;gap:10px}
  .asset-position-row>div:last-child{text-align:left;width:100%}
  .asset-position-totals{grid-template-columns:1fr}
  .capital-receivables .simple-section-head,.accounts-platform-position .simple-section-head{flex-direction:column;gap:10px}
}
.dashboard-platform-activity .helion-platform-totals { gap: 12px; margin-bottom: 0; }
.dashboard-platform-activity .helion-platform-totals > article { min-height: 0; padding: 16px; }
.dashboard-platform-activity .helion-platform-totals > article > span { line-height: 1.4; }
.platform-flow-chips { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.platform-flow-chips > div { display: flex; flex-direction: column; gap: 7px; padding: 12px; border: 1px solid #30363b; border-radius: 12px; min-width: 0; }
.platform-flow-chips span { font-size: 11px; color: var(--muted); }
.platform-flow-chips b { font-size: 14px; overflow-wrap: anywhere; }
.platform-disclosures { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-block: 0; align-items: start; }
.platform-disclosures .asset-position-disclosure { min-width: 0; margin: 0; }

/* The versioned recurrence editor is longer than ordinary one-field modals. */
#modalContent:has([data-helion-rule-preview], [data-helion-rule-confirm]) {
  width: min(780px, calc(100vw - 32px));
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
#modalContent:has([data-helion-rule-preview], [data-helion-rule-confirm]) .mova-form-grid > fieldset {
  grid-column: 1 / -1;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--border, #30363b);
  border-radius: 10px;
}
#modalContent:has([data-helion-rule-preview]) fieldset > label {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(84px, 120px);
  align-items: center;
  gap: 12px;
  min-height: 44px;
  margin-bottom: 6px;
  font-size: 14px;
}
#modalContent:has([data-helion-rule-selection] option[value="active"]:checked) fieldset { display: none; }
#modalContent:has([data-helion-rule-method] option[value="equal"]:checked) [data-helion-rule-value] { display: none; }
#modalContent:has([data-helion-rule-method] option[value="equal"]:checked) fieldset > label { grid-template-columns: minmax(0, 1fr); }
#modalContent:has([data-helion-rule-preview]) fieldset > label > span {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  overflow-wrap: anywhere;
}
#modalContent:has([data-helion-rule-preview]) [data-helion-rule-model] {
  width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  flex: 0 0 18px;
}
#modalContent:has([data-helion-rule-preview], [data-helion-rule-confirm]) .modal-actions {
  position: sticky;
  bottom: -1px;
  z-index: 1;
  background: var(--surface, #151b20);
  padding-block: 12px;
}
.platform-disclosures summary { min-height: 44px; display: list-item; align-content: center; cursor: pointer; }
/* Audio actions must be readable and easy to tap, not miniature icon labels. */
.registry-ai-workspace .registry-ai-dictation,
.registry-ai-workspace .registry-ai-action { min-height: 44px; font-size: 12px; line-height: 1.35; }
.registry-ai-workspace .registry-ai-audio { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 12px; }
.registry-ai-workspace .registry-ai-audio::before { content: none; }
.registry-ai-workspace .registry-ai-audio svg { width: 16px; height: 16px; flex: 0 0 16px; }
.platform-disclosures p,.platform-disclosures li { font-size: 12px; line-height: 1.5; }
.dashboard-platform-activity .subtle-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid #394249; border-radius: 10px; font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1.3; color: #d5e1e9; width: fit-content; }
.dashboard-platform-activity .subtle-button svg { width: 16px; height: 16px; flex: 0 0 auto; }
.dashboard-platform-activity .subtle-button:focus-visible,.platform-disclosures summary:focus-visible { outline: 2px solid #bc97ff; outline-offset: 3px; }
@media (max-width: 700px) {
  .platform-flow-chips { grid-template-columns: 1fr 1fr; }
  .platform-disclosures { grid-template-columns: 1fr; gap: 0; }
  .dashboard-platform-activity > .simple-section-head { flex-direction: row; align-items: center; }
  .dashboard-platform-activity .helion-platform-totals { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  .dashboard-platform-activity .helion-platform-totals > article { padding: 12px; gap: 7px; }
  .dashboard-platform-activity .helion-platform-totals > article:first-child { grid-column: 1 / -1; }
  .dashboard-platform-activity .helion-platform-totals b { white-space: normal; overflow-wrap: anywhere; }
}
/* Canonical forecast evidence; collapsed by default, no extra page navigation. */
.forecast-model-trend{margin:16px 0;min-width:0;text-align:left}
.forecast-model-trend>summary{cursor:pointer;font-weight:700;line-height:1.5}
.forecast-model-trend p,.forecast-model-trend li,.forecast-model-trend small{line-height:1.55;overflow-wrap:anywhere}
.forecast-trend-models{display:grid;gap:12px;margin:16px 0}
.forecast-trend-models>article{border:1px solid var(--border,#303841);border-radius:12px;padding:16px;min-width:0}
.forecast-trend-models h3{font-family:inherit}
.forecast-trend-models dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.forecast-trend-models dt{font-size:.75rem;color:var(--muted,#a0a9b6);line-height:1.4}
.forecast-trend-models dd{margin:5px 0 0;font-weight:700;overflow-wrap:anywhere}
@media(max-width:600px){.forecast-trend-models dl{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-trend-models>article{padding:12px}}
/* ¿Me alcanza? — selector de escenario; todos los controles son simulación local. */
.affordability-toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.affordability-scenarios{display:flex;gap:6px;padding:5px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}
.affordability-scenarios button{min-height:42px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:700}
.affordability-scenarios button.active{background:linear-gradient(135deg,#985ee8,#ca5bd9);color:#fff;box-shadow:0 8px 22px rgba(166,92,225,.22)}
.affordability-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}
.affordability-summary article{display:flex;min-height:132px;flex-direction:column;gap:8px;justify-content:center;padding:18px}
.affordability-summary small,.affordability-picker header>small,.affordability-outcome>div>small{font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:800}
.affordability-summary b{font:700 clamp(22px,2.4vw,34px)/1.05 Manrope,sans-serif}
.affordability-summary span{color:var(--muted);font-size:12px}
.affordability-summary .positive{color:var(--green)}.affordability-summary .negative{color:var(--red)}
.affordability-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.affordability-picker{padding:20px;min-width:0}.affordability-picker header h2,.affordability-picker header h3{margin:5px 0}.affordability-picker header p{margin:0;color:var(--muted)}
.affordability-picker .subsection{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.affordability-list,.affordability-payment-list{display:grid;gap:8px;margin-top:16px}
.affordability-choice,.affordability-payment{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.015)}
.affordability-choice{cursor:pointer}.affordability-choice input{width:20px;height:20px;accent-color:#a970e8}.affordability-choice>span,.affordability-payment>div{display:grid;gap:3px;min-width:0}.affordability-choice small,.affordability-payment small{color:var(--muted);font-size:11px}.affordability-choice>strong,.affordability-payment>strong{white-space:nowrap}.affordability-choice>small{grid-column:2/-1}.affordability-choice.selected{border-color:rgba(171,106,232,.65);background:rgba(152,94,232,.08)}.affordability-choice.disabled{cursor:not-allowed;opacity:.58}
.affordability-payment{grid-template-columns:minmax(0,1fr) auto minmax(130px,auto)}.affordability-payment select{width:100%;min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);padding:0 10px}.affordability-payment[data-priority="priority"]{border-color:rgba(255,113,126,.45)}.affordability-payment .affordability-linked{color:#e6bd65}
.affordability-outcome{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:22px;margin-top:16px;padding:22px}.affordability-outcome h2{margin:6px 0}.affordability-outcome p{color:var(--muted)}.affordability-outcome dl{display:grid;gap:8px;margin:0}.affordability-outcome dl div,.affordability-outcome li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.affordability-outcome dt{color:var(--muted)}.affordability-outcome ul{grid-column:1/-1;margin:0;padding:0;list-style:none}.affordability-outcome li b{color:var(--red)}.affordability-outcome li.covered b{color:var(--green)}
.affordability-error{padding:22px;margin-top:16px}
@media(max-width:1100px){.affordability-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.affordability-summary .result{grid-column:span 2}.affordability-grid{grid-template-columns:1fr}}
@media(max-width:640px){.affordability-scenarios{width:100%;overflow-x:auto;scrollbar-width:none}.affordability-scenarios button{flex:0 0 auto}.affordability-summary{grid-template-columns:1fr 1fr}.affordability-summary article{min-height:110px;padding:14px}.affordability-grid{gap:12px}.affordability-picker{padding:15px}.affordability-choice{grid-template-columns:auto minmax(0,1fr)}.affordability-choice>strong{grid-column:2}.affordability-payment{grid-template-columns:minmax(0,1fr) auto}.affordability-payment label{grid-column:1/-1}.affordability-outcome{grid-template-columns:1fr;padding:17px}.affordability-outcome ul{grid-column:1}.analysis-view-tabs{overflow-x:auto}.analysis-view-tabs button{flex:0 0 auto}}

/* Deudas: dos posiciones distintas. El neto nunca modifica obligaciones. */
.debt-position-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 20px}
.debt-position-overview article{display:grid;align-content:center;gap:8px;min-height:126px;min-width:0;padding:18px;border:1px solid var(--line,#30363d);border-radius:16px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(13,16,20,.35))}
.debt-position-overview article.owed{border-color:rgba(240,112,108,.42)}.debt-position-overview article.receivable{border-color:rgba(94,229,162,.42)}.debt-position-overview article.net{border-color:rgba(183,140,244,.42)}
.debt-position-overview span,.debt-side-heading>div>span,.debt-receivable-row header small,.debt-compensation-side header span,.debt-compensation-result>span{color:var(--muted,#929ba5);font-size:10px;font-weight:800;letter-spacing:.12em}
.debt-position-overview article.owed>span{color:#f1908c}.debt-position-overview article.receivable>span{color:#79deb0}.debt-position-overview article.net>span{color:#c19beb}
.debt-position-overview strong{font:700 clamp(22px,2.3vw,31px)/1.1 Manrope,sans-serif;overflow-wrap:anywhere}.debt-position-overview small{color:var(--muted,#929ba5);font-size:12px;line-height:1.5}
.debt-side-section{min-width:0;margin-top:20px;padding:clamp(16px,2vw,24px);border:1px solid var(--line,#30363d);border-radius:18px;background:rgba(15,18,22,.55)}
.debt-payable-section{border-color:rgba(240,112,108,.25)}.debt-receivable-section{border-color:rgba(94,229,162,.3)}
.debt-side-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.debt-side-heading>div{min-width:0}.debt-side-heading>div>span{color:#f1908c}.debt-receivable-section .debt-side-heading>div>span{color:#79deb0}
.debt-side-heading h2{margin:5px 0 7px;font:700 clamp(21px,2vw,27px)/1.15 Manrope,sans-serif}.debt-side-heading p{max-width:760px;margin:0;color:var(--muted,#929ba5);font-size:12px;line-height:1.55}.debt-side-heading>strong{flex:0 0 auto;color:#f1908c;font:700 clamp(21px,2.1vw,29px)/1.1 Manrope,sans-serif;white-space:nowrap}.debt-receivable-section .debt-side-heading>strong{color:#79deb0}
.debt-payable-section>.borrowed-capital-section{margin-top:18px}.debt-receivable-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.debt-receivable-row{display:grid;align-content:start;gap:12px;min-width:0;padding:17px;border:1px solid #2c3e37;border-radius:14px;background:linear-gradient(145deg,rgba(64,132,98,.09),rgba(13,17,20,.45))}
.debt-receivable-row>header,.debt-receivable-row>footer{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.debt-receivable-row h3{margin:4px 0 0;font:700 17px/1.2 Manrope,sans-serif;overflow-wrap:anywhere}.debt-receivable-row>header>span{padding:5px 8px;border-radius:999px;background:#21352d;color:#86dcb5;font-size:9px;font-weight:700;text-align:right}.debt-receivable-row>p{min-height:36px;margin:0;color:#bdc5cd;font-size:12px;line-height:1.5}
.debt-receivable-row dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.debt-receivable-row dl>div{min-width:0;padding:10px;border:1px solid #29332f;border-radius:10px;background:rgba(9,12,15,.35)}.debt-receivable-row dt{color:var(--muted,#929ba5);font-size:9px}.debt-receivable-row dd{margin:5px 0 0;font-size:12px;font-weight:750;overflow-wrap:anywhere}.debt-receivable-row>footer{align-items:center;padding-top:3px}.debt-receivable-row>footer small{color:var(--muted,#929ba5);font-size:10px}.debt-receivable-row .subtle-button{min-height:38px;padding:7px 10px;border:1px solid #35413c;border-radius:9px}
.mutual-debt-note{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px;padding:12px;border:1px solid #59436d;border-radius:12px;background:rgba(139,89,184,.08)}.mutual-debt-note>div{display:grid;gap:5px}.mutual-debt-note span{color:#a9a0b2;font-size:9px}.mutual-debt-note b{font-size:12px;overflow-wrap:anywhere}.mutual-debt-note p{grid-column:1/-1;margin:2px 0 0;color:#b8a9c7;font-size:10px;line-height:1.45}.mutual-debt-note button{grid-column:1/-1;min-height:40px}
.debt-receivable-empty{padding:20px;border:1px dashed #35413c;border-radius:13px;text-align:center}.debt-receivable-empty p{margin:7px auto 0;max-width:720px;color:var(--muted,#929ba5);font-size:12px;line-height:1.55}

/* Presentation review: readable categories and clearly labelled USD equivalents. */
.category-card .category-list { display: grid; align-content: start; gap: 20px; margin-top: 24px; }
.category-card .category-list > div:not(.movement-empty) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; align-items: center; align-content: start; padding: 12px 0; }
.category-card .category-list > div > span { grid-column: 1; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.category-card .category-list > div > b { grid-column: 2; grid-row: 1; white-space: nowrap; }
.category-card .category-list > div > div { grid-column: 1 / -1; grid-row: 2; width: 100%; }
.helion-cost-type-summary .helion-cost-usd { display: block; margin-top: 5px; color: var(--muted, #929ba5); font-size: 11px; font-weight: 500; line-height: 1.4; }
.account-distribution-card .source-breakdown > div > span { min-width: 0; overflow-wrap: anywhere; }
.debt-planned-receivables{margin-top:16px;border-top:1px solid #2e3733}.debt-planned-receivables>summary{min-height:48px;padding:14px 2px;cursor:pointer;color:#cfbd81;font-size:12px;font-weight:750}.debt-planned-receivables>p{margin:0 0 12px;color:var(--muted,#929ba5);font-size:11px;line-height:1.55}.debt-planned-receivables>div{display:grid;gap:7px}.debt-planned-receivables>div>div{display:flex;justify-content:space-between;gap:16px;padding:11px;border:1px solid #343329;border-radius:10px}.debt-planned-receivables span{display:grid;gap:4px;min-width:0}.debt-planned-receivables small{color:var(--muted,#929ba5);font-size:9px;overflow-wrap:anywhere}.debt-planned-receivables strong{flex:0 0 auto;color:#dfcc89}
#modalContent:has(.debt-compensation-preview){width:min(760px,calc(100vw - 32px));max-height:min(90vh,820px);overflow-y:auto}.debt-compensation-preview{display:grid;gap:16px}.debt-compensation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.debt-compensation-side{padding:14px;border:1px solid #3e3438;border-radius:13px;background:#11151a}.debt-compensation-side.receivable{border-color:#2d493c}.debt-compensation-side>header{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #2a3036}.debt-compensation-side>header strong{color:#f09a95}.debt-compensation-side.receivable>header strong{color:#83ddb7}.debt-compensation-side>div{display:flex;justify-content:space-between;gap:12px;padding-top:10px;font-size:11px}.debt-compensation-side>div span{overflow-wrap:anywhere}.debt-compensation-side>div b{flex:0 0 auto}.debt-compensation-result{display:grid;gap:7px;padding:16px;border:1px solid #5a4770;border-radius:13px;background:rgba(151,95,207,.08)}.debt-compensation-result strong{color:#cda7f2;font:700 25px/1.1 Manrope,sans-serif}.debt-compensation-result p{margin:0;color:#c3b9cc;font-size:11px;line-height:1.55}
@media(max-width:900px){.debt-position-overview{grid-template-columns:1fr 1fr}.debt-position-overview article.net{grid-column:1/-1}.debt-receivable-list{grid-template-columns:1fr}}
@media(max-width:600px){.debt-position-overview{grid-template-columns:1fr}.debt-position-overview article.net{grid-column:auto}.debt-side-section{padding:14px}.debt-side-heading{flex-direction:column;gap:10px}.debt-side-heading>strong{white-space:normal}.debt-receivable-row dl{grid-template-columns:1fr}.debt-receivable-row>footer{align-items:stretch;flex-direction:column}.debt-receivable-row .subtle-button{width:100%}.mutual-debt-note{grid-template-columns:1fr}.mutual-debt-note p,.mutual-debt-note button{grid-column:1}.debt-compensation-grid{grid-template-columns:1fr}.debt-planned-receivables>div>div{align-items:flex-start;flex-direction:column}}
/* Month review: concise comparison, with source details kept in Helion. */
.forecast-month-review { padding:24px; margin:20px 0; overflow:hidden; }
.forecast-month-review>header { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.forecast-month-review>header small { color:var(--cyan); font-size:10px; letter-spacing:.12em; }
.forecast-month-review h2 { margin:6px 0 10px; font-size:24px; }
.forecast-month-review p { color:var(--muted); line-height:1.6; font-size:12px; }
.forecast-month-review>header>span { white-space:nowrap; padding:8px 12px; border-radius:20px; background:rgba(167,139,250,.12); color:var(--purple); }
.forecast-month-track { height:5px; background:rgba(255,255,255,.07); border-radius:8px; margin:20px 0; overflow:hidden; }
.forecast-month-track i { display:block; height:100%; background:linear-gradient(90deg,var(--purple),var(--cyan)); }
.forecast-business-grid { display:grid; gap:16px; }
.forecast-business-grid article { border:1px solid var(--border); border-radius:16px; padding:18px; background:rgba(255,255,255,.018); min-width:0; }
.forecast-business-grid h3 { margin:0 0 14px; font-size:17px; }
.forecast-business-grid article[data-forecast-business="helion"] { border-left:3px solid var(--purple); }
.forecast-business-grid article[data-forecast-business="personal"] { border-left:3px solid var(--cyan); }
.forecast-business-grid article[data-forecast-business="virtuality"] { border-left:3px solid var(--green); }
.forecast-business-grid table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; font-variant-numeric:tabular-nums; }
.forecast-business-grid th,.forecast-business-grid td { text-align:right; padding:9px 6px; overflow-wrap:anywhere; }
.forecast-business-grid thead th { color:var(--muted); font-size:10px; font-weight:500; }
.forecast-business-grid tbody th { text-align:left; font-weight:500; }
.forecast-business-grid td:last-child { font-weight:700; background:rgba(167,139,250,.06); }
.forecast-business-grid footer { display:flex; justify-content:space-between; gap:14px; border-top:1px solid var(--border); margin:12px 0 8px; padding-top:12px; font-size:12px; }
.forecast-business-grid article>small { color:var(--muted); font-size:10px; line-height:1.6; }
.forecast-review-warnings { font-size:12px; line-height:1.6; margin-bottom:16px; }
.forecast-review-warnings summary { color:var(--yellow); cursor:pointer; }
.debt-month-disclosure { margin:12px 0 20px; padding:16px; border:1px solid var(--border); border-radius:12px; font-size:12px; line-height:1.6; }
.debt-month-disclosure p { margin:0 0 8px; }
.debt-summary-grid article>small { display:block; font-size:10px; color:var(--muted); margin-top:8px; }
.forecast-trend-models { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
@media(max-width:700px) { .forecast-month-review { padding:16px; } .forecast-business-grid article { padding:12px; } .forecast-business-grid table { font-size:11px; } .forecast-business-grid th,.forecast-business-grid td { padding:8px 3px; } .forecast-trend-models { grid-template-columns:1fr; } }
@media(max-width:600px) {
  .dashboard-remainder-reconciliation { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
  .dashboard-remainder-reconciliation .remainder-part { min-width:0; width:100%; }
  .dashboard-remainder-reconciliation .remainder-operator { text-align:center; }
}
