:root {
  color-scheme: dark;
  --v2-canvas: #030504;
  --v2-sidebar: #050706;
  --v2-surface: #0a0c0b;
  --v2-surface-raised: #0d100e;
  --v2-surface-hover: #111512;
  --v2-line: rgba(255, 255, 255, 0.09);
  --v2-line-strong: rgba(255, 255, 255, 0.15);
  --v2-text: #f4f7f5;
  --v2-muted: #a2aaa5;
  --v2-dim: #7b837e;
  --v2-green: #2dde98;
  --v2-green-bright: #61f4b6;
  --v2-green-soft: rgba(45, 222, 152, 0.1);
  --v2-amber: #ff9f43;
  --v2-red: #ff6259;
  --v2-purple: #a978ff;
  --v2-glass-fill: rgba(255, 255, 255, 0.09);
  --v2-glass-fill-strong: rgba(255, 255, 255, 0.15);
  --v2-glass-edge: rgba(255, 255, 255, 0.24);
  --v2-glass-shine: rgba(255, 255, 255, 0.5);
  --v2-radius: 14px;
  --v2-sidebar-width: 278px;
  --v2-topbar-height: 86px;
  --v2-font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
  --v2-mono: 'SFMono-Regular', 'SF Mono', 'Roboto Mono', ui-monospace, Menlo, Consolas, monospace;
  --v2-font-scale: 1;
  --v2-text-micro: calc(11px * var(--v2-font-scale));
  --v2-text-xs: calc(12px * var(--v2-font-scale));
  --v2-text-sm: calc(13px * var(--v2-font-scale));
  --v2-text-body: calc(14px * var(--v2-font-scale));
  --v2-motion-fast: 420ms;
  --v2-motion-standard: 620ms;
  --v2-motion-deliberate: 720ms;
  --v2-motion-ease-out: cubic-bezier(.2,.75,.25,1);
}

@scope (body[data-v2-view='transactions']) {
/* Movimientos mobile v18: continuidad clear-glass del Inicio aprobado. */
.mv7-tx-row-date-mobile {
  display: none;
}

@media (max-width: 768px) {
  :scope {
    --mv7-tx-expense: #58a6ff;
    --mv7-tx-income: #72db84;
    --mv7-tx-transfer: #9c82ea;
    --mv7-tx-amber: #e8b84e;
    --mv7-tx-glass: rgba(12, 14, 16, 0.69);
    --mv7-tx-glass-strong: rgba(10, 12, 14, 0.84);
    --mv7-tx-edge: rgba(255, 255, 255, 0.2);
    --mv7-tx-edge-soft: rgba(255, 255, 255, 0.11);
    background:
      radial-gradient(circle at 88% 14%, rgba(255, 255, 255, 0.05), transparent 15rem),
      radial-gradient(circle at 8% 52%, rgba(255, 255, 255, 0.025), transparent 19rem),
      linear-gradient(160deg, #050607 0%, #090a0c 50%, #050607 100%);
    background-attachment: fixed;
  }

  :scope .mv7-workspace {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  :scope .mv7-topbar {
    display: grid;
    min-height: calc(72px + env(safe-area-inset-top));
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    padding: max(12px, env(safe-area-inset-top)) 16px 11px;
    border-bottom: 0;
    background: rgba(5, 6, 7, 0.78);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(22px) saturate(115%);
    -webkit-backdrop-filter: blur(22px) saturate(115%);
  }

  :scope .mv7-topbar::after,
  :scope #conn-status-chip,
  :scope #whatsapp-quick-link,
  :scope #profile-button,
  :scope .mv7-page-icon,
  :scope .mv7-page-identity p,
  :scope .mv7-live-pill,
  :scope .mv7-mobile-brand {
    display: none;
  }

  :scope .mv7-mobile-topbar-start {
    display: flex;
    min-width: 44px;
    grid-column: 1;
    grid-row: 1;
    align-items: center;
  }

  :scope .mv7-menu-button,
  :scope .mv7-topbar-actions .mv7-icon-button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    border-color: var(--mv7-tx-edge);
    border-radius: 50%;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.085), rgba(255, 255, 255, 0.008)),
      rgba(8, 10, 12, 0.67);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.16),
      0 9px 22px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(18px) saturate(120%);
    -webkit-backdrop-filter: blur(18px) saturate(120%);
  }

  :scope .mv7-menu-button svg {
    width: 19px;
    height: 19px;
  }

  :scope .mv7-page-identity {
    min-width: 0;
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    margin-left: 58px;
    pointer-events: none;
  }

  :scope .mv7-page-identity h1 {
    font-size: 20px;
    font-weight: 670;
    letter-spacing: -0.035em;
  }

  :scope .mv7-topbar-actions {
    grid-column: 2;
    grid-row: 1;
    gap: 8px;
  }

  :scope #privacy-toggle {
    color: var(--mv7-tx-expense);
  }

  :scope #notification-bell {
    color: #e8b84e;
  }

  #transactions-view.mv7-transactions-view {
    position: relative;
    width: 100%;
    padding: 16px 14px calc(94px + env(safe-area-inset-bottom));
  }

  #transactions-view:not([hidden]) > * {
    animation: none;
    transform: none;
  }

  #transactions-view .mv7-tx-heading {
    display: none;
  }

  #transactions-view .mv7-tx-desktop-copy,
  #transactions-view .mv7-tx-mini-chart {
    display: none !important;
  }

  #transactions-view .mv7-tx-mobile-copy {
    display: block;
  }

  #transactions-view .mv7-tx-summary {
    display: grid;
    min-height: 244px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 145px 99px;
    margin: 0 0 14px;
    overflow: hidden;
    border: 1px solid var(--mv7-tx-edge);
    border-radius: 22px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.008) 48%),
      var(--mv7-tx-glass);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.16),
      inset 0 -1px rgba(255, 255, 255, 0.025),
      0 22px 48px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(26px) saturate(112%);
    -webkit-backdrop-filter: blur(26px) saturate(112%);
  }

  #transactions-view .mv7-tx-summary-item {
    min-height: 0;
    padding: 16px;
    border-color: var(--mv7-tx-edge-soft);
    background: transparent;
  }

  #transactions-view .mv7-tx-summary-item:first-child {
    display: flex;
    grid-column: 1 / -1;
    grid-row: 1;
    align-items: center;
    justify-content: center;
    border: 0;
    text-align: center;
  }

  #transactions-view .mv7-tx-summary-item:first-child > span {
    color: var(--mv7-tx-expense);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
  }

  #transactions-view #tx-mobile-balance {
    margin-top: 13px;
    color: #f5f7fa;
    font-family: var(--v2-display);
    font-size: clamp(32px, 10.5vw, 43px);
    font-weight: 560;
    letter-spacing: -0.055em;
    line-height: 1;
    text-shadow: 0 10px 28px rgba(0, 0, 0, 0.32);
  }

  #transactions-view #tx-mobile-balance.is-negative {
    color: var(--mv7-tx-expense);
  }

  #transactions-view .mv7-tx-mobile-period {
    display: none;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2),
  #transactions-view .mv7-tx-summary-item:nth-child(3) {
    position: relative;
    display: grid;
    grid-row: 2;
    min-width: 0;
    grid-template-columns: 40px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-content: center;
    column-gap: 10px;
    padding: 14px 12px;
    border-top: 1px solid var(--mv7-tx-edge-soft);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) {
    grid-column: 1;
    border-right: 1px solid var(--mv7-tx-edge-soft);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(3) {
    grid-column: 2;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2)::before,
  #transactions-view .mv7-tx-summary-item:nth-child(3)::before {
    display: grid;
    width: 38px;
    height: 38px;
    grid-column: 1;
    grid-row: 1 / 3;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    color: var(--mv7-tx-income);
    font-size: 22px;
    content: '\2191';
  }

  #transactions-view .mv7-tx-summary-item:nth-child(3)::before {
    color: var(--mv7-tx-expense);
    content: '\2193';
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) > span,
  #transactions-view .mv7-tx-summary-item:nth-child(3) > span {
    grid-column: 2;
    grid-row: 2;
    color: #9ca3ab;
    font-size: 11px;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) strong,
  #transactions-view .mv7-tx-summary-item:nth-child(3) strong {
    min-width: 0;
    grid-column: 2;
    grid-row: 1;
    overflow: hidden;
    font-size: clamp(11px, 3.2vw, 14px);
    letter-spacing: -0.035em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) strong {
    color: var(--mv7-tx-income);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(3) strong {
    color: var(--mv7-tx-expense);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) small,
  #transactions-view .mv7-tx-summary-item:nth-child(3) small {
    display: none;
  }

  #transactions-view .mv7-tx-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 104px;
    gap: 9px;
    padding: 0;
    margin: 0 0 14px;
  }

  #transactions-view .mv7-tx-search {
    width: 100%;
    min-height: 48px;
    grid-column: 1 / -1;
    padding: 0 14px;
    border: 1px solid var(--mv7-tx-edge);
    border-radius: 17px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.006)),
      var(--mv7-tx-glass);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(21px) saturate(110%);
    -webkit-backdrop-filter: blur(21px) saturate(110%);
  }

  #transactions-view .mv7-tx-search svg {
    width: 17px;
    height: 17px;
    color: #8f969e;
  }

  #transactions-view .mv7-tx-search input {
    min-width: 0;
    font-size: 15px;
  }

  #transactions-view .mv7-tx-search kbd,
  #transactions-view .mv7-tx-filter-count {
    display: none;
  }

  #transactions-view .mv7-tx-type-filter {
    display: grid;
    min-width: 0;
    height: 42px;
    grid-column: 1;
    grid-row: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
  }

  #transactions-view .mv7-tx-type-filter button {
    min-width: 0;
    height: 42px;
    padding: 0 8px;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.018);
    color: #9ba2aa;
    font-size: 11px;
  }

  #transactions-view .mv7-tx-type-filter button i {
    width: 5px;
    height: 5px;
  }

  #transactions-view .mv7-tx-type-filter button.is-active {
    border-color: var(--mv7-tx-edge);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.095), rgba(255, 255, 255, 0.01)),
      rgba(9, 11, 13, 0.72);
    color: #f0f2f5;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.15),
      0 8px 18px rgba(0, 0, 0, 0.2);
  }

  #transactions-view .mv7-tx-type-filter button[data-tx-type='income'] i {
    background: var(--mv7-tx-income);
  }

  #transactions-view .mv7-tx-type-filter button[data-tx-type='expense'] i {
    background: var(--mv7-tx-expense);
  }

  #transactions-view .mv7-tx-select {
    position: relative;
    display: flex;
    min-width: 0;
    height: 42px;
    grid-column: 2;
    grid-row: 2;
    padding: 0 8px;
    border: 1px solid var(--mv7-tx-edge);
    border-radius: 15px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.008)),
      var(--mv7-tx-glass);
  }

  #transactions-view .mv7-tx-select svg {
    width: 14px;
    height: 14px;
  }

  #transactions-view .mv7-tx-select select {
    min-height: 40px;
    padding: 0 3px;
    background: transparent;
    color: #adb3ba;
    font-size: 11px;
  }

  #transactions-view .mv7-tx-mobile-list-head {
    display: flex;
    min-height: 62px;
    align-items: center;
    padding: 10px 12px 7px 16px;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-bottom: 0;
    border-radius: 21px 21px 0 0;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.004)),
      var(--mv7-tx-glass);
    backdrop-filter: blur(24px) saturate(110%);
    -webkit-backdrop-filter: blur(24px) saturate(110%);
  }

  #transactions-view .mv7-tx-mobile-list-head > span {
    color: #f0f2f5;
    font-size: 19px;
    font-weight: 620;
    letter-spacing: -0.03em;
  }

  #transactions-view .mv7-tx-mobile-period-select {
    display: none;
  }

  #transactions-view .mv7-tx-mobile-list-head .mv7-icon-button {
    display: grid;
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
    place-items: center;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.025);
    color: #a6adb4;
  }

  #transactions-view .mv7-tx-layout,
  #transactions-view .mv7-tx-ledger {
    display: block;
  }

  #transactions-view .mv7-tx-ledger {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  #transactions-view .mv7-tx-columns {
    display: none;
  }

  #transactions-view .mv7-tx-list,
  #transactions-view .mv7-tx-list:has(.mv7-tx-empty) {
    min-height: 190px;
    padding: 0 0 11px;
    overflow: hidden;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-top: 0;
    border-radius: 0 0 21px 21px;
    background:
      linear-gradient(160deg, rgba(255, 255, 255, 0.035), transparent 45%),
      var(--mv7-tx-glass);
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(24px) saturate(110%);
    -webkit-backdrop-filter: blur(24px) saturate(110%);
  }

  #transactions-view .mv7-tx-list:has(.mv7-tx-empty) {
    min-height: 242px;
    padding-bottom: 0;
  }

  #transactions-view .mv7-tx-empty {
    min-height: 241px;
    padding: 28px 20px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #transactions-view .mv7-tx-date-group {
    display: flex;
    min-height: 40px;
    align-items: flex-end;
    padding: 12px 16px 7px;
    color: #8b929a;
    font-family: var(--v2-font);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.11em;
  }

  #transactions-view .mv7-tx-row {
    position: relative;
    min-height: 77px;
    grid-template-columns: 44px minmax(0, 1fr) minmax(88px, auto) 11px;
    grid-template-rows: 1fr 1fr;
    gap: 0 10px;
    padding: 10px 12px;
    margin: 0 9px 7px;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-radius: 17px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.006)),
      rgba(8, 10, 12, 0.68);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.09),
      0 10px 24px rgba(0, 0, 0, 0.15);
  }

  #transactions-view .mv7-tx-row:active {
    border-color: rgba(88, 166, 255, 0.28);
    background:
      linear-gradient(90deg, rgba(88, 166, 255, 0.07), rgba(255, 255, 255, 0.008)),
      rgba(8, 10, 12, 0.76);
    box-shadow:
      inset 2px 0 var(--mv7-tx-expense),
      inset 0 1px rgba(255, 255, 255, 0.1);
  }

  #transactions-view .mv7-tx-row::after {
    display: block;
    grid-column: 4;
    grid-row: 1 / 3;
    align-self: center;
    color: #737a82;
    font-size: 22px;
    font-weight: 300;
    content: '\203a';
  }

  #transactions-view .mv7-tx-row-main {
    display: contents;
  }

  #transactions-view .mv7-transaction-token {
    display: grid;
    width: 42px;
    height: 42px;
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: center;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: rgba(88, 166, 255, 0.08);
    color: var(--mv7-tx-expense);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.1);
  }

  #transactions-view .mv7-transaction-token::before,
  #transactions-view .mv7-transaction-token.is-income::before,
  #transactions-view .mv7-transaction-token.is-expense::before,
  #transactions-view .mv7-transaction-token.is-transfer::before {
    display: none;
    content: none;
  }

  #transactions-view .mv7-transaction-token-label {
    display: none;
  }

  #transactions-view .mv7-transaction-token-icon {
    display: block;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.65;
  }

  #transactions-view .mv7-transaction-token.is-income {
    background: rgba(114, 219, 132, 0.085);
    color: var(--mv7-tx-income);
  }

  #transactions-view .mv7-transaction-token.is-expense {
    background: rgba(88, 166, 255, 0.085);
    color: var(--mv7-tx-expense);
  }

  #transactions-view .mv7-transaction-token.is-transfer {
    background: rgba(156, 130, 234, 0.1);
    color: var(--mv7-tx-transfer);
  }

  #transactions-view .mv7-transaction-token[data-icon='i-fuel'] {
    background: rgba(232, 184, 78, 0.085);
    color: var(--mv7-tx-amber);
  }

  #transactions-view .mv7-transaction-token[data-icon='i-cart'] {
    background: rgba(114, 219, 132, 0.085);
    color: var(--mv7-tx-income);
  }

  #transactions-view .mv7-tx-row-copy {
    display: grid;
    min-width: 0;
    grid-column: 2;
    grid-row: 1 / 3;
    align-content: center;
    gap: 4px;
  }

  #transactions-view .mv7-tx-row-copy strong {
    overflow: hidden;
    color: #eef0f3;
    font-size: 13px;
    font-weight: 570;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #transactions-view .mv7-tx-row-meta-desktop,
  #transactions-view .mv7-tx-category,
  #transactions-view .mv7-tx-cell-account,
  #transactions-view .mv7-tx-cell-date,
  #transactions-view .mv7-tx-cell-status {
    display: none;
  }

  #transactions-view .mv7-tx-row-meta-mobile {
    display: block;
    overflow: hidden;
    color: #8f969e;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #transactions-view .mv7-tx-row-amount {
    min-width: 0;
    max-width: 110px;
    grid-column: 3;
    grid-row: 1;
    align-self: end;
    overflow: hidden;
    font-size: clamp(11px, 3.35vw, 14px);
    letter-spacing: -0.03em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #transactions-view .mv7-tx-row-amount.is-income {
    color: var(--mv7-tx-income);
  }

  #transactions-view .mv7-tx-row-amount.is-expense {
    color: var(--mv7-tx-expense);
  }

  #transactions-view .mv7-tx-row-amount.is-transfer {
    color: var(--mv7-tx-transfer);
  }

  #transactions-view .mv7-tx-row-date-mobile {
    display: block;
    grid-column: 3;
    grid-row: 2;
    align-self: start;
    color: #7f868e;
    font-family: var(--v2-mono);
    font-size: 9px;
    text-align: right;
  }

  #transactions-view .mv7-tx-ledger-footer {
    min-height: 48px;
    margin-top: 10px;
    padding: 0 11px;
    border: 1px solid var(--mv7-tx-edge-soft);
    border-radius: 15px;
    background: var(--mv7-tx-glass);
  }

  #transactions-view .mv7-tx-ledger-footer[hidden] {
    display: none;
  }

  #transactions-view .mv7-tx-mobile-fab {
    position: fixed;
    z-index: 72;
    right: max(18px, env(safe-area-inset-right));
    bottom: calc(20px + env(safe-area-inset-bottom));
    display: grid;
    width: 56px;
    height: 56px;
    place-items: center;
    border: 1px solid rgba(129, 183, 255, 0.72);
    border-radius: 50%;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0.035)),
      rgba(55, 105, 184, 0.76);
    color: #f7faff;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.42),
      0 14px 35px rgba(47, 104, 199, 0.28);
    backdrop-filter: blur(20px) saturate(125%);
    -webkit-backdrop-filter: blur(20px) saturate(125%);
    transition:
      opacity 160ms ease,
      transform 160ms ease;
  }

  #transactions-view .mv7-tx-mobile-fab svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.65;
  }

  #transactions-view .mv7-tx-inspector {
    width: 100vw;
    max-width: none;
    inset: auto 0 0;
    border-color: var(--mv7-tx-edge);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.012)),
      rgba(7, 9, 11, 0.96);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.15),
      0 -100vh 0 100vh rgba(0, 0, 0, 0.5),
      0 -32px 90px rgba(0, 0, 0, 0.76);
    backdrop-filter: blur(30px) saturate(115%);
    -webkit-backdrop-filter: blur(30px) saturate(115%);
  }

  #transactions-view .mv7-tx-inspector:not(.is-open) {
    pointer-events: none;
  }

  #transactions-view .mv7-tx-inspector.is-open {
    width: 100vw;
    max-width: none;
    right: 0;
    bottom: 0;
    left: 0;
    border-color: var(--mv7-tx-edge);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.012)),
      rgba(7, 9, 11, 0.96);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.15),
      0 -100vh 0 100vh rgba(0, 0, 0, 0.5),
      0 -32px 90px rgba(0, 0, 0, 0.76);
    backdrop-filter: blur(30px) saturate(115%);
    -webkit-backdrop-filter: blur(30px) saturate(115%);
  }

  #transactions-view .mv7-tx-detail-hero .mv7-transaction-token {
    color: var(--token-color, var(--mv7-tx-expense));
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
  }

  #transactions-view:has(.mv7-tx-inspector.is-open) .mv7-tx-mobile-fab,
  :scope:has(#transaction-composer[open]) #transactions-view .mv7-tx-mobile-fab {
    opacity: 0;
    pointer-events: none;
    transform: scale(0.86);
  }

  #transactions-view .mv7-tx-detail-hero > strong.is-expense {
    color: var(--mv7-tx-expense);
  }
}

