:root {
  --bg:            #191919;
  --bg-elev:       #212121;
  --surface:       #383838;
  --surface-2:     #454545;
  --surface-3:     #525252;
  --line:          rgba(255, 255, 255, .07);
  --line-fuerte:   rgba(255, 255, 255, .13);

  --amber:         #ffaa2c;
  --amber-claro:   #ffbb56;
  --amber-oscuro:  #f09000;
  --amber-tenue:   rgba(255, 170, 44, .14);
  --amber-borde:   rgba(255, 170, 44, .26);
  --tinta-ambar:   #1a1200;

  --green:         #53d258;
  --green-tenue:   rgba(83, 210, 88, .14);
  --green-borde:   rgba(83, 210, 88, .24);
  --coral:         #e25c5c;
  --coral-tenue:   rgba(226, 92, 92, .14);
  --coral-borde:   rgba(226, 92, 92, .3);
  --tinta-coral:   #2b0606;
  --naranja:       #fb923c;
  --blue:          #4b8cff;
  --teal:          #2fd8c8;

  --cartola-acento: var(--teal);
  --purple:        var(--amber);
  --orange:        var(--amber);

  --text-primary:   #f5f5f5;
  --text-secondary: rgba(245, 245, 245, .72);

  --text-muted:     rgba(245, 245, 245, .58);
  --text-tenue:     rgba(245, 245, 245, .42);

  --glass-border:  var(--line);

  --r-xl: 26px;
  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 12px;

  --ease-out:    cubic-bezier(.22, 1, .36, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);

  --sidebar-w:   250px;
  --bottombar-h: 72px;

  --safe-b: env(safe-area-inset-bottom, 0px);
}

@media (display-mode: standalone) {
  :root { --safe-b: 34px; }
}

* { box-sizing: border-box; }

button { color: inherit; font-family: inherit; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text-primary);
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

a { color: var(--amber); text-decoration: none; }
a:hover { color: var(--amber-claro); }

h1, h2, h3, h4 { margin: 0; font-weight: 700; letter-spacing: -.015em; }

.display {
  font-family: 'Manrope', sans-serif;
  font-weight: 800; letter-spacing: -.03em;
  font-variant-numeric: tabular-nums;
}

.mono {
  font-weight: 700; font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}
.label {
  font-size: 11px; font-weight: 600; letter-spacing: .01em;
  color: var(--text-muted);
}

.label + input, .label + select, .label + textarea,
.label + .chips, .label + .seg, .label + .keypad,
.field > .label + * { margin-top: 8px; }
.hint { font-size: 12.5px; color: var(--text-secondary); line-height: 1.55; }

.page-title {
  position: relative;
  font-family: 'Manrope', sans-serif;
  font-size: 27px; font-weight: 800; letter-spacing: -.03em;
  line-height: 1.12; text-wrap: balance;
  padding-left: 16px;
}
.page-title::before {
  content: ''; position: absolute; left: 0; top: .17em; bottom: .17em;
  width: 4px; border-radius: 100px;
  background: linear-gradient(var(--amber-claro), var(--amber-oscuro));
  box-shadow: 0 0 14px -2px rgba(255, 170, 44, .6);
}

.page-title + .hint,
div:has(> .page-title) + .hint {
  padding-left: 16px; margin-top: 8px;
  font-size: 13.5px; line-height: 1.6;
  max-width: 64ch; text-wrap: pretty;
}
.hero-line { font-size: 20px; font-weight: 600; line-height: 1.35; letter-spacing: -.015em; }
.hero-line b { font-weight: 800; color: var(--amber); }
.stat-note { font-size: 11.5px; color: var(--text-muted); margin-top: 7px; line-height: 1.5; }

.solo-medio { display: none !important; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.visually-hidden input, input.visually-hidden {
  width: 1px; min-width: 0; padding: 0; border: 0;
}

.glass {
  position: relative;
  background: var(--surface);
  border: 1px solid transparent;
  border-radius: var(--r-lg);
}
.card    { padding: 20px; }
.card-lg { padding: 24px; border-radius: var(--r-xl); }

.glass-lift { transition: transform .22s var(--ease-out), background .22s var(--ease-out); }
.glass-lift:hover { transform: translateY(-2px); background: var(--surface-2); }
.glass-coral {
  background: linear-gradient(rgba(226, 92, 92, .11), rgba(226, 92, 92, .11)), var(--surface);
  border-color: var(--coral-borde);
}

[data-spot] { --spot-opacity: 0; }
[data-spot]::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  border-radius: inherit;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),
              rgba(255, 170, 44, .06), transparent 45%);
  opacity: var(--spot-opacity); transition: opacity .25s var(--ease-out);
}
[data-spot] > * { position: relative; z-index: 1; }

.balance-card {
  position: relative; overflow: hidden;
  padding: 22px 24px; border-radius: var(--r-xl);
  background: linear-gradient(115deg, var(--amber) 0%, var(--amber-claro) 100%);
  color: var(--tinta-ambar);
}
.balance-card::after {
  content: ''; position: absolute; right: -30%; bottom: -60%;
  width: 120%; height: 150%; border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  pointer-events: none;
}
.balance-card > * { position: relative; z-index: 1; }
.balance-card .label { color: rgba(26, 18, 0, .6); }
.balance-card .display { color: var(--tinta-ambar); }

