:root{color-scheme:light;--fondo: #eef4fb;--tarjeta: #ffffff;--texto: #0f2744;--muted: #5b7290;--borde: #d5e3f3;--primario: #2f6fed;--primario-fuerte: #1d4ed8;--sobre-primario: #ffffff;--peligro: #c0392b;--ok: #1f7a4d;--sombra: 0 6px 20px rgba(15, 39, 68, .1);--radio: 16px}[data-tema=oscuro]{color-scheme:dark;--fondo: #0a1524;--tarjeta: #112033;--texto: #e8f0fb;--muted: #93a9c4;--borde: #233a55;--primario: #4f8ef7;--primario-fuerte: #93c5fd;--sobre-primario: #08111f;--sombra: 0 6px 20px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{min-height:100%;overflow-x:hidden}body{margin:0;background:var(--fondo);color:var(--texto);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.15}h1{font-size:2rem}h2{font-size:1.35rem}h3{font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:12px}p{margin:0}button,input,select{font:inherit;color:inherit}.muted{color:var(--muted)}.pequeno{font-size:.8rem}.error{color:var(--peligro);font-weight:600}.texto-peligro{color:var(--peligro)}.cargando{min-height:100dvh;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted)}.logo{font-size:1.6rem;line-height:1}.logo-icon{width:1.9rem;height:1.9rem;display:block;flex:none;border-radius:9px}.logo-icon-login{width:4.2rem;height:4.2rem;border-radius:18px;box-shadow:0 10px 24px #2f6fed42}.login{align-items:center;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:28px 18px;background:radial-gradient(circle at 20% 10%,rgba(47,111,237,.3),transparent 45%),radial-gradient(circle at 90% 80%,rgba(59,130,246,.22),transparent 40%),var(--fondo)}.login-marca{text-align:center;display:grid;gap:8px;justify-items:center}.login-marca .logo{font-size:3rem}.login-marca p{color:var(--muted);max-width:30ch}.login-form{width:100%;max-width:420px;min-width:0;margin:0 auto;display:grid;gap:14px}.pista{overflow-wrap:anywhere;font-size:.78rem;color:var(--muted);line-height:1.6}.pista code{background:var(--fondo);padding:1px 5px;border-radius:6px}.app{min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.cabecera{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:color-mix(in srgb,var(--fondo) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--borde)}.marca{display:flex;align-items:center;gap:10px;min-width:0}.marca-texto{display:grid;line-height:1.2;min-width:0}.marca-texto strong{font-size:1.05rem}.marca-texto .muted{font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acciones{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.usuario-sesion{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--borde);border-radius:999px;background:var(--tarjeta)}.usuario-sesion .avatar{width:34px;height:34px;border-radius:50%;display:grid;place-content:center;background:var(--primario);color:#fff;font-weight:700;font-size:.95rem}.usuario-sesion-texto{display:grid;line-height:1.1}.usuario-sesion-texto strong{font-size:.82rem;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.usuario-sesion-texto span{font-size:.68rem;color:var(--muted);text-transform:capitalize}.periodo{display:grid;gap:2px}.periodo input{min-height:36px;padding:4px 8px;border-radius:10px;border:1px solid var(--borde);background:var(--tarjeta)}.cuerpo{display:block}.contenido{padding:18px 16px 24px;max-width:960px;margin:0 auto}.vista{display:grid;gap:16px}.fila-encabezado{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.fila-alcance{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--tarjeta);border-top:1px solid var(--borde);box-shadow:0 -6px 20px #0000000f}.nav button{display:grid;justify-items:center;gap:3px;border:0;background:transparent;color:var(--muted);font-size:.68rem;padding:6px 2px;border-radius:12px;cursor:pointer}.nav button.activo{color:var(--texto);background:color-mix(in srgb,var(--primario) 26%,transparent)}.nav-icono{font-size:1.15rem}.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:16px}.total{display:grid;gap:4px;background:linear-gradient(135deg,color-mix(in srgb,var(--primario) 30%,var(--tarjeta)),var(--tarjeta))}.total-etiqueta{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.total-valor{font-size:clamp(1.8rem,7vw,2.6rem);font-weight:800;letter-spacing:-.02em}@media(max-width:760px){.rejilla-dos.resumen-presupuesto{grid-template-columns:1fr}.total-valor{font-size:clamp(1.45rem,6.5vw,2rem)}.resumen-presupuesto .total-valor{font-size:clamp(1.35rem,6vw,1.75rem);overflow-wrap:anywhere}}.resumen{display:grid;gap:4px;background:linear-gradient(135deg,color-mix(in srgb,#1f9d6b 16%,var(--tarjeta)),var(--tarjeta))}.resumen-peligro{background:linear-gradient(135deg,color-mix(in srgb,var(--peligro) 18%,var(--tarjeta)),var(--tarjeta))}.vacio{display:grid;gap:12px;justify-items:center;text-align:center;color:var(--muted);padding:28px 16px}.formulario{display:grid;gap:14px}.rejilla-dos{display:grid;gap:12px;grid-template-columns:1fr 1fr}.campo{display:grid;min-width:0;gap:6px;font-size:.82rem;color:var(--muted)}.campo input,.campo select,.movimiento select{width:100%;min-width:0;min-height:46px;padding:10px 12px;border-radius:12px;border:1px solid var(--borde);background:var(--fondo);color:var(--texto)}.campo input:focus,.campo select:focus{outline:2px solid var(--primario);outline-offset:1px}.boton{min-height:46px;padding:10px 18px;border-radius:12px;border:1px solid transparent;font-weight:700;cursor:pointer;transition:transform .05s ease,filter .15s ease}.boton:active{transform:translateY(1px)}.boton-primario{background:var(--primario);color:var(--sobre-primario)}.boton-primario:hover{filter:brightness(1.05)}.boton-primario:disabled{opacity:.6;cursor:default}.boton-suave{background:transparent;border-color:var(--borde);color:var(--texto)}.icono{width:36px;height:36px;display:inline-grid;place-content:center;border-radius:10px;border:1px solid var(--borde);background:var(--tarjeta);font-size:1.1rem;cursor:pointer}.icono-peligro{color:var(--peligro)}.icono-peligro:hover{border-color:color-mix(in srgb,var(--peligro) 50%,transparent);background:color-mix(in srgb,var(--peligro) 12%,var(--tarjeta))}.lista{list-style:none;margin:0;padding:0;display:grid;gap:8px}.movimiento{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--tarjeta);border:1px solid var(--borde);border-radius:14px;padding:12px 14px}.movimiento.inactivo{opacity:.55}.movimiento-info{display:grid;gap:2px;min-width:0}.movimiento-info .muted{font-size:.78rem;overflow-wrap:anywhere}.movimiento-descripcion{width:100%;font-size:.73rem;line-height:1.3;color:var(--muted);overflow-wrap:anywhere}.movimiento-monto{display:flex;align-items:center;gap:8px;white-space:nowrap}.movimiento-monto select{min-height:38px;width:auto;padding:6px 8px}.barras{list-style:none;margin:0;padding:0;display:grid;gap:14px}.linea-presupuesto{display:grid;gap:8px;padding:12px 0}.linea-presupuesto+.linea-presupuesto{border-top:1px solid color-mix(in srgb,var(--borde) 80%,transparent)}.linea-presupuesto-cabecera{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.linea-presupuesto-titulo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.linea-presupuesto-titulo strong{overflow-wrap:anywhere}.linea-presupuesto-total{margin-left:auto;white-space:nowrap}.linea-presupuesto-pie{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.linea-presupuesto-pie .muted{flex:1 1 240px;min-width:0;line-height:1.35}.linea-presupuesto-acciones{display:flex;align-items:center;gap:6px;flex-shrink:0}.linea-presupuesto-acciones .boton{min-height:34px;padding:5px 10px;font-size:.78rem;white-space:nowrap}.barras.tarjeta{padding:18px 20px}.barras.tarjeta li{padding:2px 0}.barras.tarjeta li+li{padding-top:14px;border-top:1px solid color-mix(in srgb,var(--borde) 80%,transparent)}.barras.tarjeta .barra-texto{align-items:center;padding:0 2px}.barra-texto{display:flex;justify-content:space-between;gap:8px;font-size:.85rem;margin-bottom:4px}.barra{height:8px;border-radius:999px;background:color-mix(in srgb,var(--texto) 8%,transparent);overflow:hidden}.barra-relleno{height:100%;border-radius:inherit;background:var(--primario);transition:width .3s ease}.barra-relleno.peligro{background:var(--peligro)}.segmento{display:inline-flex;padding:4px;gap:4px;border-radius:999px;background:color-mix(in srgb,var(--texto) 7%,transparent)}.segmento button{border:0;background:transparent;color:var(--muted);padding:8px 14px;border-radius:999px;font-weight:700;font-size:.8rem;cursor:pointer}.segmento button.activo{background:var(--tarjeta);color:var(--texto);box-shadow:var(--sombra)}.categorias{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.categoria{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px}.chip{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:color-mix(in srgb,var(--texto) 6%,transparent);padding:3px 8px;border-radius:999px}@media(min-width:820px){.app{padding-bottom:0}.cuerpo{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100dvh - 65px)}.nav{position:sticky;inset:65px auto auto;align-self:start;display:flex;flex-direction:column;gap:4px;padding:18px 12px;background:transparent;border-top:0;border-right:1px solid var(--borde);box-shadow:none;height:calc(100dvh - 65px)}.nav button{grid-auto-flow:column;justify-content:start;justify-items:start;gap:10px;font-size:.9rem;padding:10px 12px;border-radius:12px}.nav button.activo{background:var(--tarjeta);box-shadow:var(--sombra)}.contenido{padding:28px 28px 48px;width:100%}.cabecera{padding:14px 24px}.marca-texto strong{font-size:1.15rem}.marca-texto .muted{font-size:.8rem}}@media(max-width:819px){.cabecera{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"marca usuario tema" "periodo periodo salir";align-items:center;gap:8px;padding:8px 12px}.cabecera.sin-periodo{grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"marca usuario tema salir"}.acciones{display:contents}.marca{grid-area:marca}.usuario-sesion{grid-area:usuario;padding:3px 8px 3px 3px}.usuario-sesion .avatar{width:30px;height:30px;font-size:.85rem}.usuario-sesion-texto span{display:none}.usuario-sesion-texto strong{max-width:90px}.marca-texto .muted{display:none}.periodo{grid-area:periodo;min-width:0}.periodo .muted{display:none}.periodo input{width:100%;min-height:40px;font-size:.9rem;padding:4px 8px}.acciones>.icono{grid-area:tema;justify-self:end;width:40px;height:40px}.acciones>.boton-suave{grid-area:salir;justify-self:end;min-height:40px;padding:8px 12px}.nav{display:flex;gap:1px;padding:6px 2px calc(6px + env(safe-area-inset-bottom));overflow:hidden}.nav button{flex:1 1 0;min-width:0;min-height:44px;padding:6px 0;font-size:clamp(.48rem,2.2vw,.62rem);line-height:1.08;align-content:center}.nav button>span:last-child{max-width:100%;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.nav-icono{font-size:1.1rem;line-height:1}}@media(max-width:560px){.rejilla-dos{grid-template-columns:1fr}}@media(max-width:680px){.movimiento{flex-direction:column;align-items:stretch;gap:8px}.movimiento-info{width:100%}.movimiento-monto{width:100%;flex-wrap:wrap;justify-content:space-between;row-gap:6px}.movimiento-monto>strong{margin-right:auto}.movimiento-monto .boton{min-height:38px;padding:6px 10px;font-size:.78rem}.movimiento-monto select{flex:0 1 auto;max-width:100%;min-height:40px}}.categoria{flex-direction:column;align-items:stretch;gap:8px}.categoria.inactiva{opacity:.6}.categoria-cabecera{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}.categoria-acciones{display:flex;gap:6px;flex-wrap:wrap}.categoria-acciones .boton{min-height:36px;padding:6px 10px;font-size:.8rem}.campo.casilla{flex-direction:row;align-items:center;gap:8px}.campo.casilla input{width:auto;min-height:0}.boton-peligro{color:var(--peligro);border-color:color-mix(in srgb,var(--peligro) 45%,transparent)}.boton-peligro:hover{background:color-mix(in srgb,var(--peligro) 12%,transparent)}.categoria-edicion{display:grid;gap:8px}.categoria-edicion input,.categoria-edicion select{min-height:40px;padding:8px 10px;border-radius:10px;border:1px solid var(--borde);background:var(--fondo);color:var(--texto)}.filtros{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