@media (max-width: 370px) {
  :scope .mv7-topbar {
    padding-inline: 12px;
  }

  #transactions-view.mv7-transactions-view {
    padding-inline: 12px;
  }

  #transactions-view .mv7-tx-summary {
    grid-template-rows: 138px 94px;
    min-height: 232px;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2),
  #transactions-view .mv7-tx-summary-item:nth-child(3) {
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 7px;
    padding-inline: 8px;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2)::before,
  #transactions-view .mv7-tx-summary-item:nth-child(3)::before {
    width: 32px;
    height: 32px;
    font-size: 18px;
  }

  #transactions-view .mv7-tx-filters {
    grid-template-columns: minmax(0, 1fr) 92px;
    gap: 6px;
  }

  #transactions-view .mv7-tx-type-filter {
    gap: 4px;
  }

  #transactions-view .mv7-tx-type-filter button {
    padding-inline: 5px;
    font-size: 10px;
  }

  #transactions-view .mv7-tx-row {
    grid-template-columns: 40px minmax(0, 1fr) minmax(82px, auto) 9px;
    gap: 0 7px;
    padding-inline: 9px;
  }

  #transactions-view .mv7-transaction-token {
    width: 38px;
    height: 38px;
  }
}

/* ── Animación de arranque — puerto de producción (js/core/boot-splash.js
   maneja el ocultado, ver v2.html). Siempre oscura a propósito, sin
   importar el tema elegido: dura como mucho ~2s y el tema real todavía
   no se conoce en ese instante (el script que lo aplica corre después). */
}

#boot-splash {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #030504;
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
#boot-splash.mv7-boot-splash-hide {
  opacity: 0;
  pointer-events: none;
}
.mv7-boot-splash-icon {
  position: relative;
  width: 168px;
  height: 168px;
  -webkit-mask-image: url('/boot-icon.png');
  mask-image: url('/boot-icon.png');
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background: linear-gradient(100deg, #999faa 0%, #999faa 42%, #ffffff 50%, #999faa 58%, #999faa 100%);
  background-size: 320% 320%;
  background-position: -110% 0%;
  opacity: 0;
  filter: blur(18px);
  transform: scale(1.3);
  animation:
    mv7BootIconFocus 0.9s cubic-bezier(0.16, 1, 0.3, 1) forwards,
    mv7BootIconSweep 1.9s cubic-bezier(0.4, 0, 0.2, 1) 0.9s infinite;
}
@keyframes mv7BootIconFocus {
  to { opacity: 1; filter: blur(0); transform: scale(1); }
}
@keyframes mv7BootIconSweep {
  0% { background-position: -110% 0%; }
  60%, 100% { background-position: 110% 0%; }
}
@media (prefers-reduced-motion: reduce) {
  .mv7-boot-splash-icon {
    animation: none;
    opacity: 1;
    filter: none;
    transform: none;
    background-position: 0% 0%;
  }
}

/* ── Bloqueo por PIN (Ajustes → Seguridad) — pantalla completa cuando
   arranca con el PIN activo o cuando vuelve tras el timeout de
   inactividad; .mv7-lock-panel se reusa adentro del dialog de alta de
   PIN para no duplicar el look de los puntitos/input. */
#app-lock-screen {
  position: fixed;
  z-index: 1000000;
  inset: 0;
  display: grid;
  place-items: center;
  background: var(--v2-canvas);
}

#app-lock-screen[hidden] {
  display: none;
}

#app-lock-screen[hidden] {
  display: none;
}

.mv7-lock-panel {
  position: relative;
  display: grid;
  width: min(320px, calc(100vw - 48px));
  justify-items: center;
  gap: 6px;
  padding: 40px 28px 32px;
  text-align: center;
  border: 1px solid var(--v2-glass-edge);
  border-radius: 20px;
  background: var(--v2-glass-fill-strong);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 30px 70px rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(30px) saturate(160%);
  -webkit-backdrop-filter: blur(30px) saturate(160%);
}

.mv7-lock-panel--dialog {
  width: 100%;
  padding: 44px 24px 28px;
  border: 0;
  background: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.mv7-lock-panel .mv7-icon-button {
  position: absolute;
  top: 10px;
  right: 10px;
}

.mv7-lock-icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin-bottom: 6px;
  place-items: center;
  border: 1px solid var(--v2-line-strong);
  border-radius: 50%;
  background: var(--v2-green-soft);
  color: var(--v2-green-bright);
}

.mv7-lock-icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

.mv7-lock-panel h2 {
  margin: 4px 0 0;
  font-size: 18px;
  font-weight: 650;
}

.mv7-lock-panel p {
  margin: 0 0 10px;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

.mv7-lock-dots {
  position: relative;
  display: flex;
  gap: 14px;
  padding: 10px 0;
}

.mv7-lock-dots i {
  width: 14px;
  height: 14px;
  border: 1px solid var(--v2-line-strong);
  border-radius: 50%;
  background: transparent;
  transition: background-color 120ms ease, transform 120ms ease;
}

.mv7-lock-dots i.is-filled {
  border-color: var(--v2-green);
  background: var(--v2-green);
  transform: scale(1.1);
}

.mv7-lock-dots.is-error i {
  border-color: var(--v2-red);
  animation: v2-lock-shake 360ms ease;
}

@keyframes v2-lock-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}

.mv7-lock-hidden-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  opacity: 0;
  cursor: default;
}

.mv7-lock-error {
  min-height: 16px;
  margin: 2px 0 4px !important;
  color: var(--v2-red) !important;
  font-size: var(--v2-text-xs) !important;
}

#app-lock-forgot {
  margin-top: 10px;
}

@media (prefers-reduced-motion: reduce) {
  .mv7-lock-dots.is-error i {
    animation: none;
  }
}

:root[data-reduce-motion='true'] :is(.mv7-nav-item,.mv7-settings-nav-item,.mv7-sidebar-footer > a):hover svg,
:root[data-reduce-motion='true'] :is(.mv7-nav-item,.mv7-settings-nav-item,.mv7-sidebar-footer > a):hover svg > * {
  animation: none !important;
  transform: none !important;
}

/* ── Apariencia: tema, acento, movimiento, transparencia ──────────────
   "Sistema" (data-theme="system") solo cambia de verdad cuando el SO
   pide claro — si el SO prefiere oscuro (o no informa preferencia), se
   queda en los valores oscuros de :root de arriba, sin overrides. Nunca
   se migró un tema claro real de producción (lo tuvo, lo sacó por
   frágil) — este es nuevo, acotado a los tokens estructurales, no un
   intento de invertir cada color de la hoja. */