.balance-card.deuda {
  background: linear-gradient(115deg, #e25c5c 0%, #f08a6e 100%);
  color: var(--tinta-coral);
}
.balance-card.deuda .label { color: rgba(43, 6, 6, .6); }
.balance-card.deuda .display { color: var(--tinta-coral); }

.balance-card.cobrar {
  background: linear-gradient(115deg, #3aa84a 0%, #6fd96b 100%);
  color: #04291d;
}
.balance-card.cobrar .label { color: rgba(4, 41, 29, .62); }
.balance-card.cobrar .display { color: #04291d; }

.balance-card.compacta {
  padding: 18px 20px; border-radius: var(--r-lg);
}
.balance-card.compacta::after {
  right: -40%; bottom: -90%; width: 130%; height: 200%;
}

.balance-card {
  display: block; text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
a.balance-card:hover { filter: brightness(1.04); }

a.balance-card,
a.balance-card:hover { color: var(--tinta-ambar); }
a.balance-card.deuda,
a.balance-card.deuda:hover { color: var(--tinta-coral); }
a.balance-card.cobrar,
a.balance-card.cobrar:hover { color: #04291d; }
a.balance-card:active { transform: scale(.99); }
a.balance-card:focus-visible {
  outline: 2px solid var(--text-primary); outline-offset: 3px;
}

.aviso-atraso {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 13px 16px; margin: 0 0 14px;
  border-radius: var(--r-lg); text-decoration: none;
  background: var(--bg-elev); border: 1px solid var(--coral-borde);
  color: var(--text-primary);
}
.aviso-atraso:hover { border-color: rgba(226, 92, 92, .55); }
.aviso-atraso-icono {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(226, 92, 92, .16); color: var(--coral); font-size: 13px;
}

.balance-card .balance-pie { color: rgba(26, 18, 0, .68); font-weight: 600; }
.balance-card.deuda .balance-pie { color: rgba(43, 6, 6, .7); }
.balance-card.cobrar .balance-pie { color: rgba(4, 41, 29, .72); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 18px; border-radius: 100px; border: 1px solid transparent;
  font-family: 'Manrope', sans-serif; font-size: 13px; font-weight: 700;
  cursor: pointer; white-space: nowrap;
  transition: transform .16s var(--ease-out), background .18s var(--ease-out), opacity .18s;
}
.btn:active { transform: scale(.96); }
.btn-sm { padding: 8px 14px; font-size: 12px; }
.btn-block { width: 100%; padding: 15px; font-size: 14px; }

.btn-purple, .btn-amber {
  background: var(--amber); color: var(--tinta-ambar); border-color: var(--amber);
}
.btn-purple:hover, .btn-amber:hover { background: var(--amber-claro); }

.btn-green { background: var(--green); color: #062b08; border-color: var(--green); }
.btn-green:hover { filter: brightness(1.08); }
.btn-red    { background: var(--coral); color: var(--tinta-coral); border-color: var(--coral); }
.btn-orange { background: var(--amber); color: var(--tinta-ambar); border-color: var(--amber); }

.btn-soft  { background: var(--amber-tenue); color: var(--amber); border-color: transparent; }
.btn-soft:hover { background: rgba(255, 170, 44, .22); }
.btn-glass { background: var(--surface-2); color: var(--text-primary); border-color: transparent; }
.btn-glass:hover { background: var(--surface-3); }
.btn-dashed {
  background: none; border: 1.5px dashed var(--line-fuerte); color: var(--amber);
  border-radius: var(--r-md);
}
.btn-dashed:hover { border-color: var(--amber); background: var(--amber-tenue); }

.icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; flex-shrink: 0;
  border-radius: 50%; border: none; cursor: pointer;
  background: var(--surface-2); color: var(--text-secondary);
  transition: background .18s var(--ease-out), color .18s;
}
.icon-btn:hover { background: var(--surface-3); color: var(--text-primary); }

.icon-tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex-shrink: 0;
  border-radius: 13px; font-size: 14px;
  background: #fff; color: #1a1a1a;
}
.icon-tile.green  { background: var(--green-tenue); color: var(--green); }
.icon-tile.coral  { background: var(--coral-tenue); color: var(--coral); }
.icon-tile.orange { background: var(--amber-tenue); color: var(--amber); }
.icon-tile.blue   { background: rgba(75, 140, 255, .14); color: var(--blue); }

.marca-tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex-shrink: 0;
  border-radius: 12px; font-size: 17px;
  font-family: 'Manrope', sans-serif; font-weight: 800;
}

.marca-tile:not(:has(i)) { font-size: 15px; }

.swipe {
  position: relative;
  border-radius: var(--r-lg);
  overflow: hidden;

  background: var(--surface);
}

.swipe:has(.swipe-btn.borrar) { background: var(--coral); }
.swipe:has(.swipe-btn.editar):has(.swipe-btn.borrar) {
  background: linear-gradient(to right, var(--green) 50%, var(--coral) 50%);
}
.swipe:has(.swipe-btn.editar):not(:has(.swipe-btn.borrar)) { background: var(--green); }

.swipe-acciones {
  position: absolute; top: 0; right: 0; bottom: 0;
  display: flex; align-items: stretch;
  z-index: 0;
}

.swipe-acciones.izq { left: 0; right: auto; }

.swipe-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; width: 82px; flex-shrink: 0;
  border: none; cursor: pointer; text-decoration: none;
  background: none;
  font-family: 'Manrope', sans-serif; font-size: 10.5px; font-weight: 800;
  letter-spacing: .01em;
  transition: background .16s var(--ease-out);
}

.swipe-btn.editar { color: #062b08; }
.swipe-btn.borrar { color: #2a0b0b; }

.swipe-btn:hover  { background: rgba(255, 255, 255, .16); }
.swipe-btn:active { background: rgba(0, 0, 0, .12); }
.swipe-btn i { font-size: 15px; }

.swipe-card {
  position: relative; z-index: 1;

  transition: transform .28s var(--ease-out);
  touch-action: pan-y;

  box-shadow: 6px 0 16px rgba(0, 0, 0, .4), -6px 0 16px rgba(0, 0, 0, .4);
}

.swipe .glass-lift:hover { transform: none; }

.swipe-fila { border-radius: var(--r-md); background: var(--surface); }
.swipe-fila .swipe-btn { width: 78px; }

.swipe-fila .swipe-card {
  background: var(--surface);
  padding: 12px 14px;
  border-radius: var(--r-md);

  border-bottom: none;
}
.swipe-fila .swipe-card.on {
  background: var(--surface-2);

  box-shadow: inset 3px 0 0 var(--amber), 6px 0 16px rgba(0, 0, 0, .4);
}

.row-list:has(.swipe-fila) { gap: 8px; }

@media (hover: hover) and (min-width: 721px) {
  .swipe-card { transform: translateX(0); }

  .swipe-acciones.izq { left: auto; right: 82px; }

  .swipe:hover .swipe-card,
  .swipe:focus-within .swipe-card { transform: translateX(-82px); }
  .swipe:has(.swipe-btn.editar):has(.swipe-btn.borrar):hover .swipe-card,
  .swipe:has(.swipe-btn.editar):has(.swipe-btn.borrar):focus-within .swipe-card {
    transform: translateX(-164px);
  }
  .swipe-fila:hover .swipe-card,
  .swipe-fila:focus-within .swipe-card { transform: translateX(-78px); }

  .swipe-acciones { opacity: 0; transition: opacity .2s var(--ease-out); }
  .swipe:hover .swipe-acciones,
  .swipe:focus-within .swipe-acciones { opacity: 1; }
}

@media (max-width: 720px) {

  .swipe-btn { width: 86px; }

  .swipe.abierta-der .swipe-card { transform: translateX(-86px); }
  .swipe.abierta-izq .swipe-card { transform: translateX(86px); }
  .swipe-fila .swipe-btn { width: 82px; }
  .swipe-fila.abierta .swipe-card { transform: translateX(-82px); }

  .swipe-mov .swipe-btn { width: 38px; height: 38px; flex: 0 0 38px; }
  .swipe-mov .swipe-acciones { padding: 0 10px 0 30px; }

  .swipe-fila:not(.swipe-mov) .swipe-acciones {
    opacity: 0; pointer-events: none;
    transition: opacity .2s var(--ease-out);
  }
  .swipe-fila.abierta .swipe-acciones { opacity: 1; pointer-events: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .swipe-card { transition: none; }
}

.mov-list .row-title,
.mov-list .row-meta {
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.mov-list .row-title { font-size: 14px; letter-spacing: -.01em; }
.mov-list .row-meta  { margin-top: 3px; }

.mov-panel { position: relative; }
.mov-panel .mov-list {
  overflow: hidden;
  transition: max-height .36s var(--ease-out);
}

.mov-toggle {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; margin-top: 12px; padding: 11px;
  border: 1px solid var(--line-fuerte); border-radius: 100px;
  background: none; cursor: pointer; color: var(--amber);
  font-family: 'Manrope', sans-serif; font-size: 12px; font-weight: 700;
  transition: background .18s var(--ease-out), border-color .18s var(--ease-out);
}
.mov-toggle:hover { background: var(--amber-tenue); border-color: rgba(255, 170, 44, .4); }
.mov-toggle i { font-size: 10px; transition: transform .3s var(--ease-out); }
.mov-panel.abierto .mov-toggle i { transform: rotate(180deg); }

.row-list { display: flex; flex-direction: column; }
.row {
  display: flex; align-items: center; gap: 13px;
  padding: 13px 0; border-bottom: 1px solid var(--line);
  border-radius: 0;
}
.row:last-child { border-bottom: none; }
.row-main  { flex: 1; min-width: 0; }
.row-title { font-size: 13.5px; font-weight: 600; }
.row-meta  { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }

.glass > .row, .glass > .row-list > .row { padding-left: 20px; padding-right: 20px; }

.card > .row, .card > .row-list > .row,
.card-lg > .row, .card-lg > .row-list > .row { padding-left: 0; padding-right: 0; }

.cat-list .row {
  display: grid;
  grid-template-columns: 34px 1fr auto 32px;
  align-items: center;
}

.saludo-card { display: none; }

.balance-carrusel {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  margin-bottom: 18px; align-items: stretch;
}
.balance-dots { display: none; }
.balance-carrusel > * { min-width: 0; }

@media (max-width: 900px) {
  .balance-carrusel {
    display: flex; grid-template-columns: none;
    gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 0 -16px 0; padding: 0 16px 4px;
    scrollbar-width: none;
  }
  .balance-carrusel::-webkit-scrollbar { display: none; }
  .balance-carrusel > * { flex: 0 0 calc(100% - 40px); scroll-snap-align: center; }
  .balance-dots { display: flex; justify-content: center; gap: 6px; margin: 12px 0 18px; }
  .balance-dots > span {
    width: 7px; height: 7px; border-radius: 100px;
    background: var(--surface-3); transition: all .25s var(--ease-out);
  }
  .balance-dots > span.on { width: 22px; background: var(--amber); }
}

.mov-list { gap: 9px; }

.swipe-mov {
  position: relative;
  background: transparent;
  border: none;
  border-radius: var(--r-md);
}

.swipe-mov { --tono: var(--surface-3); --tono-rgb: 245, 245, 245; }
.swipe-mov.tono-ingreso     { --tono: var(--green); --tono-rgb: 83, 210, 88; }
.swipe-mov.tono-cuota       { --tono: #818cf8;      --tono-rgb: 129, 140, 248; }
.swipe-mov.tono-suscripcion { --tono: var(--naranja);      --tono-rgb: 251, 146, 60; }
.swipe-mov.tono-gasto       { --tono: var(--coral); --tono-rgb: 226, 92, 92; }

.swipe-mov, .swipe-mov:has(.swipe-btn.borrar),
.swipe-mov:has(.swipe-btn.editar):has(.swipe-btn.borrar) { background: transparent; }
.swipe-mov .swipe-card { box-shadow: none; }
.swipe-mov .swipe-btn.editar { color: var(--green); }
.swipe-mov .swipe-btn.borrar { color: var(--coral); }

.swipe-mov .swipe-card {
  display: flex; align-items: center; gap: 13px;

  padding: 14px 18px 14px 15px;
  border: none; border-radius: var(--r-md);

  background:
    linear-gradient(rgba(var(--tono-rgb), .07), rgba(var(--tono-rgb), .07)),
    var(--surface-2);

  box-shadow: inset 3px 0 0 var(--tono);
  transition: background .16s var(--ease-out), box-shadow .16s var(--ease-out);

  transform: none !important;
}
.swipe-mov:hover .swipe-card,
.swipe-mov:focus-within .swipe-card {
  background:
    linear-gradient(rgba(var(--tono-rgb), .12), rgba(var(--tono-rgb), .12)),
    var(--surface-3);
}

.swipe-mov.sin-pagar .swipe-card { box-shadow: inset 3px 0 0 var(--amber); }

.mov-list > .swipe-mov { flex-shrink: 0; }

.swipe-mov { --acciones: 0; }
.swipe-mov:hover,
.swipe-mov:focus-within,
.swipe-mov.abierta { --acciones: 1; }

.swipe-mov .swipe-acciones {
  position: absolute; right: 0; top: 0; bottom: 0;
  display: flex; align-items: center; gap: 6px;
  padding: 0 8px 0 44px;
  border-radius: 0 var(--r-md) var(--r-md) 0;
  z-index: 3;

  background:
    linear-gradient(to right, rgba(82, 82, 82, 0) 0, var(--surface-3) 34px);
  opacity: var(--acciones);
  transition: opacity .16s var(--ease-out);
}

.swipe-mov .swipe-acciones { pointer-events: none; }
.swipe-mov:hover .swipe-acciones,
.swipe-mov:focus-within .swipe-acciones,
.swipe-mov.abierta .swipe-acciones { pointer-events: auto; }

.swipe-mov .swipe-btn {
  position: relative; z-index: 1;
  width: 34px; height: 34px; flex: 0 0 34px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 11px; border: 1px solid transparent;

  background: var(--bg-elev); color: var(--text-secondary);
  cursor: pointer; padding: 0; gap: 0; box-shadow: none;
  transition: background .16s var(--ease-out), color .16s var(--ease-out);
}

.swipe-mov .swipe-btn > span { display: none; }
.swipe-mov .swipe-btn i {
  width: auto; height: auto; background: none; border-radius: 0; font-size: 12px;
}
.swipe-mov .swipe-btn:hover i { background: none; }

.swipe-mov .swipe-btn.editar:hover {
  background: rgba(83, 210, 88, .16); color: #6ee873;
}
.swipe-mov .swipe-btn.borrar:hover {
  background: rgba(226, 92, 92, .16); color: #f28080;
}

.mov-monto {
  font-size: 14px; font-weight: 700; letter-spacing: -.01em;
  flex-shrink: 0; font-variant-numeric: tabular-nums;
}

.metas-lista { display: flex; flex-direction: column; gap: 9px; }

.meta-fila {
  display: flex; align-items: center; gap: 13px;
  padding: 14px 16px; border-radius: var(--r-md);
  background: var(--surface); color: var(--text-primary); text-decoration: none;
  transition: background .18s var(--ease-out);
}
.meta-fila:hover { background: var(--surface-2); color: var(--text-primary); }

.meta-icono {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 13px; font-size: 15px;
}

.meta-cuerpo { flex: 1; min-width: 0; display: block; }
.meta-linea {

  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 9px;
}
.meta-nombre {
  font-size: 13px; font-weight: 600;

  min-width: 0; flex: 1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.meta-monto {
  font-family: 'Manrope', sans-serif; font-size: 17px; font-weight: 800;
  letter-spacing: -.025em; font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}
.meta-pie {
  display: block; font-size: 10.5px; color: var(--text-muted); margin-top: 7px;

  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.meta-flecha { font-size: 11px; color: var(--text-muted); flex-shrink: 0; }

.meta-fila .progress-bar {
  display: block;
  background: var(--line);
  border-radius: 100px; overflow: hidden;
}
.meta-fila .progress-fill {
  position: relative;

  min-width: 8px;
  animation: meta-revelar 1s var(--ease-out) both;
}
.meta-fila .progress-fill::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(100deg,
    transparent 20%, rgba(255, 255, 255, .5) 50%, transparent 80%);
  animation: meta-brillo 2.6s 1s cubic-bezier(.5, 0, .5, 1) infinite;
}

@keyframes meta-revelar {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes meta-brillo {
  0%      { transform: translateX(-105%); }
  55%,
  100%    { transform: translateX(105%); }
}
@media (prefers-reduced-motion: reduce) {
  .meta-fila .progress-fill { animation: none; }
  .meta-fila .progress-fill::after { animation: none; opacity: 0; }
}

.progress-fill.viva {
  position: relative;
  min-width: 8px;
  animation: meta-revelar 1s var(--ease-out) both;
}
.progress-fill.viva::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  background: linear-gradient(100deg,
    transparent 20%, rgba(255, 255, 255, .5) 50%, transparent 80%);
  animation: meta-brillo 2.6s 1s cubic-bezier(.5, 0, .5, 1) infinite;
}

.aportes-chart {
  display: flex; align-items: flex-end; gap: 6px;
  height: 78px;
}
.aporte-col {
  flex: 1; min-width: 0; height: 100%;
  display: flex; flex-direction: column; align-items: center; gap: 5px;

  padding: 0; border: none; background: none; font: inherit; color: inherit;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.aporte-pista {
  position: relative;

  flex: 1; width: 100%;
  display: flex; align-items: flex-end;
}
.aporte-barra {
  display: block; width: 100%;
  height: var(--alto, 0%); min-height: 8px;
  border-radius: 6px 6px 3px 3px;
  background: var(--amber);
  transition: filter .18s, box-shadow .18s;

  animation: aporte-crecer .5s var(--ease-out) both;
  animation-delay: calc(var(--i, 0) * 60ms);
}

.aporte-col.vacio .aporte-barra {
  height: 3px; min-height: 0;
  background: var(--surface-3);
}
@keyframes aporte-crecer { from { height: 0; min-height: 0; } }

.aporte-col:hover .aporte-barra,
.aporte-col.on .aporte-barra {
  filter: brightness(1.18);
  box-shadow: 0 0 0 3px var(--line);
}
.aporte-mes {
  font-size: 9.5px; color: var(--text-muted);
  transition: color .18s;
}
.aporte-col:hover .aporte-mes,
.aporte-col.on .aporte-mes { color: var(--text-primary); }

.aporte-valor {
  position: absolute; left: 50%; bottom: var(--alto, 0%);
  margin-bottom: 8px;
  padding: 4px 8px; border-radius: 8px;
  background: var(--bg-elev); border: 1px solid var(--line-fuerte);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
  font-size: 10.5px; font-weight: 600; white-space: nowrap;
  color: var(--text-primary);
  pointer-events: none; z-index: 3;
  opacity: 0; transform: translate(-50%, 5px);
  transition: opacity .16s var(--ease-out), transform .16s var(--ease-out);
}
.aporte-col:hover .aporte-valor,
.aporte-col:focus-visible .aporte-valor,
.aporte-col.on .aporte-valor { opacity: 1; transform: translate(-50%, 0); }

.meta-card { scroll-margin-top: 90px; }
.meta-card:target {
  border-color: var(--amber);
  animation: meta-destacar 1.6s var(--ease-out) 1;
}
@keyframes meta-destacar {
  0%, 60% { box-shadow: 0 0 0 3px var(--amber-tenue); }
  100%    { box-shadow: 0 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
  .progress-fill.viva { animation: none; }
  .progress-fill.viva::after { animation: none; opacity: 0; }
  .aporte-barra { animation: none; }
  .meta-card:target { animation: none; }
}

.mini-cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
  gap: 10px; margin-bottom: 22px;
}

.mini-card {
  display: flex; align-items: center; gap: 11px; min-width: 0;
  padding: 13px 15px; border-radius: var(--r-md);
  background: var(--surface-2);
  border: 1px solid var(--line);
}
.mini-card > div { min-width: 0; }

.mini-icono {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; flex-shrink: 0;
  border-radius: 11px; font-size: 13px;
  background: var(--line); color: var(--text-secondary);
}

.mini-monto {
  font-weight: 700;
  font-size: 15px; margin-top: 4px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.mini-card.verde { border-color: rgba(83, 210, 88, .26); }
.mini-card.verde .mini-icono { background: var(--green-tenue); color: var(--green); }
.mini-card.verde .mini-monto { color: var(--green); }
.mini-card.verde .label { color: rgba(83, 210, 88, .8); }

.mini-card.ambar { border-color: var(--amber-borde); }
.mini-card.ambar .mini-icono { background: var(--amber-tenue); color: var(--amber); }
.mini-card.ambar .mini-monto { color: var(--amber-claro); }
.mini-card.ambar .label { color: var(--amber); }

.mini-card.destacada {
  background: var(--amber); border-color: transparent; color: var(--tinta-ambar);
}
.mini-card.destacada .mini-icono { background: rgba(0, 0, 0, .16); color: var(--tinta-ambar); }
.mini-card.destacada .label { color: rgba(26, 18, 0, .72); }
.mini-card.destacada .mini-monto { color: var(--tinta-ambar); }
.mini-card.destacada .mini-nota { color: rgba(26, 18, 0, .66); }

.mini-nota {
  font-size: 10px; font-weight: 600; margin-top: 3px;
  color: var(--text-muted); line-height: 1.35;
}

.mini-card.coral { border-color: rgba(226, 92, 92, .26); }
.mini-card.coral .mini-icono { background: var(--coral-tenue); color: var(--coral); }
.mini-card.coral .mini-monto { color: var(--coral); }

@media (max-width: 640px) {

  .mini-cards { grid-template-columns: 1fr 1fr; gap: 8px; }
  .mini-card { padding: 11px 12px; gap: 9px; }
  .mini-icono { width: 30px; height: 30px; border-radius: 10px; font-size: 12px; }
  .mini-monto { font-size: 13.5px; }

  .mini-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

.tarjetas-color {
  display: grid; gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.tarjeta-color {
  position: relative; overflow: hidden;
  padding: 18px 20px 17px; border-radius: var(--r-xl);
  min-width: 0;
}

.tarjeta-color::after {
  content: ''; position: absolute; right: -34%; bottom: -68%;
  width: 116%; height: 150%; border-radius: 50%;
  background: rgba(255, 255, 255, .15);
  pointer-events: none;
}
.tarjeta-color > * { position: relative; z-index: 1; }

.tc-cabecera { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }

.tc-icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; flex-shrink: 0;
  border-radius: 11px; font-size: 12px;
  background: rgba(0, 0, 0, .14);
}

.tc-label {
  font-family: 'Manrope', sans-serif;
  font-size: 11.5px; font-weight: 700; letter-spacing: .01em;

  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.tc-monto {
  font-family: 'Manrope', sans-serif;
  font-size: 26px; font-weight: 800; letter-spacing: -.03em; line-height: 1;
  font-variant-numeric: tabular-nums;

  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.tarjeta-color.agua .tc-nota { -webkit-line-clamp: 4; }

.tc-nota {
  font-size: 11px; font-weight: 600; line-height: 1.45; margin-top: 9px;

  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}

.tarjeta-color.ambar {
  background: linear-gradient(118deg, var(--amber) 0%, var(--amber-claro) 100%);
  color: var(--tinta-ambar);
}
.tarjeta-color.ambar .tc-label { color: rgba(26, 18, 0, .72); }
.tarjeta-color.ambar .tc-nota  { color: rgba(26, 18, 0, .62); }
.tarjeta-color.ambar .tc-icono { color: var(--tinta-ambar); }

.tarjeta-color.coral {
  background: linear-gradient(118deg, #d94f4f 0%, #f07575 100%);
  color: var(--tinta-coral);
}
.tarjeta-color.coral .tc-label { color: rgba(43, 6, 6, .72); }
.tarjeta-color.coral .tc-nota  { color: rgba(43, 6, 6, .62); }
.tarjeta-color.coral .tc-icono { color: var(--tinta-coral); }

.tarjeta-color.verde {
  background: linear-gradient(118deg, #3fbf46 0%, #6ee873 100%);
  color: #052b08;
}
.tarjeta-color.verde .tc-label { color: rgba(5, 43, 8, .72); }
.tarjeta-color.verde .tc-nota  { color: rgba(5, 43, 8, .62); }
.tarjeta-color.verde .tc-icono { color: #052b08; }

.tarjeta-color.azul {
  background: linear-gradient(118deg, #3d7ae8 0%, #6fa5ff 100%);
  color: #04162e;
}
.tarjeta-color.azul .tc-label { color: rgba(4, 22, 46, .72); }
.tarjeta-color.azul .tc-nota  { color: rgba(4, 22, 46, .62); }
.tarjeta-color.azul .tc-icono { color: #04162e; }

.cabecera-cifras {

  flex: 1 1 auto; min-width: 0;
  display: flex; flex-wrap: wrap; gap: 12px;
  justify-content: flex-end; align-items: stretch;
}

.solo-movil, .sub-monto-movil { display: none; }

.tc-resumen {

  flex: 0 0 200px; min-width: 0;
  padding: 14px 17px 13px; border-radius: var(--r-lg);
}
.tc-resumen .tc-cabecera { margin-bottom: 10px; }
.tc-resumen .tc-icono { width: 26px; height: 26px; border-radius: 9px; }
.tc-resumen .tc-label { font-size: 11px; }
.tc-resumen .tc-monto { font-size: 21px; }
.tc-resumen .tc-nota { font-size: 10.5px; margin-top: 6px; -webkit-line-clamp: 2; }

.tc-resumen + .btn, .tc-resumen ~ .btn { align-self: center; flex-shrink: 0; }

@media (max-width: 720px) {

  .cabecera-cifras { flex: 1 1 100%; flex-wrap: wrap; }
  .tc-resumen { flex: 1 1 140px; padding: 12px 14px; }
  .tc-resumen .tc-monto { font-size: 19px; }
  .tc-resumen ~ .btn { flex: 1 1 100%; justify-content: center; }
}

.tarjeta-color.lila {
  background: linear-gradient(118deg, #6f7bf7 0%, #a5adfb 100%);
  color: #0d0b2b;
}
.tarjeta-color.lila .tc-label { color: rgba(13, 11, 43, .72); }
.tarjeta-color.lila .tc-nota  { color: rgba(13, 11, 43, .66); }
.tarjeta-color.lila .tc-icono { color: #0d0b2b; }

.tarjeta-color.agua {
  background: linear-gradient(118deg, #22c4b5 0%, #5ce6d9 100%);
  color: #04211e;
}
.tarjeta-color.agua .tc-label { color: rgba(4, 33, 30, .72); }
.tarjeta-color.agua .tc-nota  { color: rgba(4, 33, 30, .66); }
.tarjeta-color.agua .tc-icono { color: #04211e; }

.tc-unidad {
  font-size: 13px; font-weight: 700; letter-spacing: 0; margin-left: 5px;
  opacity: .62;
}

@container contenido (max-width: 560px) {
  .tarjetas-color { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 720px) {

  .tarjetas-color { grid-template-columns: 1fr !important; gap: 10px; }
  .tarjeta-color { padding: 15px 17px 14px; border-radius: var(--r-lg); }
  .tc-cabecera { margin-bottom: 10px; }
  .tc-monto { font-size: 23px; }
  .tc-nota { margin-top: 6px; -webkit-line-clamp: 1; }
}

.badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border-radius: 100px;
  font-size: 11px; font-weight: 700;
  background: var(--surface-2); color: var(--text-secondary);
}
.badge-green  { background: var(--green-tenue); color: var(--green); }
.badge-coral  { background: var(--coral-tenue); color: var(--coral); }
.badge-orange, .badge-purple { background: var(--amber-tenue); color: var(--amber); }
.badge-blue   { background: rgba(75, 140, 255, .14); color: var(--blue); }
.badge-mute   { background: var(--surface-2); color: var(--text-muted); }

.progress-bar {

  display: block;
  height: 7px; border-radius: 100px; overflow: hidden;
  background: var(--surface-3);
}
.progress-fill {
  height: 100%; border-radius: 100px;
  background: var(--amber);
  transition: width .6s var(--ease-out);
}
.progress-fill.green { background: var(--green); }
.progress-fill.blue  { background: var(--blue); }
.progress-fill.shine { background: linear-gradient(90deg, var(--amber-oscuro), var(--amber-claro)); }

.split-bar {
  display: flex; height: 9px; border-radius: 100px; overflow: hidden;
  background: var(--surface-3); gap: 2px;
}
.split-bar > span { display: block; height: 100%; }

.pagos-cabecera {
  display: flex; flex-direction: column; gap: 18px;
  padding-bottom: 20px; margin-bottom: 18px;
  border-bottom: 1px solid var(--line);
}
.pagos-titulo {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px;
}
.pagos-cifra {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px;
}
.pagos-monto {
  font-size: 30px; line-height: 1;

}
.pagos-nota {
  font-size: 11.5px; color: var(--text-muted); margin-top: 7px;
  line-height: 1.4;
}
.pagos-hecho { flex-shrink: 0; text-align: right; }

@media (max-width: 640px) {
  .pagos-cabecera { gap: 15px; padding-bottom: 17px; margin-bottom: 16px; }
  .pagos-monto { font-size: 25px; }
}

.pips { display: flex; gap: 4px; flex-wrap: wrap; }
.pip {
  flex: 1; min-width: 7px; height: 5px; border-radius: 100px;
  background: var(--surface-3);
}
.pip.paid { background: var(--green); }
.pip.next { background: var(--amber); }
.pip.late { background: var(--coral); }

.field { margin-bottom: 18px; }
.form-row { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.form-row > div { flex: 1; min-width: 120px; }

.form-cuotas {
  display: grid; gap: 14px; margin-bottom: 16px;
  grid-template-columns: 1.4fr .8fr 1.15fr;
}
@media (max-width: 560px) {
  .form-cuotas { grid-template-columns: 104px minmax(0, 1fr); gap: 12px; }
  .form-cuotas > :first-child { grid-column: 1 / -1; }
}

input[type=number] { appearance: textfield; -moz-appearance: textfield; }
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=date]::-webkit-calendar-picker-indicator { opacity: .45; cursor: pointer; }
input[type=date]::-webkit-calendar-picker-indicator:hover { opacity: .9; }

.search input { all: unset; flex: 1; min-width: 0; font: inherit; color: inherit; }
input:not([type=checkbox]):not([type=radio]):not(.search input), select, textarea {
  width: 100%; padding: 13px 15px;
  border-radius: var(--r-md); border: 1px solid transparent;
  background: var(--surface-2); color: var(--text-primary);
  font-family: 'Manrope', sans-serif; font-size: 13.5px;
  transition: border-color .18s var(--ease-out), background .18s;
}
input::placeholder, textarea::placeholder { color: var(--text-muted); }
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--amber); background: var(--surface);
}
.search input:focus { outline: none; background: none; border: none; }
.search input:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }

input[type=number].mono, input.mono { font-family: 'Manrope', system-ui, sans-serif; }
input[type=date] { color-scheme: dark; }
select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23999' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 15px center;
  padding-right: 36px;
}
.input-amount {
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: 23px; font-weight: 800; letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  text-align: center; padding: 16px;
}
label { display: block; }

.seg {
  display: flex; gap: 4px; padding: 4px;
  background: var(--surface-2); border-radius: 100px;
}
.seg > button, .seg > a {

  flex: 1 0 auto; white-space: nowrap;
  padding: 10px 14px; border: none; border-radius: 100px;
  background: none; color: var(--text-muted); cursor: pointer;
  font-family: 'Manrope', sans-serif; font-size: 12.5px; font-weight: 700;
  text-align: center; text-decoration: none;
  transition: background .18s var(--ease-out), color .18s;
}
.seg > button:hover { color: var(--text-secondary); }
.seg > button.on, .seg > a.on { background: var(--amber); color: var(--tinta-ambar); }
.seg > button.on-green { background: var(--green); color: #062b08; }
.seg > button.on-coral { background: var(--coral); color: var(--tinta-coral); }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 9px 15px; border-radius: 100px; cursor: pointer;
  border: 1px solid var(--line-fuerte); background: none;
  color: var(--text-secondary);
  font-family: 'Manrope', sans-serif; font-size: 12.5px; font-weight: 600;

  white-space: nowrap;
  transition: all .18s var(--ease-out);
}
.chip:hover { border-color: var(--line-fuerte); background: var(--surface-2); }
.chip.on {
  background: var(--amber); border-color: var(--amber); color: var(--tinta-ambar);
}

.switch {
  position: relative; width: 44px; height: 26px; flex-shrink: 0;
  border-radius: 100px; border: none; cursor: pointer; padding: 0;
  background: var(--surface-3);
  transition: background .22s var(--ease-out);
}
.switch .knob {
  position: absolute; top: 3px; left: 3px;
  width: 20px; height: 20px; border-radius: 50%;
  background: #f5f5f5;
  transition: transform .22s var(--ease-spring);
}
.switch.on { background: var(--green); }
.switch.on .knob { transform: translateX(18px); }

.preview-box {
  padding: 16px; margin-bottom: 18px;
  border-radius: var(--r-md);
  background: var(--surface-2);
}

.preview-box.preview-cuota {
  padding: 15px 17px;
  background: linear-gradient(180deg, rgba(255, 170, 44, .11), rgba(255, 170, 44, .04));
  border: 1px solid rgba(255, 170, 44, .2);
}
.preview-eyebrow {
  font-size: 10.5px; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--amber);
}
.preview-fila {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; margin-top: 9px;
}
.preview-etiqueta { font-size: 12.5px; color: var(--text-secondary); }
.preview-monto {
  font-size: 26px; font-weight: 800; font-variant-numeric: tabular-nums;
  letter-spacing: -.02em; color: var(--amber); line-height: 1.1;
}
.preview-nota { font-size: 11.5px; color: var(--text-muted); margin-top: 6px; }
@media (max-width: 400px) { .preview-monto { font-size: 21px; } }

.empty { text-align: center; padding: 44px 20px; }
.empty i { font-size: 30px; color: var(--text-muted); margin-bottom: 14px; display: block; }
.empty-title { font-family: 'Manrope', sans-serif; font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.empty-text { font-size: 12.5px; color: var(--text-muted); max-width: 340px; margin: 0 auto 18px; line-height: 1.55; }

.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; flex-wrap: wrap; margin: 28px 0 13px;
}
.section-head:first-child { margin-top: 0; }
.section-title {
  position: relative;
  font-family: 'Manrope', sans-serif; font-size: 17px; font-weight: 800;
  letter-spacing: -.02em; color: var(--text-primary); margin: 0;

  padding-left: 12px;
  min-width: 0;
}
.section-title::before {
  content: ''; position: absolute; left: 0; top: .19em; bottom: .19em;
  width: 3px; border-radius: 100px;
  background: linear-gradient(var(--amber-claro), var(--amber-oscuro));
  box-shadow: 0 0 11px -2px rgba(255, 170, 44, .55);
}

.section-sub {
  font-size: 12.5px; font-weight: 700; color: var(--amber); cursor: pointer;
  white-space: nowrap; flex-shrink: 0;
}

.grid-metrics {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px; margin-bottom: 18px;
}

@container contenido (min-width: 1100px) {
  .grid-metrics { grid-template-columns: repeat(4, 1fr); }
}

.grid-chart   { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; margin-bottom: 18px; align-items: start; }

.grid-chart.par       { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.grid-chart.ancho-izq { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.grid-chart.ancho-der { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
.grid-pagos   { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 16px; margin-bottom: 18px; align-items: start; }
.grid-registro{ display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; align-items: start; }

.grid-cards   { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.grid-detail  { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 16px; align-items: start; }
.grid-registro > :only-child { grid-column: 1 / -1; }

.grid-chart > *, .grid-pagos > *, .grid-registro > *, .grid-detail > *, .grid-cards > * { min-width: 0; }

@media (max-width: 1100px) {
  .grid-chart, .grid-chart.par, .grid-chart.ancho-izq, .grid-chart.ancho-der, .grid-pagos, .grid-registro, .grid-detail {
    grid-template-columns: minmax(0, 1fr);
  }
}

@container contenido (max-width: 700px) {
  .grid-cards { grid-template-columns: 1fr; }
}

@container contenido (min-width: 860px) {
  .grid-chart   { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .grid-chart.par       { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .grid-chart.ancho-izq { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .grid-chart.ancho-der { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); }
  .grid-pagos   { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .grid-registro{ grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
  .grid-detail  { grid-template-columns: 320px minmax(0, 1fr); }
}
@container contenido (max-width: 859px) {
  .grid-chart, .grid-chart.par, .grid-chart.ancho-izq, .grid-chart.ancho-der, .grid-pagos, .grid-registro, .grid-detail {
    grid-template-columns: minmax(0, 1fr);
  }
}

@container contenido (min-width: 880px) {
  .balance-carrusel {
    display: grid; grid-template-columns: repeat(3, 1fr);
    gap: 14px; overflow: visible; margin: 0 0 18px; padding: 0;
  }
  .balance-dots { display: none; }
}
@container contenido (max-width: 879px) {
  .balance-carrusel {
    display: flex; grid-template-columns: none;
    gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin: 0 -16px 0; padding: 0 16px 4px; scrollbar-width: none;
  }
  .balance-carrusel > * { flex: 0 0 calc(100% - 40px); scroll-snap-align: center; }
  .balance-dots { display: flex; justify-content: center; gap: 6px; margin: 12px 0 18px; }
}

.layout { display: flex; min-height: 100vh; }

.sidebar {
  width: var(--sidebar-w); flex-shrink: 0;
  padding: 22px 16px; display: flex; flex-direction: column; gap: 8px;
  background: var(--bg-elev);
  position: sticky; top: 0; height: 100vh; overflow: hidden;
}

.sidebar > nav {
  flex: 1 1 auto; min-height: 0; overflow-y: auto;
  scrollbar-width: none;
}
.sidebar > nav::-webkit-scrollbar { display: none; }
.brand { display: flex; align-items: center; gap: 11px; padding: 4px 8px 20px; }
.brand-mark {
  width: 38px; height: 38px; border-radius: 13px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--amber); color: var(--tinta-ambar); font-size: 15px;
}
.brand-name { font-family: 'Manrope', sans-serif; font-size: 15px; font-weight: 800; letter-spacing: -.02em; }
.brand-sub  { font-size: 10.5px; color: var(--text-muted); }

.nav-group { display: flex; flex-direction: column; gap: 3px; }
.nav-title {
  font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--text-muted); padding: 14px 12px 7px;
}
.nav-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px; border-radius: var(--r-md);
  color: var(--text-secondary); text-decoration: none;
  font-family: 'Manrope', sans-serif; font-size: 13.5px; font-weight: 600;
  border: none; background: none; cursor: pointer; text-align: left;
  transition: background .18s var(--ease-out), color .18s;
  position: relative;
}
.nav-item i { width: 18px; text-align: center; font-size: 14px; }
.nav-item:hover { background: var(--surface); color: var(--text-primary); }

.nav-item.active { background: var(--amber); color: var(--tinta-ambar); }
.nav-item.active:hover { background: var(--amber-claro); color: var(--tinta-ambar); }

.nav-count {
  margin-left: auto; min-width: 20px; padding: 2px 7px;
  border-radius: 100px; text-align: center;
  font-size: 10.5px; font-weight: 700; font-variant-numeric: tabular-nums;
  background: var(--coral); color: #fff;
}

.sidebar .nav-item.active .nav-count { background: rgba(26, 18, 0, .22); color: var(--tinta-ambar); }
.bottomnav .nav-item.active > .nav-count { background: var(--coral); color: #fff; opacity: 1; }

.sidebar-foot {

  flex-shrink: 0; margin-top: 14px; padding: 16px;
  border-radius: var(--r-lg); background: var(--surface);
}

.main {

  flex: 1 1 auto; width: 100%; min-width: 0;
  padding: 26px 30px 40px;
  max-width: 1400px;
  margin-inline: auto;

  container-type: inline-size;
  container-name: contenido;
}

.topbar {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;

  box-sizing: border-box;
  width: 100%; max-width: 1400px; margin-inline: auto;
  padding: 26px 30px 0;
  margin-bottom: 20px;
}

.topbar + .main { padding-top: 0; }
.spacer { flex: 1; }
.month {
  padding: 0 14px; font-family: 'Manrope', sans-serif;
  font-size: 12.5px; font-weight: 700;

  white-space: nowrap;
}
.avatar {
  display: flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  background: var(--amber); color: var(--tinta-ambar);
  font-family: 'Manrope', sans-serif; font-size: 15px; font-weight: 800;
}
.avatar-lg { width: 64px; height: 64px; font-size: 24px; border-radius: 22px; }

.saludo-pill {
  display: flex; align-items: center; gap: 10px; min-width: 0;
  padding: 6px 14px 6px 6px; border-radius: 100px;
  background: var(--surface); color: var(--text-primary); text-decoration: none;
  transition: background .18s var(--ease-out);
}
.saludo-pill:hover { background: var(--surface-2); color: var(--text-primary); }
.saludo-pill .avatar { box-shadow: 0 0 0 2px rgba(255, 170, 44, .38); }
.saludo-nombre {
  display: block; font-size: 13.5px; font-weight: 700; letter-spacing: -.02em;

  max-width: 150px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.search {
  display: flex; align-items: center; gap: 9px;
  padding: 10px 15px; border-radius: 100px;
  background: var(--surface); min-width: 200px;
}
.search input { font-size: 12.5px; color: var(--text-primary); }
.kbd {
  padding: 2px 7px; border-radius: 6px;
  background: var(--surface-2); color: var(--text-muted);
  font-size: 10px; font-weight: 600; font-variant-numeric: tabular-nums;
}

.cal-head, .cal-week {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px;
}
.cal-head > div {
  text-align: center; font-size: 10px; font-weight: 700;
  color: var(--text-muted); padding-bottom: 4px;
}
.cal-day {
  position: relative; aspect-ratio: auto; min-height: 34px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  border-radius: var(--r-sm); border: none; background: none; cursor: default;
  color: var(--text-secondary);
  font-size: 12.5px; font-weight: 600; font-variant-numeric: tabular-nums;
  transition: background .18s var(--ease-out);
}
.cal-day.has { cursor: pointer; background: var(--surface-2); color: var(--text-primary); }
.cal-day.has:hover { background: var(--surface-3); }
.cal-day.on { background: var(--amber); color: var(--tinta-ambar); font-weight: 700; }
.cal-day .dot {
  width: 5px; height: 5px; border-radius: 50%; background: var(--amber);
}
.cal-day .dot.paid { background: var(--green); }
.cal-day.on .dot { background: var(--tinta-ambar); }

.modal-overlay {
  position: fixed; inset: 0; z-index: 200;
  display: none; align-items: center; justify-content: center; padding: 20px;
  background: rgba(0, 0, 0, .72);
  animation: fadeIn .2s var(--ease-out);
}
.modal-overlay.open { display: flex; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.modal-box {
  --modal-pad: 24px;
  width: 100%; max-width: 460px; overflow-y: auto;

  max-height: 88vh; max-height: 88dvh;
  overscroll-behavior: contain;
  padding: var(--modal-pad); border-radius: var(--r-xl);
  background: var(--bg-elev);
  animation: modalUp .28s var(--ease-out);
}
@keyframes modalUp {
  from { opacity: 0; transform: translateY(18px) scale(.98); }
  to { opacity: 1; transform: none; }
}

.modal-head {
  position: sticky; top: calc(var(--modal-pad) * -1); z-index: 3;
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px;
  margin: calc(var(--modal-pad) * -1) calc(var(--modal-pad) * -1) 18px;
  padding: var(--modal-pad) var(--modal-pad) 15px;
  background: var(--bg-elev);
}

.modal-head::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(120% 150% at 0% 0%, rgba(255, 170, 44, .13), transparent 58%);
}

.modal-head::after {
  content: ''; position: absolute; bottom: 0;
  left: var(--modal-pad); right: var(--modal-pad); height: 1px;
  background: linear-gradient(90deg, rgba(255, 170, 44, .55), var(--line-fuerte) 38%, transparent);
}
.modal-head > * { position: relative; }

.modal-titulo { display: flex; align-items: center; gap: 13px; min-width: 0; }
.modal-icon {
  width: 42px; height: 42px; flex-shrink: 0;
  display: grid; place-items: center;
  border-radius: 15px; font-size: 15px; color: var(--tinta-ambar);
  background: linear-gradient(150deg, var(--amber-claro), var(--amber-oscuro));
  box-shadow: 0 6px 16px -6px rgba(255, 170, 44, .65),
              inset 0 1px 0 rgba(255, 255, 255, .35);
}
.modal-title { font-family: 'Manrope', sans-serif; font-size: 18px; font-weight: 800; letter-spacing: -.02em; }
.modal-sub { font-size: 12px; color: var(--text-muted); margin-top: 3px; }
.modal-close {
  width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
  border: 1px solid var(--line-fuerte); cursor: pointer;
  background: none; color: var(--text-muted); font-size: 13px;
  transition: color .18s var(--ease-out), background .18s, border-color .18s, transform .22s var(--ease-out);
}
.modal-close:hover { transform: rotate(90deg); }
.modal-close:hover { background: var(--surface-3); color: var(--text-primary); }
.modal-close:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }

.modal-box form > .btn-block:last-child {
  position: sticky; bottom: 0; z-index: 2;
  box-shadow: 0 -14px 16px 10px var(--bg-elev),
              0 var(--modal-pad) 0 var(--modal-pad) var(--bg-elev);
}

.modal-box .chips { gap: 7px; }
.modal-box .chip { padding: 8px 13px; font-size: 12px; }

.hoja-overlay { align-items: flex-end; padding: 0; }
.hoja-box {
  position: relative;
  --modal-pad: 20px;
  max-width: none; width: 100%; max-height: 82vh;
  border-radius: var(--r-xl) var(--r-xl) 0 0;
  padding: var(--modal-pad) var(--modal-pad) calc(24px + env(safe-area-inset-bottom));
  animation: hojaSube .3s var(--ease-out);
}
@keyframes hojaSube { from { transform: translateY(100%); } to { transform: none; } }
.hoja-box::before {
  content: ''; position: absolute; z-index: 4;
  top: 8px; left: 50%; transform: translateX(-50%);
  width: 38px; height: 4px; border-radius: 100px;
  background: var(--surface-3);
}
.hoja-box > .modal-head {
  padding-top: calc(var(--modal-pad) + 6px);
  border-top-left-radius: var(--r-xl); border-top-right-radius: var(--r-xl);
}
.hoja-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.hoja-item {
  display: flex; align-items: center; gap: 11px;
  padding: 14px; border-radius: var(--r-md);
  background: var(--surface); color: var(--text-primary); text-decoration: none;
  font-size: 12.5px; font-weight: 600;
}
.hoja-item:hover { background: var(--surface-2); color: var(--text-primary); }
.hoja-item .icon-tile { width: 32px; height: 32px; border-radius: 11px; font-size: 12px; }

@media (min-width: 721px) {
  .hoja-overlay { align-items: center; padding: 20px; }
  .hoja-box {
    max-width: 420px; border-radius: var(--r-xl);
    animation: modalUp .28s var(--ease-out);
  }
  .hoja-box::before { display: none; }
  .hoja-box > .modal-head { padding-top: var(--modal-pad); }
}

.confirm-overlay { z-index: 400; align-items: center; justify-content: center; padding: 20px; }

.confirm-box {
  width: 100%; max-width: 380px; text-align: center;
  padding: 28px 24px 24px; border-radius: var(--r-xl);
  background: var(--bg-elev);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .6);
  animation: modalUp .26s var(--ease-out);
}

.confirm-icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; margin-bottom: 16px;
  border-radius: 18px; font-size: 20px;
  background: var(--amber-tenue); color: var(--amber);
}

.confirm-overlay.destructivo .confirm-icono {
  background: var(--coral-tenue); color: var(--coral);
}

.confirm-texto {
  font-size: 14px; line-height: 1.55; color: var(--text-primary);
  margin-bottom: 22px; text-wrap: pretty;
}

.confirm-acciones { display: flex; gap: 9px; }
.confirm-acciones .btn { flex: 1; padding: 13px; font-size: 13px; }

@media (max-width: 640px) {

  .confirm-overlay { align-items: flex-end; padding: 0; }
  .confirm-box {
    max-width: none; border-radius: var(--r-xl) var(--r-xl) 0 0;
    padding: 26px 20px calc(22px + env(safe-area-inset-bottom));
    animation: hojaSube .3s var(--ease-out);
  }

  .confirm-acciones { flex-direction: column-reverse; }
}

.amount-display {
  text-align: center; padding: 22px 0;
  font-family: 'Manrope', sans-serif; font-size: 38px; font-weight: 800;
  letter-spacing: -.035em; font-variant-numeric: tabular-nums;
}
.keypad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.keypad button {
  padding: 16px 0; border-radius: var(--r-md); border: none; cursor: pointer;
  background: var(--surface-2); color: var(--text-primary);
  font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums;
  transition: background .14s var(--ease-out), transform .1s;
}
.keypad button:hover { background: var(--surface-3); }
.keypad button:active { transform: scale(.94); }

.metrica {
  --tono: #8b8b96; --tono-rgb: 139, 139, 150;
  position: relative; overflow: hidden;
  padding: 18px 20px; border-radius: var(--r-lg);
  background:
    radial-gradient(120% 100% at 100% 0%, rgba(var(--tono-rgb), .13), transparent 60%),
    var(--surface);
  border: 1px solid rgba(var(--tono-rgb), .2);
  transition: transform .22s var(--ease-out), border-color .22s var(--ease-out);
}
.metrica:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--tono-rgb), .42);
}

.metrica.tono-verde { --tono: var(--green); --tono-rgb: 83, 210, 88; }
.metrica.tono-coral { --tono: var(--coral); --tono-rgb: 226, 92, 92; }
.metrica.tono-ambar { --tono: var(--amber); --tono-rgb: 255, 170, 44; }

.metrica-cab { display: flex; align-items: center; gap: 9px; margin-bottom: 13px; }
.metrica-cab .label { color: var(--tono); }

.metrica-icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; flex-shrink: 0;
  border-radius: 10px; font-size: 12px;
  background: rgba(var(--tono-rgb), .16); color: var(--tono);
}

.metrica-cifra {
  font-family: 'Manrope', sans-serif; font-size: 25px; font-weight: 800;
  letter-spacing: -.03em; line-height: 1.05;
  font-variant-numeric: tabular-nums; color: var(--tono);
}

.metrica-unidad { font-size: 16px; font-weight: 700; opacity: .7; margin-left: 1px; }

.metrica-barra {
  height: 5px; margin: 11px 0 2px; border-radius: 100px;
  background: rgba(var(--tono-rgb), .16); overflow: hidden;
}
.metrica-barra > span {
  display: block; height: 100%; border-radius: 100px;
  background: var(--tono); transition: width .6s var(--ease-out);
}

.metrica:not([class*="tono-"]) .metrica-cifra { color: var(--text-primary); }
.metrica:not([class*="tono-"]) .metrica-cab .label { color: var(--text-muted); }

.flujo-panel { overflow: hidden; }

.flujo-cabecera {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 18px;
}

.flujo-delta {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border-radius: 100px;
  font-size: 11px; font-weight: 700; white-space: nowrap;
}
.flujo-delta.sube { background: var(--green-tenue); color: var(--green); }
.flujo-delta.baja { background: var(--coral-tenue); color: var(--coral); }

.flujo-leyenda {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  margin-bottom: 6px;
  font-size: 11.5px; font-weight: 600; color: var(--text-secondary);
}
.flujo-leyenda > span { display: inline-flex; align-items: center; gap: 7px; }
.flujo-leyenda .punto {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
}

.flujo-pista { margin-left: auto; font-weight: 500; color: var(--text-muted); font-size: 11px; }

.flujo-lienzo { position: relative; height: 300px; }

@media (max-width: 720px) {

  .flujo-lienzo { height: 220px; }

  .flujo-leyenda > .flujo-pista { display: none; }
  .flujo-cabecera { gap: 12px; }
  .flujo-cabecera .display { font-size: 26px !important; }
}

.analisis-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 18px;
}
.btn-ia { flex-shrink: 0; }

@media (max-width: 720px) {

  .analisis-head { gap: 14px; }
  .btn-ia { width: 100%; justify-content: center; padding: 14px; }
}

.health-cifra {
  display: flex; align-items: baseline; gap: 6px;
  justify-content: flex-start; margin-bottom: 9px;
}

@media (max-width: 1000px) {
  .health-cifra { justify-content: center; }
}

.perfil-cab {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; flex-wrap: wrap; margin-bottom: 16px;
}

.perfil-id { display: flex; align-items: center; gap: 18px; min-width: 0; }
.perfil-datos { min-width: 0; }

.perfil-nombre {
  font-family: 'Manrope', sans-serif; font-size: 21px; font-weight: 800;
  letter-spacing: -.03em; margin: 0; line-height: 1.2;
}

.perfil-meta {
  display: flex; flex-direction: column; gap: 4px; margin-top: 7px;
}
.perfil-meta > span {
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--text-secondary);
  min-width: 0;
}
.perfil-meta i {
  width: 13px; font-size: 11px; color: var(--text-muted); flex-shrink: 0;
}

.perfil-cifras { display: flex; gap: 10px; flex-wrap: wrap; }
.perfil-cifra {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 12px 18px; border-radius: var(--r-md); min-width: 92px;
  background: var(--surface-2);
}
.perfil-cifra-valor {
  font-family: 'Manrope', sans-serif; font-size: 17px; font-weight: 800;
  letter-spacing: -.02em; font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.perfil-cifra .label { font-size: 10.5px; }

.perfil-datos .foto-nota { margin-top: 10px; display: inline-flex; }

@media (max-width: 720px) {
  .perfil-cab { gap: 18px; }
  .perfil-id { gap: 14px; }
  .perfil-nombre { font-size: 18px; }

  .perfil-cifras { display: grid; grid-template-columns: repeat(3, 1fr); width: 100%; gap: 8px; }
  .perfil-cifra { min-width: 0; padding: 12px 8px; }
  .perfil-cifra-valor { font-size: 15px; }
  .perfil-cifra .label { font-size: 9.5px; text-align: center; line-height: 1.3; }
}

.avatar-foto {
  position: relative; flex-shrink: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  width: 66px; height: 66px; border-radius: 22px; overflow: hidden;
  background: linear-gradient(140deg, var(--amber-oscuro), var(--amber));

  box-shadow: 0 0 0 2px rgba(255, 255, 255, .08), 0 6px 18px rgba(0, 0, 0, .35);
  transition: transform .18s var(--ease-out), box-shadow .18s var(--ease-out);
}
.avatar-foto:hover {
  transform: scale(1.03);
  box-shadow: 0 0 0 2px rgba(255, 170, 44, .5), 0 6px 18px rgba(0, 0, 0, .35);
}
.avatar-foto:active { transform: scale(.97); }

.avatar-foto img {
  position: relative; z-index: 1;
  width: 100%; height: 100%; display: block;

  object-fit: cover;

  background: linear-gradient(140deg, var(--amber-oscuro), var(--amber));
}

.avatar-foto img[hidden] { display: none; }
.avatar-inicial {
  position: absolute; inset: 0; z-index: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Manrope', sans-serif; font-size: 24px; font-weight: 800;
  color: #fff;
}

.avatar-lapiz {
  position: absolute; left: 0; right: 0; bottom: 0;
  display: flex; align-items: center; justify-content: center;
  height: 22px; font-size: 10px; color: #fff;
  background: rgba(0, 0, 0, .55);
  opacity: 0; transition: opacity .18s var(--ease-out);
}
.avatar-foto:hover .avatar-lapiz,
.avatar-foto:focus-within .avatar-lapiz { opacity: 1; }

@media (hover: none) {
  .avatar-lapiz { opacity: 1; }
}

.foto-nota {
  display: flex; align-items: center; gap: 7px;
  padding: 8px 13px; border-radius: 100px;
  font-size: 11.5px; font-weight: 600;
  background: var(--amber-tenue); color: var(--amber);
}

.avatar { position: relative; }
.avatar-letra { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.avatar img { position: relative; z-index: 1; }

.avatar img {
  width: 100%; height: 100%; border-radius: inherit;
  object-fit: cover; display: block;

  background: var(--amber);
}

.avatar img[hidden] { display: none; }
.avatar:has(img) { padding: 0; overflow: hidden; }

.icon-tile.tile-avatar { position: relative; overflow: hidden; }
.icon-tile.tile-avatar img {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.icon-tile.tile-avatar img[hidden] { display: none; }

.mes-nav {
  display: flex; align-items: center; gap: 10px;

  max-width: 420px;
}

.mes-nav-movil { display: none; }
@media (max-width: 1000px) {
  .mes-nav-desktop { display: none; }
  .mes-nav-movil { display: flex; margin-bottom: 16px; }
}
.mes-nav-desktop {
  margin-bottom: 0;

  max-width: none; flex: 0 0 auto;
}
.mes-nav-desktop .mes-actual { flex: 0 0 auto; }
.mes-nav-desktop .mes-flecha { width: 36px; height: 36px; }
.mes-nav-desktop .mes-actual { padding: 9px 15px; }

.mes-flecha {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; flex-shrink: 0;
  border-radius: 50%; font-size: 12px;
  background: var(--surface); color: var(--text-secondary);
  text-decoration: none;
  transition: background .18s var(--ease-out), color .18s;
}
.mes-flecha:hover { background: var(--surface-2); color: var(--text-primary); }
.mes-flecha:active { transform: scale(.94); }

.mes-actual {
  flex: 1; min-width: 0;
  display: flex; align-items: center; justify-content: center;
  gap: 9px; flex-wrap: wrap;
  padding: 10px 14px; border-radius: 100px;
  background: var(--surface);
}
.mes-nombre {
  font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 700;
  letter-spacing: -.02em; white-space: nowrap;
}
.mes-ahora {
  font-size: 10px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase;
  padding: 3px 9px; border-radius: 100px;
  background: var(--amber-tenue); color: var(--amber);
}

.mes-hoy {
  font-size: 11px; font-weight: 700; color: var(--amber);
  text-decoration: none; white-space: nowrap;
}
.mes-hoy:hover { color: var(--amber-claro); }

@media (max-width: 720px) {

  .mes-nav { gap: 8px; margin-bottom: 14px; max-width: none; }
  .mes-flecha { width: 46px; height: 46px; }
  .mes-actual { padding: 12px 12px; gap: 8px; }
  .mes-nombre { font-size: 13.5px; }
}

.mes-totales {
  display: flex; align-items: center; gap: 0; margin-bottom: 18px;
}
.mes-totales > div { flex: 1; display: flex; align-items: center; gap: 12px; min-width: 0; }
.mes-totales > div:last-child { padding-left: 20px; }
.mes-divisor { flex: 0 0 1px; width: 1px; height: 42px; background: var(--line-fuerte); }

.mes-tramos {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
  padding-top: 16px; border-top: 1px solid var(--line);
}
.mes-tramo { display: flex; align-items: flex-start; gap: 9px; min-width: 0; }
.mes-punto {
  width: 8px; height: 8px; border-radius: 3px; flex-shrink: 0; margin-top: 5px;
}
.mes-nota {
  font-size: 10.5px; color: var(--text-muted); margin-top: 4px; line-height: 1.45;
}

@media (max-width: 720px) {

  .mes-tramos { grid-template-columns: 1fr; gap: 12px; }
  .mes-totales > div:last-child { padding-left: 16px; }
  .mes-totales .display { font-size: 18px !important; }
  .mes-totales .icon-tile { width: 34px; height: 34px; font-size: 12px; }
}

.registro-overlay {
  position: fixed; inset: 0; z-index: 200; display: none;
  align-items: center; justify-content: center; padding: 20px;
  background: rgba(0, 0, 0, .72);
  animation: fadeIn .2s var(--ease-out);
}
.registro-overlay.open { display: flex; }

.registro-box {

  --modal-pad: 24px;
  width: 100%; max-width: 720px;

  min-width: 0; box-sizing: border-box;
  max-height: 90vh; overflow-y: auto;
  padding: var(--modal-pad); border-radius: var(--r-xl);
  background: var(--bg-elev);
  animation: modalUp .28s var(--ease-out);
}

@media (max-width: 640px) {

  .registro-overlay { align-items: flex-end; padding: 0; }
  .registro-box {
    --modal-pad: 18px;
    max-width: none; max-height: 92vh;
    border-radius: var(--r-xl) var(--r-xl) 0 0;
    padding: var(--modal-pad) var(--modal-pad) calc(24px + env(safe-area-inset-bottom));
    animation: hojaSube .3s var(--ease-out);
  }
}

.registro-box .modal-head::before {
  background: radial-gradient(65% 165% at 0% 0%, var(--amber-tenue), transparent 60%);
}
.registro-box .modal-title { font-size: 20px; }

.registro-grid {
  display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 22px;
  align-items: start; margin-bottom: 20px;
}
.registro-monto { min-width: 0; }
.registro-monto .amount-display { padding: 8px 0 14px; font-size: 30px; }
.registro-monto .keypad { gap: 7px; }
.registro-monto .keypad button { padding: 13px 0; font-size: 17px; }
.registro-datos { min-width: 0; }

.registro-box form > .btn-block:last-child {
  position: sticky; bottom: 0; z-index: 2;
  box-shadow: 0 -16px 18px 6px var(--bg-elev);
}

@media (max-width: 640px) {

  .registro-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }

  .registro-datos .chip { white-space: normal; text-align: center; }
  .registro-monto .amount-display { padding: 4px 0 12px; font-size: 27px; }
  .registro-monto .keypad button { padding: 11px 0; font-size: 16px; }
}

.toast-container {
  position: fixed; top: 20px; right: 20px; z-index: 300;
  display: flex; flex-direction: column; gap: 9px; max-width: 340px;
}
.toast {
  display: flex; align-items: center; gap: 11px;
  padding: 14px 17px; border-radius: var(--r-md);
  background: var(--surface-2); color: var(--text-primary);
  font-size: 12.5px; box-shadow: 0 12px 32px rgba(0, 0, 0, .5);
  animation: toastIn .3s var(--ease-out);
}
@keyframes toastIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }
.toast.success { border-left: 3px solid var(--green); }
.toast.error, .toast.danger { border-left: 3px solid var(--coral); }
.toast.warning { border-left: 3px solid var(--amber); }

.deuda-panel { position: relative; overflow: hidden; }
.deuda-cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 22px; }
.deuda-datos { display: flex; gap: 10px; flex-wrap: wrap; }
.deuda-dato {
  padding: 13px 17px; border-radius: var(--r-md); min-width: 116px;
  background: var(--surface-2);
}
.deuda-lista {
  margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 7px;
}
.deuda-item { border-radius: var(--r-md); transition: background .2s var(--ease-out); }
.deuda-item:hover { background: var(--surface-2); }
.deuda-item[open] { background: var(--surface-2); }
.deuda-item > summary { display: flex; align-items: center; gap: 13px; padding: 12px 14px; cursor: pointer; }
.deuda-item-main { flex: 1; min-width: 0; display: block; }
.deuda-item-nombre {
  display: block; font-size: 13.5px; font-weight: 600; margin-bottom: 3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.deuda-item-main .row-meta { display: block; }
.deuda-item-barra {
  display: block; height: 5px; margin-top: 8px; border-radius: 100px;
  background: var(--surface-3); overflow: hidden;
}
.deuda-item-barra > span { display: block; height: 100%; border-radius: 100px; transition: width .5s var(--ease-out); }
.deuda-item-monto { text-align: right; flex-shrink: 0; }
.deuda-item-monto .mono { display: block; font-size: 14px; }
.deuda-item-monto .row-meta { display: block; }
.deuda-item-flecha { font-size: 9px; color: var(--text-muted); flex-shrink: 0; transition: transform .2s var(--ease-out); }
.deuda-item[open] .deuda-item-flecha { transform: rotate(180deg); }
.deuda-item-detalle { padding: 2px 14px 15px 65px; animation: deudaAbre .22s var(--ease-out); }
@keyframes deudaAbre { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.deuda-item-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)); gap: 12px; }
.deuda-item-nums > div { display: flex; flex-direction: column; gap: 3px; }
.deuda-item-nums .mono { font-size: 13px; }
.deuda-item-detalle .pips { justify-content: flex-start; }
.deuda-item-detalle .pip { max-width: 26px; }

.subs-cabecera {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px 20px; margin-bottom: 18px;
}
.subs-titulo { flex: 1 1 0; min-width: 0; }
.subs-cabecera > .btn { flex-shrink: 0; margin-top: 2px; }

.subs-cifras {
  display: grid; grid-template-columns: repeat(2, minmax(0, 250px));
  gap: 12px; margin-bottom: 18px;
}
.subs-cifras .tc-resumen { flex: none; }

.sub-row {
  display: grid; align-items: center; gap: 16px;
  grid-template-columns: 38px minmax(0, 1fr) 104px 104px auto;
  padding: 15px 20px; border-bottom: 1px solid var(--line);
}

.card > .sub-row, .card .row-list > .sub-row { padding-left: 0; padding-right: 0; }
.sub-row:last-child { border-bottom: none; }
.sub-acciones {
  display: grid; grid-template-columns: auto 96px 96px;
  align-items: center; gap: 12px; margin-left: 8px;
}
.sub-acciones > .form-borrar {
  padding-right: 12px; border-right: 1px solid var(--line);
}
.sub-acciones > .form-borrar .icon-btn { color: var(--text-muted); }
.sub-acciones > .form-borrar .icon-btn:hover { color: var(--coral); }
.sub-estado { display: flex; align-items: center; gap: 9px; margin: 0; }
.sub-estado-texto { font-size: 11.5px; font-weight: 500; color: var(--text-secondary); }
.sub-pago { display: flex; justify-content: flex-end; width: 100%; }
.sub-pago .btn { width: 100%; justify-content: center; }
.sub-pagada {
  background: var(--green-tenue); color: var(--green); border-color: transparent;
}
.sub-pagada:hover { background: rgba(83, 210, 88, .22); }

summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
summary::marker { content: ''; }
details[open] summary .fa-chevron-down { transform: rotate(180deg); }
summary .fa-chevron-down { transition: transform .2s var(--ease-out); }

a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--amber); outline-offset: 2px; border-radius: var(--r-sm);
}
.nav-item:focus-visible { outline-offset: -2px; }

@media (pointer: coarse) {
  .icon-btn { min-width: 44px; min-height: 44px; }
  .btn-sm { min-height: 44px; }
  .chip { min-height: 44px; }
  .switch { min-height: 44px; }
}

.bottomnav {
  display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 50;
  height: var(--bottombar-h); padding: 0 6px;
  align-items: center; justify-content: space-around;
  background: var(--bg-elev);
  border-top: 1px solid var(--line);
  padding-bottom: env(safe-area-inset-bottom);
}
.bottomnav .nav-item {
  flex: 1 1 0; min-width: 0; flex-direction: column; gap: 4px;
  padding: 8px 2px; justify-content: center; text-align: center;
  border-radius: var(--r-sm); background: none;
  font-size: 10px; font-weight: 600;
}
.bottomnav .nav-item i { width: auto; font-size: 17px; opacity: .55; transition: opacity .18s, color .18s; }
.bottomnav .nav-item span:not(.nav-count) { opacity: .6; }
.bottomnav .nav-item.active { background: none; color: var(--amber); }
.bottomnav .nav-item.active i { opacity: 1; color: var(--amber); }
.bottomnav .nav-item.active span:not(.nav-count) { opacity: 1; }
.bottomnav .nav-item > .nav-count {
  position: absolute; top: 5px; left: 50%; margin-left: 7px;
  min-width: 16px; padding: 1px 5px; font-size: 9px;
}

.fab-group {
  display: none; position: fixed; right: 16px; z-index: 55;
  bottom: calc(var(--bottombar-h) + 16px);
  flex-direction: column; align-items: center; gap: 10px;
}
.fab {
  display: none; width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0;
  align-items: center; justify-content: center;
  border: none; cursor: pointer; color: var(--tinta-ambar);
  background: var(--amber);
  box-shadow: 0 8px 24px rgba(255, 170, 44, .38);
  transition: transform .18s var(--ease-spring);
}
.fab:active { transform: scale(.93); }
.fab-mini {
  width: 44px; height: 44px;
  background: var(--green); color: #062b08;
  box-shadow: 0 6px 18px rgba(83, 210, 88, .34);
}

@media (max-width: 1000px) {
  :root { --sidebar-w: 76px; }
  .sidebar { padding: 20px 10px; align-items: center; }
  .brand-name, .brand-sub, .nav-title,
  .sidebar .nav-item > span:not(.nav-count) { display: none; }

  .brand { gap: 0; padding: 4px 0 20px; justify-content: center; width: 100%; }
  .brand > span:last-child { display: none; }

  .sidebar > nav, .nav-group, .sidebar-foot { width: 100%; }
  .sidebar-foot { padding: 12px 8px; }

  .sidebar { scrollbar-width: none; }
  .sidebar::-webkit-scrollbar { display: none; }
  .sidebar .nav-item { justify-content: center; padding: 13px 0; }
  .sidebar .nav-item i { width: auto; font-size: 16px; }
  .sidebar .nav-item > .nav-count {
    position: absolute; top: 6px; right: 11px;
    min-width: 8px; width: 8px; height: 8px; padding: 0;
    font-size: 0; border-radius: 50%;
    box-shadow: 0 0 0 2px var(--bg-elev);
  }
  .sidebar .nav-item[data-label]::after {
    content: attr(data-label);
    position: absolute; left: calc(100% + 10px); top: 50%;
    transform: translateY(-50%) translateX(-4px);
    padding: 7px 11px; border-radius: 9px; white-space: nowrap;
    font-size: 11.5px; font-weight: 600; color: var(--text-primary);
    background: var(--surface-2);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
    opacity: 0; pointer-events: none; z-index: 60;
    transition: opacity .16s var(--ease-out), transform .16s var(--ease-out);
  }
  .sidebar .nav-item[data-label]:hover::after { opacity: 1; transform: translateY(-50%) translateX(0); }
  .health .label, .health .progress-bar,
  .health .health-nota, .health .health-detalle { display: none; }

  .health.health-nota > div:not(.label) { display: none; }
  .health { text-align: center; padding: 12px 6px; }
  .main { padding: 22px; }
  .topbar + .main { padding-top: 0; }

  .topbar { gap: 10px; padding: 20px 22px 0; }
  .search { min-width: 0; flex: 1 1 150px; }
  .search .kbd { display: none; }

  .solo-ancho { display: none !important; }
  .solo-medio { display: inline-flex !important; }
  .topbar .saludo-sub { display: none; }
}

@media (max-width: 720px) {
  .sidebar { display: none; }

  .main, .topbar + .main {
    padding: calc(18px + env(safe-area-inset-top)) 16px calc(var(--bottombar-h) + 26px);
  }
  .sub-row { padding-left: 16px; padding-right: 16px; }

  .form-row {
    display: grid; grid-template-columns: 1fr;
    gap: 16px; margin-bottom: 16px;
  }
  .form-row > div { min-width: 0; }

  .input-amount { font-size: 19px; padding: 14px; }

  input[type=date], input[type=number] { min-width: 0; }

  .field .chip, .form-row .chip { white-space: normal; text-align: center; }
  .glass > .row, .glass > .row-list > .row { padding-left: 16px; padding-right: 16px; }
  .bottomnav { display: flex; }
  .fab-group { display: flex; }
  .fab-group .fab { display: flex; }
  .grid-metrics { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
  .hide-mobile, .solo-medio, .solo-ancho { display: none !important; }
  .solo-movil { display: inline; }
  .page-title { font-size: 21px; padding-left: 13px; }
  .page-title::before { width: 3.5px; }
  .page-title + .hint,
  div:has(> .page-title) + .hint { padding-left: 13px; font-size: 13px; margin-top: 7px; }
  .card, .card-lg { padding: 18px; }
  .modal-box { --modal-pad: 20px; padding: var(--modal-pad); border-radius: var(--r-lg); }
  .amount-display { font-size: 32px; }
  .toast-container { top: auto; bottom: calc(var(--bottombar-h) + 14px); left: 14px; right: 14px; max-width: none; }

  .sub-row {
    grid-template-columns: 38px minmax(0, 1fr) auto;
    grid-template-areas:
      'avatar nombre monto'
      'acciones acciones acciones';
    align-items: center; gap: 10px 11px;
    padding: 13px 14px;

    background: var(--surface-2);
    border-radius: var(--r-md);
    border-bottom: none;
  }

  .glass:has(> .sub-row) {
    display: flex; flex-direction: column; gap: 8px;
    padding: 8px; background: none; border: none;
  }

  .sub-row > :nth-child(1) { grid-area: avatar; width: 38px; height: 38px; font-size: 16px; }
  .sub-row > .row-main { grid-area: nombre; }
  .sub-row > .sub-monto { display: none; }

  .sub-row > .sub-acciones {
    grid-area: acciones;

    display: flex; align-items: center; justify-content: flex-end; gap: 8px;
    padding: 10px 0 0; border: none;
    border-top: 1px solid rgba(255, 255, 255, .06);
  }
  .sub-acciones form { margin: 0 !important; }

  .sub-acciones { margin-left: 0; }
  .sub-acciones > .sub-estado { order: 1; margin-right: auto !important; }
  .sub-acciones > .form-borrar { order: 2; }
  .sub-acciones > .sub-pago { order: 3; width: auto; }
  .sub-pago .btn { width: auto; min-width: 104px; }

  .subs-cabecera { align-items: center; margin-bottom: 14px; }
  .subs-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }

  .sub-acciones > .form-borrar {
    padding-right: 10px; border-right: 1px solid var(--line);
  }

  .sub-monto-movil {
    display: inline; font-size: 12.5px; font-weight: 700;
    color: var(--text-primary);
  }

  .sub-row .row-meta {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }

  .sub-row .row-title {
    white-space: normal; overflow: visible; text-overflow: clip;
    line-height: 1.35;
    display: flex; align-items: center; flex-wrap: wrap; gap: 6px;
  }

  .sub-row .row-title .badge { margin-left: 0 !important; }

  .sub-acciones .icon-btn {
    width: 40px; height: 40px; min-width: 40px; min-height: 40px;
    background: var(--surface-3);
  }
  .sub-acciones .icon-btn:hover { background: var(--surface-4, rgba(255, 255, 255, .12)); }
  .sub-acciones .switch { width: 46px; height: 28px; }

  .sub-acciones .switch::before {
    content: ''; position: absolute; inset: -8px -3px;
  }
  .sub-acciones .switch .knob { width: 22px; height: 22px; }
  .sub-acciones .switch.on .knob { transform: translateX(18px); }
  .sub-acciones .btn { min-height: 44px; padding: 0 16px; }

  .glass:has(> .sub-row):last-child { padding-bottom: 84px; }

  .deuda-item > summary { gap: 10px; padding: 12px 10px; }
  .deuda-item-detalle { padding-left: 14px; }
  .deuda-datos { width: 100%; }
  .deuda-dato { flex: 1; min-width: 104px; }
}

@media (max-width: 720px) {

  .topbar { display: none; }
  .saludo-card {
    display: flex; align-items: center; gap: 13px;
    background: var(--surface); border-radius: var(--r-lg);
    padding: 14px 16px; margin-bottom: 18px;
  }
  .saludo-card .avatar { width: 46px; height: 46px; font-size: 18px; }
  .saludo-card .saludo-txt { flex: 1; min-width: 0; }
  .saludo-card .saludo-hola { font-size: 13px; color: var(--text-secondary); }
  .saludo-card .saludo-nombre {
    font-family: 'Manrope', sans-serif; font-size: 18px; font-weight: 800;
    letter-spacing: -.025em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .saludo-campana {
    position: relative; width: 34px; height: 34px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    background: none; border: none; color: var(--text-primary); font-size: 18px;
  }
  .saludo-campana .punto {
    position: absolute; top: 4px; right: 5px;
    width: 8px; height: 8px; border-radius: 50%; background: var(--coral);
    box-shadow: 0 0 0 2px var(--surface);
  }

  .bottomnav {
    left: 14px; right: 14px;

    bottom: calc(14px + var(--safe-b));
    height: 66px; padding: 0 4px;
    border-radius: 24px; border: none;
    background: var(--surface);
    box-shadow: 0 10px 34px rgba(0, 0, 0, .5);
    padding-bottom: 0;
  }
  .bottomnav .nav-item { gap: 3px; padding: 8px 2px; font-size: 10.5px; }
  .bottomnav .nav-item i { font-size: 18px; }

  .bottomnav .nav-hueco { flex: 0 0 66px; }

  .fab-group {
    right: 50%; bottom: calc(34px + var(--safe-b));
    transform: translateX(50%);
    flex-direction: row-reverse; gap: 0;
  }
  .fab {
    width: 62px; height: 62px;
    background: var(--bg-elev); color: var(--amber);
    border: 3px solid var(--bg);
    box-shadow: 0 0 0 2px rgba(255, 170, 44, .5), 0 0 22px rgba(255, 170, 44, .35);
  }

  .fab-group .fab-mini { display: none; }

  .main { padding-bottom: calc(124px + 16px + var(--safe-b)); }

  .section-title { font-size: 19px; padding-left: 11px; }
  .section-head { margin: 24px 0 12px; }

  .mov-list { gap: 7px; }

  .swipe-mov .swipe-card { gap: 11px; padding: 12px 14px 12px 13px; }
  .mov-list .icon-tile, .mov-list .marca-tile { width: 34px; height: 34px; font-size: 13px; }
  .mov-monto { font-size: 13.5px; }

  .meta-fila { gap: 11px; padding: 13px 14px; }
  .meta-icono { width: 34px; height: 34px; font-size: 13px; border-radius: 11px; }
  .meta-monto { font-size: 15px; }
  .meta-linea { gap: 9px; margin-bottom: 7px; }
  .meta-pie { font-size: 10px; margin-top: 6px; }
}

.ia-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.ia-titulo {
  font-size: 16px; font-weight: 700; letter-spacing: -.015em;
  color: var(--text-primary);
}

.ia-card { position: relative; overflow: hidden; }
.ia-card::after {
  content: ''; position: absolute; top: -60px; right: -40px;
  width: 260px; height: 260px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 170, 44, .13), transparent 68%);
  pointer-events: none;
}
.ia-card > * { position: relative; z-index: 1; }

.ia-tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex-shrink: 0;
  border-radius: 13px; font-size: 16px;
  color: var(--amber);
  background: linear-gradient(150deg, var(--amber-borde), rgba(255, 170, 44, .1));
  border: 1px solid rgba(255, 170, 44, .3);
  box-shadow: 0 0 0 1px rgba(255, 170, 44, .06),
              0 6px 18px -6px rgba(255, 170, 44, .45);
}

.ia-diag {
  font-size: 16px; line-height: 1.62; letter-spacing: -.005em;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  text-wrap: pretty;
}

.ia-label {
  display: flex; align-items: center; gap: 10px;
  font-size: 10px; font-weight: 700; letter-spacing: .16em;
  text-transform: uppercase; color: rgba(245, 245, 245, .55);
  margin-bottom: 13px;
}

.ia-label::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%;
  background: var(--amber); flex-shrink: 0;
  box-shadow: 0 0 8px rgba(255, 170, 44, .7);
}
.ia-label::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(to right, rgba(255, 170, 44, .22), var(--line) 40%);
}

.ia-rec {
  display: flex; align-items: flex-start; gap: 13px;
  padding: 15px 17px; border-radius: var(--r-md);

  background: linear-gradient(158deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012));
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
  animation: ia-entra .5s var(--ease-out) both;
}
.ia-rec:nth-child(2) { animation-delay: .07s; }
.ia-rec:nth-child(3) { animation-delay: .14s; }
.ia-rec:nth-child(4) { animation-delay: .21s; }
.ia-rec:nth-child(5) { animation-delay: .28s; }

@keyframes ia-entra {
  from { opacity: 0; transform: translateY(7px); }
  to   { opacity: 1; transform: none; }
}

.ia-rec-num {
  display: flex; align-items: center; justify-content: center;
  width: 27px; height: 27px; flex-shrink: 0; border-radius: 9px;
  font-size: 12.5px; font-weight: 800; font-variant-numeric: tabular-nums;

  background: linear-gradient(150deg, var(--amber-claro), var(--amber-oscuro));
  color: #221703;
  box-shadow: 0 4px 12px -4px rgba(255, 170, 44, .55);
}
.ia-rec-txt {
  flex: 1; min-width: 0;
  font-size: 13.5px; line-height: 1.62; color: var(--text-primary);
  font-variant-numeric: tabular-nums; text-wrap: pretty;
}

.ia-proy {
  font-size: 13.5px; line-height: 1.62; color: var(--text-secondary);
  font-variant-numeric: tabular-nums; text-wrap: pretty;
}

.ia-cierre {
  position: relative; overflow: hidden;
  padding: 17px 19px 17px 22px; border-radius: var(--r-md);
  background: linear-gradient(100deg, rgba(255, 170, 44, .17), rgba(255, 170, 44, .06));
  border: 1px solid rgba(255, 170, 44, .18);
}
.ia-cierre::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: linear-gradient(var(--amber-claro), var(--amber-oscuro));
}
.ia-cierre-txt {
  font-size: 14.5px; line-height: 1.6; font-weight: 500;
  color: #ffd79a; text-wrap: pretty;
}

@media (prefers-reduced-motion: reduce) {
  .ia-rec { animation: none; }
}

@media (max-width: 720px) {
  .ia-diag { font-size: 15px; }
  .ia-rec { padding: 13px 14px; gap: 11px; }
  .ia-cierre-txt { font-size: 13.5px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important; transition-duration: .01ms !important;
  }
}

@media print {
  .sidebar, .topbar, .bottomnav, .fab-group, .toast-container { display: none !important; }
  body { background: #fff; color: #000; }
  .glass { background: #fff; border: 1px solid #ddd; }
}

.prestamo-card {
  position: relative; display: block; overflow: hidden;
  padding: 17px 17px 17px 20px; border-radius: 19px;
  background: var(--surface-2);
  border: 1px solid var(--linea-prestamo, var(--line));
}
.prestamo-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--acento-prestamo, var(--amber));
}

.prestamo-card.cuotas {
  --acento-prestamo: #818cf8;
  --linea-prestamo: rgba(129, 140, 248, .22);
  background: linear-gradient(100deg, rgba(129, 140, 248, .1), var(--surface-2) 62%);
}

.prestamo-card.unico {
  --acento-prestamo: #4b8cff;
  --linea-prestamo: rgba(75, 140, 255, .22);
  background: linear-gradient(100deg, rgba(75, 140, 255, .1), var(--surface-2) 62%);
}

.prestamo-card.saldado {
  --acento-prestamo: var(--green);
  --linea-prestamo: rgba(83, 210, 88, .2);
  background: linear-gradient(100deg, rgba(83, 210, 88, .07), var(--surface-2) 62%);
}
.prestamo-card.saldado .row-meta { color: var(--text-muted); }

@media (max-width: 720px) {
  .prestamo-card { padding: 15px 15px 15px 18px; }
}

.deuda-card {
  --acento-rgb: 129, 140, 248;
  position: relative;
  border: none;
  background:
    radial-gradient(130% 150% at 0% 0%, rgba(var(--acento-rgb), .22), transparent 58%),
    var(--surface);
  box-shadow: 0 20px 42px -26px rgba(var(--acento-rgb), .75);
}
.deuda-card::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit; padding: 1.5px;
  background: linear-gradient(135deg,
    rgba(var(--acento-rgb), .95),
    rgba(var(--acento-rgb), .28) 38%,
    rgba(255, 255, 255, .10) 62%,
    rgba(var(--acento-rgb), .8));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
}
.deuda-card:hover {
  background:
    radial-gradient(130% 150% at 0% 0%, rgba(var(--acento-rgb), .26), transparent 58%),
    var(--surface-2);
}

.deuda-card.urg-vencida,
.deuda-card.urg-critica {--acento-rgb: 226, 92, 92; }
.deuda-card.urg-proxima {--acento-rgb: 255, 170, 44; }
.deuda-card.urg-saldada {--acento-rgb: 83, 210, 88; }

.pago-fila {
  position: relative; display: flex; align-items: center; gap: 13px;
  padding: 13px 14px 13px 17px; border-radius: 15px;
  background: var(--pago-fondo, transparent);
  transition: background .18s var(--ease-out);
}
.pago-fila + .pago-fila { margin-top: 5px; }
.pago-fila:hover { background: var(--pago-hover, rgba(255, 255, 255, .04)); }

.pago-fila::before {
  content: ''; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--pago-acento);
}

.pago-ficha.marca { border: 1px solid; }
.pago-ficha.marca b {
  font-size: 15px; font-weight: 800; letter-spacing: -.02em;
}

.pago-ficha {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; flex-shrink: 0; border-radius: 13px;
  font-size: 14px;
  background: var(--pago-tenue); color: var(--pago-acento);
}

.pago-monto { font-size: 12.5px; flex-shrink: 0; }

.pago-fila.t-cuota {
  --pago-acento: #818cf8;
  --pago-tenue: rgba(129, 140, 248, .15);
  --pago-hover: rgba(129, 140, 248, .07);
}

.pago-fila.t-servicio {
  --pago-acento: var(--naranja);
  --pago-tenue: rgba(251, 146, 60, .15);
  --pago-hover: rgba(251, 146, 60, .07);
}

.pago-fila.t-cuenta {
  --pago-acento: #f472b6;
  --pago-tenue: rgba(244, 114, 182, .15);
  --pago-hover: rgba(244, 114, 182, .07);
}

.pago-fila.t-gasto {
  --pago-acento: #4b8cff;
  --pago-tenue: rgba(75, 140, 255, .15);
  --pago-hover: rgba(75, 140, 255, .07);
}

.pago-fila.atrasado {
  --pago-acento: var(--coral);
  --pago-tenue: var(--coral-tenue);
  --pago-fondo: rgba(226, 92, 92, .07);
  --pago-hover: rgba(226, 92, 92, .12);
}

.pago-fila.pagado {
  --pago-acento: var(--green);
  --pago-tenue: var(--green-tenue);
  opacity: .58;
}
.pago-fila.pagado .row-title { color: var(--text-secondary); }
.pago-fila.pagado .pago-monto { color: var(--text-muted); }

@media (max-width: 720px) {
  .pago-fila { padding: 12px 11px 12px 15px; gap: 11px; }
  .pago-ficha { width: 34px; height: 34px; border-radius: 11px; font-size: 12.5px; }
}

@media (max-width: 560px) {
  .modal-overlay { align-items: flex-end; padding: 0; }
  .modal-box {
    --modal-pad: 18px;
    max-width: none !important;
    width: 100%; max-height: 92dvh;
    border-radius: var(--r-xl) var(--r-xl) 0 0;
    padding-bottom: calc(var(--modal-pad) + env(safe-area-inset-bottom));
    animation: hojaSube .3s var(--ease-out);
  }
  .modal-box form > .btn-block:last-child {
    bottom: env(safe-area-inset-bottom);
    box-shadow: 0 -14px 16px 10px var(--bg-elev),
                0 40px 0 40px var(--bg-elev);
  }
  .modal-title { font-size: 17px; }
  .modal-close { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
  .modal-box { animation: none !important; }
}

@media (max-width: 560px) {
  .modal-icon { width: 38px; height: 38px; border-radius: 13px; font-size: 14px; }
  .modal-titulo { gap: 11px; }
}

.tour-capa { position: fixed; inset: 0; z-index: 400; display: none; }
.tour-capa.on { display: block; }
.tour-hueco {
  position: fixed; pointer-events: none; border-radius: 18px;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, .76), 0 0 0 5px rgba(255, 170, 44, .2);
  outline: 2px solid var(--amber);
  transition: top .24s var(--ease-out), left .24s var(--ease-out),
              width .24s var(--ease-out), height .24s var(--ease-out);
}
.tour-globo {
  position: fixed; width: min(360px, calc(100vw - 28px));
  padding: 18px; border-radius: var(--r-lg);
  background: var(--bg-elev); border: 1px solid var(--line-fuerte);
  box-shadow: 0 26px 60px -20px rgba(0, 0, 0, .95);
  animation: tourEntra .24s var(--ease-out);
}
@keyframes tourEntra { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.tour-cab { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.tour-ficha {
  width: 38px; height: 38px; flex-shrink: 0;
  display: grid; place-items: center;
  border-radius: 13px; font-size: 14px; color: var(--tinta-ambar);
  background: linear-gradient(150deg, var(--amber-claro), var(--amber-oscuro));
  box-shadow: 0 6px 16px -6px rgba(255, 170, 44, .6);
}
.tour-cab-txt { min-width: 0; }
.tour-eyebrow {
  font-size: 10px; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--amber);
}
.tour-titulo { font-size: 16px; font-weight: 800; letter-spacing: -.02em; margin-top: 2px; }
.tour-texto { font-size: 12.5px; line-height: 1.6; color: var(--text-secondary); margin: 0 0 14px; }
.tour-puntos { display: flex; gap: 5px; margin-bottom: 14px; }
.tour-punto {
  width: 6px; height: 6px; border-radius: 50%; background: var(--surface-3);
  transition: width .2s var(--ease-out), background .2s;
}
.tour-punto.hecho { background: var(--amber-oscuro); }
.tour-punto.on { width: 18px; border-radius: 100px; background: var(--amber); }
.tour-pie { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tour-botones { display: flex; gap: 8px; }
.tour-omitir {
  border: none; background: none; cursor: pointer; padding: 6px 0;
  color: var(--text-muted); font-size: 11.5px; font-weight: 600;
}
.tour-omitir:hover { color: var(--text-secondary); }

.tour-pildora {
  position: fixed; z-index: 390; left: 18px; bottom: 18px;
  display: none; align-items: center; gap: 8px;
  padding: 7px 7px 7px 14px; border-radius: 100px; cursor: pointer;
  background: var(--bg-elev); border: 1px solid var(--amber);
  font-size: 12px; font-weight: 700;
  box-shadow: 0 14px 34px -14px rgba(0, 0, 0, .9);
}
.tour-pildora.on { display: flex; }
.tour-pildora-txt { display: flex; align-items: center; gap: 8px; }
.tour-pildora i { color: var(--amber); font-size: 11px; }
.tour-pildora-x {
  width: 24px; height: 24px; flex-shrink: 0; border-radius: 50%;
  border: none; cursor: pointer;
  background: var(--surface-2); color: var(--text-muted); font-size: 10px;
}
.tour-pildora-x:hover { background: var(--surface-3); color: var(--text-primary); }

.tour-fin {
  position: fixed; z-index: 400; left: 50%; bottom: 26px; transform: translateX(-50%);
  display: flex; align-items: center; gap: 10px;
  padding: 13px 18px; border-radius: 100px;
  background: var(--bg-elev); border: 1px solid var(--line-fuerte);
  font-size: 12.5px; font-weight: 600;
  box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .9);
  animation: tourEntra .24s var(--ease-out);
}
.tour-fin i { color: var(--green); }
.tour-fin.irse { opacity: 0; transition: opacity .5s; }

@keyframes tour-desliza {
   0%,  8% { transform: translateX(0); }
  22%, 36% { transform: translateX(84px); }
  50%, 58% { transform: translateX(0); }
  72%, 86% { transform: translateX(-84px); }
 100%      { transform: translateX(0); }
}
.tour-gesto .swipe-card,
.tour-gesto.swipe-card {
  animation: tour-desliza 4.6s var(--ease-out) infinite;
}

.tour-gesto .swipe-acciones { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .tour-gesto .swipe-card,
  .tour-gesto.swipe-card { animation: none; }
}

@media (max-width: 720px) {
  .tour-pildora { left: 14px; bottom: calc(var(--bottombar-h) + 88px); }
  .tour-globo { padding: 16px; }
  .tour-titulo { font-size: 15px; }
  .tour-fin { left: 14px; right: 14px; transform: none; justify-content: center; bottom: calc(var(--bottombar-h) + 16px); }
}

.pasos-card { padding: 18px 19px; margin-bottom: 18px; position: relative; overflow: hidden; }
.pasos-card::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(90% 130% at 100% 0%, rgba(255, 170, 44, .1), transparent 55%);
}
.pasos-card > * { position: relative; }
.pasos-cab {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 14px; flex-wrap: wrap; margin-bottom: 15px;
}
.pasos-eyebrow {
  font-size: 10.5px; font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--amber);
}
.pasos-titulo { font-size: 17px; font-weight: 800; letter-spacing: -.02em; margin-top: 4px; }
.pasos-acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.pasos-progreso { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pasos-progreso .progress-bar { flex: 1; }
.pasos-cuenta {
  flex-shrink: 0; font-weight: 600; font-variant-numeric: tabular-nums;
  font-size: 11.5px; color: var(--text-muted);
}
.pasos-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr)); gap: 9px; }
.paso-item {
  display: flex; align-items: center; gap: 11px;
  padding: 12px 13px; border-radius: var(--r-md);
  background: var(--surface-2); border: 1px solid transparent;
  color: var(--text-primary); text-decoration: none;
  transition: background .18s var(--ease-out), border-color .18s;
}
.paso-item:hover { background: var(--surface-3); color: var(--text-primary); }
.paso-check {
  width: 28px; height: 28px; flex-shrink: 0;
  display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--line-fuerte); color: var(--text-muted); font-size: 11px;
}
.paso-txt { display: flex; flex-direction: column; min-width: 0; }
.paso-titulo { font-size: 12.5px; font-weight: 700; }
.paso-nota { font-size: 11px; color: var(--text-muted); margin-top: 2px; }
.paso-flecha { margin-left: auto; flex-shrink: 0; font-size: 9px; color: var(--text-muted); }
.paso-item.hecho { background: none; border-color: var(--line); }
.paso-item.hecho .paso-check { background: var(--green); border-color: var(--green); color: #062b08; }
.paso-item.hecho .paso-titulo { color: var(--text-muted); text-decoration: line-through; }

.pasos-ocultos [data-pasos] { display: none !important; }

.tour-omitir { white-space: nowrap; }
.pasos-cuenta { white-space: nowrap; }
.paso-titulo, .paso-nota { display: block; }

input[type=date] {
  -webkit-appearance: none; appearance: none;
  text-align: left; min-height: 46px;
}
input[type=date]::-webkit-date-and-time-value { text-align: left; margin: 0; }
input[type=date]::-webkit-datetime-edit { text-align: left; padding: 0; }
input[type=date]::-webkit-datetime-edit-fields-wrapper { padding: 0; }

.cartola-layout {
  display: grid; gap: 18px; align-items: start;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
}

.cartola-zona {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 8px; min-height: 190px; padding: 28px 20px; text-align: center;
  border: 1.5px dashed var(--line-fuerte); border-radius: var(--r-lg);
  background: var(--surface-2); cursor: pointer;
  transition: border-color .18s var(--ease-out), background .18s var(--ease-out);
}
.cartola-zona:hover, .cartola-zona.encima {
  border-color: var(--amber); background: var(--amber-tenue);
}
.cartola-zona.con-archivo { border-style: solid; border-color: var(--green); }
.cartola-icono {
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--surface-3); color: var(--text-secondary); font-size: 17px;
}
.cartola-zona.con-archivo .cartola-icono { background: var(--green-tenue); color: var(--green); }
.cartola-titulo {
  font-size: 14px; font-weight: 700; color: var(--text-primary);
  max-width: 100%; text-wrap: balance;
}

