:where(.add) button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-touch-callout:none;background:0 0;border:0;padding:0}:where(.add) button:focus-visible{outline:2px solid var(--k);outline-offset:2px}.add{--k:var(--ingreso);z-index:0;max-width:480px;height:100dvh;padding:calc(env(safe-area-inset-top) + 10px) 16px calc(env(safe-area-inset-bottom) + 12px);-webkit-user-select:none;user-select:none;transition:--k .32s var(--ease);flex-direction:column;gap:10px;margin:0 auto;display:flex;position:relative;overflow:hidden}.add.kind-gasto{--k:var(--gasto)}.add input{-webkit-user-select:text;user-select:text}.wash{z-index:-1;pointer-events:none;background:radial-gradient(110% 90% at 50% -10%, color-mix(in srgb, var(--k) 22%, transparent), transparent 70%);height:62%;position:absolute;inset:0 0 auto}.add-top{align-items:center;gap:10px;display:flex;position:relative}.kind{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex:1;grid-template-columns:1fr 1fr;height:48px;padding:4px;display:grid;position:relative}.kind button{z-index:1;color:var(--muted);font-size:15px;font-weight:650;transition:color .2s;position:relative}.kind button[aria-pressed=true]{color:#07120b}.kind-thumb{background:var(--k);width:calc(50% - 4px);transition:transform .32s var(--ease);border-radius:10px;position:absolute;top:4px;bottom:4px;left:4px}.kind[data-kind=ingreso] .kind-thumb{transform:translate(100%)}.icon-btn{width:48px;height:48px;color:var(--muted);border-radius:14px;place-items:center;display:grid;background:var(--surface)!important;border:1px solid var(--line)!important}.menu-scrim{z-index:9;position:fixed;inset:0}.menu{z-index:10;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;min-width:220px;padding:6px;position:absolute;top:56px;right:0;box-shadow:0 14px 30px #00000073}.menu p{color:var(--muted);margin:0;padding:10px 12px 6px;font-size:13px}.menu button{border-radius:10px;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;font-weight:600;display:flex}.menu button:active{background:var(--surface)}.amount{font-family:var(--num);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;justify-content:center;align-items:baseline;gap:.12em;padding:10px 0 4px;font-size:clamp(3.4rem,18vw,4.8rem);font-weight:700;line-height:1.05;display:flex;position:relative}.amount[data-size=l]{font-size:clamp(2.7rem,14vw,3.8rem)}.amount[data-size=xl]{font-size:clamp(2.1rem,11vw,3rem)}.sign{color:var(--k)}.val.empty{color:color-mix(in srgb, var(--text) 30%, transparent)}.val:after{content:"";background:var(--k);vertical-align:-.04em;border-radius:2px;width:3px;height:.78em;margin-left:5px;animation:1.1s step-end infinite blink;display:inline-block}.cur{color:var(--muted);font-size:.55em;font-weight:600}.ghost{text-align:center;color:var(--k);pointer-events:none;animation:ghost-out .64s var(--ease) forwards;position:absolute;inset:10px 0 auto}.meta{gap:8px;display:flex}.chip{border-radius:12px;flex:1 1 0;align-items:center;gap:8px;min-width:0;height:46px;padding:0 12px;font-size:15px;font-weight:600;display:flex;background:var(--surface)!important;border:1px solid var(--line)!important}.chip svg:first-child{color:var(--k);flex:none}.chip svg:last-child{color:var(--muted);flex:none;margin-left:auto}.chip-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.chip:active{background:var(--surface-2)!important}.note{background:var(--surface);border-radius:12px;height:46px;padding:0 14px}.note::placeholder{color:var(--muted)}.cats{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:0 auto;grid-template-columns:repeat(4,1fr);grid-auto-rows:72px;align-content:start;gap:8px;min-height:0;display:grid;overflow-y:auto}.cats::-webkit-scrollbar{display:none}.cat{border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-size:12.5px;font-weight:600;transition:background .16s,border-color .16s,transform 90ms;display:flex;position:relative;background:var(--surface)!important;border:1.5px solid #0000!important}.cat-emoji{font-size:24px;line-height:1}.cat-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:color-mix(in srgb, var(--text) 85%, transparent);overflow:hidden}.cat:active{transform:scale(.96)}.cat[aria-pressed=true]{border-color:var(--k)!important;background:color-mix(in srgb, var(--k) 16%, var(--surface))!important}.cat[aria-pressed=true] .cat-name{color:var(--text)}.cat-check{color:#07120b;background:var(--k);border-radius:50%;place-items:center;width:16px;height:16px;display:grid;position:absolute;top:5px;right:5px}.pad-zone{flex:1 1 0;min-height:224px;max-height:340px;margin-top:auto;display:flex;position:relative}.pad{flex:1;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:8px;min-height:0;display:grid}.key{font-family:var(--num);font-variant-numeric:tabular-nums;border-radius:16px;place-items:center;font-size:26px;font-weight:600;transition:transform 90ms,background .12s;display:grid;background:var(--surface)!important}.key:active{transform:scale(.95);background:var(--surface-2)!important}.key-back{color:var(--muted)}.key-save{grid-area:2/4/span 3;align-content:center;gap:6px;font-family:inherit;font-size:14px;font-weight:700;color:#07120b!important;background:var(--k)!important}.key-save:active{filter:brightness(.9);background:var(--k)!important}.key-save:disabled{opacity:.35}.toast{z-index:5;background:var(--surface-2);border:1px solid var(--line);min-height:52px;animation:toast-in .3s var(--ease);border-radius:14px;align-items:center;gap:12px;padding:6px 8px 6px 16px;font-size:14.5px;font-weight:600;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;right:0;box-shadow:0 14px 30px #00000073}.toast.error{border-color:var(--gasto)}.toast-undo{min-width:44px;min-height:44px;color:var(--k);margin-left:auto;font-weight:700;padding:0 10px!important}.sheet-root{z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{animation:.2s fade-in;position:absolute;inset:0;background:#0409069e!important}.sheet{width:100%;max-width:480px;max-height:82dvh;padding:10px 16px calc(env(safe-area-inset-bottom) + 18px);background:var(--surface);animation:sheet-in .32s var(--ease);border-radius:22px 22px 0 0;outline:none;position:relative;overflow-y:auto;box-shadow:0 -16px 40px #0006}.sheet-grab{background:var(--line);border-radius:2px;width:38px;height:4px;margin:0 auto 10px}.sheet h2{margin:0 0 8px;font-size:18px}.rows{margin:0;padding:0;list-style:none}.row{text-align:left;border-radius:12px;align-items:center;gap:12px;width:100%;min-height:58px;padding:0 4px;display:flex}.row:active{background:var(--surface-2)}.row-ic{width:40px;height:40px;color:var(--k);background:var(--bg);border-radius:12px;place-items:center;display:grid}.row-main{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.row-end{font-family:var(--num);font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}.row-check{width:18px;color:var(--k);place-items:center;display:grid}.quick{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;display:grid}.quick button{background:var(--bg);border:1.5px solid #0000;border-radius:12px;min-height:52px;font-weight:650}.quick button[aria-pressed=true]{border-color:var(--k);background:color-mix(in srgb, var(--k) 16%, var(--bg))}.account-form{flex-direction:column;gap:14px;display:flex}.types{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.type-tile{min-height:68px;font:inherit;color:var(--muted);background:var(--bg);touch-action:manipulation;border:1.5px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px 4px;font-size:12.5px;font-weight:600;display:flex}.type-tile[aria-pressed=true]{color:var(--text);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--bg))}.sheet .account-form input{background:var(--bg)}@keyframes blink{50%{opacity:0}}@keyframes ghost-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;filter:blur(4px);transform:translateY(-40px)scale(.92)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.add,.kind-thumb,.kind button,.cat,.key{transition:none}.val:after{animation:none}.ghost{display:none}.toast,.sheet,.sheet-scrim{animation:none}}@media (height<=700px){.pad-zone{min-height:184px}.cats{grid-auto-rows:60px}.amount{font-size:clamp(2.8rem,15vw,3.8rem)}}@property --k{syntax:"<color>";inherits:true;initial-value:#3ddc84}:root{--bg:#0f1a14;--surface:#17261d;--surface-2:#1f3326;--line:#2a4033;--text:#eaf3ee;--muted:#93ab9d;--accent:#3ddc84;--ingreso:#3ddc84;--gasto:#ff8a6b;--ease:cubic-bezier(.16, 1, .3, 1);--num:ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}::selection{background:color-mix(in srgb, var(--accent) 35%, transparent)}input{caret-color:var(--accent)}.app{min-height:100%;padding:calc(env(safe-area-inset-top) + 24px) calc(env(safe-area-inset-right) + 20px) calc(env(safe-area-inset-bottom) + 24px) calc(env(safe-area-inset-left) + 20px)}h1{color:var(--accent);margin:0 0 8px;font-size:1.6rem}.muted{color:var(--muted);margin:0 0 16px}.card{background:var(--surface);border-radius:16px;flex-direction:column;gap:16px;max-width:380px;margin:10vh auto 0;padding:24px;display:flex}label{color:var(--muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn{font:inherit;color:#07120b;background:var(--accent);touch-action:manipulation;border:0;border-radius:12px;min-height:48px;padding:0 16px;font-weight:650}.btn:active{filter:brightness(.92)}.btn:disabled{opacity:.55}.btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.error{color:var(--gasto);margin:0;font-size:.9rem}
