: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);
}

/* ── 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);
}

/* Movimientos V2 */
.mv7-transactions-view {
  width: min(100%, 1410px);
  padding: 26px 24px 42px;
  margin: 0 auto;
}

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

.mv7-tx-heading h2 {
  margin: 0;
  font-size: clamp(25px, 2.1vw, 34px);
  font-weight: 450;
  letter-spacing: -0.045em;
}

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

.mv7-tx-heading-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mv7-tx-summary {
  display: grid;
  min-height: 110px;
  grid-template-columns: repeat(3, minmax(145px, 0.72fr)) minmax(260px, 1.35fr);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: var(--v2-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.052), transparent 48%), rgba(8, 11, 9, 0.62);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.065),
    0 18px 45px -32px rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(26px) saturate(120%);
  -webkit-backdrop-filter: blur(26px) saturate(120%);
}

.mv7-tx-summary-item {
  display: flex;
  min-width: 0;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  padding: 18px;
  border-right: 1px solid var(--v2-line);
}

.mv7-tx-summary-item > span,
.mv7-tx-mini-chart > span {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-tx-summary-item strong {
  overflow: hidden;
  font-family: var(--v2-mono);
  font-size: clamp(16px, 1.55vw, 23px);
  font-weight: 500;
  letter-spacing: -0.045em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-tx-summary-item strong.is-positive,
.mv7-tx-summary-item strong.is-net-positive {
  color: var(--v2-green-bright);
}

.mv7-tx-summary-item strong.is-expense,
.mv7-tx-summary-item strong.is-net-negative {
  color: var(--v2-amber);
}

.mv7-tx-summary-item small {
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-tx-mini-chart {
  position: relative;
  min-width: 0;
  padding: 13px 16px 10px;
  background: rgba(0, 0, 0, 0.14);
}

.mv7-tx-mini-chart svg {
  width: 100%;
  height: 72px;
  overflow: visible;
}

.mv7-tx-mini-chart > span {
  position: absolute;
  right: 14px;
  top: 10px;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-tx-zero-line {
  fill: none;
  stroke: rgba(255, 255, 255, 0.08);
  stroke-dasharray: 3 5;
}

.mv7-tx-summary-area {
  fill: rgba(45, 222, 152, 0.08);
}

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

.mv7-tx-filters {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 14px 0;
}

.mv7-tx-search,
.mv7-tx-select {
  display: flex;
  height: 38px;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--v2-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.022);
}

.mv7-tx-search {
  width: min(285px, 28vw);
  padding: 0 10px;
}

.mv7-tx-search svg,
.mv7-tx-select svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  fill: none;
  stroke: var(--v2-muted);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

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

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

.mv7-tx-search kbd {
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  white-space: nowrap;
}

.mv7-tx-select {
  min-width: 112px;
  padding: 0 8px;
}

.mv7-tx-select select {
  background: var(--v2-surface);
}

.mv7-tx-type-filter {
  display: flex;
  height: 38px;
  align-items: center;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--v2-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.022);
}

.mv7-tx-type-filter button {
  display: inline-flex;
  height: 30px;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  border-radius: 6px;
  background: transparent;
  color: var(--v2-muted);
  cursor: pointer;
  font-size: var(--v2-text-xs);
}

.mv7-tx-type-filter button.is-active {
  background: rgba(255, 255, 255, 0.065);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.055);
  color: var(--v2-text);
}

.mv7-tx-type-filter i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v2-green);
}

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

.mv7-tx-filter-count {
  margin-left: auto;
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-tx-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(275px, 320px);
  gap: 12px;
  align-items: start;
}

.mv7-tx-ledger,
.mv7-tx-inspector {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.105);
  border-radius: var(--v2-radius);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.035), transparent 42%), rgba(6, 9, 7, 0.78);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.055),
    0 20px 50px -38px rgba(0, 0, 0, 0.8);
}

.mv7-tx-columns,
.mv7-tx-row {
  display: grid;
  grid-template-columns:
    minmax(180px, 1.45fr) minmax(100px, 0.82fr) minmax(100px, 0.82fr)
    minmax(82px, 0.65fr) minmax(78px, 0.6fr) minmax(110px, 0.85fr);
  align-items: center;
  gap: 12px;
}

.mv7-tx-columns {
  min-height: 43px;
  padding: 0 14px;
  border-bottom: 1px solid var(--v2-line);
  background: rgba(255, 255, 255, 0.018);
}

.mv7-tx-columns span {
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-tx-columns span:last-child {
  text-align: right;
}

.mv7-tx-list {
  min-height: 420px;
}

.mv7-tx-row {
  position: relative;
  min-height: 59px;
  padding: 0 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.052);
  cursor: pointer;
  transition:
    background 140ms ease,
    box-shadow 140ms ease;
}

.mv7-tx-row:hover {
  background: rgba(255, 255, 255, 0.025);
}

.mv7-tx-row.is-selected {
  background: linear-gradient(90deg, rgba(45, 222, 152, 0.055), rgba(255, 255, 255, 0.025));
  box-shadow: inset 2px 0 var(--v2-green);
}

.mv7-tx-row-main {
  display: grid;
  min-width: 0;
  grid-template-columns: 31px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.mv7-tx-row-copy,
.mv7-tx-cell-stack {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.mv7-tx-row-copy strong,
.mv7-tx-cell-stack strong {
  overflow: hidden;
  font-size: var(--v2-text-xs);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-tx-row-copy span,
.mv7-tx-cell-stack span {
  overflow: hidden;
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-tx-category {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-tx-category i {
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: var(--category-color, var(--v2-muted));
}

.mv7-status-pill {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 5px;
  padding: 4px 6px;
  border: 1px solid rgba(45, 222, 152, 0.12);
  border-radius: 5px;
  background: rgba(45, 222, 152, 0.075);
  color: #9bdbba;
  font-size: var(--v2-text-micro);
}

.mv7-status-pill::before {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--v2-green);
  content: '';
}

.mv7-status-pill.is-transfer {
  border-color: rgba(169, 120, 255, 0.18);
  background: rgba(169, 120, 255, 0.09);
  color: #cbb3ff;
}

.mv7-status-pill.is-transfer::before {
  background: var(--v2-purple);
}

.mv7-tx-row-amount {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
}

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

.mv7-tx-row-amount.is-expense {
  color: var(--v2-amber);
}

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

.mv7-trash-dialog {
  width: min(520px, calc(100% - 28px));
}

.mv7-trash-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 55vh;
  overflow-y: auto;
}

.mv7-trash-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.02);
}

.mv7-trash-row-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

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

.mv7-trash-row-copy span {
  overflow: hidden;
  color: var(--v2-dim);
  font-size: var(--v2-text-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-trash-row-amount {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-sm);
  font-weight: 550;
  white-space: nowrap;
}

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

.mv7-trash-row-amount.is-expense {
  color: var(--v2-amber);
}

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

.mv7-trash-row-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}

.mv7-trash-row-actions .mv7-icon-button {
  width: 32px;
  height: 32px;
}

.mv7-trash-empty {
  display: flex;
  min-height: 220px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 28px;
  color: var(--v2-muted);
  text-align: center;
}

.mv7-trash-empty .mv7-page-icon {
  margin-bottom: 17px;
}

.mv7-trash-empty strong {
  color: var(--v2-text);
  font-size: 12px;
  font-weight: 550;
}

.mv7-trash-empty p {
  max-width: 300px;
  margin: 6px 0 0;
  font-size: var(--v2-text-sm);
  line-height: 1.5;
}

.mv7-tx-ledger-footer {
  display: flex;
  min-height: 47px;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 0 14px;
  background: rgba(0, 0, 0, 0.15);
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-tx-ledger-footer > div {
  display: flex;
  align-items: center;
  gap: 5px;
}

.mv7-tx-ledger-footer button,
.mv7-tx-ledger-footer output {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid var(--v2-line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.02);
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-tx-ledger-footer button {
  cursor: pointer;
}

.mv7-tx-ledger-footer button:disabled {
  cursor: default;
  opacity: 0.3;
}

.mv7-tx-inspector {
  position: sticky;
  top: calc(var(--v2-topbar-height) + 12px);
  min-height: 510px;
}

.mv7-tx-inspector > header {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-tx-inspector > header h3 {
  margin: 0;
  font-size: 12px;
  font-weight: 500;
}

.mv7-tx-inspector-empty {
  display: flex;
  min-height: 420px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 28px;
  color: var(--v2-muted);
  text-align: center;
}

.mv7-tx-inspector-empty .mv7-page-icon {
  margin-bottom: 17px;
}

.mv7-tx-inspector-empty strong {
  color: var(--v2-text);
  font-size: var(--v2-text-sm);
  font-weight: 500;
}

.mv7-tx-inspector-empty p {
  max-width: 210px;
  margin: 7px 0 0;
  font-size: var(--v2-text-xs);
  line-height: 1.6;
}

.mv7-tx-detail-hero {
  padding: 21px 17px 19px;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-tx-detail-hero .mv7-transaction-token {
  width: 38px;
  height: 38px;
  margin-bottom: 17px;
  border-radius: 10px;
}

.mv7-tx-detail-hero h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.035em;
}

.mv7-tx-detail-hero p {
  margin: 5px 0 20px;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-tx-detail-hero > strong {
  display: block;
  font-family: var(--v2-mono);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -0.045em;
}

.mv7-tx-detail-hero > strong.is-income {
  color: var(--v2-green-bright);
}

.mv7-tx-detail-hero > strong.is-expense {
  color: var(--v2-amber);
}

.mv7-tx-detail-hero > strong.is-transfer {
  color: var(--v2-purple);
}

.mv7-tx-detail-list {
  padding: 4px 17px;
  margin: 0;
}

.mv7-tx-detail-list > div {
  display: flex;
  min-height: 51px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.055);
}

.mv7-tx-detail-list dt {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-tx-detail-list dd {
  overflow: hidden;
  margin: 0;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-tx-inspector-content > footer {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 13px 17px 17px;
}

.mv7-danger-button {
  min-height: 36px;
  border: 1px solid rgba(255, 98, 89, 0.22);
  border-radius: 8px;
  background: rgba(255, 98, 89, 0.045);
  color: #ff827b;
  cursor: pointer;
  font-size: var(--v2-text-xs);
}

.mv7-danger-button:hover {
  background: rgba(255, 98, 89, 0.09);
}

.mv7-tx-empty {
  display: grid;
  min-height: 420px;
  place-items: center;
  padding: 32px;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  text-align: center;
}

/* Cuentas V2: mapa del dinero + capas contextuales */
.mv7-accounts-view {
  width: min(100%, 1210px);
  padding: 26px 24px 56px;
  margin: 0 auto;
}

.mv7-accounts-heading,
.mv7-money-map > header,
.mv7-account-collection > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.mv7-accounts-heading {
  margin-bottom: 22px;
}

.mv7-accounts-heading h2 {
  margin: 0;
  font-size: clamp(27px, 2.25vw, 36px);
  font-weight: 450;
  letter-spacing: -0.05em;
}

.mv7-accounts-heading > div > p:last-child {
  max-width: 520px;
  margin: 8px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

.mv7-money-map {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 44% 48%, rgba(45, 222, 152, 0.075), transparent 20rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.025), transparent 42%), rgba(7, 10, 8, 0.76);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.045),
    0 28px 70px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(26px) saturate(115%);
  -webkit-backdrop-filter: blur(26px) saturate(115%);
}

.mv7-money-map::before {
  position: absolute;
  width: 320px;
  height: 320px;
  border: 1px solid rgba(45, 222, 152, 0.08);
  border-radius: 50%;
  content: '';
  left: 12%;
  top: 38%;
  transform: translate(-50%, -50%);
  box-shadow:
    0 0 0 52px rgba(45, 222, 152, 0.012),
    0 0 0 104px rgba(45, 222, 152, 0.008);
  pointer-events: none;
}

.mv7-money-map > header {
  position: relative;
  z-index: 2;
  min-height: 74px;
  align-items: center;
  padding: 16px 20px;
  border-bottom: 1px solid var(--v2-line);
  background: rgba(255, 255, 255, 0.012);
}

.mv7-money-map > header h3,
.mv7-account-collection > header h3 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.025em;
}

.mv7-money-map-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-money-map-status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v2-green);
  box-shadow: 0 0 10px rgba(45, 222, 152, 0.7);
}

.mv7-money-map-canvas {
  position: relative;
  min-height: 300px;
}

.mv7-money-source {
  position: absolute;
  z-index: 3;
  display: flex;
  width: 220px;
  min-height: 132px;
  justify-content: center;
  flex-direction: column;
  padding: 22px;
  border: 1px solid rgba(45, 222, 152, 0.17);
  border-radius: 16px;
  background:
    radial-gradient(circle at 20% 15%, rgba(45, 222, 152, 0.12), transparent 56%),
    rgba(7, 12, 9, 0.9);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.055),
    0 18px 45px rgba(0, 0, 0, 0.36),
    0 0 32px rgba(45, 222, 152, 0.035);
  left: 5%;
  top: 50%;
  transform: translateY(-50%);
}

.mv7-money-source span {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-money-source strong {
  margin-top: 9px;
  font-family: var(--v2-mono);
  font-size: clamp(19px, 2vw, 27px);
  font-weight: 500;
  letter-spacing: -0.05em;
}

.mv7-money-source small {
  margin-top: 9px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-money-routes {
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  inset: 0;
  overflow: visible;
}

.mv7-money-routes path {
  fill: none;
  stroke: url(#account-route-gradient);
  stroke-linecap: round;
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}

.mv7-money-routes .mv7-route-trunk {
  stroke-width: 2;
  filter: url(#account-route-glow);
}

.mv7-money-routes .mv7-route-warm {
  stroke: rgba(255, 159, 67, 0.42);
}

.mv7-route-junction {
  fill: var(--v2-green-bright);
  filter: url(#account-route-glow);
}

.mv7-money-nodes {
  position: absolute;
  z-index: 3;
  display: grid;
  width: min(270px, 27%);
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: 8px;
  right: 3.5%;
  top: 16px;
  bottom: 16px;
}

.mv7-money-node {
  display: grid;
  min-width: 0;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 11px;
  outline: none;
  background: rgba(8, 11, 9, 0.82);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
  color: var(--v2-text);
  cursor: pointer;
  text-align: left;
  transition:
    border-color 180ms ease,
    background 180ms ease,
    transform 180ms ease;
}

.mv7-money-node:hover,
.mv7-money-node:focus-visible,
.mv7-money-node.is-selected {
  border-color: color-mix(in srgb, var(--account-color) 38%, transparent);
  background: color-mix(in srgb, var(--account-color) 7%, rgba(8, 11, 9, 0.9));
  transform: translateX(-4px);
}

.mv7-money-node.is-selected {
  box-shadow:
    inset 2px 0 var(--account-color),
    0 9px 28px rgba(0, 0, 0, 0.24);
}

.mv7-money-node-token,
.mv7-account-layer-token,
.mv7-account-orb {
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--account-color) 26%, transparent);
  background: color-mix(in srgb, var(--account-color) 9%, transparent);
  color: var(--account-color);
  font-family: var(--v2-mono);
}

.mv7-money-node-token {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  font-size: var(--v2-text-micro);
}

.mv7-money-node-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.mv7-money-node-copy strong,
.mv7-money-node-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-money-node-copy strong {
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-money-node-copy small {
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-money-node > b {
  color: color-mix(in srgb, var(--account-color) 80%, white);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  font-weight: 500;
}

.mv7-account-collection {
  margin-top: 28px;
}

.mv7-account-collection > header {
  align-items: flex-end;
  padding: 0 2px 14px;
}

.mv7-account-collection > header > p {
  margin: 0;
  color: var(--v2-dim);
  font-size: var(--v2-text-xs);
}

.mv7-account-stage {
  position: relative;
}

.mv7-account-focus {
  position: relative;
  z-index: 5;
  display: grid;
  min-height: 310px;
  overflow: hidden;
  grid-template-columns: minmax(0, 1.05fr) minmax(330px, 0.95fr);
  border: 1px solid var(--account-line, rgba(45, 222, 152, 0.2));
  border-radius: 18px;
  background:
    radial-gradient(
      circle at 13% 12%,
      var(--account-soft, rgba(45, 222, 152, 0.09)),
      transparent 22rem
    ),
    linear-gradient(128deg, rgba(255, 255, 255, 0.035), transparent 46%), rgba(8, 11, 9, 0.88);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.055),
    0 30px 80px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(28px) saturate(118%);
  -webkit-backdrop-filter: blur(28px) saturate(118%);
}

.mv7-account-focus::before {
  position: absolute;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: var(--account-color, var(--v2-green));
  content: '';
  filter: blur(110px);
  opacity: 0.08;
  left: -90px;
  top: -130px;
  pointer-events: none;
}

.mv7-account-focus-main {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  flex-direction: column;
  padding: 30px;
}

.mv7-account-focus-heading {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 30px;
}

.mv7-account-orb {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  font-size: var(--v2-text-xs);
}

.mv7-account-focus-heading > div {
  min-width: 0;
}

.mv7-account-focus-heading span:not(.mv7-account-orb),
.mv7-account-focus-main > p {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-account-focus-heading h3 {
  overflow: hidden;
  margin: 4px 0 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-account-focus-heading .mv7-account-share {
  padding: 5px 7px;
  border: 1px solid var(--account-line);
  border-radius: 6px;
  background: var(--account-soft);
  color: color-mix(in srgb, var(--account-color) 70%, white);
  font-family: var(--v2-mono);
  white-space: nowrap;
}

.mv7-account-focus-main > p {
  margin: 0 0 8px;
}

.mv7-account-focus-main > strong {
  font-family: var(--v2-mono);
  font-size: clamp(27px, 3vw, 41px);
  font-weight: 450;
  letter-spacing: -0.06em;
}

.mv7-account-focus-main > strong.is-negative,
.mv7-account-layer-amount.is-negative,
.mv7-money-node-copy small.is-negative {
  color: #ff7b72;
}

.mv7-account-actions {
  display: flex;
  gap: 8px;
  margin-top: 30px;
}

.mv7-account-focus-insight {
  position: relative;
  display: flex;
  min-width: 0;
  justify-content: space-between;
  flex-direction: column;
  padding: 27px 24px 22px;
  border-left: 1px solid var(--v2-line);
  background: rgba(0, 0, 0, 0.13);
}

.mv7-account-insight-copy {
  display: flex;
  flex-direction: column;
}

.mv7-account-insight-copy > span {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-account-insight-copy > strong {
  margin-top: 4px;
  font-size: 12px;
  font-weight: 500;
}

.mv7-account-insight-copy > small {
  margin-top: 4px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-account-focus-insight > svg {
  width: 100%;
  height: 132px;
  margin: 5px 0;
  overflow: visible;
}

.mv7-account-chart-grid {
  fill: none;
  stroke: rgba(255, 255, 255, 0.055);
  stroke-dasharray: 3 6;
  vector-effect: non-scaling-stroke;
}

.mv7-account-chart-area {
  opacity: 0.75;
}

.mv7-account-chart-line {
  fill: none;
  stroke: var(--account-color, var(--v2-green));
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--account-color) 40%, transparent));
}

.mv7-account-insight-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--v2-line);
}

.mv7-account-insight-stats span {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mv7-account-insight-stats small {
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-account-insight-stats strong {
  overflow: hidden;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-account-deck {
  position: relative;
  z-index: 3;
  padding: 0 18px;
}

.mv7-account-layer {
  display: grid;
  width: calc(100% - (var(--layer-index) * 18px));
  min-height: 72px;
  grid-template-columns: 38px minmax(140px, 1fr) minmax(90px, 0.55fr) auto 24px;
  align-items: center;
  gap: 13px;
  padding: 11px 17px;
  margin: -7px auto 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0 0 14px 14px;
  outline: 0;
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--account-color) 5%, transparent),
      transparent 34%
    ),
    rgba(10, 13, 11, calc(0.96 - (var(--layer-index) * 0.06)));
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.035),
    0 18px 38px rgba(0, 0, 0, 0.28);
  color: var(--v2-text);
  cursor: pointer;
  text-align: left;
  transition:
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1),
    border-color 180ms ease,
    background 180ms ease;
}

.mv7-account-layer:hover,
.mv7-account-layer:focus-visible {
  z-index: 8;
  border-color: color-mix(in srgb, var(--account-color) 34%, transparent);
  background: color-mix(in srgb, var(--account-color) 7%, rgba(10, 13, 11, 0.96));
  transform: translateY(5px);
}

.mv7-account-layer-token {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  font-size: var(--v2-text-micro);
}

.mv7-account-layer-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
}

.mv7-account-layer-copy strong,
.mv7-account-layer-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-account-layer-copy strong {
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-account-layer-copy small,
.mv7-account-layer-ratio {
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-account-layer-amount {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 500;
  text-align: right;
  white-space: nowrap;
}

.mv7-account-layer-arrow {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--v2-dim);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

/* Presupuestos V2: carriles sincronizados sobre una única línea temporal */
.mv7-budgets-view {
  width: min(100%, 1210px);
  padding: 26px 24px 56px;
  margin: 0 auto;
}

.mv7-budgets-heading,
.mv7-budget-field-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}

.mv7-budgets-heading {
  margin-bottom: 24px;
}

.mv7-budgets-heading h2 {
  margin: 0;
  font-size: clamp(28px, 2.35vw, 37px);
  font-weight: 450;
  letter-spacing: -0.05em;
}

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

.mv7-budget-field {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 52% 25%, rgba(45, 222, 152, 0.045), transparent 28rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.018), transparent 38%), rgba(7, 9, 8, 0.74);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.04),
    0 30px 80px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(26px) saturate(112%);
  -webkit-backdrop-filter: blur(26px) saturate(112%);
}

.mv7-budget-field::before {
  position: absolute;
  width: 460px;
  height: 460px;
  border-radius: 50%;
  background: rgba(45, 222, 152, 0.035);
  content: '';
  filter: blur(110px);
  left: 35%;
  top: -270px;
  pointer-events: none;
}

.mv7-budget-field-header {
  position: relative;
  z-index: 2;
  min-height: 88px;
  align-items: center;
  padding: 17px 20px 13px;
}

.mv7-budget-field-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.03em;
}

.mv7-budget-inline-stats {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0;
}

.mv7-budget-inline-stats > div {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0 15px;
  border-left: 1px solid var(--v2-line);
}

.mv7-budget-inline-stats > div:last-child dd {
  color: var(--v2-green-bright);
}

.mv7-budget-inline-stats dt,
.mv7-budget-inline-stats dd {
  margin: 0;
}

.mv7-budget-inline-stats dt {
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-inline-stats dd {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  white-space: nowrap;
}

.mv7-budget-master-axis {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 19px 20px 24px;
  border-bottom: 1px solid var(--v2-line);
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-budget-axis-track {
  position: relative;
  display: flex;
  height: 1px;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.15);
}

.mv7-budget-axis-track > i {
  width: 1px;
  height: 5px;
  background: rgba(255, 255, 255, 0.19);
}

.mv7-budget-axis-track > b {
  position: absolute;
  z-index: 3;
  width: max-content;
  color: var(--v2-green-bright);
  font-size: var(--v2-text-micro);
  font-weight: 500;
  left: var(--today-position, 0%);
  top: -27px;
  transform: translateX(-50%);
}

.mv7-budget-axis-track > b::after {
  position: absolute;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--v2-green);
  box-shadow: 0 0 15px rgba(45, 222, 152, 0.75);
  content: '';
  left: 50%;
  top: 21px;
  transform: translateX(-50%);
}

.mv7-budget-lanes {
  position: relative;
  z-index: 1;
}

.mv7-budget-lane {
  position: relative;
  border-bottom: 1px solid var(--v2-line);
  animation: v2-budget-lane-in 440ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  animation-delay: var(--budget-delay, 0ms);
}

@keyframes v2-budget-lane-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mv7-budget-lane::before {
  position: absolute;
  z-index: 0;
  width: 36%;
  height: 90%;
  background: var(--budget-color);
  content: '';
  filter: blur(100px);
  opacity: 0;
  pointer-events: none;
  left: 18%;
  top: 5%;
  transition: opacity 220ms ease;
}

.mv7-budget-lane.is-expanded::before {
  opacity: 0.055;
}

.mv7-budget-lane-main {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-height: 98px;
  grid-template-columns: 185px minmax(260px, 1fr) 118px;
  align-items: center;
  gap: 18px;
  padding: 9px 20px;
  outline: 0;
  background: transparent;
  color: var(--v2-text);
  cursor: pointer;
  text-align: left;
  transition: background 180ms ease;
}

.mv7-budget-lane-main:hover,
.mv7-budget-lane-main:focus-visible {
  background: rgba(255, 255, 255, 0.018);
}

.mv7-budget-lane.is-expanded .mv7-budget-lane-main {
  min-height: 175px;
}

.mv7-budget-lane-identity {
  display: grid;
  min-width: 0;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
}

.mv7-budget-lane-identity > i {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--budget-color) 28%, transparent);
  border-radius: 11px;
  background: color-mix(in srgb, var(--budget-color) 8%, transparent);
  color: var(--budget-color);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  font-style: normal;
}

.mv7-budget-lane-identity > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.mv7-budget-lane-identity strong,
.mv7-budget-lane-identity small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-lane-identity strong {
  font-size: 12px;
  font-weight: 500;
}

.mv7-budget-lane-identity small {
  color: color-mix(in srgb, var(--budget-color) 76%, white);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-budget-lane-track {
  position: relative;
  display: block;
  min-width: 0;
  height: 78px;
}

.mv7-budget-lane.is-expanded .mv7-budget-lane-track {
  height: 142px;
}

.mv7-budget-lane-chart {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.mv7-budget-lane-grid {
  fill: none;
  stroke: rgba(255, 255, 255, 0.035);
  stroke-dasharray: 3 7;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-lane-area {
  fill: color-mix(in srgb, var(--budget-color) 18%, transparent);
}

.mv7-budget-lane-actual,
.mv7-budget-lane-projection {
  fill: none;
  stroke: var(--budget-color);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-lane-actual {
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--budget-color) 40%, transparent));
}

.mv7-budget-lane-projection {
  stroke-dasharray: 3 6;
  opacity: 0.78;
}

.mv7-budget-lane.is-warning .mv7-budget-lane-projection,
.mv7-budget-lane.is-warning .mv7-budget-lane-end {
  stroke: var(--v2-amber);
}

.mv7-budget-lane-end {
  fill: var(--v2-canvas);
  stroke: var(--budget-color);
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-lane-today {
  position: absolute;
  z-index: 4;
  width: 1px;
  background: linear-gradient(transparent, var(--v2-green) 13%, var(--v2-green) 87%, transparent);
  box-shadow: 0 0 11px rgba(45, 222, 152, 0.45);
  left: var(--today-position);
  inset-block: 0;
}

.mv7-budget-lane-today::after {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v2-green);
  content: '';
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.mv7-budget-lane-forecast {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  text-align: right;
}

.mv7-budget-lane-forecast small {
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-lane-forecast strong {
  overflow: hidden;
  color: color-mix(in srgb, var(--budget-color) 75%, white);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-lane.is-warning .mv7-budget-lane-forecast strong {
  color: var(--v2-amber);
}

.mv7-budget-lane-detail {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px;
  gap: 28px;
  padding: 0 20px 20px 245px;
}

.mv7-budget-recent {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

.mv7-budget-recent > span,
.mv7-budget-lane-controls > span {
  margin-bottom: 7px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-recent > div {
  display: grid;
  min-height: 33px;
  grid-template-columns: minmax(0, 1fr) 60px auto;
  align-items: center;
  gap: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.mv7-budget-recent > div strong,
.mv7-budget-recent > div span,
.mv7-budget-recent > div b {
  overflow: hidden;
  font-size: var(--v2-text-micro);
  font-weight: 450;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-recent > div span,
.mv7-budget-recent > div b {
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-budget-recent > div b {
  text-align: right;
}

.mv7-budget-recent > p {
  margin: 4px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-budget-lane-controls {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
}

.mv7-budget-lane-controls > strong {
  margin-bottom: 10px;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-sm);
  font-weight: 500;
}

.mv7-budget-lane-controls .mv7-secondary-button {
  width: fit-content;
}

.mv7-budget-reserve {
  display: grid;
  min-height: 76px;
  grid-template-columns: 38px auto minmax(80px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  background: rgba(45, 222, 152, 0.018);
}

.mv7-budget-reserve-token {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid rgba(45, 222, 152, 0.2);
  border-radius: 11px;
  background: rgba(45, 222, 152, 0.06);
  color: var(--v2-green);
  font-size: 17px;
}

.mv7-budget-reserve > div {
  display: flex;
  min-width: 145px;
  flex-direction: column;
  gap: 3px;
}

.mv7-budget-reserve > div span,
.mv7-budget-reserve > small {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-budget-reserve > div strong {
  color: var(--v2-green-bright);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-budget-reserve > i {
  height: 1px;
  background: repeating-linear-gradient(90deg, rgba(45, 222, 152, 0.7) 0 3px, transparent 3px 8px);
}

.mv7-budget-reserve > small {
  text-align: right;
}

.mv7-budget-empty {
  display: flex;
  min-height: 310px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 30px;
  text-align: center;
}

.mv7-budget-empty strong {
  font-size: 14px;
  font-weight: 500;
}

.mv7-budget-empty p,
.mv7-budget-form-note {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.6;
}

.mv7-budget-empty p {
  max-width: 320px;
  margin: 7px 0 0;
}

.mv7-budget-form-note {
  padding: 11px;
  margin: 2px 0 0;
  border: 1px solid rgba(45, 222, 152, 0.1);
  border-radius: 8px;
  background: rgba(45, 222, 152, 0.035);
}

.mv7-budget-dialog footer > span,
.mv7-account-dialog footer > span {
  flex: 1;
}

/* Objetivos V2: paisaje arquitectónico de metas */
.mv7-goals-view {
  width: min(100%, 1210px);
  padding: 26px 24px 56px;
  margin: 0 auto;
}

.mv7-goals-heading,
.mv7-goals-heading-actions,
.mv7-future-scene-header {
  display: flex;
  align-items: center;
}

.mv7-goals-heading {
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
}

.mv7-goals-heading h2 {
  margin: 0;
  font-size: clamp(28px, 2.35vw, 37px);
  font-weight: 450;
  letter-spacing: -0.05em;
}

.mv7-goals-heading > div:first-child > p:last-child {
  margin: 7px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

.mv7-goals-heading-actions {
  gap: 8px;
}

.mv7-future-scene {
  position: relative;
  min-height: 700px;
  overflow: hidden;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 29% 69%, rgba(45, 222, 152, 0.07), transparent 24rem),
    radial-gradient(ellipse at 74% 58%, rgba(77, 125, 103, 0.035), transparent 26rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 35%), rgba(5, 8, 6, 0.82);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.04),
    0 35px 90px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(28px) saturate(112%);
  -webkit-backdrop-filter: blur(28px) saturate(112%);
}

.mv7-future-scene::before {
  position: absolute;
  z-index: 0;
  height: 310px;
  background:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.022) 1px, transparent 1px);
  background-size: 46px 46px;
  content: '';
  inset: auto -8% 64px;
  opacity: 0.34;
  perspective: 500px;
  transform: perspective(520px) rotateX(63deg) scale(1.22);
  transform-origin: bottom;
  -webkit-mask-image: linear-gradient(transparent, black 42%, black);
  mask-image: linear-gradient(transparent, black 42%, black);
  pointer-events: none;
}

.mv7-future-scene-header {
  position: relative;
  z-index: 5;
  min-height: 108px;
  justify-content: space-between;
  gap: 20px;
  padding: 21px 24px 13px;
}

.mv7-future-scene-header h3 {
  margin: 0;
  font-size: clamp(23px, 2vw, 31px);
  font-weight: 450;
  letter-spacing: -0.045em;
}

.mv7-future-scene-header > div > p:last-child {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 9px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-future-scene-header > div > p:last-child strong {
  color: var(--v2-green-bright);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-sm);
  font-weight: 500;
}

.mv7-future-scene-header > div > p:last-child i {
  width: 3px;
  height: 3px;
  margin-inline: 5px;
  border-radius: 50%;
  background: var(--v2-dim);
}

.mv7-future-stage {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 500px;
  align-items: stretch;
  gap: 8px;
  padding: 0 22px;
}

.mv7-future-stage::after {
  position: absolute;
  z-index: -1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent);
  box-shadow:
    0 4px 22px rgba(45, 222, 152, 0.08),
    0 24px 60px rgba(0, 0, 0, 0.7);
  content: '';
  bottom: 54px;
  left: 2%;
  right: 2%;
}

.mv7-goal-selected {
  display: grid;
  min-width: 480px;
  flex: 1.65 0 480px;
  grid-template-columns: minmax(125px, 0.82fr) minmax(145px, 1fr) minmax(125px, 0.9fr);
  align-items: end;
  gap: 10px;
  padding-bottom: 48px;
}

.mv7-goal-selected-copy {
  display: flex;
  align-self: center;
  flex-direction: column;
  padding-left: 2px;
}

.mv7-goal-selected-copy h4 {
  max-width: 155px;
  margin: 0 0 22px;
  font-size: 18px;
  font-weight: 550;
  letter-spacing: -0.035em;
  line-height: 1.08;
}

.mv7-goal-selected-copy > strong {
  color: var(--goal-color);
  font-family: var(--v2-mono);
  font-size: 29px;
  font-weight: 450;
  letter-spacing: -0.06em;
}

.mv7-goal-selected-copy > b {
  margin-top: 8px;
  color: color-mix(in srgb, var(--goal-color) 75%, white);
  font-family: var(--v2-mono);
  font-size: 13px;
  font-weight: 500;
}

.mv7-goal-selected-copy > span {
  margin-top: 7px;
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-goal-selected-copy > small {
  width: fit-content;
  padding-top: 15px;
  margin-top: 18px;
  border-top: 1px solid var(--v2-line);
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-goal-monolith {
  position: relative;
  height: 100%;
  min-height: 260px;
}

.mv7-goal-monolith-shadow {
  position: absolute;
  z-index: 0;
  width: 150%;
  height: 20px;
  border-radius: 50%;
  background: var(--goal-color);
  content: '';
  filter: blur(26px);
  opacity: 0.16;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%) scaleY(0.35);
}

.mv7-goal-monolith-shell {
  position: absolute;
  z-index: 2;
  width: 68%;
  height: var(--goal-height, 82%);
  overflow: visible;
  border: 1px solid color-mix(in srgb, var(--goal-color) 42%, rgba(255, 255, 255, 0.14));
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.055), transparent 34%),
    color-mix(in srgb, var(--goal-color) 4%, rgba(5, 8, 7, 0.82));
  box-shadow:
    inset 0 0 35px color-mix(in srgb, var(--goal-color) 7%, transparent),
    0 20px 55px rgba(0, 0, 0, 0.38);
  bottom: 15px;
  left: 48%;
  clip-path: polygon(0 8%, 82% 0, 100% 6%, 100% 100%, 0 100%);
  transform: translateX(-50%) perspective(420px) rotateY(-5deg);
  transform-origin: bottom;
}

.mv7-goal-monolith-shell::before {
  position: absolute;
  z-index: 5;
  width: 16%;
  border-left: 1px solid color-mix(in srgb, var(--goal-color) 38%, transparent);
  background: color-mix(in srgb, var(--goal-color) 8%, transparent);
  content: '';
  inset: 5% 0 0 auto;
  transform: skewY(-18deg);
  transform-origin: top;
}

.mv7-goal-monolith-plane {
  position: absolute;
  z-index: 1;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 36px,
      color-mix(in srgb, var(--goal-color) 10%, transparent) 36px 37px
    ),
    linear-gradient(120deg, color-mix(in srgb, var(--goal-color) 9%, transparent), transparent 55%);
  inset: 0;
}

.mv7-goal-monolith-fill {
  position: absolute;
  z-index: 2;
  height: var(--goal-fill, 0%);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.11), transparent 35%),
    linear-gradient(180deg, color-mix(in srgb, var(--goal-color) 78%, white), var(--goal-color));
  box-shadow:
    0 -1px 16px color-mix(in srgb, var(--goal-color) 75%, transparent),
    inset 0 1px rgba(255, 255, 255, 0.55);
  bottom: 0;
  inset-inline: 0;
  opacity: 0.64;
}

.mv7-goal-monolith-fill::before {
  position: absolute;
  height: 1px;
  background: color-mix(in srgb, var(--goal-color) 60%, white);
  box-shadow: 0 0 18px var(--goal-color);
  content: '';
  inset: 0;
}

.mv7-goal-monolith-edge {
  position: absolute;
  z-index: 6;
  width: 2px;
  background: linear-gradient(transparent, var(--goal-color), transparent);
  box-shadow: 0 0 13px color-mix(in srgb, var(--goal-color) 60%, transparent);
  right: 15%;
  inset-block: 4% 0;
  opacity: 0.7;
}

.mv7-goal-monolith-notches {
  position: absolute;
  z-index: 7;
  display: flex;
  justify-content: space-around;
  flex-direction: column;
  left: 0;
  inset-block: 15% 12%;
}

.mv7-goal-monolith-notches i {
  width: 11px;
  height: 1px;
  background: color-mix(in srgb, var(--goal-color) 55%, transparent);
}

.mv7-goal-selected .mv7-goal-monolith {
  min-height: 430px;
}

.mv7-goal-selected .mv7-goal-monolith-shell {
  width: 78%;
}

.mv7-goal-annotation {
  display: flex;
  align-self: center;
  flex-direction: column;
  gap: 29px;
  padding-left: 8px;
}

.mv7-goal-annotation > div {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.mv7-goal-annotation > div::before {
  position: absolute;
  width: 64px;
  height: 1px;
  background: linear-gradient(90deg, var(--goal-color), rgba(255, 255, 255, 0.16));
  content: '';
  left: -74px;
  top: 11px;
}

.mv7-goal-annotation span {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-goal-annotation strong {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-goal-inline-contribute {
  width: fit-content;
  padding: 0;
  background: transparent;
  color: var(--goal-color);
  cursor: pointer;
  font-size: var(--v2-text-xs);
}

.mv7-goal-inline-contribute::after {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  margin-left: 7px;
  border: 1px solid color-mix(in srgb, var(--goal-color) 45%, transparent);
  border-radius: 50%;
  content: '+';
}

.mv7-goal-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.mv7-goal-inline-withdraw {
  color: var(--v2-muted);
}

.mv7-goal-inline-withdraw::after {
  content: '−';
  border-color: var(--v2-line-strong);
}

.mv7-goal-inline-withdraw:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.mv7-goal-compact {
  display: flex;
  min-width: 118px;
  flex: 0.62 1 160px;
  align-items: center;
  flex-direction: column;
  padding: 34px 5px 48px;
  outline: 0;
  background: transparent;
  color: var(--v2-text);
  cursor: pointer;
  transition:
    background 180ms ease,
    transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.mv7-goal-compact:hover,
.mv7-goal-compact:focus-visible {
  background: linear-gradient(
    transparent 22%,
    color-mix(in srgb, var(--goal-color) 3%, transparent)
  );
  transform: translateY(-5px);
}

.mv7-goal-compact .mv7-goal-monolith {
  width: 100%;
  flex: 1;
}

.mv7-goal-compact .mv7-goal-monolith-shell {
  width: 60%;
}

.mv7-goal-compact > span {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
  text-align: center;
}

.mv7-goal-compact > span strong,
.mv7-goal-compact > span b,
.mv7-goal-compact > span small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-goal-compact > span strong {
  font-size: var(--v2-text-xs);
  font-weight: 500;
}

.mv7-goal-compact > span b {
  color: var(--goal-color);
  font-family: var(--v2-mono);
  font-size: 12px;
  font-weight: 450;
}

.mv7-goal-compact > span small {
  color: var(--v2-muted);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
}

.mv7-goal-milestones {
  position: relative;
  z-index: 6;
  display: grid;
  min-height: 88px;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  padding: 12px 24px;
  border-top: 1px solid var(--v2-line);
  background: rgba(0, 0, 0, 0.12);
}

.mv7-goal-milestones > span {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-goal-milestones > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.mv7-goal-milestones > div > div {
  display: grid;
  min-width: 0;
  grid-template-columns: 10px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

.mv7-goal-milestones i {
  position: relative;
  width: 1px;
  height: 35px;
  background: linear-gradient(var(--goal-color), rgba(255, 255, 255, 0.18));
}

.mv7-goal-milestones i::before,
.mv7-goal-milestones i::after {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--goal-color);
  content: '';
  left: 50%;
  transform: translateX(-50%);
}

.mv7-goal-milestones i::before {
  top: 0;
  box-shadow: 0 0 8px var(--goal-color);
}

.mv7-goal-milestones i::after {
  bottom: 0;
  opacity: 0.45;
}

.mv7-goal-milestones > div span {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.mv7-goal-milestones strong {
  color: var(--goal-color);
  font-family: var(--v2-mono);
  font-size: 13px;
  font-weight: 450;
}

.mv7-goal-milestones small {
  overflow: hidden;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-goal-empty {
  display: flex;
  width: 100%;
  min-height: 440px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.mv7-goal-empty strong {
  font-size: 15px;
  font-weight: 500;
}

.mv7-goal-empty p {
  max-width: 340px;
  margin: 8px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.6;
}

.mv7-goal-dialog footer > span {
  flex: 1;
}

.mv7-empty-state {
  display: grid;
  min-height: 180px;
  place-items: center;
  color: var(--v2-muted);
  text-align: center;
}

.mv7-empty-state div {
  max-width: 290px;
}

.mv7-empty-state strong {
  display: block;
  margin-bottom: 6px;
  color: var(--v2-text);
  font-size: 13px;
  font-weight: 500;
}

.mv7-empty-state p {
  margin: 0;
  font-size: var(--v2-text-xs);
  line-height: 1.6;
}

.mv7-private .mv7-private-value {
  border-radius: 4px;
  color: transparent;
  text-shadow: 0 0 12px rgba(244, 247, 245, 0.82);
  user-select: none;
}

.mv7-secondary-view {
  min-height: calc(100vh - var(--v2-topbar-height) - 80px);
  padding: 50px;
}

.mv7-secondary-copy {
  display: flex;
  max-width: 620px;
  min-height: 420px;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  padding: 50px;
  border: 1px solid var(--v2-line);
  border-radius: 18px;
  background:
    radial-gradient(circle at 80% 10%, rgba(45, 222, 152, 0.08), transparent 15rem),
    var(--v2-surface);
}

.mv7-secondary-copy .mv7-page-icon {
  margin-bottom: 42px;
}

.mv7-secondary-copy > p:not(.mv7-eyebrow) {
  max-width: 480px;
  margin: 15px 0 28px;
  color: var(--v2-muted);
  font-size: 13px;
  line-height: 1.7;
}

.mv7-dialog {
  width: min(480px, calc(100% - 28px));
  max-height: calc(100vh - 28px);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--v2-line-strong);
  border-radius: 17px;
  background: #0b0e0c;
  box-shadow: 0 40px 100px rgba(0, 0, 0, 0.72);
  color: var(--v2-text);
}

.mv7-dialog::backdrop {
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(8px);
}

.mv7-dialog[open] {
  animation: v2-dialog-in 220ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

@keyframes v2-dialog-in {
  from {
    opacity: 0;
    transform: translateY(12px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.mv7-dialog form {
  padding: 21px;
}

.mv7-dialog header,
.mv7-dialog footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.mv7-dialog header {
  margin-bottom: 22px;
}

.mv7-dialog h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.035em;
}

.mv7-dialog footer {
  justify-content: flex-end;
  padding-top: 21px;
}

.mv7-type-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  padding: 3px;
  margin-bottom: 17px;
  border: 1px solid var(--v2-line);
  border-radius: 9px;
  background: #060807;
}

.mv7-type-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.mv7-type-switch span {
  display: grid;
  min-height: 34px;
  place-items: center;
  border-radius: 6px;
  color: var(--v2-muted);
  cursor: pointer;
  font-size: var(--v2-text-sm);
}

.mv7-type-switch input:checked + span {
  background: var(--v2-surface-raised);
  box-shadow: inset 0 0 0 1px var(--v2-line);
  color: var(--v2-text);
}

.mv7-type-switch--triple {
  grid-template-columns: repeat(3, 1fr);
}

.mv7-type-switch--triple span {
  padding: 0 2px;
  font-size: var(--v2-text-xs);
}

.mv7-field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 14px;
}

.mv7-field > span {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-field input,
.mv7-field select {
  width: 100%;
  min-width: 0;
  height: 40px;
  padding: 0 11px;
  border: 1px solid var(--v2-line);
  border-radius: 8px;
  outline: 0;
  background: #060807;
  color: var(--v2-text);
  font-size: 12px;
}

.mv7-field input:focus,
.mv7-field select:focus {
  border-color: rgba(45, 222, 152, 0.45);
  box-shadow: 0 0 0 3px rgba(45, 222, 152, 0.055);
}

.mv7-form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
}

/* Login/registro/recuperar — reusa .mv7-field/.mv7-primary-button/
   .mv7-secondary-button de los composers, esto solo cubre lo específico
   de auth-dialog (paneles, estado, botón de Google, links de texto). */
.mv7-auth-dialog {
  width: min(400px, calc(100% - 28px));
}

.mv7-auth-status {
  margin: -6px 0 14px;
  padding: 9px 12px;
  border-radius: 9px;
  font-size: var(--v2-text-sm);
  line-height: 1.4;
}

.mv7-auth-status.is-error {
  background: rgba(255, 90, 90, 0.1);
  color: #ff9b9b;
}

.mv7-auth-status.is-success {
  background: var(--v2-green-soft);
  color: var(--v2-green);
}

.mv7-auth-status.is-info {
  background: rgba(255, 255, 255, 0.045);
  color: var(--v2-muted);
}

.mv7-auth-forgot {
  margin: -6px 0 4px;
  text-align: right;
}

.mv7-auth-link {
  border: 0;
  background: none;
  color: var(--v2-green);
  cursor: pointer;
  font-size: var(--v2-text-sm);
  font-weight: 600;
}

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

.mv7-auth-hint {
  margin: 0 0 14px;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  line-height: 1.5;
}

.mv7-auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0;
}

.mv7-auth-divider span {
  flex: 1;
  height: 1px;
  background: var(--v2-line);
}

.mv7-auth-divider small {
  color: var(--v2-dim);
  font-size: var(--v2-text-xs);
  text-transform: uppercase;
}

.mv7-auth-google {
  width: 100%;
}

.mv7-auth-switch {
  margin: 14px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  text-align: center;
}

.mv7-otp-field {
  letter-spacing: 0.5em;
  text-align: center;
  font-family: var(--v2-mono);
  font-size: 16px !important;
}

.mv7-mfa-qr {
  display: grid;
  place-items: center;
  width: 176px;
  height: 176px;
  margin: 0 auto 12px;
  padding: 10px;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: #fff;
}

.mv7-mfa-qr svg {
  width: 100%;
  height: 100%;
}

.mv7-mfa-secret {
  margin: 0 0 16px;
  color: var(--v2-muted);
  text-align: center;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-sm);
  letter-spacing: 0.05em;
  word-break: break-all;
}

.mv7-account-menu-dialog {
  width: min(360px, calc(100% - 28px));
}

.mv7-account-menu-email {
  margin: 0 0 4px;
  color: var(--v2-text);
  font-size: 13px;
  font-weight: 600;
}

.mv7-account-menu-sync {
  margin: 0 0 18px;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
}

/* Punto verde en el avatar de la topbar cuando hay sesión activa. */
#profile-button {
  position: relative;
}

#profile-button[data-auth-state='active']::after {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 10px;
  height: 10px;
  border: 2px solid #0b0e0c;
  border-radius: 50%;
  background: var(--v2-green);
  content: '';
}

.mv7-toast {
  position: fixed;
  z-index: 100;
  min-width: 180px;
  padding: 11px 14px;
  border: 1px solid rgba(45, 222, 152, 0.24);
  border-radius: 9px;
  background: #0b120e;
  box-shadow: 0 16px 50px rgba(0, 0, 0, 0.4);
  color: #caffdf;
  font-size: var(--v2-text-sm);
  opacity: 0;
  pointer-events: none;
  right: 24px;
  bottom: 24px;
  transform: translateY(8px);
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}

.mv7-toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (max-width: 1400px) {
  .mv7-tx-layout {
    grid-template-columns: minmax(0, 1fr) 275px;
  }

  .mv7-tx-columns,
  .mv7-tx-row {
    grid-template-columns: minmax(150px, 1.3fr) minmax(86px, 0.75fr) minmax(72px, 0.6fr) minmax(
        100px,
        0.8fr
      );
  }

  .mv7-tx-columns span:nth-child(3),
  .mv7-tx-columns span:nth-child(5),
  .mv7-tx-cell-account,
  .mv7-tx-cell-status {
    display: none;
  }

  .mv7-tx-summary-item strong {
    font-size: clamp(15px, 1.35vw, 20px);
  }
}

@media (max-width: 1120px) {
  :root {
    --v2-sidebar-width: 238px;
  }

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

  .mv7-metric-primary {
    grid-column: 1 / -1;
  }

  .mv7-analysis-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(220px, 0.85fr);
  }

  .mv7-transaction-row {
    grid-template-columns: 34px minmax(120px, 1fr) minmax(85px, 0.7fr) auto;
  }

  .mv7-transaction-row > span:nth-of-type(2) {
    display: none;
  }
}

@media (max-width: 860px) {
  .mv7-analysis-grid {
    grid-template-columns: 1fr;
  }

  .mv7-account-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
  }

  .mv7-tx-summary {
    grid-template-columns: 1fr 1fr;
  }

  .mv7-tx-summary-item:nth-child(3) {
    border-top: 1px solid var(--v2-line);
  }

  .mv7-tx-mini-chart {
    border-top: 1px solid var(--v2-line);
  }

  .mv7-tx-filters {
    flex-wrap: wrap;
  }

  .mv7-tx-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-tx-inspector {
    position: static;
  }
}

@media (max-width: 768px) {
  :root {
    --v2-topbar-height: 72px;
  }

  body {
    background:
      radial-gradient(circle at 105% 12%, rgba(140, 142, 138, 0.11), transparent 24rem),
      linear-gradient(160deg, #070908, var(--v2-canvas) 48%);
  }

  .mv7-ambient {
    display: none;
  }

  .mv7-app {
    display: block;
    width: 100%;
    min-height: 100dvh;
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .mv7-sidebar {
    position: fixed;
    z-index: 80;
    width: min(312px, calc(100% - 42px));
    min-height: 100dvh;
    padding-top: max(22px, env(safe-area-inset-top));
    border-right-color: var(--v2-line-strong);
    box-shadow: 24px 0 70px rgba(0, 0, 0, 0.65);
    inset: 0 auto 0 0;
    transform: translateX(-105%);
    transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .mv7-sidebar.is-open {
    transform: translateX(0);
  }

  .mv7-sidebar-scrim {
    position: fixed;
    z-index: 70;
    display: block;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    opacity: 0;
    pointer-events: none;
    transition: opacity 220ms ease;
  }

  .mv7-sidebar-scrim.is-open {
    opacity: 1;
    pointer-events: auto;
  }

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

  .mv7-topbar {
    position: sticky;
    top: 0;
    min-height: var(--v2-topbar-height);
    padding: max(12px, env(safe-area-inset-top)) 15px 12px;
  }

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

  .mv7-topbar-actions .mv7-icon-button:first-child {
    display: none;
  }

  .mv7-page-icon {
    display: none;
  }

  .mv7-page-identity {
    flex: 1;
    gap: 0;
  }

  .mv7-page-identity h1 {
    font-size: 15px;
  }

  .mv7-page-identity p {
    max-width: 47vw;
    font-size: var(--v2-text-xs);
  }

  .mv7-content {
    padding: 22px 14px calc(34px + env(safe-area-inset-bottom));
  }

  .mv7-section-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 17px;
    margin-bottom: 16px;
  }

  .mv7-section-heading h2 {
    font-size: 29px;
  }

  .mv7-heading-tools {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr auto;
  }

  .mv7-preview-badge {
    position: absolute;
    top: 88px;
    right: 14px;
  }

  .mv7-period-control {
    justify-content: space-between;
  }

  .mv7-primary-button {
    min-height: 40px;
  }

  .mv7-primary-button span {
    display: none;
  }

  .mv7-metric-grid {
    display: flex;
    gap: 10px;
    padding-right: 14px;
    margin-right: -14px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .mv7-metric-grid::-webkit-scrollbar {
    display: none;
  }

  .mv7-metric {
    width: min(82vw, 330px);
    min-width: min(82vw, 330px);
    min-height: 183px;
    scroll-snap-align: start;
  }

  .mv7-metric-primary {
    grid-column: auto;
  }

  .mv7-metric > strong {
    font-size: 24px;
  }

  .mv7-analysis-grid {
    margin-top: 10px;
  }

  .mv7-panel,
  .mv7-metric {
    border-radius: 18px;
  }

  .mv7-panel-header {
    min-height: 64px;
    padding: 13px 14px;
  }

  .mv7-chart-wrap {
    padding: 17px 12px 7px 42px;
  }

  .mv7-main-chart {
    height: 220px;
  }

  .mv7-chart-axis {
    width: 34px;
    height: 180px;
    left: 4px;
    top: 26px;
  }

  .mv7-account-list {
    display: flex;
    padding-inline: 13px;
  }

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

  .mv7-transaction-list {
    padding: 7px 13px 12px;
  }

  .mv7-transaction-row {
    min-height: 64px;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .mv7-transaction-row > span {
    display: none;
  }

  .mv7-transaction-amount {
    font-size: var(--v2-text-xs);
  }

  .mv7-panel-stats strong {
    font-size: var(--v2-text-sm);
  }

  .mv7-secondary-view {
    min-height: calc(100dvh - var(--v2-topbar-height));
    padding: 18px 14px;
  }

  .mv7-secondary-copy {
    min-height: 440px;
    padding: 28px;
  }

  .mv7-secondary-copy .mv7-page-icon {
    display: grid;
  }

  .mv7-transactions-view {
    padding: 21px 14px calc(34px + env(safe-area-inset-bottom));
  }

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

  .mv7-tx-heading h2 {
    font-size: 27px;
  }

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

  .mv7-tx-summary {
    grid-template-columns: 1fr 1fr;
    border-radius: 12px;
  }

  .mv7-tx-summary-item {
    min-height: 100px;
    padding: 15px;
  }

  .mv7-tx-summary-item:first-child {
    grid-column: 1 / -1;
    border-right: 0;
  }

  .mv7-tx-summary-item:nth-child(2) {
    border-top: 1px solid var(--v2-line);
  }

  .mv7-tx-summary-item strong {
    font-size: 19px;
  }

  .mv7-tx-mini-chart {
    grid-column: 1 / -1;
    min-height: 98px;
  }

  .mv7-tx-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 11px 0;
  }

  .mv7-tx-search {
    width: 100%;
    grid-column: 1 / -1;
  }

  .mv7-tx-search input,
  .mv7-tx-select select {
    font-size: 16px;
  }

  .mv7-tx-type-filter {
    overflow-x: auto;
    scrollbar-width: none;
  }

  .mv7-tx-type-filter::-webkit-scrollbar {
    display: none;
  }

  .mv7-tx-filter-count {
    display: none;
  }

  .mv7-tx-ledger {
    border-radius: 12px;
  }

  .mv7-tx-columns {
    display: none;
  }

  .mv7-tx-list {
    min-height: 330px;
    padding: 6px;
  }

  .mv7-tx-row {
    min-height: 68px;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 9px;
    padding: 0 9px;
    margin-bottom: 5px;
    border: 1px solid rgba(255, 255, 255, 0.045);
    border-radius: 9px;
    background: rgba(0, 0, 0, 0.13);
  }

  .mv7-tx-row:last-child {
    margin-bottom: 0;
  }

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

  .mv7-tx-row-copy span {
    font-size: var(--v2-text-micro);
  }

  .mv7-tx-category,
  .mv7-tx-cell-account,
  .mv7-tx-cell-date,
  .mv7-tx-cell-status {
    display: none;
  }

  .mv7-tx-row-amount {
    font-size: var(--v2-text-xs);
  }

  .mv7-tx-ledger-footer {
    min-height: 52px;
  }

  .mv7-tx-inspector {
    position: fixed;
    z-index: 95;
    width: 100%;
    max-height: 88dvh;
    min-height: 0;
    overflow-y: auto;
    border-width: 1px 0 0;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -30px 80px rgba(0, 0, 0, 0.68);
    inset: auto 0 0;
    transform: translateY(105%);
    transition: transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .mv7-tx-inspector.is-open {
    transform: translateY(0);
  }

  .mv7-tx-inspector-empty {
    min-height: 340px;
  }

  .mv7-tx-detail-list > div {
    min-height: 48px;
  }

  .mv7-tx-detail-hero > strong {
    font-size: 22px;
  }

  .mv7-dialog {
    width: 100vw;
    max-width: none;
    max-height: min(88dvh, 700px);
    margin: auto 0 0;
    border-width: 1px 0 0;
    border-radius: 20px 20px 0 0;
  }

  .mv7-dialog[open] {
    animation-name: v2-sheet-in;
  }

  @keyframes v2-sheet-in {
    from {
      opacity: 0;
      transform: translateY(100%);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .mv7-dialog form {
    padding: 20px 16px calc(18px + env(safe-area-inset-bottom));
  }

  .mv7-form-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .mv7-field input,
  .mv7-field select {
    height: 44px;
    font-size: 16px;
  }

  .mv7-toast {
    right: 14px;
    bottom: calc(14px + env(safe-area-inset-bottom));
    left: 14px;
    text-align: center;
  }

  .mv7-accounts-view {
    padding: 21px 14px calc(42px + env(safe-area-inset-bottom));
  }

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

  .mv7-accounts-heading h2 {
    font-size: 27px;
  }

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

  .mv7-money-map,
  .mv7-account-focus {
    border-radius: 13px;
  }

  .mv7-money-map > header {
    min-height: 66px;
    padding: 13px 14px;
  }

  .mv7-money-map-status {
    max-width: 100px;
    text-align: right;
  }

  .mv7-money-map-canvas {
    padding: 14px;
  }

  .mv7-money-source {
    min-height: 116px;
    padding: 18px;
  }

  .mv7-money-source strong {
    font-size: 24px;
  }

  .mv7-money-nodes {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-money-nodes::before {
    position: absolute;
    z-index: -1;
    width: 1px;
    background: linear-gradient(var(--v2-green), rgba(45, 222, 152, 0.05));
    content: '';
    bottom: 14px;
    left: 17px;
    top: -14px;
  }

  .mv7-money-node {
    min-height: 57px;
  }

  .mv7-money-node:hover,
  .mv7-money-node:focus-visible,
  .mv7-money-node.is-selected {
    transform: none;
  }

  .mv7-account-collection {
    margin-top: 23px;
  }

  .mv7-account-collection > header > p {
    display: none;
  }

  .mv7-account-focus {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-account-focus-main {
    padding: 22px 19px 20px;
  }

  .mv7-account-focus-heading {
    grid-template-columns: 40px minmax(0, 1fr);
    margin-bottom: 25px;
  }

  .mv7-account-orb {
    width: 40px;
    height: 40px;
  }

  .mv7-account-focus-heading .mv7-account-share {
    width: fit-content;
    grid-column: 2;
    margin-top: -4px;
  }

  .mv7-account-focus-main > strong {
    font-size: 28px;
  }

  .mv7-account-actions {
    margin-top: 24px;
  }

  .mv7-account-actions .mv7-primary-button span {
    display: inline;
  }

  .mv7-account-focus-insight {
    padding: 20px 19px;
    border-top: 1px solid var(--v2-line);
    border-left: 0;
  }

  .mv7-account-focus-insight > svg {
    height: 115px;
  }

  .mv7-account-deck {
    padding: 0 7px;
  }

  .mv7-account-layer {
    width: calc(100% - (var(--layer-index) * 8px));
    min-height: 68px;
    grid-template-columns: 36px minmax(0, 1fr) auto 18px;
    gap: 10px;
    padding: 10px 12px;
  }

  .mv7-account-layer-ratio {
    display: none;
  }

  .mv7-account-layer-amount {
    font-size: var(--v2-text-micro);
  }
}

@media (max-width: 980px) {
  .mv7-money-map-canvas {
    display: flex;
    min-height: 0;
    flex-direction: column;
    gap: 14px;
    padding: 20px;
  }

  .mv7-money-source,
  .mv7-money-nodes {
    position: relative;
    width: 100%;
    inset: auto;
    transform: none;
  }

  .mv7-money-source {
    min-height: 122px;
  }

  .mv7-money-routes {
    display: none;
  }

  .mv7-money-nodes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .mv7-account-focus {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-account-focus-insight {
    border-top: 1px solid var(--v2-line);
    border-left: 0;
  }

  .mv7-budget-inline-stats > div {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .mv7-budget-lane-main {
    grid-template-columns: 150px minmax(180px, 1fr) 92px;
    gap: 12px;
    padding-inline: 16px;
  }

  .mv7-budget-lane-detail {
    grid-template-columns: minmax(0, 1fr) 170px;
    padding-left: 190px;
  }

  .mv7-future-stage {
    display: grid;
    min-height: 720px;
    grid-template-columns: repeat(3, minmax(110px, 1fr));
  }

  .mv7-goal-selected {
    min-width: 0;
    min-height: 430px;
    grid-column: 1 / -1;
  }

  .mv7-goal-compact {
    min-height: 270px;
  }
}

@media (max-width: 768px) {
  .mv7-money-nodes {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-budgets-view {
    padding: 21px 14px calc(42px + env(safe-area-inset-bottom));
  }

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

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

  .mv7-budgets-heading > div > p:last-child {
    max-width: 255px;
    font-size: var(--v2-text-xs);
  }

  .mv7-budget-field {
    border-radius: 13px;
  }

  .mv7-budget-field-header {
    min-height: 0;
    align-items: stretch;
    flex-direction: column;
    gap: 15px;
    padding: 16px 14px 12px;
  }

  .mv7-budget-inline-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid var(--v2-line);
  }

  .mv7-budget-inline-stats > div {
    gap: 5px;
    padding: 12px 7px 2px;
    border-left: 0;
  }

  .mv7-budget-inline-stats > div + div {
    border-left: 1px solid var(--v2-line);
  }

  .mv7-budget-inline-stats dd {
    overflow: hidden;
    max-width: 100%;
    font-size: var(--v2-text-micro);
    text-overflow: ellipsis;
  }

  .mv7-budget-master-axis {
    gap: 7px;
    padding: 23px 14px 19px;
    font-size: var(--v2-text-micro);
  }

  .mv7-budget-axis-track > b {
    max-width: 86px;
    overflow: hidden;
    font-size: var(--v2-text-micro);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-budget-lane-main,
  .mv7-budget-lane.is-expanded .mv7-budget-lane-main {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 12px;
    padding: 16px 14px 10px;
  }

  .mv7-budget-lane-identity {
    grid-column: 1;
  }

  .mv7-budget-lane-forecast {
    grid-column: 2;
    grid-row: 1;
  }

  .mv7-budget-lane-track {
    height: 82px;
    grid-column: 1 / -1;
  }

  .mv7-budget-lane.is-expanded .mv7-budget-lane-track {
    height: 118px;
  }

  .mv7-budget-lane-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 0 14px 16px;
  }

  .mv7-budget-recent > div {
    grid-template-columns: minmax(0, 1fr) 52px auto;
  }

  .mv7-budget-lane-controls {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 10px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
  }

  .mv7-budget-lane-controls > span,
  .mv7-budget-lane-controls > strong {
    grid-column: 1;
    margin: 0;
  }

  .mv7-budget-lane-controls .mv7-secondary-button {
    grid-column: 2;
    grid-row: 1 / 3;
  }

  .mv7-budget-reserve {
    min-height: 70px;
    grid-template-columns: 36px minmax(0, 1fr);
    padding: 11px 14px;
  }

  .mv7-budget-reserve > i,
  .mv7-budget-reserve > small {
    display: none;
  }

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

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

  .mv7-budget-dialog footer .mv7-primary-button {
    grid-column: 3;
  }

  .mv7-goals-view {
    padding: 21px 14px calc(42px + env(safe-area-inset-bottom));
  }

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

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

  .mv7-goals-heading > div:first-child > p:last-child {
    max-width: 230px;
    font-size: var(--v2-text-xs);
  }

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

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

  .mv7-future-scene {
    min-height: 0;
    border-radius: 13px;
  }

  .mv7-future-scene-header {
    min-height: 116px;
    align-items: flex-start;
    padding: 17px 14px 12px;
  }

  .mv7-future-scene-header h3 {
    max-width: 270px;
    font-size: 24px;
  }

  .mv7-future-scene-header > div > p:last-child {
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 5px;
  }

  .mv7-future-scene-header > div > p:last-child i {
    display: none;
  }

  .mv7-future-scene-header > div > p:last-child span {
    width: 100%;
  }

  .mv7-future-stage {
    min-height: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2px;
    padding: 0 10px;
  }

  .mv7-goal-selected {
    min-height: 500px;
    grid-template-columns: 108px minmax(115px, 1fr);
    gap: 7px;
    padding: 0 6px 30px;
  }

  .mv7-goal-selected-copy {
    align-self: center;
  }

  .mv7-goal-selected-copy h4 {
    margin-bottom: 17px;
    font-size: 15px;
  }

  .mv7-goal-selected-copy > strong {
    font-size: 25px;
  }

  .mv7-goal-selected-copy > b {
    font-size: var(--v2-text-xs);
  }

  .mv7-goal-selected-copy > span {
    font-size: var(--v2-text-micro);
  }

  .mv7-goal-selected .mv7-goal-monolith {
    min-height: 330px;
  }

  .mv7-goal-selected .mv7-goal-monolith-shell {
    width: 74%;
  }

  .mv7-goal-annotation {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-column: 1 / -1;
    gap: 12px;
    padding: 12px 0 0;
    border-top: 1px solid var(--v2-line);
  }

  .mv7-goal-annotation > div::before {
    display: none;
  }

  .mv7-goal-inline-contribute {
    grid-column: 1 / -1;
  }

  .mv7-goal-compact {
    min-width: 0;
    min-height: 250px;
    padding: 18px 3px 28px;
  }

  .mv7-goal-compact .mv7-goal-monolith {
    min-height: 170px;
  }

  .mv7-goal-compact .mv7-goal-monolith-shell {
    width: 68%;
  }

  .mv7-goal-compact > span strong {
    font-size: var(--v2-text-micro);
  }

  .mv7-goal-compact > span b {
    font-size: var(--v2-text-xs);
  }

  .mv7-goal-compact > span small {
    font-size: var(--v2-text-micro);
  }

  .mv7-goal-milestones {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 17px 14px;
  }

  .mv7-goal-milestones > div {
    gap: 10px;
  }

  .mv7-goal-milestones strong {
    font-size: var(--v2-text-xs);
  }

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

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

@media (max-width: 390px) {
  .mv7-topbar-actions .mv7-icon-button:nth-child(2) {
    display: none;
  }

  .mv7-page-identity p {
    max-width: 52vw;
  }

  .mv7-form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    transition-duration: 0.01ms;
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
  }
}

[hidden] {
  display: none;
}

/* Patrimonio V2.1 - composicion fiel al concepto aprobado */
@media (min-width: 769px) {
  .mv7-networth-view {
    padding: 24px clamp(22px, 2.5vw, 42px) 36px;
  }

  .mv7-networth-heading {
    min-height: 54px;
    align-items: flex-start;
    margin-bottom: 8px;
  }

  .mv7-networth-heading h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 480;
    letter-spacing: -0.025em;
  }

  .mv7-networth-heading .mv7-primary-button {
    min-height: 38px;
    border-radius: 8px;
  }

  .mv7-networth-section {
    display: grid;
    overflow: visible;
    min-height: 720px;
    grid-template-columns: minmax(245px, 0.68fr) minmax(540px, 1.7fr);
    grid-template-rows: minmax(550px, auto) 150px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .mv7-networth-section::before {
    display: none;
  }

  .mv7-networth-summary {
    display: block;
    min-width: 0;
    min-height: 0;
    padding: 26px 24px 0 0;
    border: 0;
  }

  .mv7-networth-primary h3 {
    margin: 13px 0 9px;
    font-size: clamp(31px, 3.05vw, 48px);
    white-space: nowrap;
  }

  .mv7-networth-primary > span {
    font-size: var(--v2-text-xs);
  }

  .mv7-networth-totals {
    align-items: center;
    gap: 12px;
    margin-top: 28px;
  }

  .mv7-networth-totals div {
    display: flex;
    align-items: baseline;
    gap: 7px;
  }

  .mv7-networth-totals div + div {
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, 0.15);
  }

  .mv7-networth-totals dt {
    color: #50e2b6;
    font-size: var(--v2-text-micro);
    letter-spacing: 0;
    text-transform: none;
  }

  .mv7-networth-totals div:last-child dt {
    color: #ff786e;
  }

  .mv7-networth-totals dd {
    color: rgba(255, 255, 255, 0.58);
    font-size: var(--v2-text-micro);
    font-weight: 520;
    white-space: nowrap;
  }

  .mv7-networth-cross-section {
    min-width: 0;
    min-height: 550px;
    padding: 42px 166px 30px 24px;
    perspective: 1200px;
  }

  .mv7-networth-cross-section::before {
    position: absolute;
    z-index: -1;
    inset: 22px 135px 22px 5px;
    background:
      linear-gradient(rgba(90, 240, 195, 0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(90, 240, 195, 0.03) 1px, transparent 1px);
    background-size: 48px 48px;
    content: '';
    mask-image: radial-gradient(ellipse, #000 30%, transparent 76%);
    pointer-events: none;
  }

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

  .mv7-networth-layers {
    align-items: flex-start;
  }

  .mv7-networth-layer,
  .mv7-networth-layer.is-selected {
    width: min(94%, 650px);
    margin: 0 0 0 clamp(0px, var(--layer-offset), 24px);
    transition:
      transform 300ms cubic-bezier(0.2, 0.75, 0.25, 1),
      filter 220ms ease;
  }

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

  .mv7-networth-layer.is-selected {
    z-index: 8;
    margin-block: 1px 20px;
    transform: translateX(-10px);
  }

  .mv7-networth-layer-surface,
  .mv7-networth-layer-liability .mv7-networth-layer-surface {
    display: grid;
    width: calc(100% - 38px);
    min-height: 48px;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-right: 38px;
    padding: 9px 18px;
    overflow: visible;
    border: 1px solid color-mix(in srgb, var(--layer-tone) 68%, transparent);
    background:
      linear-gradient(
        100deg,
        color-mix(in srgb, var(--layer-tone) 14%, transparent),
        color-mix(in srgb, var(--layer-tone) 5%, transparent) 72%
      ),
      rgba(6, 11, 10, 0.76);
    box-shadow:
      0 20px 34px rgba(0, 0, 0, 0.28),
      inset 0 1px color-mix(in srgb, var(--layer-tone) 22%, transparent),
      0 0 20px color-mix(in srgb, var(--layer-tone) 8%, transparent);
    clip-path: none;
    transform: none;
  }

  .mv7-networth-layer-surface::before {
    position: absolute;
    top: -12px;
    right: -1px;
    left: -1px;
    height: 12px;
    border-top: 1px solid color-mix(in srgb, var(--layer-tone) 76%, transparent);
    background: linear-gradient(
      90deg,
      color-mix(in srgb, var(--layer-tone) 5%, transparent),
      color-mix(in srgb, var(--layer-tone) 17%, transparent)
    );
    clip-path: polygon(0 100%, 8% 0, 84% 0, 100% 100%);
    content: '';
  }

  .mv7-networth-layer-surface::after {
    position: absolute;
    top: -1px;
    right: -39px;
    bottom: -1px;
    left: auto;
    width: 38px;
    height: auto;
    border-right: 1px solid color-mix(in srgb, var(--layer-tone) 70%, transparent);
    background: color-mix(in srgb, var(--layer-tone) 11%, transparent);
    box-shadow:
      inset 1px 0 color-mix(in srgb, var(--layer-tone) 52%, transparent),
      4px 0 18px color-mix(in srgb, var(--layer-tone) 10%, transparent);
    clip-path: polygon(0 0, 100% 22%, 100% 78%, 0 100%);
    content: '';
    opacity: 1;
  }

  .mv7-networth-layer.is-selected .mv7-networth-layer-surface {
    min-height: 112px;
    grid-template-rows: auto auto;
    padding: 18px 22px;
    background:
      linear-gradient(
        105deg,
        color-mix(in srgb, var(--layer-tone) 22%, transparent),
        color-mix(in srgb, var(--layer-tone) 7%, transparent) 74%
      ),
      rgba(7, 15, 13, 0.86);
  }

  .mv7-networth-layer-icon {
    width: 30px;
    height: 30px;
    padding: 6px;
    border: 1px solid color-mix(in srgb, var(--layer-tone) 45%, transparent);
    border-radius: 9px;
    fill: none;
    stroke: var(--layer-tone);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
  }

  .mv7-networth-layer.is-selected .mv7-networth-layer-icon {
    width: 46px;
    height: 46px;
    padding: 9px;
    border-radius: 12px;
  }

  .mv7-networth-layer-copy {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 8px;
  }

  .mv7-networth-layer-copy strong {
    font-size: 13px;
    white-space: nowrap;
  }

  .mv7-networth-layer-copy span {
    overflow: hidden;
    color: rgba(255, 255, 255, 0.8);
    font-size: var(--v2-text-xs);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-networth-layer-copy span::before {
    margin-right: 8px;
    content: '\2022';
    color: rgba(255, 255, 255, 0.36);
  }

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

  .mv7-networth-layer-detail {
    display: flex;
    width: auto;
    min-height: 0;
    grid-column: 2 / 4;
    align-items: center;
    justify-content: flex-start;
    gap: 18px;
    margin: -2px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .mv7-networth-layer-detail > span {
    display: flex;
    align-items: center;
    gap: 9px;
  }

  .mv7-networth-layer-detail small,
  .mv7-networth-layer-detail strong,
  .mv7-networth-layer-detail em {
    font-size: var(--v2-text-micro);
    font-style: normal;
    white-space: nowrap;
  }

  .mv7-networth-layer-detail small {
    color: rgba(255, 255, 255, 0.6);
    letter-spacing: 0;
    text-transform: none;
  }

  .mv7-networth-layer-detail strong,
  .mv7-networth-layer-detail em {
    color: var(--layer-tone);
    font-weight: 550;
  }

  .mv7-networth-layer-detail strong::before,
  .mv7-networth-layer-detail em::before {
    margin-right: 9px;
    content: '\2022';
    color: rgba(255, 255, 255, 0.32);
  }

  .mv7-networth-edit {
    margin-left: auto;
    font-size: var(--v2-text-micro);
  }

  .mv7-networth-zero {
    grid-template-columns: auto 8px minmax(0, 1fr);
    gap: 9px;
    margin: 22px -72px 20px -295px;
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--v2-text-xs);
    font-weight: 500;
    letter-spacing: 0;
  }

  .mv7-networth-zero i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #f3f5f4;
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.65);
  }

  .mv7-networth-zero::after {
    position: absolute;
    z-index: -1;
    right: 0;
    left: 51px;
    height: 1px;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.85), rgba(90, 240, 195, 0.2));
    content: '';
  }

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

  .mv7-networth-layer-liability,
  .mv7-networth-layer-liability.is-selected {
    margin-left: clamp(0px, var(--layer-offset), 20px);
  }

  .mv7-networth-layer-liability .mv7-networth-layer-surface::before {
    top: auto;
    bottom: -12px;
    border-top: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--layer-tone) 70%, transparent);
    clip-path: polygon(0 0, 100% 0, 84% 100%, 8% 100%);
  }

  .mv7-networth-measure {
    top: 35px;
    right: 2px;
    bottom: 36px;
    width: 142px;
    gap: 18px;
  }

  .mv7-networth-measure > i {
    background: #42e8b3;
    box-shadow: 0 0 14px rgba(66, 232, 179, 0.75);
  }

  .mv7-networth-measure > i::before,
  .mv7-networth-measure > i::after {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #42e8b3;
    box-shadow: 0 0 12px rgba(66, 232, 179, 0.75);
    transform: translate(-4px, -4px);
  }

  .mv7-networth-measure > i::after {
    transform: translate(-4px, 4px);
  }

  .mv7-networth-measure span {
    color: #48e8b5;
    font-size: var(--v2-text-xs);
  }

  .mv7-networth-measure strong {
    color: #48e8b5;
    font-size: 17px;
  }

  .mv7-networth-ratio {
    position: absolute;
    z-index: 10;
    right: 10px;
    bottom: 94px;
    width: 210px;
    min-height: 72px;
    justify-content: center;
    padding: 13px 16px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
    background: rgba(13, 16, 15, 0.9);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(18px);
  }

  .mv7-networth-ratio > span,
  .mv7-networth-ratio small {
    display: none;
  }

  .mv7-networth-ratio strong {
    margin: 0;
    font-size: var(--v2-text-xs);
    font-weight: 450;
    line-height: 1.6;
  }

  .mv7-networth-footer {
    display: block;
    grid-column: 1 / -1;
    min-height: 150px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
  }

  .mv7-networth-history {
    padding: 16px 4px 0;
  }

  .mv7-networth-history svg {
    height: 92px;
    margin-top: 5px;
  }
}

@media (min-width: 769px) and (max-width: 1120px) {
  .mv7-networth-section {
    grid-template-columns: 235px minmax(460px, 1fr);
  }

  .mv7-networth-cross-section {
    padding-right: 135px;
    padding-left: 12px;
  }

  .mv7-networth-primary h3 {
    font-size: 32px;
  }

  .mv7-networth-zero {
    margin-left: -238px;
  }

  .mv7-networth-measure {
    width: 116px;
  }

  .mv7-networth-measure strong {
    font-size: 12px;
  }
}

@media (max-width: 768px) {
  .mv7-networth-heading h2 {
    font-size: 27px;
  }

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

  .mv7-networth-heading .mv7-primary-button svg {
    width: 15px;
    height: 15px;
  }

  .mv7-networth-section {
    overflow: hidden;
  }

  .mv7-networth-layer-surface {
    grid-template-columns: 27px minmax(0, 1fr) auto;
  }

  .mv7-networth-layer-icon {
    width: 25px;
    height: 25px;
    padding: 5px;
    fill: none;
    stroke: var(--layer-tone);
    stroke-width: 1.6;
  }

  .mv7-networth-layer-detail {
    grid-column: 2 / 4;
  }

  .mv7-networth-layer-detail em {
    display: none;
  }

  .mv7-networth-ratio {
    border-right: 0;
  }
}

/* Configuración V2 — respaldo y restauración de datos */
.mv7-community-view { min-height: calc(100vh - var(--v2-topbar-height)); }
.mv7-community-shell { display:grid; grid-template-columns:minmax(580px,790px) minmax(270px,360px); max-width:1180px; min-height:calc(100vh - var(--v2-topbar-height)); margin:0 auto; }
.mv7-community-feed { border-inline:1px solid rgba(255,255,255,.075); }
.mv7-community-tabs { position:sticky; top:0; z-index:8; display:flex; height:58px; align-items:stretch; border-bottom:1px solid var(--v2-line); background:var(--v2-surface); box-shadow:0 8px 24px -22px rgba(0,0,0,.8); }
.mv7-community-tabs button { position:relative; min-width:110px; padding:0 18px; background:transparent; color:var(--v2-muted); cursor:pointer; font-weight:550; }
.mv7-community-tabs button.is-active { color:var(--v2-text); }.mv7-community-tabs button.is-active::after { position:absolute; right:25px; bottom:0; left:25px; height:2px; border-radius:3px; background:var(--v2-green); content:''; }
.mv7-community-composer { display:grid; grid-template-columns:44px 1fr; gap:14px; padding:18px 20px 13px; border-bottom:1px solid var(--v2-line); }
.mv7-community-avatar { display:grid; width:38px; height:38px; flex:0 0 38px; place-items:center; border:1px solid rgba(255,255,255,.1); border-radius:50%; background:linear-gradient(145deg,#8f9692,#3d423f); color:white; font-size:var(--v2-text-sm); font-weight:650; overflow:hidden; }.mv7-community-avatar img{width:100%;height:100%;object-fit:cover}.mv7-community-avatar.is-purple{background:linear-gradient(145deg,#9b67dc,#443064)}.mv7-community-avatar.is-blue{background:linear-gradient(145deg,#5d91ef,#27487d)}.mv7-community-avatar.is-cyan{background:linear-gradient(145deg,#42b9d2,#1f6675)}.mv7-community-avatar.is-green{background:linear-gradient(145deg,#4fc98a,#1f5c3f)}.mv7-community-avatar.is-orange{background:linear-gradient(145deg,#ef9d5d,#7d4a27)}.mv7-community-avatar.is-red{background:linear-gradient(145deg,#e56b6b,#7d2727)}.mv7-community-avatar.is-teal{background:linear-gradient(145deg,#4ec3c0,#1f5c5a)}
.mv7-community-compose-image-preview{position:relative;max-width:220px;margin-top:8px;border-radius:12px;overflow:hidden}.mv7-community-compose-image-preview img{display:block;width:100%;max-height:200px;object-fit:cover}.mv7-community-compose-image-preview button{position:absolute;top:6px;right:6px;display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}.mv7-community-compose-image-preview button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.mv7-community-compose-actions #community-compose-image-btn.is-active{border-color:rgba(45,222,152,.5);color:var(--v2-green-bright)}
.mv7-community-compose-body textarea { display:block; width:100%; min-height:58px; padding:3px 0; resize:none; border:0; outline:0; background:transparent; color:var(--v2-text); font:500 15px/1.5 var(--v2-font); }.mv7-community-compose-body textarea::placeholder{color:#8e9691}
.mv7-community-compose-footer,.mv7-community-compose-actions{display:flex;align-items:center}.mv7-community-compose-footer{justify-content:space-between;gap:14px}.mv7-community-private{display:inline-flex;align-items:center;gap:7px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-community-private svg{width:15px;height:15px;fill:none;stroke:var(--v2-green);stroke-width:1.7}.mv7-community-compose-actions{gap:7px}.mv7-community-compose-actions>button:not(.mv7-primary-button){display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--v2-line);border-radius:10px;background:transparent;color:var(--v2-muted);cursor:pointer}.mv7-community-compose-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6}.mv7-community-compose-actions .mv7-primary-button{min-height:35px;padding:0 18px}.mv7-community-compose-actions .mv7-primary-button:disabled{opacity:.4;cursor:not-allowed}
.mv7-community-post { display:grid; grid-template-columns:38px 1fr; gap:13px; padding:15px 20px 12px; border-bottom:1px solid var(--v2-line); transition:background .15s; }.mv7-community-post:hover{background:rgba(255,255,255,.012)}.mv7-community-post-body{min-width:0}.mv7-community-post-body>header{display:flex;align-items:center;gap:7px;min-height:21px}.mv7-community-post-body>header strong{font-size:12px}.mv7-community-post-body>header span{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-community-post-body>header em{padding:3px 8px;border-radius:999px;background:var(--v2-green-soft);color:var(--v2-green-bright);font-size:var(--v2-text-micro);font-style:normal}.mv7-community-post-body>header button{margin-left:auto;background:transparent;color:var(--v2-muted);cursor:pointer}.mv7-community-post-body>p{margin:8px 0 10px;color:#e8ece9;font-size:13px;line-height:1.48}
/* Sin esto la imagen de un post render­eaba a su tamaño nativo en px (una
   foto de celular de 4000x3000 rompía el ancho de toda la publicación y
   el feed) — nunca tuvo reglas propias, a diferencia del preview del
   composer (mv7-community-compose-image-preview) que sí las tiene. */
.mv7-community-post-image{display:block;width:100%;max-height:420px;margin:2px 0 10px;border:1px solid var(--v2-line);border-radius:14px;object-fit:cover}
.mv7-community-progress-card{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--v2-line);border-radius:12px;background:rgba(255,255,255,.025)}.mv7-community-progress-card>strong{display:grid;width:44px;height:44px;place-items:center;border-radius:50%;background:radial-gradient(circle at center,#111 58%,transparent 60%),conic-gradient(var(--v2-green) 74%,rgba(255,255,255,.1) 0);font-size:var(--v2-text-sm)}.mv7-community-progress-card>div{display:grid;flex:1;gap:4px}.mv7-community-progress-card span{font-size:var(--v2-text-xs)}.mv7-community-progress-card small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-community-progress-card i{height:5px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.1)}.mv7-community-progress-card b{display:block;width:74%;height:100%;background:var(--v2-green)}
.mv7-community-post-actions{display:flex;justify-content:space-between;max-width:430px;margin-top:8px}.mv7-community-post-actions button{display:flex;align-items:center;gap:7px;padding:5px;background:transparent;color:var(--v2-muted);cursor:pointer;font-size:var(--v2-text-xs)}.mv7-community-post-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.mv7-community-post-actions button:hover,.mv7-community-post-actions button.is-active{color:var(--v2-green-bright)}.mv7-community-post-actions button.is-active svg{fill:rgba(45,222,152,.18)}
.mv7-community-post-actions button{min-width:38px;min-height:34px;justify-content:center;border-radius:9px}.mv7-community-post-body>header button{display:grid;min-width:34px;min-height:34px;place-items:center;margin-top:-7px;margin-bottom:-7px;border-radius:9px}.mv7-community-reply button{min-height:30px;padding:6px 0}
.mv7-community-poll{display:grid;gap:5px}.mv7-community-poll>button{position:relative;display:flex;overflow:hidden;justify-content:space-between;min-height:30px;align-items:center;padding:0 10px;border-radius:7px;background:rgba(255,255,255,.04);color:var(--v2-text);cursor:pointer;text-align:left}.mv7-community-poll button span,.mv7-community-poll button b{position:relative;z-index:2;font-size:var(--v2-text-xs)}.mv7-community-poll button i{position:absolute;inset:0 auto 0 0;background:rgba(255,255,255,.1)}.mv7-community-poll .poll-62{width:62%}.mv7-community-poll .poll-38{width:38%}.mv7-community-poll>small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-community-poll.has-voted button i{background:rgba(45,222,152,.13)}
.mv7-community-reply{display:flex;gap:9px;margin:10px 0 0 3px;padding:10px 0 0 22px;border-top:1px solid rgba(255,255,255,.045)}.mv7-community-reply .mv7-community-avatar{width:28px;height:28px;flex-basis:28px;font-size:var(--v2-text-micro)}.mv7-community-reply strong{font-size:var(--v2-text-xs)}.mv7-community-reply strong small{color:var(--v2-muted);font-weight:400}.mv7-community-reply p{margin:4px 0;color:#dfe4e1;font-size:var(--v2-text-xs)}.mv7-community-reply button{padding:0;background:transparent;color:var(--v2-green-bright);cursor:pointer;font-size:var(--v2-text-xs)}.mv7-community-check{display:inline-grid;width:16px;height:16px;place-items:center;border-radius:50%;background:var(--v2-green);color:#06120d;font-size:var(--v2-text-xs);font-style:normal}
.mv7-community-rail{position:sticky;top:var(--v2-topbar-height);align-self:start;display:grid;gap:15px;padding:16px 0 24px 24px}.mv7-community-search{display:flex;align-items:center;gap:9px;height:42px;padding:0 13px;border:1px solid var(--v2-line);border-radius:12px;background:rgba(255,255,255,.025)}.mv7-community-search svg{width:15px;height:15px;fill:none;stroke:var(--v2-muted);stroke-width:1.6}.mv7-community-search input{width:100%;border:0;outline:0;background:transparent;color:var(--v2-text);font-size:var(--v2-text-sm)}.mv7-community-rail-module{padding:17px;border-radius:15px;background:rgba(255,255,255,.025)}.mv7-community-rail-module h3{margin:0 0 13px;font-size:14px}.mv7-community-rail-module>a{display:flex;gap:10px;align-items:center;padding:10px 0;color:inherit}.mv7-community-rail-module>a i{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(45,222,152,.25);border-radius:50%;color:var(--v2-green);font-style:normal}.mv7-community-rail-module>a span{display:flex;flex:1;justify-content:space-between;gap:10px}.mv7-community-rail-module>a strong{font-size:var(--v2-text-xs)}.mv7-community-rail-module>a small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-community-person{display:flex;align-items:center;gap:10px;padding:8px 0}.mv7-community-person p{display:grid;flex:1;gap:3px;margin:0}.mv7-community-person strong{font-size:var(--v2-text-xs)}.mv7-community-person small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-community-person button{padding:7px 14px;border:1px solid rgba(45,222,152,.35);border-radius:999px;background:transparent;color:var(--v2-text);cursor:pointer;font-size:var(--v2-text-xs)}.mv7-community-person button.is-following{background:var(--v2-green-soft);color:var(--v2-green-bright)}.mv7-community-rail-privacy{display:flex;align-items:center;gap:9px;margin:0;padding:0 12px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-community-rail-privacy svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.5}.mv7-community-empty{padding:60px 20px;color:var(--v2-muted);text-align:center}
#community-trending-list{display:grid}.mv7-community-rail-module #community-trending-list>a{display:grid;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.055);color:inherit;text-decoration:none}.mv7-community-rail-module #community-trending-list>a:last-child{border-bottom:0}.mv7-community-rail-module #community-trending-list>a i{display:grid;width:25px;height:25px;place-items:center;border:1px solid rgba(45,222,152,.22);border-radius:50%;color:var(--v2-green);font-style:normal}.mv7-community-rail-module #community-trending-list>a span{display:grid;min-width:0;gap:3px}.mv7-community-rail-module #community-trending-list>a strong{overflow:hidden;font-size:var(--v2-text-xs);text-overflow:ellipsis;white-space:nowrap}.mv7-community-rail-module #community-trending-list>a small{color:var(--v2-muted);font-size:var(--v2-text-xs)}
@media(max-width:1100px){.mv7-community-shell{grid-template-columns:minmax(0,760px)}.mv7-community-rail{display:none}}
@media(max-width:768px){.mv7-community-shell{display:block}.mv7-community-feed{border:0}.mv7-community-tabs{top:var(--v2-topbar-height);overflow-x:auto}.mv7-community-tabs button{min-width:95px}.mv7-community-composer,.mv7-community-post{padding-inline:14px}.mv7-community-private{font-size:0;width:18px}.mv7-community-private svg{width:17px;height:17px}.mv7-community-progress-card>strong{width:38px;height:38px}.mv7-community-post-actions{max-width:280px}}

.mv7-settings-view {
  --mv7-settings-sticky-top: 18px;
  --mv7-settings-sticky-bottom: 44px;
  width: 100%;
  max-width: 1500px;
  padding: 26px clamp(20px, 2.2vw, 36px) 44px;
  margin: 0 auto;
}

.mv7-settings-panel {
  padding: 20px 22px 24px;
}

.mv7-settings-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.mv7-settings-panel-header h3 {
  margin: 6px 0 0;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.03em;
}

.mv7-settings-panel-header p {
  margin: 8px 0 0;
  max-width: 52ch;
  color: var(--v2-muted);
  font-size: 12px;
  line-height: 1.5;
}

.mv7-settings-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 0;
  padding: 16px 4px 0;
  border-top: 1px solid var(--v2-line);
}

.mv7-settings-summary dt {
  margin: 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  letter-spacing: 0;
}

.mv7-settings-summary dd {
  margin: 4px 0 0;
  color: var(--v2-text);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0;
}

.mv7-settings-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
}

.mv7-settings-file-label {
  display: inline-flex;
}

.mv7-category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.mv7-category-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 8px 10px;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-text);
  cursor: pointer;
  font-size: 12px;
  font-weight: 550;
  transition:
    border-color 140ms ease,
    background 140ms ease;
}

.mv7-category-chip:hover {
  border-color: var(--v2-line-strong);
  background: rgba(255, 255, 255, 0.055);
}

.mv7-category-chip-dot {
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: var(--chip-color, var(--v2-muted));
}

.mv7-category-empty {
  margin: 18px 0 0;
  color: var(--v2-muted);
  font-size: 12px;
}

.mv7-color-picker {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.mv7-color-swatch {
  width: 100%;
  aspect-ratio: 1;
  border: 2px solid transparent;
  border-radius: 10px;
  background: var(--swatch-color, var(--v2-muted));
  cursor: pointer;
  transition: transform 120ms ease;
}

.mv7-color-swatch:hover {
  transform: scale(1.08);
}

.mv7-color-swatch.is-selected {
  border-color: var(--v2-text);
  box-shadow: 0 0 0 2px #0b0e0c, 0 0 0 3px var(--swatch-color, var(--v2-muted));
}

.mv7-settings-hint {
  margin: 14px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  line-height: 1.5;
}

/* Settings Hub — navegación interna y paneles Apple Glass */
.mv7-settings-hub { display: grid; grid-template-columns: 228px minmax(480px, 1fr) 286px; gap: 16px; align-items: start; }
.mv7-settings-nav, .mv7-settings-context-card, .mv7-settings-card {
  border: 1px solid rgba(255,255,255,.105); border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,255,255,.045), transparent 42%), linear-gradient(150deg, rgba(24,29,26,.88), rgba(9,12,11,.91));
  box-shadow: inset 0 1px rgba(255,255,255,.055), inset 0 -1px rgba(255,255,255,.015), 0 22px 60px rgba(0,0,0,.22);
  backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px);
}
.mv7-settings-nav { position: sticky; top: var(--mv7-settings-sticky-top); display: flex; flex-direction: column; gap: 5px; min-height: 730px; padding: 14px; }
.mv7-settings-search { display: flex; align-items: center; gap: 9px; min-height: 39px; padding: 0 12px; border: 1px solid var(--v2-line); border-radius: 11px; background: rgba(0,0,0,.16); }
.mv7-settings-search svg { width: 14px; height: 14px; fill: none; stroke: var(--v2-muted); stroke-width: 1.7; }
.mv7-settings-search input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--v2-text); font-size: 12px; }
.mv7-settings-nav-item { display: flex; align-items: center; gap: 11px; min-height: 44px; padding: 0 12px; border-radius: 11px; background: transparent; color: #c6ccc8; cursor: pointer; text-align: left; }
.mv7-settings-nav-item svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.mv7-settings-nav-item:hover { background: rgba(255,255,255,.045); }
.mv7-settings-nav-item.is-active { background: linear-gradient(90deg, rgba(45,222,152,.15), rgba(45,222,152,.055)); color: var(--v2-green-bright); }
.mv7-settings-preview-status { display: grid; grid-template-columns:auto 1fr auto; gap: 10px; align-items:start; margin-top: auto; padding: 13px; border: 1px solid var(--v2-line); border-radius: 12px; background: linear-gradient(145deg,rgba(45,222,152,.045),rgba(255,255,255,.018)); }
.mv7-settings-preview-status i { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--v2-green); box-shadow: 0 0 12px rgba(45,222,152,.5); }
.mv7-settings-preview-status div { display: grid; gap: 5px; }
.mv7-settings-preview-status strong { font-size: var(--v2-text-sm); }.mv7-settings-preview-status small { color: var(--v2-muted); font-size: var(--v2-text-xs); line-height: 1.45; }
.mv7-settings-preview-eye { display:grid; width:27px; height:27px; place-items:center; border:1px solid rgba(255,255,255,.09); border-radius:9px; color:var(--v2-muted); }
.mv7-settings-preview-eye svg { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; }
.mv7-settings-stage { min-width: 0; }.mv7-settings-tab { display: grid; gap: 14px; }.mv7-settings-tab[hidden] { display: none; }
.mv7-settings-title { margin: 1px 2px 4px; }.mv7-settings-title h3 { margin: 0; font-size: 22px; font-weight: 560; letter-spacing: -.04em; }.mv7-settings-title p { margin: 5px 0 0; color: var(--v2-muted); font-size: var(--v2-text-sm); }
.mv7-settings-title-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.mv7-settings-card { padding: 18px; }.mv7-settings-card h4, .mv7-settings-context-card h4 { margin: 0 0 12px; font-size: 15px; font-weight: 580; }.mv7-settings-card > p { margin: -5px 0 12px; color: var(--v2-muted); font-size: var(--v2-text-sm); line-height: 1.5; }
.mv7-settings-row { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.065); }.mv7-settings-row:last-child { border-bottom: 0; }.mv7-settings-row > span { display: grid; flex: 1; gap: 4px; font-size: 12px; }.mv7-settings-row > svg { width: 18px; height: 18px; flex: 0 0 18px; fill: none; stroke: var(--v2-muted); stroke-width: 1.6; }.mv7-settings-row small, .mv7-device-row small { color: var(--v2-muted); font-size: var(--v2-text-xs); font-weight: 400; }.mv7-settings-row select, .mv7-settings-fields select, .mv7-settings-fields input { min-height: 38px; padding: 0 11px; border: 1px solid var(--v2-line); border-radius: 10px; outline: 0; background: rgba(255,255,255,.025); color: var(--v2-text); font-size: var(--v2-text-sm); }.mv7-settings-row select option, .mv7-settings-fields select option { background: #101311; }
.mv7-switch { width: 40px; height: 23px; appearance: none; border-radius: 999px; background: rgba(255,255,255,.12); cursor: pointer; transition: .2s; }.mv7-switch::after { display: block; width: 19px; height: 19px; margin: 2px; border-radius: 50%; background: #a6ada9; content: ''; transition: .2s; }.mv7-switch:checked { background: var(--v2-green); }.mv7-switch:checked::after { transform: translateX(17px); background: #fff; }
.mv7-settings-row-slider { flex-wrap: wrap; }.mv7-settings-row input[type="range"] { width: 140px; max-width: 100%; accent-color: var(--v2-green); cursor: pointer; }
.mv7-profile-card { display: grid; grid-template-columns: 135px 1fr; gap: 16px; align-items: start; }.mv7-settings-avatar { display: grid; width: 104px; height: 104px; place-items: center; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: linear-gradient(145deg,#aeb6b1,#3e4541); color: white; font-size: 34px; }.mv7-settings-avatar.is-small { width: 52px; height: 52px; font-size: 18px; }.mv7-profile-card .mv7-text-action { grid-column: 1; }.mv7-settings-fields { display: grid; grid-column: 2; grid-row: 1 / span 2; grid-template-columns: 1fr 1fr; gap: 13px; }.mv7-settings-fields label { display: grid; gap: 6px; color: var(--v2-muted); font-size: var(--v2-text-xs); }.mv7-settings-save { justify-self: end; margin-top: 3px; }
.mv7-text-action { border: 0; background: transparent; color: var(--v2-green-bright); cursor: pointer; font-size: var(--v2-text-sm); }
.mv7-settings-view .mv7-text-action{min-height:34px;padding-block:7px}.mv7-settings-view select{min-height:38px}.mv7-settings-view button:focus-visible,.mv7-settings-view input:focus-visible,.mv7-settings-view select:focus-visible{outline:2px solid var(--v2-green-bright);outline-offset:2px}.mv7-settings-nav-item:focus-visible{outline-offset:-3px}
.mv7-settings-fields label.is-disabled { opacity: .5; }
.mv7-whatsapp-card .mv7-whatsapp-step { display: flex; flex-direction: column; gap: 12px; }
.mv7-whatsapp-card .mv7-whatsapp-step[hidden] { display: none; }
.mv7-whatsapp-card .mv7-whatsapp-step + .mv7-whatsapp-step { margin-top: 12px; }
.mv7-whatsapp-card .mv7-settings-fields { grid-column: auto; grid-row: auto; grid-template-columns: 1fr; }
.mv7-whatsapp-step-actions { display: flex; align-items: center; gap: 14px; }
.mv7-whatsapp-card .mv7-settings-row { padding: 12px 0 0; min-height: 0; border-bottom: 0; }
.mv7-whatsapp-card .mv7-settings-hint.is-error { color: #ff9b9b; }
.mv7-whatsapp-quick-link:hover, .mv7-whatsapp-quick-link:focus-visible { color: #25d366; }
.mv7-settings-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.mv7-theme-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.mv7-theme-grid button {
  position: relative;
  display: grid;
  min-width: 0;
  gap: 11px;
  padding: 10px;
  border: 1px solid var(--v2-line);
  border-radius: 8px;
  background: rgba(255,255,255,.022);
  color: var(--v2-text);
  cursor: pointer;
  text-align: left;
  transition: border-color .18s ease, background-color .18s ease, transform .18s ease;
}
.mv7-theme-grid button:hover {
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.038);
  transform: translateY(-1px);
}
.mv7-theme-grid button.is-selected {
  border-color: var(--v2-green);
  background: color-mix(in srgb, var(--v2-green) 5%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--v2-green) 16%, transparent);
}
.mv7-theme-preview {
  --preview-bg: #080b09;
  --preview-rail: #040605;
  --preview-surface: #111713;
  --preview-surface-strong: #19221d;
  --preview-line: rgba(255,255,255,.1);
  --preview-ink: rgba(228,239,232,.64);
  --preview-accent: #2dde98;
  --preview-accent-soft: rgba(45,222,152,.18);
  display: grid;
  grid-template-columns: 27% minmax(0, 1fr);
  width: 100%;
  min-width: 0;
  height: 118px;
  overflow: hidden;
  box-sizing: border-box;
  border: 1px solid var(--preview-line);
  border-radius: 7px;
  background: var(--preview-bg);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
}
.mv7-theme-preview.is-system {
  --preview-bg: #edf1ef;
  --preview-rail: #101512;
  --preview-surface: #fff;
  --preview-surface-strong: #dce4e0;
  --preview-line: rgba(17,29,23,.15);
  --preview-ink: rgba(29,49,39,.62);
  --preview-accent: #3788f5;
  --preview-accent-soft: rgba(55,136,245,.16);
}
.mv7-theme-preview.is-contrast {
  --preview-bg: #000;
  --preview-rail: #000;
  --preview-surface: #030303;
  --preview-surface-strong: #090909;
  --preview-line: #fff;
  --preview-ink: #fff;
  --preview-accent: #45f2a8;
  --preview-accent-soft: rgba(69,242,168,.24);
  border-width: 2px;
  box-shadow: none;
}
.mv7-theme-preview-rail {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 11px 8px;
  border-right: 1px solid var(--preview-line);
  background: var(--preview-rail);
}
.mv7-theme-preview-rail i {
  display: block;
  width: 72%;
  height: 3px;
  border-radius: 2px;
  background: var(--preview-ink);
  opacity: .42;
}
.mv7-theme-preview-rail i:first-child {
  width: 11px;
  height: 11px;
  margin-bottom: 5px;
  border-radius: 3px;
  background: var(--preview-accent);
  opacity: 1;
  box-shadow: 0 0 10px var(--preview-accent-soft);
}
.mv7-theme-preview-rail i:nth-child(2) {
  width: 100%;
  height: 6px;
  background: var(--preview-accent-soft);
  box-shadow: inset 2px 0 var(--preview-accent);
  opacity: 1;
}
.mv7-theme-preview-canvas {
  display: grid;
  grid-template-rows: 14px 24px minmax(0,1fr);
  gap: 8px;
  min-width: 0;
  padding: 10px;
  background: var(--preview-bg);
}
.mv7-theme-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mv7-theme-preview-toolbar i:first-child {
  width: 38%;
  height: 4px;
  border-radius: 2px;
  background: var(--preview-ink);
}
.mv7-theme-preview-toolbar i:last-child {
  width: 10px;
  height: 10px;
  border: 2px solid var(--preview-accent);
  border-radius: 50%;
  background: var(--preview-accent-soft);
}
.mv7-theme-preview-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 6px;
}
.mv7-theme-preview-stats i {
  display: block;
  border: 1px solid var(--preview-line);
  border-radius: 4px;
  background: linear-gradient(135deg, var(--preview-surface), var(--preview-surface-strong));
}
.mv7-theme-preview-stats i:first-child {
  box-shadow: inset 2px 0 var(--preview-accent);
}
.mv7-theme-preview-chart {
  display: flex;
  align-items: end;
  justify-content: space-around;
  gap: 4px;
  min-height: 0;
  padding: 7px 6px 4px;
  border: 1px solid var(--preview-line);
  border-radius: 4px;
  background: repeating-linear-gradient(to bottom, transparent 0 9px, var(--preview-line) 9px 10px), var(--preview-surface);
}
.mv7-theme-preview-chart i {
  display: block;
  width: 8%;
  min-width: 3px;
  border-radius: 2px 2px 0 0;
  background: var(--preview-accent);
  box-shadow: 0 0 7px var(--preview-accent-soft);
}
.mv7-theme-preview-chart i:nth-child(1) { height: 36%; }
.mv7-theme-preview-chart i:nth-child(2) { height: 68%; }
.mv7-theme-preview-chart i:nth-child(3) { height: 48%; }
.mv7-theme-preview-chart i:nth-child(4) { height: 82%; }
.mv7-theme-preview-chart i:nth-child(5) { height: 62%; }
.mv7-theme-option-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.mv7-theme-option-copy strong {
  font-size: var(--v2-text-sm);
  font-weight: 650;
  line-height: 1.25;
}
.mv7-theme-option-copy small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.35;
}
.mv7-theme-option-state {
  position: absolute;
  top: 16px;
  right: 16px;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  background: rgba(5,9,7,.82);
  color: white;
  opacity: 0;
  transform: scale(.8);
  transition: opacity .18s ease, transform .18s ease;
}
.mv7-theme-option-state svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
}
.mv7-theme-grid button.is-selected .mv7-theme-option-state {
  border-color: var(--v2-green);
  background: var(--v2-green);
  color: #06110c;
  opacity: 1;
  transform: scale(1);
}
.mv7-accent-swatches { display: flex; gap: 15px; margin: 10px 0 23px; }.mv7-accent-swatches button { width: 35px; height: 35px; border: 3px solid transparent; border-radius: 50%; background: var(--v2-green); cursor: pointer; }.mv7-accent-swatches button:nth-child(2){background:#3788f5}.mv7-accent-swatches button:nth-child(3){background:#994cef}.mv7-accent-swatches button:nth-child(4){background:#f5a30b}.mv7-accent-swatches button:nth-child(5){background:#fa5e5e}.mv7-accent-swatches button.is-selected{box-shadow:0 0 0 2px #0b0e0c,0 0 0 4px var(--v2-green)}
.mv7-settings-segments { display: grid; grid-template-columns: repeat(3,1fr); padding: 3px; border: 1px solid var(--v2-line); border-radius: 11px; background: rgba(0,0,0,.14); }.mv7-settings-segments button { min-height: 34px; border-radius: 8px; background: transparent; color: var(--v2-muted); cursor: pointer; }.mv7-settings-segments button.is-selected { background: rgba(45,222,152,.12); color: var(--v2-green-bright); }
.mv7-settings-segments button:disabled { opacity: .5; cursor: not-allowed; }
.mv7-category-list-table { display: grid; margin-top: 13px; }.mv7-category-list-table .mv7-category-chip { width: 100%; min-height: 48px; border-radius: 11px; }.mv7-settings-search-wide { width: 100%; }
.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='categories']:not([hidden])) { grid-template-columns:228px minmax(0,1fr); }
.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='categories']:not([hidden])) > .mv7-settings-context { display:none; }
.mv7-category-toolbar { display:grid; grid-template-columns:minmax(230px,1fr) auto auto; gap:14px; align-items:center; }
.mv7-category-filters { display:grid; grid-template-columns:repeat(3,86px); padding:3px; border:1px solid var(--v2-line); border-radius:11px; background:rgba(255,255,255,.018); }
.mv7-category-filters button { min-height:34px; border-radius:8px; background:transparent; color:var(--v2-muted); }
.mv7-category-filters button.is-selected { background:rgba(45,222,152,.1); color:var(--v2-green-bright); }
.mv7-category-toolbar>.mv7-primary-button { min-height:41px; white-space:nowrap; }
.mv7-category-workspace { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; }
.mv7-category-table-card { padding:12px; }
.mv7-category-table-head { display:grid; grid-template-columns:minmax(190px,1.2fr) minmax(120px,.7fr) minmax(110px,.55fr) 24px; gap:14px; padding:8px 13px 11px; color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-category-list-table { gap:7px; margin:0; }
.mv7-category-list-table .mv7-category-chip { display:grid; grid-template-columns:42px minmax(130px,1.2fr) minmax(110px,.7fr) minmax(100px,.55fr) 24px; gap:14px; align-items:center; min-height:64px; padding:7px 13px; border-radius:12px; text-align:left; }
.mv7-category-list-table .mv7-category-chip:hover { border-color:color-mix(in srgb,var(--chip-color) 62%,transparent); background:linear-gradient(90deg,color-mix(in srgb,var(--chip-color) 9%,transparent),rgba(255,255,255,.025)); }
.mv7-category-list-table .mv7-category-chip-dot { display:grid; width:38px; height:38px; place-items:center; border-radius:9px; background:linear-gradient(145deg,color-mix(in srgb,var(--chip-color) 88%,white 12%),var(--chip-color)); color:white; font-size:var(--v2-text-sm); font-weight:650; box-shadow:inset 0 1px rgba(255,255,255,.22),0 8px 18px color-mix(in srgb,var(--chip-color) 13%,transparent); }
.mv7-category-row-name { color:var(--v2-text); font-size:var(--v2-text-sm); font-weight:560; }
.mv7-category-row-uses { color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-category-row-type { justify-self:start; padding:5px 9px; border:1px solid color-mix(in srgb,var(--chip-color) 42%,transparent); border-radius:7px; background:color-mix(in srgb,var(--chip-color) 8%,transparent); color:var(--chip-color); font-size:var(--v2-text-xs); }
.mv7-category-row-grip { width:18px; height:18px; fill:none; stroke:var(--v2-muted); stroke-width:1.5; }
.mv7-category-empty { display:grid; min-height:350px; place-items:center; align-content:center; gap:10px; margin:0; color:var(--v2-muted); text-align:center; }
.mv7-category-empty>span { display:grid; width:58px; height:58px; place-items:center; border:1px solid rgba(45,222,152,.2); border-radius:18px; background:rgba(45,222,152,.055); color:var(--v2-green-bright); font-size:25px; }
.mv7-category-empty strong { color:var(--v2-text); font-size:13px; }.mv7-category-empty small{max-width:34ch;font-size:var(--v2-text-xs);line-height:1.5}
.mv7-category-inspector { display:grid; gap:16px; }
.mv7-category-inspector>.mv7-settings-card { padding:20px; }
.mv7-category-inspector-empty { display:grid; min-height:300px; place-items:center; align-content:center; gap:10px; text-align:center; }
.mv7-category-inspector-empty>span { display:grid; width:72px; height:72px; place-items:center; border:1px solid rgba(255,255,255,.09); border-radius:20px; background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.015)); }
.mv7-category-inspector-empty svg { width:30px; height:30px; fill:none; stroke:var(--v2-green); stroke-width:1.4; }
.mv7-category-inspector-empty strong { font-size:12px; }.mv7-category-inspector-empty small{max-width:28ch;color:var(--v2-muted);font-size:var(--v2-text-xs);line-height:1.5}
.mv7-category-tip { display:flex; gap:12px; }.mv7-category-tip>svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:var(--v2-green);stroke-width:1.5}.mv7-category-tip h4{margin-bottom:8px}.mv7-category-tip p{margin:0!important;color:var(--v2-muted);font-size:var(--v2-text-xs);line-height:1.55}
.mv7-backup-card {
  padding: 0;
  overflow: hidden;
  container-type: inline-size;
}
.mv7-backup-header {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 20px;
}
.mv7-backup-header-icon {
  position: relative;
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--v2-green) 28%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--v2-green) 9%, transparent);
  color: var(--v2-green-bright);
}
.mv7-backup-header-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.mv7-backup-header-icon i {
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 7px;
  height: 7px;
  border: 2px solid #111512;
  border-radius: 50%;
  background: var(--v2-green-bright);
}
.mv7-backup-header h4 {
  margin-bottom: 4px;
  font-size: 16px;
}
.mv7-backup-header p {
  margin: 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-sm);
  line-height: 1.45;
}
.mv7-backup-local-badge {
  display: inline-flex;
  min-height: 30px;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  background: rgba(255,255,255,.025);
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  white-space: nowrap;
}
.mv7-backup-local-badge i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--v2-green-bright);
  box-shadow: 0 0 9px color-mix(in srgb, var(--v2-green) 55%, transparent);
}
.mv7-backup-security-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 20px 18px;
  padding: 10px 12px;
  border-left: 2px solid color-mix(in srgb, var(--v2-green) 68%, transparent);
  background: color-mix(in srgb, var(--v2-green) 5%, transparent);
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.4;
}
.mv7-backup-security-note svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: var(--v2-green-bright);
  stroke-width: 1.7;
}
.mv7-backup-inventory {
  border-block: 1px solid var(--v2-line);
  background: rgba(0,0,0,.12);
}
.mv7-backup-inventory-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 15px 20px;
  border-bottom: 1px solid var(--v2-line);
}
.mv7-backup-inventory-heading > div {
  display: grid;
  gap: 3px;
}
.mv7-backup-inventory-heading strong {
  color: var(--v2-text);
  font-size: var(--v2-text-sm);
  font-weight: 630;
}
.mv7-backup-inventory-heading small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.35;
}
.mv7-backup-inventory-heading > strong:last-child {
  flex: 0 0 auto;
  color: var(--v2-green-bright);
}
.mv7-backup-card .mv7-settings-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.mv7-backup-card .mv7-settings-metric {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  min-height: 67px;
  gap: 10px;
  padding: 12px 16px;
  border-right: 1px solid var(--v2-line);
  border-bottom: 1px solid var(--v2-line);
}
.mv7-backup-card .mv7-settings-metric:nth-child(3n) {
  border-right: 0;
}
.mv7-backup-card .mv7-settings-metric:nth-last-child(-n+3) {
  border-bottom: 0;
}
.mv7-backup-card .mv7-settings-metric dt {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr);
  align-items: center;
  gap: 9px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--v2-text);
  font-size: var(--v2-text-xs);
  font-weight: 540;
  line-height: 1.3;
  text-transform: none;
}
.mv7-backup-card .mv7-settings-metric dt svg {
  width: 30px;
  height: 30px;
  padding: 7px;
  box-sizing: border-box;
  border: 1px solid color-mix(in srgb, var(--v2-green) 22%, transparent);
  border-radius: 7px;
  background: color-mix(in srgb, var(--v2-green) 6%, transparent);
  fill: none;
  stroke: var(--v2-green-bright);
  stroke-width: 1.7;
}
.mv7-backup-card .mv7-settings-metric dd {
  min-width: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--v2-text);
  font-size: 18px;
  font-weight: 650;
  line-height: 1;
  text-align: right;
}
.mv7-backup-card .mv7-settings-metric.is-empty dd {
  color: var(--v2-dim);
  font-weight: 540;
}
.mv7-backup-footer {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 14px 20px;
  padding: 18px 20px 20px;
}
.mv7-backup-action-copy {
  display: grid;
  gap: 4px;
}
.mv7-backup-action-copy strong {
  color: var(--v2-text);
  font-size: var(--v2-text-sm);
  font-weight: 630;
}
.mv7-backup-action-copy small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.4;
}
.mv7-backup-actions {
  flex-wrap: nowrap;
  margin: 0;
}
.mv7-backup-actions button {
  min-height: 40px;
  padding-inline: 14px;
  white-space: nowrap;
}
.mv7-backup-card #settings-export {
  border-color: color-mix(in srgb, var(--v2-green) 48%, transparent);
  background: var(--v2-green);
  color: #06110c;
  font-weight: 650;
}
.mv7-backup-card #settings-import-trigger {
  border-color: rgba(255,255,255,.15);
  background: rgba(255,255,255,.045);
  color: var(--v2-text);
  font-weight: 590;
}
.mv7-backup-card #settings-import-trigger:hover {
  border-color: rgba(255,255,255,.24);
  background: rgba(255,255,255,.075);
}
.mv7-backup-warning {
  display: flex;
  grid-column: 1 / -1;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 11px 12px;
  border: 1px solid rgba(245,163,11,.2);
  border-radius: 7px;
  background: rgba(245,163,11,.055);
}
.mv7-backup-warning svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  fill: none;
  stroke: #f5b33d;
  stroke-width: 1.8;
}
.mv7-backup-warning span {
  display: grid;
  gap: 2px;
}
.mv7-backup-warning strong {
  color: #f4d39a;
  font-size: var(--v2-text-xs);
  font-weight: 630;
}
.mv7-backup-warning small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.4;
}
.mv7-reports-card {
  padding: 0;
  overflow: hidden;
}
.mv7-reports-header {
  display: grid;
  grid-template-columns: 36px minmax(0,1fr);
  align-items: center;
  gap: 10px;
  padding: 14px 16px 13px;
  border-bottom: 1px solid var(--v2-line);
  background: linear-gradient(110deg, rgba(255,255,255,.035), transparent 55%);
}
.mv7-reports-header-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(45,222,152,.2);
  border-radius: 10px;
  background: rgba(45,222,152,.07);
  color: var(--v2-green-bright);
  box-shadow: inset 0 1px rgba(255,255,255,.06);
}
.mv7-reports-header-icon svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
.mv7-reports-header h4 { margin: 0 0 5px; }
.mv7-reports-header p {
  margin: 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  line-height: 1.45;
}
.mv7-reports-count { display: none; }
.mv7-report-options {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  padding: 12px;
}
.mv7-report-option {
  --report-color: var(--v2-green);
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  min-height: 102px;
  gap: 6px;
  padding: 11px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--report-color) 23%, var(--v2-line));
  border-radius: 11px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--report-color) 7%, transparent), rgba(255,255,255,.018) 56%);
  color: var(--v2-text);
  cursor: pointer;
  text-align: left;
  box-shadow: inset 0 1px rgba(255,255,255,.045);
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.mv7-report-option::before {
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--report-color), transparent);
  opacity: .65;
  content: '';
}
.mv7-report-option.is-pdf { --report-color: #ff6b63; }
.mv7-report-option.is-image { --report-color: #7d9cff; }
.mv7-report-option:hover {
  border-color: color-mix(in srgb, var(--report-color) 48%, transparent);
  background: linear-gradient(145deg, color-mix(in srgb, var(--report-color) 11%, transparent), rgba(255,255,255,.026) 60%);
  box-shadow: inset 0 1px rgba(255,255,255,.07), 0 8px 18px rgba(0,0,0,.14);
}
.mv7-report-format-icon {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  color: var(--report-color);
}
.mv7-report-format-icon img {
  display: block;
  width: 30px;
  height: 30px;
  object-fit: contain;
  filter: drop-shadow(0 5px 9px color-mix(in srgb, var(--report-color) 24%, transparent));
}
.mv7-report-format-icon b {
  padding: 3px 5px;
  border: 1px solid color-mix(in srgb, var(--report-color) 28%, transparent);
  border-radius: 6px;
  background: color-mix(in srgb, var(--report-color) 8%, transparent);
  color: var(--report-color);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .06em;
}
.mv7-report-copy {
  display: grid;
  align-content: start;
  gap: 3px;
  padding-right: 24px;
}
.mv7-report-copy strong {
  font-size: var(--v2-text-sm);
  font-weight: 640;
  line-height: 1.3;
}
.mv7-report-copy small {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  line-height: 1.4;
}
.mv7-report-download {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--report-color) 24%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--report-color) 7%, transparent);
  color: var(--report-color);
  transition: background-color .18s ease, transform .18s ease;
}
.mv7-report-download svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
.mv7-report-option:hover .mv7-report-download {
  background: color-mix(in srgb, var(--report-color) 14%, transparent);
  transform: translateY(1px);
}
.mv7-reports-note {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 14px 11px;
  border-top: 1px solid rgba(255,255,255,.045);
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  line-height: 1.45;
}
.mv7-reports-note svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: var(--v2-green);
  stroke-width: 1.6;
}
@media (max-width: 768px) {
  .mv7-reports-header {
    grid-template-columns: 36px minmax(0,1fr);
    padding-inline: 16px;
  }
  .mv7-report-options {
    grid-template-columns: 1fr;
    padding-inline: 13px;
  }
  .mv7-report-option {
    grid-template-columns: 38px minmax(0,1fr) 26px;
    grid-template-rows: auto;
    align-items: center;
    min-height: 76px;
    gap: 9px;
    padding: 10px;
  }
  .mv7-report-copy { padding-right: 0; }
  .mv7-report-format-icon {
    justify-content: flex-start;
  }
  .mv7-report-format-icon b { display: none; }
  .mv7-report-download {
    position: static;
    justify-self: end;
  }
}
@container (max-width: 560px) {
  .mv7-backup-header {
    grid-template-columns: 44px minmax(0,1fr);
    padding: 18px;
  }
  .mv7-backup-local-badge {
    grid-column: 2;
    justify-self: start;
  }
  .mv7-backup-card .mv7-settings-summary {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
  .mv7-backup-card .mv7-settings-metric:nth-child(3n) {
    border-right: 1px solid var(--v2-line);
  }
  .mv7-backup-card .mv7-settings-metric:nth-child(2n) {
    border-right: 0;
  }
  .mv7-backup-card .mv7-settings-metric:nth-last-child(-n+3) {
    border-bottom: 1px solid var(--v2-line);
  }
  .mv7-backup-card .mv7-settings-metric:last-child {
    grid-column: 1 / -1;
    border-right: 0;
    border-bottom: 0;
  }
  .mv7-backup-footer {
    grid-template-columns: 1fr;
  }
  .mv7-backup-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 8px;
  }
  .mv7-backup-actions button {
    width: 100%;
  }
}
.mv7-categories-preview { display:grid; grid-template-columns:1fr auto; align-items:center; gap:14px 18px; }.mv7-categories-preview h4 { margin-bottom: 5px; }.mv7-categories-preview-copy>p{margin:0;color:var(--v2-muted);font-size:var(--v2-text-sm)}.mv7-categories-preview-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.mv7-categories-preview-chips span{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid var(--v2-line);border-radius:999px;background:rgba(255,255,255,.022);color:#dce2de;font-size:var(--v2-text-xs);font-weight:520}.mv7-categories-preview-chips span::before{width:7px;height:7px;border-radius:50%;background:var(--preview-chip);box-shadow:0 0 10px color-mix(in srgb,var(--preview-chip) 38%,transparent);content:''}
.mv7-settings-empty-hero { display: grid; justify-items: center; padding: 36px 20px; text-align: center; }.mv7-settings-empty-hero > svg { width: 70px; height: 70px; margin-bottom: 14px; fill: none; stroke: var(--v2-muted); stroke-width: 1; }.mv7-settings-empty-hero p { max-width: 430px; }.mv7-how-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-bottom: 12px; }.mv7-how-grid > div { display: grid; justify-items: center; gap: 8px; padding: 16px 10px; border: 1px solid var(--v2-line); border-radius: 12px; text-align: center; }.mv7-how-grid b { display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:var(--v2-green-soft);color:var(--v2-green-bright)}.mv7-how-grid strong{font-size:var(--v2-text-sm)}.mv7-how-grid small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-settings-row.is-disabled{opacity:.45}
.mv7-settings-notice { display: flex; gap: 10px; align-items: center; margin-top: 12px!important; padding: 12px; border: 1px solid var(--v2-line); border-radius: 11px; }.mv7-settings-notice svg { width: 22px; height: 22px; fill:none;stroke:var(--v2-green);stroke-width:1.5; }
.mv7-settings-hub:has(.mv7-notifications-workspace:not([hidden])) { grid-template-columns:228px minmax(0,1fr); }
.mv7-settings-hub:has(.mv7-notifications-workspace:not([hidden])) > .mv7-settings-context { display:none; }
.mv7-notifications-title { text-align:center; margin-bottom:4px; }
.mv7-notifications-layout { display:grid; grid-template-columns:minmax(0,1fr) 382px; gap:18px; align-items:start; }
.mv7-notifications-main,.mv7-notifications-rail { display:grid; gap:14px; min-width:0; }
.mv7-notifications-master { display:flex; align-items:center; gap:18px; padding:17px 19px; }
.mv7-notifications-master>span { display:grid; flex:1; gap:6px; }
.mv7-notifications-master strong { font-size:12px; }.mv7-notifications-master small{color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-notification-group { display:grid; gap:7px; }.mv7-notification-group>h4{margin:0;font-size:12px}.mv7-notification-group>p{margin:-3px 0 2px;color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-notification-list { padding:4px 18px; }
.mv7-notification-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto 116px; gap:11px; align-items:center; min-height:68px; border-bottom:1px solid rgba(255,255,255,.065); }
.mv7-notification-row:last-child { border-bottom:0; }
.mv7-notification-icon { display:grid; width:30px; height:30px; place-items:center; border-radius:9px; color:#cbd2ce; }
.mv7-notification-icon svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.55; }
.mv7-notification-row>span:nth-child(2) { display:grid; gap:4px; }
.mv7-notification-row strong { font-size:var(--v2-text-sm); }.mv7-notification-row small{color:var(--v2-muted);font-size:var(--v2-text-micro);line-height:1.35}
.mv7-notification-row select,.mv7-notification-frequency { min-height:37px; padding:0 11px; border:1px solid var(--v2-line); border-radius:10px; outline:0; background:rgba(255,255,255,.025); color:#ccd3cf; font-size:var(--v2-text-xs); }
.mv7-notification-row:not(:has(select)) { grid-template-columns:34px minmax(0,1fr) auto; }
.mv7-notification-row.is-master-off { opacity: 0.45; }
.mv7-notification-row.is-master-off select { cursor: not-allowed; }
.mv7-notification-channels { display:grid; grid-template-columns:repeat(3,1fr); overflow:hidden; border:1px solid var(--v2-line); border-radius:11px; }
.mv7-notification-channels button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:48px; border-right:1px solid var(--v2-line); background:rgba(255,255,255,.018); color:var(--v2-muted); }
.mv7-notification-channels button:last-child{border-right:0}.mv7-notification-channels button.is-selected{background:rgba(45,222,152,.075);box-shadow:inset 0 0 0 1px rgba(45,222,152,.55);color:var(--v2-green-bright)}
.mv7-notification-channels svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6}
.mv7-notification-save { width:100%; min-height:49px; margin-top:-1px; font-size:12px; }
.mv7-notification-autosave-note { margin:-8px 0 0; color:var(--v2-muted); font-size:var(--v2-text-micro); text-align:center; }
.mv7-notifications-rail .mv7-settings-card { padding:19px; }.mv7-notifications-rail .mv7-settings-card>p{margin:-5px 0 13px;color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-notification-preview-stage { position:relative; display:flex; min-height:294px; align-items:center; padding:15px; overflow:hidden; border-radius:14px; background:radial-gradient(circle at 28% 25%,rgba(141,82,213,.2),transparent 31%),radial-gradient(circle at 68% 72%,rgba(45,222,152,.21),transparent 34%),linear-gradient(145deg,#10141b,#091312); box-shadow:inset 0 1px rgba(255,255,255,.035); }
.mv7-notification-preview-stage::after{position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.025),transparent 45%);content:''}
.mv7-notification-toast { position:relative; z-index:1; display:grid; grid-template-columns:42px 1fr auto; gap:11px; width:100%; align-items:center; padding:14px; border:1px solid rgba(255,255,255,.1); border-radius:14px; background:rgba(20,25,24,.76); box-shadow:0 18px 45px rgba(0,0,0,.32); backdrop-filter:blur(16px); }
.mv7-notification-toast i { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:rgba(45,222,152,.12); color:var(--v2-green-bright); }
.mv7-notification-toast svg{width:19px;height:19px;fill:none;stroke:currentColor}.mv7-notification-toast span{display:grid;gap:6px}.mv7-notification-toast strong{font-size:var(--v2-text-xs)}.mv7-notification-toast small,.mv7-notification-toast em{color:var(--v2-muted);font-size:var(--v2-text-micro);font-style:normal}
.mv7-notification-quiet { display:flex; align-items:center; gap:11px; min-height:51px; padding:0 13px; border:1px solid var(--v2-line); border-radius:11px; background:rgba(255,255,255,.018); }
.mv7-notification-quiet svg{width:17px;height:17px;fill:none;stroke:var(--v2-muted)}.mv7-notification-quiet strong{flex:1;font-size:var(--v2-text-xs)}
.mv7-notification-frequency { width:100%; }.mv7-notification-caption{display:block;margin:11px 0 0;color:var(--v2-muted);font-size:var(--v2-text-micro)}
.mv7-security-hero { display: flex; align-items: center; gap: 16px; }.mv7-security-hero > svg { width: 54px; height: 54px; fill:none;stroke:var(--v2-green);stroke-width:1.4; }.mv7-security-hero > div { flex:1; }.mv7-security-hero h4{margin-bottom:4px}.mv7-security-hero > strong { color:var(--v2-green-bright);font-size:32px }.mv7-security-hero > strong small{color:var(--v2-muted);font-size:15px}.mv7-device-row{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid var(--v2-line);border-radius:12px}.mv7-device-row>div{display:grid;flex:1;gap:4px}.mv7-device-row em{padding:4px 9px;border-radius:999px;background:var(--v2-green-soft);color:var(--v2-green-bright);font-size:var(--v2-text-xs);font-style:normal}
.mv7-settings-hub:has(.mv7-security-workspace:not([hidden])) { grid-template-columns:228px minmax(0,1fr); }
.mv7-settings-hub:has(.mv7-security-workspace:not([hidden])) > .mv7-settings-context { display:none; }
/* Mismo patrón que Seguridad (arriba): cada pestaña que trae su propia
   barra lateral real (en vez de la genérica .mv7-settings-context) declara
   su clase de "workspace" acá para que el grid se achique a 2 columnas y la
   aside genérica se oculte — evita mostrar dos sidebars a la vez. */
.mv7-settings-hub:has(.mv7-appearance-workspace:not([hidden])),
.mv7-settings-hub:has(.mv7-sync-workspace:not([hidden])),
.mv7-settings-hub:has(.mv7-privacy-workspace:not([hidden])),
.mv7-settings-hub:has(.mv7-profile-workspace:not([hidden])) { grid-template-columns:228px minmax(0,1fr); }
.mv7-settings-hub:has(.mv7-appearance-workspace:not([hidden])) > .mv7-settings-context,
.mv7-settings-hub:has(.mv7-sync-workspace:not([hidden])) > .mv7-settings-context,
.mv7-settings-hub:has(.mv7-privacy-workspace:not([hidden])) > .mv7-settings-context,
.mv7-settings-hub:has(.mv7-profile-workspace:not([hidden])) > .mv7-settings-context { display:none; }
.mv7-tab-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.mv7-tab-main, .mv7-tab-rail { display:grid; gap:16px; min-width:0; }
.mv7-tab-rail .mv7-settings-card { padding:20px; }
.mv7-appearance-preview-card { padding:14px; border:1px solid var(--v2-line); border-radius:11px; background:rgba(255,255,255,.02); }
.mv7-appearance-preview-card > small { color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-appearance-preview-row { display:flex; justify-content:space-between; gap:12px; padding:8px 0; }
.mv7-appearance-preview-row strong { font-size:15px; }
.mv7-profile-workspace .mv7-tab-layout { grid-template-columns:minmax(0,1fr) 330px; }
.mv7-profile-workspace .mv7-profile-card { position:relative; display:grid; grid-template-columns:155px minmax(0,1fr); gap:15px 20px; padding:24px; }
.mv7-profile-card-title { grid-column:1/-1; }
.mv7-profile-avatar-zone { display:grid; justify-items:center; gap:11px; align-content:start; }
.mv7-profile-avatar-zone .mv7-settings-avatar { width:120px; height:120px; font-size:36px; }
.mv7-profile-avatar-zone .mv7-text-action { display:flex;align-items:center;gap:7px }.mv7-profile-avatar-zone .mv7-text-action svg{width:16px;height:16px;fill:none;stroke:currentColor}
.mv7-profile-workspace .mv7-settings-fields { position:static; display:grid; grid-column:2; grid-row:auto; grid-template-columns:1fr; gap:13px; }
.mv7-profile-workspace .mv7-profile-card>#settings-profile-session-hint { grid-column:1/-1; margin:0; }
.mv7-profile-workspace .mv7-profile-card>#settings-profile-save { grid-column:2; justify-self:end; min-width:180px; }
.mv7-profile-region { padding:22px; }.mv7-profile-region>.mv7-settings-hint{margin:-4px 0 10px}
.mv7-profile-progress-card>p,.mv7-profile-public-card>p{margin:-5px 0 12px!important;color:var(--v2-muted);font-size:var(--v2-text-xs);line-height:1.5}
.mv7-profile-progress-ring { display:grid; width:120px; height:120px; margin:20px auto; place-items:center; border-radius:50%; background:radial-gradient(circle,#111512 58%,transparent 60%),conic-gradient(var(--v2-green) var(--profile-progress,180deg),rgba(255,255,255,.08) 0); }
.mv7-profile-progress-ring strong { font-size:25px; letter-spacing:-.04em; }
.mv7-profile-check { display:flex;align-items:center;gap:10px;min-height:38px;font-size:var(--v2-text-xs)}.mv7-profile-check i{display:grid;width:18px;height:18px;place-items:center;border:1px solid rgba(45,222,152,.4);border-radius:50%;color:var(--v2-green-bright)}.mv7-profile-check i svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}.mv7-profile-check.is-warning i{border-color:#f5a30b}.mv7-profile-check.is-warning i::after{width:6px;height:6px;border-radius:50%;background:#f5a30b;content:''}
.mv7-profile-public-card .mv7-settings-notice{font-size:var(--v2-text-micro);line-height:1.55}.mv7-profile-session-button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;width:100%}.mv7-profile-session-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.mv7-appearance-workspace .mv7-tab-layout { grid-template-columns:minmax(0,1fr) 350px; }
.mv7-appearance-preview-panel>p,.mv7-appearance-accessibility>p{margin:-5px 0 14px!important;color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-appearance-preview-card { padding:15px; }
.mv7-appearance-preview-card header { display:flex;justify-content:space-between;gap:10px;align-items:start }.mv7-appearance-preview-card header>div{display:grid;gap:4px}.mv7-appearance-preview-card header strong{font-size:var(--v2-text-xs)}.mv7-appearance-preview-card header small,.mv7-appearance-preview-card header>span{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-appearance-preview-card header>span{padding:6px 8px;border:1px solid var(--v2-line);border-radius:7px}
.mv7-appearance-preview-balance { display:grid;grid-template-columns:1fr 1.25fr;gap:10px;align-items:end;margin-top:14px }.mv7-appearance-preview-balance>div{display:grid;gap:5px}.mv7-appearance-preview-balance small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-appearance-preview-balance strong{font-size:14px}.mv7-appearance-preview-balance strong:first-of-type{color:var(--v2-green-bright)}.mv7-appearance-preview-balance svg{width:100%;height:90px;color:var(--v2-green)}
.mv7-appearance-budget-preview { display:grid;gap:8px;margin-top:13px;padding:14px;border:1px solid var(--v2-line);border-radius:11px;background:rgba(255,255,255,.02)}.mv7-appearance-budget-preview>strong{font-size:var(--v2-text-xs)}.mv7-appearance-budget-preview>small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-appearance-budget-preview>div{display:flex;justify-content:space-between;gap:10px;font-size:var(--v2-text-micro)}.mv7-appearance-budget-preview i{height:7px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.1)}.mv7-appearance-budget-preview em{display:block;width:60%;height:100%;background:var(--v2-green)}
.mv7-appearance-accessibility .mv7-settings-row-slider{display:grid}.mv7-appearance-font-range{display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;width:100%}.mv7-appearance-font-range b:first-child{font-size:var(--v2-text-xs)}.mv7-appearance-font-range b:last-child{font-size:18px}.mv7-appearance-font-range input{width:100%}
.mv7-privacy-workspace .mv7-tab-layout { grid-template-columns:minmax(0,1fr) 342px; }
.mv7-privacy-section { padding:18px; }.mv7-privacy-section>h4{margin-bottom:5px}.mv7-privacy-section>p,.mv7-privacy-visibility>p{margin:0 0 10px;color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-privacy-section .mv7-settings-row { min-height:59px; padding:8px 0; }
.mv7-privacy-visibility { padding:18px; }
.mv7-privacy-visibility-options { display:grid; grid-template-columns:repeat(3,1fr); overflow:hidden; border:1px solid var(--v2-line); border-radius:11px; background:rgba(255,255,255,.02); }
.mv7-privacy-visibility-options button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:68px; padding:9px; border-right:1px solid var(--v2-line); background:transparent; color:var(--v2-muted); }
.mv7-privacy-visibility-options button:last-child{border-right:0}.mv7-privacy-visibility-options button.is-selected{background:rgba(45,222,152,.08);box-shadow:inset 0 0 0 1px rgba(45,222,152,.55);color:var(--v2-green-bright)}
.mv7-privacy-visibility-options svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5}.mv7-privacy-visibility-options span{display:grid;gap:4px;text-align:left}.mv7-privacy-visibility-options strong{font-size:var(--v2-text-xs)}.mv7-privacy-visibility-options small{font-size:var(--v2-text-micro);color:var(--v2-muted)}
.mv7-privacy-visibility .mv7-settings-notice>span{display:grid;gap:5px}.mv7-privacy-visibility .mv7-settings-notice small{color:var(--v2-muted);font-size:var(--v2-text-micro)}
.mv7-privacy-actions { display:grid; grid-template-columns:1fr 1.12fr; gap:14px; }
.mv7-privacy-actions button { display:flex; align-items:center; justify-content:center; gap:9px; min-height:51px; }
.mv7-privacy-actions svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6}
.mv7-privacy-score-card { display:grid; justify-items:center; text-align:center; }
.mv7-privacy-shield { position:relative; display:grid; width:108px; height:108px; margin:5px 0 15px; place-items:center; border:1px solid rgba(45,222,152,.28); border-radius:50%; background:radial-gradient(circle,rgba(45,222,152,.18),rgba(45,222,152,.04) 53%,transparent 55%); box-shadow:0 0 28px rgba(45,222,152,.08); }
.mv7-privacy-shield svg:first-child{width:68px;height:68px;fill:rgba(45,222,152,.14);stroke:var(--v2-green);stroke-width:1.45}.mv7-privacy-shield svg:last-child{position:absolute;width:28px;height:28px;fill:none;stroke:var(--v2-green-bright);stroke-width:2.3}
.mv7-privacy-score-card>h4{margin:0 0 7px}.mv7-privacy-score-card>p{margin:0;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-privacy-score-card>strong{margin:12px 0 8px;padding:6px 15px;border-radius:8px;background:rgba(45,222,152,.1);color:var(--v2-green-bright);font-size:13px}
.mv7-privacy-check { display:grid; grid-template-columns:25px 1fr; gap:9px; width:100%; padding:9px 0; text-align:left; }
.mv7-privacy-check i{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:rgba(45,222,152,.1);color:var(--v2-green-bright)}.mv7-privacy-check i svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}.mv7-privacy-check span{display:grid;gap:4px}.mv7-privacy-check b{font-size:var(--v2-text-xs)}.mv7-privacy-check small{color:var(--v2-muted);font-size:var(--v2-text-micro)}
.mv7-privacy-live-state { display:none; }
.mv7-privacy-session-card>p{margin:-5px 0 12px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-privacy-device{display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--v2-line);border-radius:11px;background:rgba(255,255,255,.018)}.mv7-privacy-device>span{display:grid;width:38px;height:38px;place-items:center;border-radius:10px;background:rgba(255,255,255,.04)}.mv7-privacy-device svg{width:21px;height:21px;fill:none;stroke:#dbe1dd}.mv7-privacy-device>div{display:grid;gap:4px}.mv7-privacy-device strong{font-size:var(--v2-text-xs)}.mv7-privacy-device small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-privacy-device em{padding:5px 9px;border-radius:8px;background:rgba(45,222,152,.1);color:var(--v2-green-bright);font-size:var(--v2-text-micro);font-style:normal}.mv7-privacy-session-card>button{width:100%;margin-top:10px}
.mv7-privacy-policy { display:grid;grid-template-columns:34px 1fr auto;gap:11px;align-items:center}.mv7-privacy-policy>svg{width:27px;height:27px;fill:none;stroke:var(--v2-green);stroke-width:1.5}.mv7-privacy-policy h4{margin:0 0 5px}.mv7-privacy-policy p{margin:0!important;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-privacy-policy>span{color:var(--v2-muted);font-size:20px}
.mv7-sync-workspace .mv7-tab-layout { grid-template-columns:minmax(0,1fr) 330px; }
.mv7-sync-hero { min-height:280px; padding:25px 20px 28px; }
.mv7-sync-cloud { position:relative; display:grid; width:138px; height:92px; margin-bottom:9px; place-items:center; }
.mv7-sync-cloud>span { position:absolute; inset:24px 12px 6px; border:4px solid #8d9691; border-radius:38px; opacity:.9; }
.mv7-sync-cloud>span::before,.mv7-sync-cloud>span::after { position:absolute; border:4px solid #8d9691; border-bottom:0; border-radius:50% 50% 0 0; background:#111512; content:''; }
.mv7-sync-cloud>span::before { width:49px;height:37px;left:17px;top:-35px; }.mv7-sync-cloud>span::after{width:35px;height:25px;right:13px;top:-23px}
.mv7-sync-cloud svg { z-index:2; width:42px!important; height:42px!important; margin:17px 0 0!important; stroke:#b6bdb9!important; stroke-width:1.7!important; }
.mv7-sync-cloud>i { position:absolute; width:6px; height:6px; transform:rotate(45deg); background:rgba(255,255,255,.22); }.mv7-sync-cloud>i:nth-of-type(1){left:0;top:25px}.mv7-sync-cloud>i:nth-of-type(2){right:0;top:49px}
.mv7-sync-hero>p { max-width:52ch!important; margin:0 0 17px!important; text-align:center; }.mv7-sync-hero>.mv7-primary-button{min-width:244px}
.mv7-sync-flow { padding:19px; }.mv7-sync-flow>h4{margin-bottom:13px}
.mv7-sync-flow .mv7-how-grid { position:relative; gap:12px; }
.mv7-sync-flow .mv7-how-grid>div { position:relative; min-height:164px; padding:19px 11px 13px; }
.mv7-sync-flow .mv7-how-grid>div:not(:last-child)::after { position:absolute; z-index:3; right:-20px; top:50%; display:grid; width:26px; height:26px; place-items:center; transform:translateY(-50%); border:1px solid var(--v2-line); border-radius:50%; background:#121614; color:var(--v2-muted); content:'›'; font-size:17px; }
.mv7-sync-flow .mv7-how-grid i { display:grid; width:43px; height:43px; place-items:center; color:#9ea6a1; font-style:normal; }
.mv7-sync-flow .mv7-how-grid i svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.25}.mv7-sync-flow .mv7-how-grid b{position:absolute;left:11px;top:11px}
.mv7-sync-control { display:grid; grid-template-columns:38px 1fr auto; gap:11px; align-items:center; min-height:65px; padding:8px 10px; border-bottom:1px solid rgba(255,255,255,.065); }.mv7-sync-control:last-child{border-bottom:0}
.mv7-sync-control-icon { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; background:rgba(255,255,255,.045); }.mv7-sync-control-icon svg{width:17px;height:17px;fill:none;stroke:var(--v2-muted);stroke-width:1.5}
.mv7-sync-control>span:nth-child(2){display:grid;gap:5px}.mv7-sync-control strong{font-size:var(--v2-text-xs)}.mv7-sync-control small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-sync-control select{min-width:130px;border:0;background:transparent;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-sync-control.is-disabled{opacity:.55}
.mv7-sync-device-card { padding:22px!important; }.mv7-sync-device-card>h4{margin-bottom:16px}.mv7-sync-device { display:grid; grid-template-columns:66px 1fr; gap:14px; align-items:center; min-height:134px; padding:18px; border:1px solid var(--v2-line); border-radius:14px; background:rgba(255,255,255,.018); }
.mv7-sync-device>span { display:grid; width:58px; height:58px; place-items:center; border-radius:50%; background:linear-gradient(145deg,#929b96,#353b38); color:white; font-size:31px; }.mv7-sync-device>div{display:grid;gap:5px}.mv7-sync-device strong{font-size:12px}.mv7-sync-device small{color:var(--v2-muted);font-size:var(--v2-text-micro)}
.mv7-sync-local-state { display:flex;align-items:center;gap:8px;margin:14px 3px 0;color:var(--v2-green-bright);font-size:var(--v2-text-xs)}.mv7-sync-local-state i{width:7px;height:7px;border-radius:50%;background:var(--v2-green)}
.mv7-sync-status-card { padding:20px!important; }.mv7-sync-status-row{display:grid;grid-template-columns:22px 1fr auto;gap:9px;align-items:center;min-height:57px;border-bottom:1px solid rgba(255,255,255,.065)}.mv7-sync-status-row:last-child{border-bottom:0}.mv7-sync-status-row i{display:grid;width:17px;height:17px;place-items:center;border-radius:50%;background:var(--v2-green);color:#052416}.mv7-sync-status-row svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2}.mv7-sync-status-row span,.mv7-sync-status-row b{font-size:var(--v2-text-xs)}.mv7-sync-status-row b{font-weight:500;color:var(--v2-muted)}
.mv7-sync-offline { display:grid;grid-template-columns:38px 1fr;gap:12px;padding:20px!important}.mv7-sync-offline>svg{width:34px;height:34px;fill:rgba(45,222,152,.08);stroke:var(--v2-green);stroke-width:1.5}.mv7-sync-offline h4{margin:0 0 8px}.mv7-sync-offline p{margin:0 0 18px!important;color:var(--v2-muted);font-size:var(--v2-text-xs);line-height:1.55}.mv7-sync-offline small{color:var(--v2-muted);font-size:var(--v2-text-micro);line-height:1.55}
@media (max-width: 1400px) {
  .mv7-tab-layout { grid-template-columns:minmax(0,1fr); }
  .mv7-tab-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mv7-privacy-workspace .mv7-tab-layout { grid-template-columns:1fr; }
  .mv7-privacy-workspace .mv7-tab-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mv7-privacy-policy { grid-column:1/-1; }
  .mv7-sync-workspace .mv7-tab-layout { grid-template-columns:1fr; }
  .mv7-sync-workspace .mv7-tab-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mv7-sync-offline { grid-column:1/-1; }
  .mv7-appearance-workspace .mv7-tab-layout { grid-template-columns:1fr; }
  .mv7-profile-workspace .mv7-tab-layout { grid-template-columns:1fr; }
  .mv7-profile-workspace .mv7-tab-rail { grid-template-columns:repeat(2,minmax(0,1fr)); }.mv7-profile-session-button{grid-column:1/-1}
}
.mv7-security-workspace { gap:14px; }
.mv7-security-title { margin-bottom:3px; }
.mv7-security-layout { display:grid; grid-template-columns:minmax(0,1fr) 338px; gap:16px; align-items:start; }
.mv7-security-main,.mv7-security-rail { display:grid; gap:16px; min-width:0; }
.mv7-security-hero { display:grid; grid-template-columns:170px minmax(0,1fr) 190px; min-height:196px; padding:22px 28px; }
.mv7-security-shield { position:relative; display:grid; width:132px; height:132px; place-items:center; justify-self:center; border:1px solid rgba(45,222,152,.3); border-radius:50%; background:radial-gradient(circle,rgba(45,222,152,.16),rgba(45,222,152,.035) 48%,transparent 50%); box-shadow:0 0 0 14px rgba(45,222,152,.025), inset 0 0 35px rgba(45,222,152,.08); }
.mv7-security-shield>svg:first-child { width:88px; height:88px; fill:rgba(45,222,152,.12); stroke:var(--v2-green); stroke-width:1.4; filter:drop-shadow(0 8px 18px rgba(45,222,152,.16)); }
.mv7-security-shield .mv7-security-check { position:absolute; width:42px; height:42px; fill:none; stroke:#dbe9e2; stroke-width:2.5; }
.mv7-security-hero-copy { display:grid; align-content:center; gap:7px; }
.mv7-security-hero-copy h4 { margin:0; font-size:19px; }
.mv7-security-hero-copy p { max-width:38ch; margin:0; color:var(--v2-muted); font-size:var(--v2-text-sm); line-height:1.55; }
.mv7-security-score { display:grid; align-content:center; gap:7px; }
.mv7-security-score>small { color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-security-score strong { color:var(--v2-green-bright); font-size:34px; letter-spacing:-.04em; }
.mv7-security-score strong em { color:var(--v2-muted); font-size:18px; font-style:normal; font-weight:500; }
.mv7-security-score progress { width:100%; height:6px; overflow:hidden; appearance:none; border:0; border-radius:999px; background:rgba(255,255,255,.08); }
.mv7-security-score progress::-webkit-progress-bar { border-radius:999px; background:rgba(255,255,255,.08); }
.mv7-security-score progress::-webkit-progress-value { border-radius:999px; background:linear-gradient(90deg,#17b97a,#39e9a6); }
.mv7-security-score progress::-moz-progress-bar { border-radius:999px; background:linear-gradient(90deg,#17b97a,#39e9a6); }
.mv7-security-access,.mv7-security-sessions { padding:20px; }
.mv7-security-access-row { display:grid; grid-template-columns:44px minmax(0,1fr) minmax(120px,auto) 112px; gap:12px; align-items:center; min-height:69px; border-bottom:1px solid rgba(255,255,255,.065); }
.mv7-security-access-row:last-of-type { border-bottom:0; }
/* Passkey: fila oculta por defecto hasta el feature-detect de WebAuthn en
   JS — .mv7-security-access-row fija display:grid sin condición, así que
   [hidden] necesita su propio override (mismo bug de especificidad que ya
   apareció 5 veces esta sesión). Igual para el botón de login del dialog,
   que hereda display:inline-flex de .mv7-secondary-button. */
.mv7-security-access-row[hidden],
#auth-passkey-login[hidden] { display: none; }
.mv7-security-row-icon { display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--v2-line); border-radius:10px; background:rgba(255,255,255,.018); }
.mv7-security-row-icon svg { width:19px; height:19px; fill:none; stroke:#cfd6d2; stroke-width:1.55; }
.mv7-security-access-row>span:nth-child(2) { display:grid; gap:4px; }
.mv7-security-access-row strong { font-size:12px; }
.mv7-security-access-row small { color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-security-access-row>em { display:inline-flex; align-items:center; gap:6px; color:var(--v2-muted); font-size:var(--v2-text-xs); font-style:normal; }
.mv7-security-access-row>em svg { width:15px; height:15px; fill:none; stroke:currentColor; }
.mv7-security-access-row>em.is-ok { color:var(--v2-green-bright); }
.mv7-security-access-row .is-accent { border-color:rgba(45,222,152,.65); color:var(--v2-green-bright); }
.mv7-security-access-row select { min-height:38px; padding:0 11px; border:1px solid var(--v2-line); border-radius:10px; background:rgba(255,255,255,.025); color:var(--v2-muted); }
.mv7-security-access-row.is-visual-only { grid-template-columns:44px minmax(0,1fr) 226px; }
.mv7-security-access-row.is-visual-only .mv7-switch { justify-self:end; }
.mv7-security-privacy-row { display:flex; align-items:center; gap:14px; min-height:62px; margin-top:8px; padding:10px 12px; border:1px solid rgba(45,222,152,.13); border-radius:11px; background:rgba(45,222,152,.035); }
.mv7-security-privacy-row>span { display:grid; flex:1; gap:4px; }
.mv7-security-privacy-row strong { font-size:var(--v2-text-sm); }.mv7-security-privacy-row small{color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-security-sessions>p { margin:-5px 0 10px; color:var(--v2-muted); font-size:var(--v2-text-xs); }
.mv7-device-symbol { display:grid; width:36px; height:36px; place-items:center; color:var(--v2-green-bright); font-size:20px; }
.mv7-security-guest-note { padding:12px 18px; }
.mv7-security-guest-note .mv7-security-privacy-row { margin:0 0 6px; }
.mv7-security-guest-note .mv7-settings-notice { margin:0!important; border:0; padding:8px 2px 5px; }
.mv7-security-rail .mv7-settings-card { padding:20px; }
.mv7-security-list-item { display:grid; grid-template-columns:34px 1fr; gap:11px; align-items:start; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.065); }
.mv7-security-list-item i { display:grid; width:28px; height:28px; place-items:center; border-radius:50%; background:rgba(45,222,152,.09); color:var(--v2-green-bright); font-size:12px; font-style:normal; }
.mv7-security-list-item i svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.8; }
.mv7-security-list-item.is-warning i { border:1px solid rgba(245,163,11,.34); background:rgba(245,163,11,.07); color:#f5a30b; }
.mv7-security-list-item span { display:grid; gap:5px; }
.mv7-security-list-item strong { font-size:var(--v2-text-sm); line-height:1.35; }
.mv7-security-list-item small { color:var(--v2-muted); font-size:var(--v2-text-xs); line-height:1.45; }
.mv7-security-rail-link { width:100%; padding:15px 0 0; text-align:left; }
.mv7-security-alert { border-color:rgba(255,98,89,.55); background:linear-gradient(145deg,rgba(255,98,89,.055),rgba(20,16,17,.88)); }
.mv7-security-alert-title { display:flex; align-items:center; gap:11px; }
.mv7-security-alert-title i { display:grid; width:36px; height:36px; place-items:center; border-radius:50%; background:rgba(255,98,89,.12); color:#ff6259; }
.mv7-security-alert-title svg { width:20px; height:20px; fill:none; stroke:currentColor; }
.mv7-security-alert-title h4 { margin:0; }
.mv7-security-alert>p { margin:12px 0 16px; color:var(--v2-muted); font-size:var(--v2-text-xs); line-height:1.6; }
.mv7-security-alert .mv7-danger-button { width:100%; }
.mv7-visual-only-button:disabled,.mv7-security-access-row :disabled { cursor:not-allowed; opacity:.72; }
.mv7-danger-card { border-color: rgba(255, 98, 89, 0.28); }.mv7-danger-card strong { color: var(--v2-text); }
.mv7-settings-context { display: grid; gap: 14px; }.mv7-settings-context-card { padding: 18px; }.mv7-settings-context-card:first-child { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; }.mv7-settings-context-card:first-child div:not(.mv7-settings-avatar) { display:grid;gap:4px }.mv7-settings-context-card:first-child small,.mv7-security-note small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-settings-context-card:first-child button{grid-column:1/-1;width:100%;margin-top:6px}.mv7-data-ring{display:grid;width:126px;height:126px;margin:18px auto;place-items:center;border-radius:50%;background:conic-gradient(var(--v2-green) 100%,rgba(255,255,255,.1) 0);position:relative}.mv7-data-ring::before{position:absolute;inset:10px;border-radius:50%;background:#111512;content:''}.mv7-data-ring span{z-index:1;display:grid;justify-items:center;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-data-ring strong{color:var(--v2-text);font-size:25px}.mv7-context-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--v2-line);color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-context-row b{color:var(--v2-text);font-weight:500}.mv7-security-note{display:flex;gap:12px}.mv7-security-note svg{width:28px;height:28px;fill:none;stroke:var(--v2-green);stroke-width:1.5}.mv7-security-note div{display:grid;gap:6px}

/* En paneles largos, los laterales permanecen completos y accesibles en el
   viewport. Si un rail supera la altura disponible, desplaza solo su propio
   contenido en vez de quedar cortado al hacer scroll en la pagina. */
@media (min-width: 1041px) {
  .mv7-settings-nav,
  .mv7-category-inspector,
  .mv7-notifications-rail,
  .mv7-security-rail {
    top: var(--mv7-settings-sticky-top);
    max-height: calc(100vh - var(--mv7-settings-sticky-top) - var(--mv7-settings-sticky-bottom));
    max-height: calc(100dvh - var(--mv7-settings-sticky-top) - var(--mv7-settings-sticky-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(255,255,255,.18) transparent;
    scrollbar-width: thin;
  }

  .mv7-settings-nav {
    min-height: min(730px, calc(100dvh - var(--mv7-settings-sticky-top) - var(--mv7-settings-sticky-bottom)));
  }

  .mv7-category-inspector,
  .mv7-notifications-rail,
  .mv7-security-rail {
    position: sticky;
    align-self: start;
  }
}

@media (min-width: 1181px) {
  .mv7-tab-rail,
  .mv7-settings-context {
    position: sticky;
    top: var(--mv7-settings-sticky-top);
    align-self: start;
    max-height: calc(100vh - var(--mv7-settings-sticky-top) - var(--mv7-settings-sticky-bottom));
    max-height: calc(100dvh - var(--mv7-settings-sticky-top) - var(--mv7-settings-sticky-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(255,255,255,.18) transparent;
    scrollbar-width: thin;
  }
}

@media (max-width: 1180px) { .mv7-settings-hub { grid-template-columns: 210px minmax(0,1fr); }.mv7-settings-context { display:none; } }
@media (max-width: 1320px) { .mv7-security-layout{grid-template-columns:minmax(0,1fr) 292px}.mv7-security-hero{grid-template-columns:140px minmax(0,1fr) 160px;padding-inline:20px}.mv7-security-shield{width:112px;height:112px}.mv7-security-access-row{grid-template-columns:42px minmax(0,1fr) auto 96px}.mv7-security-access-row.is-visual-only{grid-template-columns:42px minmax(0,1fr) 190px} }
@media (max-width: 1320px) { .mv7-notifications-layout{grid-template-columns:minmax(0,1fr) 320px}.mv7-notification-row{grid-template-columns:32px minmax(0,1fr) auto 102px}.mv7-notification-row:not(:has(select)){grid-template-columns:32px minmax(0,1fr) auto} }
@media (max-width: 1320px) { .mv7-category-workspace{grid-template-columns:minmax(0,1fr) 290px}.mv7-category-filters{grid-template-columns:repeat(3,72px)} }
@media (max-width: 1040px) { .mv7-security-layout{grid-template-columns:1fr}.mv7-security-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.mv7-security-alert{grid-column:1/-1} }
@media (max-width: 1040px) { .mv7-notifications-layout{grid-template-columns:1fr}.mv7-notifications-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.mv7-notification-preview{grid-row:span 2} }
@media (max-width: 1040px) { .mv7-category-workspace{grid-template-columns:1fr}.mv7-category-inspector{grid-template-columns:1fr 1fr}.mv7-category-inspector-empty{min-height:180px} }

/* Con la barra principal todavía visible, la navegación interna vertical
   dejaba menos de 400 px al contenido entre 769 y 1040 px. */
@media (max-width: 1040px) {
  .mv7-settings-hub,.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='categories']:not([hidden])),.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='faq']:not([hidden])),.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='danger']:not([hidden])){display:block}
  .mv7-settings-nav{position:static;min-height:0;margin-bottom:14px;padding:8px;flex-direction:row;overflow-x:auto;scrollbar-width:none}.mv7-settings-nav::-webkit-scrollbar{display:none}.mv7-settings-nav .mv7-settings-search,.mv7-settings-preview-status{display:none}.mv7-settings-nav-item{flex:0 0 auto;min-height:40px;padding:0 12px;white-space:nowrap}
  .mv7-settings-context{display:none!important}
  .mv7-category-toolbar{grid-template-columns:minmax(190px,1fr) auto auto;gap:10px}.mv7-category-workspace{width:100%}
  .mv7-appearance-workspace .mv7-tab-rail{grid-template-columns:1fr 1fr}.mv7-appearance-font-range{min-width:0}.mv7-appearance-font-range input{min-width:0;width:100%}
}

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

  .mv7-settings-hub { display: block; }
  .mv7-settings-nav { position: static; min-height: 0; margin-bottom: 14px; padding: 8px; flex-direction: row; overflow-x: auto; }
  .mv7-settings-nav .mv7-settings-search, .mv7-settings-preview-status { display: none; }
  .mv7-settings-nav-item { flex: 0 0 auto; min-height: 38px; padding: 0 11px; }
  .mv7-settings-nav-item svg { width: 14px; height: 14px; }
  .mv7-settings-title-action { align-items: flex-start; }
  .mv7-settings-title-action .mv7-primary-button { padding-inline: 12px; }
  .mv7-profile-card { grid-template-columns: 82px 1fr; }
  .mv7-settings-avatar { width: 72px; height: 72px; font-size: 24px; }
  .mv7-settings-fields { grid-template-columns: 1fr; }
  .mv7-theme-grid { grid-template-columns: 1fr; }
  .mv7-how-grid { grid-template-columns: 1fr; }
  .mv7-settings-row { flex-wrap: wrap; }
  .mv7-settings-row select { max-width: 100%; }

  .mv7-settings-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mv7-backup-header {
    grid-template-columns: 44px minmax(0, 1fr);
    padding: 18px;
  }

  .mv7-backup-header-icon {
    width: 44px;
    height: 44px;
  }

  .mv7-backup-local-badge {
    grid-column: 2;
    justify-self: start;
  }

  .mv7-backup-security-note {
    margin: 0 18px 16px;
  }

  .mv7-backup-card .mv7-settings-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mv7-backup-card .mv7-settings-metric:nth-child(3n) {
    border-right: 1px solid var(--v2-line);
  }

  .mv7-backup-card .mv7-settings-metric:nth-child(2n) {
    border-right: 0;
  }

  .mv7-backup-card .mv7-settings-metric:nth-last-child(-n+3) {
    border-bottom: 1px solid var(--v2-line);
  }

  .mv7-backup-card .mv7-settings-metric:last-child {
    border-right: 0;
    border-bottom: 0;
  }

  .mv7-backup-footer {
    grid-template-columns: 1fr;
    padding: 17px 18px 18px;
  }

  .mv7-settings-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .mv7-settings-actions .mv7-primary-button,
  .mv7-settings-file-label {
    width: 100%;
  }

  .mv7-backup-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 8px;
  }

  .mv7-backup-actions .mv7-primary-button,
  .mv7-backup-actions .mv7-secondary-button {
    width: 100%;
  }
  .mv7-security-layout,.mv7-security-rail { grid-template-columns:1fr; }
  .mv7-security-alert { grid-column:auto; }
  .mv7-security-hero { grid-template-columns:88px 1fr; min-height:0; padding:18px; }
  .mv7-security-shield { width:76px; height:76px; }
  .mv7-security-shield>svg:first-child { width:52px; height:52px; }
  .mv7-security-shield .mv7-security-check { width:26px; height:26px; }
  .mv7-security-score { grid-column:1/-1; grid-template-columns:1fr auto; margin-top:8px; }
  .mv7-security-score progress { grid-column:1/-1; }
  .mv7-security-access-row,.mv7-security-access-row.is-visual-only { grid-template-columns:40px minmax(0,1fr) auto; padding:10px 0; }
  .mv7-security-access-row>button,.mv7-security-access-row>select { grid-column:2/-1; width:100%; }
  .mv7-notifications-layout,.mv7-notifications-rail { grid-template-columns:1fr; }
  .mv7-notification-preview { grid-row:auto; }
  .mv7-notifications-title { text-align:left; }
  .mv7-notification-row,.mv7-notification-row:not(:has(select)) { grid-template-columns:32px minmax(0,1fr) auto; padding:9px 0; }
  .mv7-notification-row select { grid-column:2/-1; width:100%; }
  .mv7-notification-channels { grid-template-columns:1fr; }
  .mv7-notification-channels button { border-right:0; border-bottom:1px solid var(--v2-line); }
  .mv7-notification-channels button:last-child { border-bottom:0; }
  .mv7-category-toolbar { grid-template-columns:1fr; }
  .mv7-category-filters { grid-template-columns:repeat(3,1fr); }
  .mv7-category-workspace,.mv7-category-inspector { grid-template-columns:1fr; }
  .mv7-category-table-head { display:none; }
  .mv7-category-list-table .mv7-category-chip { grid-template-columns:42px 1fr auto; }
  .mv7-category-row-uses,.mv7-category-row-type { grid-column:2; }
  .mv7-category-row-grip { grid-column:3; grid-row:1/span 3; }
  .mv7-privacy-visibility-options,.mv7-privacy-actions,.mv7-privacy-workspace .mv7-tab-rail { grid-template-columns:1fr; }
  .mv7-privacy-policy { grid-column:auto; }
  .mv7-privacy-visibility-options button { border-right:0; border-bottom:1px solid var(--v2-line); }
  .mv7-privacy-visibility-options button:last-child { border-bottom:0; }
  .mv7-sync-workspace .mv7-tab-rail { grid-template-columns:1fr; }
  .mv7-sync-offline { grid-column:auto; }
  .mv7-sync-flow .mv7-how-grid>div:not(:last-child)::after { display:none; }
  .mv7-sync-control { grid-template-columns:34px 1fr auto; }
  .mv7-profile-workspace .mv7-tab-rail { grid-template-columns:1fr; }.mv7-profile-session-button{grid-column:auto}
  .mv7-profile-workspace .mv7-profile-card { grid-template-columns:1fr; }
  .mv7-profile-workspace .mv7-settings-fields,.mv7-profile-workspace .mv7-profile-card>#settings-profile-save { grid-column:1; }
  .mv7-profile-workspace .mv7-profile-card>#settings-profile-save { width:100%; }
}

/* Calendario V2 — horizonte financiero continuo */
.mv7-calendar-view {
  min-height: calc(100vh - var(--v2-topbar-height));
  padding: 30px clamp(22px, 3vw, 48px) 38px;
}

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

.mv7-calendar-heading h2 {
  margin: 5px 0 4px;
  font-size: clamp(34px, 3.2vw, 48px);
  font-weight: 470;
  letter-spacing: -0.055em;
}

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

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

.mv7-calendar-horizon {
  position: relative;
  overflow: hidden;
  min-height: 710px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background:
    radial-gradient(ellipse at 56% 44%, rgba(29, 112, 83, 0.08), transparent 40%),
    linear-gradient(180deg, rgba(9, 12, 11, 0.36), rgba(4, 6, 5, 0.2));
}

.mv7-calendar-controls {
  position: relative;
  z-index: 8;
  display: flex;
  min-height: 68px;
  align-items: center;
  gap: 9px;
  padding: 13px 15px;
}

.mv7-calendar-controls .mv7-icon-button:nth-child(2) svg {
  transform: none;
}

#calendar-prev svg {
  transform: rotate(180deg);
}

.mv7-calendar-controls h3 {
  min-width: 136px;
  margin: 0 4px;
  font-size: 12px;
  font-weight: 560;
  text-align: center;
}

.mv7-calendar-controls .mv7-secondary-button {
  min-height: 38px;
  padding-inline: 18px;
}

.mv7-calendar-bills-summary {
  margin-left: 4px;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
  font-weight: 550;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.mv7-calendar-bills-summary[data-all-paid='true'] {
  color: #4de4b2;
}

.mv7-calendar-scroll {
  overflow: hidden;
  width: 100%;
}

.mv7-calendar-runway {
  position: relative;
  min-width: 980px;
  height: 550px;
  isolation: isolate;
}

.mv7-calendar-runway::before {
  position: absolute;
  z-index: -2;
  inset: 55px 0 0;
  background-image: linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: calc(100% / 12) 100%;
  content: '';
  mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}

.mv7-calendar-days,
.mv7-calendar-events {
  position: absolute;
  inset: 0 104px 0 70px;
}

.mv7-calendar-day {
  position: absolute;
  top: 8px;
  display: grid;
  justify-items: center;
  gap: 2px;
  color: rgba(255, 255, 255, 0.46);
  transform: translateX(-50%);
}

.mv7-calendar-day::after {
  width: 3px;
  height: 3px;
  margin-top: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.34);
  content: '';
}

.mv7-calendar-day span {
  font-size: var(--v2-text-micro);
  font-weight: 650;
}

.mv7-calendar-day strong {
  font-size: 14px;
  font-weight: 500;
}

.mv7-calendar-day.is-today {
  color: #52e5b7;
}

.mv7-calendar-day.is-today::after {
  background: #52e5b7;
  box-shadow: 0 0 9px #52e5b7;
}

.mv7-calendar-today-axis {
  position: absolute;
  z-index: 2;
  top: 51px;
  bottom: 8px;
  width: 1px;
  background: linear-gradient(#4df0b9, rgba(77, 240, 185, 0.08));
  box-shadow: 0 0 13px rgba(77, 240, 185, 0.48);
}

.mv7-calendar-today-axis span {
  position: absolute;
  top: -20px;
  left: 8px;
  color: #52e5b7;
  font-size: var(--v2-text-micro);
  font-weight: 760;
  letter-spacing: 0.12em;
}

.mv7-calendar-today-axis i {
  position: absolute;
  top: 215px;
  left: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #52e5b7;
  box-shadow: 0 0 12px #52e5b7;
}

.mv7-calendar-scale {
  position: absolute;
  z-index: 3;
  top: 112px;
  bottom: 87px;
  left: 8px;
  display: flex;
  width: 45px;
  flex-direction: column;
  justify-content: space-between;
  color: rgba(255, 255, 255, 0.34);
  font-size: var(--v2-text-micro);
  text-align: right;
}

.mv7-calendar-scale::after {
  position: absolute;
  top: 0;
  right: -9px;
  bottom: 0;
  width: 1px;
  background: rgba(255, 255, 255, 0.22);
  content: '';
}

.mv7-calendar-zero-line {
  position: absolute;
  z-index: 1;
  top: 270px;
  right: 12px;
  left: 58px;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.42), rgba(255, 255, 255, 0.09));
}

.mv7-calendar-zero-line span {
  position: absolute;
  top: -23px;
  left: -48px;
  width: 42px;
  color: rgba(255, 255, 255, 0.47);
  font-size: var(--v2-text-micro);
  line-height: 1.35;
}

.mv7-calendar-balance {
  position: absolute;
  z-index: 1;
  inset: 0 0 30px;
  width: 100%;
  height: 520px;
  overflow: visible;
  pointer-events: none;
}

.mv7-calendar-balance-path {
  fill: none;
  stroke: #58d6ff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 5px rgba(88, 214, 255, 0.46));
}

.mv7-calendar-balance-area {
  fill: url(#calendar-balance-fill);
}

.mv7-calendar-event {
  position: absolute;
  z-index: 4;
  top: var(--event-top);
  left: var(--event-x);
  display: grid;
  width: 148px;
  min-height: 51px;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--event-color) 58%, transparent);
  border-radius: 11px;
  background:
    linear-gradient(110deg, color-mix(in srgb, var(--event-color) 15%, transparent), transparent),
    rgba(7, 11, 10, 0.9);
  box-shadow:
    0 14px 28px rgba(0, 0, 0, 0.3),
    inset 0 1px color-mix(in srgb, var(--event-color) 18%, transparent);
  color: var(--v2-text);
  cursor: pointer;
  outline: none;
  transform: translateX(-50%);
  backdrop-filter: blur(16px);
  transition:
    width 260ms ease,
    min-height 260ms ease,
    filter 180ms ease;
}

.mv7-calendar-event.is-income {
  --event-color: #43e3ad;
}

.mv7-calendar-event.is-expense {
  --event-color: #f0804f;
}

.mv7-calendar-event.is-paid {
  opacity: 0.62;
}

.mv7-calendar-event.is-paid > div strong {
  text-decoration: line-through;
  text-decoration-color: color-mix(in srgb, var(--event-color) 60%, transparent);
}

.mv7-calendar-event-toggle {
  position: absolute;
  top: -7px;
  right: -7px;
  z-index: 5;
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(10, 12, 11, 0.92);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition:
    background 140ms ease,
    border-color 140ms ease,
    color 140ms ease,
    transform 140ms ease;
}

.mv7-calendar-event-toggle svg {
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.mv7-calendar-event-toggle:hover,
.mv7-calendar-event-toggle:focus-visible {
  border-color: rgba(255, 255, 255, 0.5);
  color: var(--v2-text);
  transform: scale(1.08);
}

.mv7-calendar-event-toggle.is-paid {
  border-color: rgba(77, 228, 178, 0.65);
  background: rgba(77, 228, 178, 0.18);
  color: #4de4b2;
}

.mv7-calendar-event-delete,
.mv7-calendar-event-edit {
  position: absolute;
  top: -7px;
  left: -7px;
  z-index: 5;
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(10, 12, 11, 0.92);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition:
    background 140ms ease,
    border-color 140ms ease,
    color 140ms ease,
    transform 140ms ease;
}

.mv7-calendar-event-delete svg,
.mv7-calendar-event-edit svg {
  width: 11px;
  height: 11px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.mv7-calendar-event-delete:hover,
.mv7-calendar-event-delete:focus-visible {
  border-color: rgba(255, 123, 114, 0.65);
  background: rgba(255, 123, 114, 0.18);
  color: #ff7b72;
  transform: scale(1.08);
}

.mv7-calendar-event-edit {
  right: auto;
  left: 18px;
}

.mv7-calendar-event-edit:hover,
.mv7-calendar-event-edit:focus-visible {
  border-color: rgba(92, 184, 255, 0.68);
  background: rgba(92, 184, 255, 0.18);
  color: #5cb8ff;
  transform: scale(1.08);
}

.mv7-calendar-event:hover,
.mv7-calendar-event:focus-visible {
  z-index: 9;
  filter: brightness(1.15);
}

.mv7-calendar-event.is-selected {
  z-index: 10;
  width: min(430px, 38vw);
  min-height: 126px;
  grid-template-columns: 48px minmax(0, 1fr);
  padding: 16px 18px;
  border-radius: 14px;
  background:
    linear-gradient(
      105deg,
      color-mix(in srgb, var(--event-color) 20%, transparent),
      transparent 82%
    ),
    rgba(12, 14, 13, 0.94);
}

.mv7-calendar-event.is-near-start {
  transform: none;
}

.mv7-calendar-event.is-near-end {
  transform: translateX(-100%);
}

.mv7-calendar-event > svg {
  width: 27px;
  height: 27px;
  padding: 5px;
  border: 1px solid color-mix(in srgb, var(--event-color) 40%, transparent);
  border-radius: 50%;
  fill: none;
  stroke: var(--event-color);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.mv7-calendar-event.is-selected > svg {
  width: 46px;
  height: 46px;
  padding: 10px;
}

.mv7-calendar-event > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.mv7-calendar-event > div strong {
  overflow: hidden;
  font-size: var(--v2-text-xs);
  font-weight: 560;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-calendar-event > div span {
  color: var(--event-color);
  font-size: var(--v2-text-micro);
}

.mv7-calendar-event.is-selected > div strong {
  font-size: 19px;
  font-weight: 480;
  letter-spacing: -0.025em;
}

.mv7-calendar-event.is-selected > div span {
  font-size: 14px;
}

.mv7-calendar-event footer {
  display: flex;
  grid-column: 1 / -1;
  align-items: center;
  gap: 0;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.09);
}

.mv7-calendar-event footer span {
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--v2-text-micro);
  white-space: nowrap;
}

.mv7-calendar-event footer span + span::before {
  margin-inline: 12px;
  content: '|';
  color: rgba(255, 255, 255, 0.22);
}

.mv7-calendar-event::after,
.mv7-calendar-event::before {
  position: absolute;
  left: 50%;
  width: 1px;
  background: linear-gradient(
    var(--event-color),
    color-mix(in srgb, var(--event-color) 15%, transparent)
  );
  content: '';
  pointer-events: none;
}

.mv7-calendar-event.is-income::after {
  top: 100%;
  height: calc(270px - var(--event-top) - 51px);
}

.mv7-calendar-event.is-income.is-selected::after {
  height: calc(270px - var(--event-top) - 126px);
}

.mv7-calendar-event.is-expense::before {
  bottom: 100%;
  height: calc(var(--event-top) - 270px);
}

.mv7-calendar-event::after {
  box-shadow: 0 0 5px color-mix(in srgb, var(--event-color) 45%, transparent);
}

.mv7-calendar-landing {
  position: absolute;
  z-index: 6;
  top: 205px;
  right: 7px;
  display: grid;
  width: 118px;
  min-height: 92px;
  align-content: center;
  gap: 8px;
  padding-left: 15px;
  border-block: 1px solid #5adfff;
  border-right: 1px solid #5adfff;
  border-radius: 0 8px 8px 0;
  background: rgba(7, 13, 14, 0.72);
  box-shadow: 8px 0 18px rgba(90, 223, 255, 0.09);
}

.mv7-calendar-landing::before,
.mv7-calendar-landing::after {
  position: absolute;
  left: -9px;
  width: 10px;
  height: 1px;
  background: #5adfff;
  content: '';
}

.mv7-calendar-landing::before {
  top: -1px;
}

.mv7-calendar-landing::after {
  bottom: -1px;
}

.mv7-calendar-landing span {
  color: #7be6ff;
  font-size: var(--v2-text-micro);
  font-weight: 700;
  letter-spacing: 0.07em;
  white-space: nowrap;
}

.mv7-calendar-landing strong {
  color: #7be6ff;
  font-size: 16px;
  font-weight: 530;
}

.mv7-calendar-summary {
  display: grid;
  min-height: 90px;
  grid-template-columns: minmax(190px, 0.7fr) minmax(430px, 1.3fr);
  align-items: center;
  gap: 20px;
  padding: 14px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.mv7-calendar-summary-label {
  display: flex;
  align-items: center;
  gap: 11px;
  color: #4de4b2;
  font-size: var(--v2-text-micro);
  font-weight: 690;
  letter-spacing: 0.07em;
}

.mv7-calendar-summary-label svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: #4de4b2;
  stroke-width: 1.5;
}

.mv7-calendar-summary dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
}

.mv7-calendar-summary dl > div {
  display: grid;
  gap: 6px;
  padding: 3px 25px;
  border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.mv7-calendar-summary dt {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  letter-spacing: 0.08em;
}

.mv7-calendar-summary dd {
  margin: 0;
  font-size: 14px;
  font-weight: 520;
}

.mv7-calendar-summary dl > div:first-child dd {
  color: #4de4b2;
}

.mv7-calendar-summary dl > div:nth-child(2) dd {
  color: #f19967;
}

.mv7-calendar-summary dl > div:last-child dd {
  color: #78e6ff;
}

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

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

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

  .mv7-calendar-heading > div > p:last-child {
    font-size: var(--v2-text-xs);
  }

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

  .mv7-calendar-heading .mv7-primary-button svg {
    width: 15px;
    height: 15px;
  }

  .mv7-calendar-horizon {
    min-height: 0;
    border: 1px solid var(--v2-line);
    border-radius: 13px;
  }

  .mv7-calendar-controls {
    min-height: 62px;
    padding-inline: 11px;
  }

  .mv7-calendar-controls h3 {
    min-width: 114px;
    font-size: var(--v2-text-xs);
  }

  .mv7-calendar-controls .mv7-secondary-button {
    margin-left: auto;
    padding-inline: 13px;
  }

  .mv7-calendar-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(77, 228, 178, 0.35) transparent;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mv7-calendar-runway {
    min-width: 1040px;
  }

  .mv7-calendar-event.is-selected {
    width: 410px;
  }

  .mv7-calendar-summary {
    min-height: 118px;
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 15px 14px;
  }

  .mv7-calendar-summary dl > div {
    padding-inline: 11px;
  }

  .mv7-calendar-summary dd {
    font-size: var(--v2-text-xs);
  }
}

/* Recurrentes V2 — sistema orbital de decisiones */
.mv7-recurring-view {
  min-height: calc(100vh - var(--v2-topbar-height));
  padding: 30px clamp(22px, 3vw, 48px) 36px;
}

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

.mv7-recurring-heading h2 {
  margin: 5px 0 4px;
  font-size: clamp(34px, 3.2vw, 48px);
  font-weight: 470;
  letter-spacing: -0.055em;
}

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

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

.mv7-orbit-system {
  position: relative;
  overflow: hidden;
  min-height: 720px;
}

.mv7-orbit-scroll {
  overflow: hidden;
  width: 100%;
}

.mv7-orbit-field {
  position: relative;
  min-width: 0;
  height: 570px;
  background:
    radial-gradient(circle at 40% 44%, rgba(85, 229, 188, 0.08), transparent 19%),
    radial-gradient(ellipse at 41% 44%, rgba(49, 126, 105, 0.06), transparent 50%);
  isolation: isolate;
}

.mv7-orbit-field::before {
  position: absolute;
  z-index: -3;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px);
  background-size: 54px 54px;
  content: '';
  mask-image: radial-gradient(ellipse at 42% 48%, #000 20%, transparent 72%);
}

.mv7-orbit-track {
  position: absolute;
  z-index: -1;
  top: 45%;
  left: 40%;
  border: 1px solid var(--orbit-color);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(-7deg);
  box-shadow: 0 0 15px color-mix(in srgb, var(--orbit-color) 10%, transparent);
  opacity: 0.78;
}

.mv7-orbit-track::before,
.mv7-orbit-track::after {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--orbit-color);
  box-shadow: 0 0 10px var(--orbit-color);
  content: '';
}

.mv7-orbit-track::before {
  top: 14%;
  left: 15%;
}

.mv7-orbit-track::after {
  right: 10%;
  bottom: 18%;
}

.mv7-orbit-track > span {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 3px 9px;
  background: var(--v2-canvas);
  color: var(--orbit-color);
  font-size: var(--v2-text-xs);
  font-weight: 590;
  white-space: nowrap;
  transform: rotate(7deg);
}

.mv7-orbit-track > span::before {
  width: 8px;
  height: 8px;
  border: 1px solid currentColor;
  border-radius: 50%;
  content: '';
}

.mv7-orbit-track-essential {
  --orbit-color: rgba(72, 234, 181, 0.82);
  width: 52%;
  height: 53%;
}

.mv7-orbit-track-essential > span {
  top: -28px;
  left: 39%;
}

.mv7-orbit-track-review {
  --orbit-color: rgba(241, 181, 87, 0.82);
  width: 72%;
  height: 72%;
}

.mv7-orbit-track-review > span {
  bottom: 7%;
  left: 18%;
}

.mv7-orbit-track-optional {
  --orbit-color: rgba(255, 107, 98, 0.78);
  width: 91%;
  height: 90%;
}

.mv7-orbit-track-optional > span {
  bottom: -13px;
  left: 38%;
}

.mv7-orbit-core {
  position: absolute;
  z-index: 2;
  top: 45%;
  left: 40%;
  display: grid;
  width: 218px;
  height: 218px;
  align-content: center;
  justify-items: center;
  gap: 8px;
  border: 1px solid rgba(196, 255, 234, 0.55);
  border-radius: 50%;
  background:
    radial-gradient(circle at 45% 35%, rgba(203, 255, 239, 0.22), transparent 24%),
    radial-gradient(circle at 50% 55%, rgba(26, 89, 70, 0.58), rgba(6, 13, 11, 0.91) 68%);
  box-shadow:
    inset 0 0 36px rgba(150, 255, 220, 0.16),
    0 0 32px rgba(94, 235, 188, 0.16),
    0 24px 60px rgba(0, 0, 0, 0.38);
  transform: translate(-50%, -50%);
  backdrop-filter: blur(20px);
}

.mv7-orbit-core::before,
.mv7-orbit-core::after {
  position: absolute;
  border-radius: 50%;
  content: '';
}

.mv7-orbit-core::before {
  inset: 11px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.mv7-orbit-core::after {
  top: 23px;
  right: 38px;
  width: 32px;
  height: 13px;
  background: rgba(220, 255, 244, 0.18);
  filter: blur(8px);
}

.mv7-orbit-core > i {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 50%;
}

.mv7-orbit-core > i::before,
.mv7-orbit-core > i::after {
  position: absolute;
  right: -15%;
  left: -15%;
  height: 42px;
  border: 1px solid rgba(133, 255, 217, 0.13);
  border-radius: 50%;
  content: '';
}

.mv7-orbit-core > i::before {
  top: 74px;
}

.mv7-orbit-core > i::after {
  top: 112px;
}

.mv7-orbit-core strong {
  z-index: 1;
  font-size: 19px;
  font-weight: 530;
  letter-spacing: -0.025em;
}

.mv7-orbit-core span {
  z-index: 1;
  color: rgba(255, 255, 255, 0.65);
  font-size: var(--v2-text-xs);
}

.mv7-orbit-nodes {
  position: absolute;
  inset: 0 126px 0 0;
}

.mv7-recurring-node {
  position: absolute;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 0;
  background: transparent;
  color: var(--v2-text);
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition:
    opacity 180ms ease,
    filter 180ms ease,
    transform 220ms ease;
}

.mv7-recurring-node:hover,
.mv7-recurring-node:focus-visible {
  z-index: 12;
  filter: brightness(1.2);
  outline: none;
  transform: translate(-50%, -50%) scale(1.04);
}

.mv7-recurring-node.is-selected {
  opacity: 0;
  pointer-events: none;
}

.mv7-recurring-node.is-paused {
  opacity: 0.42;
}

.mv7-recurring-node > span:first-child {
  display: grid;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  place-items: center;
  border: 1px solid var(--node-color);
  border-radius: 50%;
  background:
    radial-gradient(
      circle at 40% 30%,
      color-mix(in srgb, var(--node-color) 22%, transparent),
      transparent 42%
    ),
    rgba(9, 13, 12, 0.93);
  box-shadow:
    inset 0 0 15px color-mix(in srgb, var(--node-color) 13%, transparent),
    0 0 15px color-mix(in srgb, var(--node-color) 14%, transparent);
}

.mv7-recurring-node > span:first-child svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: var(--node-color);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.mv7-recurring-node > span:last-child {
  display: grid;
  min-width: 105px;
  gap: 4px;
  text-align: left;
}

.mv7-recurring-node strong {
  font-size: var(--v2-text-xs);
  font-weight: 570;
}

.mv7-recurring-node small {
  color: rgba(255, 255, 255, 0.56);
  font-size: var(--v2-text-micro);
}

.mv7-recurring-node.is-essential {
  --node-color: #65ebbd;
}

.mv7-recurring-node.is-review {
  --node-color: #f3b557;
}

.mv7-recurring-node.is-optional {
  --node-color: #ff7469;
}

.mv7-orbit-analysis[hidden] {
  display: none;
}

.mv7-orbit-analysis {
  position: absolute;
  z-index: 11;
  top: 54%;
  right: 118px;
  display: grid;
  width: 58%;
  min-height: 145px;
  grid-template-columns: 150px minmax(260px, 1fr) 88px;
  align-items: center;
  gap: 10px;
  padding: 18px 15px 18px 0;
  border: 1px solid #58d6ff;
  border-left: 0;
  border-radius: 0 18px 18px 0;
  background:
    linear-gradient(90deg, rgba(23, 116, 144, 0.22), rgba(5, 12, 14, 0.91) 74%),
    rgba(6, 11, 12, 0.88);
  box-shadow:
    inset 0 0 28px rgba(88, 214, 255, 0.08),
    0 0 25px rgba(88, 214, 255, 0.16);
  backdrop-filter: blur(20px);
}

.mv7-recurring-analysis-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  transform: translateX(-25px);
}

.mv7-recurring-analysis-identity > span {
  display: grid;
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  place-items: center;
  border: 1px solid #58d6ff;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(29, 130, 162, 0.48), rgba(4, 13, 16, 0.96) 72%);
  box-shadow:
    inset 0 0 22px rgba(88, 214, 255, 0.25),
    0 0 18px rgba(88, 214, 255, 0.28);
}

.mv7-recurring-analysis-identity svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: #74e2ff;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.5;
}

.mv7-recurring-analysis-identity > div {
  display: grid;
  gap: 6px;
}

.mv7-recurring-analysis-identity strong {
  font-size: 14px;
  font-weight: 530;
}

.mv7-recurring-analysis-identity div span {
  color: #72e3ff;
  font-size: var(--v2-text-xs);
}

.mv7-orbit-analysis dl {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(4, 1fr);
  margin: 0;
}

.mv7-orbit-analysis dl > div {
  display: grid;
  min-width: 0;
  gap: 7px;
  padding-inline: 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.09);
  text-align: center;
}

.mv7-orbit-analysis dt {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-orbit-analysis dd {
  overflow: hidden;
  margin: 0;
  color: var(--v2-text);
  font-size: var(--v2-text-micro);
  font-weight: 550;
  text-overflow: ellipsis;
}

.mv7-recurring-analysis-actions {
  display: grid;
  gap: 9px;
}

.mv7-recurring-analysis-actions button {
  min-height: 34px;
  padding: 0 10px;
  font-size: var(--v2-text-micro);
}

.mv7-recurring-impact {
  position: absolute;
  z-index: 5;
  top: 56px;
  right: 11px;
  bottom: 72px;
  display: grid;
  width: 82px;
  align-content: start;
  gap: 6px;
  padding-left: 17px;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.mv7-recurring-impact > span {
  max-width: 76px;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.mv7-recurring-impact > strong {
  margin-top: 4px;
  color: #4de4b2;
  font-size: var(--v2-text-xs);
  font-weight: 560;
}

.mv7-recurring-impact > small {
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--v2-text-micro);
}

.mv7-recurring-impact-gauge {
  position: absolute;
  top: 110px;
  bottom: 0;
  left: 26px;
  width: 17px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: linear-gradient(
    to top,
    rgba(255, 107, 98, 0.75),
    rgba(243, 181, 87, 0.55) 45%,
    rgba(50, 230, 161, 0.65)
  );
}

.mv7-recurring-impact-gauge::after {
  position: absolute;
  inset: 0;
  background: rgba(3, 5, 4, 0.7);
  content: '';
}

.mv7-recurring-impact-gauge i {
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 0;
  left: 0;
  max-height: 100%;
  background: linear-gradient(to top, #ff6b62, #f3b557 48%, #32e6a1);
  transition: height 450ms ease;
}

.mv7-recurring-impact-gauge i::before {
  position: absolute;
  top: 0;
  left: 50%;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #dffbef;
  box-shadow: 0 0 11px #65efbd;
  content: '';
  transform: translate(-50%, -50%);
}

.mv7-recurring-alert {
  position: absolute;
  right: 116px;
  bottom: 32px;
  display: flex;
  min-height: 37px;
  align-items: center;
  gap: 9px;
  padding: 8px 14px;
  border: 1px solid rgba(255, 107, 98, 0.48);
  border-radius: 18px;
  background: rgba(36, 13, 11, 0.48);
  color: #ff857b;
  font-size: var(--v2-text-micro);
}

.mv7-recurring-alert svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}

.mv7-vampire-alert[hidden] {
  display: none;
}

.mv7-vampire-alert {
  display: grid;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--v2-amber) 40%, transparent);
  border-radius: 14px;
  background: color-mix(in srgb, var(--v2-amber) 10%, rgba(10, 12, 11, 0.6));
}

.mv7-vampire-alert-head {
  display: flex;
  align-items: center;
  gap: 9px;
  color: var(--v2-amber);
  font-size: 12px;
  font-weight: 560;
}

.mv7-vampire-alert-head svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

.mv7-vampire-chips {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.mv7-vampire-chip {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 6px;
  padding: 8px 13px;
  border: 1px solid color-mix(in srgb, var(--v2-amber) 45%, transparent);
  border-radius: 999px;
  background: rgba(10, 12, 11, 0.7);
  color: var(--v2-text);
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background 140ms ease,
    border-color 140ms ease;
}

.mv7-vampire-chip:hover,
.mv7-vampire-chip:focus-visible {
  border-color: var(--v2-amber);
  background: color-mix(in srgb, var(--v2-amber) 16%, rgba(10, 12, 11, 0.7));
}

.mv7-vampire-chip svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
  fill: none;
  stroke: var(--v2-amber);
  stroke-width: 2;
}

.mv7-vampire-chip span:last-child {
  color: var(--v2-amber);
}

.mv7-recurring-simulator {
  display: grid;
  min-height: 126px;
  grid-template-columns: minmax(240px, 0.8fr) 1px minmax(170px, 0.55fr) minmax(320px, 1.15fr);
  align-items: center;
  gap: 24px;
  padding: 16px 24px;
  border: 1px solid var(--v2-line);
  border-radius: 14px;
  background: rgba(10, 13, 12, 0.75);
}

.mv7-recurring-simulator > i {
  width: 1px;
  height: 62px;
  background: rgba(255, 255, 255, 0.12);
}

.mv7-recurring-simulator-action {
  display: flex;
  align-items: center;
  gap: 16px;
}

.mv7-recurring-pause-icon {
  display: grid;
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  place-items: center;
  border: 1px solid rgba(50, 230, 161, 0.4);
  border-radius: 50%;
  background: rgba(50, 230, 161, 0.08);
  color: #65e9bd;
  font-size: 21px;
}

.mv7-recurring-simulator-action > div,
.mv7-recurring-saving {
  display: grid;
  gap: 5px;
}

.mv7-recurring-simulator-action strong {
  font-size: 13px;
  font-weight: 530;
}

.mv7-recurring-simulator-action small,
.mv7-recurring-saving span,
.mv7-recurring-saving small {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-recurring-saving strong {
  color: #4de4b2;
  font-size: 19px;
  font-weight: 540;
}

.mv7-recurring-projection {
  display: grid;
  grid-template-columns: auto minmax(80px, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.mv7-recurring-projection > span {
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-recurring-projection > i {
  height: 1px;
  background: linear-gradient(90deg, #4de4b2, rgba(77, 228, 178, 0.2));
}

.mv7-recurring-projection b,
.mv7-recurring-projection em {
  font-size: var(--v2-text-xs);
  font-style: normal;
  font-weight: 520;
}

.mv7-recurring-projection b {
  color: rgba(255, 255, 255, 0.58);
}

.mv7-recurring-projection em {
  justify-self: end;
  color: #4de4b2;
}

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

@media (max-width: 1100px) and (min-width: 769px) {
  .mv7-orbit-scroll {
    overflow-x: auto;
  }

  .mv7-orbit-field {
    min-width: 900px;
  }

  .mv7-orbit-analysis {
    width: 62%;
    grid-template-columns: 145px minmax(250px, 1fr) 88px;
  }

  .mv7-orbit-analysis dl > div {
    padding-inline: 7px;
  }
}

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

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

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

  .mv7-recurring-heading > div > p:last-child {
    max-width: 245px;
    font-size: var(--v2-text-xs);
  }

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

  .mv7-recurring-heading .mv7-primary-button svg {
    width: 15px;
    height: 15px;
  }

  .mv7-orbit-system {
    min-height: 0;
  }

  .mv7-orbit-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    border: 1px solid var(--v2-line);
    border-radius: 13px 13px 0 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(77, 228, 178, 0.35) transparent;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mv7-orbit-field {
    min-width: 1060px;
    height: 620px;
  }

  .mv7-orbit-analysis {
    top: 55%;
    width: 58%;
    grid-template-columns: 170px minmax(290px, 1fr) 100px;
  }

  .mv7-recurring-impact {
    right: 10px;
  }

  .mv7-recurring-simulator {
    min-height: 210px;
    grid-template-columns: 1fr 1fr;
    gap: 17px;
    padding: 17px 14px;
    border-radius: 0 0 13px 13px;
  }

  .mv7-recurring-simulator > i {
    display: none;
  }

  .mv7-recurring-simulator-action {
    grid-column: 1 / -1;
  }

  .mv7-recurring-projection {
    grid-column: 1 / -1;
  }

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

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

/* Mobile refinement pass: each instrument reflows instead of shrinking. */
@media (max-width: 768px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  button,
  input,
  select,
  textarea {
    touch-action: manipulation;
  }

  .mv7-menu-button,
  .mv7-topbar .mv7-icon-button,
  .mv7-topbar .mv7-avatar {
    width: 44px;
    height: 44px;
    flex-basis: 44px;
  }

  .mv7-topbar {
    gap: 12px;
    padding-inline: 14px;
  }

  .mv7-page-identity h1 {
    font-size: 16px;
  }

  .mv7-page-identity p {
    max-width: min(54vw, 270px);
    line-height: 1.35;
  }

  .mv7-primary-button,
  .mv7-secondary-button,
  .mv7-danger-button,
  .mv7-period-control,
  .mv7-tx-select,
  .mv7-tx-type-filter {
    min-height: 44px;
  }

  /* Inicio: a deliberate, finger-snapping metric rail. */
  .mv7-metric-grid {
    padding: 0 18px 4px 0;
    scroll-padding-inline: 0 18px;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .mv7-metric {
    width: calc(100vw - 48px);
    min-width: calc(100vw - 48px);
    min-height: 166px;
    scroll-snap-stop: always;
  }

  .mv7-transaction-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    padding-inline: 10px;
  }

  .mv7-transaction-row > .mv7-transaction-token {
    display: grid;
  }

  .mv7-transaction-copy strong {
    font-size: var(--v2-text-sm);
  }

  .mv7-transaction-copy span {
    font-size: var(--v2-text-micro);
  }

  .mv7-transaction-amount {
    max-width: 126px;
    font-size: var(--v2-text-micro);
  }

  /* Movimientos: keep complete values and comfortable filter targets. */
  .mv7-tx-summary-item:nth-child(2) strong,
  .mv7-tx-summary-item:nth-child(3) strong {
    font-size: clamp(14px, 4.1vw, 17px);
    letter-spacing: -0.055em;
  }

  .mv7-tx-search,
  .mv7-tx-select,
  .mv7-tx-type-filter {
    height: 44px;
  }

  .mv7-tx-type-filter button {
    min-height: 36px;
    padding-inline: 11px;
  }

  .mv7-tx-row {
    min-height: 72px;
  }

  /* Cuentas: compress the selected context without losing the map. */
  .mv7-money-map-canvas {
    gap: 11px;
    padding: 13px;
  }

  .mv7-money-source {
    min-height: 105px;
    padding: 16px;
  }

  .mv7-money-node {
    min-height: 60px;
  }

  .mv7-account-focus-main {
    padding: 19px 18px 18px;
  }

  .mv7-account-focus-heading {
    margin-bottom: 18px;
  }

  .mv7-account-focus-main > strong {
    font-size: clamp(25px, 7.7vw, 30px);
  }

  .mv7-account-actions {
    margin-top: 18px;
  }

  .mv7-account-focus-insight {
    padding: 16px 18px 17px;
  }

  .mv7-account-focus-insight > svg {
    height: 88px;
    margin-block: 2px;
  }

  .mv7-account-insight-stats {
    padding-top: 10px;
  }

  .mv7-account-layer {
    min-height: 72px;
  }

  /* Presupuestos: only the active lane expands; the rest become readable sparklines. */
  .mv7-budget-lane-main,
  .mv7-budget-lane.is-expanded .mv7-budget-lane-main {
    padding: 13px 14px 9px;
  }

  .mv7-budget-lane:not(.is-expanded) .mv7-budget-lane-track {
    height: 48px;
  }

  .mv7-budget-lane.is-expanded .mv7-budget-lane-track {
    height: 92px;
  }

  .mv7-budget-lane-detail {
    gap: 12px;
    padding-bottom: 14px;
  }

  .mv7-budget-lane-controls {
    padding-top: 10px;
  }

  .mv7-budget-lane-controls .mv7-secondary-button {
    min-height: 42px;
  }

  /* Objetivos: retain the monoliths, with less empty vertical travel. */
  .mv7-future-scene-header {
    min-height: 104px;
  }

  .mv7-goal-selected {
    min-height: 420px;
    grid-template-columns: 102px minmax(112px, 1fr);
    padding-bottom: 22px;
  }

  .mv7-goal-selected .mv7-goal-monolith {
    min-height: 275px;
  }

  .mv7-goal-compact {
    min-height: 210px;
    padding-block: 12px 20px;
  }

  .mv7-goal-compact .mv7-goal-monolith {
    min-height: 138px;
  }

  .mv7-goal-milestones {
    min-height: 0;
  }

  /* Calendario: a smaller runway that centers the active commitment. */
  .mv7-calendar-heading .mv7-primary-button,
  .mv7-recurring-heading .mv7-primary-button,
  .mv7-networth-heading .mv7-primary-button,
  .mv7-goals-heading-actions .mv7-secondary-button {
    width: 44px;
    min-width: 44px;
    height: 44px;
  }

  .mv7-calendar-controls .mv7-icon-button {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .mv7-calendar-scroll {
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .mv7-calendar-scroll::-webkit-scrollbar {
    display: none;
  }

  .mv7-calendar-runway {
    min-width: 720px;
  }

  .mv7-calendar-event {
    scroll-snap-align: center;
  }

  .mv7-calendar-event:not(.is-selected) {
    width: 46px;
    min-height: 46px;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 8px;
    border-radius: 50%;
  }

  .mv7-calendar-event:not(.is-selected) > div {
    display: none;
  }

  .mv7-calendar-event:not(.is-selected) > svg {
    width: 28px;
    height: 28px;
    padding: 6px;
  }

  .mv7-calendar-event.is-selected {
    width: 276px;
    min-height: 108px;
    grid-template-columns: 42px minmax(0, 1fr);
    padding: 14px 15px;
  }

  .mv7-calendar-event.is-selected > svg {
    width: 40px;
    height: 40px;
    padding: 8px;
  }

  .mv7-calendar-event.is-selected > div strong {
    font-size: 16px;
  }

  .mv7-calendar-event.is-selected > div span {
    font-size: 12px;
  }

  .mv7-calendar-event footer {
    margin-top: 6px;
    padding-top: 8px;
  }

  .mv7-calendar-event footer span {
    font-size: var(--v2-text-micro);
  }

  .mv7-calendar-event footer span + span::before {
    margin-inline: 6px;
  }

  .mv7-calendar-landing {
    width: 98px;
    padding-left: 12px;
  }

  /* Recurrentes: the orbit fits the phone; services live in a tactile rail. */
  .mv7-orbit-scroll {
    overflow: visible;
    border: 1px solid var(--v2-line);
    border-radius: 13px 13px 0 0;
  }

  .mv7-orbit-field {
    width: 100%;
    min-width: 0;
    height: 620px;
    overflow: hidden;
  }

  .mv7-orbit-track {
    top: 25%;
    left: 50%;
  }

  .mv7-orbit-track-essential {
    width: 76%;
    height: 35%;
  }

  .mv7-orbit-track-review {
    width: 110%;
    height: 50%;
  }

  .mv7-orbit-track-optional {
    width: 140%;
    height: 65%;
  }

  .mv7-orbit-track-essential > span {
    top: -24px;
    left: 34%;
  }

  .mv7-orbit-track-review > span,
  .mv7-orbit-track-optional > span {
    display: none;
  }

  .mv7-orbit-core {
    top: 25%;
    left: 50%;
    width: 172px;
    height: 172px;
  }

  .mv7-orbit-core strong {
    font-size: 16px;
  }

  .mv7-orbit-core span {
    font-size: var(--v2-text-xs);
  }

  .mv7-orbit-nodes {
    position: absolute;
    z-index: 15;
    display: flex;
    gap: 8px;
    padding: 5px 12px 12px;
    overflow-x: auto;
    inset: 282px 0 auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .mv7-orbit-nodes::-webkit-scrollbar {
    display: none;
  }

  .mv7-recurring-node {
    position: relative;
    min-width: 118px;
    min-height: 62px;
    flex: 0 0 118px;
    gap: 7px;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--node-color) 26%, transparent);
    border-radius: 12px;
    background: color-mix(in srgb, var(--node-color) 6%, rgba(5, 9, 8, 0.94));
    left: auto !important;
    top: auto !important;
    transform: none;
    scroll-snap-align: start;
  }

  .mv7-recurring-node:hover,
  .mv7-recurring-node:focus-visible {
    transform: none;
  }

  .mv7-recurring-node.is-selected {
    display: none;
  }

  .mv7-recurring-node > span:first-child {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
  }

  .mv7-recurring-node > span:first-child svg {
    width: 19px;
    height: 19px;
  }

  .mv7-recurring-node > span:last-child {
    min-width: 0;
  }

  .mv7-recurring-node strong,
  .mv7-recurring-node small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-orbit-analysis {
    top: 360px;
    right: 12px;
    left: 12px;
    width: auto;
    min-height: 0;
    grid-template-columns: 1fr;
    gap: 13px;
    padding: 15px;
    border-left: 1px solid #58d6ff;
    border-radius: 14px;
  }

  .mv7-recurring-analysis-identity {
    gap: 10px;
    transform: none;
  }

  .mv7-recurring-analysis-identity > span {
    width: 46px;
    height: 46px;
    flex-basis: 46px;
  }

  .mv7-recurring-analysis-identity svg {
    width: 24px;
    height: 24px;
  }

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

  .mv7-orbit-analysis dl > div {
    gap: 4px;
    padding: 7px 9px;
    text-align: left;
  }

  .mv7-orbit-analysis dl > div:nth-child(odd) {
    border-left: 0;
  }

  .mv7-orbit-analysis dd {
    white-space: nowrap;
  }

  .mv7-recurring-analysis-actions {
    grid-template-columns: 1fr 1fr;
  }

  .mv7-recurring-analysis-actions button {
    min-height: 42px;
  }

  .mv7-recurring-impact,
  .mv7-recurring-alert {
    display: none;
  }

  .mv7-recurring-simulator {
    min-height: 196px;
  }

  /* Patrimonio: preserve depth and enlarge the layers as tap targets. */
  .mv7-networth-primary h3 {
    font-size: clamp(30px, 9vw, 36px);
    white-space: nowrap;
  }

  .mv7-networth-layer-surface {
    min-height: 52px;
  }

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

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

@media (max-width: 390px) {
  .mv7-topbar-actions .mv7-icon-button:nth-child(2) {
    display: none;
  }

  .mv7-tx-summary-item:nth-child(2) strong,
  .mv7-tx-summary-item:nth-child(3) strong {
    font-size: 14px;
  }

  .mv7-calendar-controls {
    gap: 6px;
  }

  .mv7-calendar-controls h3 {
    min-width: 106px;
    margin-inline: 0;
  }

  .mv7-calendar-controls .mv7-secondary-button {
    padding-inline: 11px;
  }
}

/* Inicio motion language: value direction, depth and financial flow. */
.mv7-preview-badge {
  pointer-events: none;
}

@media (max-width: 768px) {
  .mv7-preview-badge {
    display: none;
  }
}

#overview-view .mv7-money-roll-char {
  display: inline-block;
  transform-origin: 50% 70%;
}

#overview-view .mv7-money-roll-char.is-up {
  animation: v2-money-roll-up 640ms cubic-bezier(0.16, 1, 0.3, 1) var(--roll-delay, 0ms) both;
}

#overview-view .mv7-money-roll-char.is-down {
  animation: v2-money-roll-down 640ms cubic-bezier(0.16, 1, 0.3, 1) var(--roll-delay, 0ms) both;
}

#overview-view .mv7-metric.is-value-up {
  animation: v2-balance-glow-up 820ms ease-out both;
}

#overview-view .mv7-metric.is-value-down {
  animation: v2-balance-glow-down 820ms ease-out both;
}

#overview-view .mv7-spark-line.is-drawing,
#overview-view .mv7-chart-line.is-drawing {
  stroke-dasharray: var(--overview-path-length);
  stroke-dashoffset: var(--overview-path-length);
  animation: v2-chart-draw 920ms cubic-bezier(0.22, 0.72, 0.18, 1) 80ms forwards;
}

#overview-view.is-entering .mv7-section-heading,
#overview-view.is-entering .mv7-metric,
#overview-view.is-entering .mv7-cashflow-panel,
#overview-view.is-entering .mv7-accounts-panel,
#overview-view.is-entering .mv7-activity-panel {
  animation: v2-overview-depth-in 620ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

#overview-view.is-entering .mv7-metric:nth-child(1) {
  animation-delay: 50ms;
}

#overview-view.is-entering .mv7-metric:nth-child(2) {
  animation-delay: 105ms;
}

#overview-view.is-entering .mv7-metric:nth-child(3) {
  animation-delay: 160ms;
}

#overview-view.is-entering .mv7-cashflow-panel {
  animation-delay: 190ms;
}

#overview-view.is-entering .mv7-accounts-panel {
  animation-delay: 245ms;
}

#overview-view.is-entering .mv7-activity-panel {
  animation-delay: 300ms;
}

#overview-view .mv7-transaction-list.is-entering .mv7-transaction-row {
  animation: v2-activity-rise 480ms cubic-bezier(0.16, 1, 0.3, 1)
    calc(250ms + var(--activity-index, 0) * 48ms) both;
}

#overview-view.is-entering .mv7-chart-area,
#overview-view.is-entering .mv7-spark-fill {
  animation: v2-chart-area-reveal 900ms ease-out 280ms both;
}

#overview-view.is-entering .mv7-chart-point {
  animation: v2-chart-point-pop 520ms cubic-bezier(0.16, 1, 0.3, 1) 920ms both;
}

@keyframes v2-money-roll-up {
  from {
    opacity: 0;
    filter: blur(4px);
    transform: translateY(72%) rotateX(-42deg);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) rotateX(0);
  }
}

@keyframes v2-money-roll-down {
  from {
    opacity: 0;
    filter: blur(4px);
    transform: translateY(-72%) rotateX(42deg);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) rotateX(0);
  }
}

@keyframes v2-balance-glow-up {
  0%,
  100% {
    border-color: rgba(255, 255, 255, 0.105);
  }
  38% {
    border-color: rgba(45, 222, 152, 0.42);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.1),
      0 0 34px rgba(45, 222, 152, 0.13),
      0 20px 52px -30px rgba(45, 222, 152, 0.34);
  }
}

@keyframes v2-balance-glow-down {
  0%,
  100% {
    border-color: rgba(255, 255, 255, 0.105);
  }
  38% {
    border-color: rgba(255, 159, 67, 0.4);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.1),
      0 0 34px rgba(255, 159, 67, 0.12),
      0 20px 52px -30px rgba(255, 159, 67, 0.3);
  }
}

@keyframes v2-chart-draw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes v2-overview-depth-in {
  from {
    opacity: 0;
    filter: blur(7px);
    transform: translateY(16px) scale(0.985);
  }
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}

@keyframes v2-activity-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes v2-chart-area-reveal {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes v2-chart-point-pop {
  from {
    opacity: 0;
    filter: blur(4px);
  }
  to {
    opacity: 1;
    filter: blur(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  #overview-view *,
  #overview-view *::before,
  #overview-view *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* ─── Inicio: accesos rápidos, personalización, ahorro/facturas/objetivos ─── */

/* Accesos rápidos: en producción (js/sections/dashboard.js,
   updateMobileHome) son exclusivos de Inicio en móvil — acá se respeta lo
   mismo, ocultos por default y visibles solo en el breakpoint móvil. */
.mv7-quick-actions-row,
#edit-quick-actions {
  display: none;
}

@media (max-width: 768px) {
  .mv7-quick-actions-row {
    display: flex;
    align-items: center;
    gap: 6px;
  }

  #edit-quick-actions {
    display: grid;
  }
}

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

.mv7-overview-secondary-grid .mv7-panel-header > div {
  min-width: 0;
  flex: 1 1 auto;
}

.mv7-overview-secondary-grid .mv7-text-link {
  flex: 0 0 auto;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .mv7-overview-secondary-grid {
    grid-template-columns: 1fr 1fr;
  }

  .mv7-savings-total-panel {
    grid-column: 1 / -1;
  }
}

@media (max-width: 860px) {
  .mv7-overview-secondary-grid {
    grid-template-columns: 1fr;
  }

  .mv7-savings-total-panel {
    grid-column: auto;
  }
}

.mv7-savings-total-panel {
  padding: 20px;
}

.mv7-savings-total-value {
  position: relative;
  z-index: 2;
  display: block;
  margin: 14px 0 4px;
  font-family: var(--v2-font);
  font-size: clamp(24px, 2vw, 28px);
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}

.mv7-savings-total-caption {
  position: relative;
  z-index: 2;
  margin: 0;
  color: var(--v2-muted);
  font-size: 12px;
}

.mv7-bills-list,
.mv7-goals-progress-list {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 15px 15px;
}

.mv7-bill-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  transition: background 150ms ease;
}

.mv7-bill-row:hover {
  background: rgba(255, 255, 255, 0.055);
}

.mv7-bill-day {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--v2-muted);
  font-family: var(--v2-font);
  font-size: var(--v2-text-sm);
  font-weight: 650;
}

.mv7-bill-row-today .mv7-bill-day {
  background: rgba(255, 159, 67, 0.16);
  color: var(--v2-amber);
}

.mv7-bill-row-overdue .mv7-bill-day {
  background: rgba(255, 98, 89, 0.16);
  color: var(--v2-red);
}

.mv7-bill-row-paid .mv7-bill-day {
  background: var(--v2-green-soft);
  color: var(--v2-green);
}

.mv7-bill-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
}

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

.mv7-bill-copy span {
  color: var(--v2-dim);
  font-size: var(--v2-text-xs);
}

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

.mv7-bill-toggle {
  display: grid;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  place-items: center;
  border: 1px solid var(--v2-line);
  border-radius: 50%;
  background: transparent;
  color: var(--v2-dim);
  cursor: pointer;
  transition:
    background 140ms ease,
    color 140ms ease,
    border-color 140ms ease;
}

.mv7-bill-toggle svg {
  width: 13px;
  height: 13px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.mv7-bill-toggle.is-paid {
  border-color: rgba(45, 222, 152, 0.3);
  background: var(--v2-green-soft);
  color: var(--v2-green);
}

.mv7-goal-progress-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.mv7-goal-progress-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 12px;
}

.mv7-goal-progress-head > span:first-child {
  overflow: hidden;
  font-weight: 590;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-goal-progress-head .mv7-private-value {
  color: var(--v2-muted);
  font-family: var(--v2-font);
  font-size: var(--v2-text-sm);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.mv7-goal-progress-head .mv7-private-value.is-complete {
  color: var(--v2-green);
}

.mv7-goal-progress-track {
  height: 4px;
  overflow: hidden;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.06);
}

.mv7-goal-progress-fill {
  height: 100%;
  border-radius: 2px;
  background: var(--v2-green);
}

.mv7-goal-progress-fill.is-complete {
  background: var(--v2-green-bright);
}

/* Diálogos sin <form> (solo header/contenido/footer): .mv7-dialog form ya
   trae el padding de 21px para los diálogos con formulario; estos usan
   .mv7-dialog-body en su lugar para el mismo padding. */
.mv7-dialog-body {
  padding: 21px;
}

.mv7-qa-picker-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.mv7-qa-picker-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 10px;
  border: 1px solid var(--v2-line);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-muted);
  cursor: pointer;
  transition:
    background 140ms ease,
    border-color 140ms ease,
    color 140ms ease;
}

.mv7-qa-picker-item:hover {
  border-color: var(--v2-line-strong);
  background: rgba(255, 255, 255, 0.055);
}

.mv7-qa-picker-item svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}

.mv7-qa-picker-item span {
  font-size: var(--v2-text-sm);
  font-weight: 550;
}

.mv7-qa-picker-check {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 14px;
  height: 14px;
  opacity: 0;
  color: var(--v2-green);
  transition: opacity 140ms ease;
}

.mv7-qa-picker-item.is-selected {
  border-color: rgba(45, 222, 152, 0.35);
  background: var(--v2-green-soft);
  color: var(--v2-text);
}

.mv7-qa-picker-item.is-selected .mv7-qa-picker-check {
  opacity: 1;
}

.mv7-dashboard-config-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 14px;
}

.mv7-config-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
}

.mv7-config-item-ghost {
  opacity: 0.4;
}

.mv7-config-drag-handle {
  display: grid;
  flex: 0 0 20px;
  place-items: center;
  color: var(--v2-dim);
  cursor: grab;
}

.mv7-config-drag-handle svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.mv7-config-label {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-switch {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: 34px;
  height: 20px;
}

.mv7-switch input {
  position: absolute;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.mv7-switch-slider {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  transition: background 160ms ease;
}

.mv7-switch-slider::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #f4f7f5;
  transition: transform 160ms ease;
}

.mv7-switch input:checked + .mv7-switch-slider {
  background: var(--v2-green);
}

.mv7-switch input:checked + .mv7-switch-slider::before {
  transform: translateX(14px);
}

/* ─── Inicio móvil: llevar los widgets nuevos al mismo nivel de pulido que
   el resto del sistema mobile de v2 (targets táctiles de 44px, tipografía
   y densidad consistentes — ver bloques @media(max-width:768px) en 4655 y
   7742 para la referencia de ese sistema). Solo CSS, mismo HTML/JS que
   escritorio. ─── */
@media (max-width: 768px) {
  /* La cabecera de Inicio pasa de la grilla rígida original (pensada para
     insignia + selector de período + botón) a flex-wrap, porque ahora
     también vive ahí la fila de accesos rápidos y los 2 botones de
     personalizar — reordenados con `order` para que el período y el botón
     de movimiento sigan juntos en la primera fila (comportamiento
     probado, sin cambios), accesos rápidos ocupe su propia fila completa,
     y los 2 íconos de edición queden juntos en una tercera fila chica. */
  .mv7-heading-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
  }

  .mv7-period-control {
    order: 1;
    flex: 1 1 auto;
  }

  #open-composer {
    order: 2;
  }

  .mv7-quick-actions-row {
    order: 3;
    flex: 1 1 100%;
    justify-content: center;
    gap: 10px;
    padding: 2px 0;
  }

  #edit-quick-actions,
  #open-dashboard-config {
    order: 4;
  }

  /* Estaba calibrado (top: 88px) para la cabecera de una sola fila; ahora
     que la cabecera crece a 3 filas, se ancla arriba del todo en vez de
     recalcular un offset mágico que dependa de cuántas filas hay. */
  .mv7-preview-badge {
    top: 2px;
  }

  .mv7-quick-actions-row .mv7-quick-action-btn {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  /* Ahorro total: mini-hero, número grande legible de un vistazo. */
  .mv7-savings-total-panel {
    padding: 18px 18px 20px;
  }

  .mv7-savings-total-value {
    margin: 12px 0 6px;
    font-size: clamp(26px, 8vw, 32px);
  }

  /* Área táctil real de 44px en los links "Ver X" de los paneles nuevos,
     sin mover el texto (padding + margen negativo compensan el offset). */
  .mv7-savings-total-panel .mv7-text-link,
  .mv7-bills-panel .mv7-text-link,
  .mv7-goals-progress-panel .mv7-text-link {
    padding: 14px 4px;
    margin: -14px -4px;
  }

  /* Próximas facturas: fila más aireada y botón de pago a tamaño táctil
     real (26px → 44px, igual que el resto de botones icon de mobile). */
  .mv7-bills-list,
  .mv7-goals-progress-list {
    padding: 8px 14px 16px;
    gap: 8px;
  }

  .mv7-bill-row {
    grid-template-columns: 36px minmax(0, 1fr) auto auto;
    min-height: 60px;
    padding: 8px 10px 8px 12px;
  }

  .mv7-bill-copy strong {
    font-size: 13px;
  }

  .mv7-bill-toggle {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
  }

  .mv7-bill-toggle svg {
    width: 16px;
    height: 16px;
  }

  /* Progreso de objetivos: barra más gruesa para que se perciba bien en
     pantalla chica, filas con más aire entre sí. */
  .mv7-goal-progress-row {
    padding: 12px 14px;
  }

  .mv7-goal-progress-track {
    height: 6px;
  }

  /* La grilla secundaria ya colapsa a 1 columna (regla ≤860px existente);
     acá solo se empareja el respiro vertical con el resto de Inicio. */
  .mv7-overview-secondary-grid {
    gap: 10px;
    margin-top: 10px;
  }

  /* Targets táctiles de 44px dentro de los 2 diálogos nuevos. */
  .mv7-qa-picker-item {
    min-height: 76px;
  }

  .mv7-config-item {
    min-height: 44px;
  }

  .mv7-config-drag-handle {
    width: 44px;
    flex-basis: 44px;
    margin: -10px 0;
  }

  .mv7-switch {
    width: 40px;
    height: 24px;
  }

  .mv7-switch-slider::before {
    width: 20px;
    height: 20px;
  }

  .mv7-switch input:checked + .mv7-switch-slider::before {
    transform: translateX(16px);
  }
}

/* ─── Inicio móvil: misma UBICACIÓN de tarjetas que el Inicio viejo
   (html/view-dashboard.html, #mobile-home-layout — ver captura de
   referencia), con el diseño propio de v2. Bienvenida → período →
   balance-hero + ingresos/gastos → accesos rápidos → resto. Escritorio no
   se toca (todo dentro de @media max-width:768px). ─── */

.mv7-welcome-card {
  display: none;
}

@media (max-width: 768px) {
  /* Contenedor de Inicio pasa a flex column: es lo que permite reordenar
     con `order` secciones que en el DOM no son hermanas directas (ver
     display:contents más abajo). Solo afecta #overview-view — .mv7-content
     no se reutiliza en ninguna otra vista. */
  #overview-view.mv7-content {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  #overview-view.mv7-content[hidden] {
    display: none;
  }

  /* Estas ya no necesitan su propio margin-top: el gap del contenedor
     reemplaza el espaciado que tenían pensado para flujo normal. */
  .mv7-analysis-grid,
  .mv7-overview-secondary-grid,
  .mv7-activity-panel {
    margin-top: 0;
  }

  .mv7-welcome-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    order: 1;
  }

  /* El avatar ya está en la topbar (arriba a la derecha) — repetirlo acá
     abajo a la izquierda leía como si fueran dos usuarios distintos. */
  .mv7-avatar.mv7-welcome-avatar {
    display: none;
  }

  .mv7-welcome-copy {
    min-width: 0;
    flex: 1;
  }

  /* Estado de cuenta/racha: repite info decorativa que no cambia la
     lectura del resto de Inicio — se saca para que el saludo quede
     como único elemento de la tarjeta de bienvenida. */
  .mv7-welcome-badges {
    display: none;
  }

  .mv7-welcome-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: var(--v2-text-xs);
    font-weight: 650;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  .mv7-welcome-badge-active {
    border: 1px solid rgba(45, 222, 152, 0.25);
    background: var(--v2-green-soft);
    color: var(--v2-green);
  }

  .mv7-welcome-badge-streak {
    border: 1px solid rgba(255, 159, 67, 0.25);
    background: rgba(255, 159, 67, 0.12);
    color: var(--v2-amber);
  }

  .mv7-welcome-badge-streak svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
  }

  .mv7-welcome-hint {
    color: var(--v2-dim);
    font-size: var(--v2-text-xs);
  }

  .mv7-welcome-title {
    margin: 0;
    font-size: 27px;
    font-weight: 650;
    letter-spacing: -0.02em;
  }

  .mv7-welcome-subtitle {
    display: block;
    margin: 4px 0 0;
    color: var(--v2-muted);
    font-size: 14px;
  }

  /* Avatar de la topbar un poco más presente en mobile, más cerca de la
     proporción de la referencia. */
  .mv7-topbar .mv7-avatar {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
    font-size: 16px;
  }

  /* La insignia "Vista previa" pasa de position:absolute (con un offset
     fijo calibrado para la cabecera vieja de 1 fila) a un item de flex
     más: con la bienvenida arriba y la cabecera aplanada más abajo, un
     `top` fijo en px ya no tiene ningún punto de referencia estable. */
  .mv7-preview-badge {
    position: static;
    order: 2;
    align-self: flex-start;
  }

  /* La tarjeta de bienvenida cubre el saludo, pero "Panorama" sigue
     siendo el rótulo real de la sección de estadísticas de abajo — la
     referencia lo muestra, así que vuelve a aparecer (antes se ocultaba
     por completo). La fecha tipo "HOY" sí se saca, es la única parte
     redundante. Los controles reales (período, accesos rápidos, botón
     de movimiento) se "aplanan" para que sus hijos participen directo
     del flex de #overview-view y puedan reordenarse con `order` junto
     al resto de secciones de Inicio. */
  .mv7-section-heading {
    display: contents;
  }

  .mv7-section-heading > div:first-child {
    order: 2;
  }

  #overview-view .mv7-eyebrow {
    display: none;
  }

  .mv7-section-heading h2 {
    margin: 18px 0 0;
    font-size: 26px;
  }

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

  .mv7-period-control {
    order: 3;
  }

  /* Botón de agregar movimiento: pasa de ocupar su propia fila suelta
     (una tarjeta más en un Inicio que ya tiene demasiadas) a un FAB fijo
     abajo a la derecha — patrón estándar en apps mobile, no compite por
     espacio con el resto del contenido. No hay tab bar inferior con la
     que choque. */
  #open-composer {
    position: fixed;
    right: 18px;
    bottom: calc(18px + env(safe-area-inset-bottom));
    z-index: 40;
    width: 52px;
    height: 52px;
    padding: 0;
    border-radius: 50%;
    box-shadow: 0 12px 28px -8px rgba(0, 0, 0, 0.55);
  }

  .mv7-metric-grid {
    order: 5;
  }

  .mv7-quick-actions-row {
    order: 6;
  }

  /* Editar accesos rápidos / personalizar Inicio: controles de
     configuración, no de lectura diaria — se sacan de la vista mobile
     para bajar la cantidad de tarjetas/controles en pantalla. Siguen
     disponibles en escritorio. */
  .mv7-heading-icon-tools {
    display: none;
  }

  /* Flujo de dinero + Cuentas: se sacan por ahora (a pedido explícito,
     2026-08-06) mientras se termina de ajustar el resto de Inicio en
     mobile — Cuentas ya vive en su propia sección del nav, repetirla acá
     era una tarjeta más en un Inicio que ya tenía demasiadas. */
  .mv7-analysis-grid {
    display: none;
  }

  /* Ahorro total / Próximas facturas / Progreso de objetivos: cada una
     ya tiene su vista dedicada (Objetivos, Calendario) — en mobile
     Inicio se queda con balance, ingresos/gastos, flujo y actividad
     reciente nada más. */
  .mv7-overview-secondary-grid {
    display: none;
  }

  .mv7-activity-panel {
    order: 10;
  }

  /* Balance como hero de ancho completo + ingresos/gastos en 2 columnas
     debajo (igual ubicación que .mh-balance-card + .mh-stats-grid en el
     Inicio viejo) — reemplaza a propósito el rail de scroll horizontal
     de arriba (bloque "a deliberate, finger-snapping metric rail"): acá
     el balance necesita ser standalone, no una tarjeta más del rail. */
  .mv7-metric-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    padding-right: 0;
    margin-right: 0;
    overflow-x: visible;
    scroll-snap-type: none;
  }

  .mv7-metric-primary {
    grid-column: 1 / -1;
  }

  .mv7-metric {
    width: auto;
    min-width: 0;
    scroll-snap-align: none;
  }

  .mv7-metric-income,
  .mv7-metric-expense {
    min-height: 132px;
    padding: 16px 16px 14px;
  }

  /* Ingresos/Gastos en tarjetas de ~168px: el título + tag ("N
     registros") no entraban en una sola línea (el título se comprimía
     por flex:1 y su texto desbordaba encima del tag), y la descripción
     larga no aportaba nada que el título ya no dijera. Se sacan ambas,
     mismo criterio que el resto del recorte de Inicio en mobile: menos
     texto secundario, la cifra queda como protagonista. */
  .mv7-metric-income .mv7-metric-tag,
  .mv7-metric-expense .mv7-metric-tag,
  .mv7-metric-income > p,
  .mv7-metric-expense > p {
    display: none;
  }

  /* El monto ("Gs. 10.200.000") se salía de la tarjeta a 24-30px en un
     ancho de ~135px — se achica solo acá, no en el balance hero. */
  .mv7-metric-income > strong,
  .mv7-metric-expense > strong {
    margin-top: 10px;
    overflow: hidden;
    font-size: clamp(15px, 4.6vw, 18px);
    text-overflow: ellipsis;
  }

  /* #overview-view es flex-column con align-items:stretch por default —
     sin esto, los controles chicos (botón +, período) se estiran al
     ancho completo en vez de quedarse a su tamaño natural. */
  .mv7-period-control {
    align-self: flex-start;
  }

  /* Accesos rápidos como en el Inicio viejo: ícono en círculo + etiqueta
     abajo, en vez de solo íconos sin texto — se entiende de un vistazo
     qué hace cada botón sin tener que tocarlo. */
  .mv7-quick-actions-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-self: stretch;
    gap: 8px;
  }

  .mv7-quick-actions-row .mv7-quick-action-btn {
    display: flex;
    width: auto;
    height: auto;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 4px 10px;
    border-radius: 16px;
  }

  .mv7-quick-actions-row .mv7-quick-action-btn svg {
    width: 18px;
    height: 18px;
  }

  .mv7-quick-action-label {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: var(--v2-muted);
    font-size: var(--v2-text-xs);
    font-weight: 600;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* En Inicio, la tarjeta de bienvenida ya cumple el rol de cabecera
     (saludo + contexto) — mostrar además "Inicio" en la topbar de arriba
     duplicaba el mismo mensaje dos veces seguidas. Se oculta solo para
     esta vista (selector con atributo le gana en especificidad a
     `.mv7-page-identity` sin importar en qué bloque @media caiga esa
     regla); el resto de las vistas (Movimientos, Cuentas, etc.) no
     tienen tarjeta de bienvenida propia, así que ahí se deja como está. */
  body[data-v2-view='overview'] .mv7-page-identity {
    display: none;
  }
}

/* Aviso de cuenta suspendida/cerrada por el Owner — ver js/v2-acct-block.js.
   Mismo mecanismo real de producción (Realtime sobre owner_user_notices),
   reconstruido acá con los tokens de v2 en vez de los colores hardcodeados
   que tenía la versión vieja. */
.mv7-acct-block-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999999;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(3, 5, 4, 0.92);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
}
.mv7-acct-block-overlay.is-active { display: flex; }
.mv7-acct-block-card {
  width: 100%;
  max-width: 400px;
  padding: 36px 28px 28px;
  border-radius: var(--v2-radius);
  text-align: center;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 98, 89, 0.3);
  box-shadow: 0 30px 70px -20px rgba(0, 0, 0, 0.8);
}
.mv7-acct-block-icon {
  display: grid;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(155deg, rgba(255, 98, 89, 0.32), rgba(255, 98, 89, 0.1));
  color: var(--v2-red);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 0 0 1px rgba(255, 98, 89, 0.25);
}
.mv7-acct-block-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.mv7-acct-block-overlay.is-kicked .mv7-acct-block-icon {
  background: linear-gradient(155deg, rgba(255, 159, 67, 0.32), rgba(255, 159, 67, 0.1));
  color: var(--v2-amber);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 0 0 1px rgba(255, 159, 67, 0.25);
}
.mv7-acct-block-card h2 { margin: 0 0 10px; font-size: 19px; font-weight: 700; color: var(--v2-text); letter-spacing: -0.02em; }
.mv7-acct-block-card p { margin: 0 0 26px; color: var(--v2-muted); font-size: 12px; line-height: 1.55; }
.mv7-acct-block-card .mv7-primary-button { width: 100%; }

/* Ayuda / FAQ — acordeón simple, contenido nuevo (ver js/v2.js FAQ_DATA),
   nunca existió en v2 antes. */
.mv7-faq-item { border-bottom: 1px solid rgba(255,255,255,.065); }
.mv7-faq-item:last-child { border-bottom: 0; }
.mv7-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 2px;
  cursor: pointer;
  color: var(--v2-text);
  font-size: 12px;
  font-weight: 550;
}
.mv7-faq-question svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: var(--v2-muted); stroke-width: 1.6; transition: transform .2s; }
.mv7-faq-item.is-open .mv7-faq-question svg { transform: rotate(180deg); stroke: var(--v2-green-bright); }
.mv7-faq-answer { display: none; }
.mv7-faq-answer > p { margin: 0; padding: 0 2px 15px; color: var(--v2-muted); font-size: var(--v2-text-sm); line-height: 1.6; }
.mv7-faq-item.is-open .mv7-faq-answer { display: block; }

/* Calendar — desktop monthly redesign. Existing event actions remain intact. */
.mv7-calendar-view{display:grid!important;grid-template-columns:minmax(0,1fr) 290px;gap:16px;padding:26px 28px 30px;align-items:start}.mv7-calendar-view[hidden]{display:none!important}
.mv7-calendar-heading{grid-column:1/-1;margin:0}.mv7-calendar-heading h2{font-size:38px;letter-spacing:-.045em;margin:5px 0}.mv7-calendar-heading>div>p:last-child{color:var(--v2-muted)}.mv7-calendar-heading>.mv7-primary-button{position:absolute;right:28px;top:116px}
.mv7-calendar-desktop-redesign{display:flex;flex-direction:column;min-width:0;padding:0;border:0;background:none;box-shadow:none}.mv7-calendar-controls{order:-2;width:max-content;margin:0 170px 14px auto;padding:0;gap:9px;background:none;border:0;position:relative;z-index:4}.mv7-calendar-controls h3{display:none}.mv7-calendar-controls #calendar-prev{order:-2}.mv7-calendar-controls #calendar-next{order:0}.mv7-calendar-controls #calendar-today{order:1}.mv7-calendar-bills-summary{display:none}
.mv7-calendar-scroll{order:2;overflow:visible}.mv7-calendar-runway{width:100%;min-width:0;height:auto;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012))}.mv7-calendar-runway::before{content:"LUN      MAR      MIÉ      JUE      VIE      SÁB      DOM";position:static;display:flex;align-items:center;justify-content:space-around;height:43px;white-space:pre;color:var(--v2-muted);font:700 10px/1 sans-serif;border-bottom:1px solid rgba(255,255,255,.1);background:none}
.mv7-calendar-days{position:static;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:auto}.mv7-calendar-day{display:block;position:relative!important;left:auto!important;top:auto;transform:none!important;width:auto;height:105px;padding:11px 8px;border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}.mv7-calendar-day:nth-child(7n){border-right:0}.mv7-calendar-day:nth-last-child(-n+7){border-bottom:0}.mv7-calendar-day::after,.mv7-calendar-day>span{display:none}.mv7-calendar-day>strong{display:block;font-size:12px;line-height:16px}.mv7-calendar-day.is-outside{color:rgba(255,255,255,.24);background:rgba(0,0,0,.08)}.mv7-calendar-day.is-today{outline:2px solid var(--v2-green);outline-offset:-2px;background:rgba(45,222,152,.045)}.mv7-calendar-day.is-today>strong{color:var(--v2-green);font-size:17px}.mv7-calendar-day.is-today>strong::after{content:"Hoy";font-size:var(--v2-text-micro);margin-left:6px;padding:3px 6px;border-radius:9px;background:rgba(45,222,152,.12)}
.mv7-calendar-events,.mv7-calendar-today-axis,.mv7-calendar-scale,.mv7-calendar-zero-line,.mv7-calendar-runway>.mv7-calendar-balance,.mv7-calendar-landing{display:none!important}.mv7-calendar-day .mv7-calendar-event{position:relative;top:auto!important;left:auto!important;transform:none;width:100%;min-height:25px;margin-top:6px;padding:4px 6px;border:0;border-radius:7px;box-shadow:none;background:color-mix(in srgb,var(--event-color) 17%,transparent)}.mv7-calendar-day .mv7-calendar-event:hover,.mv7-calendar-day .mv7-calendar-event.is-selected{transform:none;outline:1px solid var(--event-color)}.mv7-calendar-day .mv7-calendar-event>svg,.mv7-calendar-day .mv7-calendar-event footer,.mv7-calendar-day .mv7-calendar-event::before,.mv7-calendar-day .mv7-calendar-event::after,.mv7-calendar-day .mv7-calendar-event-toggle,.mv7-calendar-day .mv7-calendar-event-delete,.mv7-calendar-day .mv7-calendar-event-edit{display:none}.mv7-calendar-day .mv7-calendar-event.is-selected{padding-right:56px}.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-toggle,.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-delete,.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-edit{display:grid;position:absolute;top:4px;width:16px;height:16px;border:0;background:rgba(0,0,0,.32)}.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-toggle{right:20px}.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-delete{right:3px}.mv7-calendar-day .mv7-calendar-event.is-selected .mv7-calendar-event-edit{right:37px;left:auto}.mv7-calendar-day .mv7-calendar-event.is-source-transaction.is-selected .mv7-calendar-event-edit,.mv7-calendar-day .mv7-calendar-event.is-source-subscription.is-selected .mv7-calendar-event-edit{right:3px}.mv7-calendar-day .mv7-calendar-event.is-selected button svg{width:9px;height:9px}.mv7-calendar-day .mv7-calendar-event>div{display:flex;flex-direction:row;justify-content:space-between;width:100%;gap:4px}.mv7-calendar-day .mv7-calendar-event>div strong,.mv7-calendar-day .mv7-calendar-event>div span{font-size:var(--v2-text-micro);line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mv7-calendar-more{display:block;margin:4px;padding:0;border:0;background:none;color:var(--v2-muted);font:inherit;font-size:var(--v2-text-micro);cursor:pointer}.mv7-calendar-more::after{content:none}.mv7-calendar-more:hover,.mv7-calendar-more:focus-visible{color:var(--v2-green);outline:none}
.mv7-calendar-summary{order:1;display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:0 0 14px;padding:0;background:none;border:0}.mv7-calendar-summary-label{display:none}.mv7-calendar-summary dl{display:contents}.mv7-calendar-summary dl>div{position:relative;min-height:86px;padding:16px 14px 12px 58px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.mv7-calendar-summary dl>div::before{position:absolute;left:15px;top:18px;display:grid;place-items:center;width:31px;height:31px;border-radius:50%;font-size:17px;background:rgba(45,222,152,.11);color:var(--v2-green)}.mv7-calendar-summary dl>div:nth-child(1)::before{content:"↗"}.mv7-calendar-summary dl>div:nth-child(2)::before{content:"↘";color:#f5a524;background:rgba(245,165,36,.11)}.mv7-calendar-summary dl>div:nth-child(3)::before{content:"▥"}.mv7-calendar-summary dt{font-size:var(--v2-text-xs);letter-spacing:0;color:var(--v2-muted)}.mv7-calendar-summary dd{font-size:17px;margin-top:5px}.mv7-calendar-summary dl>div:first-child dd{color:var(--v2-green)}.mv7-calendar-summary dl>div:nth-child(2) dd{color:#f5a524}
.mv7-calendar-sidebar{grid-column:2;display:flex;flex-direction:column;gap:13px}.mv7-calendar-side-card{padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.mv7-calendar-side-card h3{font-size:12px;margin:0 0 12px}.mv7-calendar-upcoming-row{width:100%;display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:8px;padding:7px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.015);color:inherit;text-align:left;margin-top:6px}.mv7-calendar-upcoming-row time{display:grid;place-items:center;border-right:1px solid rgba(255,255,255,.08)}.mv7-calendar-upcoming-row time strong{font-size:13px}.mv7-calendar-upcoming-row small{display:block;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-calendar-upcoming-row>span>strong{font-size:var(--v2-text-xs)}.mv7-calendar-upcoming-row>b{font-size:var(--v2-text-micro);color:#f5a524}.mv7-calendar-upcoming-row.is-income>b{color:var(--v2-green)}.mv7-calendar-no-upcoming{font-size:var(--v2-text-xs);color:var(--v2-muted)}
.mv7-calendar-flow>div{display:flex;justify-content:space-between}.mv7-calendar-flow>div span{font-size:var(--v2-text-micro);color:var(--v2-muted)}.mv7-calendar-flow>div strong{display:block;margin-top:3px;font-size:var(--v2-text-xs);color:var(--v2-text)}.mv7-calendar-flow-line{display:block;height:72px;margin-top:9px;background:linear-gradient(180deg,rgba(45,222,152,.2),transparent 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 75'%3E%3Cpath d='M0 58 L25 43 L50 51 L75 49 L100 48 L125 32 L150 29 L175 18 L200 15 L225 18 L250 17 L275 9 L300 5' fill='none' stroke='%232dde98' stroke-width='2'/%3E%3C/svg%3E") center/100% 100% no-repeat}.mv7-calendar-reminder{display:flex;justify-content:space-between;align-items:center;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:var(--v2-text-xs)}.mv7-calendar-reminder small{display:block;color:var(--v2-muted);margin-top:2px;font-size:var(--v2-text-micro)}.mv7-calendar-empty-reminder{display:flex;gap:8px;align-items:center;margin:14px 4px 2px;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-calendar-empty-reminder svg{width:22px;height:22px;fill:none;stroke:currentColor}.mv7-calendar-empty-reminder small{display:block;font-size:inherit}
@media(max-width:1100px){.mv7-calendar-view{grid-template-columns:1fr}.mv7-calendar-sidebar{grid-column:1;display:grid;grid-template-columns:repeat(3,1fr)}.mv7-calendar-heading>.mv7-primary-button{position:static}.mv7-calendar-controls{margin:0 0 14px auto}.mv7-calendar-day{height:94px}}
@media(max-width:720px){.mv7-calendar-view{padding:18px 14px}.mv7-calendar-heading h2{font-size:28px}.mv7-calendar-heading>.mv7-primary-button span{display:none}.mv7-calendar-controls{width:100%;margin:0 0 12px}.mv7-calendar-controls h3{flex:1}.mv7-calendar-summary{grid-template-columns:1fr}.mv7-calendar-runway{overflow-x:auto}.mv7-calendar-runway::before,.mv7-calendar-days{min-width:700px}.mv7-calendar-sidebar{display:flex}}

/* Recurring — service control table while retaining composer and item actions. */
.mv7-recurring-view{display:grid!important;grid-template-columns:minmax(0,1fr) 300px;gap:16px;padding:25px 28px 30px;align-items:start}.mv7-recurring-view[hidden]{display:none!important}.mv7-recurring-heading,.mv7-vampire-alert,.mv7-recurring-kpis{grid-column:1/-1}.mv7-recurring-heading{margin:0}.mv7-recurring-heading h2{font-size:31px;letter-spacing:-.04em;margin:5px 0}.mv7-recurring-heading>div>p:last-child{color:var(--v2-muted)}
.mv7-recurring-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mv7-recurring-kpis article{min-height:100px;padding:18px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.mv7-recurring-kpis article>span{font-size:var(--v2-text-sm);color:var(--v2-muted)}.mv7-recurring-kpis strong{display:block;margin:8px 0 6px;font-size:20px;color:var(--v2-text)}.mv7-recurring-kpis small{display:block;font-size:var(--v2-text-xs);color:var(--v2-muted)}.mv7-recurring-kpis article:first-child strong,.mv7-recurring-kpis .is-saving strong{color:var(--v2-green)}.mv7-recurring-kpis .is-saving{border-color:rgba(45,222,152,.42);background:linear-gradient(145deg,rgba(45,222,152,.08),rgba(255,255,255,.012))}.mv7-recurring-kpis article>i{width:55px;height:55px;display:grid;place-items:center}.mv7-recurring-kpis .is-line{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 50'%3E%3Cpath d='M2 44 L14 34 L25 39 L38 25 L48 27 L58 7' fill='none' stroke='%232dde98' stroke-width='2'/%3E%3Cpath d='M2 44 L14 34 L25 39 L38 25 L48 27 L58 7 V50 H2Z' fill='%232dde98' opacity='.12'/%3E%3C/svg%3E") center/contain no-repeat}.mv7-recurring-kpis .is-bars{background:linear-gradient(90deg,transparent 8%,rgba(255,255,255,.3) 8% 19%,transparent 19% 25%,rgba(255,255,255,.42) 25% 38%,transparent 38% 44%,rgba(255,255,255,.55) 44% 57%,transparent 57% 63%,rgba(255,255,255,.7) 63% 78%,transparent 78% 84%,rgba(255,255,255,.85) 84% 97%,transparent 97%) bottom/100% 75% no-repeat}.mv7-recurring-kpis .is-services svg{width:28px;height:28px;fill:none;stroke:var(--v2-muted)}.mv7-recurring-kpis .is-ring{border:7px solid rgba(45,222,152,.16);border-top-color:var(--v2-green);border-right-color:var(--v2-green);border-radius:50%;color:var(--v2-green);font-style:normal;font-weight:800}
.mv7-orbit-system{grid-column:1;min-width:0;min-height:0;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.01));overflow:hidden}.mv7-orbit-scroll{overflow:visible}.mv7-orbit-field{width:100%;min-width:0;height:auto;min-height:0;padding:0;background:none}.mv7-orbit-field::before{content:"Servicios recurrentes";position:static!important;display:block;padding:19px 20px 15px;font-size:16px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.08);background:none;mask-image:none}.mv7-orbit-track,.mv7-orbit-core,.mv7-recurring-impact,.mv7-recurring-alert{display:none}.mv7-orbit-nodes{position:static;display:flex;flex-direction:column;padding:0 12px 12px}.mv7-orbit-nodes::before{content:"SERVICIO        ESTADO        PRÓXIMO COBRO        CUENTA        COSTO MENSUAL        CAMBIO        ACCIONES";display:block;padding:13px 8px;color:var(--v2-muted);font:700 8px/1 sans-serif;word-spacing:18px;border-bottom:1px solid rgba(255,255,255,.08)}
.mv7-recurring-node{position:relative!important;left:auto!important;top:auto!important;transform:none!important;width:100%;height:55px;display:grid;grid-template-columns:34px 1.25fr .9fr .75fr 1fr .85fr .75fr .65fr;align-items:center;gap:8px;padding:7px;border:0;border-bottom:1px solid rgba(255,255,255,.07);border-radius:0;background:none;text-align:left}.mv7-recurring-node:hover,.mv7-recurring-node:focus-visible,.mv7-recurring-node.is-selected{transform:none!important;background:rgba(255,255,255,.035);box-shadow:none}.mv7-recurring-node.is-selected{opacity:1;pointer-events:auto;outline:1px solid color-mix(in srgb,var(--v2-green) 45%,transparent);border-radius:8px}.mv7-recurring-node>span:first-child{width:30px;height:30px;border-radius:7px}.mv7-recurring-node>span:nth-child(2){display:flex;flex-direction:column;align-items:flex-start;gap:2px}.mv7-recurring-node>span:last-child{display:block}.mv7-recurring-node>span:nth-child(2) strong{font-size:var(--v2-text-xs)}.mv7-recurring-node>span:nth-child(2) small{font-size:var(--v2-text-xs);color:var(--v2-text)}.mv7-recurring-row-status{justify-self:start;padding:5px 7px;border-radius:6px;background:rgba(45,222,152,.08);color:var(--v2-green);font-size:var(--v2-text-micro)}.is-review .mv7-recurring-row-status{background:rgba(245,165,36,.1);color:#f5a524}.is-optional .mv7-recurring-row-status{background:rgba(255,93,93,.1);color:#ff6767}.mv7-recurring-row-due,.mv7-recurring-row-account,.mv7-recurring-row-change,.mv7-recurring-row-action{font-size:var(--v2-text-micro);color:var(--v2-muted)}.mv7-recurring-row-due{color:var(--v2-text);font-weight:700}.mv7-recurring-row-change{color:#f5a524}.mv7-recurring-row-action{padding:5px;border:1px solid rgba(255,255,255,.12);border-radius:6px;text-align:center;color:var(--v2-text)}
.mv7-orbit-analysis{position:static;width:auto;margin:0 12px 12px;padding:12px;border-radius:10px;display:grid;grid-template-columns:1fr 2fr auto;gap:12px;align-items:center;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.08)}.mv7-recurring-analysis-identity{margin:0}.mv7-orbit-analysis dl{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0}.mv7-orbit-analysis dl>div{padding:0;border:0}.mv7-recurring-analysis-actions{margin:0;flex-direction:column}.mv7-recurring-analysis-actions button{min-height:28px;font-size:var(--v2-text-micro)}.mv7-recurring-simulator{margin:0;border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;background:rgba(255,255,255,.015)}
.mv7-recurring-sidebar{grid-column:2;display:flex;flex-direction:column;gap:13px}.mv7-recurring-side-card{padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.mv7-recurring-side-card h3{font-size:12px;margin:0 0 12px}.mv7-recurring-upcoming-row,.mv7-recurring-increase-row{width:100%;min-height:45px;display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:center;padding:6px 0;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:none;color:inherit;text-align:left}.mv7-recurring-upcoming-row time{border-right:1px solid rgba(255,255,255,.09)}.mv7-recurring-upcoming-row time strong{font-size:13px}.mv7-recurring-upcoming-row time small{display:block;font-size:var(--v2-text-micro);color:var(--v2-muted)}.mv7-recurring-upcoming-row>span,.mv7-recurring-increase-row>span{font-size:var(--v2-text-xs)}.mv7-recurring-upcoming-row>b{font-size:var(--v2-text-micro);color:var(--v2-muted)}.mv7-recurring-side-card footer{display:flex;justify-content:space-between;padding-top:12px;font-size:var(--v2-text-xs)}.mv7-recurring-side-card footer strong{color:var(--v2-green)}.mv7-recurring-increase-row{grid-template-columns:1fr auto auto}.mv7-recurring-increase-row b{font-size:var(--v2-text-micro)}.mv7-recurring-increase-row em{font-size:var(--v2-text-micro);color:#f5a524}.mv7-recurring-no-increases{font-size:var(--v2-text-xs);color:var(--v2-muted)}
@media(max-width:1150px){.mv7-recurring-view{grid-template-columns:1fr}.mv7-recurring-sidebar{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.mv7-recurring-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.mv7-recurring-view{padding:18px 14px}.mv7-recurring-heading h2{font-size:25px}.mv7-recurring-kpis{display:flex;overflow-x:auto}.mv7-recurring-kpis article{min-width:240px}.mv7-orbit-scroll{overflow-x:auto}.mv7-orbit-field{min-width:830px}.mv7-recurring-sidebar{display:flex}.mv7-orbit-analysis{grid-template-columns:1fr}.mv7-recurring-simulator{min-width:830px}}

/* Settings alignment audit — shared geometry and overflow safeguards. */
.mv7-settings-stage,.mv7-settings-tab,.mv7-tab-layout,.mv7-tab-main,.mv7-tab-rail,.mv7-settings-card,.mv7-settings-context-card{min-width:0}
.mv7-settings-title{min-height:46px;display:flex;flex-direction:column;justify-content:center}.mv7-settings-title h3,.mv7-settings-title p{max-width:100%;overflow-wrap:anywhere}
.mv7-settings-card svg,.mv7-settings-context-card svg,.mv7-settings-nav-item svg{flex-shrink:0}.mv7-settings-card button,.mv7-settings-context-card button{align-items:center;justify-content:center}.mv7-settings-card button>svg,.mv7-settings-context-card button>svg{flex:0 0 auto}
.mv7-settings-row>span,.mv7-notification-row>span:nth-child(2),.mv7-security-access-row>span:nth-child(2){min-width:0}.mv7-settings-row strong,.mv7-settings-row small,.mv7-notification-row strong,.mv7-notification-row small,.mv7-security-access-row strong,.mv7-security-access-row small{overflow-wrap:anywhere}
.mv7-notifications-title{text-align:left;margin:1px 2px 4px;align-items:flex-start}.mv7-notifications-title h3,.mv7-notifications-title p{text-align:left}
.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='faq']:not([hidden])),.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='danger']:not([hidden])){grid-template-columns:228px minmax(0,1fr)}
.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='faq']:not([hidden]))>.mv7-settings-context,.mv7-settings-hub:has(.mv7-settings-tab[data-settings-panel='danger']:not([hidden]))>.mv7-settings-context{display:none}
.mv7-settings-tab[data-settings-panel='faq'] .mv7-settings-card,.mv7-settings-tab[data-settings-panel='danger'] .mv7-settings-card{max-width:none;width:100%}
.mv7-category-empty{min-height:280px}.mv7-category-inspector-empty{min-height:240px}.mv7-category-toolbar>*{min-width:0}.mv7-category-filters{min-width:270px}.mv7-category-toolbar>.mv7-primary-button{display:flex;align-items:center;gap:7px}
.mv7-how-grid>div{min-width:0;overflow:hidden}.mv7-how-grid strong,.mv7-how-grid small{max-width:100%;overflow-wrap:anywhere;text-align:center}.mv7-how-grid svg{max-width:38px}.mv7-sync-settings-list>div{min-width:0}.mv7-sync-settings-list span{min-width:0;overflow-wrap:anywhere}
.mv7-privacy-visibility-options button{min-width:0}.mv7-privacy-visibility-options button span{min-width:0}.mv7-privacy-visibility-options strong,.mv7-privacy-visibility-options small{overflow-wrap:anywhere}
.mv7-profile-workspace .mv7-settings-fields input,.mv7-profile-workspace .mv7-settings-fields select{width:100%;min-width:0}.mv7-profile-region .mv7-settings-row>select{max-width:48%}
.mv7-notification-row select{max-width:116px}.mv7-notification-row .mv7-switch,.mv7-settings-row .mv7-switch,.mv7-notifications-master .mv7-switch{flex:0 0 40px}
.mv7-security-hero-card>*{min-width:0}.mv7-security-hero-copy,.mv7-security-score{overflow-wrap:anywhere}.mv7-security-recommendation-row>span,.mv7-security-activity-row>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:900px){.mv7-notifications-layout,.mv7-tab-layout,.mv7-profile-workspace .mv7-tab-layout,.mv7-security-layout,.mv7-category-workspace{grid-template-columns:1fr}.mv7-category-inspector{grid-template-columns:1fr 1fr}.mv7-notification-preview-stage{min-height:220px}}

/* Security card: switch before its middle column becomes too narrow (tablet / scaled mobile). */
.mv7-security-hero-copy{overflow-wrap:normal;word-break:normal}.mv7-security-score{overflow-wrap:normal;word-break:normal}
@media(max-width:1100px){
  .mv7-security-hero{grid-template-columns:100px minmax(0,1fr);gap:16px;min-height:0;padding:18px}
  .mv7-security-shield{width:88px;height:88px}
  .mv7-security-shield>svg:first-child{width:60px;height:60px}
  .mv7-security-shield .mv7-security-check{width:29px;height:29px}
  .mv7-security-score{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;margin-top:4px}
  .mv7-security-score progress{grid-column:1/-1}
}
@media(max-width:520px){
  .mv7-security-hero{grid-template-columns:1fr;justify-items:center;text-align:center;padding:20px 16px}
  .mv7-security-hero-copy{justify-items:center;width:100%}
  .mv7-security-hero-copy p{max-width:30ch}
  .mv7-security-score{width:100%;grid-column:1;justify-self:stretch;text-align:left}
}

/* Keep theme illustrations useful when the settings column becomes narrow. */
.mv7-settings-card:has(>.mv7-theme-grid){container-type:inline-size}
.mv7-theme-grid button{align-items:stretch!important;justify-content:stretch!important;min-width:0}
.mv7-theme-preview{display:grid;width:100%;min-width:0;box-sizing:border-box}
@container(max-width:430px){
  .mv7-theme-grid{grid-template-columns:1fr}
  .mv7-theme-grid button{grid-template-columns:132px minmax(0,1fr);align-items:center!important;gap:13px;padding:9px}
  .mv7-theme-preview{display:grid;height:92px}
  .mv7-theme-preview-rail{gap:7px;padding:8px 6px}
  .mv7-theme-preview-rail i:first-child{margin-bottom:2px}
  .mv7-theme-preview-canvas{grid-template-rows:11px 19px minmax(0,1fr);gap:6px;padding:8px}
  .mv7-theme-preview-chart{padding:5px 4px 3px}
  .mv7-theme-option-copy{padding-right:26px}
  .mv7-theme-option-state{top:12px;right:12px}
}
@container(max-width:350px){
  .mv7-theme-grid button{grid-template-columns:112px minmax(0,1fr);gap:11px}
}

/* Mobile settings refinement pass. */
@media(max-width:600px){
  .mv7-appearance-workspace .mv7-tab-rail{grid-template-columns:1fr}
  .mv7-appearance-workspace .mv7-settings-row-slider{display:grid;grid-template-columns:1fr;gap:8px}
  .mv7-appearance-workspace .mv7-settings-row-slider input[type="range"]{width:100%}
  .mv7-category-inspector{grid-template-columns:1fr}
  .mv7-category-inspector-empty{min-height:170px}
  .mv7-category-tip{min-height:0}
  .mv7-settings-summary .mv7-settings-metric:last-child:nth-child(odd){grid-column:1/-1}
  .mv7-settings-tab[data-settings-panel="backup"] .mv7-settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .mv7-settings-tab[data-settings-panel="backup"] .mv7-settings-actions>*{width:100%;min-width:0;margin:0}
  .mv7-settings-tab[data-settings-panel="backup"] .mv7-settings-actions>*:last-child:nth-child(odd){grid-column:1/-1}
  .mv7-sync-flow .mv7-how-grid{display:grid;grid-template-columns:1fr;gap:8px}
  .mv7-sync-flow .mv7-how-grid>div{min-height:0;grid-template-columns:30px 42px minmax(0,1fr);grid-template-rows:auto auto;justify-items:start;align-items:center;gap:2px 10px;padding:13px;text-align:left;overflow:visible}
  .mv7-sync-flow .mv7-how-grid b{position:static;grid-column:1;grid-row:1/-1}
  .mv7-sync-flow .mv7-how-grid i{grid-column:2;grid-row:1/-1;width:38px;height:38px}
  .mv7-sync-flow .mv7-how-grid i svg{width:29px;height:29px}
  .mv7-sync-flow .mv7-how-grid strong{grid-column:3;grid-row:1;text-align:left}
  .mv7-sync-flow .mv7-how-grid small{grid-column:3;grid-row:2;text-align:left}
  .mv7-notification-preview-stage{min-height:190px}
  .mv7-notification-toast{grid-template-columns:36px minmax(0,1fr) auto;padding:11px}
  .mv7-notification-toast i{width:34px;height:34px}
  .mv7-privacy-workspace .mv7-tab-layout{display:flex;flex-direction:column;gap:14px}
  .mv7-privacy-workspace .mv7-tab-main,.mv7-privacy-workspace .mv7-tab-rail{display:contents}
  .mv7-privacy-workspace .mv7-tab-layout{align-items:stretch}
  .mv7-privacy-score-card,.mv7-privacy-session-card,.mv7-privacy-policy,.mv7-privacy-actions{width:100%;box-sizing:border-box}
  .mv7-privacy-score-card{order:1}
  .mv7-privacy-workspace .mv7-tab-main>.mv7-privacy-section:first-child{order:2}
  .mv7-privacy-workspace .mv7-tab-main>.mv7-privacy-section:nth-child(2){order:3}
  .mv7-privacy-visibility{order:4}
  .mv7-privacy-actions{order:5}
  .mv7-privacy-session-card{order:6}
  .mv7-privacy-policy{order:7}
  .mv7-profile-workspace .mv7-tab-layout{display:flex;flex-direction:column;align-items:stretch;gap:14px}
  .mv7-profile-workspace .mv7-tab-main,.mv7-profile-workspace .mv7-tab-rail{display:contents}
  .mv7-profile-card{order:1}
  .mv7-profile-progress-card{order:2}
  .mv7-profile-region{order:3}
  .mv7-profile-workspace .mv7-tab-main>.mv7-settings-card:not(.mv7-profile-card):not(.mv7-profile-region){order:4}
  .mv7-profile-public-card{order:5}
  .mv7-profile-session-button{order:6;width:100%}
  .mv7-settings-tab[data-settings-panel="danger"] .mv7-danger-card{display:grid;grid-template-columns:1fr;gap:14px}
  .mv7-settings-tab[data-settings-panel="danger"] .mv7-danger-card button{width:100%;min-height:44px}
}

/* Panel de notificaciones (campanita) — historial curado, no cada toast.
   Ver js/v2-notifications.js. */
.mv7-notif-dialog { width: min(400px, calc(100% - 28px)); }
.mv7-notif-filters { display: flex; gap: 8px; margin: 4px 0 12px; }
.mv7-notif-filters button { padding: 7px 14px; border: 1px solid var(--v2-line); border-radius: 999px; background: transparent; color: var(--v2-muted); cursor: pointer; font-size: var(--v2-text-sm); }
.mv7-notif-filters button.is-active { border-color: rgba(45,222,152,.4); background: var(--v2-green-soft); color: var(--v2-green-bright); }
.mv7-notif-list { display: grid; gap: 2px; max-height: 360px; overflow-y: auto; margin: 0 -4px; }
.mv7-notif-item { display: grid; grid-template-columns: 32px 1fr; gap: 11px; align-items: start; padding: 11px 4px; border-radius: 10px; }
.mv7-notif-item.is-read { opacity: .55; }
.mv7-notif-item-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; background: var(--v2-green-soft); color: var(--v2-green-bright); }
.mv7-notif-item-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.mv7-notif-item p { margin: 0 0 3px; color: var(--v2-text); font-size: 12px; line-height: 1.4; }
.mv7-notif-item small { color: var(--v2-muted); font-size: var(--v2-text-xs); }
.mv7-notif-empty { display: grid; justify-items: center; gap: 8px; padding: 44px 20px; text-align: center; }
.mv7-notif-empty svg { width: 26px; height: 26px; fill: none; stroke: var(--v2-muted); stroke-width: 1.4; }
.mv7-notif-empty strong { font-size: 13px; }
.mv7-notif-empty p { margin: 0; color: var(--v2-muted); font-size: var(--v2-text-sm); }

/* Banner de anuncios del Owner (admin_broadcasts, tiempo real) */
.mv7-broadcast-banner {
  position: fixed;
  top: calc(var(--v2-topbar-height) + 14px);
  left: calc(var(--v2-sidebar-width) + (100% - var(--v2-sidebar-width)) / 2);
  z-index: 999998;
  display: flex;
  gap: 14px;
  align-items: center;
  width: min(520px, calc(100% - var(--v2-sidebar-width) - 28px));
  padding: 14px 16px;
  border: 1px solid rgba(45,222,152,.3);
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(20,24,21,.97), rgba(10,13,11,.97));
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.7);
  opacity: 0;
  transform: translate(-50%, -14px);
  transition: opacity .3s ease, transform .3s ease;
}
.mv7-broadcast-banner.is-visible { opacity: 1; transform: translate(-50%, 0); }
.mv7-broadcast-banner[hidden] { display: none; }
.mv7-broadcast-copy { flex: 1; min-width: 0; }
.mv7-broadcast-copy strong { display: block; margin-bottom: 4px; color: var(--v2-green-bright); font-size: var(--v2-text-xs); letter-spacing: .04em; text-transform: uppercase; }
.mv7-broadcast-copy p { margin: 0; color: var(--v2-text); font-size: 12px; line-height: 1.45; }
.mv7-broadcast-copy p b { font-weight: 650; }
.mv7-broadcast-copy p span { color: var(--v2-muted); }
@media (max-width: 768px) {
  .mv7-broadcast-banner {
    top: 8px;
    left: 50%;
    width: calc(100% - 16px);
  }
}

/* Multi-perfil — switcher local por dispositivo (js/v2-profiles.js).
   Cada perfil aísla sus propios datos financieros vía scopedKey(); no
   tiene relación con la cuenta de Supabase (esa sigue siendo aura_profile,
   sin tocar). */
.mv7-profile-switcher { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.mv7-profile-chip { display: grid; justify-items: center; gap: 7px; width: 76px; cursor: pointer; background: transparent; border: 0; color: inherit; }
.mv7-profile-chip-avatar { position: relative; display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; overflow: hidden; color: #fff; font-size: 18px; font-weight: 650; }
.mv7-profile-chip-avatar img { width: 100%; height: 100%; object-fit: cover; }
.mv7-profile-chip.is-active .mv7-profile-chip-avatar { box-shadow: 0 0 0 3px var(--v2-canvas), 0 0 0 5px var(--v2-green); }
.mv7-profile-chip span { max-width: 100%; overflow: hidden; color: var(--v2-muted); font-size: var(--v2-text-xs); text-overflow: ellipsis; white-space: nowrap; }
.mv7-profile-chip.is-active span { color: var(--v2-text); font-weight: 550; }
.mv7-profile-chip-edit { position: absolute; right: -2px; bottom: -2px; display: grid; width: 20px; height: 20px; place-items: center; border: 2px solid var(--v2-canvas); border-radius: 50%; background: rgba(0,0,0,.65); color: #fff; }
.mv7-profile-chip-edit svg { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 2; }
.mv7-profile-chip-add .mv7-profile-chip-avatar { border: 1.5px dashed var(--v2-line-strong); background: transparent; color: var(--v2-muted); }
.mv7-profile-chip-add .mv7-profile-chip-avatar svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; }

.mv7-profile-colors { display: flex; gap: 15px; margin: 10px 0 8px; }
.mv7-profile-colors button { width: 35px; height: 35px; border: 3px solid transparent; border-radius: 50%; cursor: pointer; }
.mv7-profile-colors button:nth-child(1) { background: #0A84FF; }
.mv7-profile-colors button:nth-child(2) { background: #FF453A; }
.mv7-profile-colors button:nth-child(3) { background: #30D158; }
.mv7-profile-colors button:nth-child(4) { background: #0ea5e9; }
.mv7-profile-colors button:nth-child(5) { background: #BF5AF2; }
.mv7-profile-colors button.is-selected { box-shadow: 0 0 0 2px #0b0e0c, 0 0 0 4px var(--v2-text); }
#profile-composer-avatar { margin: 0 auto; }
.mv7-profile-avatar-zone { display: grid; justify-items: center; gap: 8px; margin-bottom: 6px; }
.mv7-profile-composer-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.mv7-profile-composer-footer:has(#profile-composer-delete[hidden]) { justify-content: flex-end; }

/* Chip de estado de sincronización — puerto de js/core/sync-panel.js.
   Oculto cuando todo está sincronizado (mismo criterio que producción:
   solo interrumpe si hay algo que decir). */
.mv7-conn-status-chip svg { stroke: var(--v2-muted); }
.mv7-conn-status-chip.is-offline svg { stroke: var(--v2-amber); }
.mv7-conn-status-chip.is-pending svg { stroke: var(--v2-amber); }
.mv7-conn-status-chip.is-error svg { stroke: var(--v2-red); }
.mv7-conn-status-chip.is-syncing svg { stroke: var(--v2-green-bright); animation: mv7ConnSpin 1s linear infinite; }
@keyframes mv7ConnSpin { to { transform: rotate(360deg); } }

/* Comunidad Fase 2A — toolbar, leaderboard, perfil completo. */
.mv7-community-toolbar { display: flex; justify-content: flex-end; padding: 10px 20px 0; }
.mv7-community-toolbar .mv7-icon-button svg { stroke: var(--v2-muted); }
.mv7-community-toolbar .mv7-icon-button:hover svg { stroke: var(--v2-green-bright); }
.mv7-community-tool-label{display:none}
.mv7-community-view button:focus-visible,.mv7-community-view a:focus-visible,.mv7-community-view input:focus-visible,.mv7-community-view textarea:focus-visible,.mv7-dm-dialog button:focus-visible,.mv7-dm-dialog input:focus-visible,.mv7-dm-dialog textarea:focus-visible,#community-leaderboard-dialog button:focus-visible{outline:2px solid var(--v2-green-bright);outline-offset:2px}
.mv7-community-tabs button:focus-visible{outline-offset:-4px}.mv7-community-post-actions button:focus-visible,.mv7-community-post-body>header button:focus-visible{background:rgba(45,222,152,.09)}

#community-leaderboard-list { display: grid; gap: 2px; max-height: 400px; overflow-y: auto; margin-top: 10px; }
.mv7-leaderboard-row { display: grid; grid-template-columns: 26px 34px 1fr auto; gap: 11px; align-items: center; padding: 10px 4px; border-radius: 10px; cursor: pointer; }
.mv7-leaderboard-row:hover,.mv7-leaderboard-row:focus-within { background: rgba(255,255,255,.03); }
.mv7-leaderboard-row.is-you { background: var(--v2-green-soft); }
.mv7-leaderboard-rank { text-align: center; color: var(--v2-muted); font-size: 13px; font-weight: 650; }
.mv7-leaderboard-name { overflow: hidden; color: var(--v2-text); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.mv7-leaderboard-row strong { color: var(--v2-green-bright); font-size: var(--v2-text-sm); }
.mv7-leaderboard-separator { margin: 10px 0 2px; color: var(--v2-muted); font-size: var(--v2-text-xs); text-transform: uppercase; letter-spacing: .04em; }

#community-profile-panel { padding: 20px 24px; max-width: 720px; margin: 0 auto; }
#community-profile-back { margin-bottom: 14px; }
#community-profile-back svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; margin-right: 6px; vertical-align: -2px; }
.mv7-community-profile-header { display: flex; align-items: center; gap: 16px; }
.mv7-community-profile-avatar { width: 64px; height: 64px; flex: 0 0 64px; font-size: 20px; }
.mv7-community-profile-identity { flex: 1; min-width: 0; }
.mv7-community-profile-identity h2 { overflow-wrap:anywhere; margin: 0 0 3px; font-size: 19px; }
.mv7-community-profile-identity p { overflow:hidden; margin: 0; color: var(--v2-muted); font-size: var(--v2-text-sm); text-overflow:ellipsis; white-space:nowrap; }
.mv7-community-profile-stats { display: flex; gap: 28px; margin: 18px 0; padding: 16px 0; border-top: 1px solid var(--v2-line); border-bottom: 1px solid var(--v2-line); }
.mv7-community-profile-stats div { display: flex; flex-direction: column; gap: 3px; }
.mv7-community-profile-stats strong { font-size: 17px; }
.mv7-community-profile-stats span { color: var(--v2-muted); font-size: var(--v2-text-xs); }
.mv7-community-profile-onboarding { padding: 16px; margin-bottom: 18px; border: 1px solid var(--v2-line); border-radius: 14px; background: rgba(255,255,255,.02); }
.mv7-community-profile-onboarding h4 { margin: 0 0 10px; font-size: 13px; }
.mv7-community-onboarding-step { display: flex; align-items: center; gap: 10px; padding: 6px 0; color: var(--v2-muted); font-size: var(--v2-text-sm); }
.mv7-community-onboarding-step span:first-child { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid var(--v2-line-strong); border-radius: 50%; }
.mv7-community-onboarding-step.is-done { color: var(--v2-text); }
.mv7-community-onboarding-step.is-done span:first-child { border-color: var(--v2-green); background: var(--v2-green-soft); color: var(--v2-green-bright); }
.mv7-community-onboarding-step svg { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 2.5; }
.mv7-community-profile-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--v2-line); }
.mv7-community-profile-tabs button { padding: 10px 4px; margin-right: 18px; border-bottom: 2px solid transparent; background: transparent; color: var(--v2-muted); cursor: pointer; font-size: 12px; }
.mv7-community-profile-tabs button.is-active { border-bottom-color: var(--v2-green); color: var(--v2-text); }
#community-profile-tab-caption { margin: 10px 0; }
.mv7-community-profile-item { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.045); }
.mv7-community-profile-item p { overflow-wrap:anywhere; margin: 0 0 5px; color: var(--v2-text); font-size: 12px; line-height: 1.5; }
.mv7-community-profile-item small { color: var(--v2-muted); font-size: var(--v2-text-xs); }
.mv7-community-profile-item img { width: 100%; max-width: 220px; margin-top: 6px; border-radius: 10px; }

/* Pulso de la comunidad — reemplazo real del community_stats de
   producción (esa tabla quedó en 0/0/0 desde su creación, sin trigger ni
   función que la actualice en todo el stack — no tenía sentido portar un
   número muerto). Estos 2 valores salen de queries en vivo. */
.mv7-community-pulse-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mv7-community-pulse-stats div { display: grid; gap: 3px; padding: 10px; border-radius: 10px; background: rgba(255, 255, 255, 0.025); text-align: center; }
.mv7-community-pulse-stats strong { font-size: 18px; }
.mv7-community-pulse-stats span { color: var(--v2-muted); font-size: var(--v2-text-xs); }

/* Comunidad Fase 2B — Mensajes directos. Dialog propio con dos vistas
   internas (lista ↔ hilo), sin el reparenting de producción. */
.mv7-community-dm-toggle { position: relative; }
.mv7-community-dm-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  display: grid;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  place-items: center;
  border: 1px solid var(--v2-surface);
  border-radius: 999px;
  background: var(--v2-red);
  color: #fff;
  font-size: var(--v2-text-xs);
  font-weight: 650;
  line-height: 1;
}
.mv7-community-dm-badge[hidden] { display: none; }

.mv7-dm-dialog { width: min(420px, calc(100% - 28px)); }
.mv7-dm-dialog .mv7-dialog-body { display: flex; flex-direction: column; height: min(560px, calc(100vh - 56px)); padding: 0; }
#community-dm-list-view,
#community-dm-thread-view { display: flex; flex-direction: column; height: 100%; }
#community-dm-list-view[hidden],
#community-dm-thread-view[hidden] { display: none; }
.mv7-dm-dialog header { flex: 0 0 auto; padding: 21px 21px 0; margin-bottom: 14px; }
#community-dm-conversations { flex: 1; overflow-y: auto; padding: 0 12px 16px; }

.mv7-dm-conversation-row {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.mv7-dm-conversation-row:hover { background: rgba(255, 255, 255, 0.03); }
.mv7-dm-conversation-row div { min-width: 0; }
.mv7-dm-conversation-row strong { display: block; margin-bottom: 2px; color: var(--v2-muted); font-size: 12px; }
.mv7-dm-conversation-row.is-unread strong { color: var(--v2-text); }
.mv7-dm-conversation-row p { margin: 0; overflow: hidden; color: var(--v2-muted); font-size: var(--v2-text-sm); text-overflow: ellipsis; white-space: nowrap; }
.mv7-dm-conversation-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.mv7-dm-conversation-meta small { color: var(--v2-muted); font-size: var(--v2-text-xs); }
.mv7-dm-conversation-unread {
  display: grid;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  place-items: center;
  border-radius: 999px;
  background: var(--v2-green-bright);
  color: #04150c;
  font-size: var(--v2-text-xs);
  font-weight: 700;
}

#community-dm-thread-view header { display: flex; align-items: center; gap: 10px; }
#community-dm-thread-back { flex: 0 0 auto; }
.mv7-dm-thread-identity { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.mv7-dm-thread-identity strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }

#community-dm-messages { flex: 1; display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding: 0 21px 12px; }
.mv7-dm-bubble { max-width: 78%; padding: 9px 12px; border-radius: 14px; }
.mv7-dm-bubble p { margin: 0; font-size: 12px; line-height: 1.45; white-space: pre-wrap; word-break: break-word; }
.mv7-dm-bubble small { display: block; margin-top: 4px; font-size: var(--v2-text-micro); opacity: 0.6; }
.mv7-dm-bubble.is-mine { align-self: flex-end; border-bottom-right-radius: 4px; background: var(--v2-green-soft); color: var(--v2-text); }
.mv7-dm-bubble.is-theirs { align-self: flex-start; border-bottom-left-radius: 4px; background: rgba(255, 255, 255, 0.045); color: var(--v2-text); }

.mv7-dm-composer { display: flex; flex: 0 0 auto; align-items: flex-end; gap: 10px; padding: 12px 21px 21px; border-top: 1px solid var(--v2-line); }
.mv7-dm-composer textarea {
  flex: 1;
  max-height: 96px;
  padding: 9px 12px;
  resize: none;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--v2-text);
  font: inherit;
  font-size: 12px;
}
.mv7-dm-composer textarea:focus { outline: none; border-color: var(--v2-green); }
.mv7-dm-composer .mv7-icon-button { flex: 0 0 36px; }

@media (max-width: 768px) {
  .mv7-community-toolbar { padding: 8px 14px 0; }
  #community-profile-panel { padding: 16px; }
  .mv7-community-profile-header { flex-wrap: wrap; }
  .mv7-community-profile-actions { width: 100%; }
  .mv7-community-profile-actions button { width: 100%; }
  .mv7-community-profile-stats { gap: 20px; }
  .mv7-community-profile-tabs { overflow-x: auto; }
  .mv7-leaderboard-row { grid-template-columns: 22px 30px 1fr auto; }
  .mv7-dm-dialog .mv7-dialog-body { height: calc(100vh - 32px); }
  /* La toolbar mobile de otra sesión agrega un ::after genérico a todo
     .mv7-icon-button dentro de .mv7-community-toolbar con texto "Ranking"
     — no estaba escrito pensando en un segundo botón (Mensajes). Se
     corrige acá por ID en vez de tocar esa regla ajena. */
  #community-dm-open::after { content: none; }
}

/* Final mobile precedence: these rules intentionally follow the desktop redesign blocks. */
@media(max-width:760px){
  .mv7-recurring-kpis{display:grid!important;grid-template-columns:1fr 1fr!important;overflow:visible!important;gap:9px!important}
  .mv7-recurring-kpis article{min-width:0!important;min-height:112px;padding:14px}
  .mv7-orbit-scroll{overflow:visible!important}
  .mv7-orbit-field{width:100%!important;min-width:0!important}
  .mv7-orbit-nodes::before{content:"Servicios recurrentes"!important;padding:12px 4px!important;font-size:var(--v2-text-xs)!important;word-spacing:normal!important}
  .mv7-recurring-node{height:auto!important;min-height:116px!important;grid-template-columns:36px minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;gap:7px 9px!important;padding:12px 4px!important}
  .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!important;grid-template-columns:1fr!important}
  .mv7-recurring-simulator{min-width:0!important;display:grid!important;grid-template-columns:1fr!important;gap:13px!important;padding:16px!important}
  .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)}
  .mv7-community-feed{position:relative}.mv7-community-toolbar{position:static!important;height:48px;align-items:center;gap:8px;padding:6px 14px!important;border-bottom:1px solid var(--v2-line)}.mv7-community-toolbar .mv7-icon-button{display:flex;width:auto;min-width:0;height:36px;gap:7px;padding:0 11px;background:rgba(255,255,255,.035)}.mv7-community-toolbar .mv7-icon-button::after{content:none!important}.mv7-community-tool-label{display:inline;color:var(--v2-muted);font-size:var(--v2-text-xs);white-space:nowrap}.mv7-community-tabs{padding-right:0;scroll-snap-type:x proximity}.mv7-community-tabs button{min-width:max-content!important;white-space:nowrap;scroll-snap-align:start}
  .mv7-tx-ledger:has(.mv7-tx-empty){min-height:0!important}.mv7-tx-list:has(.mv7-tx-empty){min-height:210px!important}.mv7-tx-empty{align-self:center}
  .mv7-goal-empty{min-height:260px!important;padding:20px 14px}.mv7-future-stage:has(.mv7-goal-empty){min-height:260px!important;display:block}.mv7-goal-empty strong,.mv7-goal-empty p{max-width:280px;text-align:center}
  .mv7-orbit-nodes:empty::before{content:"Todavía no hay servicios recurrentes"!important;min-height:48px;display:grid!important;place-items:center;color:var(--v2-muted)!important;font-weight:500!important}
}
@media(max-width:390px){.mv7-recurring-kpis{grid-template-columns:1fr!important}}

/* Racha y misiones — progression workspace derived from real V2 activity. */
.mv7-streak-view{padding:26px 28px 34px}.mv7-streak-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:16px}.mv7-streak-heading h2{margin:6px 0 4px;font-size:30px;font-weight:520;letter-spacing:-.04em}.mv7-streak-heading>div:first-child>p:last-child{color:var(--v2-muted)}.mv7-streak-heading>div:last-child{display:flex;gap:10px}.mv7-streak-heading button svg{width:15px;height:15px;fill:none;stroke:currentColor}.mv7-streak-primary{display:flex;min-height:40px;align-items:center;gap:8px;padding:0 18px;border:1px solid rgba(176,98,255,.65);border-radius:12px;background:linear-gradient(135deg,#6840ca,#a157eb);color:white;box-shadow:0 12px 24px -12px rgba(155,86,255,.75);font-weight:650;cursor:pointer}.mv7-streak-hero{display:grid;grid-template-columns:1fr 1.02fr;gap:12px;margin-bottom:12px}.mv7-streak-hero article,.mv7-missions-card,.mv7-streak-completed,.mv7-streak-rail section{border:1px solid var(--v2-line-strong);border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012));box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}.mv7-streak-current{display:flex;min-height:198px;align-items:center;justify-content:space-between;padding:20px 22px}.mv7-streak-current h3,.mv7-streak-level h3,.mv7-missions-card h3,.mv7-streak-completed h3,.mv7-streak-rail h3{margin:0;font-size:13px}.mv7-streak-current>div>strong{display:block;margin:10px 0 3px;background:linear-gradient(90deg,#a974ff,#e873c5,#ff9a47);background-clip:text;color:transparent;font-size:38px;font-weight:500;letter-spacing:-.035em}.mv7-streak-current p{margin:0 0 11px;color:var(--v2-muted);font-size:var(--v2-text-sm)}.mv7-streak-current p b{color:var(--v2-text);font-weight:500}.mv7-streak-current>div>small{display:block;margin-top:9px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-streak-flame{display:grid;width:135px;height:135px;flex:0 0 135px;place-items:center;border:8px solid transparent;border-right-color:#ff9b46;border-bottom-color:#e98691;border-left-color:#874bd9;border-radius:50%;background:radial-gradient(circle,rgba(149,79,255,.18),transparent 60%);transform:rotate(-20deg)}.mv7-streak-flame svg{width:58px;height:58px;fill:url(#none);stroke:#bf76ff;stroke-width:1.3;transform:rotate(20deg);filter:drop-shadow(0 0 12px rgba(178,93,255,.55))}.mv7-streak-week,.mv7-challenge-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.mv7-streak-week span,.mv7-challenge-days span{display:grid;justify-items:center;gap:5px}.mv7-streak-week small,.mv7-challenge-days small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-streak-week i,.mv7-challenge-days i{display:grid;width:20px;height:20px;place-items:center;border:1px solid #675578;border-radius:50%;color:white;font-size:var(--v2-text-xs);font-style:normal}.mv7-streak-week .is-done i,.mv7-challenge-days .is-done i{border-color:#a56aff;background:#8050cb;box-shadow:0 0 12px rgba(153,83,244,.3)}
.mv7-streak-level{display:grid;grid-template-columns:minmax(0,1fr) 210px;min-height:198px;padding:16px 18px}.mv7-level-main{padding-right:18px;border-right:1px solid var(--v2-line-strong)}.mv7-level-main>div{display:flex;align-items:center;gap:16px;margin:12px 0}.mv7-level-badge{display:grid;width:62px;height:62px;place-items:center;clip-path:polygon(50% 0,93% 24%,93% 76%,50% 100%,7% 76%,7% 24%);background:linear-gradient(145deg,#ac67ef,#39265a);color:#ba77ff;font-size:25px}.mv7-level-main p{display:grid;flex:1;gap:7px;margin:0}.mv7-level-main p strong{font-size:14px}.mv7-level-main p small,.mv7-level-main>small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-level-main p i{height:7px;overflow:hidden;border-radius:9px;background:rgba(255,255,255,.08)}.mv7-level-main p i b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9e5ee8,#bb7cff)}.mv7-level-main>button{display:grid;width:100%;grid-template-columns:30px 1fr 15px;align-items:center;gap:8px;margin-top:6px;padding:7px;border:0;border-radius:8px;background:rgba(255,255,255,.02);color:var(--v2-text);text-align:left;cursor:pointer}.mv7-level-main>button svg{width:17px;height:17px;fill:none;stroke:#b26cff}.mv7-streak-level dl{display:grid;margin:0;padding-left:18px}.mv7-streak-level dl div{display:grid;align-content:center;padding:0 0 0 48px;border-bottom:1px solid var(--v2-line);background-position:8px center;background-repeat:no-repeat}.mv7-streak-level dl div:last-child{border:0}.mv7-streak-level dt{font-size:16px}.mv7-streak-level dd{margin:3px 0 0;color:var(--v2-muted);font-size:var(--v2-text-xs)}
.mv7-streak-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.95fr);gap:12px}.mv7-streak-maincol,.mv7-streak-rail{display:flex;min-width:0;flex-direction:column;gap:12px}.mv7-missions-card{padding:17px 10px 10px}.mv7-missions-card>h3{padding:0 8px}.mv7-missions-card nav{display:flex;gap:22px;margin:6px 8px 8px;border-bottom:1px solid var(--v2-line)}.mv7-missions-card nav button{padding:10px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--v2-muted);font-size:var(--v2-text-sm);cursor:pointer}.mv7-missions-card nav button.is-active{border-color:#a760ed;color:#bf7cff}.mv7-mission-row{display:grid;grid-template-columns:40px minmax(0,1fr) 70px 130px 86px;align-items:center;gap:10px;min-height:59px;padding:7px 9px;border:1px solid var(--v2-line);border-radius:10px;background:rgba(255,255,255,.018);margin-top:6px}.mv7-mission-row:first-child{border-color:#a862ed;box-shadow:inset 0 0 18px rgba(150,75,230,.07)}.mv7-mission-row>span{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:rgba(164,91,238,.13);color:#b96cff}.mv7-mission-row>span svg{width:18px;height:18px;fill:none;stroke:currentColor}.mv7-mission-row>div:nth-child(2){display:grid;gap:4px;min-width:0}.mv7-mission-row>div strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mv7-mission-row>div small{overflow:hidden;color:var(--v2-muted);font-size:var(--v2-text-xs);text-overflow:ellipsis;white-space:nowrap}.mv7-mission-row>b{color:#b66bff;font-size:var(--v2-text-xs)}.mv7-mission-progress{display:grid!important;gap:5px}.mv7-mission-progress em{color:var(--v2-muted);font-size:var(--v2-text-xs);font-style:normal;text-align:right}.mv7-mission-progress i{height:5px;overflow:hidden;border-radius:5px;background:rgba(255,255,255,.07)}.mv7-mission-progress u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9b5bea,#bc73f2);text-decoration:none}.mv7-mission-row>button{min-height:32px;border:1px solid var(--v2-line-strong);border-radius:8px;background:rgba(255,255,255,.03);color:var(--v2-text);font-size:var(--v2-text-xs);cursor:pointer}.mv7-mission-row>button:disabled{color:var(--v2-green);opacity:.7}.mv7-streak-completed{padding:17px 18px}.mv7-streak-completed>div{margin-top:9px}.mv7-streak-completed p{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;margin:0;padding:9px 0;border-top:1px solid var(--v2-line);font-size:var(--v2-text-xs)}.mv7-streak-completed p i{color:var(--v2-green);font-style:normal}.mv7-streak-completed p small{color:#b970f4}.mv7-streak-rail section{padding:16px 18px}.mv7-weekly-challenge header{display:flex;align-items:center;gap:8px;color:#bd72f5;font-size:var(--v2-text-xs)}.mv7-weekly-challenge header svg{width:17px;height:17px;fill:none;stroke:currentColor}.mv7-weekly-challenge h3{margin:11px 0 5px;font-size:16px}.mv7-weekly-challenge>strong{display:block;margin-bottom:12px;font-size:var(--v2-text-sm)}.mv7-weekly-challenge>small{display:block;margin-top:14px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-weekly-challenge>p{display:flex;gap:20px;margin:8px 0 0;font-size:var(--v2-text-xs)}.mv7-weekly-challenge>p b{color:#c27aff}.mv7-weekly-challenge>p span{color:var(--v2-muted)}.mv7-next-rewards>div{position:relative;margin-top:12px;padding-left:24px}.mv7-next-rewards>div::before{position:absolute;top:5px;bottom:5px;left:7px;width:2px;background:linear-gradient(#bf78ff,#49345e);content:''}.mv7-next-rewards p{position:relative;display:grid;grid-template-columns:75px 1fr;margin:0;padding:8px 0;font-size:var(--v2-text-xs)}.mv7-next-rewards p::before{position:absolute;left:-22px;top:10px;width:10px;height:10px;border:3px solid #73519c;border-radius:50%;background:#b86ff5;content:''}.mv7-next-rewards p span{color:var(--v2-muted)}.mv7-month-rhythm header{display:flex;justify-content:space-between}.mv7-month-rhythm header span{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-month-rhythm>div{display:grid;grid-template-columns:repeat(16,1fr);gap:5px;margin-top:14px}.mv7-month-rhythm>div i{aspect-ratio:1;border-radius:3px;background:rgba(255,255,255,.055)}.mv7-month-rhythm>div i.is-active{background:#277347}.mv7-month-rhythm>div i.is-high{background:#3fc976;box-shadow:0 0 8px rgba(63,201,118,.25)}.mv7-month-rhythm footer{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-month-rhythm footer i{height:7px;flex:1;border-radius:8px;background:linear-gradient(90deg,rgba(45,222,152,.08),#36c974)}
@media(max-width:1050px){.mv7-streak-hero{grid-template-columns:1fr}.mv7-streak-grid{grid-template-columns:1fr}.mv7-streak-rail{display:grid;grid-template-columns:1fr 1fr}.mv7-month-rhythm{grid-column:1/-1}}
@media(max-width:768px){.mv7-streak-view{padding:18px 14px 30px}.mv7-streak-heading{align-items:flex-start;flex-direction:column}.mv7-streak-heading h2{font-size:27px}.mv7-streak-heading>div:last-child{width:100%}.mv7-streak-heading button{flex:1;justify-content:center}.mv7-streak-current{min-height:0;padding:18px}.mv7-streak-flame{width:92px;height:92px;flex-basis:92px;border-width:6px}.mv7-streak-flame svg{width:40px;height:40px}.mv7-streak-current>div>strong{font-size:31px}.mv7-streak-level{grid-template-columns:1fr}.mv7-level-main{padding:0 0 14px;border-right:0;border-bottom:1px solid var(--v2-line)}.mv7-streak-level dl{grid-template-columns:repeat(3,1fr);padding:10px 0 0}.mv7-streak-level dl div{padding:8px;text-align:center;border-right:1px solid var(--v2-line);border-bottom:0}.mv7-streak-level dl div:last-child{border-right:0}.mv7-mission-row{grid-template-columns:36px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:6px 9px;padding:10px}.mv7-mission-row>span{grid-row:1/3}.mv7-mission-row>b{grid-column:3;grid-row:1}.mv7-mission-progress{grid-column:2;grid-row:2}.mv7-mission-row>button{grid-column:3;grid-row:2;padding:0 9px}.mv7-missions-card nav{gap:0;justify-content:space-between;overflow-x:auto}.mv7-missions-card nav button{padding-inline:7px;white-space:nowrap}.mv7-streak-rail{display:flex}.mv7-month-rhythm{grid-column:auto}}
@media(max-width:420px){.mv7-streak-current{align-items:flex-start}.mv7-streak-flame{width:72px;height:72px;flex-basis:72px}.mv7-streak-week{gap:4px}.mv7-streak-week i{width:18px;height:18px}.mv7-streak-level dl{grid-template-columns:1fr}.mv7-streak-level dl div{border-right:0;border-bottom:1px solid var(--v2-line)}.mv7-mission-row{grid-template-columns:34px minmax(0,1fr)}.mv7-mission-row>b{grid-column:2;grid-row:2}.mv7-mission-progress{grid-column:2;grid-row:3}.mv7-mission-row>button{grid-column:1/-1;grid-row:4}.mv7-month-rhythm>div{grid-template-columns:repeat(8,1fr)}}

/* Owner — business command center. Visibility/authorization is intentionally delegated. */
.mv7-owner-nav-item{--owner-accent:#9b5cf4}.mv7-owner-nav-item.is-active{border-color:rgba(155,92,244,.28);background:linear-gradient(90deg,rgba(155,92,244,.14),rgba(255,255,255,.025))}.mv7-owner-nav-item.is-active::before{background:#a45df6}.mv7-owner-nav-item.is-active svg{stroke:#a96bff}.mv7-owner-view{padding:24px 30px 34px}.mv7-owner-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.mv7-owner-heading h2{margin:5px 0 4px;font-size:28px;font-weight:550;letter-spacing:-.04em}.mv7-owner-heading>div:first-child>p:last-child{color:var(--v2-muted)}.mv7-owner-heading>div:last-child{display:flex;gap:12px}.mv7-owner-heading button{display:flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.mv7-owner-heading button svg{width:15px;height:15px;fill:none;stroke:currentColor}.mv7-owner-primary{min-height:40px;padding:0 20px;border:1px solid rgba(169,93,255,.7);border-radius:22px;background:linear-gradient(135deg,#6d3ed0,#a454ed);color:white;font-weight:650;box-shadow:0 12px 24px -13px rgba(158,83,245,.8);cursor:pointer}.mv7-owner-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}.mv7-owner-kpis article{position:relative;display:grid;min-width:0;min-height:112px;grid-template-columns:40px minmax(0,1fr) auto;align-items:start;gap:9px;padding:17px 15px 25px;overflow:hidden;border:1px solid var(--v2-line-strong);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}.mv7-owner-kpis article>span{display:grid;width:37px;height:37px;place-items:center;border-radius:11px;background:rgba(155,92,244,.13);color:#a460f4}.mv7-owner-kpis svg{width:20px;height:20px;fill:none;stroke:currentColor}.mv7-owner-kpis div{display:grid;gap:5px}.mv7-owner-kpis small{color:var(--v2-text);font-size:var(--v2-text-xs)}.mv7-owner-kpis strong{font-size:20px;letter-spacing:-.02em}.mv7-owner-kpis article>b{align-self:center;color:var(--v2-green);font-size:var(--v2-text-sm)}.mv7-owner-kpis article>i{position:absolute;right:15px;bottom:10px;left:15px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 30'%3E%3Cpath d='M0 25L20 18L38 22L55 12L72 17L92 7L112 10L135 14L155 12L175 18L195 6L213 19L230 7L250 12L270 4L285 8L300 2' fill='none' stroke='%239b5cf4' stroke-width='1.4'/%3E%3C/svg%3E") center/100% 100% no-repeat}.mv7-owner-kpis .is-green>span{background:rgba(45,222,152,.12);color:var(--v2-green)}.mv7-owner-kpis .is-green>i{filter:hue-rotate(70deg)}.mv7-owner-kpis .is-blue>span{background:rgba(55,126,255,.13);color:#4d91ff}.mv7-owner-kpis .is-blue>i{filter:hue-rotate(170deg)}.mv7-owner-kpis .is-orange>span{background:rgba(255,126,31,.13);color:#ff851f}.mv7-owner-kpis .is-orange>b{color:#ff5858}.mv7-owner-kpis .is-orange>i{filter:hue-rotate(240deg)}
.mv7-owner-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,1fr);gap:12px}.mv7-owner-maincol,.mv7-owner-rail{display:flex;min-width:0;flex-direction:column;gap:12px}.mv7-owner-maincol>section,.mv7-owner-rail>section{border:1px solid var(--v2-line-strong);border-radius:13px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.012))}.mv7-owner-grid h3{margin:0;font-size:12px}.mv7-owner-growth{padding:15px}.mv7-owner-growth>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mv7-owner-growth>header p{display:flex;align-items:center;gap:8px;margin:8px 0 0;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-owner-growth>header p i{width:7px;height:7px;border-radius:50%;background:var(--v2-green)}.mv7-owner-growth>header p i:nth-of-type(2){margin-left:10px;background:#9b5cf4}.mv7-owner-growth nav{display:flex;padding:2px;border:1px solid var(--v2-line);border-radius:9px;background:rgba(0,0,0,.15)}.mv7-owner-growth nav button{min-width:40px;height:28px;border:0;border-radius:7px;background:none;color:var(--v2-muted);font-size:var(--v2-text-xs);cursor:pointer}.mv7-owner-growth nav button.is-active{background:rgba(255,255,255,.08);color:var(--v2-text)}.mv7-owner-chart{position:relative;display:grid;height:245px;grid-template-columns:48px 1fr;grid-template-rows:repeat(6,1fr);margin-top:10px;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-owner-chart>span{display:flex;align-items:start}.mv7-owner-chart svg{grid-column:2;grid-row:1/7;width:100%;height:220px;overflow:visible}.owner-grid-lines{fill:none;stroke:rgba(255,255,255,.09);stroke-width:1;stroke-dasharray:3 3}.owner-green-line,.owner-purple-line{fill:none;stroke:var(--v2-green);stroke-width:2}.owner-purple-line{stroke:#9b5cf4}.mv7-owner-chart footer{position:absolute;right:0;bottom:0;left:48px;display:flex;justify-content:space-between}.mv7-owner-insight{display:flex;align-items:center;gap:9px;margin:7px 0 0;padding:10px;border:1px solid var(--v2-line);border-radius:8px;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-owner-insight svg{width:14px;height:14px;fill:none;stroke:var(--v2-green)}.mv7-owner-insight b{color:var(--v2-green)}
.mv7-owner-users{padding:15px}.mv7-owner-users>header,.mv7-owner-rail section>header{display:flex;align-items:center;justify-content:space-between}.mv7-owner-users header button,.mv7-owner-rail header button{display:flex;align-items:center;gap:5px;border:0;background:none;color:#a869ed;font-size:var(--v2-text-xs);cursor:pointer}.mv7-owner-users header svg{width:11px;height:11px;fill:none;stroke:currentColor}.mv7-owner-user-head{display:grid;grid-template-columns:2.3fr .85fr .9fr 1.25fr 1fr;gap:8px;margin-top:12px;padding:7px 0;border-bottom:1px solid var(--v2-line);color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-owner-user-list article,#owner-user-list article{display:grid;grid-template-columns:30px minmax(0,2fr) .8fr .85fr 1.15fr .95fr;align-items:center;gap:8px;min-height:45px;border-bottom:1px solid var(--v2-line);font-size:var(--v2-text-xs)}.mv7-owner-user-list article:last-child,#owner-user-list article:last-child{border:0}.is-avatar{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:linear-gradient(145deg,#d29468,#60391f);font-size:var(--v2-text-micro);font-weight:700}.is-avatar.is-blue{background:linear-gradient(145deg,#558dd0,#173958)}.is-avatar.is-orange{background:linear-gradient(145deg,#e68a58,#65351e)}#owner-user-list p{display:grid;gap:2px;margin:0}#owner-user-list p strong{font-size:var(--v2-text-xs)}#owner-user-list p small,#owner-user-list time{color:var(--v2-muted);font-size:var(--v2-text-micro)}#owner-user-list article>b{justify-self:start;padding:4px 8px;border-radius:12px;background:rgba(255,255,255,.05);font-size:var(--v2-text-micro)}#owner-user-list article>b.is-pro{background:rgba(155,92,244,.12);color:#ad68ff}#owner-user-list article>b.is-team{background:rgba(55,126,255,.12);color:#5592ff}#owner-user-list article>em{justify-self:start;padding:4px 8px;border-radius:12px;background:rgba(45,222,152,.1);color:var(--v2-green);font-size:var(--v2-text-micro);font-style:normal}#owner-user-list article>em.is-inactive{background:rgba(255,132,31,.1);color:#ff851f}#owner-user-list output{color:var(--v2-muted);font-size:var(--v2-text-micro)}
.mv7-owner-rail>section{padding:14px}.mv7-plan-bar{display:grid;height:10px;grid-template-columns:68fr 27fr 5fr;gap:2px;margin:11px 0;border-radius:4px;overflow:hidden}.mv7-plan-bar i:first-child{background:linear-gradient(90deg,#7441c8,#a555e8)}.mv7-plan-bar i:nth-child(2){background:#3478dd}.mv7-plan-bar i:last-child{background:#39c29b}.mv7-owner-plans>p{display:grid;grid-template-columns:8px 1fr auto 120px;align-items:center;gap:7px;margin:0;padding:6px 2px;font-size:var(--v2-text-xs)}.mv7-owner-plans>p>i{width:7px;height:7px;border-radius:50%;background:#9b5cf4}.mv7-owner-plans>p>i.is-blue{background:#3478dd}.mv7-owner-plans>p>i.is-green{background:#39c29b}.mv7-owner-plans>p em{color:var(--v2-muted);font-style:normal;text-align:right}.mv7-owner-plans footer{display:flex;justify-content:space-between;margin-top:5px;padding-top:8px;border-top:1px solid var(--v2-line);color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-owner-health>div{display:grid;grid-template-columns:repeat(4,1fr);margin-top:10px}.mv7-owner-health p{display:grid;gap:4px;margin:0;padding:0 10px;border-right:1px solid var(--v2-line)}.mv7-owner-health p:first-child{padding-left:0}.mv7-owner-health p:last-child{border:0}.mv7-owner-health small{color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-owner-health strong{font-size:16px}.mv7-owner-health span{color:var(--v2-green);font-size:var(--v2-text-micro)}.mv7-owner-attention>p,.mv7-owner-live>p{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;margin:0;min-height:44px;border-bottom:1px solid var(--v2-line);font-size:var(--v2-text-xs)}.mv7-owner-attention>p:last-child,.mv7-owner-live>p:last-child{border:0}.mv7-owner-attention>p>span,.mv7-owner-live>p>span{display:grid;width:30px;height:30px;place-items:center;border-radius:8px;background:rgba(255,70,70,.12);color:#ff5858}.mv7-owner-attention strong,.mv7-owner-live strong{display:grid;gap:3px}.mv7-owner-attention small,.mv7-owner-live small{color:var(--v2-muted);font-size:var(--v2-text-micro);font-weight:400}.mv7-owner-attention>p>b{padding:4px 7px;border:1px solid rgba(255,70,70,.3);border-radius:12px;color:#ff5858;font-size:var(--v2-text-micro)}.mv7-owner-attention>p>b.is-high{border-color:rgba(255,133,31,.3);color:#ff851f}.mv7-owner-attention>p>b.is-medium{border-color:rgba(255,205,31,.3);color:#ffd21f}.mv7-owner-live>p>span{background:rgba(155,92,244,.1);color:#a966f6}.mv7-owner-live svg{width:16px;height:16px;fill:none;stroke:currentColor}.mv7-owner-live time{color:var(--v2-muted);font-size:var(--v2-text-micro)}
@media(max-width:1180px){.mv7-owner-kpis{grid-template-columns:1fr 1fr}.mv7-owner-grid{grid-template-columns:1fr}.mv7-owner-rail{display:grid;grid-template-columns:1fr 1fr}.mv7-owner-live{grid-column:1/-1}}
@media(max-width:768px){.mv7-owner-view{padding:18px 14px 30px}.mv7-owner-heading{align-items:flex-start;flex-direction:column}.mv7-owner-heading h2{font-size:27px}.mv7-owner-heading>div:last-child{width:100%}.mv7-owner-heading button{flex:1;padding-inline:10px}.mv7-owner-kpis{grid-template-columns:1fr 1fr;gap:8px}.mv7-owner-kpis article{min-height:120px;grid-template-columns:34px 1fr;padding:13px 12px 26px}.mv7-owner-kpis article>b{grid-column:2}.mv7-owner-kpis strong{font-size:16px}.mv7-owner-growth>header{flex-direction:column}.mv7-owner-chart{height:215px;grid-template-columns:42px 1fr}.mv7-owner-chart svg{height:190px}.mv7-owner-chart footer{left:42px}.mv7-owner-user-head{display:none}#owner-user-list article{grid-template-columns:30px minmax(0,1fr) auto;grid-template-rows:auto auto;padding:8px 0}#owner-user-list article>b{grid-column:3;grid-row:1}#owner-user-list article>em{grid-column:2;grid-row:2}#owner-user-list article>time{grid-column:3;grid-row:2}#owner-user-list article>output{display:none}.mv7-owner-rail{display:flex}.mv7-owner-health>div{grid-template-columns:1fr 1fr;gap:12px}.mv7-owner-health p{padding:0;border:0}.mv7-owner-plans>p{grid-template-columns:8px 1fr auto}.mv7-owner-plans>p em{display:none}.mv7-owner-attention>p,.mv7-owner-live>p{grid-template-columns:32px minmax(0,1fr)}.mv7-owner-attention>p>b,.mv7-owner-live time{grid-column:2;justify-self:start}}
@media(max-width:420px){.mv7-owner-kpis{grid-template-columns:1fr}.mv7-owner-heading>div:last-child{flex-direction:column}.mv7-owner-chart>span{font-size:var(--v2-text-micro)}.mv7-owner-health strong{font-size:14px}}

/* Community direct messages — full social workspace, existing Supabase behavior preserved. */
.mv7-dm-dialog{width:min(1320px,calc(100% - 42px));max-width:none;height:min(820px,calc(100vh - 42px));max-height:none;padding:0;border-radius:18px;background:#080c0a}.mv7-dm-dialog::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(10px)}.mv7-dm-dialog .mv7-dialog-body{display:grid!important;width:100%;height:100%!important;grid-template-columns:330px minmax(480px,1fr) 285px;padding:0!important;overflow:hidden}.mv7-dm-dialog #community-dm-list-view,.mv7-dm-dialog #community-dm-thread-view{display:flex;height:100%;min-width:0;flex-direction:column}.mv7-dm-dialog #community-dm-list-view{border-right:1px solid var(--v2-line)}.mv7-dm-dialog #community-dm-thread-view{border-right:1px solid var(--v2-line)}.mv7-dm-dialog #community-dm-list-view[hidden],.mv7-dm-dialog #community-dm-thread-view[hidden]{display:none}.mv7-dm-dialog header{display:flex;min-height:82px;align-items:center;justify-content:space-between;margin:0!important;padding:16px 17px!important;border-bottom:1px solid var(--v2-line)}.mv7-dm-dialog header h2{margin:3px 0 1px;font-size:20px}.mv7-dm-dialog header>div>small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-dm-search{display:flex;height:42px;align-items:center;gap:8px;margin:14px 14px 8px;padding:0 12px;border:1px solid var(--v2-line-strong);border-radius:11px;background:rgba(255,255,255,.018)}.mv7-dm-search svg{width:15px;height:15px;fill:none;stroke:var(--v2-muted)}.mv7-dm-search input{width:100%;border:0;outline:0;background:none;color:var(--v2-text);font-size:var(--v2-text-sm)}.mv7-dm-filters{display:flex;gap:6px;padding:0 14px 9px}.mv7-dm-filters button{height:31px;padding:0 14px;border:0;border-radius:18px;background:none;color:var(--v2-muted);font-size:var(--v2-text-xs);cursor:pointer}.mv7-dm-filters button.is-active{border:1px solid rgba(45,222,152,.16);background:var(--v2-green-soft);color:var(--v2-text)}.mv7-dm-dialog #community-dm-conversations{padding:0 9px 14px}.mv7-dm-conversation-row{min-height:72px!important;grid-template-columns:42px minmax(0,1fr) auto!important;gap:10px!important;padding:10px!important;border:1px solid transparent!important;border-radius:12px!important}.mv7-dm-conversation-row.is-selected{border-color:rgba(45,222,152,.18)!important;background:linear-gradient(90deg,rgba(45,222,152,.1),rgba(255,255,255,.025))!important;box-shadow:inset 2px 0 var(--v2-green)}.mv7-dm-conversation-row .mv7-community-avatar{width:40px;height:40px}.mv7-dm-conversation-row strong{color:var(--v2-text)!important;font-size:var(--v2-text-sm)!important}.mv7-dm-conversation-row p{font-size:var(--v2-text-xs)!important}.mv7-dm-conversation-meta small{font-size:var(--v2-text-micro)!important}.mv7-dm-conversation-unread{background:var(--v2-green)!important;color:#07100c!important}
#community-dm-thread-view>header{gap:10px}#community-dm-thread-back{display:none}.mv7-dm-thread-identity{min-width:0;gap:10px}.mv7-dm-thread-identity p{display:grid;min-width:0;flex:1;gap:3px;margin:0}.mv7-dm-thread-identity strong,.mv7-dm-thread-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mv7-dm-thread-identity strong{font-size:12px}.mv7-dm-thread-identity small{color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-dm-thread-identity small i{color:var(--v2-green);font-style:normal}.mv7-dm-dialog #community-dm-messages{padding:22px 20px 16px;background:radial-gradient(circle at 50% 30%,rgba(45,222,152,.025),transparent 45%)}.mv7-dm-bubble{position:relative;max-width:68%;padding:11px 13px!important;border:1px solid var(--v2-line);border-radius:13px!important;box-shadow:0 8px 20px -18px #000}.mv7-dm-bubble p{overflow-wrap:anywhere;font-size:var(--v2-text-sm)!important;line-height:1.5!important}.mv7-dm-bubble small{text-align:right}.mv7-dm-bubble.is-theirs{border-bottom-left-radius:4px!important;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.035))!important}.mv7-dm-bubble.is-mine{border-color:rgba(45,222,152,.2);border-bottom-right-radius:4px!important;background:linear-gradient(145deg,rgba(45,222,152,.18),rgba(21,87,61,.25))!important}.mv7-dm-composer{position:relative;display:grid!important;grid-template-columns:auto minmax(0,1fr) 40px;align-items:center!important;gap:8px!important;margin:0 16px 14px;padding:12px 12px 26px!important;border:1px solid var(--v2-line-strong)!important;border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018))}.mv7-dm-compose-tools{display:flex;gap:3px}.mv7-dm-compose-tools button{display:grid;width:32px;height:32px;place-items:center;border:0;background:none;color:var(--v2-muted);font-size:16px;cursor:pointer}.mv7-dm-compose-tools svg{width:16px;height:16px;fill:none;stroke:currentColor}.mv7-dm-composer textarea{min-height:34px!important;padding:8px 4px!important;border:0!important;background:none!important}.mv7-dm-composer>#community-dm-send{width:38px;height:38px;border:0;background:linear-gradient(145deg,#38e6a1,#159b69);color:#04100a;box-shadow:0 7px 16px -8px rgba(45,222,152,.75)}.mv7-dm-composer>small{position:absolute;right:12px;bottom:7px;left:12px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-dm-composer>small svg{width:10px;height:10px;fill:none;stroke:currentColor}
.mv7-dm-profile{position:relative;display:flex;min-width:0;flex-direction:column;align-items:center;padding:44px 22px 22px;text-align:center}.mv7-dm-profile>.mv7-community-avatar{width:96px;height:96px;font-size:25px}.mv7-dm-profile>i{position:absolute;top:118px;right:88px;width:15px;height:15px;border:3px solid #080c0a;border-radius:50%;background:var(--v2-green)}.mv7-dm-profile>h2{margin:14px 0 3px;font-size:19px}.mv7-dm-profile>p{margin:0;color:var(--v2-muted);font-size:var(--v2-text-xs)}.mv7-dm-profile>small{max-width:220px;margin:18px 0;color:var(--v2-muted);font-size:var(--v2-text-xs);line-height:1.55}.mv7-dm-profile>button:not(.mv7-dm-block){width:100%;min-height:39px;border:1px solid var(--v2-line-strong);border-radius:10px;background:rgba(255,255,255,.035);color:var(--v2-text);font-weight:600;cursor:pointer}.mv7-dm-profile section{width:100%;margin-top:22px;padding-top:18px;border-top:1px solid var(--v2-line);text-align:left}.mv7-dm-profile section h3{margin:0 0 11px;font-size:var(--v2-text-sm)}.mv7-dm-profile section div{display:flex;flex-wrap:wrap;gap:6px}.mv7-dm-profile section div span{padding:7px 9px;border:1px solid var(--v2-line);border-radius:8px;background:rgba(255,255,255,.025);color:var(--v2-muted);font-size:var(--v2-text-micro)}.mv7-dm-profile section p{display:flex;gap:8px;margin:0;color:var(--v2-muted);font-size:var(--v2-text-micro);line-height:1.5}.mv7-dm-profile section p svg{width:16px;height:16px;flex:0 0 16px;fill:none;stroke:var(--v2-green)}.mv7-dm-profile>.mv7-dm-block{width:100%;margin-top:auto;padding:10px;border:0;background:none;color:#ff5d5d;font-size:var(--v2-text-xs);text-align:left;cursor:pointer}
@media(max-width:1050px) and (min-width:769px){.mv7-dm-dialog .mv7-dialog-body{grid-template-columns:285px minmax(430px,1fr)}.mv7-dm-profile{display:none}}
@media(max-width:768px){.mv7-dm-dialog{width:calc(100% - 20px);height:calc(100vh - 20px);border-radius:15px}.mv7-dm-dialog .mv7-dialog-body{display:block!important;height:100%!important}.mv7-dm-dialog #community-dm-list-view,.mv7-dm-dialog #community-dm-thread-view{height:100%}.mv7-dm-dialog #community-dm-list-view{border:0}.mv7-dm-dialog #community-dm-thread-view{border:0}.mv7-dm-dialog #community-dm-list-view[hidden],.mv7-dm-dialog #community-dm-thread-view[hidden]{display:none!important}.mv7-dm-profile{display:none}#community-dm-thread-back{display:flex}.mv7-dm-dialog #community-dm-messages{padding-inline:14px}.mv7-dm-bubble{max-width:84%}.mv7-dm-composer{grid-template-columns:minmax(0,1fr) 40px;margin:0 10px 10px}.mv7-dm-compose-tools{display:none}.mv7-dm-dialog header{min-height:72px;padding:12px 14px!important}.mv7-dm-thread-identity .mv7-community-avatar{width:35px;height:35px}}
.mv7-dm-profile>i{display:none}.mv7-dm-profile.has-thread>i{display:block}.mv7-dm-dialog #community-dm-thread-view:not(.has-thread) #community-dm-messages::before{display:grid;height:100%;place-items:center;color:var(--v2-muted);font-size:var(--v2-text-sm);content:"Seleccioná una conversación para comenzar"}.mv7-dm-dialog #community-dm-thread-view:not(.has-thread) .mv7-dm-composer{visibility:hidden}

/* Approved mobile conversation treatment. */
@media(max-width:768px){
  #community-leaderboard-dialog{width:calc(100% - 20px);max-width:480px;max-height:calc(100dvh - 20px);margin:auto;border:1px solid var(--v2-line-strong);border-radius:18px;animation:none!important;transform:none!important}#community-leaderboard-dialog .mv7-dialog-body{max-height:calc(100dvh - 22px);overflow:auto}#community-leaderboard-list{max-height:none}
  .mv7-dm-dialog{inset:0!important;width:100%!important;height:100dvh!important;max-width:none!important;max-height:none!important;box-sizing:border-box;margin:0!important;border:0!important;border-radius:0!important;animation:none!important;transform:none!important;background:#030806}
  .mv7-dm-dialog .mv7-dialog-body{height:100%!important}.mv7-dm-dialog #community-dm-list-view>header{padding-top:max(12px,env(safe-area-inset-top))!important}
  .mv7-community-view{overflow-x:clip}
  .mv7-community-tabs{height:54px;padding:0 8px;scrollbar-width:none}.mv7-community-tabs::-webkit-scrollbar{display:none}.mv7-community-tabs button{padding:0 13px!important;font-size:12px}.mv7-community-tabs button.is-active::after{right:13px;left:13px}
  .mv7-community-composer{grid-template-columns:38px minmax(0,1fr);gap:11px;padding:15px 14px 13px}.mv7-community-composer .mv7-community-avatar{width:36px;height:36px}.mv7-community-compose-body textarea{min-height:48px;font-size:14px}.mv7-community-compose-footer{align-items:flex-end;gap:8px}.mv7-community-private{width:auto;font-size:0}.mv7-community-private svg{width:16px;height:16px}.mv7-community-compose-actions{gap:6px}.mv7-community-compose-actions>button:not(.mv7-primary-button){width:34px;height:34px}.mv7-community-compose-actions .mv7-primary-button{padding:0 15px}
  .mv7-community-post{grid-template-columns:38px minmax(0,1fr);gap:11px;padding:16px 14px 13px}.mv7-community-post-body>header{min-width:0;flex-wrap:wrap;gap:4px 6px}.mv7-community-post-body>header strong{font-size:12px}.mv7-community-post-body>header span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mv7-community-post-body>header button{align-self:flex-start;flex:0 0 auto}.mv7-community-post-body>p{font-size:13px;line-height:1.5}.mv7-community-post-actions{width:100%;max-width:none}.mv7-community-progress-card{align-items:flex-start}.mv7-community-progress-card>div{min-width:0}.mv7-community-progress-card span{line-height:1.35}.mv7-community-reply{margin-left:0;padding-left:10px}
  #community-profile-panel{max-width:none}.mv7-community-profile-stats{justify-content:space-around}.mv7-community-profile-tabs{scrollbar-width:none}.mv7-community-profile-tabs button{flex:0 0 auto;margin-right:12px;white-space:nowrap}
  .mv7-community-empty{padding:48px 18px;line-height:1.5}
  .mv7-dm-dialog:has(#community-dm-thread-view:not([hidden])){inset:0;width:100%;height:100dvh;max-width:none;max-height:none;box-sizing:border-box;margin:0;border:0;border-radius:0;background:radial-gradient(circle at 82% 38%,rgba(0,126,103,.11),transparent 34%),#030806;animation:none!important;transform:none!important}
  .mv7-dm-dialog #community-dm-thread-view>header{position:relative;min-height:84px;flex:0 0 84px;gap:9px;padding:12px 13px!important;background:rgba(4,10,7,.88);backdrop-filter:blur(18px);z-index:3}
  #community-dm-thread-back{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;padding:0;font-size:0}
  #community-dm-thread-back{color:var(--v2-text)}#community-dm-thread-back svg{width:20px;height:20px;stroke:currentColor;transform:rotate(180deg)}
  .mv7-dm-thread-identity{gap:10px}.mv7-dm-thread-identity .mv7-community-avatar{width:43px;height:43px;flex:0 0 43px}.mv7-dm-thread-identity p{gap:2px}.mv7-dm-thread-identity strong{font-size:14px}.mv7-dm-thread-identity small{font-size:var(--v2-text-xs)}.mv7-dm-thread-identity small i{display:inline-block;margin-left:2px}
  #community-dm-thread-view>header>.mv7-icon-button{width:38px;height:38px;flex:0 0 38px}
  .mv7-dm-dialog #community-dm-messages{position:relative;gap:13px;padding:58px 16px 150px;background:radial-gradient(circle at 80% 36%,rgba(0,117,94,.08),transparent 34%)}
  .mv7-dm-dialog #community-dm-thread-view.has-thread #community-dm-messages::before{position:absolute;top:22px;right:16px;left:16px;display:flex;align-items:center;gap:13px;color:var(--v2-muted);font-size:var(--v2-text-xs);content:"Hoy"}
  .mv7-dm-dialog #community-dm-thread-view.has-thread #community-dm-messages::after{position:absolute;top:28px;right:16px;left:16px;height:1px;background:linear-gradient(90deg,var(--v2-line) 0 42%,transparent 42% 58%,var(--v2-line) 58%);content:""}
  .mv7-dm-bubble{max-width:82%;padding:13px 15px!important;border-radius:16px!important;box-shadow:0 13px 28px -24px #000}
  .mv7-dm-bubble p{font-size:13px!important;line-height:1.48!important}.mv7-dm-bubble small{margin-top:7px!important;font-size:var(--v2-text-micro)!important}
  .mv7-dm-bubble.is-theirs{border-color:rgba(255,255,255,.15);background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.035))!important}.mv7-dm-bubble.is-mine{border-color:rgba(45,222,152,.34);background:linear-gradient(145deg,rgba(25,126,86,.42),rgba(5,68,49,.48))!important}
  .mv7-dm-composer{position:absolute;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));left:12px;z-index:4;display:grid!important;grid-template-columns:auto minmax(0,1fr) 44px!important;gap:7px!important;margin:0;padding:11px 11px 31px!important;border-color:rgba(255,255,255,.18)!important;border-radius:18px;background:linear-gradient(145deg,rgba(25,33,29,.94),rgba(8,14,11,.96));box-shadow:0 18px 45px -20px #000;backdrop-filter:blur(20px)}
  .mv7-dm-compose-tools{display:flex}.mv7-dm-compose-tools button{width:31px;height:38px}.mv7-dm-compose-tools button:first-child{font-size:20px;transform:rotate(-35deg)}.mv7-dm-compose-tools button:last-child{display:none}
  .mv7-dm-composer textarea{font-size:12px!important}.mv7-dm-composer>#community-dm-send{width:42px;height:42px;flex-basis:42px}.mv7-dm-composer>#community-dm-send svg{width:18px;height:18px}
  .mv7-dm-composer>small{bottom:9px;font-size:var(--v2-text-micro)}.mv7-dm-composer>small svg{width:12px;height:12px;stroke:var(--v2-green)}
}
@media(max-width:420px){
  .mv7-community-toolbar{position:relative}.mv7-community-toolbar .mv7-icon-button{width:36px!important;flex:0 0 36px;padding:0!important;justify-content:center}.mv7-community-toolbar .mv7-community-tool-label{display:none}
  .mv7-community-tabs{padding-right:30px;background:linear-gradient(90deg,var(--v2-surface) 0 calc(100% - 26px),color-mix(in srgb,var(--v2-surface) 25%,transparent)),var(--v2-surface)}
  .mv7-community-compose-actions{gap:5px}.mv7-community-compose-actions .mv7-primary-button{padding:0 13px}
}
@media(max-width:350px){
  .mv7-topbar-copy p{display:none}.mv7-community-toolbar{padding-inline:14px!important}.mv7-community-tabs button{padding-inline:11px!important}.mv7-community-tabs button.is-active::after{right:11px;left:11px}
  .mv7-community-composer{grid-template-columns:36px minmax(0,1fr);gap:10px}.mv7-community-compose-footer{align-items:center}.mv7-community-compose-actions>button:not(.mv7-primary-button){width:32px;height:32px}.mv7-community-compose-actions .mv7-primary-button{min-height:33px;padding:0 11px}
  .mv7-community-post{grid-template-columns:38px minmax(0,1fr);padding-inline:14px}.mv7-community-post-body>header em{order:3}.mv7-community-post-body>header button{position:absolute;right:13px}.mv7-community-post-body>header{padding-right:34px;position:relative}.mv7-community-progress-card{padding:9px}.mv7-community-progress-card>strong{flex:0 0 38px}
  .mv7-dm-dialog #community-dm-thread-view>header{gap:7px;padding-inline:10px!important}.mv7-dm-thread-identity{gap:8px}.mv7-dm-thread-identity .mv7-community-avatar{width:38px;height:38px;flex-basis:38px}.mv7-dm-thread-identity strong{font-size:12px}.mv7-dm-thread-identity small{font-size:var(--v2-text-micro)}#community-dm-thread-view>header>.mv7-icon-button[aria-label^="Buscar"]{display:none}
  .mv7-dm-bubble{max-width:88%;padding:12px 14px!important}.mv7-dm-composer{right:8px;left:8px;grid-template-columns:auto minmax(0,1fr) 42px!important;padding-inline:9px!important}.mv7-dm-compose-tools button:first-child{display:none}
}

/* Messages workspace: final layout authority. The original compact dialog
   and the later three-column concept both remain above; these rules unify
   their geometry and controls without changing the Supabase workflow. */
.mv7-dm-dialog {
  width: min(1220px, calc(100% - 48px));
  height: min(760px, calc(100dvh - 48px));
  max-width: none;
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--v2-line-strong);
  border-radius: 14px;
  background: #060a08;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.55);
}

.mv7-dm-dialog .mv7-dialog-body {
  display: grid !important;
  width: 100%;
  height: 100% !important;
  grid-template-columns: 310px minmax(440px, 1fr) 260px;
  padding: 0 !important;
  overflow: hidden;
}

.mv7-dm-dialog #community-dm-list-view,
.mv7-dm-dialog #community-dm-thread-view {
  display: flex;
  position: relative;
  min-width: 0;
  height: 100%;
  flex-direction: column;
}

#community-dm-close {
  display: none;
}

.mv7-dm-dialog #community-dm-list-view,
.mv7-dm-dialog #community-dm-thread-view {
  border-right: 1px solid var(--v2-line);
}

.mv7-dm-dialog header {
  min-height: 76px;
  margin: 0 !important;
  padding: 14px 16px !important;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-dm-dialog #community-dm-list-view > header h2 {
  margin: 2px 0;
  font-size: 19px;
}

.mv7-dm-dialog #community-dm-list-view > header small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-dm-search {
  height: 42px;
  flex: 0 0 42px;
  margin: 12px 12px 7px;
  border-color: var(--v2-line-strong);
  border-radius: 9px;
}

.mv7-dm-filters {
  gap: 2px;
  padding: 0 12px 10px;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-dm-filters button {
  min-height: 34px;
  padding: 0 12px;
  border-radius: 7px;
}

.mv7-dm-filters button.is-active {
  border-color: transparent;
  background: rgba(45, 222, 152, 0.11);
  color: var(--v2-green-bright);
}

.mv7-dm-dialog #community-dm-conversations {
  min-height: 0;
  padding: 7px 8px 14px;
  overflow-y: auto;
}

.mv7-dm-conversation-row {
  min-height: 68px !important;
  grid-template-columns: 40px minmax(0, 1fr) auto !important;
  gap: 10px !important;
  padding: 9px 8px !important;
  border: 0 !important;
  border-radius: 8px !important;
}

.mv7-dm-conversation-row:hover {
  background: rgba(255, 255, 255, 0.035);
}

.mv7-dm-conversation-row.is-selected {
  border: 0 !important;
  background: rgba(45, 222, 152, 0.075) !important;
  box-shadow: inset 2px 0 var(--v2-green);
}

.mv7-dm-conversation-row .mv7-community-avatar {
  width: 40px;
  height: 40px;
  flex-basis: 40px;
}

.mv7-dm-conversation-row strong {
  margin-bottom: 4px;
  font-size: var(--v2-text-sm) !important;
}

.mv7-dm-conversation-row p {
  font-size: var(--v2-text-xs) !important;
}

.mv7-dm-conversation-unread {
  min-width: 18px;
  height: 18px;
  font-size: var(--v2-text-micro);
}

#community-dm-thread-view > header {
  min-height: 76px;
  gap: 11px;
}

#community-dm-thread-back {
  display: none;
}

.mv7-dm-thread-identity .mv7-community-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
}

.mv7-dm-thread-identity strong {
  font-size: var(--v2-text-body);
}

.mv7-dm-thread-identity small {
  font-size: var(--v2-text-xs);
}

.mv7-dm-dialog #community-dm-messages {
  min-height: 0;
  gap: 10px;
  padding: 18px 18px 118px;
  overflow-y: auto;
  background: #050906;
}

.mv7-dm-day-separator {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 3px 0 6px;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
}

.mv7-dm-day-separator::before,
.mv7-dm-day-separator::after {
  height: 1px;
  flex: 1;
  background: var(--v2-line);
  content: '';
}

.mv7-dm-message-row {
  display: flex;
  max-width: 78%;
  align-items: end;
  gap: 8px;
}

.mv7-dm-message-row.is-mine {
  align-self: flex-end;
  justify-content: flex-end;
}

.mv7-dm-message-row.is-theirs {
  align-self: flex-start;
}

.mv7-dm-message-avatar {
  width: 30px !important;
  height: 30px !important;
  flex: 0 0 30px !important;
  font-size: var(--v2-text-micro) !important;
}

.mv7-dm-message-row .mv7-dm-bubble {
  max-width: none;
  padding: 10px 12px !important;
  border-radius: 11px !important;
  box-shadow: none;
}

.mv7-dm-message-row .mv7-dm-bubble p {
  font-size: var(--v2-text-sm) !important;
  line-height: 1.45 !important;
}

.mv7-dm-message-row .mv7-dm-bubble small {
  margin-top: 5px;
  color: var(--v2-muted);
  opacity: 1;
  text-align: right;
}

.mv7-dm-message-row .mv7-dm-bubble.is-theirs {
  border-color: var(--v2-line-strong);
  background: #111613 !important;
}

.mv7-dm-message-row .mv7-dm-bubble.is-mine {
  border-color: rgba(45, 222, 152, 0.28);
  background: #073c2b !important;
}

.mv7-dm-composer {
  position: absolute;
  right: 16px;
  bottom: 14px;
  left: 16px;
  z-index: 4;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) 40px;
  align-items: center !important;
  gap: 7px !important;
  margin: 0;
  padding: 9px 9px 25px !important;
  border: 1px solid var(--v2-line-strong) !important;
  border-radius: 12px;
  background: rgba(14, 19, 16, 0.96);
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(18px);
}

.mv7-dm-compose-tools {
  display: flex;
  gap: 1px;
}

.mv7-dm-compose-tools button {
  display: grid;
  width: 34px;
  height: 36px;
  place-items: center;
  border-radius: 7px;
  background: transparent;
  color: var(--v2-muted);
}

.mv7-dm-compose-tools button:hover {
  background: rgba(255, 255, 255, 0.05);
  color: var(--v2-text);
}

.mv7-dm-compose-tools button:first-child span {
  display: block;
  font-size: 24px;
  font-weight: 300;
  line-height: 1;
}

.mv7-dm-compose-tools button:first-child {
  transform: none;
}

.mv7-dm-compose-tools svg {
  width: 17px;
  height: 17px;
}

.mv7-dm-composer textarea {
  min-height: 36px !important;
  max-height: 90px;
  padding: 9px 5px !important;
  border: 0;
  background: transparent;
  font-size: var(--v2-text-sm) !important;
  line-height: 1.4;
}

.mv7-dm-composer > #community-dm-send {
  width: 40px;
  height: 40px;
  border-radius: 9px;
  background: var(--v2-green);
  color: #03110b;
}

.mv7-dm-composer > small {
  right: 10px;
  bottom: 6px;
  left: 10px;
  justify-content: center;
  font-size: var(--v2-text-micro);
}

.mv7-dm-profile {
  position: relative;
  min-width: 0;
  padding: 34px 20px 18px;
}

.mv7-dm-profile > .mv7-community-avatar {
  width: 82px;
  height: 82px;
  flex: 0 0 82px;
  font-size: 22px;
}

.mv7-dm-profile > i {
  top: 98px;
  right: calc(50% - 42px);
  width: 13px;
  height: 13px;
  border-width: 2px;
}

.mv7-dm-profile > h2 {
  margin-top: 13px;
  font-size: 18px;
}

.mv7-dm-profile > small {
  margin: 14px 0 17px;
}

.mv7-dm-profile > button:not(.mv7-dm-block) {
  min-height: 40px;
  border-radius: 8px;
}

.mv7-dm-profile section {
  margin-top: 18px;
  padding-top: 16px;
}

.mv7-dm-profile > .mv7-dm-block {
  min-height: 40px;
  margin-top: auto;
  padding: 8px 0;
}

@media (max-width: 1050px) and (min-width: 769px) {
  .mv7-dm-dialog .mv7-dialog-body {
    grid-template-columns: 285px minmax(420px, 1fr);
  }

  .mv7-dm-profile {
    display: none;
  }
}

@media (max-width: 768px) {
  .mv7-dm-dialog {
    inset: 0 !important;
    width: 100% !important;
    height: 100dvh !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #030705;
  }

  .mv7-dm-dialog .mv7-dialog-body {
    display: block !important;
    height: 100% !important;
  }

  .mv7-dm-dialog #community-dm-list-view,
  .mv7-dm-dialog #community-dm-thread-view {
    height: 100%;
    border: 0;
  }

  .mv7-dm-dialog #community-dm-list-view[hidden],
  .mv7-dm-dialog #community-dm-thread-view[hidden] {
    display: none !important;
  }

  #community-dm-close {
    display: grid;
  }

  .mv7-dm-profile {
    display: none;
  }

  .mv7-dm-dialog header {
    min-height: 78px;
    padding: max(11px, env(safe-area-inset-top)) 14px 11px !important;
  }

  .mv7-dm-dialog #community-dm-list-view > header h2 {
    font-size: 20px;
  }

  .mv7-dm-search {
    margin: 13px 14px 8px;
  }

  .mv7-dm-filters {
    padding-inline: 14px;
  }

  .mv7-dm-dialog #community-dm-conversations {
    padding: 6px 8px calc(18px + env(safe-area-inset-bottom));
  }

  .mv7-dm-conversation-row {
    min-height: 72px !important;
    padding: 10px 8px !important;
  }

  #community-dm-thread-view > header {
    min-height: 76px;
    flex: 0 0 76px;
    gap: 8px;
    background: rgba(4, 9, 6, 0.96);
  }

  #community-dm-thread-back {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    padding: 0;
    font-size: 0;
  }

  #community-dm-thread-back svg {
    width: 20px;
    height: 20px;
    transform: rotate(180deg);
  }

  .mv7-dm-thread-identity {
    gap: 9px;
  }

  .mv7-dm-thread-identity .mv7-community-avatar {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .mv7-dm-thread-identity strong {
    font-size: var(--v2-text-body);
  }

  .mv7-dm-dialog #community-dm-messages {
    gap: 11px;
    padding: 18px 12px 116px;
    background: #030705;
  }


  .mv7-dm-dialog #community-dm-thread-view.has-thread #community-dm-messages::before,
  .mv7-dm-dialog #community-dm-thread-view.has-thread #community-dm-messages::after {
    content: none;
  }

  .mv7-dm-message-row {
    max-width: 88%;
  }

  .mv7-dm-message-avatar {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
  }

  .mv7-dm-message-row .mv7-dm-bubble {
    padding: 10px 12px !important;
  }

  .mv7-dm-message-row .mv7-dm-bubble p {
    font-size: var(--v2-text-sm) !important;
  }

  .mv7-dm-composer {
    right: 10px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    left: 10px;
    grid-template-columns: auto minmax(0, 1fr) 42px !important;
    padding: 8px 8px 25px !important;
    border-radius: 13px;
  }

  .mv7-dm-compose-tools button {
    width: 34px;
    height: 38px;
  }

  .mv7-dm-composer > #community-dm-send {
    width: 42px;
    height: 42px;
  }
}

@media (max-width: 380px) {
  .mv7-dm-dialog #community-dm-list-view > header small,
  .mv7-dm-thread-identity small {
    font-size: var(--v2-text-micro);
  }

  .mv7-dm-message-row {
    max-width: 92%;
  }

  .mv7-dm-compose-tools button:nth-child(2) {
    display: none;
  }
}

/* Presupuestos: tablero mensual compacto */
.mv7-budget-heading-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}

.mv7-budget-period {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 1px solid var(--v2-line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.018);
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-budget-period svg,
.mv7-budget-heading-actions svg,
.mv7-budget-summary svg,
.mv7-budget-add svg,
.mv7-budget-insight svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.6;
}

.mv7-budget-field {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.mv7-budget-field::before {
  content: none;
}

.mv7-budget-summary {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0;
  margin: 0 0 16px;
  border: 1px solid var(--v2-line);
  border-radius: 15px;
  background: rgba(9, 13, 11, 0.76);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
}

.mv7-budget-summary > div {
  display: grid;
  min-width: 0;
  min-height: 102px;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 17px 20px;
}

.mv7-budget-summary > div + div {
  border-left: 1px solid var(--v2-line);
}

.mv7-budget-summary > div > span {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.075);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--v2-muted);
}

.mv7-budget-summary .is-spent > span {
  border-color: rgba(87, 164, 255, 0.18);
  background: rgba(87, 164, 255, 0.07);
  color: #65a8f7;
}

.mv7-budget-summary .is-available > span {
  border-color: rgba(45, 222, 152, 0.18);
  background: rgba(45, 222, 152, 0.07);
  color: var(--v2-green-bright);
}

.mv7-budget-summary .is-negative > span,
.mv7-budget-summary .is-negative small {
  border-color: rgba(244, 102, 102, 0.2);
  background: rgba(244, 102, 102, 0.06);
  color: #ef7373;
}

.mv7-budget-summary dt,
.mv7-budget-summary dd {
  margin: 0;
}

.mv7-budget-summary dt {
  margin-bottom: 5px;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-budget-summary dd {
  overflow: hidden;
  font-family: var(--v2-mono);
  font-size: clamp(15px, 1.35vw, 19px);
  font-weight: 550;
  letter-spacing: -0.025em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-summary small {
  display: block;
  overflow: hidden;
  margin-top: 5px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-summary .is-spent small {
  color: #65a8f7;
}

.mv7-budget-summary .is-available:not(.is-negative) small {
  color: var(--v2-green-bright);
}

.mv7-budget-dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(310px, 0.82fr);
  align-items: start;
  gap: 16px;
}

.mv7-budget-categories-card,
.mv7-budget-rhythm-card,
.mv7-budget-reserve {
  border: 1px solid var(--v2-line);
  border-radius: 15px;
  background: rgba(8, 12, 10, 0.78);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025), 0 18px 45px rgba(0, 0, 0, 0.12);
}

.mv7-budget-categories-card,
.mv7-budget-rhythm-card {
  overflow: hidden;
}

.mv7-budget-categories-card > header,
.mv7-budget-rhythm-card > header {
  display: flex;
  min-height: 73px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 17px;
  border-bottom: 1px solid var(--v2-line);
}

.mv7-budget-categories-card h3,
.mv7-budget-rhythm-card h3 {
  margin: 2px 0 0;
  font-size: var(--v2-text-body);
  font-weight: 550;
  letter-spacing: -0.02em;
}

.mv7-budget-column-labels {
  display: grid;
  width: min(54%, 390px);
  grid-template-columns: 0.8fr 0.8fr 1.25fr;
  gap: 14px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-lanes {
  min-height: 0;
}

.mv7-budget-lanes:has(.mv7-budget-empty) {
  min-height: 0;
}

.mv7-budget-lane {
  border-bottom: 1px solid var(--v2-line);
}

.mv7-budget-lane::before {
  content: none;
}

.mv7-budget-lane.is-expanded {
  background: color-mix(in srgb, var(--budget-color) 2.8%, transparent);
}

.mv7-budget-lane-main,
.mv7-budget-lane.is-expanded .mv7-budget-lane-main {
  min-height: 72px;
  grid-template-columns: minmax(145px, 1.22fr) minmax(90px, 0.72fr) minmax(90px, 0.72fr) minmax(140px, 1.15fr) 17px;
  gap: 13px;
  padding: 11px 16px;
  border: 0;
}

.mv7-budget-lane-main:hover,
.mv7-budget-lane-main:focus-visible {
  background: rgba(255, 255, 255, 0.025);
}

.mv7-budget-lane-identity {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
}

.mv7-budget-lane-identity > i {
  width: 36px;
  height: 36px;
  border-radius: 10px;
}

.mv7-budget-lane-identity > span {
  gap: 3px;
}

.mv7-budget-lane-identity strong {
  font-size: var(--v2-text-xs);
}

.mv7-budget-lane-identity small {
  color: var(--v2-dim);
}

.mv7-budget-lane-metric {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.mv7-budget-lane-metric small {
  display: none;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-lane-metric strong {
  overflow: hidden;
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-lane-metric.is-spent strong {
  color: color-mix(in srgb, var(--budget-color) 75%, white);
}

.mv7-budget-lane-progress-cell {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(54px, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.mv7-budget-lane-progress {
  display: block;
  overflow: hidden;
  height: 5px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.075);
}

.mv7-budget-lane-progress > i {
  display: block;
  width: var(--budget-progress, 0%);
  height: 100%;
  border-radius: inherit;
  background: var(--budget-color);
  box-shadow: 0 0 9px color-mix(in srgb, var(--budget-color) 34%, transparent);
  transition: width 420ms ease;
}

.mv7-budget-lane.is-warning .mv7-budget-lane-progress > i {
  background: var(--v2-amber);
}

.mv7-budget-lane.is-over .mv7-budget-lane-progress > i {
  background: #ef7373;
}

.mv7-budget-lane-status {
  display: flex;
  min-width: 68px;
  flex-direction: column;
  gap: 2px;
  text-align: right;
}

.mv7-budget-lane-status strong {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
  font-weight: 550;
}

.mv7-budget-lane-status small {
  overflow: hidden;
  max-width: 105px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-budget-lane.is-over .mv7-budget-lane-status strong,
.mv7-budget-lane.is-over .mv7-budget-lane-status small {
  color: #ef7373;
}

.mv7-budget-lane-chevron {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: var(--v2-dim);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
  transition: transform 180ms ease;
}

.mv7-budget-lane.is-expanded .mv7-budget-lane-chevron {
  transform: rotate(180deg);
}

.mv7-budget-lane-detail {
  grid-template-columns: minmax(0, 1fr) 175px;
  gap: 24px;
  padding: 0 16px 15px 64px;
}

.mv7-budget-lane-controls .mv7-secondary-button {
  min-height: 32px;
  padding: 0 11px;
  font-size: var(--v2-text-micro);
}

.mv7-budget-add {
  display: flex;
  width: 100%;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  background: rgba(255, 255, 255, 0.008);
  color: var(--v2-muted);
  cursor: pointer;
  font-size: var(--v2-text-xs);
  transition: background 160ms ease, color 160ms ease;
}

.mv7-budget-add:hover,
.mv7-budget-add:focus-visible {
  background: rgba(45, 222, 152, 0.035);
  color: var(--v2-green-bright);
}

.mv7-budget-add svg {
  width: 15px;
  height: 15px;
}

.mv7-budget-chart-legend {
  display: flex;
  gap: 13px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-budget-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.mv7-budget-chart-legend span::before {
  width: 12px;
  height: 2px;
  border-radius: 99px;
  background: var(--v2-green);
  content: '';
}

.mv7-budget-chart-legend .is-expected::before {
  background: repeating-linear-gradient(90deg, var(--v2-dim) 0 3px, transparent 3px 5px);
}

.mv7-budget-rhythm-chart {
  height: 238px;
  padding: 17px 15px 2px;
}

.mv7-budget-rhythm-chart svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.mv7-budget-chart-grid {
  stroke: rgba(255, 255, 255, 0.055);
  stroke-dasharray: 3 6;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-chart-expected,
.mv7-budget-chart-actual {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-chart-expected {
  stroke: rgba(255, 255, 255, 0.25);
  stroke-dasharray: 4 6;
  stroke-width: 1.2;
}

.mv7-budget-chart-area {
  fill: rgba(45, 222, 152, 0.075);
}

.mv7-budget-chart-actual {
  stroke: var(--v2-green-bright);
  stroke-width: 2;
  filter: drop-shadow(0 0 5px rgba(45, 222, 152, 0.35));
}

.mv7-budget-chart-point {
  fill: var(--v2-canvas);
  stroke: var(--v2-green-bright);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.mv7-budget-rhythm-chart text {
  fill: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: 9px;
}

.mv7-budget-insight {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  margin: 0 14px 14px;
  padding: 12px;
  border: 1px solid rgba(45, 222, 152, 0.12);
  border-radius: 11px;
  background: rgba(45, 222, 152, 0.035);
}

.mv7-budget-insight > span {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 9px;
  background: rgba(45, 222, 152, 0.08);
  color: var(--v2-green-bright);
}

.mv7-budget-insight strong {
  font-size: var(--v2-text-xs);
  font-weight: 550;
}

.mv7-budget-insight p {
  margin: 4px 0 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-micro);
  line-height: 1.45;
}

.mv7-budget-reserve {
  min-height: 72px;
  grid-template-columns: 38px auto minmax(70px, 1fr) auto auto;
  margin-top: 16px;
  padding: 11px 17px;
}

.mv7-budget-reserve .mv7-secondary-button {
  min-height: 34px;
  padding-inline: 14px;
}

.mv7-budget-empty {
  min-height: 180px;
  padding: 24px;
}

@media (max-width: 1180px) {
  .mv7-budget-dashboard {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-budget-rhythm-card {
    display: grid;
    grid-template-columns: minmax(230px, 0.75fr) minmax(0, 1.25fr);
  }

  .mv7-budget-rhythm-card > header {
    grid-column: 1 / -1;
  }

  .mv7-budget-rhythm-chart {
    height: 210px;
  }

  .mv7-budget-insight {
    align-self: center;
    margin-left: 0;
  }
}

@media (max-width: 768px) {
  .mv7-budgets-heading {
    align-items: flex-start;
  }

  .mv7-budget-heading-actions {
    gap: 7px;
  }

  .mv7-budget-period {
    display: none;
  }

  .mv7-budget-heading-actions .mv7-primary-button {
    min-width: 42px;
    padding-inline: 11px;
  }

  .mv7-budget-heading-actions .mv7-primary-button span {
    display: none;
  }

  .mv7-budget-field {
    border-radius: 0;
  }

  .mv7-budget-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 13px;
  }

  .mv7-budget-summary > div {
    min-height: 82px;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 9px;
    padding: 12px;
  }

  .mv7-budget-summary > div:first-child {
    grid-column: 1 / -1;
    border-bottom: 1px solid var(--v2-line);
  }

  .mv7-budget-summary > div:nth-child(2) {
    border-left: 0;
  }

  .mv7-budget-summary > div > span {
    width: 31px;
    height: 31px;
    border-radius: 9px;
  }

  .mv7-budget-summary svg {
    width: 15px;
    height: 15px;
  }

  .mv7-budget-summary dd {
    font-size: var(--v2-text-sm);
  }

  .mv7-budget-categories-card,
  .mv7-budget-rhythm-card,
  .mv7-budget-reserve {
    border-radius: 13px;
  }

  .mv7-budget-categories-card > header,
  .mv7-budget-rhythm-card > header {
    min-height: 64px;
    padding: 12px 13px;
  }

  .mv7-budget-column-labels {
    display: none;
  }

  .mv7-budget-lane-main,
  .mv7-budget-lane.is-expanded .mv7-budget-lane-main {
    position: relative;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 14px;
    padding: 14px 13px;
  }

  .mv7-budget-lane-identity {
    grid-column: 1 / -1;
    padding-right: 24px;
  }

  .mv7-budget-lane-metric small {
    display: block;
  }

  .mv7-budget-lane-progress-cell {
    grid-column: 1 / -1;
  }

  .mv7-budget-lane-chevron {
    position: absolute;
    right: 14px;
    top: 25px;
  }

  .mv7-budget-lane-detail {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 0 13px 14px;
  }

  .mv7-budget-rhythm-card {
    display: block;
  }

  .mv7-budget-rhythm-chart {
    height: 205px;
    padding-inline: 10px;
  }

  .mv7-budget-insight {
    margin: 0 12px 12px;
  }

  .mv7-budget-reserve {
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 11px 12px;
  }

  .mv7-budget-reserve > i,
  .mv7-budget-reserve > small {
    display: none;
  }

  .mv7-budget-reserve .mv7-secondary-button {
    min-height: 32px;
    padding-inline: 11px;
  }
}

@media (max-width: 390px) {
  .mv7-budget-summary > div {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-budget-summary > div > span {
    display: none;
  }

  .mv7-budget-chart-legend {
    gap: 8px;
  }

  .mv7-budget-reserve-token {
    display: none;
  }

  .mv7-budget-reserve {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

/* Ajustes: jerarquía por áreas y panel central sin contexto duplicado */
.mv7-settings-hub {
  grid-template-columns: 228px minmax(0, 1fr);
}

.mv7-settings-nav-group {
  margin: 11px 10px 2px;
  color: var(--v2-dim);
  font-family: var(--v2-mono);
  font-size: var(--v2-text-micro);
  font-weight: 650;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.mv7-settings-nav-group:first-of-type {
  margin-top: 13px;
}

.mv7-reports-workspace {
  width: min(100%, 980px);
}

.mv7-reports-workspace .mv7-reports-card {
  margin: 0;
}

.mv7-danger-card .mv7-settings-row + .mv7-settings-row {
  border-top: 1px solid rgba(255, 98, 89, 0.14);
}

.mv7-danger-card .mv7-danger-button {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 7px;
}

.mv7-danger-card .mv7-danger-button svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}

@media (max-width: 1040px) {
  .mv7-settings-nav-group {
    display: none;
  }
}

/* Perfil compacto: evita scrolls internos y acerca las secciones inferiores. */
.mv7-profile-workspace .mv7-profile-card {
  container-type: inline-size;
}

.mv7-profile-region {
  display: grid;
  gap: 15px;
}

.mv7-profile-region-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.mv7-profile-region-heading h4 {
  margin-bottom: 5px;
}

.mv7-profile-region-heading p {
  margin: 0;
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-profile-region-heading > span {
  padding: 5px 9px;
  border: 1px solid rgba(45, 222, 152, 0.16);
  border-radius: 999px;
  background: rgba(45, 222, 152, 0.045);
  color: var(--v2-green-bright);
  font-size: var(--v2-text-micro);
}

.mv7-profile-region-summary {
  display: grid;
  overflow: hidden;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 0;
  margin: 0;
  border: 1px solid var(--v2-line);
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.016);
}

.mv7-profile-region-summary > div {
  min-width: 0;
  padding: 11px 12px;
}

.mv7-profile-region-summary > div + div {
  border-left: 1px solid var(--v2-line);
}

.mv7-profile-region-summary dt,
.mv7-profile-region-summary dd {
  overflow: hidden;
  margin: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-profile-region-summary dt {
  margin-bottom: 5px;
  color: var(--v2-dim);
  font-size: var(--v2-text-micro);
}

.mv7-profile-region-summary dd {
  font-family: var(--v2-mono);
  font-size: var(--v2-text-xs);
}

@container (min-width: 440px) {
  .mv7-profile-workspace .mv7-settings-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1041px) {
  .mv7-settings-nav {
    gap: 2px;
    min-height: 0;
    padding: 12px;
    overflow-y: visible;
  }

  .mv7-settings-nav .mv7-settings-search {
    min-height: 37px;
    margin-bottom: 3px;
  }

  .mv7-settings-nav .mv7-settings-nav-item {
    min-height: 37px;
  }

  .mv7-settings-nav-group,
  .mv7-settings-nav-group:first-of-type {
    margin: 7px 10px 1px;
  }

  .mv7-profile-workspace .mv7-profile-card {
    grid-template-columns: 115px minmax(0, 1fr);
    gap: 13px 18px;
    padding: 20px;
  }

  .mv7-profile-avatar-zone .mv7-settings-avatar {
    width: 98px;
    height: 98px;
    font-size: 31px;
  }

  .mv7-profile-progress-ring {
    width: 100px;
    height: 100px;
    margin-block: 14px;
  }
}

.mv7-profile-workspace .mv7-profile-card > #settings-currency-rate-hint,
.mv7-profile-workspace .mv7-profile-card > #settings-profile-session-hint {
  grid-column: 1 / -1;
}

.mv7-profile-switcher-card {
  padding: 17px !important;
}

.mv7-profile-switcher-card > .mv7-settings-hint {
  margin: -4px 0 9px;
  font-size: var(--v2-text-xs);
}

.mv7-profile-switcher-card .mv7-profile-switcher {
  gap: 10px;
  margin-top: 2px;
}

@media (max-width: 600px) {
  .mv7-profile-region-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .mv7-profile-region-summary > div + div {
    border-top: 1px solid var(--v2-line);
    border-left: 0;
  }

  .mv7-profile-switcher-card {
    order: 4;
  }
}

/* Inicio móvil Zenit: jerarquía compacta basada en el concepto aprobado. */
.mv7-mobile-topbar-start {
  display: contents;
}

.mv7-mobile-brand,
.mv7-mobile-cashflow-period,
.mv7-overview-time-subtitle,
.mv7-overview-budget-panel {
  display: none;
}

@media (max-width: 768px) {
  .mv7-mobile-topbar-start {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
  }

  body[data-v2-view='overview'] .mv7-topbar {
    min-height: 68px;
    gap: 8px;
    padding: max(10px, env(safe-area-inset-top)) 14px 10px;
    border-bottom-color: rgba(255, 255, 255, 0.045);
    background: rgba(12, 16, 14, 0.94);
  }

  body[data-v2-view='overview'] .mv7-mobile-brand {
    display: inline-flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    color: var(--v2-text);
  }

  .mv7-mobile-brand strong {
    font-size: 20px;
    font-weight: 650;
    letter-spacing: -0.035em;
  }

  .mv7-mobile-brand-mark {
    position: relative;
    display: block;
    width: 22px;
    height: 27px;
    flex: 0 0 22px;
  }

  .mv7-mobile-brand-mark i {
    position: absolute;
    width: 16px;
    height: 9px;
    border-radius: 3px;
    background: linear-gradient(135deg, var(--v2-green-bright), var(--v2-green));
    transform: skewX(-28deg);
  }

  .mv7-mobile-brand-mark i:first-child {
    top: 3px;
    right: 0;
  }

  .mv7-mobile-brand-mark i:last-child {
    bottom: 3px;
    left: 0;
  }

  body[data-v2-view='overview'] .mv7-menu-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-avatar {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  body[data-v2-view='overview'] .mv7-topbar-actions {
    gap: 4px;
  }

  body[data-v2-view='overview'] .mv7-topbar-actions .mv7-icon-button:nth-child(2) {
    display: grid;
  }

  #overview-view.mv7-content {
    gap: 14px;
    padding: 20px 14px calc(34px + env(safe-area-inset-bottom));
  }

  #overview-view .mv7-welcome-card {
    display: none;
  }

  #overview-view .mv7-section-heading > div:first-child {
    order: 1;
  }

  #overview-view .mv7-section-heading h2 {
    max-width: 100%;
    margin: 0;
    font-size: clamp(25px, 7.2vw, 30px);
    line-height: 1.08;
    letter-spacing: -0.035em;
  }

  #overview-view .mv7-overview-time-subtitle {
    display: block;
    margin: 7px 0 2px;
    color: var(--v2-muted);
    font-size: 14px;
  }

  #overview-view .mv7-preview-badge,
  #overview-view .mv7-period-control,
  #overview-view #open-composer {
    display: none;
  }

  #overview-view .mv7-metric-grid {
    order: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: 1px solid var(--v2-glass-edge);
    border-radius: 17px;
    background: rgba(19, 24, 21, 0.76);
    box-shadow: 0 18px 44px -28px rgba(0, 0, 0, 0.78);
  }

  #overview-view .mv7-metric {
    width: auto;
    min-width: 0;
    min-height: 0;
    padding: 14px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  #overview-view .mv7-metric::before,
  #overview-view .mv7-metric::after,
  #overview-view .mv7-metric > p,
  #overview-view .mv7-metric .mv7-metric-tag,
  #overview-view .mv7-metric .mv7-change,
  #overview-view .mv7-metric .mv7-sparkline {
    display: none;
  }

  #overview-view .mv7-metric-primary {
    min-height: 124px;
    grid-column: 1 / -1;
    border-bottom: 1px solid var(--v2-line);
  }

  #overview-view .mv7-metric-primary .mv7-metric-icon {
    order: 2;
    width: 46px;
    height: 46px;
    flex-basis: 46px;
    margin-left: auto;
    border-radius: 13px;
    background: rgba(45, 222, 152, 0.1);
    color: var(--v2-green-bright);
  }

  #overview-view .mv7-metric-primary .mv7-metric-icon svg {
    width: 22px;
    height: 22px;
  }

  #overview-view .mv7-metric-primary > strong {
    margin: 17px 0 0;
    overflow: hidden;
    font-size: clamp(28px, 8.4vw, 36px);
    text-overflow: ellipsis;
  }

  #overview-view .mv7-metric-income {
    border-right: 1px solid var(--v2-line);
  }

  #overview-view .mv7-metric-income,
  #overview-view .mv7-metric-expense {
    min-height: 88px;
  }

  #overview-view .mv7-metric-income .mv7-metric-head,
  #overview-view .mv7-metric-expense .mv7-metric-head {
    gap: 8px;
  }

  #overview-view .mv7-metric-income > strong,
  #overview-view .mv7-metric-expense > strong {
    margin: 10px 0 0;
    font-size: clamp(15px, 4.6vw, 19px);
  }

  #overview-view .mv7-quick-actions-row {
    order: 3;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    padding: 2px 0;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn {
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 76px;
    gap: 7px;
    padding: 2px 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn svg {
    box-sizing: border-box;
    width: 50px;
    height: 50px;
    padding: 14px;
    border: 1px solid rgba(45, 222, 152, 0.25);
    border-radius: 50%;
    background: rgba(45, 222, 152, 0.1);
    color: var(--v2-green-bright);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(2) svg {
    border-color: rgba(255, 98, 89, 0.28);
    background: rgba(255, 98, 89, 0.11);
    color: #ff6259;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(4) svg {
    border-color: var(--v2-line-strong);
    background: rgba(255, 255, 255, 0.045);
    color: var(--v2-muted);
  }

  #overview-view .mv7-quick-action-label {
    color: var(--v2-text);
    font-size: 11px;
    font-weight: 540;
  }

  #overview-view .mv7-analysis-grid {
    display: contents !important;
  }

  #overview-view .mv7-cashflow-panel {
    order: 4;
    display: block;
    border-radius: 17px;
  }

  #overview-view .mv7-accounts-panel {
    display: none;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header {
    min-height: 58px;
    padding: 13px 14px 8px;
    border-bottom: 0;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header p,
  #overview-view .mv7-cashflow-panel .mv7-legend {
    display: none;
  }

  #overview-view .mv7-mobile-cashflow-period {
    position: relative;
    display: flex;
    align-items: center;
  }

  #overview-view .mv7-mobile-cashflow-period select {
    min-height: 38px;
    padding: 0 34px 0 12px;
    appearance: none;
    border: 1px solid var(--v2-line);
    border-radius: 10px;
    outline: 0;
    background: rgba(255, 255, 255, 0.025);
    color: var(--v2-text);
    font-size: 12px;
  }

  #overview-view .mv7-mobile-cashflow-period svg {
    position: absolute;
    width: 14px;
    height: 14px;
    right: 11px;
    fill: none;
    stroke: var(--v2-muted);
    stroke-width: 1.7;
    pointer-events: none;
  }

  #overview-view .mv7-cashflow-panel .mv7-chart-wrap {
    padding: 8px 12px 13px 42px;
  }

  #overview-view .mv7-cashflow-panel .mv7-main-chart {
    height: 170px;
  }

  #overview-view .mv7-cashflow-panel .mv7-chart-axis {
    width: 34px;
    height: 142px;
    left: 4px;
    top: 16px;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-stats {
    display: none;
  }

  #overview-view .mv7-overview-budget-panel {
    order: 5;
    display: block;
    border-radius: 17px;
  }

  #overview-view .mv7-overview-budget-panel .mv7-panel-header {
    min-height: 54px;
    padding: 14px 15px 7px;
    border-bottom: 0;
  }

  #overview-view .mv7-overview-budget-panel .mv7-panel-header p {
    display: none;
  }

  .mv7-overview-budget-content {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 8px 15px 17px;
  }

  .mv7-overview-budget-content[hidden] {
    display: none;
  }

  .mv7-overview-budget-token {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--overview-budget-color) 32%, transparent);
    border-radius: 11px;
    background: color-mix(in srgb, var(--overview-budget-color) 11%, transparent);
    color: var(--overview-budget-color);
    font-family: var(--v2-mono);
    font-size: var(--v2-text-xs);
    font-style: normal;
  }

  .mv7-overview-budget-copy {
    display: grid;
    min-width: 0;
    gap: 9px;
  }

  .mv7-overview-budget-copy > div {
    display: flex;
    min-width: 0;
    justify-content: space-between;
    gap: 10px;
  }

  .mv7-overview-budget-copy strong,
  .mv7-overview-budget-copy span,
  #overview-budget-percent {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-overview-budget-copy span {
    color: var(--v2-muted);
  }

  .mv7-overview-budget-track {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
  }

  .mv7-overview-budget-track b {
    display: block;
    height: 100%;
    border-radius: inherit;
  }

  #overview-budget-percent {
    color: var(--overview-budget-color, var(--v2-green-bright));
    font-weight: 680;
  }

  #overview-budget-percent.is-warning {
    color: var(--v2-amber);
  }

  #overview-budget-percent.is-over {
    color: #ff6259;
  }

  .mv7-overview-budget-empty {
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 7px 15px 17px;
    color: var(--v2-muted);
    font-size: 12px;
  }

  .mv7-overview-budget-empty[hidden] {
    display: none;
  }

  #overview-view .mv7-activity-panel {
    order: 6;
    margin: 0;
    border-radius: 17px;
  }

  #overview-view .mv7-activity-panel .mv7-panel-header {
    min-height: 56px;
    padding: 13px 14px;
  }

  #overview-view .mv7-activity-panel .mv7-panel-header p {
    display: none;
  }

  #overview-view .mv7-transaction-list {
    padding: 5px 8px 10px;
  }

  #overview-view .mv7-transaction-row {
    min-height: 58px;
    border-radius: 10px;
    background: transparent;
  }

  #overview-view .mv7-transaction-row:nth-child(n + 3) {
    display: none;
  }

  #overview-view .mv7-overview-secondary-grid {
    display: none;
  }
}

@media (max-width: 370px) {
  body[data-v2-view='overview'] .mv7-topbar {
    padding-inline: 10px;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand strong {
    font-size: 17px;
  }
}

/* Movimientos mobile v13: historial compacto según la maqueta aprobada. */
.mv7-tx-mobile-list-head,
.mv7-tx-mobile-fab {
  display: none;
}

@media (max-width: 768px) {
  #transactions-view {
    position: relative;
    padding: 18px 14px calc(92px + env(safe-area-inset-bottom));
  }

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

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

  #transactions-view .mv7-tx-search {
    min-height: 48px;
    grid-column: 1 / -1;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 14px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.012)),
      rgba(15, 20, 23, 0.78);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.055),
      0 12px 28px rgba(0, 0, 0, 0.16);
    backdrop-filter: blur(18px) saturate(125%);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
  }

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

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

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

  #transactions-view .mv7-tx-type-filter {
    display: flex;
    min-width: 0;
    grid-column: 1 / -1;
    grid-row: 2;
    gap: 7px;
    padding: 0;
    overflow-x: auto;
    border: 0;
    background: transparent;
    scrollbar-width: none;
  }

  #transactions-view .mv7-tx-type-filter button {
    min-width: max-content;
    min-height: 38px;
    padding: 0 15px;
    border: 1px solid rgba(255, 255, 255, 0.105);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.025);
    color: #aeb6b3;
    font-size: 12px;
  }

  #transactions-view .mv7-tx-type-filter button.is-active {
    border-color: rgba(63, 214, 153, 0.34);
    background:
      linear-gradient(145deg, rgba(69, 220, 158, 0.28), rgba(33, 139, 102, 0.16)),
      rgba(24, 48, 40, 0.56);
    color: #bdf5dd;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.13),
      0 8px 20px rgba(25, 147, 102, 0.11);
  }

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

  #transactions-view .mv7-tx-select select {
    min-height: 36px;
    padding: 0 12px 0 31px;
    font-size: 11px;
  }

  #transactions-view .mv7-tx-mobile-list-head {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: space-between;
    padding: 0 2px 4px 4px;
  }

  #transactions-view .mv7-tx-mobile-list-head > span {
    margin-right: auto;
    color: #dfe5e3;
    font-size: 14px;
    font-weight: 650;
    letter-spacing: -0.015em;
  }

  #transactions-view .mv7-tx-mobile-period-select {
    position: relative;
    display: flex;
    min-width: 84px;
    height: 32px;
    align-items: center;
    margin-right: 4px;
    border: 1px solid rgba(255, 255, 255, 0.085);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.025);
  }

  #transactions-view .mv7-tx-mobile-period-select svg {
    position: absolute;
    left: 9px;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: #84908e;
    stroke-width: 1.6;
    pointer-events: none;
  }

  #transactions-view .mv7-tx-mobile-period-select select {
    width: 100%;
    height: 30px;
    padding: 0 8px 0 27px;
    border: 0;
    background: transparent;
    color: #aeb6b3;
    font-size: 10px;
  }

  #transactions-view .mv7-tx-mobile-list-head .mv7-icon-button {
    width: 32px;
    min-width: 32px;
    height: 32px;
    min-height: 32px;
    border-color: transparent;
    border-radius: 10px;
    background: transparent;
    color: #7f8a87;
  }

  #transactions-view .mv7-tx-mobile-list-head .mv7-icon-button:active {
    background: rgba(255, 255, 255, 0.06);
    color: #d2d9d6;
  }

  #transactions-view .mv7-tx-mobile-fab {
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: calc(18px + env(safe-area-inset-bottom));
    z-index: 72;
    display: grid;
    width: 58px;
    height: 58px;
    place-items: center;
    border: 1px solid rgba(112, 246, 187, 0.38);
    border-radius: 50%;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.23), transparent 45%),
      #26c982;
    color: #f4fff9;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.32),
      0 15px 34px rgba(20, 174, 111, 0.3);
    cursor: pointer;
  }

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

  #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-list,
  #transactions-view .mv7-tx-list:has(.mv7-tx-empty) {
    min-height: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #transactions-view .mv7-tx-date-group {
    display: flex;
    min-height: 35px;
    align-items: flex-end;
    padding: 10px 4px 7px;
    color: #cbd3d0;
    font-family: var(--v2-font);
    font-size: 13px;
    font-weight: 650;
    letter-spacing: -0.01em;
    text-transform: none;
  }

  #transactions-view .mv7-tx-row {
    min-height: 66px;
    grid-template-columns: 40px minmax(0, 1fr) auto 10px;
    gap: 10px;
    padding: 9px 11px;
    border-color: rgba(255, 255, 255, 0.09);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.012)),
      rgba(15, 20, 22, 0.8);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.04),
      0 10px 25px rgba(0, 0, 0, 0.12);
  }

  #transactions-view .mv7-tx-row::after {
    color: #68726f;
    font-size: 20px;
    content: '\203A';
  }

  #transactions-view .mv7-transaction-token {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    font-size: 0;
  }

  #transactions-view .mv7-transaction-token::before {
    font-size: 20px;
    font-weight: 450;
    line-height: 1;
    content: '\2191';
  }

  #transactions-view .mv7-transaction-token.is-income {
    background: rgba(47, 210, 145, 0.14);
    color: #46d99e;
  }

  #transactions-view .mv7-transaction-token.is-income::before {
    content: '\2193';
  }

  #transactions-view .mv7-transaction-token.is-expense {
    background: rgba(244, 94, 87, 0.14);
    color: #f06f69;
  }

  #transactions-view .mv7-transaction-token.is-transfer {
    background: rgba(103, 153, 239, 0.14);
    color: #7ca9f5;
  }

  #transactions-view .mv7-transaction-token.is-transfer::before {
    content: '\2194';
  }

  #transactions-view .mv7-tx-row-copy {
    gap: 3px;
  }

  #transactions-view .mv7-tx-row-copy strong {
    font-size: 13px;
    font-weight: 640;
  }

  #transactions-view .mv7-tx-row-meta-mobile {
    color: #87918e;
    font-size: 10px;
  }

  #transactions-view .mv7-tx-row-amount {
    max-width: 116px;
    font-size: clamp(11px, 3.25vw, 13px);
  }

  #transactions-view .mv7-tx-row-amount.is-income {
    color: #4bdaa1;
  }

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

  #transactions-view .mv7-tx-empty {
    display: flex;
    min-height: 230px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 9px;
    padding: 28px 24px;
    border: 1px solid rgba(255, 255, 255, 0.085);
    border-radius: 18px;
    background:
      radial-gradient(circle at 50% 0, rgba(48, 200, 140, 0.07), transparent 12rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.01)),
      rgba(13, 18, 20, 0.72);
    color: #8e9895;
    text-align: center;
  }

  #transactions-view .mv7-tx-empty-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    margin-bottom: 3px;
    border: 1px solid rgba(74, 218, 160, 0.17);
    border-radius: 14px;
    background: rgba(55, 207, 147, 0.08);
    color: #58d5a2;
  }

  #transactions-view .mv7-tx-empty-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
  }

  #transactions-view .mv7-tx-empty strong {
    color: #e4e9e7;
    font-size: 14px;
  }

  #transactions-view .mv7-tx-empty p {
    max-width: 270px;
    margin: 0;
    font-size: 11px;
    line-height: 1.55;
  }

  #transactions-view .mv7-tx-empty .mv7-secondary-button {
    min-height: 36px;
    padding: 0 15px;
    margin-top: 6px;
    border-color: rgba(73, 214, 158, 0.2);
    border-radius: 999px;
    background: rgba(52, 197, 140, 0.07);
    color: #76dcb3;
  }

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

  #transactions-view .mv7-tx-inspector.is-open {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 95;
    display: block;
    width: 100%;
    max-height: 88dvh;
    overflow-y: auto;
    border-radius: 20px 20px 0 0;
    background: rgba(12, 17, 19, 0.97);
    box-shadow: 0 -28px 80px rgba(0, 0, 0, 0.72);
    transform: none;
  }

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

  #transactions-view .mv7-tx-ledger-footer:not([hidden]) {
    min-height: 42px;
    margin-top: 12px;
    border-radius: 13px;
  }
}

@media (max-width: 370px) {
  #transactions-view .mv7-tx-type-filter button {
    padding-inline: 11px;
  }

  #transactions-view .mv7-tx-select {
    min-width: 84px;
  }
}

.mv7-calendar-day-dialog {
  width: min(520px, calc(100% - 28px));
  max-height: min(680px, calc(100dvh - 36px));
}

.mv7-calendar-day-dialog .mv7-dialog-body {
  display: grid;
  gap: 14px;
}

.mv7-calendar-day-event-list {
  display: grid;
  gap: 8px;
  max-height: min(500px, calc(100dvh - 180px));
  overflow-y: auto;
}

.mv7-calendar-day-event-row {
  display: grid;
  min-height: 64px;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  border: 1px solid var(--v2-line);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--v2-text);
  text-align: left;
  cursor: pointer;
}

.mv7-calendar-day-event-row:hover,
.mv7-calendar-day-event-row:focus-visible {
  border-color: color-mix(in srgb, var(--event-color) 45%, var(--v2-line));
  background: color-mix(in srgb, var(--event-color) 8%, transparent);
  outline: none;
}

.mv7-calendar-day-event-row.is-income {
  --event-color: #43e3ad;
}

.mv7-calendar-day-event-row.is-expense {
  --event-color: #f0804f;
}

.mv7-calendar-day-event-row > svg {
  width: 30px;
  height: 30px;
  padding: 6px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--event-color) 12%, transparent);
  fill: none;
  stroke: var(--event-color);
}

.mv7-calendar-day-event-row > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.mv7-calendar-day-event-row strong,
.mv7-calendar-day-event-row small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.mv7-calendar-day-event-row small {
  color: var(--v2-muted);
  font-size: var(--v2-text-xs);
}

.mv7-calendar-day-event-row > b {
  color: var(--event-color);
  font-size: var(--v2-text-xs);
  white-space: nowrap;
}

@media (max-width: 768px) {
  .mv7-calendar-day-dialog {
    width: 100%;
    max-height: min(72dvh, 680px);
  }

  .mv7-calendar-day-event-row {
    grid-template-columns: 30px minmax(0, 1fr);
  }

.mv7-calendar-day-event-row > b {
    grid-column: 2;
  }
}

/* Override final: el compositor de DM solo muestra texto + enviar. */
.mv7-community-mobile-search {
  display: none;
}

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

@media (max-width: 768px) {
  .mv7-community-mobile-search {
    display: flex;
    margin: 12px 14px 4px;
  }

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

/* Mobile Glass Edition ----------------------------------------------------
   A premium, neutral glass language for Zenit's user workspace. Section
   accents are intentionally restrained and this layer never reaches desktop. */
@media (max-width: 768px) {
  body {
    --mv7-mobile-accent: #79a9ff;
    --mv7-mobile-glow: rgba(121, 169, 255, 0.16);
    --mv7-mobile-glow-soft: rgba(121, 169, 255, 0.07);
    --mv7-mobile-glass: rgba(20, 24, 31, 0.67);
    --mv7-mobile-glass-strong: rgba(16, 20, 27, 0.84);
    --mv7-mobile-glass-soft: rgba(255, 255, 255, 0.035);
    --mv7-mobile-edge: rgba(255, 255, 255, 0.115);
    --mv7-mobile-edge-bright: rgba(255, 255, 255, 0.18);
    --mv7-mobile-shadow: 0 18px 42px rgba(0, 0, 0, 0.3);
    background:
      radial-gradient(circle at 92% 5%, var(--mv7-mobile-glow), transparent 23rem),
      radial-gradient(circle at 5% 54%, rgba(171, 133, 255, 0.07), transparent 27rem),
      linear-gradient(155deg, #090b10 0%, #0d1016 46%, #090c11 100%);
    background-attachment: fixed;
  }

  body[data-v2-view='transactions'] {
    --mv7-mobile-accent: #72a8ff;
    --mv7-mobile-glow: rgba(80, 139, 255, 0.18);
    --mv7-mobile-glow-soft: rgba(80, 139, 255, 0.075);
  }

  body[data-v2-view='accounts'] {
    --mv7-mobile-accent: #71d4e8;
    --mv7-mobile-glow: rgba(79, 196, 222, 0.17);
    --mv7-mobile-glow-soft: rgba(79, 196, 222, 0.07);
  }

  body[data-v2-view='budgets'] {
    --mv7-mobile-accent: #efb86a;
    --mv7-mobile-glow: rgba(239, 184, 106, 0.16);
    --mv7-mobile-glow-soft: rgba(239, 184, 106, 0.07);
  }

  body[data-v2-view='savings'] {
    --mv7-mobile-accent: #b798ff;
    --mv7-mobile-glow: rgba(159, 122, 255, 0.18);
    --mv7-mobile-glow-soft: rgba(159, 122, 255, 0.075);
  }

  body[data-v2-view='calendar'] {
    --mv7-mobile-accent: #78b9ff;
    --mv7-mobile-glow: rgba(84, 159, 255, 0.17);
    --mv7-mobile-glow-soft: rgba(84, 159, 255, 0.07);
  }

  body[data-v2-view='recurring'] {
    --mv7-mobile-accent: #ef9cae;
    --mv7-mobile-glow: rgba(231, 121, 151, 0.16);
    --mv7-mobile-glow-soft: rgba(231, 121, 151, 0.07);
  }

  body[data-v2-view='streak'] {
    --mv7-mobile-accent: #c099ff;
    --mv7-mobile-glow: rgba(174, 121, 255, 0.18);
    --mv7-mobile-glow-soft: rgba(174, 121, 255, 0.075);
  }

  body[data-v2-view='networth'] {
    --mv7-mobile-accent: #8c9fff;
    --mv7-mobile-glow: rgba(109, 127, 255, 0.18);
    --mv7-mobile-glow-soft: rgba(109, 127, 255, 0.075);
  }

  body[data-v2-view='community'] {
    --mv7-mobile-accent: #c394ff;
    --mv7-mobile-glow: rgba(182, 118, 255, 0.16);
    --mv7-mobile-glow-soft: rgba(182, 118, 255, 0.07);
  }

  body[data-v2-view='settings'] {
    --mv7-mobile-accent: #8db6ff;
    --mv7-mobile-glow: rgba(117, 162, 255, 0.16);
    --mv7-mobile-glow-soft: rgba(117, 162, 255, 0.07);
  }

  body[data-v2-view='investments'] {
    --mv7-mobile-accent: #6fcbd4;
    --mv7-mobile-glow: rgba(91, 193, 207, 0.16);
    --mv7-mobile-glow-soft: rgba(91, 193, 207, 0.07);
  }

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

  .mv7-workspace {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.018), transparent 18rem),
      transparent;
  }

  .mv7-topbar {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.018)),
      rgba(12, 15, 21, 0.72);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.09),
      0 14px 38px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(24px) saturate(145%);
    -webkit-backdrop-filter: blur(24px) saturate(145%);
  }

  .mv7-topbar::after {
    position: absolute;
    right: 16%;
    bottom: -1px;
    left: 16%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--mv7-mobile-accent), transparent);
    opacity: 0.42;
    content: '';
    pointer-events: none;
  }

  .mv7-topbar .mv7-icon-button,
  .mv7-topbar .mv7-avatar,
  .mv7-menu-button {
    border-color: var(--mv7-mobile-edge);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.018));
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.09),
      0 9px 20px rgba(0, 0, 0, 0.16);
  }

  .mv7-mobile-brand-mark i {
    background: linear-gradient(135deg, #f4f7ff, var(--mv7-mobile-accent));
    box-shadow: 0 0 14px var(--mv7-mobile-glow);
  }

  .mv7-sidebar {
    border-right-color: var(--mv7-mobile-edge-bright);
    background:
      radial-gradient(circle at 0 0, var(--mv7-mobile-glow), transparent 18rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.07), transparent 42%),
      rgba(12, 15, 21, 0.9);
    box-shadow:
      inset -1px 0 rgba(255, 255, 255, 0.08),
      28px 0 70px rgba(0, 0, 0, 0.52);
    backdrop-filter: blur(30px) saturate(145%);
    -webkit-backdrop-filter: blur(30px) saturate(145%);
  }

  .mv7-nav-item.is-active,
  .mv7-settings-nav-item.is-active {
    border-color: color-mix(in srgb, var(--mv7-mobile-accent) 34%, var(--mv7-mobile-edge));
    background:
      linear-gradient(90deg, var(--mv7-mobile-glow-soft), rgba(255, 255, 255, 0.035)),
      rgba(255, 255, 255, 0.025);
    color: #f7f9ff;
    box-shadow: inset 2px 0 var(--mv7-mobile-accent);
  }

  .mv7-nav-item.is-active svg,
  .mv7-settings-nav-item.is-active svg {
    color: var(--mv7-mobile-accent);
    stroke: var(--mv7-mobile-accent);
  }

  .mv7-primary-button {
    border-color: color-mix(in srgb, var(--mv7-mobile-accent) 46%, rgba(255, 255, 255, 0.14));
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.035)),
      color-mix(in srgb, var(--mv7-mobile-accent) 28%, rgba(17, 21, 29, 0.88));
    color: #fbfcff;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.2),
      0 12px 24px -12px var(--mv7-mobile-glow);
  }

  .mv7-secondary-button,
  .mv7-icon-button,
  .mv7-text-link,
  .mv7-text-action {
    transition:
      border-color 180ms ease,
      background-color 180ms ease,
      color 180ms ease,
      transform 180ms ease;
  }

  .mv7-text-link,
  .mv7-text-action,
  .mv7-eyebrow {
    color: var(--mv7-mobile-accent);
  }

  .mv7-metric,
  .mv7-panel,
  .mv7-tx-summary,
  .mv7-tx-ledger,
  .mv7-tx-inspector,
  .mv7-money-map,
  .mv7-account-focus,
  .mv7-account-layer,
  .mv7-budget-field,
  .mv7-budget-categories-card,
  .mv7-budget-rhythm-card,
  .mv7-budget-reserve,
  .mv7-future-scene,
  .mv7-calendar-runway,
  .mv7-calendar-summary dl > div,
  .mv7-calendar-side-card,
  .mv7-recurring-kpis article,
  .mv7-orbit-system,
  .mv7-recurring-side-card,
  .mv7-streak-hero article,
  .mv7-missions-card,
  .mv7-streak-completed,
  .mv7-streak-rail section,
  .mv7-networth-section,
  .mv7-investments-summary article,
  .mv7-investments-workspace,
  .mv7-community-composer,
  .mv7-community-post,
  .mv7-community-rail-module,
  .mv7-settings-card,
  .mv7-settings-nav {
    border-color: var(--mv7-mobile-edge);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.018) 48%, transparent),
      var(--mv7-mobile-glass);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.09),
      inset 0 -1px rgba(255, 255, 255, 0.025),
      var(--mv7-mobile-shadow);
    backdrop-filter: blur(18px) saturate(135%);
    -webkit-backdrop-filter: blur(18px) saturate(135%);
  }

  .mv7-metric,
  .mv7-panel,
  .mv7-tx-summary,
  .mv7-money-map,
  .mv7-account-focus,
  .mv7-budget-field,
  .mv7-budget-categories-card,
  .mv7-budget-rhythm-card,
  .mv7-future-scene,
  .mv7-calendar-runway,
  .mv7-orbit-system,
  .mv7-networth-section,
  .mv7-settings-card {
    border-radius: 18px;
  }

  input,
  select,
  textarea,
  .mv7-tx-search,
  .mv7-community-search,
  .mv7-dm-search {
    border-color: var(--mv7-mobile-edge);
    background: rgba(7, 10, 15, 0.48);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.045),
      0 8px 20px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  input:focus,
  select:focus,
  textarea:focus {
    border-color: color-mix(in srgb, var(--mv7-mobile-accent) 58%, white 8%);
    box-shadow: 0 0 0 3px var(--mv7-mobile-glow-soft);
  }

  .mv7-section-heading h2,
  .mv7-tx-heading h2,
  .mv7-accounts-heading h2,
  .mv7-budgets-heading h2,
  .mv7-goals-heading h2,
  .mv7-calendar-heading h2,
  .mv7-recurring-heading h2,
  .mv7-streak-heading h2,
  .mv7-networth-heading h2,
  .mv7-settings-title h3 {
    text-shadow: 0 8px 30px rgba(0, 0, 0, 0.34);
  }

  /* Inicio: calm blue overview, with semantic colors only in the figures. */
  #overview-view .mv7-metric-primary {
    border-color: color-mix(in srgb, var(--mv7-mobile-accent) 32%, var(--mv7-mobile-edge));
    background:
      radial-gradient(circle at 92% 18%, var(--mv7-mobile-glow), transparent 9rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02)),
      var(--mv7-mobile-glass-strong);
  }

  #overview-view .mv7-metric-primary .mv7-metric-icon,
  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(1) svg {
    border-color: rgba(111, 169, 255, 0.34);
    background: rgba(111, 169, 255, 0.1);
    color: #83b5ff;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(2) svg {
    border-color: rgba(239, 139, 153, 0.32);
    background: rgba(239, 139, 153, 0.09);
    color: #f19aa8;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(3) svg {
    border-color: rgba(181, 140, 255, 0.32);
    background: rgba(181, 140, 255, 0.09);
    color: #c1a3ff;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(4) svg {
    border-color: rgba(255, 255, 255, 0.13);
    background: rgba(255, 255, 255, 0.045);
    color: #d4d8e2;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn {
    background: transparent;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(1) svg {
    stroke: #83b5ff;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(2) svg {
    stroke: #f19aa8;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(3) svg {
    stroke: #c1a3ff;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:nth-child(4) svg {
    stroke: #d4d8e2;
  }

  #overview-view .mv7-cashflow-panel {
    background:
      radial-gradient(circle at 12% 100%, rgba(102, 157, 255, 0.09), transparent 15rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.014)),
      var(--mv7-mobile-glass);
  }

  #overview-view .mv7-chart-line {
    stroke: #7baeff;
    filter: drop-shadow(0 0 7px rgba(90, 149, 255, 0.42));
  }

  /* Movimientos: editorial blue ledger with quiet semantic income/expense. */
  #transactions-view .mv7-tx-summary {
    background:
      radial-gradient(circle at 5% 10%, rgba(77, 136, 255, 0.15), transparent 15rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.012)),
      var(--mv7-mobile-glass-strong);
  }

  #transactions-view .mv7-tx-summary-item:first-child strong,
  #transactions-view .mv7-tx-summary-line {
    color: #8bb8ff;
    stroke: #76a9ff;
  }

  #transactions-view .mv7-tx-type-filter button.is-active {
    border-color: rgba(112, 168, 255, 0.28);
    background: rgba(112, 168, 255, 0.11);
    color: #e9f1ff;
  }

  #transactions-view .mv7-tx-row,
  #transactions-view .mv7-transaction-row {
    border-bottom-color: rgba(255, 255, 255, 0.065);
  }

  #transactions-view .mv7-tx-row.is-selected,
  #transactions-view .mv7-transaction-row:active {
    background: linear-gradient(90deg, rgba(112, 168, 255, 0.1), rgba(255, 255, 255, 0.018));
  }

  /* Cuentas: cool cyan mapping and varied account tokens. */
  #accounts-view .mv7-money-map {
    background:
      radial-gradient(circle at 12% 18%, rgba(89, 199, 221, 0.15), transparent 16rem),
      radial-gradient(circle at 88% 80%, rgba(121, 147, 255, 0.08), transparent 13rem),
      var(--mv7-mobile-glass-strong);
  }

  #accounts-view .mv7-money-source {
    border-color: rgba(107, 211, 230, 0.3);
    background: rgba(87, 192, 214, 0.07);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.1),
      0 18px 38px rgba(0, 0, 0, 0.24);
  }

  #accounts-view .mv7-money-node:nth-child(3n + 1),
  #accounts-view .mv7-account-layer:nth-child(3n + 1) {
    --account-color: #75cfe1;
  }

  #accounts-view .mv7-money-node:nth-child(3n + 2),
  #accounts-view .mv7-account-layer:nth-child(3n + 2) {
    --account-color: #9f91ff;
  }

  #accounts-view .mv7-money-node:nth-child(3n),
  #accounts-view .mv7-account-layer:nth-child(3n) {
    --account-color: #eab46f;
  }

  /* Presupuestos: amber planning, violet projections, never a green wall. */
  #budgets-view .mv7-budget-field {
    background:
      radial-gradient(circle at 90% 0, rgba(236, 177, 96, 0.15), transparent 14rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.012)),
      var(--mv7-mobile-glass-strong);
  }

  #budgets-view .mv7-budget-inline-stats .is-plan dd,
  #budgets-view .mv7-budget-axis-track > b,
  #budgets-view .mv7-budget-lane-actual {
    color: #f0bb70;
    stroke: #f0bb70;
  }

  #budgets-view .mv7-budget-lane-projection {
    stroke: #b69aff;
  }

  #budgets-view .mv7-budget-lane,
  #budgets-view .mv7-budget-reserve {
    border-color: rgba(255, 255, 255, 0.1);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.012));
  }

  /* Objetivos: violet future scene with cyan milestones. */
  #savings-view .mv7-future-scene {
    background:
      radial-gradient(circle at 16% 16%, rgba(166, 126, 255, 0.17), transparent 17rem),
      radial-gradient(circle at 90% 80%, rgba(91, 197, 220, 0.08), transparent 15rem),
      var(--mv7-mobile-glass-strong);
  }

  #savings-view .mv7-goal-monolith-fill,
  #savings-view .mv7-goal-inline-contribute {
    background: linear-gradient(180deg, #c2a5ff, #7960db);
  }

  #savings-view .mv7-goal-compact {
    border-color: rgba(255, 255, 255, 0.11);
    background: rgba(255, 255, 255, 0.035);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.07);
  }

  #savings-view .mv7-goal-milestones i {
    background: linear-gradient(90deg, #8a74e8, #71cddb);
  }

  /* Calendario: blue glass month, amber expenses and mint income only. */
  #calendar-view .mv7-calendar-runway {
    background:
      radial-gradient(circle at 90% 0, rgba(91, 159, 255, 0.12), transparent 15rem),
      rgba(15, 19, 27, 0.7);
  }

  #calendar-view .mv7-calendar-day {
    border-color: rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.012);
  }

  #calendar-view .mv7-calendar-day.is-today {
    outline-color: #79b6ff;
    background: rgba(100, 164, 255, 0.09);
  }

  #calendar-view .mv7-calendar-day.is-today > strong {
    color: #9bc9ff;
  }

  #calendar-view .mv7-calendar-summary dl > div:nth-child(1) {
    box-shadow: inset 0 2px rgba(106, 206, 174, 0.48);
  }

  #calendar-view .mv7-calendar-summary dl > div:nth-child(2) {
    box-shadow: inset 0 2px rgba(239, 179, 100, 0.5);
  }

  #calendar-view .mv7-calendar-summary dl > div:nth-child(3) {
    box-shadow: inset 0 2px rgba(111, 169, 255, 0.5);
  }

  /* Recurrentes: rose subscription identity balanced with blue detail. */
  #recurring-view .mv7-recurring-kpis article:first-child {
    border-color: rgba(236, 143, 164, 0.25);
    background:
      radial-gradient(circle at 100% 0, rgba(232, 133, 157, 0.13), transparent 9rem),
      var(--mv7-mobile-glass);
  }

  #recurring-view #recurring-core-monthly {
    color: #f0a3b5;
  }

  #recurring-view .mv7-recurring-kpis article:nth-child(2) {
    box-shadow: inset 0 2px rgba(116, 169, 255, 0.42), var(--mv7-mobile-shadow);
  }

  #recurring-view .mv7-recurring-kpis article:nth-child(3) {
    box-shadow: inset 0 2px rgba(192, 154, 255, 0.42), var(--mv7-mobile-shadow);
  }

  #recurring-view .mv7-recurring-kpis article:nth-child(4) {
    border-color: rgba(117, 205, 219, 0.26);
    box-shadow: inset 0 2px rgba(117, 205, 219, 0.42), var(--mv7-mobile-shadow);
  }

  #recurring-view #recurring-potential,
  #recurring-view #recurring-potential-detail,
  #recurring-view #recurring-saving-yearly {
    color: #78d0dc;
  }

  #recurring-view .mv7-orbit-system {
    background:
      radial-gradient(circle at 16% 0, rgba(228, 131, 154, 0.1), transparent 16rem),
      var(--mv7-mobile-glass-strong);
  }

  #recurring-view .mv7-recurring-node.is-selected {
    border-color: rgba(239, 156, 174, 0.42);
    background: rgba(239, 156, 174, 0.075);
  }

  /* Racha: jewel-like violet glass, retaining warm fire as a small accent. */
  #streak-view .mv7-streak-current {
    background:
      radial-gradient(circle at 92% 32%, rgba(193, 143, 255, 0.16), transparent 10rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.012)),
      var(--mv7-mobile-glass-strong);
  }

  #streak-view .mv7-streak-current > div > strong {
    background: linear-gradient(90deg, #c5a2ff, #ffb47d);
    background-clip: text;
  }

  #streak-view .mv7-streak-primary {
    border-color: rgba(190, 148, 255, 0.45);
    background: linear-gradient(135deg, rgba(139, 100, 222, 0.88), rgba(195, 144, 255, 0.78));
    box-shadow: 0 14px 28px -14px rgba(169, 116, 255, 0.58);
  }

  #streak-view .mv7-missions-card nav button.is-active {
    border-color: #c29cff;
    color: #ceb2ff;
  }

  /* Patrimonio: indigo depth, cyan assets and warm liabilities. */
  #networth-view .mv7-networth-section {
    background:
      radial-gradient(circle at 84% 8%, rgba(112, 128, 255, 0.16), transparent 18rem),
      radial-gradient(circle at 8% 75%, rgba(79, 193, 220, 0.07), transparent 16rem),
      var(--mv7-mobile-glass-strong);
  }

  #networth-view .mv7-networth-primary h3,
  #networth-view .mv7-networth-measure strong {
    color: #a9b4ff;
  }

  #networth-view #networth-trend,
  #networth-view #networth-history-change,
  #networth-view .mv7-networth-zero span {
    color: #79ccd9;
  }

  #networth-view .mv7-networth-zero {
    border-color: rgba(112, 198, 215, 0.55);
  }

  #networth-view .mv7-networth-history-line {
    stroke: #8d9fff;
  }

  #networth-view .mv7-networth-layer-asset {
    --layer-accent: #77cfe0;
  }

  #networth-view .mv7-networth-layer-liability {
    --layer-accent: #efa889;
  }

  #networth-view .mv7-networth-ratio,
  #networth-view .mv7-networth-history {
    border-color: rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.06);
  }

  /* Comunidad + mensajes: social violet without touching privacy semantics. */
  #community-view .mv7-community-feed,
  #community-view .mv7-community-tabs {
    background: rgba(10, 13, 19, 0.74);
    backdrop-filter: blur(20px) saturate(135%);
    -webkit-backdrop-filter: blur(20px) saturate(135%);
  }

  #community-view .mv7-community-tabs button.is-active {
    color: #d4bdff;
  }

  #community-view .mv7-community-tabs button.is-active::after {
    background: linear-gradient(90deg, #a981f2, #75b9ff);
    box-shadow: 0 0 12px rgba(176, 124, 255, 0.32);
  }

  #community-view .mv7-community-composer {
    background:
      radial-gradient(circle at 0 0, rgba(182, 126, 255, 0.1), transparent 12rem),
      rgba(18, 21, 29, 0.68);
  }

  #community-view .mv7-community-post:nth-child(3n + 1) {
    box-shadow: inset 2px 0 rgba(126, 177, 255, 0.24);
  }

  #community-view .mv7-community-post:nth-child(3n + 2) {
    box-shadow: inset 2px 0 rgba(191, 143, 255, 0.24);
  }

  #community-view .mv7-community-post:nth-child(3n) {
    box-shadow: inset 2px 0 rgba(236, 178, 104, 0.2);
  }

  .mv7-dm-dialog {
    background:
      radial-gradient(circle at 100% 0, rgba(173, 123, 255, 0.14), transparent 20rem),
      rgba(9, 12, 18, 0.94);
    backdrop-filter: blur(28px) saturate(140%);
    -webkit-backdrop-filter: blur(28px) saturate(140%);
  }

  .mv7-dm-conversation.is-active,
  .mv7-dm-conversation:active {
    background: linear-gradient(90deg, rgba(171, 126, 255, 0.11), rgba(112, 169, 255, 0.045));
  }

  .mv7-dm-message.is-mine {
    border-color: rgba(151, 131, 239, 0.32);
    background: linear-gradient(145deg, rgba(143, 114, 224, 0.22), rgba(80, 112, 184, 0.13));
  }

  .mv7-dm-composer {
    border-top-color: var(--mv7-mobile-edge);
    background: rgba(13, 16, 23, 0.78);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
  }

  /* Ajustes: clean blue glass and clearer groups, still using real controls. */
  #settings-view .mv7-settings-nav {
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.018)),
      rgba(16, 20, 28, 0.78);
  }

  #settings-view .mv7-settings-card {
    position: relative;
    overflow: hidden;
  }

  #settings-view .mv7-settings-card::after {
    position: absolute;
    top: 0;
    right: 18px;
    left: 18px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    content: '';
    pointer-events: none;
  }

  #settings-view .mv7-settings-card:nth-of-type(3n + 1) {
    box-shadow: inset 2px 0 rgba(125, 176, 255, 0.22), var(--mv7-mobile-shadow);
  }

  #settings-view .mv7-settings-card:nth-of-type(3n + 2) {
    box-shadow: inset 2px 0 rgba(180, 146, 255, 0.2), var(--mv7-mobile-shadow);
  }

  #settings-view .mv7-settings-card:nth-of-type(3n) {
    box-shadow: inset 2px 0 rgba(104, 202, 213, 0.19), var(--mv7-mobile-shadow);
  }

  #settings-view .mv7-switch:checked {
    background: linear-gradient(90deg, #718fd5, #9d82dd);
  }

  #settings-view .mv7-primary-button,
  #settings-view .mv7-backup-actions .mv7-primary-button {
    border-color: rgba(126, 174, 255, 0.46);
    background: linear-gradient(135deg, rgba(92, 132, 205, 0.92), rgba(133, 113, 203, 0.9));
    color: #fff;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.2),
      0 14px 26px -14px rgba(111, 155, 255, 0.58);
  }

  #settings-view .mv7-settings-metric > span,
  #settings-view .mv7-backup-header-icon {
    border-color: rgba(128, 174, 255, 0.26);
    background: rgba(128, 174, 255, 0.08);
    color: #9fc4ff;
  }

  /* Inversiones: cool teal glass with gold reserved for performance. */
  #investments-view .mv7-investments-summary article:first-child,
  #investments-view .mv7-investments-workspace {
    background:
      radial-gradient(circle at 90% 0, rgba(90, 194, 207, 0.13), transparent 14rem),
      var(--mv7-mobile-glass);
  }

  #investments-view .mv7-investment-row > span {
    background: rgba(95, 199, 210, 0.1);
    color: #81d4dd;
  }

  #investments-view .mv7-investments-summary article:nth-child(2) strong {
    color: #78cfd9;
  }

  #investments-view .mv7-investments-summary article:nth-child(3) strong,
  #investments-view .mv7-investment-row em:not(.is-negative) {
    color: #ebbd78;
  }

  #settings-view .mv7-backup-header-icon,
  #settings-view .mv7-notification-icon,
  #settings-view .mv7-security-row-icon {
    border-color: rgba(128, 174, 255, 0.24);
    background: rgba(128, 174, 255, 0.08);
    color: #9fc4ff;
  }

  /* A short, single entrance gives each workspace polish without delaying use. */
  .mv7-content:not([hidden]) > .mv7-section-heading,
  .mv7-transactions-view:not([hidden]) > *,
  .mv7-accounts-view:not([hidden]) > *,
  .mv7-budgets-view:not([hidden]) > *,
  .mv7-goals-view:not([hidden]) > *,
  .mv7-calendar-view:not([hidden]) > *,
  .mv7-recurring-view:not([hidden]) > *,
  .mv7-streak-view:not([hidden]) > *,
  .mv7-networth-view:not([hidden]) > *,
  .mv7-settings-tab:not([hidden]) > * {
    animation: mv7-mobile-glass-enter 420ms cubic-bezier(0.2, 0.82, 0.2, 1) both;
  }

  @keyframes mv7-mobile-glass-enter {
    from {
      opacity: 0;
      transform: translateY(8px) scale(0.992);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
  .mv7-content:not([hidden]) > .mv7-section-heading,
  .mv7-transactions-view:not([hidden]) > *,
  .mv7-accounts-view:not([hidden]) > *,
  .mv7-budgets-view:not([hidden]) > *,
  .mv7-goals-view:not([hidden]) > *,
  .mv7-calendar-view:not([hidden]) > *,
  .mv7-recurring-view:not([hidden]) > *,
  .mv7-streak-view:not([hidden]) > *,
  .mv7-networth-view:not([hidden]) > *,
  .mv7-settings-tab:not([hidden]) > * {
    animation: none;
  }
}

/* Transaction copy that only participates in the dedicated mobile layout. */
.mv7-tx-mobile-copy,
.mv7-tx-row-meta-mobile,
.mv7-tx-date-group {
  display: none;
}

/* Diseño móvil anterior conservado como referencia, fuera del rango activo. */
@media (max-width: 0px) {
  #transactions-view {
    padding: 14px 14px calc(34px + env(safe-area-inset-bottom));
  }

  #transactions-view .mv7-tx-heading {
    min-height: 46px;
    align-items: center;
    justify-content: flex-end;
    margin: 0 0 10px;
  }

  #transactions-view .mv7-tx-heading::before {
    margin-right: auto;
    color: #82adff;
    font-family: var(--v2-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.13em;
    content: 'REGISTRO FINANCIERO';
  }

  #transactions-view .mv7-tx-heading > div:first-child {
    display: none;
  }

  #transactions-view .mv7-tx-heading-actions {
    width: auto;
    gap: 8px;
  }

  #transactions-view .mv7-tx-heading-actions button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    justify-content: center;
    padding: 0;
    border-radius: 13px;
  }

  #transactions-view .mv7-tx-heading-actions .mv7-primary-button {
    border-color: rgba(111, 169, 255, 0.48);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.04)),
      rgba(72, 112, 205, 0.74);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.22),
      0 12px 26px rgba(65, 107, 218, 0.25);
  }

  #transactions-view .mv7-tx-heading-actions .mv7-primary-button span {
    display: none;
  }

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

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

  #transactions-view .mv7-tx-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto 116px auto;
    margin-bottom: 12px;
    overflow: hidden;
    border-color: rgba(126, 164, 242, 0.25);
    border-radius: 20px;
    background:
      radial-gradient(circle at 92% 6%, rgba(85, 124, 255, 0.22), transparent 16rem),
      radial-gradient(circle at 10% 100%, rgba(123, 104, 218, 0.1), transparent 13rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.018)),
      rgba(16, 21, 34, 0.84);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.13),
      inset 0 -1px rgba(255, 255, 255, 0.025),
      0 22px 50px rgba(0, 0, 0, 0.34),
      0 0 38px rgba(80, 120, 255, 0.06);
  }

  #transactions-view .mv7-tx-summary-item {
    min-height: 0;
    padding: 15px 16px;
    border-color: rgba(255, 255, 255, 0.085);
    background: transparent;
  }

  #transactions-view .mv7-tx-summary-item:first-child {
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 112px;
    border: 0;
  }

  #transactions-view .mv7-tx-summary-item:first-child > span {
    color: #aeb6c6;
    font-size: 12px;
  }

  #transactions-view #tx-mobile-balance {
    margin: 8px 0 6px;
    color: #f3f6ff;
    font-family: var(--v2-display);
    font-size: clamp(28px, 9vw, 38px);
    font-weight: 620;
    letter-spacing: -0.055em;
    line-height: 1;
    text-shadow: 0 8px 28px rgba(0, 0, 0, 0.32);
  }

  #transactions-view #tx-mobile-balance.is-negative {
    color: #f19aa8;
  }

  #transactions-view .mv7-tx-mobile-period {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #9ba5b7;
    font-size: 11px;
  }

  #transactions-view .mv7-tx-mobile-period svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: #87b5ff;
    stroke-width: 1.7;
  }

  #transactions-view .mv7-tx-mini-chart {
    position: relative;
    grid-column: 1 / -1;
    grid-row: 2;
    min-height: 116px;
    padding: 0 16px 7px;
    border: 0;
    background: transparent;
  }

  #transactions-view .mv7-tx-mini-chart::after {
    position: absolute;
    right: 16px;
    bottom: 7px;
    left: 16px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    content: '';
  }

  #transactions-view .mv7-tx-mini-chart svg {
    height: 100px;
  }

  #transactions-view .mv7-tx-mini-chart > span {
    display: none;
  }

  #transactions-view .mv7-tx-summary-area {
    fill: rgba(100, 130, 255, 0.15);
  }

  #transactions-view .mv7-tx-summary-line {
    stroke: #759dff;
    stroke-width: 2.4;
    filter: drop-shadow(0 0 7px rgba(93, 132, 255, 0.5));
  }

  #transactions-view .mv7-tx-zero-line {
    stroke: rgba(255, 255, 255, 0.08);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2),
  #transactions-view .mv7-tx-summary-item:nth-child(3) {
    grid-row: 3;
    min-width: 0;
    min-height: 84px;
    padding-block: 13px;
    border-top: 1px solid rgba(255, 255, 255, 0.085);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) {
    grid-column: 1;
    border-right: 1px solid rgba(255, 255, 255, 0.085);
  }

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

  #transactions-view .mv7-tx-summary-item:nth-child(2) > span::before,
  #transactions-view .mv7-tx-summary-item:nth-child(3) > span::before {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 7px;
    border-radius: 50%;
    background: #6fd9b2;
    box-shadow: 0 0 9px rgba(111, 217, 178, 0.35);
    content: '';
    vertical-align: 1px;
  }

  #transactions-view .mv7-tx-summary-item:nth-child(3) > span::before {
    background: #f08c98;
    box-shadow: 0 0 9px rgba(240, 140, 152, 0.3);
  }

  #transactions-view .mv7-tx-summary-item:nth-child(2) strong,
  #transactions-view .mv7-tx-summary-item:nth-child(3) strong {
    overflow: hidden;
    margin-top: 7px;
    font-size: clamp(13px, 4vw, 17px);
    letter-spacing: -0.04em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

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

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

  #transactions-view .mv7-tx-summary-item:nth-child(2) small,
  #transactions-view .mv7-tx-summary-item:nth-child(3) small {
    margin-top: 4px;
    font-size: 9px;
  }

  #transactions-view .mv7-tx-filters {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    padding: 0 0 12px;
  }

  #transactions-view .mv7-tx-search {
    min-height: 46px;
    grid-column: 1 / -1;
    padding-inline: 13px;
    border-color: rgba(255, 255, 255, 0.105);
    border-radius: 14px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.01)),
      rgba(10, 14, 22, 0.72);
  }

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

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

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

  #transactions-view .mv7-tx-type-filter button {
    min-width: 0;
    min-height: 42px;
    padding: 0 9px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.025);
    font-size: 11px;
  }

  #transactions-view .mv7-tx-type-filter button i {
    display: none;
  }

  #transactions-view .mv7-tx-type-filter button.is-active {
    border-color: rgba(113, 163, 255, 0.36);
    background:
      linear-gradient(145deg, rgba(125, 169, 255, 0.2), rgba(78, 107, 192, 0.12)),
      rgba(255, 255, 255, 0.025);
    color: #b9d1ff;
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.09),
      0 8px 18px rgba(35, 61, 130, 0.12);
  }

  #transactions-view .mv7-tx-select {
    min-width: 88px;
    min-height: 42px;
    grid-column: 2;
    grid-row: 2;
    border-color: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.025);
  }

  #transactions-view .mv7-tx-select select {
    min-height: 40px;
    padding-inline: 30px 8px;
    font-size: 11px;
  }

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

  #transactions-view .mv7-tx-layout {
    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-list {
    min-height: 0;
    padding: 0;
  }

  #transactions-view .mv7-tx-list:has(.mv7-tx-empty) {
    min-height: 220px;
    overflow: hidden;
    border: 1px solid var(--mv7-mobile-edge);
    border-radius: 17px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.012)),
      var(--mv7-mobile-glass);
    box-shadow: var(--mv7-mobile-shadow);
  }

  #transactions-view .mv7-tx-date-group {
    display: flex;
    min-height: 39px;
    align-items: center;
    padding: 12px 8px 8px;
    color: #82adff;
    font-family: var(--v2-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
  }

  #transactions-view .mv7-tx-row {
    position: relative;
    min-height: 74px;
    grid-template-columns: 42px minmax(0, 1fr) auto 13px;
    gap: 10px;
    margin: 0;
    padding: 10px 11px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-bottom: 0;
    border-radius: 0;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.012)),
      rgba(18, 22, 30, 0.74);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.045),
      0 12px 28px rgba(0, 0, 0, 0.13);
    backdrop-filter: blur(15px) saturate(130%);
    -webkit-backdrop-filter: blur(15px) saturate(130%);
  }

  #transactions-view .mv7-tx-date-group + .mv7-tx-row {
    border-radius: 16px 16px 0 0;
  }

  #transactions-view .mv7-tx-row:has(+ .mv7-tx-date-group),
  #transactions-view .mv7-tx-row:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 0 0 16px 16px;
  }

  #transactions-view .mv7-tx-row:only-child {
    border-radius: 16px;
  }

  #transactions-view .mv7-tx-row::after {
    grid-column: 4;
    color: #697284;
    font-size: 22px;
    font-weight: 300;
    content: '›';
  }

  #transactions-view .mv7-tx-row.is-selected {
    border-color: rgba(111, 161, 255, 0.28);
    background:
      linear-gradient(90deg, rgba(101, 145, 255, 0.1), rgba(255, 255, 255, 0.018)),
      rgba(18, 22, 30, 0.8);
  }

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

  #transactions-view .mv7-transaction-token {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.09);
  }

  #transactions-view .mv7-tx-row-copy {
    display: grid;
    min-width: 0;
    gap: 4px;
  }

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

  #transactions-view .mv7-tx-row-meta-desktop {
    display: none;
  }

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

  #transactions-view .mv7-tx-row-amount {
    grid-column: 3;
    max-width: 105px;
    overflow: hidden;
    font-size: clamp(11px, 3.15vw, 13px);
    letter-spacing: -0.025em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #transactions-view .mv7-tx-row-amount.is-income {
    color: #65ddb1;
  }

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

  #transactions-view .mv7-tx-row-amount.is-transfer {
    color: #83aaff;
  }

  #transactions-view .mv7-tx-ledger-footer {
    min-height: 46px;
    margin-top: 10px;
    padding: 0 11px;
    border: 1px solid rgba(255, 255, 255, 0.085);
    border-radius: 13px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.01)),
      rgba(15, 19, 27, 0.68);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
  }

  #transactions-view .mv7-tx-ledger-footer > span {
    font-size: 9px;
  }

  #transactions-view .mv7-tx-ledger-footer button,
  #transactions-view .mv7-tx-ledger-footer output {
    width: 30px;
    min-width: 30px;
    height: 30px;
  }

  #transactions-view .mv7-tx-inspector {
    border-color: rgba(132, 167, 238, 0.22);
    background:
      radial-gradient(circle at 100% 0, rgba(93, 126, 224, 0.16), transparent 16rem),
      linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.018)),
      rgba(12, 16, 24, 0.96);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.12),
      0 -32px 90px rgba(0, 0, 0, 0.76);
    backdrop-filter: blur(28px) saturate(145%);
    -webkit-backdrop-filter: blur(28px) saturate(145%);
  }

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

  #transactions-view .mv7-tx-detail-hero {
    background: rgba(255, 255, 255, 0.025);
  }
}

@media (max-width: 0px) {
  #transactions-view .mv7-tx-type-filter {
    gap: 4px;
  }

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

  #transactions-view .mv7-tx-select {
    min-width: 82px;
  }

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

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

@media (max-width: 768px) {
  #transactions-view .mv7-tx-type-filter button.is-active {
    border-color: rgba(63, 214, 153, 0.34);
    background:
      linear-gradient(145deg, rgba(69, 220, 158, 0.28), rgba(33, 139, 102, 0.16)),
      rgba(24, 48, 40, 0.56);
    color: #bdf5dd;
  }
}

/* Topbar móvil v14: una jerarquía estable para todas las secciones. */
@media (max-width: 768px) {
  :root {
    --v2-topbar-height: calc(68px + env(safe-area-inset-top));
  }

  body[data-v2-view] .mv7-topbar {
    display: grid;
    width: 100%;
    height: var(--v2-topbar-height);
    min-height: var(--v2-topbar-height);
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: max(10px, env(safe-area-inset-top)) 12px 10px;
  }

  .mv7-mobile-topbar-start {
    min-width: 40px;
    grid-column: 1;
    gap: 8px;
  }

  .mv7-page-identity {
    display: flex;
    min-width: 0;
    grid-column: 2;
    overflow: hidden;
  }

  .mv7-page-identity > div,
  .mv7-title-line {
    min-width: 0;
    width: 100%;
  }

  .mv7-page-identity h1 {
    max-width: 100%;
    overflow: hidden;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .mv7-page-identity p,
  .mv7-page-identity .mv7-live-pill {
    display: none;
  }

  .mv7-topbar-actions {
    min-width: 0;
    grid-column: 3;
    gap: 5px;
  }

  .mv7-menu-button,
  .mv7-topbar .mv7-icon-button,
  .mv7-topbar .mv7-avatar,
  body[data-v2-view='overview'] .mv7-menu-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-avatar {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
    border-radius: 11px;
  }

  #privacy-toggle {
    display: grid;
  }

  body[data-v2-view='overview'] .mv7-page-identity {
    display: none;
  }

  body[data-v2-view='overview'] .mv7-mobile-topbar-start {
    min-width: 0;
  }
}

@media (max-width: 360px) {
  :root {
    --v2-topbar-height: calc(62px + env(safe-area-inset-top));
  }

  body[data-v2-view] .mv7-topbar {
    gap: 7px;
    padding-inline: 9px;
  }

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

  .mv7-menu-button,
  .mv7-topbar .mv7-icon-button,
  .mv7-topbar .mv7-avatar,
  body[data-v2-view='overview'] .mv7-menu-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-avatar {
    width: 36px;
    height: 36px;
    flex-basis: 36px;
    border-radius: 10px;
  }

  .mv7-page-identity h1 {
    font-size: 14px;
  }

  .mv7-mobile-brand strong {
    font-size: 17px;
  }
}

/* Racha v15: motion language exclusivo de escritorio. */
@media (min-width: 769px) {
  #streak-view:not([hidden]) .mv7-streak-heading {
    animation: mv7-streak-rise 480ms cubic-bezier(0.2, 0.82, 0.2, 1) 40ms backwards;
  }

  #streak-view:not([hidden]) .mv7-streak-hero article:first-child {
    animation: mv7-streak-rise 560ms cubic-bezier(0.2, 0.82, 0.2, 1) 110ms backwards;
  }

  #streak-view:not([hidden]) .mv7-streak-hero article:nth-child(2) {
    animation: mv7-streak-rise 560ms cubic-bezier(0.2, 0.82, 0.2, 1) 180ms backwards;
  }

  #streak-view:not([hidden]) .mv7-streak-maincol {
    animation: mv7-streak-rise 580ms cubic-bezier(0.2, 0.82, 0.2, 1) 245ms backwards;
  }

  #streak-view:not([hidden]) .mv7-streak-rail section {
    animation: mv7-streak-rise 540ms cubic-bezier(0.2, 0.82, 0.2, 1) backwards;
  }

  #streak-view:not([hidden]) .mv7-streak-rail section:nth-child(1) {
    animation-delay: 290ms;
  }

  #streak-view:not([hidden]) .mv7-streak-rail section:nth-child(2) {
    animation-delay: 350ms;
  }

  #streak-view:not([hidden]) .mv7-streak-rail section:nth-child(3) {
    animation-delay: 410ms;
  }

  #streak-view .mv7-streak-hero article,
  #streak-view .mv7-missions-card,
  #streak-view .mv7-streak-completed,
  #streak-view .mv7-streak-rail section {
    transition:
      border-color 220ms ease,
      box-shadow 220ms ease,
      transform 220ms ease,
      background-color 220ms ease;
  }

  #streak-view .mv7-streak-hero article:hover,
  #streak-view .mv7-missions-card:hover,
  #streak-view .mv7-streak-completed:hover,
  #streak-view .mv7-streak-rail section:hover {
    border-color: rgba(183, 124, 246, 0.34);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.08),
      0 18px 42px rgba(0, 0, 0, 0.22),
      0 0 34px rgba(145, 86, 216, 0.055);
    transform: translateY(-2px);
  }

  #streak-view .mv7-streak-flame {
    position: relative;
    isolation: isolate;
    animation: mv7-streak-orbit 5.4s ease-in-out infinite;
  }

  #streak-view .mv7-streak-flame::before,
  #streak-view .mv7-streak-flame::after {
    position: absolute;
    z-index: -1;
    border-radius: 50%;
    content: '';
    pointer-events: none;
  }

  #streak-view .mv7-streak-flame::before {
    inset: 8px;
    background: radial-gradient(circle, rgba(187, 106, 255, 0.2), transparent 67%);
    animation: mv7-streak-aura 2.8s ease-in-out infinite;
  }

  #streak-view .mv7-streak-flame::after {
    inset: -16px;
    border: 1px solid rgba(190, 119, 255, 0.1);
    animation: mv7-streak-ring 3.4s ease-out infinite;
  }

  #streak-view .mv7-streak-flame svg {
    animation: mv7-streak-fire 2.2s ease-in-out infinite;
  }

  #streak-view .mv7-level-badge {
    position: relative;
    overflow: hidden;
    animation: mv7-streak-badge 3.8s ease-in-out infinite;
  }

  #streak-view .mv7-level-badge::after {
    position: absolute;
    width: 22px;
    height: 130%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.26), transparent);
    content: '';
    transform: translateX(-58px) rotate(18deg);
    animation: mv7-streak-badge-shine 4.8s ease-in-out infinite;
  }

  #streak-view:not([hidden]) #streak-xp-progress,
  #streak-view:not([hidden]) .mv7-mission-progress u {
    transform-origin: left center;
    animation: mv7-streak-progress 820ms cubic-bezier(0.2, 0.82, 0.2, 1) backwards;
  }

  #streak-view:not([hidden]) #streak-xp-progress {
    animation-delay: 420ms;
  }

  #streak-view:not([hidden]) .mv7-mission-progress u {
    animation-delay: calc(420ms + var(--mission-index, 0) * 65ms);
  }

  #streak-view:not([hidden]) .mv7-streak-week span,
  #streak-view:not([hidden]) .mv7-challenge-days span {
    animation: mv7-streak-day 360ms cubic-bezier(0.16, 1.35, 0.3, 1) backwards;
    animation-delay: calc(300ms + var(--day-index, 0) * 42ms);
  }

  #streak-view .mv7-streak-week .is-done i,
  #streak-view .mv7-challenge-days .is-done i {
    animation: mv7-streak-check-glow 2.6s ease-in-out infinite;
  }

  #streak-view:not([hidden]) .mv7-mission-row {
    animation: mv7-streak-row-in 460ms cubic-bezier(0.2, 0.82, 0.2, 1) backwards;
    animation-delay: calc(300ms + var(--mission-index, 0) * 65ms);
    transition:
      border-color 180ms ease,
      background-color 180ms ease,
      box-shadow 180ms ease,
      transform 180ms ease;
  }

  #streak-view .mv7-mission-row:hover {
    border-color: rgba(175, 106, 241, 0.34);
    background: rgba(167, 96, 236, 0.045);
    box-shadow: inset 2px 0 rgba(181, 105, 243, 0.58);
    transform: translateX(4px);
  }

  #streak-view .mv7-mission-row > span,
  #streak-view .mv7-mission-row > span svg,
  #streak-view .mv7-mission-row > button {
    transition:
      color 180ms ease,
      border-color 180ms ease,
      background-color 180ms ease,
      transform 180ms ease;
  }

  #streak-view .mv7-mission-row:hover > span {
    background: rgba(179, 103, 245, 0.19);
    transform: scale(1.06) rotate(-3deg);
  }

  #streak-view .mv7-mission-row:hover > span svg {
    transform: scale(1.08);
  }

  #streak-view .mv7-mission-row > button:not(:disabled):hover {
    border-color: rgba(184, 112, 246, 0.42);
    background: rgba(174, 99, 239, 0.12);
    color: #d9baff;
    transform: translateY(-1px);
  }

  #streak-view .mv7-streak-primary {
    position: relative;
    overflow: hidden;
    transition:
      box-shadow 200ms ease,
      transform 200ms ease,
      filter 200ms ease;
  }

  #streak-view .mv7-streak-primary::after {
    position: absolute;
    top: -70%;
    left: -30px;
    width: 20px;
    height: 240%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    content: '';
    transform: rotate(20deg);
    animation: mv7-streak-button-shine 5s ease-in-out infinite;
    pointer-events: none;
  }

  #streak-view .mv7-streak-primary:hover {
    filter: saturate(1.12) brightness(1.06);
    box-shadow: 0 16px 32px -12px rgba(155, 86, 255, 0.72);
    transform: translateY(-2px);
  }

  #streak-view .mv7-weekly-challenge header svg {
    animation: mv7-streak-target 3.2s ease-in-out infinite;
    transform-origin: center;
  }

  #streak-view:not([hidden]) .mv7-month-rhythm > div i {
    animation: mv7-streak-heat-in 300ms cubic-bezier(0.16, 1.25, 0.3, 1) backwards;
    animation-delay: calc(420ms + var(--heat-index, 0) * 18ms);
    transition:
      filter 150ms ease,
      transform 150ms ease;
  }

  #streak-view .mv7-month-rhythm > div i:hover {
    filter: brightness(1.45);
    transform: scale(1.22);
  }

  #streak-view .mv7-month-rhythm > div i.is-high {
    animation-name: mv7-streak-heat-in, mv7-streak-heat-glow;
    animation-duration: 300ms, 2.8s;
    animation-delay: calc(420ms + var(--heat-index, 0) * 18ms), 1.1s;
    animation-iteration-count: 1, infinite;
  }

  #streak-view .mv7-streak-completed p {
    transition:
      color 170ms ease,
      padding 170ms ease,
      background-color 170ms ease;
  }

  #streak-view .mv7-streak-completed p:hover {
    padding-inline: 8px;
    background: rgba(169, 94, 235, 0.04);
    color: #d9c6ec;
  }

  @keyframes mv7-streak-rise {
    from {
      opacity: 0;
      transform: translateY(14px) scale(0.992);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  @keyframes mv7-streak-row-in {
    from {
      opacity: 0;
      transform: translateX(-12px);
    }
    to {
      opacity: 1;
      transform: translateX(0);
    }
  }

  @keyframes mv7-streak-orbit {
    0%,
    100% {
      transform: rotate(-20deg) translateY(0);
    }
    50% {
      transform: rotate(-17deg) translateY(-5px);
    }
  }

  @keyframes mv7-streak-fire {
    0%,
    100% {
      filter: drop-shadow(0 0 10px rgba(178, 93, 255, 0.42));
      transform: rotate(20deg) scale(1);
    }
    48% {
      filter: drop-shadow(0 0 18px rgba(229, 112, 186, 0.62));
      transform: rotate(19deg) scale(1.075);
    }
    64% {
      transform: rotate(21deg) scale(1.035);
    }
  }

  @keyframes mv7-streak-aura {
    0%,
    100% {
      opacity: 0.46;
      transform: scale(0.92);
    }
    50% {
      opacity: 0.92;
      transform: scale(1.08);
    }
  }

  @keyframes mv7-streak-ring {
    0% {
      opacity: 0;
      transform: scale(0.8);
    }
    28% {
      opacity: 0.45;
    }
    100% {
      opacity: 0;
      transform: scale(1.16);
    }
  }

  @keyframes mv7-streak-badge {
    0%,
    100% {
      filter: drop-shadow(0 7px 15px rgba(128, 74, 190, 0.16));
      transform: translateY(0);
    }
    50% {
      filter: drop-shadow(0 10px 20px rgba(170, 94, 233, 0.3));
      transform: translateY(-3px);
    }
  }

  @keyframes mv7-streak-badge-shine {
    0%,
    62% {
      transform: translateX(-58px) rotate(18deg);
    }
    82%,
    100% {
      transform: translateX(70px) rotate(18deg);
    }
  }

  @keyframes mv7-streak-progress {
    from {
      opacity: 0.45;
      transform: scaleX(0);
    }
    to {
      opacity: 1;
      transform: scaleX(1);
    }
  }

  @keyframes mv7-streak-day {
    from {
      opacity: 0;
      transform: translateY(7px) scale(0.72);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  @keyframes mv7-streak-check-glow {
    0%,
    100% {
      box-shadow: 0 0 8px rgba(153, 83, 244, 0.22);
    }
    50% {
      box-shadow: 0 0 16px rgba(153, 83, 244, 0.48);
    }
  }

  @keyframes mv7-streak-button-shine {
    0%,
    70% {
      left: -30px;
      opacity: 0;
    }
    76% {
      opacity: 0.85;
    }
    90%,
    100% {
      left: calc(100% + 24px);
      opacity: 0;
    }
  }

  @keyframes mv7-streak-target {
    0%,
    100% {
      filter: drop-shadow(0 0 0 rgba(188, 112, 246, 0));
      transform: scale(1);
    }
    50% {
      filter: drop-shadow(0 0 8px rgba(188, 112, 246, 0.5));
      transform: scale(1.1);
    }
  }

  @keyframes mv7-streak-heat-in {
    from {
      opacity: 0;
      transform: scale(0.35);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  @keyframes mv7-streak-heat-glow {
    0%,
    100% {
      box-shadow: 0 0 6px rgba(63, 201, 118, 0.18);
    }
    50% {
      box-shadow: 0 0 13px rgba(63, 201, 118, 0.46);
    }
  }
}

@media (min-width: 769px) and (prefers-reduced-motion: reduce) {
  #streak-view *,
  #streak-view *::before,
  #streak-view *::after {
    animation: none !important;
    transition: none !important;
  }

  #streak-view .mv7-streak-flame {
    transform: rotate(-20deg) !important;
  }

  #streak-view .mv7-streak-flame svg {
    transform: rotate(20deg) !important;
  }
}

/* Mensajes contextuales por hora: visibles, breves y sin competir con el título. */
#streak-time-message,
#calendar-time-message {
  display: flex;
  align-items: center;
  gap: 8px;
}

#streak-time-message::before,
#calendar-time-message::before {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #8baeff;
  box-shadow: 0 0 9px rgba(139, 174, 255, 0.34);
  content: '';
}

#streak-time-message[data-day-period='morning']::before,
#calendar-time-message[data-day-period='morning']::before {
  background: #f0bd70;
  box-shadow: 0 0 9px rgba(240, 189, 112, 0.34);
}

#streak-time-message[data-day-period='afternoon']::before,
#calendar-time-message[data-day-period='afternoon']::before {
  background: #69d4ab;
  box-shadow: 0 0 9px rgba(105, 212, 171, 0.3);
}

#streak-time-message[data-day-period='evening']::before,
#calendar-time-message[data-day-period='evening']::before {
  background: #bf8ef0;
  box-shadow: 0 0 9px rgba(191, 142, 240, 0.34);
}

/* Inicio mobile v16: "Ã³rbita financiera".
   Esta capa final mantiene el DOM y la funcionalidad del dashboard, pero le
   da a Inicio una silueta propia: horizonte de balance, cifras suspendidas y
   un dock compacto de acciones. */
@media (max-width: 768px) {
  body[data-v2-view='overview'] {
    --mv7-home-blue: #82adff;
    --mv7-home-violet: #a98cff;
    --mv7-home-ink: rgba(9, 13, 23, 0.94);
    background:
      radial-gradient(circle at 104% 17%, rgba(74, 115, 222, 0.24), transparent 19rem),
      radial-gradient(circle at -10% 49%, rgba(133, 86, 217, 0.13), transparent 22rem),
      linear-gradient(165deg, #070a10 0%, #0b0e18 48%, #070a10 100%);
    background-attachment: fixed;
  }

  body[data-v2-view='overview'] .mv7-topbar {
    border-bottom-color: rgba(131, 174, 255, 0.13);
    background: rgba(7, 10, 16, 0.79);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
  }

  body[data-v2-view='overview'] .mv7-topbar::after {
    right: 42%;
    left: 14px;
    background: linear-gradient(90deg, var(--mv7-home-blue), rgba(169, 140, 255, 0.25), transparent);
    opacity: 0.65;
  }

  body[data-v2-view='overview'] .mv7-menu-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-avatar {
    border-color: transparent;
    background: rgba(255, 255, 255, 0.035);
    box-shadow: none;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand-mark {
    width: 24px;
    height: 29px;
    flex-basis: 24px;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand-mark i {
    background: linear-gradient(135deg, #f5f8ff 0%, #8db5ff 52%, #a68cff 100%);
    box-shadow: 0 0 18px rgba(119, 166, 255, 0.4);
  }

  body[data-v2-view='overview'] .mv7-mobile-brand strong {
    font-weight: 720;
    letter-spacing: -0.045em;
  }

  #overview-view.mv7-content {
    gap: 16px;
    padding: 18px 14px calc(38px + env(safe-area-inset-bottom));
  }

  /* La integraciÃ³n deja de competir con el balance y se lee como un aviso. */
  #overview-view .mv7-whatsapp-cta-card {
    position: relative;
    display: grid;
    min-height: 70px;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 12px;
    margin: 0;
    padding: 12px 48px 12px 15px;
    overflow: hidden;
    border: 1px solid rgba(104, 214, 171, 0.2);
    border-radius: 18px 7px 18px 18px;
    background:
      radial-gradient(circle at 0 50%, rgba(66, 211, 153, 0.14), transparent 9rem),
      rgba(15, 22, 25, 0.74);
    text-align: left;
    box-shadow: inset 3px 0 rgba(79, 219, 163, 0.72);
  }

  #overview-view .mv7-whatsapp-cta-card[hidden] {
    display: none;
  }

  #overview-view .mv7-whatsapp-cta-body h3 {
    margin: 0 0 3px;
    font-size: 14px;
    font-weight: 680;
  }

  #overview-view .mv7-whatsapp-cta-body p {
    max-width: 31ch;
    overflow: hidden;
    font-size: 11px;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #overview-view .mv7-whatsapp-cta-card .mv7-primary-button {
    width: auto;
    min-height: 36px;
    padding: 0 12px;
    border-color: rgba(93, 225, 172, 0.28);
    border-radius: 10px;
    background: rgba(72, 205, 151, 0.12);
    color: #a8efd2;
    font-size: 0;
    box-shadow: none;
  }

  #overview-view .mv7-whatsapp-cta-card .mv7-primary-button::after {
    font-size: 11px;
    font-weight: 700;
    content: 'Conectar';
  }

  #overview-view .mv7-whatsapp-cta-dismiss {
    top: 15px;
    right: 8px;
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
  }

  /* Encabezado editorial: la fecha funciona como coordenada del panorama. */
  #overview-view .mv7-section-heading > div:first-child {
    position: relative;
    min-height: 94px;
    padding: 2px 94px 0 2px;
  }

  #overview-view .mv7-section-heading > div:first-child::before,
  #overview-view .mv7-section-heading > div:first-child::after {
    position: absolute;
    pointer-events: none;
    content: '';
  }

  #overview-view .mv7-section-heading > div:first-child::before {
    top: 3px;
    right: 6px;
    width: 72px;
    height: 72px;
    border: 1px solid rgba(137, 175, 255, 0.24);
    border-radius: 50%;
    background:
      radial-gradient(circle, rgba(154, 184, 255, 0.76) 0 3px, transparent 4px),
      conic-gradient(from 205deg, transparent 0 58%, rgba(133, 174, 255, 0.72) 69%, transparent 80%);
    box-shadow:
      inset 0 0 28px rgba(105, 141, 239, 0.08),
      0 0 35px rgba(91, 125, 220, 0.09);
  }

  #overview-view .mv7-section-heading > div:first-child::after {
    top: 21px;
    right: 24px;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(175, 148, 255, 0.3);
    border-radius: 50%;
    transform: rotate(-24deg);
  }

  #overview-view .mv7-eyebrow {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: 6px;
    margin: 0 0 9px;
    color: #9abaff;
    font-family: var(--v2-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
  }

  #overview-view .mv7-eyebrow::before {
    width: 17px;
    height: 1px;
    background: linear-gradient(90deg, #8eb4ff, #af8cff);
    content: '';
  }

  #overview-view .mv7-section-heading h2 {
    font-size: clamp(27px, 7.7vw, 34px);
    line-height: 1.02;
    letter-spacing: -0.048em;
  }

  #overview-view .mv7-overview-time-subtitle {
    max-width: 28ch;
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.4;
  }

  /* Hero de balance con una lÃ­nea de horizonte propia de Zenit. */
  #overview-view .mv7-metric-grid {
    position: relative;
    isolation: isolate;
    gap: 10px;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #overview-view .mv7-metric-primary {
    position: relative;
    z-index: 1;
    min-height: 208px;
    padding: 20px 20px 82px;
    overflow: hidden;
    border: 1px solid rgba(128, 169, 255, 0.24);
    border-radius: 30px 30px 30px 9px;
    background:
      radial-gradient(circle at 92% 15%, rgba(129, 166, 255, 0.2), transparent 10rem),
      radial-gradient(circle at 15% 120%, rgba(159, 115, 241, 0.16), transparent 13rem),
      linear-gradient(145deg, rgba(31, 43, 72, 0.94), rgba(12, 17, 29, 0.97));
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.12),
      0 24px 58px -28px rgba(57, 91, 191, 0.72);
  }

  #overview-view .mv7-metric-primary::before,
  #overview-view .mv7-metric-primary::after {
    position: absolute;
    display: block;
    pointer-events: none;
    content: '';
  }

  #overview-view .mv7-metric-primary::before {
    right: -62px;
    bottom: -135px;
    width: 285px;
    height: 285px;
    border: 1px solid rgba(141, 175, 255, 0.2);
    border-radius: 50%;
    box-shadow:
      0 0 0 22px rgba(128, 163, 255, 0.025),
      0 0 0 48px rgba(166, 128, 245, 0.018);
  }

  #overview-view .mv7-metric-primary::after {
    right: 0;
    bottom: 54px;
    left: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(142, 178, 255, 0.7), transparent);
    box-shadow: 0 0 14px rgba(118, 161, 255, 0.35);
  }

  #overview-view .mv7-metric-primary .mv7-metric-head,
  #overview-view .mv7-metric-primary > strong {
    position: relative;
    z-index: 2;
  }

  #overview-view .mv7-metric-primary .mv7-metric-head h3 {
    color: rgba(238, 243, 255, 0.72);
    font-family: var(--v2-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #overview-view .mv7-metric-primary .mv7-metric-icon {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
    border: 1px solid rgba(143, 180, 255, 0.26);
    border-radius: 50%;
    background: rgba(136, 174, 255, 0.09);
    color: #a6c5ff;
  }

  #overview-view .mv7-metric-primary > strong {
    margin-top: 26px;
    font-size: clamp(31px, 9.3vw, 40px);
    font-weight: 710;
    letter-spacing: -0.055em;
  }

  #overview-view .mv7-metric-income,
  #overview-view .mv7-metric-expense {
    position: relative;
    z-index: 3;
    min-height: 96px;
    margin-top: -67px;
    padding: 14px 15px 13px;
    border: 1px solid rgba(255, 255, 255, 0.105);
    border-radius: 18px;
    background: rgba(8, 12, 20, 0.77);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.08),
      0 18px 35px -22px rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(18px) saturate(130%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
  }

  #overview-view .mv7-metric-income {
    margin-left: 10px;
    border-top-color: rgba(82, 219, 166, 0.35);
  }

  #overview-view .mv7-metric-expense {
    margin-right: 10px;
    border-top-color: rgba(245, 164, 104, 0.34);
  }

  #overview-view .mv7-metric-income .mv7-metric-icon,
  #overview-view .mv7-metric-expense .mv7-metric-icon {
    width: 29px;
    height: 29px;
    flex-basis: 29px;
    border: 0;
    border-radius: 9px;
  }

  #overview-view .mv7-metric-income .mv7-metric-head h3,
  #overview-view .mv7-metric-expense .mv7-metric-head h3 {
    font-size: 11px;
    font-weight: 650;
  }

  #overview-view .mv7-metric-income > strong,
  #overview-view .mv7-metric-expense > strong {
    margin-top: 11px;
    font-family: var(--v2-mono);
    font-size: clamp(13px, 3.9vw, 16px);
    font-weight: 680;
    letter-spacing: -0.035em;
  }

  /* Dock de acciones: una sola pieza, no cuatro burbujas sueltas. */
  #overview-view .mv7-quick-actions-row {
    position: relative;
    gap: 2px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, 0.095);
    border-radius: 24px 24px 8px 24px;
    background: rgba(11, 15, 24, 0.68);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.07),
      0 20px 45px -30px rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  #overview-view .mv7-quick-actions-row::before {
    position: absolute;
    top: -1px;
    right: 28%;
    left: 28%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(153, 182, 255, 0.7), transparent);
    content: '';
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn {
    min-height: 66px;
    gap: 5px;
    padding: 4px 1px 2px;
    border-radius: 16px;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn:active {
    background: rgba(255, 255, 255, 0.055);
    transform: translateY(1px);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn svg {
    width: 38px;
    height: 38px;
    padding: 10px;
    border-radius: 13px;
  }

  #overview-view .mv7-quick-action-label {
    color: rgba(235, 239, 248, 0.75);
    font-size: 9px;
    letter-spacing: 0.01em;
  }

  /* Los mÃ³dulos secundarios continÃºan la geometrÃ­a, sin repetir el hero. */
  #overview-view .mv7-cashflow-panel,
  #overview-view .mv7-overview-budget-panel,
  #overview-view .mv7-activity-panel {
    border-color: rgba(255, 255, 255, 0.1);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 52%),
      rgba(12, 16, 25, 0.72);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.075),
      0 24px 48px -34px rgba(0, 0, 0, 0.9);
  }

  #overview-view .mv7-cashflow-panel {
    border-radius: 28px 9px 28px 28px;
  }

  #overview-view .mv7-cashflow-panel .mv7-main-chart {
    height: 152px;
  }

  #overview-view .mv7-cashflow-panel .mv7-chart-axis {
    height: 126px;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header h3,
  #overview-view .mv7-overview-budget-panel .mv7-panel-header h3,
  #overview-view .mv7-activity-panel .mv7-panel-header h3 {
    font-size: 15px;
    letter-spacing: -0.02em;
  }

  #overview-view .mv7-mobile-cashflow-period select {
    border-color: rgba(255, 255, 255, 0.09);
    border-radius: 12px 5px 12px 12px;
    background: rgba(255, 255, 255, 0.035);
  }

  #overview-view .mv7-overview-budget-panel {
    border-radius: 9px 24px 24px 24px;
  }

  #overview-view .mv7-overview-budget-track {
    height: 4px;
    background: rgba(255, 255, 255, 0.075);
  }

  #overview-view .mv7-activity-panel {
    border-radius: 24px 24px 9px 24px;
  }

  #overview-view .mv7-transaction-row + .mv7-transaction-row {
    border-top: 1px solid rgba(255, 255, 255, 0.055);
  }
}

@media (max-width: 370px) {
  #overview-view .mv7-section-heading > div:first-child {
    padding-right: 76px;
  }

  #overview-view .mv7-section-heading > div:first-child::before {
    right: 0;
    width: 62px;
    height: 62px;
  }

  #overview-view .mv7-section-heading > div:first-child::after {
    top: 18px;
    right: 16px;
    width: 29px;
    height: 29px;
  }

  #overview-view .mv7-whatsapp-cta-card {
    grid-template-columns: minmax(0, 1fr);
  }

  #overview-view .mv7-whatsapp-cta-card .mv7-primary-button {
    display: inline-flex;
    width: fit-content;
    min-width: 92px;
    justify-self: start;
  }

  #overview-view .mv7-metric-primary > strong {
    font-size: clamp(28px, 9vw, 34px);
  }

  #overview-view .mv7-metric-income,
  #overview-view .mv7-metric-expense {
    padding-inline: 11px;
  }
}

/* Inicio mobile v17: implementaciÃ³n funcional del concepto clear-glass.
   Los elementos auxiliares no participan en escritorio. */
.mv7-mobile-overview-greeting,
.mv7-mobile-balance-orbit,
.mv7-overview-insight,
.mv7-transaction-token-icon {
  display: none;
}

@media (max-width: 768px) {
  body[data-v2-view='overview'] {
    --mv7-home-expense: #58a6ff;
    --mv7-home-income: #72db84;
    --mv7-home-transfer: #9c82ea;
    --mv7-home-amber: #e8b84e;
    --mv7-home-blue: #70a7ea;
    --mv7-home-plum: #a58dcc;
    background:
      radial-gradient(circle at 82% 13%, rgba(255, 255, 255, 0.055), transparent 15rem),
      radial-gradient(circle at 12% 43%, rgba(255, 255, 255, 0.035), transparent 19rem),
      linear-gradient(160deg, #050607 0%, #0a0b0d 48%, #050607 100%);
    background-attachment: fixed;
  }

  body[data-v2-view='overview'] .mv7-workspace {
    background: transparent;
  }

  body[data-v2-view='overview'] .mv7-topbar {
    display: grid;
    min-height: calc(72px + env(safe-area-inset-top));
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: max(12px, env(safe-area-inset-top)) 18px 11px;
    border-bottom: 0;
    background: rgba(5, 6, 7, 0.76);
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(22px) saturate(115%);
    -webkit-backdrop-filter: blur(22px) saturate(115%);
  }

  body[data-v2-view='overview'] .mv7-topbar::after {
    display: none;
  }

  body[data-v2-view='overview'] .mv7-mobile-topbar-start {
    min-width: 0;
    grid-column: 1;
  }

  body[data-v2-view='overview'] .mv7-menu-button,
  body[data-v2-view='overview'] .mv7-topbar .mv7-avatar {
    display: none;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand {
    gap: 8px;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand-mark {
    width: 22px;
    height: 27px;
    flex-basis: 22px;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand-mark i {
    background: linear-gradient(135deg, #f4f7ff, var(--mv7-mobile-accent));
    box-shadow: 0 0 14px var(--mv7-mobile-glow);
  }

  body[data-v2-view='overview'] .mv7-mobile-brand strong {
    font-size: 20px;
    font-weight: 680;
    letter-spacing: -0.04em;
  }

  body[data-v2-view='overview'] .mv7-topbar-actions {
    grid-column: 2;
    gap: 8px;
  }

  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button {
    display: grid;
    width: 44px;
    height: 44px;
    flex-basis: 44px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.08), transparent 45%),
      rgba(255, 255, 255, 0.025);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.24),
      inset 0 -1px rgba(255, 255, 255, 0.04),
      0 9px 20px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
  }

  body[data-v2-view='overview'] #privacy-toggle {
    color: var(--mv7-home-expense);
  }

  body[data-v2-view='overview'] #notification-bell {
    color: var(--mv7-home-amber);
  }

  body[data-v2-view='overview'] #notification-badge {
    background: #df805f;
    box-shadow: 0 0 0 2px #090a0b;
  }

  #overview-view.mv7-content {
    display: flex;
    flex-direction: column;
    gap: 17px;
    padding: 24px 14px calc(38px + env(safe-area-inset-bottom));
  }

  #overview-view.mv7-content[hidden] {
    display: none;
  }

  #overview-view .mv7-section-heading {
    display: contents;
  }

  #overview-view .mv7-section-heading > div:first-child {
    position: relative;
    min-height: 126px;
    order: 1;
    padding: 1px 4px 0;
  }

  #overview-view .mv7-section-heading > div:first-child::before,
  #overview-view .mv7-section-heading > div:first-child::after {
    display: none;
  }

  #overview-view .mv7-eyebrow {
    display: block;
    margin: 0 0 16px;
    color: rgba(218, 222, 229, 0.58);
    font-family: var(--v2-font);
    font-size: 10px;
    font-weight: 580;
    letter-spacing: 0.14em;
  }

  #overview-view .mv7-eyebrow::before {
    display: none;
  }

  #overview-view #overview-time-message {
    display: none;
  }

  #overview-view .mv7-mobile-overview-greeting {
    display: block;
    max-width: 100%;
    margin: 0;
    color: #f6f7f9;
    font-size: clamp(29px, 8.3vw, 38px);
    font-weight: 480;
    line-height: 1.04;
    letter-spacing: -0.052em;
  }

  #overview-view .mv7-overview-time-subtitle {
    display: block;
    margin: 11px 0 0;
    color: rgba(211, 216, 224, 0.55);
    font-size: 15px;
    line-height: 1.4;
  }

  #overview-view .mv7-heading-tools {
    display: contents;
  }

  #overview-view .mv7-preview-badge,
  #overview-view .mv7-period-control,
  #overview-view .mv7-heading-icon-tools,
  #overview-view #open-composer {
    display: none;
  }

  #overview-view .mv7-metric-grid {
    position: relative;
    isolation: isolate;
    order: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: visible;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  #overview-view .mv7-metric-grid::after {
    position: absolute;
    right: 9%;
    bottom: 9px;
    left: 9%;
    z-index: 2;
    height: 84px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 22px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 45%),
      rgba(4, 5, 6, 0.5);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.12),
      0 14px 24px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(22px) saturate(110%);
    -webkit-backdrop-filter: blur(22px) saturate(110%);
    content: '';
  }

  #overview-view .mv7-metric {
    width: auto;
    min-width: 0;
    border-radius: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  #overview-view .mv7-metric::before,
  #overview-view .mv7-metric::after,
  #overview-view .mv7-metric > p,
  #overview-view .mv7-metric .mv7-metric-tag,
  #overview-view .mv7-metric .mv7-sparkline {
    display: none;
  }

  #overview-view .mv7-metric-primary {
    position: relative;
    z-index: 1;
    min-height: 284px;
    grid-column: 1 / -1;
    padding: 29px 18px 105px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 28px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.065), transparent 39%),
      rgba(255, 255, 255, 0.018);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.28),
      inset 0 -1px rgba(255, 255, 255, 0.05),
      0 24px 52px -32px rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(24px) saturate(112%);
    -webkit-backdrop-filter: blur(24px) saturate(112%);
  }

  #overview-view .mv7-metric-primary .mv7-metric-head {
    position: relative;
    z-index: 4;
    display: block;
    text-align: center;
  }

  #overview-view .mv7-metric-primary .mv7-metric-icon {
    display: none;
  }

  #overview-view .mv7-metric-primary .mv7-metric-head h3 {
    color: var(--mv7-home-blue);
    font-family: var(--v2-font);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  #overview-view .mv7-metric-primary > strong {
    position: relative;
    z-index: 4;
    display: block;
    margin: 21px 0 0;
    overflow: hidden;
    color: #f7f8fa;
    font-size: clamp(31px, 9.5vw, 42px);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.06em;
    text-align: center;
    text-overflow: ellipsis;
  }

  #overview-view .mv7-metric-primary .mv7-change {
    position: relative;
    z-index: 4;
    display: flex;
    width: fit-content;
    align-items: center;
    gap: 4px;
    min-height: 32px;
    padding: 0 11px;
    margin: 16px auto 0;
    border: 1px solid rgba(114, 219, 132, 0.12);
    border-radius: 999px;
    background: rgba(114, 219, 132, 0.055);
    color: #a8d9b0;
    font-size: 10px;
  }

  #overview-view .mv7-metric-primary .mv7-change b {
    font-size: 11px;
    font-weight: 650;
  }

  #overview-view .mv7-metric-primary .mv7-change span {
    font-size: 0;
  }

  #overview-view .mv7-metric-primary .mv7-change span::after {
    font-size: 10px;
    content: 'este mes';
  }

  #overview-view .mv7-mobile-balance-orbit {
    position: absolute;
    right: 0;
    bottom: 54px;
    left: 0;
    z-index: 1;
    display: block;
    height: 126px;
    overflow: hidden;
    pointer-events: none;
  }

  #overview-view .mv7-mobile-balance-orbit i {
    position: absolute;
    top: 40px;
    left: -12%;
    width: 124%;
    height: 116px;
    border-top: 2px solid var(--mv7-home-blue);
    border-radius: 50%;
    box-shadow: 0 -3px 12px rgba(88, 166, 255, 0.16);
  }

  #overview-view .mv7-mobile-balance-orbit i::after {
    position: absolute;
    top: -2px;
    right: 16%;
    width: 28%;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--mv7-home-plum), transparent);
    content: '';
  }

  #overview-view .mv7-mobile-balance-orbit span {
    position: absolute;
    top: 35px;
    left: 50%;
    width: 10px;
    height: 10px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--mv7-home-plum);
    box-shadow: 0 0 12px rgba(165, 141, 204, 0.42);
    transform: translateX(-50%);
  }

  #overview-view .mv7-mobile-balance-orbit span::after {
    position: absolute;
    top: 10px;
    left: 50%;
    width: 1px;
    height: 56px;
    background: repeating-linear-gradient(to bottom, rgba(255, 255, 255, 0.7) 0 4px, transparent 4px 8px);
    content: '';
  }

  #overview-view .mv7-mobile-balance-orbit b {
    position: absolute;
    top: 96px;
    right: 16%;
    left: 16%;
    height: 22px;
    background: repeating-linear-gradient(90deg, transparent 0 8px, rgba(255, 255, 255, 0.28) 8px 9px);
    mask-image: linear-gradient(90deg, transparent, black 14%, black 86%, transparent);
    opacity: 0.75;
  }

  #overview-view .mv7-metric-income,
  #overview-view .mv7-metric-expense {
    position: relative;
    z-index: 3;
    min-height: 84px;
    margin-top: -93px;
    padding: 13px 10px 11px;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  #overview-view .mv7-metric-income {
    margin-left: 11%;
    border-right: 1px solid rgba(255, 255, 255, 0.13);
  }

  #overview-view .mv7-metric-expense {
    margin-right: 11%;
  }

  #overview-view .mv7-metric-income .mv7-metric-head,
  #overview-view .mv7-metric-expense .mv7-metric-head {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  #overview-view .mv7-metric-income .mv7-metric-icon,
  #overview-view .mv7-metric-expense .mv7-metric-icon {
    display: grid;
    width: 31px;
    height: 31px;
    flex-basis: 31px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: transparent;
  }

  #overview-view .mv7-metric-income .mv7-metric-icon {
    color: var(--mv7-home-income);
  }

  #overview-view .mv7-metric-expense .mv7-metric-icon {
    color: var(--mv7-home-expense);
  }

  #overview-view .mv7-metric-income .mv7-metric-icon svg,
  #overview-view .mv7-metric-expense .mv7-metric-icon svg {
    width: 15px;
    height: 15px;
  }

  #overview-view .mv7-metric-income .mv7-metric-head h3,
  #overview-view .mv7-metric-expense .mv7-metric-head h3 {
    font-size: 9px;
    font-weight: 670;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #overview-view .mv7-metric-income .mv7-metric-head h3 {
    color: var(--mv7-home-income);
  }

  #overview-view .mv7-metric-expense .mv7-metric-head h3 {
    color: var(--mv7-home-expense);
  }

  #overview-view .mv7-metric-income > strong,
  #overview-view .mv7-metric-expense > strong {
    display: block;
    margin: 7px 0 0 39px;
    overflow: hidden;
    color: #f4f5f7;
    font-size: clamp(12px, 3.5vw, 15px);
    font-weight: 610;
    letter-spacing: -0.035em;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #overview-view .mv7-metric-income .mv7-change,
  #overview-view .mv7-metric-expense .mv7-change {
    display: none;
  }

  #overview-view .mv7-quick-actions-row {
    position: relative;
    order: 3;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    padding: 8px 5px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 23px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.06), transparent 45%),
      rgba(255, 255, 255, 0.02);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.22),
      inset 0 -1px rgba(255, 255, 255, 0.04),
      0 18px 32px -26px rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(22px) saturate(110%);
    -webkit-backdrop-filter: blur(22px) saturate(110%);
  }

  #overview-view .mv7-quick-actions-row::before {
    display: none;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn {
    position: relative;
    min-height: 70px;
    gap: 5px;
    padding: 5px 2px 3px;
    overflow: visible;
    border: 0;
    border-radius: 14px;
    background: transparent;
    box-shadow: none;
    color: var(--qa-color, rgba(238, 241, 245, 0.72));
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn + .mv7-quick-action-btn::before {
    position: absolute;
    top: 14px;
    bottom: 14px;
    left: 0;
    width: 1px;
    background: rgba(255, 255, 255, 0.11);
    content: '';
  }

  #overview-view .mv7-quick-action-btn[data-quick-action='ingreso'] {
    --qa-color: var(--mv7-home-income);
  }

  #overview-view .mv7-quick-action-btn[data-quick-action='gasto'] {
    --qa-color: var(--mv7-home-expense);
  }

  #overview-view .mv7-quick-action-btn[data-quick-action='transfer'] {
    --qa-color: var(--mv7-home-transfer);
  }

  #overview-view .mv7-quick-action-btn[data-quick-action='mas'] {
    --qa-color: var(--mv7-home-amber);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn svg {
    width: 34px;
    height: 34px;
    padding: 7px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--qa-color);
    stroke: var(--qa-color);
  }

  #overview-view .mv7-quick-action-label {
    color: rgba(244, 245, 247, 0.84);
    font-size: 9px;
    font-weight: 540;
  }

  #overview-view .mv7-overview-insight {
    position: relative;
    order: 4;
    display: grid;
    min-height: 108px;
    grid-template-columns: 44px minmax(0, 1fr) minmax(122px, 40%);
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, 0.19);
    border-radius: 23px;
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 46%),
      rgba(255, 255, 255, 0.018);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.2),
      0 18px 36px -28px rgba(0, 0, 0, 0.88);
    backdrop-filter: blur(22px) saturate(110%);
    -webkit-backdrop-filter: blur(22px) saturate(110%);
  }

  #overview-view .mv7-overview-insight-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 1px solid rgba(156, 130, 234, 0.26);
    border-radius: 50%;
    background: rgba(156, 130, 234, 0.07);
    color: var(--mv7-home-transfer);
  }

  #overview-view .mv7-overview-insight-icon svg {
    width: 21px;
    height: 21px;
  }

  #overview-view .mv7-overview-insight-copy {
    min-width: 0;
  }

  #overview-view .mv7-overview-insight-copy small {
    display: block;
    margin-bottom: 5px;
    color: var(--mv7-home-transfer);
    font-size: 9px;
    font-weight: 680;
    letter-spacing: 0.1em;
  }

  #overview-view .mv7-overview-insight-copy p {
    margin: 0;
    color: #f0f1f3;
    font-size: 13px;
    line-height: 1.24;
  }

  #overview-view .mv7-overview-insight-bars {
    display: grid;
    min-width: 0;
    gap: 8px;
  }

  #overview-view .mv7-overview-insight-bars > div {
    display: grid;
    grid-template-columns: 38px minmax(34px, 1fr) minmax(42px, auto);
    align-items: center;
    gap: 6px;
    color: rgba(217, 221, 228, 0.55);
    font-size: 8px;
  }

  #overview-view .mv7-overview-insight-bars i {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
  }

  #overview-view .mv7-overview-insight-bars b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: rgba(225, 228, 233, 0.36);
  }

  #overview-view .mv7-overview-insight-bars > div:last-child b {
    background: var(--mv7-home-expense);
  }

  #overview-view .mv7-overview-insight-bars em {
    overflow: hidden;
    color: rgba(225, 228, 233, 0.62);
    font-size: 8px;
    font-style: normal;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #overview-view .mv7-overview-insight-bars > div:last-child em {
    color: var(--mv7-home-expense);
  }

  #overview-view .mv7-analysis-grid {
    display: contents !important;
  }

  #overview-view .mv7-cashflow-panel,
  #overview-view .mv7-overview-budget-panel,
  #overview-view .mv7-activity-panel {
    border: 1px solid rgba(255, 255, 255, 0.2);
    background:
      linear-gradient(145deg, rgba(255, 255, 255, 0.055), transparent 46%),
      rgba(255, 255, 255, 0.018);
    box-shadow:
      inset 0 1px rgba(255, 255, 255, 0.21),
      inset 0 -1px rgba(255, 255, 255, 0.035),
      0 22px 42px -32px rgba(0, 0, 0, 0.92);
    backdrop-filter: blur(22px) saturate(108%);
    -webkit-backdrop-filter: blur(22px) saturate(108%);
  }

  #overview-view .mv7-cashflow-panel {
    order: 5;
    display: block;
    overflow: hidden;
    border-radius: 24px;
  }

  #overview-view .mv7-accounts-panel {
    display: none;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header {
    min-height: 60px;
    padding: 15px 16px 7px;
    border-bottom: 0;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header h3,
  #overview-view .mv7-activity-panel .mv7-panel-header h3,
  #overview-view .mv7-overview-budget-panel .mv7-panel-header h3 {
    font-size: 15px;
    font-weight: 570;
    letter-spacing: -0.025em;
  }

  #overview-view .mv7-cashflow-panel .mv7-panel-header p,
  #overview-view .mv7-cashflow-panel .mv7-legend,
  #overview-view .mv7-cashflow-panel .mv7-panel-stats {
    display: none;
  }

  #overview-view .mv7-mobile-cashflow-period {
    position: relative;
    display: flex;
    align-items: center;
  }

  #overview-view .mv7-mobile-cashflow-period select {
    min-height: 36px;
    padding: 0 31px 0 10px;
    appearance: none;
    border: 0;
    border-radius: 10px;
    outline: 0;
    background: transparent;
    color: rgba(242, 244, 247, 0.82);
    font-size: 11px;
    box-shadow: none;
  }

  #overview-view .mv7-mobile-cashflow-period svg {
    position: absolute;
    right: 9px;
    width: 13px;
    height: 13px;
    color: rgba(223, 227, 233, 0.48);
    pointer-events: none;
  }

  #overview-view .mv7-cashflow-panel .mv7-chart-wrap {
    padding: 8px 13px 14px 43px;
  }

  #overview-view .mv7-cashflow-panel .mv7-main-chart {
    height: 175px;
  }

  #overview-view .mv7-cashflow-panel .mv7-chart-axis {
    top: 17px;
    left: 4px;
    width: 35px;
    height: 146px;
  }

  #overview-view .mv7-chart-line {
    stroke: var(--mv7-home-blue);
    filter: none;
  }

  #overview-view .mv7-chart-area {
    fill: rgba(88, 166, 255, 0.08);
  }

  #overview-view .mv7-chart-point circle:first-child {
    fill: rgba(88, 166, 255, 0.18);
    stroke: var(--mv7-home-expense);
  }

  #overview-view .mv7-chart-point circle:last-child {
    fill: #f7f8fa;
  }

  #overview-view .mv7-activity-panel {
    order: 6;
    margin: 0;
    overflow: hidden;
    border-radius: 24px;
  }

  #overview-view .mv7-activity-panel .mv7-panel-header {
    min-height: 61px;
    padding: 15px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  #overview-view .mv7-activity-panel .mv7-panel-header p {
    display: none;
  }

  #overview-view .mv7-activity-panel .mv7-text-link {
    color: var(--mv7-home-expense);
    font-size: 11px;
  }

  #overview-view .mv7-transaction-list {
    gap: 0;
    padding: 4px 14px 10px;
  }

  #overview-view .mv7-transaction-row {
    min-height: 72px;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 11px;
    padding: 0 4px;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  #overview-view .mv7-transaction-row + .mv7-transaction-row {
    border-top: 1px solid rgba(255, 255, 255, 0.075);
  }

  #overview-view .mv7-transaction-row:nth-child(n + 3) {
    display: none;
  }

  #overview-view .mv7-transaction-token {
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    border: 1px solid rgba(114, 219, 132, 0.2);
    border-radius: 50%;
    background: rgba(114, 219, 132, 0.055);
    color: var(--mv7-home-income);
  }

  #overview-view .mv7-transaction-row:nth-child(2) .mv7-transaction-token {
    border-color: rgba(232, 184, 78, 0.2);
    background: rgba(232, 184, 78, 0.055);
    color: var(--mv7-home-amber);
  }

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

  #overview-view .mv7-transaction-token-icon {
    display: block;
    width: 19px;
    height: 19px;
  }

  #overview-view .mv7-transaction-copy strong {
    font-size: 13px;
    font-weight: 580;
  }

  #overview-view .mv7-transaction-copy span {
    color: rgba(211, 216, 224, 0.5);
    font-size: 10px;
  }

  #overview-view .mv7-transaction-amount {
    max-width: 118px;
    color: var(--mv7-home-expense);
    font-size: 11px;
    font-weight: 620;
  }

  #overview-view .mv7-transaction-amount.is-income {
    color: var(--mv7-home-income);
  }

  #overview-view .mv7-transaction-amount.is-transfer {
    color: var(--mv7-home-transfer);
  }

  #overview-view .mv7-overview-budget-panel {
    order: 7;
    display: block;
    border-radius: 24px;
  }

  #overview-view .mv7-overview-budget-panel .mv7-panel-header {
    min-height: 56px;
    padding: 14px 16px 7px;
    border-bottom: 0;
  }

  #overview-view .mv7-overview-budget-panel .mv7-panel-header p {
    display: none;
  }

  #overview-view .mv7-overview-budget-panel .mv7-text-link {
    color: var(--mv7-home-expense);
  }

  #overview-view .mv7-overview-budget-content {
    padding: 8px 15px 17px;
  }

  #overview-view .mv7-overview-budget-track {
    height: 5px;
  }

  #overview-view #overview-whatsapp-cta {
    order: 8;
  }

  #overview-view .mv7-overview-secondary-grid {
    display: none;
  }
}

@media (max-width: 370px) {
  body[data-v2-view='overview'] .mv7-topbar {
    min-height: calc(66px + env(safe-area-inset-top));
    padding-inline: 12px;
  }

  body[data-v2-view='overview'] .mv7-mobile-brand strong {
    font-size: 18px;
  }

  body[data-v2-view='overview'] .mv7-topbar .mv7-icon-button {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

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

  #overview-view .mv7-section-heading > div:first-child {
    min-height: 120px;
    padding-right: 0;
  }

  #overview-view .mv7-metric-primary > strong {
    font-size: clamp(28px, 9.4vw, 35px);
  }

  #overview-view .mv7-metric-income,
  #overview-view .mv7-metric-expense {
    padding-inline: 7px;
  }

  #overview-view .mv7-metric-income > strong,
  #overview-view .mv7-metric-expense > strong {
    margin-left: 34px;
    font-size: 11px;
  }

  #overview-view .mv7-overview-insight {
    min-height: 132px;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  #overview-view .mv7-overview-insight-bars {
    grid-column: 2;
  }
}

/* Precedencia final de Inicio: conserva solo los dos controles del concepto
   y aplica la paleta por acciÃ³n aunque el usuario cambie su orden. */
@media (max-width: 768px) {
  body[data-v2-view='overview'] .mv7-topbar .mv7-menu-button,
  body[data-v2-view='overview'] #conn-status-chip,
  body[data-v2-view='overview'] #whatsapp-quick-link,
  body[data-v2-view='overview'] #profile-button {
    display: none;
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn[data-quick-action='ingreso'] svg {
    border: 0;
    background: transparent;
    color: var(--mv7-home-income);
    stroke: var(--mv7-home-income);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn[data-quick-action='gasto'] svg {
    border: 0;
    background: transparent;
    color: var(--mv7-home-expense);
    stroke: var(--mv7-home-expense);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn[data-quick-action='transfer'] svg {
    border: 0;
    background: transparent;
    color: var(--mv7-home-transfer);
    stroke: var(--mv7-home-transfer);
  }

  #overview-view .mv7-quick-actions-row .mv7-quick-action-btn[data-quick-action='mas'] svg {
    border: 0;
    background: transparent;
    color: var(--mv7-home-amber);
    stroke: var(--mv7-home-amber);
  }

  #overview-view .mv7-overview-insight-icon svg,
  #overview-view .mv7-transaction-token-icon {
    fill: none;
    stroke: currentColor;
  }
}