.cartola-zona.con-archivo .cartola-titulo {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cartola-nota { font-size: 11.5px; color: var(--text-muted); }

.cartola-pasos {
  margin: 0; padding-left: 18px;
  display: flex; flex-direction: column; gap: 10px;
  font-size: 12px; line-height: 1.55; color: var(--text-secondary);
}
.cartola-pasos b { color: var(--text-primary); }

.cartola-aviso {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 14px 16px; margin-bottom: 16px;
  border-radius: var(--r-md); border: 1px solid transparent;
  font-size: 12.5px; line-height: 1.55; color: var(--text-secondary);
}
.cartola-aviso b { color: var(--text-primary); }
.cartola-aviso i { margin-top: 2px; font-size: 13px; flex-shrink: 0; }
.cartola-aviso.ok  { background: var(--green-tenue); border-color: rgba(83, 210, 88, .3); }
.cartola-aviso.ok i { color: var(--green); }
.cartola-aviso.mal { background: var(--coral-tenue); border-color: var(--coral-borde); }
.cartola-aviso.mal i { color: var(--coral); }

.cartola-resumen {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px; margin-bottom: 16px;
}
.cartola-resumen > div {
  display: flex; flex-direction: column; gap: 4px;
  padding: 13px 15px; border-radius: var(--r-md);
  background: var(--surface); border: 1px solid var(--line-fuerte);
}

.cartola-resumen > div:nth-child(1) {
  background: color-mix(in srgb, var(--teal) 8%, var(--surface));
  border-color: rgba(47, 216, 200, .3);
}
.cartola-resumen > div:nth-child(1) b { color: var(--teal); }
.cartola-resumen > div:nth-child(3) {
  background: color-mix(in srgb, var(--green) 8%, var(--surface));
  border-color: rgba(83, 210, 88, .3);
}
.cartola-resumen > div:nth-child(4) {
  background: color-mix(in srgb, var(--coral) 8%, var(--surface));
  border-color: var(--coral-borde);
}
.cartola-resumen b { font-size: 16px; font-weight: 700; }

.cartola-barra { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }

.cartola-cabecera, .cartola-fila {
  display: grid;
  grid-template-columns: 24px 46px minmax(0, 1fr) 168px 122px;
  column-gap: 12px; row-gap: 8px;
  padding: 12px 18px;
}

.cartola-cabecera { align-items: center; }
.cartola-fila > *, .cartola-principal > *, .cartola-meta > * { align-self: center; }
.cartola-cabecera {
  font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  color: var(--text-muted); background: var(--surface-2);
}
.cartola-fila { border-top: 1px solid var(--line); }
.cartola-fila:hover { background: rgba(255, 255, 255, .02); }

.cartola-fila.repetida { opacity: .5; }
.cartola-fila.repetida:hover { opacity: 1; }

.cartola-fila.apagada { opacity: .42; }
.cartola-fila.apagada:hover { opacity: 1; }

.cartola-check { width: 17px; height: 17px; accent-color: var(--cartola-acento); cursor: pointer; }
.cartola-fecha { font-size: 12px; color: var(--text-secondary); cursor: pointer; }

.cartola-principal, .cartola-meta { display: contents; }
.cartola-check    { grid-column: 1; grid-row: 1; }
.cartola-fecha    { grid-column: 2; grid-row: 1; }
.cartola-desc     { grid-column: 3; grid-row: 1; }
.cartola-cat-caja { grid-column: 4; grid-row: 1; }
.cartola-monto    { grid-column: 5; grid-row: 1; }
.cartola-cat { width: 100%; }

.cartola-cat-txt, .cartola-cat-caja > i, .cartola-sep { display: none; }

.cartola-desc { min-width: 0; }
.cartola-desc input[type=text] {

  padding: 9px 11px; font-size: 12.5px;
  background: transparent; border: 1px solid transparent; border-radius: var(--r-sm);
}
.cartola-desc input[type=text]:hover { background: var(--surface-2); }
.cartola-desc input[type=text]:focus {
  background: var(--surface-2); border-color: var(--cartola-acento);
}

.cartola-detalle {
  grid-column: 3 / -1;
  display: flex; flex-direction: column; gap: 6px;
  padding-left: 11px;
}
.cartola-marcas { display: flex; flex-wrap: wrap; gap: 6px 8px; align-items: center; }
.cartola-nota-fila { font-size: 10.5px; line-height: 1.45; color: var(--amber); }

.cartola-nota-fila.suave { color: var(--text-muted); }
.cartola-extra {
  display: flex; align-items: center; gap: 7px;
  font-size: 11px; color: var(--text-secondary); cursor: pointer;
}

.cartola-extra-txt { min-width: 0; }
.cartola-extra input { width: 14px; height: 14px; accent-color: var(--green); flex-shrink: 0; }

.cartola-deben { display: flex; flex-direction: column; gap: 6px; }

.cartola-deben-cuanto {
  font-family: var(--mono, ui-monospace, monospace);
  font-size: 10.5px; font-weight: 700; color: var(--green);
  background: rgba(83, 210, 88, .12);
  padding: 2px 7px; border-radius: 100px; white-space: nowrap;
}
.cartola-deben-quien {
  display: flex; gap: 7px; align-items: center; flex-wrap: wrap;
  padding-left: 21px;
}
.cartola-deben-quien select,
.cartola-deben-quien input[type=text] {
  width: auto; min-width: 0; padding: 7px 10px; font-size: 11.5px;
}
.cartola-deben-quien select { padding-right: 30px; }
.cartola-deben-quien input[type=text] { flex: 1; max-width: 200px; }

.cartola-deben-quien[hidden] { display: none; }
.cartola-deben-quien input[type=text][hidden] { display: none; }

.cartola-cat { padding: 9px 11px; font-size: 12px; }
.cartola-monto { text-align: right; font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.cartola-monto.entra { color: var(--green); }
.cartola-monto.sale  { color: var(--text-primary); }

.cartola-pie {
  position: sticky; bottom: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin-top: 14px; padding: 14px 18px;
  border-radius: var(--r-lg); border: 1px solid var(--line-fuerte);
  background: var(--bg-elev);
  box-shadow: 0 -8px 26px rgba(0, 0, 0, .35);
}
.cartola-pie .btn:disabled { opacity: .45; cursor: not-allowed; }

.cartola-tabla { padding: 0; overflow: hidden; }

@media (max-width: 900px) {
  .cartola-layout { grid-template-columns: minmax(0, 1fr); }
  .cartola-cabecera { display: none; }

  .cartola-tabla {
    display: flex; flex-direction: column; gap: 10px;
    padding: 0; background: none; border: none;
    border-radius: 0; overflow: visible;
  }

  .cartola-fila {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    column-gap: 13px; row-gap: 6px;
    padding: 14px 15px;
    background: color-mix(in srgb, var(--teal) 5%, var(--surface));
    border-radius: var(--r-md);

    border: 1px solid rgba(47, 216, 200, .28);
  }
  .cartola-fila:has(.cartola-monto.entra) {
    background: color-mix(in srgb, var(--green) 5%, var(--surface));
    border-color: rgba(83, 210, 88, .32);
  }

  .cartola-fila.apagada, .cartola-fila.repetida {
    background: var(--surface);
    border-color: var(--line-fuerte);
  }
  .cartola-fila:hover { background: color-mix(in srgb, var(--teal) 5%, var(--surface)); }
  .cartola-fila.apagada:hover, .cartola-fila.repetida:hover { background: var(--surface); }
  .cartola-fila > *, .cartola-principal > *, .cartola-meta > * { align-self: auto; }

  .cartola-fecha, .cartola-desc, .cartola-cat-caja, .cartola-monto {
    grid-column: auto; grid-row: auto;
  }
  .cartola-check {
    grid-column: 1; grid-row: 1;
    width: 20px; height: 20px; margin-top: 1px;
  }
  .cartola-principal, .cartola-meta, .cartola-detalle { grid-column: 2; }

  .cartola-principal { display: flex; align-items: baseline; gap: 12px; }
  .cartola-desc { flex: 1; min-width: 0; margin: 0; padding: 0; }

  .cartola-tabla .cartola-fila .cartola-desc input[type=text] {
    width: 100%; padding: 1px 0 4px;
    font-size: 16px; font-weight: 600; line-height: 1.25;
    color: var(--text-primary);

    text-overflow: ellipsis;
    background: none !important;
    border: none !important;
    border-bottom: 1px dashed var(--line-fuerte) !important;
    border-radius: 0;
  }
  .cartola-tabla .cartola-fila .cartola-desc input[type=text]:focus {
    outline: none;
    border-bottom: 1px solid var(--cartola-acento) !important;
  }
  .cartola-monto { flex-shrink: 0; font-size: 16.5px; text-align: right; }
  .cartola-monto.sale { color: var(--text-primary); }

  .cartola-meta {
    display: flex; align-items: center; gap: 7px;
    min-width: 0; margin-top: 1px;
  }
  .cartola-fecha {
    font-size: 12.5px; font-weight: 600; letter-spacing: .01em;
    color: var(--text-muted); flex-shrink: 0;
  }
  .cartola-sep { display: inline; color: var(--text-muted); opacity: .55; }

  .cartola-cat-caja {
    position: relative; display: inline-flex; align-items: center; gap: 5px;
    min-width: 0; width: auto;
  }
  .cartola-cat-txt {
    display: block; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    font-size: 12.5px; font-weight: 700; color: var(--cartola-acento);
  }
  .cartola-cat-caja > i {
    display: block; font-size: 8px; color: var(--cartola-acento);
    opacity: .8; flex-shrink: 0;
  }
  .cartola-tabla .cartola-fila .cartola-cat {
    position: absolute; inset: -4px -6px;
    width: auto; height: auto; padding: 0; margin: 0;
    font-size: 16px; opacity: 0;
    background: none; border: none; border-radius: var(--r-sm);
    appearance: none; -webkit-appearance: none;
  }

  .cartola-detalle {
    display: flex; flex-direction: column; gap: 8px;
    margin: 4px 0 0; padding: 0; border: none;
  }
  .cartola-marcas { gap: 6px 8px; }
  .cartola-nota-fila { font-size: 11px; line-height: 1.45; }

  .cartola-extra {
    gap: 10px; padding: 9px 11px;
    font-size: 12.5px; color: var(--text-secondary);
    background: rgba(0, 0, 0, .22);
    border-radius: var(--r-sm);
  }
  .cartola-extra input[type=checkbox] {
    width: 17px; height: 17px; margin: 0;
    accent-color: var(--cartola-acento);
  }

  .cartola-extra-txt {
    min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .cartola-deben-cuanto { margin-left: auto; flex-shrink: 0; font-size: 10.5px; }
  .cartola-deben { gap: 7px; }
  .cartola-deben-quien { padding-left: 0; gap: 8px; }
  .cartola-deben-quien select {
    width: 100%; font-size: 16px; padding: 10px 30px 10px 12px;
    background-color: var(--bg-elev);
  }
  .cartola-deben-quien input[type=text] {
    width: 100%; max-width: none; font-size: 16px; padding: 10px 12px;
    background: var(--bg-elev);
  }

  .cartola-pie {
    flex-direction: column; align-items: stretch; text-align: center;
    bottom: calc(var(--bottombar-h) + 10px);
  }
}

@media (max-width: 560px) {

  .cartola-zona { min-height: 150px; padding: 22px 16px; }
  .cartola-icono { width: 40px; height: 40px; font-size: 15px; }
  .cartola-titulo { font-size: 13.5px; }

  .cartola-pasos { padding-left: 0; list-style-position: inside; gap: 12px; }
  .cartola-pasos li { text-indent: -1.1em; padding-left: 1.1em; }

  .cartola-resumen { grid-template-columns: 1fr 1fr; }
  .cartola-resumen > div { padding: 11px 13px; }
  .cartola-resumen b { font-size: 14.5px; }

  .cartola-barra .btn { flex: 1; justify-content: center; padding: 9px 6px; }

  .cartola-tabla { gap: 9px; }
  .cartola-fila { padding: 13px 13px; column-gap: 11px; }
}

.aviso-encuesta {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  padding: 16px 20px; margin-bottom: 18px;
}
.aviso-encuesta-texto { flex: 1 1 220px; min-width: 0; }
.aviso-encuesta-acciones { display: flex; gap: 8px; align-items: center; }

.encuesta { max-width: 600px; margin: 0 auto; }
.encuesta-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.encuesta-cab .label { white-space: nowrap; }
.encuesta-omitir {
  background: none; border: 0; padding: 6px 0; cursor: pointer;
  font: inherit; font-size: 12px; font-weight: 600; color: var(--text-muted);
}
.encuesta-omitir:hover { color: var(--text-secondary); }
.encuesta-omitir[hidden] { display: none; }
.encuesta-progreso { height: 6px; margin-bottom: 26px; }
.encuesta-paso[hidden] { display: none; }
.encuesta-paso:not([hidden]) ~ .encuesta-paso:not([hidden]) { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--line); }
.encuesta-titulo {
  margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.03em;
  line-height: 1.25; text-wrap: pretty;
}
.encuesta-paso > .hint { margin: 6px 0 0; }
.encuesta-cuerpo { margin-top: 22px; }
.encuesta-grupo + .encuesta-grupo { margin-top: 20px; }
.encuesta-grupo .label { margin-bottom: 10px; }
.encuesta .chip { position: relative; white-space: nowrap; min-height: 44px; }
.encuesta .chip input { position: absolute; opacity: 0; pointer-events: none; }
.encuesta .chip:has(input:focus-visible) { outline: 2px solid var(--amber); outline-offset: 2px; }
.encuesta .chip:has(input:checked) { background: var(--amber); border-color: var(--amber); color: var(--tinta-ambar); }
.encuesta-escala { display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: 6px; }
.encuesta-escala .chip { padding: 0; height: 48px; font-size: 15px; font-weight: 800; border-radius: 14px; }
.encuesta-extremos {
  display: flex; justify-content: space-between; gap: 12px; margin-top: 8px;
  font-size: 11.5px; color: var(--text-muted); white-space: nowrap;
}
.encuesta-filas { display: flex; flex-direction: column; gap: 12px; }
.encuesta-fila { display: grid; grid-template-columns: minmax(96px, 130px) minmax(0, 1fr); align-items: center; gap: 12px; }
.encuesta-fila[hidden] { display: none; }
.encuesta-fila-nombre { font-size: 13px; font-weight: 700; }
.encuesta-fila .encuesta-escala .chip { height: 44px; font-size: 14px; border-radius: 12px; }
.encuesta textarea {
  width: 100%; box-sizing: border-box; min-height: 130px; resize: vertical;
  padding: 14px 16px; border-radius: 16px; border: 1px solid var(--line-fuerte);
  background: var(--bg-elev); color: var(--text-primary);
  font: inherit; font-size: 14px; line-height: 1.55;
}
.encuesta textarea:focus { outline: none; border-color: var(--amber); }
.encuesta-nav { display: flex; gap: 10px; margin-top: 26px; }
.encuesta-nav [hidden] { display: none; }
.encuesta-principal { flex: 1; justify-content: center; }
.encuesta-nav .btn:disabled { opacity: .45; cursor: not-allowed; }

.res-cabecera {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap; margin-bottom: 20px;
}
.res-kpis {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: 12px; margin-bottom: 12px;
}
.res-kpi { padding: 18px 20px; }
.res-kpi-valor {
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin-top: 6px;
  font-size: 28px; font-weight: 800; letter-spacing: -.03em;
}
.res-kpi-valor small { font-size: 13px; font-weight: 600; letter-spacing: 0; color: var(--text-muted); }
.res-kpi-nota { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }
.res-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 12px;
}
.res-ancho { grid-column: 1 / -1; }
.res-titulo {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
  font-size: 15px; font-weight: 800; letter-spacing: -.02em;
}
.res-dato { font-size: 12px; font-weight: 600; letter-spacing: 0; color: var(--text-muted); white-space: nowrap; }
.res-apilada { display: flex; gap: 2px; height: 12px; border-radius: 100px; overflow: hidden; margin: 16px 0 8px; }
.res-apilada-leyenda {
  display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap;
  margin-bottom: 18px; font-size: 11.5px; font-weight: 700;
}
.res-apilada-leyenda span { white-space: nowrap; }
.res-histograma { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 5px; height: 150px; }
.res-columna { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 5px; }
.res-columna span { font-size: 10.5px; font-weight: 700; color: var(--text-secondary); }
.res-columna i { display: block; width: 100%; min-height: 2px; border-radius: 6px 6px 2px 2px; }
.res-histograma-eje {
  display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: 5px; margin-top: 6px;
  text-align: center; font-size: 11px; font-weight: 600; color: var(--text-muted);
}
.res-filas { display: flex; flex-direction: column; gap: 12px; margin-top: 18px; }
.res-fila-facil { display: grid; grid-template-columns: 96px minmax(0, 1fr) 72px; align-items: center; gap: 12px; }
.res-fila-seccion { display: grid; grid-template-columns: minmax(96px, 140px) minmax(0, 1fr) 96px; align-items: center; gap: 14px; }
.res-fila-etiqueta { font-size: 12px; font-weight: 600; color: var(--text-secondary); white-space: nowrap; }
.res-fila-nombre { font-size: 13px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.res-fila-cifra { font-size: 12px; font-weight: 700; text-align: right; white-space: nowrap; }
.res-fila-cifra strong { font-size: 15px; font-weight: 800; }
.res-fila-cifra em { font-style: normal; font-weight: 600; font-size: 11px; color: var(--text-muted); }
.res-pista { display: flex; height: 22px; border-radius: 7px; overflow: hidden; background: var(--bg-elev); }
.res-pista i { display: block; height: 100%; border-radius: 7px; }
.res-pista-partida { gap: 2px; height: 24px; }
.res-pista-partida i { border-radius: 0; }
.res-leyenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; font-weight: 600; letter-spacing: 0; color: var(--text-secondary); }
.res-leyenda span { display: inline-flex; align-items: center; gap: 6px; }
.res-leyenda i { width: 9px; height: 9px; border-radius: 3px; }
.res-buscar { margin: 0; }
.res-buscar input {
  height: 38px; width: 220px; max-width: 100%; box-sizing: border-box; padding: 0 14px;
  border-radius: 100px; border: 1px solid var(--line-fuerte); background: var(--bg-elev);
  color: var(--text-primary); font: inherit; font-size: 13px; font-weight: 500;
}
.res-buscar input:focus { outline: none; border-color: var(--amber); }
.res-comentarios { display: flex; flex-direction: column; margin-top: 8px; }
.res-comentario {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px;
  padding: 14px 0; border-top: 1px solid var(--line);
}
.res-comentario-texto { font-size: 14px; line-height: 1.55; text-wrap: pretty; }
.res-comentario-nota {
  align-self: start; padding: 3px 9px; border-radius: 100px;
  font-size: 11px; font-weight: 800; white-space: nowrap;
}
.res-comentario-meta { font-size: 11.5px; color: var(--text-muted); }

@media (max-width: 560px) {
  .res-fila-seccion { grid-template-columns: minmax(0, 1fr) 84px; }
  .res-fila-seccion .res-pista { grid-column: 1 / -1; grid-row: 2; }
  .encuesta-fila { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .encuesta-fila > span:empty { display: none; }
  .encuesta-escala[style*="--cols:11"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

.auth {
  display: flex; min-height: 100vh; min-height: 100dvh;
  font-family: 'Manrope', system-ui, sans-serif;
  background: var(--bg); color: var(--text-primary);
}
.auth-marca {
  position: relative; overflow: hidden;
  flex: 0 0 44%; min-width: 400px;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 44px 46px;
  background: linear-gradient(140deg, var(--amber) 0%, var(--amber-claro) 100%);
  color: var(--tinta-ambar);
}

.auth-marca::after {
  content: ''; position: absolute; right: -28%; bottom: -46%;
  width: 110%; height: 130%; border-radius: 50%;
  background: rgba(255, 255, 255, .16); pointer-events: none;
}
.auth-marca > * { position: relative; z-index: 1; }
.auth-titular {
  margin: 0; font-size: 40px; font-weight: 800;
  line-height: 1.14; letter-spacing: -.035em; text-wrap: pretty;
}
.auth-panel {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 48px 40px;
}
.auth-panel > div { width: 100%; max-width: 392px; }
.auth-h {
  margin: 0; font-size: 26px; font-weight: 800; letter-spacing: -.03em;
}

.auth input.auth-campo:not([type=checkbox]):not([type=radio]) {
  width: 100%; box-sizing: border-box;
  padding: 15px 16px 15px 42px;
  border-radius: 16px; border: 1.5px solid transparent;
  background: #2b2b2b; color: var(--text-primary);
  font-family: 'Manrope', sans-serif; font-size: 14px; font-weight: 500;
}
.auth input.auth-campo:focus { outline: none; border-color: var(--amber); background: #333; }
.auth input.auth-campo:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
.auth-icono {
  position: absolute; left: 16px; font-size: 12px;
  color: var(--text-muted); pointer-events: none;
}
.auth-label {
  display: block; font-size: 11.5px; font-weight: 700;
  letter-spacing: .02em; color: var(--text-secondary); margin-bottom: 9px;
}

.auth-digitos { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.auth input.auth-digito:not([type=checkbox]):not([type=radio]) {
  width: 100%; box-sizing: border-box; padding: 16px 0;
  border-radius: 15px; border: 1.5px solid rgba(255, 255, 255, .09);
  background: #2b2b2b; color: var(--text-primary);
  font-family: 'JetBrains Mono', monospace; font-size: 23px; font-weight: 600;
  text-align: center;
}
.auth input.auth-digito:focus { outline: none; border-color: var(--amber); background: #333; }
.auth input.auth-digito:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
.auth input.auth-digito:disabled { opacity: .5; }

.auth-salida {
  display: flex; align-items: center; gap: 10px;
  width: 100%; box-sizing: border-box;
  padding: 12px 14px; border: none; border-radius: 14px;
  background: none; color: var(--text-secondary); text-decoration: none;
  font-family: 'Manrope', sans-serif; font-size: 12.5px; font-weight: 600;
  text-align: left; cursor: pointer;
}
.auth-salida:hover { background: var(--bg-elev); color: var(--text-primary); }

@media (max-width: 900px) {
  .auth { flex-direction: column; }
  .auth-marca {
    flex: 0 0 auto; min-width: 0;

    padding: calc(26px + env(safe-area-inset-top)) 22px 26px; gap: 18px;
  }
  .auth-marca .auth-pie,
  .auth-marca .auth-ventajas { display: none; }
  .auth-titular { font-size: 24px; }
  .auth-panel { padding: 32px 22px calc(44px + env(safe-area-inset-bottom)); }
}
@media (max-width: 420px) {
  .auth-digitos { gap: 7px; }
  .auth input.auth-digito:not([type=checkbox]):not([type=radio]) {
    padding: 13px 0; font-size: 19px; border-radius: 13px;
  }
}

.legal { margin: 0; font-family: 'Manrope', system-ui, sans-serif; background: var(--bg); color: var(--text-primary); min-height: 100vh; min-height: 100dvh; }
.legal a { text-decoration: none; }
@media (prefers-reduced-motion: no-preference) { html:has(body.legal) { scroll-behavior: smooth; } }

.legal-cabecera { padding: 24px 56px 64px; background: #101010; border-bottom: 1px solid var(--line); }
.legal-nav, .legal-hero { max-width: 1168px; margin: 0 auto; }
.legal-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.legal-marca { display: flex; align-items: center; gap: 10px; color: var(--text-primary); font-size: 17px; font-weight: 800; letter-spacing: -.02em; }
.legal-marca:hover { color: var(--text-primary); }
.legal-marca-icono { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 11px; background: var(--amber); color: var(--tinta-ambar); font-size: 13px; }
.legal-nav-acciones { display: flex; align-items: center; gap: 14px; }
.legal-tabs { display: flex; padding: 4px; border-radius: 100px; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); }
.legal-tabs a { padding: 9px 18px; border-radius: 100px; color: var(--text-secondary); font-size: 13px; font-weight: 700; text-align: center; }
.legal-tabs a:hover { color: var(--text-primary); }
.legal-tabs a[aria-current="page"] { background: var(--text-primary); color: var(--bg); font-weight: 800; }
.legal-volver { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 18px; border-radius: 100px; border: 1.5px solid var(--line-fuerte); color: var(--text-primary); font-size: 13px; font-weight: 800; }
.legal-volver:hover { background: rgba(255, 255, 255, .05); color: var(--text-primary); }
.legal-volver i { font-size: 11px; }
.legal-volver-cerrar { display: none; }

.legal-hero { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 72px; align-items: end; margin-top: 72px; }
.legal-eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--amber); }
.legal-hero h1 { margin: 14px 0 0; font-size: 72px; font-weight: 800; line-height: .98; letter-spacing: -.05em; text-wrap: balance; }
.legal-intro { max-width: 620px; margin-top: 26px; }
.legal-intro p { margin: 0 0 12px; font-size: 17px; line-height: 1.65; color: var(--text-secondary); text-wrap: pretty; }
.legal-intro p:last-child { margin-bottom: 0; }
.legal-intro strong { color: var(--text-primary); }
.legal-version { display: flex; flex-direction: column; margin: 0; border: 1px solid var(--line); border-radius: 20px; background: rgba(255, 255, 255, .025); overflow: hidden; }
.legal-version > div { display: flex; justify-content: space-between; gap: 12px; padding: 16px 20px; font-size: 13.5px; font-weight: 700; }
.legal-version > div + div { border-top: 1px solid var(--line); }
.legal-version dt { color: var(--text-muted); }
.legal-version dd { margin: 0; text-align: right; }
.legal-mono { font-family: 'JetBrains Mono', monospace; font-weight: 600; }

.legal-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 88px; max-width: 1168px; margin: 0 auto; padding: 72px 56px; }
html:not(.legal-js) .legal-grid { grid-template-columns: minmax(0, 1fr); }
html:not(.legal-js) .legal-indice, html:not(.legal-js) .legal-indice-movil { display: none; }
.legal-indice { position: sticky; top: 24px; align-self: start; max-height: calc(100vh - 48px); overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.legal-indice-titulo { padding: 0 12px 12px; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); }
.legal-indice a, .legal-indice-lista a { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; align-items: baseline; font-weight: 700; line-height: 1.35; }
.legal-indice a { padding: 8px 12px; border-radius: 12px; color: var(--text-muted); font-size: 13.5px; transition: background .2s, color .2s; }
.legal-indice a:hover { color: var(--text-primary); }
.legal-indice a span:first-child, .legal-indice-lista a span:first-child { font: 600 11px 'JetBrains Mono', monospace; color: var(--text-tenue); }
.legal-indice a.legal-actual { background: rgba(255, 170, 44, .1); color: var(--text-primary); }
.legal-indice a.legal-actual span:first-child, .legal-indice-lista a span:first-child { color: var(--amber); }
.legal-indice-movil { display: none; }

.legal-contenido { max-width: 760px; min-width: 0; }
.legal-cuerpo { counter-reset: legal; }
.legal-cuerpo > section { counter-increment: legal; margin-top: 64px; padding-top: 64px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.legal-cuerpo > section:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.legal-cuerpo > section::before { content: counter(legal, decimal-leading-zero); display: block; font: 600 12px 'JetBrains Mono', monospace; letter-spacing: .06em; color: var(--amber); }
.legal-cuerpo h2 { margin: 10px 0 22px; font-size: 32px; font-weight: 800; line-height: 1.12; letter-spacing: -.035em; color: var(--text-primary); text-wrap: balance; }
.legal-cuerpo h3 { margin: 32px 0 14px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--amber); }
.legal-cuerpo p { margin: 0 0 16px; font-size: 16px; line-height: 1.72; color: var(--text-secondary); text-wrap: pretty; }
.legal-cuerpo strong { color: var(--text-primary); font-weight: 700; }
.legal-cuerpo a { color: var(--amber); }
.legal-cuerpo a:hover { color: var(--amber-claro); }
.legal-cuerpo ul { display: flex; flex-direction: column; gap: 12px; margin: 0 0 16px; padding: 0; list-style: none; }
.legal-cuerpo ul > li { position: relative; padding-left: 20px; font-size: 16px; line-height: 1.65; color: var(--text-secondary); text-wrap: pretty; }
.legal-cuerpo ul > li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: rgba(245, 245, 245, .35); }

.legal-cuerpo table { width: 100%; margin: 0 0 22px; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; background: rgba(255, 255, 255, .025); font-size: 15px; }
.legal-cuerpo th, .legal-cuerpo td { width: 50%; padding: 16px 22px; border-top: 1px solid var(--line); text-align: left; vertical-align: top; line-height: 1.55; }
.legal-cuerpo tr:first-child > th, .legal-cuerpo tr:first-child > td { border-top: none; }
.legal-cuerpo th { padding: 14px 22px; background: rgba(255, 255, 255, .03); font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.legal-cuerpo td { color: var(--text-secondary); overflow-wrap: anywhere; }
.legal-cuerpo td:first-child { color: var(--text-primary); font-weight: 700; }

.legal-ficha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--line); border-radius: 20px; background: rgba(255, 255, 255, .025); overflow: hidden; }
.legal-ficha > div { padding: 20px 22px; }
.legal-ficha > div + div { border-left: 1px solid var(--line); }
.legal-ficha dt { font-size: 11px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.legal-ficha dd { margin: 8px 0 0; font-size: 15px; font-weight: 700; line-height: 1.45; color: var(--text-primary); overflow-wrap: anywhere; }

.legal-cuerpo ul.legal-no > li::before, .legal-cuerpo ul.legal-checks > li::before, .legal-cuerpo ul.legal-tarjetas > li::before { display: none; }
.legal-cuerpo ul.legal-no { gap: 18px; padding: 28px 30px; border-radius: 24px; background: rgba(83, 210, 88, .06); border: 1px solid var(--green-borde); }
.legal-cuerpo ul.legal-no > li { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 14px; align-items: start; padding-left: 0; }
.legal-cuerpo ul.legal-no > li > span:last-child { padding-top: 3px; }
.legal-icono-no { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--green-tenue); color: var(--green); font-size: 12px; }
.legal-cuerpo ul.legal-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; }
.legal-cuerpo ul.legal-checks > li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: start; padding: 16px 18px; border-radius: 18px; background: rgba(255, 255, 255, .03); border: 1px solid var(--line); font-size: 14.5px; line-height: 1.6; }
.legal-icono-si { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 9px; background: var(--green-tenue); color: var(--green); font-size: 11px; }
.legal-cuerpo ul.legal-tarjetas { gap: 10px; }
.legal-cuerpo ul.legal-tarjetas > li { padding: 18px 22px; border-radius: 18px; background: rgba(255, 255, 255, .03); border: 1px solid var(--line); font-size: 15px; line-height: 1.6; }
.legal-cuerpo ul.legal-tarjetas > li > strong:first-child { display: block; margin-bottom: 4px; font-size: 16px; }

