@font-face{font-family:Archivo;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/archivo-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/archivo-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#0b0c0f;--card:#16181d;--card-2:#1f222a;--ink:#fff;--muted:#9aa1ae;--line:#252932;--accent:#7b61ff;--accent-2:#3e7bfa;--income:#2ed47a;--negative:#ff5c5c;--sombra:none;--grad:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);--icono-gasto:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");--icono-ingreso:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/svg%3E");--icono-ahorro:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='12' rx='2'/%3E%3Cpath d='M7 8V6a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);background:var(--bg);font-variant-numeric:tabular-nums;accent-color:var(--accent);caret-color:var(--accent);font-family:Archivo,system-ui,sans-serif}@media (prefers-color-scheme:light){:root{--bg:#f4f5f7;--card:#fff;--card-2:#eff1f4;--ink:#0b0c0f;--muted:#606775;--line:#e3e6eb;--accent:#6b4eff;--accent-2:#3e7bfa;--income:#12a05c;--negative:#d93636;--sombra:0 1px 2px #0b0c0f0f, 0 8px 24px #0b0c0f0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--line) transparent}html,body,#root{min-height:100%}body{background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}.shell{gap:1rem;width:min(560px,100% - 2rem);margin:0 auto;padding:1.5rem 0 4rem;display:grid}.top{justify-content:space-between;align-items:center;gap:1rem;display:flex}.top h1{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:700}.lede{display:none}.top-right{align-items:center;gap:.5rem;display:flex}.month-nav{background:var(--card);box-shadow:var(--sombra);border-radius:99px;align-items:center;gap:.1rem;padding:.2rem;display:inline-flex}.month-nav span{text-align:center;min-width:7.5rem;font-size:.8rem;font-weight:600}.month-nav button,.icon-btn,.tx-right button{width:2rem;height:2rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:99px;justify-content:center;align-items:center;transition:color .15s,background .15s;display:inline-flex}.month-nav button:hover,.icon-btn:hover,.tx-right button:hover{color:var(--ink);background:var(--card-2)}.who{color:var(--muted);align-items:center;gap:.6rem;font-size:.78rem;display:inline-flex}.ledger,.composer,.sections>section,.pots,.movements,.history,.book-panel,.banner{background:var(--card);box-shadow:var(--sombra);border-radius:20px;padding:1.25rem}.stage,.sections{gap:1rem;display:grid}.ledger{padding:0;overflow:hidden}.balance{background:var(--grad);color:#fff;padding:1.5rem 1.35rem 1.6rem}.balance-label{color:#ffffffc7;margin:0;font-size:.82rem;font-weight:600}.ledger-hero{letter-spacing:-.03em;color:#fff;margin:.35rem 0 0;font-size:clamp(2.6rem,11vw,3.4rem);font-weight:800;line-height:1}.ledger-hero.enter{animation:.2s cubic-bezier(.2,.8,.2,1) asienta}@keyframes asienta{0%{opacity:0;transform:translateY(.25em)}}.ledger-sub{color:#ffffffc7;margin:.5rem 0 0;font-size:.85rem}.balance .ledger-hero,.balance .ledger-hero.pos,.balance .ledger-hero.neg{color:#fff}.ledger-rows{margin:0;padding:.35rem 1.35rem 1.1rem;list-style:none}.ledger-rows li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.ledger-rows li:last-child{border-bottom:0}.ledger-rows span{color:var(--muted);font-size:.9rem}.ledger-rows em,.mini-list em,.tx-right em,.history-nums em{font-size:.95rem;font-style:normal;font-weight:600}.ledger-rows .total{border-bottom:0;padding-top:.9rem}.ledger-rows .total span{color:var(--ink);font-weight:600}.ledger-rows .total em{font-size:1.15rem}.pos{color:var(--ink)}.neg{color:var(--negative)}.ledger-rows .pos{color:var(--income)}.composer,.new-pot,.pot-add form,.pot-pick,.edit-tx,.pot-out{gap:.9rem;display:grid}label{color:var(--muted);gap:.3rem;font-size:.78rem;font-weight:600;display:grid}input,select{background:var(--card-2);width:100%;color:var(--ink);border:1px solid #0000;border-radius:14px;padding:.8rem .9rem;font-family:inherit;font-size:1rem;font-weight:500;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent);outline:0}input::placeholder{color:var(--muted);font-weight:400}.pair{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.seg{grid-template-columns:repeat(3,1fr);justify-items:center;gap:.5rem;display:grid}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;justify-items:center;gap:.45rem;padding:0;font-size:.75rem;font-weight:600;transition:color .15s;display:grid;position:relative}.seg button:before{content:"";background:var(--card-2);border-radius:99px;width:3.25rem;height:3.25rem;transition:transform .15s cubic-bezier(.2,.8,.2,1),background .15s}.seg button:after{content:"";pointer-events:none;background:currentColor;width:1.35rem;height:1.35rem;transition:background .15s;position:absolute;top:.95rem}.seg button:first-child:after{-webkit-mask:var(--icono-gasto) center / contain no-repeat;-webkit-mask:var(--icono-gasto) center / contain no-repeat;mask:var(--icono-gasto) center / contain no-repeat}.seg button:nth-child(2):after{-webkit-mask:var(--icono-ingreso) center / contain no-repeat;-webkit-mask:var(--icono-ingreso) center / contain no-repeat;mask:var(--icono-ingreso) center / contain no-repeat}.seg button:nth-child(3):after{-webkit-mask:var(--icono-ahorro) center / contain no-repeat;-webkit-mask:var(--icono-ahorro) center / contain no-repeat;mask:var(--icono-ahorro) center / contain no-repeat}.seg button:hover:before{transform:scale(1.04)}.seg button:active:before{transform:scale(.96)}.seg button.on{color:var(--ink)}.seg button.on:before{background:var(--accent)}.seg button.on:after{background:#fff}.chips{border:0;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;display:flex}.chips legend{width:100%;color:var(--muted);margin-bottom:.5rem;font-size:.78rem;font-weight:600}.chips label{background:var(--card-2);color:var(--muted);cursor:pointer;border-radius:99px;align-items:center;padding:.5rem .9rem;font-size:.88rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.chips label:hover{color:var(--ink)}.chips label.on{background:var(--accent);color:#fff}.chips input{opacity:0;width:1px;height:1px;position:absolute}.chips label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.check{color:var(--ink);cursor:pointer;align-items:center;gap:.6rem;font-size:.9rem;font-weight:500;display:flex}.check input,.people input{width:auto}button{font:inherit}.primary,.ghost{cursor:pointer;border:0;border-radius:99px;padding:.95rem 1.5rem;font-size:.95rem;font-weight:700;transition:transform .15s cubic-bezier(.2,.8,.2,1),opacity .15s}.primary{background:var(--grad);color:#fff}.primary:hover{transform:translateY(-1px)}.primary:active{transform:translateY(0)}.primary:disabled,.ghost:disabled{opacity:.5;cursor:default;transform:none}.ghost{background:var(--card-2);color:var(--ink);justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.ghost:hover{background:var(--line)}.ghost.small{padding:.55rem .95rem;font-size:.82rem}.text-btn{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0;font-size:.82rem;font-weight:600;transition:color .15s;width:auto!important;height:auto!important}.text-btn:hover{color:var(--accent)}.text-btn.danger{color:var(--negative)}.text-btn:disabled{opacity:.45;cursor:default}.sections h2,.pots h2,.movements h2,.history-head h2{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:700}.hint{color:var(--muted);margin:.25rem 0 .75rem;font-size:.85rem;line-height:1.4}.empty{color:var(--muted);margin:.25rem 0 0;font-size:.88rem}.mini-list,.tx-list,.pot-grid,.people{margin:0;padding:0;list-style:none}.mini-list li,.tx-list li{border-bottom:1px solid var(--line);align-items:center;gap:.85rem;padding:.7rem 0;display:flex}.mini-list li:last-child,.tx-list li:last-child{border-bottom:0}.av{color:#fff;border-radius:99px;flex-shrink:0;place-items:center;width:2.6rem;height:2.6rem;font-size:1rem;font-weight:700;display:grid}.tx-body{flex:auto;min-width:0}.mini-list strong,.tx-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;display:block;overflow:hidden}.tx-list span{color:var(--muted);margin-top:.1rem;font-size:.78rem;display:block}.badge{color:var(--muted);align-items:center;gap:.25rem;font-size:.72rem;display:inline-flex}.by{color:var(--muted);font-size:.75rem}.tx-right{flex-shrink:0;align-items:center;gap:.5rem;display:inline-flex}.footnote{color:var(--muted);margin:.9rem 0 0;font-size:.85rem}.history-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.history-head p{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.history-totals{gap:1.25rem;display:flex}.history-totals div{gap:.15rem;display:grid}.history-totals span{color:var(--muted);font-size:.72rem}.history-totals strong{font-size:1rem;font-weight:700}.history-rows{margin:1rem 0 0;padding:0;list-style:none}.history-rows li{border-bottom:1px solid var(--line);grid-template-columns:5.5rem 1fr auto;align-items:center;gap:.85rem;padding:.6rem 0;display:grid}.history-rows li:last-child{border-bottom:0}.history-month{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;padding:0;font-size:.85rem;font-weight:600}.history-month:hover{color:var(--accent)}.history-bars{align-content:center;gap:.3rem;min-height:1rem;display:grid}.history-bars .bar{border-radius:99px;min-width:4px;height:.4rem}.history-bars .saved{background:var(--income)}.history-bars .left.pos{background:var(--accent)}.history-bars .left.neg{background:var(--negative)}.history-nums{justify-items:end;gap:.1rem;font-size:.85rem;display:grid}.history-nums em:first-child.pos{color:var(--income)}.history-nums em:last-child.pos{color:var(--ink)}.history-legend{color:var(--muted);align-items:center;gap:.4rem;margin:.9rem 0 0;font-size:.75rem;display:flex}.history-legend .key{border-radius:99px;width:.85rem;height:.4rem;margin-left:.7rem}.history-legend .key:first-child{margin-left:0}.history-legend .key.saved{background:var(--income)}.history-legend .key.left{background:var(--accent)}.pots-head p{color:var(--muted);margin:.25rem 0 0;font-size:.85rem}.pot-grid{gap:1.25rem;margin-top:1rem;display:grid}.bar-meta{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.bar-meta strong{font-size:1rem;font-weight:700}.bar-meta span{color:var(--muted);font-size:.85rem}.bar-track{background:var(--card-2);border-radius:99px;height:.5rem;margin-top:.55rem;overflow:hidden}.bar-fill{background:var(--grad);border-radius:99px;height:100%}.pot-actions{gap:1rem;margin-top:.7rem;display:flex}.pot-actions .text-btn{align-items:center;gap:.25rem;display:inline-flex}.pot-rename{flex:100%;align-items:center;gap:.6rem;display:flex}.pot-rename input{flex:6rem;padding:.5rem .7rem}.pot-out{margin-top:.8rem}.edit-actions{align-items:center;gap:1rem;display:flex}.tx-list li.editing{padding:1rem 0;display:block}.bookbar{gap:.75rem;display:grid}.bookbar-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.book-pick select{background:var(--card);width:auto;min-width:9rem;box-shadow:var(--sombra);border-radius:99px;padding:.55rem .9rem;font-weight:700}.with-who{color:var(--muted);font-size:.82rem}.book-panel{flex-wrap:wrap;align-items:flex-end;gap:.9rem;display:flex}.book-panel label{flex:11rem}.book-panel .hint{width:100%;margin:0}.book-panel.share{justify-items:start;gap:1rem;display:grid}.code-row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.code{letter-spacing:.22em;color:var(--accent);background:var(--card-2);border-radius:14px;padding:.5rem .6rem .5rem .85rem;font-size:1.6rem;font-weight:800}.code-input{letter-spacing:.2em;text-transform:uppercase;font-weight:700}.people{flex-wrap:wrap;gap:.6rem;display:flex}.person{background:var(--card-2);border-radius:99px;align-items:center;gap:.3rem;padding:.35rem .5rem .35rem .9rem;font-size:.88rem;font-weight:600;display:inline-flex}.share-foot{align-items:center;gap:1.2rem;display:flex}.banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;font-size:.9rem;display:flex}.banner.error{background:color-mix(in srgb, var(--negative) 14%, var(--card));color:var(--negative)}.banner-actions{align-items:center;gap:1rem;display:inline-flex}.loading{color:var(--muted);margin:2rem 0;font-size:.9rem}.gate{align-content:center;width:min(24rem,100% - 2rem);min-height:100vh;margin:0 auto;display:grid}.gate-card{background:var(--card);box-shadow:var(--sombra);border-radius:24px;gap:1rem;padding:1.75rem 1.5rem;display:grid}.gate-card h1{letter-spacing:-.03em;margin:0;font-size:2.6rem;font-weight:800;line-height:1}.gate-card .lede{color:var(--muted);margin:-.35rem 0 .35rem;font-size:.92rem;display:block}.gate-error{color:var(--negative);margin:0;font-size:.85rem;font-weight:600}.gate-foot{color:var(--muted);margin:0;font-size:.85rem;line-height:1.5}.gate-foot .text-btn{font-size:inherit;color:var(--accent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}footer{text-align:center;margin-top:1rem}footer p{color:var(--muted);margin:0;font-size:.75rem}@media (width<=560px){.shell{width:calc(100% - 1.5rem);padding-top:1rem}.top h1{font-size:1.2rem}.month-nav span{min-width:6.5rem;font-size:.75rem}.history-rows li{grid-template-columns:4.5rem 1fr auto;gap:.6rem}.tx-right .text-btn{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