@media (prefers-color-scheme: light) {
  :root[data-theme='system'] {
    color-scheme: light;
    --v2-canvas: #f2f4f2;
    --v2-sidebar: #ffffff;
    --v2-surface: #ffffff;
    --v2-surface-raised: #f7f9f7;
    --v2-surface-hover: #edf1ee;
    --v2-line: rgba(10, 20, 14, 0.1);
    --v2-line-strong: rgba(10, 20, 14, 0.18);
    --v2-text: #10140f;
    --v2-muted: #5b625d;
    --v2-dim: #868d88;
  }

  :root[data-theme='system'] body {
    background:
      radial-gradient(ellipse at 82% 4%, rgba(45, 222, 152, 0.07), transparent 34rem),
      radial-gradient(ellipse at 7% 78%, rgba(45, 180, 152, 0.05), transparent 32rem),
      radial-gradient(ellipse at 48% 55%, rgba(110, 113, 111, 0.04), transparent 42rem),
      linear-gradient(150deg, #fbfcfb, var(--v2-canvas) 55%, #f5f7f5);
  }

  :root[data-theme='system'] body::before {
    background: rgba(45, 222, 152, 0.09);
  }

  :root[data-theme='system'] body::after {
    background: rgba(150, 152, 148, 0.12);
  }

  :root[data-theme='system'] .mv7-app {
    background: rgba(255, 255, 255, 0.74);
    box-shadow:
      inset 0 1px rgba(0, 0, 0, 0.03),
      0 40px 100px rgba(0, 0, 0, 0.08);
  }

  :root[data-theme='system'] .mv7-sidebar {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.015), transparent 22rem), rgba(255, 255, 255, 0.88);
    box-shadow:
      inset -1px 0 rgba(0, 0, 0, 0.025),
      18px 0 50px rgba(0, 0, 0, 0.05);
  }

  :root[data-theme='system'] .mv7-workspace {
    background:
      linear-gradient(180deg, rgba(0, 0, 0, 0.012), transparent 20rem), rgba(255, 255, 255, 0.72);
  }

  /* Tarjetas de contenido: estaban en rgba(negro translúcido) fijo, sin
     tocar los tokens — invisibles como "tarjeta oscura sobre fondo claro"
     hasta que se corrigen acá una por una. Todavía no es cobertura total
     de las 27 tarjetas con fondo fijo detectadas en toda la hoja — son
     las de mayor tráfico (Inicio, Movimientos, Cuentas, Objetivos,
     Calendario); el resto queda como límite conocido, no silencioso. */
  :root[data-theme='system'] .mv7-topbar {
    background: rgba(255, 255, 255, 0.78);
  }

  :root[data-theme='system'] .mv7-metric,
  :root[data-theme='system'] .mv7-panel,
  :root[data-theme='system'] .mv7-accounts-panel,
  :root[data-theme='system'] .mv7-activity-panel {
    background: rgba(255, 255, 255, 0.75);
  }

  :root[data-theme='system'] .mv7-metric-primary {
    background: rgba(230, 245, 236, 0.75);
  }

  :root[data-theme='system'] .mv7-metric-expense {
    background: rgba(255, 237, 225, 0.7);
  }

  :root[data-theme='system'] .mv7-cashflow-panel {
    background: rgba(255, 255, 255, 0.75);
  }

  :root[data-theme='system'] .mv7-tx-summary,
  :root[data-theme='system'] .mv7-tx-ledger,
  :root[data-theme='system'] .mv7-tx-inspector {
    background:
      linear-gradient(145deg, rgba(0, 0, 0, 0.02), transparent 48%), rgba(255, 255, 255, 0.78);
  }

  :root[data-theme='system'] .mv7-tx-mini-chart,
  :root[data-theme='system'] .mv7-tx-ledger-footer {
    background: rgba(0, 0, 0, 0.04);
  }

  :root[data-theme='system'] .mv7-money-node {
    background: rgba(255, 255, 255, 0.85);
  }

  :root[data-theme='system'] .mv7-account-focus-insight,
  :root[data-theme='system'] .mv7-goal-milestones {
    background: rgba(0, 0, 0, 0.05);
  }

  :root[data-theme='system'] .mv7-calendar-landing {
    background: rgba(255, 255, 255, 0.85);
  }

  /* Configuración: una sola regla cubre las 9 pestañas (todas comparten
     .mv7-settings-card / .mv7-settings-nav / .mv7-settings-context-card). */
  :root[data-theme='system'] .mv7-settings-nav,
  :root[data-theme='system'] .mv7-settings-context-card,
  :root[data-theme='system'] .mv7-settings-card {
    background: linear-gradient(145deg, rgba(0, 0, 0, 0.015), transparent 60%), rgba(255, 255, 255, 0.8);
  }

  /* Cuentas */
  :root[data-theme='system'] .mv7-money-map {
    background:
      radial-gradient(circle at 44% 48%, rgba(45, 222, 152, 0.08), transparent 20rem),
      linear-gradient(135deg, rgba(0, 0, 0, 0.015), transparent 42%), rgba(255, 255, 255, 0.78);
  }

  :root[data-theme='system'] .mv7-money-source {
    background:
      radial-gradient(circle at 20% 15%, rgba(45, 222, 152, 0.14), transparent 56%),
      rgba(255, 255, 255, 0.88);
  }

  :root[data-theme='system'] .mv7-money-node {
    background: rgba(255, 255, 255, 0.82);
  }

  :root[data-theme='system'] .mv7-account-focus {
    background:
      radial-gradient(circle at 13% 12%, var(--account-soft, rgba(45, 222, 152, 0.1)), transparent 22rem),
      linear-gradient(128deg, rgba(0, 0, 0, 0.012), transparent 46%), rgba(255, 255, 255, 0.85);
  }

  /* Presupuestos */
  :root[data-theme='system'] .mv7-budget-field {
    background:
      radial-gradient(circle at 52% 25%, rgba(45, 222, 152, 0.06), transparent 28rem),
      linear-gradient(135deg, rgba(0, 0, 0, 0.01), transparent 38%), rgba(255, 255, 255, 0.78);
  }

  /* Objetivos */
  :root[data-theme='system'] .mv7-future-scene {
    background:
      radial-gradient(ellipse at 29% 69%, rgba(45, 222, 152, 0.08), transparent 24rem),
      radial-gradient(ellipse at 74% 58%, rgba(77, 125, 103, 0.04), transparent 26rem),
      linear-gradient(180deg, rgba(0, 0, 0, 0.01), transparent 35%), rgba(255, 255, 255, 0.82);
  }

  :root[data-theme='system'] .mv7-goal-monolith-shell {
    background:
      linear-gradient(90deg, rgba(0, 0, 0, 0.02), transparent 34%),
      color-mix(in srgb, var(--goal-color) 4%, rgba(255, 255, 255, 0.85));
  }

  /* Patrimonio */
  :root[data-theme='system'] .mv7-networth-section {
    background:
      radial-gradient(circle at 58% 30%, rgba(65, 171, 137, 0.08), transparent 34%),
      linear-gradient(145deg, rgba(255, 255, 255, 0.97), rgba(244, 247, 245, 0.99));
  }

  :root[data-theme='system'] .mv7-networth-layer-surface {
    background:
      linear-gradient(100deg, color-mix(in srgb, var(--layer-tone) 18%, transparent), transparent 68%),
      rgba(255, 255, 255, 0.9);
  }

  :root[data-theme='system'] .mv7-networth-layer.is-selected .mv7-networth-layer-surface {
    background:
      linear-gradient(100deg, color-mix(in srgb, var(--layer-tone) 28%, transparent), transparent 72%),
      rgba(255, 255, 255, 0.97);
  }

  :root[data-theme='system'] .mv7-networth-ratio {
    background: rgba(0, 0, 0, 0.05);
  }

  /* Calendario */
  :root[data-theme='system'] .mv7-calendar-horizon {
    background:
      radial-gradient(ellipse at 56% 44%, rgba(29, 112, 83, 0.07), transparent 40%),
      linear-gradient(180deg, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.015));
  }

  :root[data-theme='system'] .mv7-calendar-event {
    background:
      linear-gradient(110deg, color-mix(in srgb, var(--event-color) 15%, transparent), transparent),
      rgba(255, 255, 255, 0.85);
  }

  :root[data-theme='system'] .mv7-calendar-event.is-selected {
    background:
      linear-gradient(105deg, color-mix(in srgb, var(--event-color) 20%, transparent), transparent 82%),
      rgba(255, 255, 255, 0.94);
  }

  :root[data-theme='system'] .mv7-calendar-event-toggle,
  :root[data-theme='system'] .mv7-calendar-event-delete {
    background: rgba(255, 255, 255, 0.92);
  }

  /* Recurrentes */
  :root[data-theme='system'] .mv7-orbit-analysis {
    background:
      linear-gradient(90deg, rgba(23, 116, 144, 0.14), rgba(255, 255, 255, 0.88) 74%),
      rgba(255, 255, 255, 0.88);
  }

  :root[data-theme='system'] .mv7-recurring-simulator {
    background: rgba(255, 255, 255, 0.82);
  }

  :root[data-theme='system'] .mv7-recurring-node {
    background: color-mix(in srgb, var(--node-color) 6%, rgba(255, 255, 255, 0.9));
  }

  /* Comunidad */
  :root[data-theme='system'] .mv7-community-tabs {
    background: var(--v2-surface);
  }

  /* Textos con color blanco translúcido fijo (pensados para fondo oscuro) —
     ilegibles sobre las tarjetas claras de arriba si no se ajustan también. */
  :root[data-theme='system'] .mv7-calendar-day {
    color: rgba(10, 20, 15, 0.4);
  }

  :root[data-theme='system'] .mv7-calendar-scale {
    color: rgba(10, 20, 15, 0.32);
  }

  /* Resto de textos con blanco translúcido fijo: Patrimonio, Calendario
     (eventos), Recurrentes — mismo motivo que arriba. */
  :root[data-theme='system'] .mv7-networth-depth-label,
  :root[data-theme='system'] .mv7-networth-totals dd,
  :root[data-theme='system'] .mv7-calendar-event footer span,
  :root[data-theme='system'] .mv7-orbit-core span,
  :root[data-theme='system'] .mv7-recurring-node small,
  :root[data-theme='system'] .mv7-recurring-impact > small,
  :root[data-theme='system'] .mv7-recurring-projection b {
    color: rgba(10, 20, 15, 0.62);
  }

  :root[data-theme='system'] .mv7-networth-depth-label span,
  :root[data-theme='system'] .mv7-networth-zero span,
  :root[data-theme='system'] .mv7-networth-layer-copy span::before,
  :root[data-theme='system'] .mv7-networth-layer-detail strong::before,
  :root[data-theme='system'] .mv7-networth-layer-detail em::before,
  :root[data-theme='system'] .mv7-calendar-event footer span + span::before {
    color: rgba(10, 20, 15, 0.3);
  }

  :root[data-theme='system'] .mv7-networth-layer-copy span,
  :root[data-theme='system'] .mv7-networth-ratio small,
  :root[data-theme='system'] .mv7-networth-layer-detail small,
  :root[data-theme='system'] .mv7-calendar-zero-line span {
    color: rgba(10, 20, 15, 0.5);
  }

  :root[data-theme='system'] .mv7-networth-zero {
    color: rgba(10, 20, 15, 0.78);
  }

  :root[data-theme='system'] .mv7-calendar-event-toggle,
  :root[data-theme='system'] .mv7-calendar-event-delete {
    color: rgba(10, 20, 15, 0.55);
  }

  :root[data-theme='system'] .mv7-account-item:hover,
  :root[data-theme='system'] .mv7-transaction-row:hover {
    background: rgba(0, 0, 0, 0.035);
  }

  /* Textos con blanco fijo en hexadecimal (no rgba) — el mismo bug, otra
     forma de escribirlo. */
  :root[data-theme='system'] .mv7-networth-primary h3,
  :root[data-theme='system'] .mv7-networth-measure strong {
    color: #10140f;
  }

  :root[data-theme='system'] .mv7-community-post-body > p {
    color: #10140f;
  }
}

/* Contraste alto: bordes y texto secundario más marcados, no depende del SO */
:root[data-theme='contrast'] {
  --v2-line: rgba(255, 255, 255, 0.28);
  --v2-line-strong: rgba(255, 255, 255, 0.45);
  --v2-muted: #c7ccc8;
  --v2-dim: #9aa19c;
}

:root[data-accent='blue'] {
  --v2-green: #3788f5;
  --v2-green-bright: #6ba8ff;
  --v2-green-soft: rgba(55, 136, 245, 0.1);
}

:root[data-accent='purple'] {
  --v2-green: #994cef;
  --v2-green-bright: #b479f7;
  --v2-green-soft: rgba(153, 76, 239, 0.1);
}

:root[data-accent='amber'] {
  --v2-green: #f5a30b;
  --v2-green-bright: #ffc247;
  --v2-green-soft: rgba(245, 163, 11, 0.1);
}

:root[data-accent='coral'] {
  --v2-green: #fa5e5e;
  --v2-green-bright: #ff8a8a;
  --v2-green-soft: rgba(250, 94, 94, 0.1);
}

:root[data-reduce-motion='true'] *,
:root[data-reduce-motion='true'] *::before,
:root[data-reduce-motion='true'] *::after {
  animation-duration: 0.001ms !important;
  animation-delay: 0ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
  scroll-behavior: auto !important;
}

:root[data-transparency='off'] * {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

:root[data-animated-charts='false'] #overview-view .mv7-money-roll-char,
:root[data-animated-charts='false'] #overview-view .mv7-metric,
:root[data-animated-charts='false'] #overview-view .mv7-spark-line,
:root[data-animated-charts='false'] #overview-view .mv7-chart-line,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-section-heading,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-metric,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-cashflow-panel,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-accounts-panel,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-activity-panel,
:root[data-animated-charts='false'] #overview-view .mv7-transaction-list.is-entering .mv7-transaction-row,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-chart-area,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-spark-fill,
:root[data-animated-charts='false'] #overview-view.is-entering .mv7-chart-point {
  animation: none !important;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  min-height: 100%;
  overflow-x: clip;
  background: var(--v2-canvas);
  font-size: var(--v2-text-body);
}