.legal-par { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 6px 0 20px; }
.legal-par > div { padding: 20px 22px; border-radius: 20px; }
.legal-par-si { background: rgba(255, 170, 44, .06); border: 1px solid var(--amber-borde); }
.legal-par-no { background: rgba(83, 210, 88, .06); border: 1px solid var(--green-borde); }
.legal-par-etq { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.legal-par-etq i { font-size: 11px; }
.legal-par-si .legal-par-etq { color: var(--amber); }
.legal-par-no .legal-par-etq { color: var(--green); }
.legal-cuerpo .legal-par p { margin: 10px 0 0; font-size: 15px; line-height: 1.65; }

.legal-proveedores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 4px 0 0; }
.legal-proveedor { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px; border-radius: 20px; background: rgba(255, 255, 255, .03); border: 1px solid var(--line); }
.legal-proveedor-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.legal-proveedor-cabeza b { font-size: 16px; font-weight: 800; letter-spacing: -.01em; color: var(--text-primary); }
.legal-pais { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 100px; background: rgba(255, 255, 255, .06); font-size: 11.5px; font-weight: 700; color: var(--text-secondary); }
.legal-pais i { font-size: 10px; }
.legal-cuerpo .legal-proveedor p { margin: 0; font-size: 14.5px; line-height: 1.6; }

.legal-aviso { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; align-items: start; margin: 8px 0 16px; padding: 22px 24px; border-radius: 20px; background: rgba(255, 255, 255, .03); border: 1px solid var(--line-fuerte); }
.legal-aviso-icono { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 12px; background: var(--amber-tenue); color: var(--amber); font-size: 15px; }
.legal-cuerpo .legal-aviso p { margin: 0; font-size: 15px; line-height: 1.65; }

.legal-contacto { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 80px; padding: 32px 34px; border-radius: 24px; background: linear-gradient(140deg, var(--amber), var(--amber-oscuro)); color: var(--tinta-ambar); }
.legal-contacto-titulo { font-size: 24px; font-weight: 800; letter-spacing: -.03em; }
.legal-contacto-sub { margin-top: 6px; font-size: 14px; font-weight: 600; opacity: .78; }
.legal-contacto a { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 16px 22px; border-radius: 100px; background: var(--tinta-ambar); color: var(--amber); font-weight: 800; }
.legal-contacto a:hover { color: var(--amber-claro); }
.legal-contacto a span { font-family: 'JetBrains Mono', monospace; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.legal-contacto a i { font-size: 11px; }
.legal-pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 28px; font-size: 12.5px; font-weight: 700; color: var(--text-muted); }
.legal-pie a { color: var(--amber); }