body {
  position: relative;
  min-height: 100vh;
  margin: 0;
  overflow-x: clip;
  color: var(--v2-text);
  background:
    radial-gradient(ellipse at 82% 4%, rgba(140, 142, 138, 0.14), transparent 34rem),
    radial-gradient(ellipse at 7% 78%, rgba(90, 92, 88, 0.12), transparent 32rem),
    radial-gradient(ellipse at 48% 55%, rgba(110, 113, 111, 0.06), transparent 42rem),
    linear-gradient(150deg, #070908, var(--v2-canvas) 48%, #060806);
  font-family: var(--v2-font);
  font-size: 1rem;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

small {
  font-size: inherit;
}

body::before,
body::after {
  position: fixed;
  z-index: 0;
  border-radius: 50%;
  content: '';
  filter: blur(90px);
  opacity: 0.38;
  pointer-events: none;
}

body::before {
  width: 32vw;
  height: 32vw;
  background: rgba(150, 152, 148, 0.12);
  right: -10vw;
  top: 8vh;
}

body::after {
  width: 28vw;
  height: 28vw;
  background: rgba(131, 137, 133, 0.07);
  bottom: -14vw;
  left: 20vw;
}

button,
input,
select {
  color: inherit;
  font: inherit;
}

button,
a,
select {
  -webkit-tap-highlight-color: transparent;
}

button,
a {
  touch-action: manipulation;
}

button {
  border: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

svg {
  display: block;
}

[hidden] {
  display: none;
}

/* Patrimonio V2 — corte financiero, aislado del sistema visual anterior */
.mv7-networth-view {
  min-height: calc(100vh - 78px);
  padding: 34px clamp(24px, 3.4vw, 58px) 46px;
}

.mv7-networth-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.mv7-networth-heading h2 {
  margin: 5px 0 6px;
  color: var(--v2-text);
  font-size: clamp(34px, 3.2vw, 51px);
  font-weight: 470;
  letter-spacing: -0.055em;
}

.mv7-networth-heading > div > p:last-child {
  margin: 0;
  color: var(--v2-muted);
  font-size: 13px;
}

.mv7-networth-heading .mv7-secondary-button {
  flex: 0 0 auto;
}

.mv7-networth-heading svg {
  width: 14px;
  height: 14px;
}

.mv7-networth-section {
  position: relative;
  overflow: hidden;
  min-height: 760px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 20px;
  background:
    radial-gradient(circle at 58% 30%, rgba(65, 171, 137, 0.09), transparent 34%),
    linear-gradient(145deg, rgba(20, 22, 22, 0.97), rgba(8, 9, 9, 0.99));
  box-shadow:
    0 30px 80px rgba(0, 0, 0, 0.32),
    inset 0 1px rgba(255, 255, 255, 0.025);
}

.mv7-networth-section::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 52px 52px;
  content: '';
  mask-image: linear-gradient(to bottom, transparent, #000 18%, #000 78%, transparent);
  pointer-events: none;
}

.mv7-networth-summary {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 156px;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  padding: 28px 34px 25px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.mv7-networth-primary h3 {
  margin: 8px 0 3px;
  color: #f5f7f6;
  font-size: clamp(34px, 4vw, 58px);
  font-weight: 440;
  letter-spacing: -0.06em;
}

.mv7-networth-primary > span {
  color: #5ae0b7;
  font-size: var(--v2-text-sm);
  font-weight: 650;
}

.mv7-networth-primary > span.is-negative,
.mv7-networth-history strong.is-negative {
  color: #ff7b72;
}

.mv7-networth-totals {
  display: flex;
  gap: clamp(30px, 5vw, 76px);
  margin: 0;
}

.mv7-networth-totals div {
  display: grid;
  gap: 7px;
}

.mv7-networth-totals dt {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.mv7-networth-totals dd {
  margin: 0;
  color: var(--v2-text);
  font-size: 17px;
  font-weight: 580;
}

.mv7-networth-cross-section {
  position: relative;
  z-index: 1;
  min-height: 485px;
  padding: 36px 156px 38px 96px;
  perspective: 1000px;
}

.mv7-networth-depth-label {
  position: absolute;
  left: 28px;
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--v2-text-micro);
  font-weight: 760;
  letter-spacing: 0.15em;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.mv7-networth-depth-label span {
  margin-top: 8px;
  color: rgba(255, 255, 255, 0.25);
  font-weight: 500;
  letter-spacing: 0.07em;
}

.mv7-networth-depth-label-assets {
  top: 54px;
}

.mv7-networth-depth-label-liabilities {
  bottom: 42px;
}

.mv7-networth-layers {
  display: flex;
  width: 100%;
  flex-direction: column;
}

.mv7-networth-assets {
  justify-content: flex-end;
}

.mv7-networth-liabilities {
  justify-content: flex-start;
}

.mv7-networth-layer {
  position: relative;
  z-index: 1;
  width: var(--layer-width);
  margin-left: var(--layer-offset);
  color: var(--v2-text);
  cursor: pointer;
  outline: none;
  transition:
    width 320ms cubic-bezier(0.2, 0.75, 0.25, 1),
    margin 320ms cubic-bezier(0.2, 0.75, 0.25, 1),
    filter 220ms ease;
}

.mv7-networth-layer + .mv7-networth-layer {
  margin-top: -8px;
}

.mv7-networth-layer:hover,
.mv7-networth-layer:focus-visible {
  z-index: 3;
  filter: brightness(1.18);
}

.mv7-networth-layer.is-selected {
  z-index: 5;
  width: 96%;
  margin-block: 7px 13px;
  margin-left: 0;
}

.mv7-networth-layer-surface {
  position: relative;
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 7% 12px 8%;
  border: 1px solid color-mix(in srgb, var(--layer-tone) 52%, transparent);
  background:
    linear-gradient(
      100deg,
      color-mix(in srgb, var(--layer-tone) 18%, transparent),
      transparent 68%
    ),
    rgba(19, 22, 22, 0.94);
  box-shadow:
    0 15px 30px rgba(0, 0, 0, 0.25),
    inset 0 1px color-mix(in srgb, var(--layer-tone) 30%, transparent);
  clip-path: polygon(5% 0, 100% 0, 95% 100%, 0 100%);
  transform: rotateX(4deg) skewX(-4deg);
  transform-origin: center;
}

.mv7-networth-layer-surface::after {
  position: absolute;
  right: 4.4%;
  bottom: 0;
  left: 4.4%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--layer-tone), transparent);
  box-shadow: 0 0 18px var(--layer-tone);
  content: '';
  opacity: 0.55;
}

.mv7-networth-layer.is-selected .mv7-networth-layer-surface {
  min-height: 76px;
  background:
    linear-gradient(
      100deg,
      color-mix(in srgb, var(--layer-tone) 28%, transparent),
      transparent 72%
    ),
    rgba(22, 26, 25, 0.98);
}

.mv7-networth-layer-copy {
  display: grid;
  gap: 4px;
}

.mv7-networth-layer-copy strong {
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -0.015em;
}

.mv7-networth-layer-copy span {
  color: rgba(255, 255, 255, 0.54);
  font-size: var(--v2-text-xs);
}

.mv7-networth-layer-surface > b {
  color: var(--layer-tone);
  font-size: var(--v2-text-xs);
  letter-spacing: 0.06em;
}

.mv7-networth-layer-detail {
  display: flex;
  width: 78%;
  min-height: 49px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: -2px auto 0;
  padding: 8px 13px 7px;
  border-inline: 1px solid color-mix(in srgb, var(--layer-tone) 20%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--layer-tone) 20%, transparent);
  background: rgba(255, 255, 255, 0.022);
}

.mv7-networth-layer-detail > span {
  display: grid;
  gap: 4px;
}

.mv7-networth-layer-detail small {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  font-weight: 700;
  letter-spacing: 0.13em;
}

.mv7-networth-layer-detail strong {
  font-size: var(--v2-text-xs);
  font-weight: 560;
}

.mv7-networth-edit {
  border: 0;
  border-bottom: 1px solid var(--layer-tone);
  background: transparent;
  color: var(--layer-tone);
  cursor: pointer;
  font: inherit;
  font-size: var(--v2-text-micro);
  font-weight: 650;
}

.mv7-networth-zero {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  margin: 13px -34px 14px -52px;
  color: #65edc5;
  font-size: var(--v2-text-micro);
  font-weight: 760;
  letter-spacing: 0.14em;
}

.mv7-networth-zero i {
  height: 1px;
  background: linear-gradient(90deg, #50dbb2, rgba(80, 219, 178, 0.15));
  box-shadow: 0 0 16px rgba(80, 219, 178, 0.45);
}

.mv7-networth-zero span {
  color: rgba(255, 255, 255, 0.28);
  font-weight: 500;
  letter-spacing: 0.06em;
}

.mv7-networth-layer-liability .mv7-networth-layer-surface {
  transform: rotateX(-4deg) skewX(4deg);
}

.mv7-networth-layer-liability.is-selected {
  margin-block: 13px 7px;
}

.mv7-networth-measure {
  position: absolute;
  top: 44px;
  right: 27px;
  bottom: 43px;
  display: flex;
  width: 108px;
  align-items: center;
  gap: 12px;
}

.mv7-networth-measure > i {
  position: relative;
  width: 1px;
  height: 100%;
  background: linear-gradient(transparent, #61d7ff 15%, #61d7ff 85%, transparent);
  box-shadow: 0 0 16px rgba(97, 215, 255, 0.5);
}

.mv7-networth-measure > i::before,
.mv7-networth-measure > i::after {
  position: absolute;
  left: 0;
  width: 18px;
  height: 1px;
  background: #61d7ff;
  content: '';
}

.mv7-networth-measure > i::before {
  top: 0;
}

.mv7-networth-measure > i::after {
  bottom: 0;
}

.mv7-networth-measure div {
  display: grid;
  gap: 6px;
}

.mv7-networth-measure span {
  color: #61d7ff;
  font-size: var(--v2-text-micro);
  font-weight: 760;
  letter-spacing: 0.17em;
}

.mv7-networth-measure strong {
  color: #f3f7f6;
  font-size: var(--v2-text-sm);
  font-weight: 650;
  white-space: nowrap;
}

.mv7-networth-empty-layer {
  width: 70%;
  margin: 36px auto 20px;
  padding: 22px;
  border: 1px dashed rgba(255, 255, 255, 0.13);
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  text-align: center;
}

.mv7-networth-empty-layer.is-positive {
  color: #5ae0b7;
}

.mv7-networth-footer {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(230px, 0.72fr) minmax(360px, 1.28fr);
  min-height: 154px;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.mv7-networth-ratio,
.mv7-networth-history {
  padding: 23px 30px;
}

.mv7-networth-ratio {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid rgba(255, 255, 255, 0.07);
}

.mv7-networth-ratio > span,
.mv7-networth-history header span {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  font-weight: 750;
  letter-spacing: 0.14em;
}

.mv7-networth-ratio strong {
  margin: 10px 0 7px;
  color: var(--v2-text);
  font-size: 12px;
  font-weight: 570;
}

.mv7-networth-ratio small {
  max-width: 310px;
  color: rgba(255, 255, 255, 0.38);
  font-size: var(--v2-text-micro);
  line-height: 1.55;
}

.mv7-networth-history {
  min-width: 0;
}

.mv7-networth-history header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mv7-networth-history header strong {
  color: #5ae0b7;
  font-size: var(--v2-text-xs);
}

.mv7-networth-history svg {
  display: block;
  width: 100%;
  height: 84px;
  margin-top: 10px;
  overflow: visible;
}

.mv7-networth-history-path {
  fill: none;
  stroke: #5af0c3;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 5px rgba(90, 240, 195, 0.45));
}

.mv7-networth-history-area {
  fill: url(#networth-history-fill);
}

.mv7-asset-dialog footer {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
}

@media (max-width: 980px) {
  .mv7-networth-cross-section {
    padding-right: 128px;
    padding-left: 78px;
  }

  .mv7-networth-footer {
    grid-template-columns: 1fr 1.35fr;
  }
}

@media (max-width: 768px) {
  .mv7-networth-view {
    min-height: 0;
    padding: 21px 14px calc(42px + env(safe-area-inset-bottom));
  }

  .mv7-networth-heading {
    align-items: center;
    margin-bottom: 17px;
  }

  .mv7-networth-heading h2 {
    font-size: 28px;
  }

  .mv7-networth-heading > div > p:last-child {
    max-width: 250px;
    font-size: var(--v2-text-xs);
    line-height: 1.5;
  }

  .mv7-networth-heading .mv7-secondary-button {
    width: 40px;
    min-width: 40px;
    padding: 0;
    font-size: 0;
  }

  .mv7-networth-heading .mv7-secondary-button svg {
    display: none;
  }

  .mv7-networth-heading .mv7-secondary-button::after {
    content: '+';
    font-size: 18px;
  }

  .mv7-networth-section {
    min-height: 0;
    border-radius: 13px;
  }

  .mv7-networth-summary {
    min-height: 0;
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
    padding: 18px 16px 17px;
  }

  .mv7-networth-primary h3 {
    margin-top: 5px;
    font-size: 34px;
  }

  .mv7-networth-totals {
    width: 100%;
    justify-content: space-between;
    gap: 18px;
  }

  .mv7-networth-totals div:last-child {
    text-align: right;
  }

  .mv7-networth-totals dd {
    font-size: 13px;
  }

  .mv7-networth-cross-section {
    min-height: 460px;
    padding: 29px 73px 31px 31px;
  }

  .mv7-networth-depth-label {
    left: 9px;
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-depth-label span {
    display: none;
  }

  .mv7-networth-layer {
    width: min(93%, calc(var(--layer-width) + 5%));
  }

  .mv7-networth-layer.is-selected {
    width: 100%;
  }

  .mv7-networth-layer-surface {
    min-height: 47px;
    gap: 8px;
    padding-block: 9px;
  }

  .mv7-networth-layer.is-selected .mv7-networth-layer-surface {
    min-height: 62px;
  }

  .mv7-networth-layer-copy strong {
    max-width: 135px;
    overflow: hidden;
    font-size: var(--v2-text-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-networth-layer-copy span,
  .mv7-networth-layer-surface > b {
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-layer-detail {
    width: 86%;
    min-height: 42px;
    padding: 6px 9px;
  }

  .mv7-networth-layer-detail small {
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-layer-detail strong,
  .mv7-networth-edit {
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-zero {
    margin-right: -8px;
    margin-left: -18px;
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-zero span {
    display: none;
  }

  .mv7-networth-measure {
    top: 29px;
    right: 7px;
    bottom: 31px;
    width: 59px;
    gap: 7px;
  }

  .mv7-networth-measure > i::before,
  .mv7-networth-measure > i::after {
    width: 9px;
  }

  .mv7-networth-measure strong {
    max-width: 44px;
    font-size: var(--v2-text-micro);
    white-space: normal;
  }

  .mv7-networth-footer {
    grid-template-columns: 1fr;
  }

  .mv7-networth-ratio,
  .mv7-networth-history {
    padding: 18px 15px;
  }

  .mv7-networth-ratio {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  }

  .mv7-networth-history svg {
    height: 76px;
  }

  .mv7-asset-dialog footer {
    grid-template-columns: auto 1fr auto;
  }

  .mv7-asset-dialog footer > span {
    display: none;
  }
}

/* Comunidad: comentarios reales, acciones propias y enlaces directos. */
.mv7-community-post-body > header button[data-community-action='delete-post'] {
  color: var(--v2-muted);
}

.mv7-community-post-body > header button[data-community-action='delete-post']:hover,
.mv7-community-post-body > header button[data-community-action='delete-post']:focus-visible {
  color: #ff6b6b;
  background: rgba(255, 93, 93, 0.09);
}

.mv7-community-post-body > header button[data-community-action='delete-post'] svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.mv7-community-post.is-shared {
  background: linear-gradient(90deg, rgba(45, 222, 152, 0.09), transparent 72%);
  box-shadow: inset 3px 0 var(--v2-green);
}

.mv7-community-comments-dialog {
  width: min(620px, calc(100% - 28px));
  max-height: min(760px, calc(100dvh - 36px));
}

.mv7-community-comments-dialog .mv7-dialog-body {
  display: grid;
  grid-template-rows: auto auto minmax(120px, 1fr) auto;
  gap: 14px;
  max-height: min(720px, calc(100dvh - 72px));
}

.mv7-community-comments-post {
  display: -webkit-box;
  overflow: hidden;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.mv7-community-comments-list {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 120px;
  overflow-y: auto;
}

.mv7-community-comment {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 10px;
  padding: 12px 4px;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-community-comment > .mv7-community-avatar {
  width: 34px;
  height: 34px;
}

.mv7-community-comment header {
  display: flex;
  align-items: center;
  gap: 8px;
}

.mv7-community-comment header strong {
  font-size: var(--v2-text-sm);
}

.mv7-community-comment header small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-community-comment header button {
  display: grid;
  width: 30px;
  height: 30px;
  margin-left: auto;
  place-items: center;
  border-radius: 8px;
  background: transparent;
  color: var(--v2-muted);
  cursor: pointer;
}

.mv7-community-comment header button:hover {
  background: rgba(255, 93, 93, 0.09);
  color: #ff6b6b;
}

.mv7-community-comment header button svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
}

.mv7-community-comment p {
  overflow-wrap: anywhere;
  margin: 5px 0 0;
  color: var(--v2-text);
  font-size: var(--v2-text-sm);
  line-height: 1.5;
  white-space: pre-wrap;
}

.mv7-community-comment-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  padding-top: 12px;
  border-top: 1px solid var(--v2-line);
}

.mv7-community-comment-form textarea {
  min-height: 46px;
  max-height: 130px;
  resize: vertical;
  padding: 11px 12px;
  border: 1px solid var(--v2-line-strong);
  border-radius: 11px;
  outline: none;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-text);
  font: inherit;
  font-size: var(--v2-text-sm);
}

.mv7-community-comment-form textarea:focus {
  border-color: var(--v2-green);
}

/* Los adjuntos de DM se ocultan hasta tener almacenamiento y RLS propios. */
.mv7-dm-composer {
  grid-template-columns: minmax(0, 1fr) 40px !important;
}

@media (max-width: 768px) {
  .mv7-community-comments-dialog {
    width: 100%;
    max-height: 82dvh;
  }

  .mv7-community-comments-dialog .mv7-dialog-body {
    max-height: calc(82dvh - 28px);
  }

  .mv7-community-comment-form {
    grid-template-columns: 1fr;
  }

  .mv7-community-comment-form .mv7-primary-button {
    width: 100%;
  }

  .mv7-dm-composer {
    grid-template-columns: minmax(0, 1fr) 42px !important;
  }
}

/* Cross-view visual audit: responsive geometry and compact empty states. */
.mv7-investments-view{padding:28px 32px 34px}.mv7-investments-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}.mv7-investments-heading h2{margin:5px 0;font-size:34px;letter-spacing:-.045em}.mv7-investments-heading>div>p:last-child{color:var(--v2-muted)}.mv7-investments-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.mv7-investments-summary article{min-width:0;padding:18px;border:1px solid var(--v2-line);border-radius:15px;background:linear-gradient(145deg,rgba(45,222,152,.055),rgba(255,255,255,.014))}.mv7-investments-summary span,.mv7-investments-summary small{display:block;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-investments-summary strong{display:block;margin:9px 0 6px;font-size:23px}.mv7-investments-summary article:nth-child(2) strong,.mv7-investments-summary article:nth-child(3) strong{color:var(--v2-green-bright)}.mv7-investments-summary strong.is-negative,.mv7-investment-row em.is-negative{color:var(--v2-red)!important}.mv7-investments-workspace{overflow:hidden;border:1px solid var(--v2-line);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01))}.mv7-investments-workspace>header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--v2-line)}.mv7-investments-workspace h3{margin:3px 0 0;font-size:16px}.mv7-investments-workspace>header>span{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-investments-empty{display:grid;min-height:360px;place-items:center;align-content:center;gap:9px;padding:32px;text-align:center}.mv7-investments-empty p{max-width:420px;margin:0 0 10px;color:var(--v2-muted);font-size:var(--v2-text-sm);line-height:1.55}.mv7-investments-orbit{position:relative;width:78px;height:78px;margin-bottom:7px;border:1px solid rgba(45,222,152,.25);border-radius:50%;box-shadow:inset 0 0 30px rgba(45,222,152,.06)}.mv7-investments-orbit::before,.mv7-investments-orbit::after{position:absolute;inset:12px;border:1px solid rgba(45,222,152,.2);border-radius:50%;content:''}.mv7-investments-orbit::after{inset:27px;background:var(--v2-green);box-shadow:0 0 20px rgba(45,222,152,.45)}.mv7-investments-orbit i,.mv7-investments-orbit b{position:absolute;width:8px;height:8px;border-radius:50%;background:#7de8ff}.mv7-investments-orbit i{right:5px;top:24px}.mv7-investments-orbit b{bottom:9px;left:12px;background:#b37bff}.mv7-investments-list{padding:8px 14px 14px}.mv7-investment-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 6px;border-bottom:1px solid var(--v2-line)}.mv7-investment-row>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:var(--v2-green-soft);color:var(--v2-green-bright);font-size:var(--v2-text-xs);font-weight:700}.mv7-investment-row div{display:grid;gap:3px}.mv7-investment-row div:nth-of-type(2){text-align:right}.mv7-investment-row small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-investment-row em{min-width:90px;color:var(--v2-green-bright);font-size:var(--v2-text-xs);font-style:normal;text-align:right}

@media(max-width:760px){
  /* Calendario: seven real columns instead of a clipped desktop canvas. */
  .mv7-calendar-runway{overflow:hidden}.mv7-calendar-runway::before,.mv7-calendar-days{min-width:0!important;width:100%}.mv7-calendar-runway::before{content:"LUN   MAR   MIÉ   JUE   VIE   SÁB   DOM";height:34px;font-size:var(--v2-text-micro)}.mv7-calendar-day{min-width:0;height:68px;padding:7px 4px}.mv7-calendar-day>strong{font-size:var(--v2-text-xs)}.mv7-calendar-day.is-today>strong{font-size:13px}.mv7-calendar-day.is-today>strong::after{display:none}.mv7-calendar-day .mv7-calendar-event{min-height:18px;margin-top:4px;padding:2px 3px}.mv7-calendar-day .mv7-calendar-event>div strong{font-size:0}.mv7-calendar-day .mv7-calendar-event>div strong::before{content:"•";font-size:var(--v2-text-sm);color:var(--event-color)}.mv7-calendar-day .mv7-calendar-event>div span{font-size:var(--v2-text-micro)}.mv7-calendar-more{font-size:0}.mv7-calendar-more::after{content:"+";font-size:var(--v2-text-micro)}

  /* Recurrentes: cards and a vertical simulator; no invisible horizontal canvas. */
  .mv7-recurring-kpis{display:grid;grid-template-columns:1fr 1fr;overflow:visible;gap:9px}.mv7-recurring-kpis article{min-width:0;min-height:112px;padding:14px}.mv7-recurring-kpis article>i{width:38px;height:38px}.mv7-recurring-kpis strong{font-size:16px}.mv7-orbit-scroll{overflow:visible}.mv7-orbit-field{min-width:0;width:100%}.mv7-orbit-nodes::before{content:"Servicios recurrentes";padding:12px 4px;font-size:var(--v2-text-xs);word-spacing:normal}.mv7-recurring-node{height:auto;min-height:116px;grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:auto auto auto;gap:7px 9px;padding:12px 4px}.mv7-recurring-node>span:first-child{grid-column:1;grid-row:1/3}.mv7-recurring-node>span:nth-child(2){grid-column:2;grid-row:1}.mv7-recurring-row-status{grid-column:3;grid-row:1}.mv7-recurring-row-due{grid-column:2;grid-row:2}.mv7-recurring-row-account{grid-column:2;grid-row:3}.mv7-recurring-row-change{grid-column:3;grid-row:2}.mv7-recurring-row-action{grid-column:3;grid-row:3}.mv7-recurring-node>span:last-child{grid-column:2/4;grid-row:3}.mv7-orbit-analysis{margin:10px;grid-template-columns:1fr}.mv7-recurring-simulator{min-width:0;display:grid;grid-template-columns:1fr;gap:13px;padding:16px}.mv7-recurring-simulator-action,.mv7-recurring-saving,.mv7-recurring-projection{width:100%;min-width:0}.mv7-recurring-projection{padding-top:12px;border-top:1px solid var(--v2-line)}

  /* Empty content should explain, not create an artificial full-screen void. */
  .mv7-tx-ledger:has(.mv7-tx-empty){min-height:260px}.mv7-tx-list:has(.mv7-tx-empty){min-height:185px}.mv7-tx-ledger-footer{min-height:44px}.mv7-account-stage:has(.mv7-account-deck:empty),.mv7-account-stage:has(.mv7-account-empty){min-height:250px}.mv7-future-stage:has(.mv7-goal-empty){min-height:300px}.mv7-budget-lanes:has(.mv7-budget-empty){min-height:260px}.mv7-networth-cross-section{min-height:360px}.mv7-networth-depth-label{font-size:var(--v2-text-xs)}.mv7-networth-measure{right:8px}.mv7-networth-ratio{max-width:calc(100% - 16px)}

  .mv7-community-toolbar{position:absolute;right:12px;top:7px;padding:0}.mv7-community-tabs{padding-right:48px;scrollbar-width:none}.mv7-community-tabs button{min-width:max-content;padding:0 14px;white-space:nowrap}.mv7-community-tabs button.is-active::after{right:14px;left:14px}.mv7-community-composer{grid-template-columns:34px minmax(0,1fr);gap:10px;padding-top:15px}.mv7-community-composer .mv7-community-avatar{width:34px;height:34px}.mv7-community-compose-footer{align-items:center;gap:8px}.mv7-community-compose-actions{flex-wrap:wrap;justify-content:flex-end}.mv7-community-rail-module{min-height:0}

  .mv7-investments-view{padding:18px 14px 28px}.mv7-investments-heading h2{font-size:28px}.mv7-investments-summary{grid-template-columns:1fr 1fr}.mv7-investments-summary article:first-child{grid-column:1/-1}.mv7-investments-summary article{padding:15px}.mv7-investments-summary strong{font-size:19px}.mv7-investments-empty{min-height:290px;padding:25px 18px}.mv7-investment-row{grid-template-columns:34px minmax(0,1fr) auto}.mv7-investment-row div:nth-of-type(2){grid-column:2;text-align:left}.mv7-investment-row em{grid-column:3;grid-row:1/3;min-width:0}
}

@media(max-width:390px){.mv7-recurring-kpis{grid-template-columns:1fr}.mv7-investments-summary{grid-template-columns:1fr}.mv7-investments-summary article:first-child{grid-column:auto}.mv7-calendar-day{height:62px}.mv7-calendar-day .mv7-calendar-event>div span{display:none}}

.mv7-symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.mv7-ambient {
  position: fixed;
  z-index: 0;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 5%,
    rgba(45, 222, 152, 0.62) 22%,
    rgba(45, 222, 152, 0.28) 78%,
    transparent 95%
  );
  box-shadow:
    0 0 32px rgba(45, 222, 152, 0.18),
    0 7px 28px rgba(45, 222, 152, 0.06);
  pointer-events: none;
}

.mv7-app {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: var(--v2-sidebar-width) minmax(0, 1fr);
  width: 100%;
  min-height: 100vh;
  margin: 0;
  /* `clip` conserva el recorte del shell sin crear un falso contenedor de
     scroll que impediria adherir navegaciones e inspectores internos. */
  overflow: clip;
  border: 0;
  border-radius: 0;
  isolation: isolate;
  background: rgba(6, 8, 7, 0.4);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.045),
    0 40px 100px rgba(0, 0, 0, 0.58),
    0 0 60px rgba(45, 222, 152, 0.025);
  backdrop-filter: blur(38px) saturate(160%);
  -webkit-backdrop-filter: blur(38px) saturate(160%);
}

.mv7-sidebar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  min-width: 0;
  height: 100vh;
  align-self: start;
  flex-direction: column;
  padding: 26px 20px 18px;
  border-right: 1px solid var(--v2-glass-edge);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 22rem), var(--v2-glass-fill);
  box-shadow:
    inset -1px 0 rgba(255, 255, 255, 0.05),
    18px 0 50px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(34px) saturate(160%);
  -webkit-backdrop-filter: blur(34px) saturate(160%);
}

.mv7-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 27px;
}

.mv7-brand {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 11px;
}

.mv7-brand-mark {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border: 1px solid var(--v2-line-strong);
  border-radius: 10px;
  background: linear-gradient(145deg, #121513, #070908);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08);
  color: white;
  font-family: var(--v2-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.06em;
}

.mv7-brand-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  line-height: 1.25;
}

.mv7-brand-copy strong {
  overflow: hidden;
  font-size: 13px;
  font-weight: 550;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-brand-copy small {
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

.mv7-search {
  display: flex;
  height: 37px;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  margin-bottom: 22px;
  border: 1px solid var(--v2-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.025);
  transition:
    border-color 160ms ease,
    background 160ms ease,
    box-shadow 160ms ease;
}

.mv7-search:focus-within {
  border-color: rgba(45, 222, 152, 0.4);
  background: rgba(45, 222, 152, 0.035);
  box-shadow: 0 0 0 3px rgba(45, 222, 152, 0.055);
}

.mv7-search svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--v2-muted);
  stroke-width: 1.7;
}

.mv7-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--v2-text);
  font-size: 12px;
}

.mv7-search input::placeholder {
  color: var(--v2-dim);
}

.mv7-search kbd {
  padding: 2px 4px;
  border: 1px solid var(--v2-line);
  border-radius: 4px;
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 400;
}

.mv7-nav {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 21px;
  overflow-y: auto;
  scrollbar-width: none;
}

.mv7-nav::-webkit-scrollbar {
  display: none;
}

.mv7-nav section {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.mv7-nav section[hidden] {
  display: none;
}

.mv7-nav h2 {
  margin: 0 0 7px 10px;
  color: #c8cdca;
  font-size: var(--v2-text-sm);
  font-weight: 500;
  letter-spacing: 0.01em;
}

.mv7-nav-item[hidden] {
  display: none;
}

.mv7-nav-item {
  position: relative;
  display: grid;
  min-height: 36px;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--v2-muted);
  font-size: 12px;
  transition:
    color 140ms ease,
    background 140ms ease,
    border-color 140ms ease;
}

.mv7-nav-item:hover {
  color: #dfe4e1;
  background: rgba(255, 255, 255, 0.025);
}

.mv7-nav-item.is-active {
  border-color: var(--v2-line);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.025));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
  color: var(--v2-text);
}

.mv7-nav-item.is-active::before {
  position: absolute;
  width: 2px;
  height: 15px;
  border-radius: 2px;
  background: var(--v2-glass-shine);
  box-shadow: 0 0 9px rgba(255, 255, 255, 0.45);
  content: '';
  left: -1px;
}

.mv7-nav-item svg,
.mv7-sidebar-footer svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

@keyframes mv7NavIconLift {
  0%, 100% { transform: translateY(0) scale(1); }
  45% { transform: translateY(-2px) scale(1.05); }
}

@keyframes mv7NavIconSwap {
  0%, 100% { opacity: 1; transform: translateX(0); }
  32% { opacity: 1; transform: translateX(3px); }
  44% { opacity: 0; transform: translateX(4px); }
  45% { opacity: 0; transform: translateX(-3px); }
  58% { opacity: 1; transform: translateX(-2px); }
  80% { transform: translateX(0); }
}

@keyframes mv7NavIconWallet {
  0%, 100% { transform: rotate(0) scaleX(1); }
  32% { transform: rotate(-1.5deg) scaleX(1.03); }
  62% { transform: rotate(1deg) scaleX(.99); }
}

@keyframes mv7NavIconChart {
  0%, 100% { opacity: 1; transform: scaleY(1); }
  28% { opacity: .45; transform: scaleY(.35); }
  68% { opacity: 1; transform: scaleY(1.12); }
}

@keyframes mv7NavIconTarget {
  0%, 100% { transform: scale(1); }
  28% { transform: scale(.86); }
  62% { transform: scale(1.14); }
  82% { transform: scale(.98); }
}

@keyframes mv7NavIconCalendar {
  0%, 100% { transform: perspective(30px) rotateX(0); }
  38% { transform: perspective(30px) rotateX(-22deg) translateY(-1px); }
  72% { transform: perspective(30px) rotateX(5deg); }
}

@keyframes mv7NavIconSpin {
  from { transform: rotate(0); }
  to { transform: rotate(360deg); }
}

@keyframes mv7NavIconFlame {
  0%, 100% { transform: rotate(0) scale(1); }
  30% { transform: rotate(-4deg) scale(.96,1.1); }
  62% { transform: rotate(4deg) scale(1.06,.98); }
}

@keyframes mv7NavIconLayers {
  0%, 100% { transform: translate(0,0); }
  35% { transform: translate(-2px,1px); }
  68% { transform: translate(2px,-1px); }
}

@keyframes mv7NavIconTrend {
  0%, 100% { transform: translate(0,0); }
  42% { transform: translate(2px,-3px); }
  72% { transform: translate(-1px,1px); }
}

@keyframes mv7NavIconPeople {
  0%, 100% { transform: scale(1) translateX(0); }
  38% { transform: scale(1.08) translateX(-1px); }
  68% { transform: scale(1.03) translateX(1px); }
}

@keyframes mv7NavIconShield {
  0%, 100% { transform: scale(1); }
  48% { transform: scale(1.12); }
}

@keyframes mv7NavIconBlink {
  0%, 28%, 62%, 100% { transform: scaleY(1); }
  41%, 48% { transform: scaleY(.12); }
  78% { transform: scaleY(.86); }
}

@keyframes mv7NavIconBell {
  0%, 100% { transform: rotate(0); }
  18% { transform: rotate(-11deg); }
  42% { transform: rotate(10deg); }
  64% { transform: rotate(-6deg); }
  82% { transform: rotate(3deg); }
}

@keyframes mv7NavIconQuestion {
  0%, 100% { transform: rotate(0) translateY(0); }
  40% { transform: rotate(-8deg) translateY(-2px); }
  72% { transform: rotate(5deg) translateY(0); }
}

@keyframes mv7NavIconTrash {
  0%, 100% { transform: rotate(0) translateX(0); }
  28% { transform: rotate(-5deg) translateX(-1px); }
  52% { transform: rotate(5deg) translateX(1px); }
  76% { transform: rotate(-2deg) translateX(0); }
}

@keyframes mv7NavIconSwapReverse {
  0%, 100% { opacity: 1; transform: translateX(0); }
  32% { opacity: 1; transform: translateX(-3px); }
  44% { opacity: 0; transform: translateX(-4px); }
  45% { opacity: 0; transform: translateX(3px); }
  58% { opacity: 1; transform: translateX(2px); }
  80% { transform: translateX(0); }
}

@keyframes mv7NavIconPocket {
  0%, 100% { transform: translateX(0); }
  30% { transform: translateX(1px); }
  52% { transform: translateX(4px); }
  78% { transform: translateX(-1px); }
}

@keyframes mv7NavIconRepeatForward {
  0%, 100% { transform: translateX(0); }
  45% { transform: translateX(2.5px); }
}

@keyframes mv7NavIconRepeatBackward {
  0%, 100% { transform: translateX(0); }
  45% { transform: translateX(-2.5px); }
}

@keyframes mv7NavIconEyeLook {
  0%, 100% { transform: translateX(0); }
  22% { transform: translateX(-2px); }
  48% { transform: translateX(0); }
  72% { transform: translateX(2px); }
}

@keyframes mv7NavIconBellClapper {
  0%, 100% { transform: rotate(0); }
  25% { transform: rotate(11deg); }
  50% { transform: rotate(-10deg); }
  72% { transform: rotate(5deg); }
}

@keyframes mv7NavIconTrashLid {
  0%, 100% { transform: translateY(0) rotate(0); }
  38% { transform: translateY(-2px) rotate(-7deg); }
  70% { transform: translateY(-1px) rotate(3deg); }
}

@keyframes mv7NavIconHomeRoof {
  0%, 100% { transform: translateY(0); }
  32% { transform: translateY(-2.5px); }
  66% { transform: translateY(.5px); }
}

@keyframes mv7NavIconHomeDoor {
  0%, 100% { opacity: 1; transform: scaleY(1); }
  38% { opacity: .55; transform: scaleY(.72); }
  70% { opacity: 1; transform: scaleY(1.06); }
}

@keyframes mv7NavIconBaseline {
  0%, 100% { opacity: 1; transform: scaleX(1); }
  28% { opacity: .35; transform: scaleX(.35); }
  70% { opacity: 1; transform: scaleX(1.08); }
}

@keyframes mv7NavIconTargetCenter {
  0%, 100% { opacity: 1; transform: scale(1); }
  42% { opacity: .45; transform: scale(1.9); }
  72% { opacity: 1; transform: scale(.82); }
}

@keyframes mv7NavIconCalendarBinding {
  0%, 100% { transform: translateY(0); }
  34% { transform: translateY(-2px); }
  66% { transform: translateY(1px); }
}

@keyframes mv7NavIconCalendarDivider {
  0%, 100% { opacity: 1; transform: scaleX(1); }
  32% { opacity: .4; transform: scaleX(.25); }
  72% { opacity: 1; transform: scaleX(1.06); }
}

@keyframes mv7NavIconRepeatHeadForward {
  0%, 100% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(3px) rotate(8deg); }
  72% { transform: translateX(-.5px) rotate(-2deg); }
}

@keyframes mv7NavIconRepeatHeadBackward {
  0%, 100% { transform: translateX(0) rotate(0); }
  40% { transform: translateX(-3px) rotate(-8deg); }
  72% { transform: translateX(.5px) rotate(2deg); }
}

@keyframes mv7NavIconLayerTop {
  0%, 100% { transform: translate(0,0); }
  36% { transform: translate(0,-2.5px); }
  72% { transform: translate(0,.5px); }
}

@keyframes mv7NavIconLayerMiddle {
  0%, 100% { transform: translate(0,0); }
  40% { transform: translate(-1.5px,0); }
  72% { transform: translate(.5px,0); }
}

@keyframes mv7NavIconLayerBottom {
  0%, 100% { transform: translate(0,0); }
  44% { transform: translate(0,2px); }
  76% { transform: translate(0,-.5px); }
}

@keyframes mv7NavIconTrendHead {
  0%, 100% { opacity: 1; transform: translate(0,0) scale(1); }
  38% { opacity: .5; transform: translate(3px,-3px) scale(1.12); }
  70% { opacity: 1; transform: translate(-.5px,.5px) scale(.98); }
}

@keyframes mv7NavIconPersonHead {
  0%, 100% { transform: translateY(0) scale(1); }
  38% { transform: translateY(-2px) scale(1.06); }
  72% { transform: translateY(.5px) scale(.99); }
}

@keyframes mv7NavIconPersonSecondary {
  0%, 100% { opacity: 1; transform: translateX(0); }
  32% { opacity: .35; transform: translateX(3px); }
  68% { opacity: 1; transform: translateX(-.5px); }
}

@keyframes mv7NavIconShieldTrace {
  0%, 100% { opacity: 1; transform: scale(1); }
  35% { opacity: .55; transform: scale(.9); }
  68% { opacity: 1; transform: scale(1.12); }
}

@keyframes mv7NavIconGearHub {
  0%, 100% { opacity: 1; transform: scale(1); }
  25% { opacity: .55; transform: scale(.72); }
  58% { opacity: 1; transform: scale(1.18); }
  78% { transform: scale(.96); }
}

@keyframes mv7NavIconHelpDot {
  0%, 100% { opacity: 1; transform: translateY(0) scale(1); }
  38% { opacity: .35; transform: translateY(-2px) scale(1.6); }
  72% { opacity: 1; transform: translateY(.5px) scale(.9); }
}

@keyframes mv7NavIconTrashBin {
  0%, 100% { transform: scaleY(1) translateX(0); }
  34% { transform: scaleY(.94) translateX(-.5px); }
  62% { transform: scaleY(1.03) translateX(.5px); }
}

@keyframes mv7NavIconConfirm {
  0%, 100% { opacity: 1; transform: scale(1); }
  32% { opacity: .72; transform: scale(.84); }
  66% { opacity: 1; transform: scale(1.12); }
  84% { transform: scale(.97); }
}

@keyframes mv7NavIconFocus {
  0%, 100% { transform: translateY(0) scale(1); }
  45% { transform: translateY(-1.5px) scale(1.06); }
}

.mv7-nav-item.is-motion-confirmed > svg,
.mv7-settings-nav-item.is-motion-confirmed > svg,
.mv7-sidebar-footer > a.is-motion-confirmed svg {
  transform-box: fill-box;
  transform-origin: center;
  animation: mv7NavIconConfirm var(--v2-motion-fast) var(--v2-motion-ease-out) 1;
  color: var(--v2-green-bright);
}

.mv7-nav-item.is-motion-focused:not(.is-active) > svg,
.mv7-settings-nav-item.is-motion-focused:not(.is-active) > svg,
.mv7-sidebar-footer > a.is-motion-focused:not(.is-active) svg {
  transform-box: fill-box;
  transform-origin: center;
  animation: mv7NavIconFocus var(--v2-motion-fast) var(--v2-motion-ease-out) 1;
  color: var(--v2-green-bright);
}

@media (hover: hover) and (pointer: fine) {
  .mv7-nav-item:not(.is-active):hover > svg,
  .mv7-settings-nav-item:not(.is-active):hover > svg,
  .mv7-sidebar-footer > a:not(.is-active):hover svg {
    color: var(--v2-green-bright);
  }

  .mv7-nav-item:not(.is-active):hover > svg > *,
  .mv7-settings-nav-item:not(.is-active):hover > svg > *,
  .mv7-sidebar-footer > a:not(.is-active):hover svg > * {
    transform-box: fill-box;
    transform-origin: center;
    animation-iteration-count: 1;
    will-change: transform;
  }

  .mv7-nav-item[data-v2-view='overview']:not(.is-active):hover [data-icon-part='roof'] {
    animation: mv7NavIconHomeRoof 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='overview']:not(.is-active):hover [data-icon-part='house'] {
    animation: mv7NavIconLift 620ms cubic-bezier(.2,.75,.25,1) 1 35ms;
  }
  .mv7-nav-item[data-v2-view='overview']:not(.is-active):hover [data-icon-part='door'] {
    transform-origin: center bottom;
    animation: mv7NavIconHomeDoor 540ms cubic-bezier(.2,.75,.25,1) 1 80ms;
  }
  .mv7-nav-item[data-v2-view='transactions']:not(.is-active):hover [data-icon-part='outgoing'] {
    animation: mv7NavIconSwap 580ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='transactions']:not(.is-active):hover [data-icon-part='incoming'] {
    animation: mv7NavIconSwapReverse 580ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='accounts'],.mv7-settings-nav-item[data-settings-tab='backup']):not(.is-active):hover [data-icon-part='body'] {
    animation: mv7NavIconWallet 580ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='accounts'],.mv7-settings-nav-item[data-settings-tab='backup']):not(.is-active):hover [data-icon-part='pocket'] {
    animation: mv7NavIconPocket 580ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='budgets']:not(.is-active):hover [data-icon-part^='bar'] {
    transform-origin: center bottom;
    animation: mv7NavIconChart 560ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='budgets']:not(.is-active):hover [data-icon-part='bar-2'] { animation-delay: 45ms; }
  .mv7-nav-item[data-v2-view='budgets']:not(.is-active):hover [data-icon-part='bar-3'] { animation-delay: 90ms; }
  .mv7-nav-item[data-v2-view='budgets']:not(.is-active):hover [data-icon-part='baseline'] {
    transform-origin: left center;
    animation: mv7NavIconBaseline 620ms cubic-bezier(.2,.75,.25,1) 1 90ms;
  }
  .mv7-nav-item[data-v2-view='savings']:not(.is-active):hover [data-icon-part$='ring'] {
    animation: mv7NavIconTarget 560ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='savings']:not(.is-active):hover [data-icon-part='inner-ring'] { animation-delay: 55ms; }
  .mv7-nav-item[data-v2-view='savings']:not(.is-active):hover [data-icon-part='center'] {
    animation: mv7NavIconTargetCenter 520ms cubic-bezier(.2,.75,.25,1) 1 90ms;
  }
  .mv7-nav-item[data-v2-view='calendar']:not(.is-active):hover [data-icon-part='page'] {
    animation: mv7NavIconCalendar 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='calendar']:not(.is-active):hover [data-icon-part^='binding'] {
    animation: mv7NavIconCalendarBinding 560ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='calendar']:not(.is-active):hover [data-icon-part='binding-right'] { animation-delay: 55ms; }
  .mv7-nav-item[data-v2-view='calendar']:not(.is-active):hover [data-icon-part='divider'] {
    transform-origin: left center;
    animation: mv7NavIconCalendarDivider 620ms cubic-bezier(.2,.75,.25,1) 1 70ms;
  }
  :is(.mv7-nav-item[data-v2-view='recurring'],.mv7-settings-nav-item[data-settings-tab='sync']):not(.is-active):hover [data-icon-part='upper-line'] {
    animation: mv7NavIconRepeatForward 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='recurring'],.mv7-settings-nav-item[data-settings-tab='sync']):not(.is-active):hover [data-icon-part='upper-head'] {
    animation: mv7NavIconRepeatHeadForward 620ms cubic-bezier(.2,.75,.25,1) 1 35ms;
  }
  :is(.mv7-nav-item[data-v2-view='recurring'],.mv7-settings-nav-item[data-settings-tab='sync']):not(.is-active):hover [data-icon-part='lower-line'] {
    animation: mv7NavIconRepeatBackward 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='recurring'],.mv7-settings-nav-item[data-settings-tab='sync']):not(.is-active):hover [data-icon-part='lower-head'] {
    animation: mv7NavIconRepeatHeadBackward 620ms cubic-bezier(.2,.75,.25,1) 1 35ms;
  }
  .mv7-nav-item[data-v2-view='streak']:not(.is-active):hover [data-icon-part='flame'] {
    transform-origin: center bottom;
    animation: mv7NavIconFlame 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='networth'],.mv7-settings-nav-item[data-settings-tab='categories']):not(.is-active):hover [data-icon-part='top'] {
    animation: mv7NavIconLayerTop 640ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='networth'],.mv7-settings-nav-item[data-settings-tab='categories']):not(.is-active):hover [data-icon-part='middle'] {
    animation: mv7NavIconLayerMiddle 640ms cubic-bezier(.2,.75,.25,1) 1 45ms;
  }
  :is(.mv7-nav-item[data-v2-view='networth'],.mv7-settings-nav-item[data-settings-tab='categories']):not(.is-active):hover [data-icon-part='bottom'] {
    animation: mv7NavIconLayerBottom 640ms cubic-bezier(.2,.75,.25,1) 1 90ms;
  }
  .mv7-nav-item[data-v2-view='investments']:not(.is-active):hover [data-icon-part='trend-line'] {
    animation: mv7NavIconTrend 600ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-nav-item[data-v2-view='investments']:not(.is-active):hover [data-icon-part='trend-head'] {
    animation: mv7NavIconTrendHead 600ms cubic-bezier(.2,.75,.25,1) 1 45ms;
  }
  :is(.mv7-nav-item[data-v2-view='community'],.mv7-settings-nav-item[data-settings-tab='profile']):not(.is-active):hover [data-icon-part='person-body'] {
    animation: mv7NavIconPeople 580ms cubic-bezier(.2,.75,.25,1) 1;
  }
  :is(.mv7-nav-item[data-v2-view='community'],.mv7-settings-nav-item[data-settings-tab='profile']):not(.is-active):hover [data-icon-part='person-head'] {
    animation: mv7NavIconPersonHead 580ms cubic-bezier(.2,.75,.25,1) 1 35ms;
  }
  :is(.mv7-nav-item[data-v2-view='community'],.mv7-settings-nav-item[data-settings-tab='profile']):not(.is-active):hover [data-icon-part='person-secondary'] {
    animation: mv7NavIconPersonSecondary 580ms cubic-bezier(.2,.75,.25,1) 1 70ms;
  }
  :is(.mv7-nav-item[data-v2-view='owner'],.mv7-settings-nav-item[data-settings-tab='privacy'],.mv7-settings-nav-item[data-settings-tab='security']):not(.is-active):hover [data-icon-part='shield'] {
    animation: mv7NavIconShieldTrace 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='appearance']:not(.is-active):hover [data-icon-part='lid'] {
    animation: mv7NavIconBlink 560ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='appearance']:not(.is-active):hover [data-icon-part='pupil'] {
    animation: mv7NavIconEyeLook 560ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='notifications']:not(.is-active):hover [data-icon-part='bell'] {
    transform-origin: center top;
    animation: mv7NavIconBell 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='notifications']:not(.is-active):hover [data-icon-part='clapper'] {
    transform-origin: center top;
    animation: mv7NavIconBellClapper 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='faq']:not(.is-active):hover [data-icon-part='question'] {
    animation: mv7NavIconQuestion 600ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='faq']:not(.is-active):hover [data-icon-part='dot'] {
    animation: mv7NavIconHelpDot 520ms cubic-bezier(.2,.75,.25,1) 1 70ms;
  }
  .mv7-settings-nav-item[data-settings-tab='danger']:not(.is-active):hover [data-icon-part='lid'] {
    transform-origin: center bottom;
    animation: mv7NavIconTrashLid 620ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-settings-nav-item[data-settings-tab='danger']:not(.is-active):hover [data-icon-part='bin'] {
    transform-origin: center bottom;
    animation: mv7NavIconTrashBin 620ms cubic-bezier(.2,.75,.25,1) 1 35ms;
  }
  .mv7-settings-nav-item[data-settings-tab='danger']:not(.is-active):hover [data-icon-part='slats'] {
    animation: mv7NavIconTrash 620ms cubic-bezier(.2,.75,.25,1) 1 60ms;
  }
  .mv7-sidebar-footer > a:not(.is-active):hover [data-icon-part='gear'] {
    animation: mv7NavIconSpin 720ms cubic-bezier(.2,.75,.25,1) 1;
  }
  .mv7-sidebar-footer > a:not(.is-active):hover [data-icon-part='hub'] {
    animation: mv7NavIconGearHub 720ms cubic-bezier(.2,.75,.25,1) 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv7-nav-item:hover > svg,
  .mv7-nav-item:hover > svg > *,
  .mv7-settings-nav-item:hover > svg,
  .mv7-settings-nav-item:hover > svg > *,
  .mv7-sidebar-footer > a:hover svg,
  .mv7-sidebar-footer > a:hover svg > * {
    animation: none !important;
    transform: none !important;
  }
}

.mv7-nav-item output {
  min-width: 22px;
  padding: 2px 5px;
  border-radius: 5px;
  background: var(--v2-green-soft);
  color: var(--v2-green-bright);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  text-align: center;
}

.mv7-sidebar-footer {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 10px;
  padding: 16px 4px 0;
  margin-top: 24px;
  border-top: 1px solid var(--v2-line);
}

.mv7-sidebar-footer > div:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

.mv7-sidebar-footer strong {
  font-size: var(--v2-text-sm);
  font-weight: 500;
}

.mv7-sidebar-footer small {
  overflow: hidden;
  color: var(--v2-dim);
  font-size: var(--v2-text-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-sidebar-footer > a {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 7px;
  color: var(--v2-muted);
}

.mv7-sidebar-footer > a:hover {
  background: var(--v2-surface-hover);
  color: var(--v2-text);
}

.mv7-progress-ring {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(var(--v2-green) 72%, rgba(255, 255, 255, 0.07) 0);
}

.mv7-progress-ring::before {
  position: absolute;
  width: 32px;
  height: 32px;
  border-radius: inherit;
  background: var(--v2-sidebar);
  content: '';
}

.mv7-progress-ring span {
  position: relative;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
}

.mv7-workspace {
  position: relative;
  min-width: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 20rem), var(--v2-glass-fill);
  backdrop-filter: blur(26px) saturate(150%);
  -webkit-backdrop-filter: blur(26px) saturate(150%);
}

.mv7-topbar {
  position: relative;
  z-index: 10;
  display: flex;
  min-height: var(--v2-topbar-height);
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid var(--v2-glass-edge);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent), var(--v2-glass-fill);
  box-shadow: inset 0 -1px rgba(0, 0, 0, 0.12), inset 0 1px rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
}

.mv7-page-identity,
.mv7-title-line,
.mv7-topbar-actions,
.mv7-heading-tools,
.mv7-panel-header,
.mv7-panel-header > div,
.mv7-legend,
.mv7-text-link {
  display: flex;
  align-items: center;
}

.mv7-page-identity {
  min-width: 0;
  gap: 12px;
}

.mv7-page-icon {
  display: grid;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  place-items: center;
  border: 1px solid var(--v2-line-strong);
  border-radius: 11px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.018));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.07);
}

.mv7-page-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: var(--v2-text);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.mv7-title-line {
  gap: 8px;
}

.mv7-page-identity h1 {
  margin: 0;
  font-size: 17px;
  font-weight: 550;
  letter-spacing: -0.02em;
}

.mv7-page-identity p {
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--v2-muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border: 1px solid rgba(45, 222, 152, 0.13);
  border-radius: 5px;
  background: var(--v2-green-soft);
  color: var(--v2-green-bright);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
}

.mv7-live-pill i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 7px currentColor;
}

.mv7-topbar-actions {
  gap: 8px;
}

.mv7-icon-button,
.mv7-avatar {
  position: relative;
  display: grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--v2-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-muted);
  cursor: pointer;
  transition:
    background 140ms ease,
    color 140ms ease,
    border-color 140ms ease,
    transform 140ms ease;
}

.mv7-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mv7-icon-button:hover,
.mv7-avatar:hover {
  border-color: var(--v2-line-strong);
  background: rgba(255, 255, 255, 0.055);
  color: var(--v2-text);
}

.mv7-icon-button:active,
.mv7-avatar:active,
.mv7-primary-button:active,
.mv7-secondary-button:active {
  transform: scale(0.96);
}

.mv7-icon-button svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.mv7-quick-action-label {
  display: none;
}