@media (max-width: 900px) {
  .legal-cabecera { padding: 18px 20px 36px; }
  .legal-nav { flex-wrap: wrap; }
  .legal-nav-acciones { display: contents; }
  .legal-tabs { order: 3; flex-basis: 100%; margin-top: 22px; }
  .legal-tabs a { flex: 1; padding: 11px 0; font-size: 13.5px; }
  .legal-volver { order: 2; width: 44px; height: 44px; padding: 0; border-radius: 50%; }
  .legal-volver span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .legal-volver .legal-volver-flecha { display: none; }
  .legal-volver .legal-volver-cerrar { display: inline; font-size: 13px; }
  .legal-hero { grid-template-columns: minmax(0, 1fr); gap: 26px; margin-top: 36px; }
  .legal-hero h1 { font-size: 42px; line-height: 1; }
  .legal-intro { margin-top: 18px; }
  .legal-intro p { font-size: 15.5px; }

  .legal-grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0 0 40px; }
  .legal-indice { display: none; }
  .legal-indice-movil { display: block; position: sticky; top: 0; z-index: 5; padding: 12px 16px; background: rgba(25, 25, 25, .94); border-bottom: 1px solid var(--line); }
  .legal-indice-movil summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 0 16px; border-radius: 14px; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); cursor: pointer; list-style: none; }
  .legal-indice-movil summary::-webkit-details-marker { display: none; }
  .legal-indice-movil summary > span:first-child { display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 800; }
  .legal-indice-movil summary > span:first-child i { font-size: 12px; color: var(--amber); }
  .legal-indice-movil summary > span:last-child { display: flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 700; color: var(--text-muted); }
  .legal-indice-movil summary > span:last-child i { font-size: 11px; transition: transform .25s var(--ease-out); }
  .legal-indice-movil details[open] summary > span:last-child i { transform: rotate(180deg); }
  .legal-indice-lista { max-height: 60vh; overflow-y: auto; margin-top: 8px; padding: 4px 12px; border-radius: 14px; background: #1e1e1e; border: 1px solid var(--line); }
  .legal-indice-lista a { box-sizing: border-box; min-height: 44px; padding: 12px 4px; color: var(--text-primary); font-size: 14.5px; }
  .legal-indice-lista a + a { border-top: 1px solid var(--line); }

  .legal-contenido { max-width: none; padding: 40px 22px 0; }
  .legal-cuerpo > section { margin-top: 48px; padding-top: 48px; scroll-margin-top: 88px; }
  .legal-cuerpo h2 { font-size: 26px; }
  .legal-cuerpo p, .legal-cuerpo ul > li { font-size: 15px; }
  .legal-cuerpo table, .legal-cuerpo tbody, .legal-cuerpo tr, .legal-cuerpo td { display: block; width: auto; }
  .legal-cuerpo tr:first-child:has(th) { display: none; }
  .legal-cuerpo tr { padding: 14px 18px; }
  .legal-cuerpo tr:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .legal-cuerpo td { padding: 0; border-top: none; font-size: 14px; }
  .legal-cuerpo td:first-child { font-size: 14.5px; }
  .legal-cuerpo td + td { margin-top: 4px; }
  .legal-ficha { grid-template-columns: minmax(0, 1fr); }
  .legal-ficha > div + div { border-left: none; border-top: 1px solid var(--line); }
  .legal-cuerpo ul.legal-no { padding: 22px 20px; }
  .legal-cuerpo ul.legal-checks, .legal-par, .legal-proveedores { grid-template-columns: minmax(0, 1fr); }
  .legal-cuerpo ul.legal-checks > li { font-size: 14px; }
  .legal-cuerpo .legal-par p { font-size: 14.5px; }
  .legal-contacto { flex-direction: column; align-items: stretch; margin-top: 56px; padding: 24px 22px; }
  .legal-contacto-titulo { font-size: 20px; }
  .legal-pie { flex-direction: column; align-items: flex-start; }
}