.mv7-icon-button[aria-pressed='true'] {
  border-color: rgba(45, 222, 152, 0.25);
  background: var(--v2-green-soft);
  color: var(--v2-green);
}

.mv7-notification-dot {
  position: absolute;
  width: 5px;
  height: 5px;
  border: 1px solid var(--v2-surface);
  border-radius: 50%;
  background: var(--v2-green);
  right: 7px;
  top: 7px;
}

.mv7-avatar {
  margin-left: 3px;
  border-radius: 50%;
  background: linear-gradient(145deg, #d7ddd9, #747b77);
  color: #09100c;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-sm);
  font-weight: 600;
}

.mv7-menu-button,
.mv7-sidebar-close,
.mv7-sidebar-scrim {
  display: none;
}

.mv7-content {
  width: min(100%, 1210px);
  padding: 26px 24px 42px;
  margin: 0 auto;
}

.mv7-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.mv7-eyebrow {
  margin: 0 0 6px;
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  letter-spacing: 0.11em;
}

#overview-view .mv7-eyebrow {
  color: var(--v2-green);
  font-family: var(--v2-font);
  font-size: var(--v2-text-sm);
  font-weight: 600;
  letter-spacing: 0.02em;
  opacity: 0.75;
  text-transform: uppercase;
}

.mv7-section-heading h2,
.mv7-secondary-copy h2 {
  margin: 0;
  font-size: clamp(28px, 2.4vw, 40px);
  font-weight: 600;
  letter-spacing: -0.02em;
}

.mv7-heading-tools {
  gap: 10px;
}

.mv7-heading-icon-tools {
  display: contents;
}

.mv7-preview-badge {
  padding: 6px 11px;
  border: 0;
  border-radius: 999px;
  background: rgba(169, 120, 255, 0.14);
  color: #d3b8ff;
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 600;
  letter-spacing: 0.01em;
}

.mv7-period-control {
  position: relative;
  display: flex;
  height: 34px;
  align-items: center;
  gap: 2px;
  padding: 3px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
}

.mv7-period-thumb {
  position: absolute;
  z-index: 1;
  width: calc((100% - 6px) / 3);
  height: calc(100% - 6px);
  border-radius: 999px;
  background: #f4f7f5;
  box-shadow:
    0 1px 1px rgba(0, 0, 0, 0.18),
    0 3px 8px rgba(0, 0, 0, 0.28);
  transform: translateX(calc(var(--seg-index, 1) * 100%));
  transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1);
}

.mv7-period-option {
  position: relative;
  z-index: 2;
  min-width: 40px;
  height: 100%;
  padding: 0 12px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--v2-muted);
  cursor: pointer;
  font-size: 12px;
  font-weight: 590;
  transition: color 220ms ease;
}

.mv7-period-option.is-active {
  color: #0b0d0c;
}