.ob-pagina {
  display: flex; align-items: center; justify-content: center;
  padding: 24px 16px; min-height: 100vh;
}
.ob-pagina .ob { width: 100%; max-width: 460px; }

.ob-pagina .pasos { display: flex; gap: 6px; margin-bottom: 26px; }
.ob-pagina .pasos > span {
  flex: 1; height: 4px; border-radius: 100px;
  background: var(--surface-2); transition: background .3s var(--ease-out);
}
.ob-pagina .pasos > span.on { background: var(--amber); }

.ob-pagina .paso { display: none; animation: ob-entra .32s var(--ease-out); }
.ob-pagina .paso.activo { display: block; }
@keyframes ob-entra { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

.ob-pagina .ob-titulo {
  font-family: 'Manrope', sans-serif; font-size: 25px; font-weight: 800;
  letter-spacing: -.03em; line-height: 1.2; margin-bottom: 8px;
}
.ob-pagina .ob-sub { font-size: 13.5px; color: var(--text-secondary); line-height: 1.55; margin-bottom: 24px; }

.ob-pagina .atajos { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.tramo-pagado { background: linear-gradient(90deg, #059669, var(--green)); }
.tramo-pendiente { background: linear-gradient(90deg, #ea580c, var(--naranja)); }

.btn-abono,
.btn-abono:hover {
  background: var(--green); color: #04291d; font-weight: 700;
  box-shadow: 0 10px 30px rgba(83, 210, 88, .35);
}

.icono-aviso {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; flex-shrink: 0; border-radius: 12px; font-size: 13px;
}
.icono-aviso.ambar { background: var(--amber-tenue); color: var(--amber); }
.icono-aviso.coral { background: var(--coral-tenue); color: var(--coral); }

.glass.borde-coral { border-color: var(--coral-borde); }
.glass.borde-ambar { border-color: rgba(255, 170, 44, .3); }
.glass.borde-verde { border-color: rgba(83, 210, 88, .28); }

.aviso-error {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 13px 15px; border-radius: 14px;
  background: var(--coral-tenue); border: 1px solid var(--coral-borde);
}
.aviso-error > i { font-size: 12px; color: var(--coral); margin-top: 2px; }
.aviso-error-texto { font-size: 12px; color: var(--text-secondary); line-height: 1.55; }

.auth-ventaja-icono {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; flex-shrink: 0; border-radius: 12px;
  background: rgba(26, 18, 0, .14); font-size: 12px;
}
.auth-marca .auth-bajada {
  margin: 18px 0 0; max-width: 390px;
  font-size: 14.5px; font-weight: 500; line-height: 1.6; color: rgba(26, 18, 0, .72);
}

.fila-lista {
  display: flex; align-items: center; gap: 14px;
  padding: 17px 20px; border-bottom: 1px solid rgba(255, 255, 255, .05);
}
.fila-lista:last-child { border-bottom: 0; }

.fila-ajuste {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 20px; margin-bottom: 16px; border-radius: 22px;
  background: var(--surface); color: var(--text-primary); text-decoration: none;
}
.fila-ajuste-icono { width: 42px; height: 42px; border-radius: 15px; font-size: 16px; flex-shrink: 0; }
.fila-ajuste-texto { flex: 1; min-width: 0; }
.fila-ajuste-titulo { font-size: 14px; font-weight: 600; color: var(--text-primary); margin-bottom: 3px; }
.fila-ajuste-nota { font-size: 11.5px; color: rgba(245, 245, 245, .62); line-height: 1.45; }
.fila-ajuste-flecha { font-size: 10px; color: rgba(245, 245, 245, .62); flex-shrink: 0; }

.auth-ventajas { display: flex; flex-direction: column; gap: 14px; margin-top: 34px; }
.auth-ventaja { display: flex; align-items: center; gap: 13px; }
.auth-ventaja-texto { font-size: 13.5px; font-weight: 600; }
.auth-pie {
  display: flex; align-items: center; gap: 9px;
  font-size: 11.5px; font-weight: 700; color: rgba(26, 18, 0, .6);
}
.auth-pie > i { font-size: 10px; }

@media (max-width: 900px) {
  .auth-marca .auth-bajada { font-size: 13px; margin-top: 10px; }
}

.lp { margin: 0; background: var(--bg); color: var(--text-primary); font-family: 'Manrope', system-ui, sans-serif; }
.lp a { text-decoration: none; }
.lp h1, .lp h2 { margin: 0; font-weight: 800; text-wrap: balance; }
.lp-mono { font-family: 'JetBrains Mono', monospace; font-weight: 600; }
.lp-eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--amber); }

.lp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 18px 30px; border-radius: 100px; font-size: 15px; font-weight: 800; }
.lp-btn i { font-size: 12px; }
.lp-btn-oscuro { background: var(--tinta-ambar); color: var(--amber); }
.lp-btn-oscuro:hover { color: var(--amber-claro); }

.lp-hero { background: linear-gradient(140deg, var(--amber), var(--amber-oscuro)); color: var(--tinta-ambar); padding: 26px 56px 0; overflow: hidden; }
.lp-nav { display: flex; align-items: center; justify-content: space-between; max-width: 1280px; margin: 0 auto; }
.lp-marca { display: inline-flex; align-items: center; gap: 11px; font-size: 18px; font-weight: 800; letter-spacing: -.02em; }
.lp-marca-icono { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 12px; background: var(--tinta-ambar); color: var(--amber); font-size: 14px; }
.lp-nav-entrar { padding: 11px 20px; border-radius: 100px; border: 1.5px solid rgba(26, 18, 0, .3); color: var(--tinta-ambar); font-size: 13.5px; font-weight: 800; }
.lp-nav-entrar:hover { background: rgba(26, 18, 0, .08); color: var(--tinta-ambar); }
.lp-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: end; max-width: 1280px; margin: 56px auto 0; }
.lp-hero-texto { padding-bottom: 72px; }
.lp-hero h1 { font-size: 72px; line-height: 1; letter-spacing: -.05em; }
.lp-hero p { margin: 24px 0 0; max-width: 520px; font-size: 17px; font-weight: 500; line-height: 1.6; opacity: .78; }
.lp-hero-acciones { display: flex; align-items: center; gap: 20px; margin-top: 34px; }
.lp-hero-nota { font-size: 13px; font-weight: 700; opacity: .7; }

.lp-telefono { height: 520px; padding: 12px 12px 0; border-radius: 44px 44px 0 0; background: var(--tinta-ambar); }
.lp-pantalla { height: 100%; box-sizing: border-box; border-radius: 34px 34px 0 0; background: var(--bg); color: var(--text-primary); padding: 16px 18px 0; display: flex; flex-direction: column; gap: 14px; overflow: hidden; cursor: pointer; }
.lp-tel-barra { display: flex; justify-content: space-between; padding: 0 6px; font-size: 11.5px; font-weight: 700; }
.lp-tel-barra span:last-child { display: flex; gap: 6px; font-size: 10px; }
.lp-tel-saludo { display: flex; align-items: center; gap: 10px; }
.lp-tel-saludo > div { flex: 1; }
.lp-tel-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--amber); color: var(--tinta-ambar); display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; }
.lp-tel-hola { font-size: 11px; color: var(--text-muted); }
.lp-tel-nombre { font-size: 14px; font-weight: 800; }
.lp-tel-campana { width: 34px; height: 34px; border-radius: 50%; background: #2b2b2b; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; color: var(--text-secondary); }
.lp-tel-saldo { padding: 18px; border-radius: 24px; background: var(--amber); color: var(--tinta-ambar); }
.lp-tel-saldo-etq, .lp-tel-saldo-pie { font-size: 11px; font-weight: 700; opacity: .72; }
.lp-tel-saldo-pie { display: flex; justify-content: space-between; margin-top: 8px; }
.lp-tel-cifra { margin-top: 4px; font-size: 36px; font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.lp-tel-progreso { margin-top: 12px; height: 7px; border-radius: 7px; background: rgba(26, 18, 0, .16); overflow: hidden; }
.lp-tel-progreso > div { width: 58%; height: 100%; border-radius: 7px; background: var(--tinta-ambar); transition: width 1.3s var(--ease-out); }
.lp-tel-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lp-tel-duo > div { padding: 13px; border-radius: 18px; background: var(--surface); }
.lp-tel-duo > div > div:first-child { font-size: 10.5px; color: var(--text-muted); }
.lp-tel-duo > div > div:last-child { margin-top: 3px; font-size: 15px; font-weight: 800; }
.lp-tel-titulo { font-size: 11.5px; font-weight: 700; color: var(--text-muted); }
.lp-tel-lista { display: flex; flex-direction: column; gap: 8px; }
.lp-tel-fila { position: relative; display: flex; align-items: center; gap: 11px; padding: 11px 13px; border-radius: 16px; background: var(--bg-elev); }
.lp-tel-fila .lp-mono { font-size: 12px; }
.lp-tel-icono { width: 32px; height: 32px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; flex-shrink: 0; }
.lp-tel-fila-txt { flex: 1; min-width: 0; }
.lp-tel-fila-txt > div:first-child { font-size: 12.5px; font-weight: 700; }
.lp-tel-fila-txt > div:last-child { font-size: 10.5px; color: var(--text-muted); }
.lp-tel-pagada { position: absolute; right: 10px; top: 50%; display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 100px; background: var(--green); color: #07260b; font-size: 10px; font-weight: 800; transform: translateY(-50%) scale(.6); opacity: 0; transition: opacity .35s, transform .45s var(--ease-spring); }
.lp-tel-pagada i { font-size: 9px; }
.lp-tel-pagada.lp-ok { opacity: 1; transform: translateY(-50%) scale(1); }

.lp-js .lp-pantalla [data-lp-fase] { opacity: 0; transform: translateY(14px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.lp-js .lp-pantalla [data-lp-fase].lp-ok { opacity: 1; transform: none; }

.lp-cifra { padding: 96px 56px 56px; max-width: 1280px; margin: 0 auto; box-sizing: border-box; }
.lp-cifra-grande { margin-top: 18px; font-size: 208px; font-weight: 800; line-height: .82; letter-spacing: -.07em; color: transparent; -webkit-text-stroke: 2px rgba(255, 170, 44, .7); font-variant-numeric: tabular-nums; }
.lp-cifra-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 48px; align-items: center; margin-top: 40px; }
.lp-cifra-grid p { margin: 0; font-size: 18px; line-height: 1.55; text-wrap: pretty; }
.lp-cifra-grid p span { color: var(--text-secondary); }
.lp-ecuacion { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.lp-chip { padding: 12px 16px; border-radius: 16px; background: linear-gradient(180deg, #242424, #1b1b1b); border: 1px solid rgba(255, 255, 255, .08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
.lp-chip-etq { font-size: 11px; font-weight: 700; color: var(--text-muted); }
.lp-chip-monto { margin-top: 4px; font-size: 15px; }
.lp-chip-total { background: var(--amber); border-color: transparent; color: var(--tinta-ambar); }
.lp-chip-total .lp-chip-etq { color: var(--tinta-ambar); opacity: .7; }
.lp-op { font-family: 'JetBrains Mono', monospace; font-size: 20px; color: var(--text-tenue); }
.lp-op-in { display: none; }

.lp-funciones { padding: 24px 56px 96px; max-width: 1280px; margin: 0 auto; box-sizing: border-box; }
.lp-func-caja { display: grid; grid-template-columns: 400px minmax(0, 1fr); border-radius: 36px; background: #141414; border: 1px solid var(--line); overflow: hidden; }
.lp-func-lista { padding: 44px 32px 36px; border-right: 1px solid var(--line); }
.lp-func-lista h2 { margin: 12px 0 28px; font-size: 34px; line-height: 1.08; letter-spacing: -.04em; }
.lp-tabs { display: flex; flex-direction: column; gap: 6px; }
.lp-tab { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; align-items: center; width: 100%; padding: 16px 18px; border: none; border-radius: 20px; text-align: left; cursor: pointer; font-family: inherit; background: transparent; color: var(--text-muted); transition: background .2s, color .2s; }
.lp-tab[aria-selected="true"] { background: rgba(255, 255, 255, .06); color: var(--text-primary); }
.lp-tab:hover { color: var(--text-primary); }
.lp-tab-icono { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 13px; background: rgba(255, 170, 44, .12); color: var(--amber); font-size: 14px; }
.lp-tab-titulo { display: block; font-size: 16px; font-weight: 800; letter-spacing: -.02em; }
.lp-tab-linea { display: block; margin-top: 3px; font-size: 12.5px; line-height: 1.45; opacity: .8; }
.lp-func-escena { min-height: 540px; display: flex; align-items: center; justify-content: center; padding: 48px; background: radial-gradient(circle at 60% 40%, rgba(255, 170, 44, .12), rgba(255, 170, 44, 0) 60%); }
.lp-panel[hidden] { display: none; }
.lp-func-texto { display: none; }

.lp-privacidad { --fondo-privacidad: #101010; position: relative; padding: 104px 56px; background: var(--fondo-privacidad); overflow: hidden; }
.lp-privacidad::before { content: ""; position: absolute; width: 700px; height: 700px; right: -120px; top: -160px; border-radius: 50%; background: radial-gradient(circle, rgba(83, 210, 88, .1), rgba(83, 210, 88, 0) 65%); pointer-events: none; }
.lp-priv-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 470px; gap: 72px; align-items: center; max-width: 1168px; margin: 0 auto; }
.lp-priv-grid h2 { margin-top: 20px; font-size: 56px; line-height: 1.02; letter-spacing: -.05em; }
.lp-priv-grid p { margin: 22px 0 0; max-width: 460px; font-size: 16px; line-height: 1.6; color: var(--text-secondary); }
.lp-boleta { transform: rotate(1.6deg); filter: drop-shadow(0 30px 50px rgba(0, 0, 0, .55)); }

.lp-cierre { padding: 96px 56px 36px; background: linear-gradient(140deg, var(--amber), var(--amber-oscuro)); color: var(--tinta-ambar); }
.lp-cierre a { color: var(--tinta-ambar); }
.lp-cierre .lp-btn-oscuro { color: var(--amber); }
.lp-cierre-grid { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; max-width: 1168px; margin: 0 auto; }
.lp-cierre h2 { max-width: 760px; font-size: 84px; line-height: .95; letter-spacing: -.055em; }
.lp-cierre-acciones { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; padding-bottom: 8px; font-size: 13px; font-weight: 700; }
.lp-cierre-acciones span a { text-decoration: underline; }
.lp-cierre-pie { display: flex; justify-content: space-between; align-items: center; gap: 16px; max-width: 1168px; margin: 88px auto 0; padding-top: 22px; border-top: 1.5px solid rgba(26, 18, 0, .2); font-size: 12.5px; font-weight: 700; }
.lp-cierre-enlaces { display: flex; gap: 18px; }

.lp-js [data-lp-revelar], .lp-js [data-lp-hijos] > * { opacity: 0; translate: 0 28px; transition: opacity .8s var(--ease-out), translate .8s var(--ease-out); }
.lp-js .lp-visible[data-lp-revelar], .lp-js [data-lp-hijos] > .lp-visible { opacity: 1; translate: 0 0; }
.lp-js .lp-tab { transition: background .2s, color .2s, opacity .8s var(--ease-out), translate .8s var(--ease-out); }

@media (max-width: 900px) {
  .lp-hero { padding: 20px 22px 0; }
  .lp-marca { font-size: 16px; gap: 9px; }
  .lp-marca-icono { width: 32px; height: 32px; border-radius: 11px; font-size: 12px; }
  .lp-nav-entrar { padding: 9px 16px; font-size: 13px; }
  .lp-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-top: 38px; }
  .lp-hero-texto { padding-bottom: 0; }
  .lp-hero h1 { font-size: 46px; }
  .lp-hero p { margin-top: 16px; font-size: 15px; line-height: 1.55; }
  .lp-hero-acciones { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 24px; }
  .lp-hero-acciones .lp-btn { padding: 17px; }
  .lp-hero-nota { text-align: center; font-size: 12.5px; }
  .lp-telefono { width: 300px; height: 430px; margin: 0 auto; padding: 10px 10px 0; border-radius: 40px 40px 0 0; box-sizing: border-box; }

  .lp-cifra { padding: 64px 22px 40px; }
  .lp-eyebrow { font-size: 11.5px; }
  .lp-cifra-grande { margin-top: 12px; font-size: 78px; line-height: .85; letter-spacing: -.065em; -webkit-text-stroke-width: 1.5px; }
  .lp-cifra-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; margin-top: 22px; }
  .lp-cifra-grid p { font-size: 15.5px; }
  .lp-ecuacion { flex-direction: column; align-items: stretch; gap: 8px; }
  .lp-op { display: none; }
  .lp-chip { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 13px 14px; }
  .lp-op-in { display: inline; font-family: 'JetBrains Mono', monospace; font-size: 15px; color: var(--text-tenue); }
  .lp-chip-total .lp-op-in { color: var(--tinta-ambar); }
  .lp-chip-etq { font-size: 13px; color: var(--text-secondary); }
  .lp-chip-monto { margin-top: 0; font-size: 14px; }

  .lp-funciones { padding: 24px 0 64px; }
  .lp-func-caja { display: block; border: none; border-radius: 0; background: none; overflow: visible; }
  .lp-func-lista { padding: 0; border: none; }
  .lp-func-lista .lp-eyebrow, .lp-func-lista h2 { padding: 0 22px; }
  .lp-func-lista h2 { margin: 10px 0 18px; font-size: 30px; }
  .lp-tabs { flex-direction: row; gap: 8px; overflow-x: auto; padding: 0 22px 4px; scrollbar-width: none; }
  .lp-tabs::-webkit-scrollbar { display: none; }
  .lp-tab { flex: none; width: auto; display: inline-flex; gap: 8px; padding: 11px 15px; border: 1px solid rgba(255, 255, 255, .08); border-radius: 100px; white-space: nowrap; }
  .lp-tab-icono { width: auto; height: auto; background: none; font-size: 12px; }
  .lp-tab-titulo { font-size: 13px; }
  .lp-tab-linea { display: none; }
  .lp-func-escena { min-height: 330px; margin: 16px 22px 0; padding: 18px 0; border-radius: 28px; background-color: #141414; border: 1px solid var(--line); }
  .lp-panel-cuotas, .lp-panel-deben { zoom: .58; }
  .lp-panel-cartola { zoom: .55; }
  .lp-panel-subs { zoom: .66; }
  .lp-func-texto { display: block; margin: 14px 22px 0; font-size: 13.5px; line-height: 1.55; color: var(--text-secondary); }

  .lp-privacidad { padding: 72px 22px; }
  .lp-privacidad::before { width: 420px; height: 420px; right: -160px; top: -120px; }
  .lp-priv-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .lp-priv-grid h2 { margin-top: 22px; font-size: 36px; }
  .lp-priv-grid p { margin-top: 16px; font-size: 15px; }
  .lp-boleta { transform: rotate(1.2deg); zoom: .9; }

  .lp-cierre { padding: 64px 22px 28px; }
  .lp-cierre-grid { flex-direction: column; align-items: stretch; gap: 28px; }
  .lp-cierre h2 { font-size: 50px; }
  .lp-cierre-acciones { align-items: stretch; text-align: center; }
  .lp-cierre-acciones .lp-btn { padding: 17px; }
  .lp-cierre-pie { flex-direction: column; align-items: flex-start; margin-top: 56px; padding-top: 18px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .lp-js [data-lp-revelar], .lp-js [data-lp-hijos] > *, .lp-js .lp-pantalla [data-lp-fase] { opacity: 1; translate: none; transform: none; transition: none; }
  .lp-tel-pagada { transition: none; }
}

.lp-faq { padding: 112px 56px; background: var(--bg); }
.lp-faq-grid { display: grid; grid-template-columns: 420px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 88px; max-width: 1168px; margin: 0 auto; }
.lp-faq-titulo { grid-column: 1; grid-row: 1; }
.lp-faq-titulo h2 { margin-top: 16px; font-size: 56px; line-height: 1.02; letter-spacing: -.05em; }
.lp-faq-lista { grid-column: 2; grid-row: 1 / span 2; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.lp-faq-item { border-top: 1px solid rgba(255, 255, 255, .08); }
.lp-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 0; cursor: pointer; list-style: none; font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
.lp-faq-item summary::-webkit-details-marker { display: none; }
.lp-faq-item summary:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; border-radius: 8px; }
.lp-faq-signo { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255, 255, 255, .06); color: var(--text-primary); font-size: 12px; transition: background .2s, color .2s; }
.lp-faq-signo i { transition: transform .25s var(--ease-out); }
.lp-faq-item[open] .lp-faq-signo { background: var(--amber); color: var(--tinta-ambar); }
.lp-faq-item[open] .lp-faq-signo i { transform: rotate(45deg); }
.lp-faq-resp { margin-top: -6px; padding: 0 72px 28px 0; font-size: 16px; line-height: 1.65; color: var(--text-secondary); text-wrap: pretty; }
.lp-faq-resp p { margin: 0 0 12px; }
.lp-faq-resp p:last-child { margin-bottom: 0; }
.lp-faq-resp b { color: var(--text-primary); }
.lp-ayuda { grid-column: 1; grid-row: 2; align-self: start; margin-top: 56px; padding: 28px; border-radius: 24px; background: rgba(255, 255, 255, .04); border: 1px solid var(--line); }
.lp-ayuda-cabeza { display: flex; align-items: center; gap: 14px; font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.lp-ayuda-icono { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--amber-tenue); color: var(--amber); font-size: 16px; }
.lp-ayuda p { margin: 16px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-secondary); text-wrap: pretty; }
.lp-ayuda-correo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; padding: 16px 20px; border-radius: 100px; background: var(--amber); color: var(--tinta-ambar); font-weight: 800; }
.lp-ayuda-correo:hover { background: var(--amber-claro); color: var(--tinta-ambar); }
.lp-ayuda-correo span { font-family: 'JetBrains Mono', monospace; font-size: 13.5px; font-weight: 600; overflow-wrap: anywhere; }
.lp-ayuda-correo i { font-size: 12px; }
.lp-cierre-enlaces { flex-wrap: wrap; row-gap: 10px; }

html:not(.lp-js) .lp-chat { display: none; }
.lp-chat-boton { position: fixed; right: 28px; bottom: calc(28px + env(safe-area-inset-bottom)); z-index: 60; display: inline-flex; align-items: center; gap: 10px; height: 56px; padding: 0 22px 0 18px; border: none; border-radius: 100px; background: var(--amber); color: var(--tinta-ambar); font: 800 14.5px 'Manrope', system-ui, sans-serif; box-shadow: 0 14px 34px rgba(0, 0, 0, .45); cursor: pointer; }
.lp-chat-boton:hover { background: var(--amber-claro); }
.lp-chat-boton i { font-size: 17px; }
.lp-chat-fondo { display: none; }
.lp-chat-panel { position: fixed; right: 28px; bottom: calc(104px + env(safe-area-inset-bottom)); z-index: 61; width: 392px; height: min(560px, calc(100vh - 140px)); display: flex; flex-direction: column; background: #1e1e1e; border: 1px solid rgba(255, 255, 255, .09); border-radius: 26px; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); overflow: hidden; }
.lp-chat-panel[hidden] { display: none; }
.lp-chat-asa { display: none; }
.lp-chat-cabeza { display: flex; align-items: center; gap: 12px; padding: 18px 18px 16px; border-bottom: 1px solid var(--line); }
.lp-chat-cabeza > div { flex: 1; min-width: 0; }
.lp-chat-logo { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 12px; background: var(--amber); color: var(--tinta-ambar); font-size: 14px; }
.lp-chat-nombre { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.lp-chat-sub { font-size: 11.5px; color: var(--text-muted); }
.lp-chat-cerrar { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; border-radius: 50%; background: rgba(255, 255, 255, .06); color: var(--text-primary); font-size: 13px; cursor: pointer; }
.lp-chat-cerrar:hover { background: rgba(255, 255, 255, .1); }
.lp-chat-cuerpo { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.lp-burbuja { max-width: 86%; padding: 11px 14px; font-size: 13.5px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.lp-burbuja-bot { align-self: flex-start; border-radius: 18px 18px 18px 6px; background: rgba(255, 255, 255, .06); }
.lp-burbuja-yo { align-self: flex-end; border-radius: 18px 18px 6px 18px; background: var(--amber); color: var(--tinta-ambar); font-weight: 600; }
.lp-escribiendo { align-self: flex-start; display: flex; gap: 5px; padding: 14px 16px; border-radius: 18px 18px 18px 6px; background: rgba(255, 255, 255, .06); }
.lp-escribiendo span { width: 6px; height: 6px; border-radius: 50%; background: var(--text-secondary); animation: lp-punto 1s infinite ease-in-out; }
.lp-escribiendo span:nth-child(2) { animation-delay: .15s; }
.lp-escribiendo span:nth-child(3) { animation-delay: .3s; }
@keyframes lp-punto { 0%, 80%, 100% { opacity: .3; } 40% { opacity: 1; } }
.lp-chat-sugerencias { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.lp-chat-sugerencias button { padding: 9px 13px; border: 1px solid var(--line-fuerte); border-radius: 100px; background: transparent; color: var(--text-primary); font: 700 12.5px 'Manrope', system-ui, sans-serif; cursor: pointer; }
.lp-chat-sugerencias button:hover { background: rgba(255, 255, 255, .06); }
.lp-chat-contacto { position: relative; align-self: stretch; display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 18px; border: 1px solid rgba(255, 170, 44, .35); background: rgba(255, 170, 44, .06); }
.lp-chat-contacto-titulo { font-size: 12.5px; font-weight: 800; color: var(--amber); }
.lp-chat-contacto input, .lp-chat-contacto textarea { box-sizing: border-box; width: 100%; padding: 12px 14px; border: 1px solid rgba(255, 255, 255, .1); border-radius: 12px; background: #161616; color: var(--text-primary); font: 500 13.5px/1.5 'Manrope', system-ui, sans-serif; outline: none; resize: none; }
.lp-chat-contacto input:focus, .lp-chat-contacto textarea:focus { border-color: var(--amber-borde); }
.lp-chat-contacto .lp-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lp-chat-error { font-size: 12px; font-weight: 700; color: var(--coral); }
.lp-chat-contacto button { padding: 12px; border: none; border-radius: 100px; background: var(--amber); color: var(--tinta-ambar); font: 800 13.5px 'Manrope', system-ui, sans-serif; cursor: pointer; }
.lp-chat-contacto button:disabled { opacity: .6; cursor: default; }
.lp-chat-pie { padding: 12px 14px 14px; border-top: 1px solid var(--line); }
.lp-chat-entrada { display: flex; align-items: center; gap: 8px; padding: 6px 6px 6px 16px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 100px; background: #161616; }
.lp-chat-entrada:focus-within { border-color: var(--amber-borde); }
.lp-chat-entrada input { flex: 1; min-width: 0; border: none; background: transparent; color: var(--text-primary); font: 500 13.5px 'Manrope', system-ui, sans-serif; outline: none; }
.lp-chat-entrada button { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; border-radius: 50%; background: var(--amber); color: var(--tinta-ambar); font-size: 12px; cursor: pointer; }
.lp-chat-aviso { margin-top: 9px; text-align: center; font-size: 10.5px; color: var(--text-muted); }

@media (max-width: 900px) {
  .lp-faq { padding: 64px 22px 56px; }
  .lp-faq-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .lp-faq-titulo, .lp-faq-lista, .lp-ayuda { grid-column: auto; grid-row: auto; }
  .lp-faq-titulo h2 { margin-top: 14px; font-size: 38px; }
  .lp-faq-lista { margin-top: 28px; }
  .lp-faq-item summary { box-sizing: border-box; min-height: 64px; gap: 16px; padding: 18px 0; font-size: 16px; letter-spacing: -.01em; }
  .lp-faq-signo { width: 32px; height: 32px; font-size: 11px; }
  .lp-faq-resp { margin-top: -4px; padding: 0 40px 20px 0; font-size: 14.5px; line-height: 1.6; }
  .lp-ayuda { margin-top: 40px; padding: 24px 22px; border-radius: 22px; }
  .lp-ayuda-cabeza { gap: 12px; font-size: 18px; }
  .lp-ayuda-icono { width: 40px; height: 40px; border-radius: 13px; font-size: 15px; }
  .lp-ayuda p { margin-top: 14px; font-size: 14.5px; }
  .lp-ayuda-correo { justify-content: center; padding: 16px; }

  .lp-chat-abierto { overflow: hidden; }
  .lp-chat-boton { right: 18px; bottom: calc(22px + env(safe-area-inset-bottom)); justify-content: center; width: 58px; height: 58px; padding: 0; border-radius: 50%; }
  .lp-chat-boton i { font-size: 20px; }
  .lp-chat-boton span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .lp-chat-abierto .lp-chat-boton { display: none; }
  .lp-chat-fondo { display: block; position: fixed; inset: 0; z-index: 60; background: rgba(0, 0, 0, .5); }
  .lp-chat-fondo[hidden] { display: none; }
  .lp-chat-panel { left: 0; right: 0; top: 64px; bottom: 0; width: auto; height: auto; border: none; border-top: 1px solid rgba(255, 255, 255, .09); border-radius: 26px 26px 0 0; }
  .lp-chat-asa { display: flex; justify-content: center; padding-top: 8px; }
  .lp-chat-asa span { width: 40px; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .2); }
  .lp-chat-cabeza { padding: 12px 16px 14px; }
  .lp-chat-cerrar { width: 44px; height: 44px; font-size: 14px; }
  .lp-chat-cuerpo { padding: 16px; }
  .lp-burbuja { font-size: 14.5px; }
  .lp-chat-sugerencias button { min-height: 44px; padding: 0 14px; font-size: 13.5px; }
  .lp-chat-contacto input, .lp-chat-contacto textarea { font-size: 16px; }
  .lp-chat-contacto input { min-height: 44px; }
  .lp-chat-contacto button { min-height: 44px; font-size: 14.5px; }
  .lp-chat-pie { padding: 10px 12px calc(14px + env(safe-area-inset-bottom)); }
  .lp-chat-entrada { padding: 4px 4px 4px 16px; }
  .lp-chat-entrada input { font-size: 16px; }
  .lp-chat-entrada button { width: 44px; height: 44px; font-size: 13px; }
  .lp-chat-aviso { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .lp-escribiendo span { animation: none; }
  .lp-faq-signo, .lp-faq-signo i { transition: none; }
}