.mv7-primary-button,
.mv7-secondary-button {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 16px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 600;
  transition:
    transform 140ms ease,
    background 140ms ease,
    box-shadow 140ms ease;
}

.mv7-primary-button {
  border: 1px solid var(--v2-glass-edge);
  background: var(--v2-glass-fill-strong);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.28),
    0 1px 1px rgba(0, 0, 0, 0.18),
    0 8px 22px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  color: var(--v2-text);
}

.mv7-primary-button:hover {
  background: rgba(255, 255, 255, 0.17);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.32),
    0 1px 1px rgba(0, 0, 0, 0.18),
    0 10px 26px rgba(0, 0, 0, 0.32);
  transform: translateY(-1px);
}

.mv7-primary-button:active {
  transform: translateY(0) scale(0.97);
}

.mv7-primary-button svg,
.mv7-secondary-button svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 2;
}

.mv7-secondary-button {
  border: 1px solid var(--v2-line);
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-muted);
}

.mv7-secondary-button:hover {
  background: rgba(255, 255, 255, 0.055);
  color: var(--v2-text);
}

.mv7-metric-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.mv7-metric,
.mv7-panel {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--v2-glass-edge);
  border-radius: 22px;
  background:
    linear-gradient(165deg, rgba(255, 255, 255, 0.07), transparent 60%), var(--v2-glass-fill-strong);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.1),
    0 1px 1px rgba(0, 0, 0, 0.2),
    0 20px 48px -26px rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(34px) saturate(160%);
  -webkit-backdrop-filter: blur(34px) saturate(160%);
}

.mv7-metric {
  min-height: 174px;
  padding: 20px 20px 16px;
}

.mv7-metric-primary {
  background: rgba(23, 30, 25, 0.66);
}

.mv7-metric-expense {
  background: rgba(24, 22, 19, 0.66);
}

.mv7-metric::after {
  display: none;
}

/* Material de Inicio — capas de vidrio estilo iOS/macOS (propuesta de
   material-preview.html), aplicado acá a las tarjetas de Inicio en vez
   de al .mv7-panel compartido para no afectar otras vistas. La receta
   original usaba morado; se adapta a la paleta verde/ámbar que ya usan
   estas tarjetas. */
#overview-view .mv7-panel,
#overview-view .mv7-metric {
  isolation: isolate;
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.09),
    inset 0 0 0 1px rgba(0, 0, 0, 0.16),
    0 1px 2px rgba(0, 0, 0, 0.3),
    0 20px 48px -26px rgba(0, 0, 0, 0.7),
    0 32px 64px -30px rgba(0, 0, 0, 0.55);
}

#overview-view .mv7-panel::before,
#overview-view .mv7-metric::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: radial-gradient(130% 90% at 18% -20%, rgba(255, 255, 255, 0.09), transparent 55%);
  pointer-events: none;
}

#overview-view .mv7-metric-primary {
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.07), rgba(20, 24, 21, 0.72));
}

#overview-view .mv7-metric-income {
  background: linear-gradient(165deg, rgba(45, 222, 152, 0.1), rgba(20, 26, 22, 0.72));
}

#overview-view .mv7-metric-expense {
  background: linear-gradient(165deg, rgba(255, 159, 67, 0.09), rgba(24, 22, 19, 0.72));
}

.mv7-metric-head {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
}

.mv7-metric-icon {
  display: grid;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  place-items: center;
  border-radius: 9px;
  background: var(--icon-bg, rgba(45, 222, 152, 0.14));
  color: var(--icon-color, var(--v2-green));
}

.mv7-metric-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.mv7-metric-primary .mv7-metric-icon {
  --icon-bg: rgba(255, 255, 255, 0.1);
  --icon-color: var(--v2-text);
}

.mv7-metric-income .mv7-metric-icon {
  --icon-bg: rgba(45, 222, 152, 0.14);
  --icon-color: var(--v2-green);
}

.mv7-metric-expense .mv7-metric-icon {
  --icon-bg: rgba(255, 159, 67, 0.16);
  --icon-color: var(--v2-amber);
  transform: scaleY(-1);
}

.mv7-metric h3,
.mv7-panel h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 590;
  letter-spacing: -0.01em;
}

.mv7-metric-head h3 {
  flex: 1;
  min-width: 0;
}

.mv7-metric-tag {
  color: var(--v2-dim);
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  white-space: nowrap;
}

.mv7-metric > p {
  position: relative;
  z-index: 2;
  margin: 12px 0 20px;
  color: var(--v2-muted);
  font-size: 12px;
  line-height: 1.4;
}

.mv7-metric > strong {
  position: relative;
  z-index: 2;
  display: block;
  margin-bottom: 8px;
  font-family: var(--v2-font);
  font-size: clamp(24px, 2.1vw, 30px);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  white-space: nowrap;
}

.mv7-change {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: var(--v2-text-sm);
}

.mv7-change b {
  color: var(--v2-green);
  font-family: var(--v2-font);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.mv7-change span {
  color: var(--v2-dim);
}

.mv7-change-warm b {
  color: var(--v2-amber);
}

.mv7-sparkline {
  position: absolute;
  z-index: 1;
  width: 57%;
  height: 60%;
  right: -3px;
  bottom: -1px;
  opacity: 0.9;
}

.mv7-spark-line {
  fill: none;
  stroke: var(--v2-green);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.mv7-metric-expense .mv7-spark-line {
  stroke: var(--v2-amber);
}

.mv7-analysis-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.05fr) minmax(250px, 0.95fr);
  gap: 14px;
  margin-top: 14px;
}

.mv7-cashflow-panel {
  background: rgba(14, 17, 15, 0.72);
  backdrop-filter: blur(24px) saturate(120%);
  -webkit-backdrop-filter: blur(24px) saturate(120%);
}

.mv7-accounts-panel,
.mv7-activity-panel {
  background: rgba(20, 24, 21, 0.62);
}

.mv7-panel-header {
  position: relative;
  z-index: 2;
  min-height: 72px;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.055);
}

.mv7-panel-header > div:first-child {
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.mv7-panel-header p {
  overflow: hidden;
  margin: 0;
  color: var(--v2-muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-panel-header > a:not(.mv7-text-link) {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--v2-muted);
  transition:
    background 150ms ease,
    color 150ms ease;
}

.mv7-panel-header > a:not(.mv7-text-link):hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--v2-text);
}

.mv7-panel-header a svg,
.mv7-text-link svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.mv7-legend {
  gap: 6px;
  color: var(--v2-muted);
  font-family: var(--v2-font);
  font-size: var(--v2-text-sm);
  font-weight: 500;
}

.mv7-legend i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--v2-green);
  box-shadow: 0 0 8px rgba(45, 222, 152, 0.75);
}

.mv7-chart-wrap {
  position: relative;
  z-index: 2;
  padding: 22px 18px 8px 52px;
}

.mv7-main-chart {
  width: 100%;
  height: 250px;
  overflow: visible;
}

.mv7-grid-lines path {
  fill: none;
  stroke: rgba(255, 255, 255, 0.05);
  vector-effect: non-scaling-stroke;
}

.mv7-chart-area {
  stroke: none;
}

.mv7-chart-line {
  fill: none;
  stroke: var(--v2-green);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.mv7-chart-point circle:first-child {
  fill: rgba(45, 222, 152, 0.16);
}

.mv7-chart-point circle:last-child {
  fill: var(--v2-green);
  stroke: white;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.mv7-chart-axis {
  position: absolute;
  display: flex;
  width: 44px;
  height: 208px;
  flex-direction: column;
  justify-content: space-between;
  left: 13px;
  top: 31px;
  color: var(--v2-dim);
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.mv7-chart-footer {
  display: flex;
  justify-content: space-between;
  color: var(--v2-dim);
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-panel-stats {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(255, 255, 255, 0.055);
}

.mv7-panel-stats > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 20px;
}

.mv7-panel-stats > div + div {
  border-left: 1px solid rgba(255, 255, 255, 0.055);
}

.mv7-panel-stats span,
.mv7-account-total span {
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

.mv7-panel-stats strong,
.mv7-account-total strong {
  font-family: var(--v2-font);
  font-size: 16px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.mv7-accounts-panel {
  display: flex;
  min-height: 100%;
  flex-direction: column;
}

.mv7-account-list {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 6px;
  padding: 6px 15px;
}

.mv7-account-item {
  display: grid;
  min-height: 58px;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  transition:
    background 150ms ease,
    border-color 150ms ease;
}

.mv7-account-item:hover {
  border-color: rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.055);
}

.mv7-account-token,
.mv7-transaction-token {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 0;
  border-radius: 11px;
  background: var(--token-bg, rgba(45, 222, 152, 0.14));
  color: var(--token-color, var(--v2-green));
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 650;
}

.mv7-account-copy,
.mv7-transaction-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.mv7-account-copy strong,
.mv7-transaction-copy strong {
  overflow: hidden;
  font-size: 12px;
  font-weight: 590;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-account-copy span,
.mv7-transaction-copy span {
  overflow: hidden;
  color: var(--v2-dim);
  font-family: var(--v2-font);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-account-value {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 4px;
}

.mv7-account-value strong {
  font-family: var(--v2-font);
  font-size: 12px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}

.mv7-account-value i {
  display: block;
  width: 48px;
  height: 10px;
  background: var(--mini-chart) center / contain no-repeat;
}

.mv7-account-total {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.055);
}

.mv7-activity-panel {
  margin-top: 14px;
}

.mv7-text-link {
  gap: 2px;
  color: var(--v2-muted);
  font-size: 12px;
  font-weight: 500;
}

.mv7-text-link:hover {
  color: var(--v2-green-bright);
}

.mv7-transaction-list {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 7px 12px 12px;
}

.mv7-transaction-row {
  display: grid;
  min-height: 62px;
  grid-template-columns: 34px minmax(140px, 1.5fr) minmax(90px, 0.8fr) minmax(90px, 0.8fr) auto;
  align-items: center;
  gap: 12px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  transition:
    background 150ms ease,
    border-color 150ms ease;
}

.mv7-transaction-row:hover {
  border-color: rgba(255, 255, 255, 0.07);
  background: rgba(255, 255, 255, 0.055);
}

.mv7-transaction-row > span {
  overflow: hidden;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-transaction-amount {
  font-family: var(--v2-font);
  font-size: 12px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}

.mv7-transaction-amount.is-income {
  color: var(--v2-green-bright);
}

.mv7-transaction-amount.is-transfer {
  color: var(--v2-purple);
}

