:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface-1:#fcfcfb;--border:#0b0b0b1a;--text-primary:#0b0b0b;--text-secondary:#52514e;--muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--track:#f0efec;--series-1:#2a78d6;--series-2:#eb6834;--cat-1:#7aa0d8;--cat-2:#98ad62;--cat-3:#7a79c8;--cat-4:#d4a24f;--cat-5:#8c7466;--cat-6:#9b6bc6;--cat-7:#d4c26a;--cat-8:#6a9a62;--cat-9:#ad6377;--cat-10:#6c9e94;--cat-11:#c87850;--cat-other:#a8a69f;--good:#0ca30c;--good-text:#006300;--warning:#fab219;--critical:#d03b3b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface-1:#1a1a19;--border:#ffffff1a;--text-primary:#fff;--text-secondary:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--baseline:#383835;--track:#2c2c2a;--series-1:#3987e5;--series-2:#d95926;--good-text:#0ca30c;--cat-1:#7aa0d8;--cat-2:#98ad62;--cat-3:#7a79c8;--cat-4:#d4a24f;--cat-5:#8c7466;--cat-6:#9b6bc6;--cat-7:#d4c26a;--cat-8:#6a9a62;--cat-9:#ad6377;--cat-10:#6c9e94;--cat-11:#c87850;--cat-other:#6b6a65}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface-1:#1a1a19;--border:#ffffff1a;--text-primary:#fff;--text-secondary:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--baseline:#383835;--track:#2c2c2a;--series-1:#3987e5;--series-2:#d95926;--good-text:#0ca30c;--cat-1:#7aa0d8;--cat-2:#98ad62;--cat-3:#7a79c8;--cat-4:#d4a24f;--cat-5:#8c7466;--cat-6:#9b6bc6;--cat-7:#d4c26a;--cat-8:#6a9a62;--cat-9:#ad6377;--cat-10:#6c9e94;--cat-11:#c87850;--cat-other:#6b6a65}*{box-sizing:border-box}body{background:var(--page);color:var(--text-primary);margin:0;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}.shell{grid-template-columns:200px minmax(0,1fr);min-height:100vh;display:grid}nav.side{border-right:1px solid var(--border);flex-direction:column;align-self:start;gap:2px;height:100vh;padding:22px 12px;display:flex;position:sticky;top:0}nav.side .brand{letter-spacing:-.01em;padding:0 10px 14px;font-size:18px;font-weight:650}nav.side .links{flex-direction:column;gap:2px;display:flex}nav.side .ico,nav.side .short{display:none}nav.side a{color:var(--text-secondary);border-radius:8px;padding:8px 10px;font-size:14px;text-decoration:none}nav.side a:hover{background:var(--track);color:var(--text-primary)}nav.side a[aria-current=page]{background:var(--surface-1);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);font-weight:600}main{width:100%;max-width:1200px;margin:0 auto;padding:20px 16px 48px}.view[hidden]{display:none}@media (max-width:760px){.shell{display:block}nav.side{z-index:7;height:auto;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);background:color-mix(in srgb, var(--page) 82%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);display:block;position:fixed;inset:auto 0 0}nav.side .brand,nav.side .long{display:none}nav.side .short{display:inline}nav.side .links{flex-direction:row;justify-content:space-around;gap:0}nav.side a{color:var(--muted);background:0 0;border-radius:0;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px 0;font-size:10px;font-weight:500;display:flex}nav.side a:hover{color:var(--muted);background:0 0}nav.side a[aria-current=page],nav.side a[aria-current=page]:hover{color:var(--series-1);box-shadow:none;background:0 0;font-weight:600}nav.side .ico{width:24px;height:24px;display:block}main{padding-top:calc(16px + env(safe-area-inset-top))}}header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}h1{letter-spacing:-.01em;margin:0 auto 0 0;font-size:22px}select,button{font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:8px;padding:6px 10px}.updated{color:var(--muted);font-size:13px}.pick{gap:6px;display:inline-flex}.year{background:var(--surface-1);border:1px solid var(--border);border-radius:8px;align-items:center;display:inline-flex}.year button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:18px;line-height:1}.year button:hover{color:var(--text-primary)}#m-year{text-align:center;font-variant-numeric:tabular-nums;min-width:3em}.dd{position:relative}.dd-btn{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-width:64px;display:inline-flex}.dd-btn:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);width:6px;height:6px;transform:translateY(-2px)rotate(45deg)}.dd-list{z-index:20;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;min-width:100%;max-height:300px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 10px 28px #00000038}.dd-list li{cursor:pointer;white-space:nowrap;border-radius:6px;padding:6px 10px}.dd-list li[aria-selected=true]{color:var(--series-1);font-weight:600}.dd-list li.active,.dd-list li:hover{background:var(--track)}@media (max-width:600px){#updated{display:none}}.grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:14px;min-width:0;padding:16px 18px}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-12{grid-column:span 12}@media (max-width:900px){.span-2,.span-3,.span-4,.span-5,.span-6,.span-7{grid-column:span 12}}@media (min-width:600px) and (max-width:900px){.span-2,.span-3{grid-column:span 6}}h2{color:var(--text-secondary);margin:0 0 10px;font-size:14px;font-weight:600}.hero{letter-spacing:-.02em;white-space:nowrap;font-size:clamp(22px,2.4vw,32px);font-weight:650;line-height:1.1}@media (max-width:900px){.hero{font-size:32px}}.sub{color:var(--text-secondary);margin-top:6px;font-size:13px}.rates{gap:6px;display:grid}.rates div{justify-content:space-between;gap:8px;display:flex}.rates span:last-child{font-variant-numeric:tabular-nums;font-weight:600}.progress{background:var(--track);border-radius:4px;height:8px;margin-top:10px;overflow:hidden}.progress>div{background:var(--series-1);border-radius:4px;height:100%}.legend{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-bottom:4px;font-size:13px;display:flex}.legend i{vertical-align:middle;width:16px;height:2px;margin-right:6px;display:inline-block}svg{width:100%;display:block;overflow:visible}.budget-row{border-top:1px solid var(--grid);grid-template-columns:290px 1fr 230px;align-items:center;gap:12px;padding:6px 0;display:grid}.budget-row:first-of-type{border-top:0}.budget-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.budget-val{color:var(--text-secondary);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.budget-val b{color:var(--text-primary);font-weight:600}.bar{background:var(--track);border-radius:4px;height:10px;position:relative}.bar>div{background:var(--series-1);border-radius:4px;position:absolute;top:0;bottom:0;left:0}.bar.over>div{background:var(--critical)}.tag{color:var(--critical);margin-left:6px;font-size:11px;font-weight:600;display:inline-block}@media (max-width:600px){.budget-row{grid-template-columns:1fr auto}.budget-row .bar{order:3;grid-column:1/-1}.budget-name{white-space:normal}}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--grid);padding:4px 6px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--grid);vertical-align:top;padding:7px 6px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td .meta{color:var(--muted);font-size:12px}tfoot th{border-bottom:0;border-top:1px solid var(--baseline);color:var(--text-secondary);padding-top:8px;font-size:13px}.neg{color:var(--text-primary)}.pos{color:var(--good-text)}.over-text{color:var(--critical)}.tip{pointer-events:none;background:var(--surface-1);border:1px solid var(--border);z-index:10;border-radius:8px;padding:8px 10px;font-size:13px;display:none;position:fixed;box-shadow:0 4px 16px #00000026}.tip b{font-size:15px;display:block}.tip .row{align-items:center;gap:6px;display:flex}.tip i{width:12px;height:2px;display:inline-block}.alloc{grid-template-columns:300px 1fr;align-items:start;gap:24px;display:grid}.alloc svg{position:sticky;top:16px}.alloc>*{min-width:0}@media (max-width:700px){.alloc{grid-template-columns:minmax(0,1fr)}.alloc svg{width:100%;max-width:260px;margin:0 auto;position:static}.alloc th:nth-child(2),.alloc td:nth-child(2){display:none}}.alloc path{cursor:default;transition:opacity .15s}.alloc path:hover,.alloc path:focus{opacity:.8;outline:none}.key{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:8px;display:inline-block}tr.sub td{color:var(--text-secondary);border-bottom:0;padding-top:3px;padding-bottom:3px;font-size:13px}tr.sub td:first-child{padding-left:24px}tr.grp td{border-top:1px solid var(--grid);border-bottom:0;padding-top:8px}.loading{opacity:.55;transition:opacity .2s}.err{color:var(--critical);font-size:14px}.past .now-only,.empty-note{display:none}#out-card{flex-direction:column;display:flex}@media (min-width:901px){#out-card .scroll{contain:size;flex:1;min-height:0;overflow-y:auto}.view[data-view=resumen]{grid-template-rows:auto minmax(0,1fr);grid-template-columns:repeat(6,minmax(0,1fr)) minmax(300px,3fr);height:calc(100vh - 122px);min-height:520px}.view[data-view=resumen]>.now-only{grid-area:1/span 2}.view[data-view=resumen]>#spend-card{flex-direction:column;grid-area:2/1/auto/7;display:flex}.past .view[data-view=resumen]>#spend-card{display:none}#spend-card .spark{flex:1;height:auto;min-height:110px;margin-top:16px}.view[data-view=resumen] #out-card{grid-area:1/7/3}.past .view[data-view=resumen] #out-card{grid-column:1/-1}.view[data-view=resumen]>.now-only .hero{font-size:clamp(18px,1.75vw,32px)}.view[data-view=resumen] .rates{font-size:clamp(12px,1vw,15px)}.view[data-view=resumen] .rates span{white-space:nowrap}}@media (min-width:901px) and (max-width:1200px){.view[data-view=resumen]{grid-template-rows:auto auto auto;grid-template-columns:repeat(6,minmax(0,1fr));height:auto;min-height:0}.view[data-view=resumen]>#spend-card .spark{flex:none;height:220px}.view[data-view=resumen] #out-card{grid-area:3/1/auto/-1}#out-card .scroll{max-height:none;overflow:visible;contain:none!important}.view[data-view=cierre]>.span-6{grid-column:span 12}}@media (min-width:901px){#out-card thead th{background:var(--surface-1);z-index:1;position:sticky;top:0}#out-card tfoot th{background:var(--surface-1);position:sticky;bottom:0}}.status{white-space:nowrap;font-size:12px}.status.ok{color:var(--good-text)}.status.due{color:var(--muted)}.ok-mark{color:var(--good-text);font-weight:600}.breakdown{color:var(--text-secondary);gap:4px;margin-top:10px;font-size:13px;display:grid}@media (max-width:1250px) and (min-width:601px){.tile{grid-column:span 6}}.breakdown span:last-child{white-space:nowrap}.breakdown div{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;display:flex}.add{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-top:12px;display:grid}.add input[type=text],.add input[type=number]{font:inherit;color:var(--text-primary);background:var(--page);border:1px solid var(--border);border-radius:8px;min-width:0;padding:6px 10px}.add input[name=name]{grid-column:1/-1}.add .opts{color:var(--text-secondary);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:14px;font-size:13px;display:flex}.add button{cursor:pointer}button.del{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:16px;line-height:1}button.del:hover{color:var(--critical)}@media (max-width:600px){.ctable th:nth-child(2),.ctable td:nth-child(2){display:none}}@keyframes spin{to{transform:rotate(360deg)}}.spark{height:110px;margin-top:10px}@media (max-width:600px){#recent .mv-detail{width:100%;max-width:0}#recent .mv-detail>div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#tip{white-space:normal;max-width:calc(100vw - 32px)}}.mv-table{table-layout:fixed}.mv-table .c-date{width:72px}.mv-table .c-amt{width:220px}.mv-table td{overflow-wrap:anywhere}@media (max-width:600px){.mv-table .c-date{width:50px}.mv-table .c-amt{width:124px}}.mv-search{width:100%;font:inherit;color:var(--text-primary);background:var(--page);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;padding:8px 12px}.pager{justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.pager button{cursor:pointer}.pager button:disabled{opacity:.4;cursor:default}@media (max-width:600px),(pointer:coarse){.pager button{display:none}.pager{justify-content:center}}ul.notes{color:var(--text-secondary);gap:8px;margin:0;padding-left:18px;font-size:14px;display:grid}ul.notes li>div{align-items:flex-start;gap:8px;display:flex}ul.notes li span{white-space:pre-wrap;flex:1}ul.notes li .acts{flex:none;gap:2px;display:flex}.note-form{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;margin-top:14px;display:grid}.note-form textarea{font:inherit;color:var(--text-primary);background:var(--page);border:1px solid var(--border);resize:vertical;border-radius:8px;min-width:0;padding:6px 10px;font-size:14px}.note-form .btns{flex-direction:column;gap:6px;display:flex}.note-form button{cursor:pointer}.hero.good{color:var(--good-text)}a{color:var(--series-1)}.empty-note.shown{grid-column:1/-1;display:block}.hero.bad{color:var(--critical)}.rates .selected span:first-child{font-weight:600}h1 .short{display:none}@media (max-width:600px){h1 .long{display:none}h1 .short{display:inline}}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--series-1);border-color:var(--series-1);color:#fff;font-weight:600}button.primary.big{border-radius:10px;width:100%;padding:11px 14px;font-size:16px}button.danger{color:var(--critical);border-color:color-mix(in srgb, var(--critical) 40%, transparent)}button.mini{border-radius:6px;padding:2px 8px;font-size:12px}.link-btn{color:var(--series-1);background:0 0;border:0;width:100%;padding:6px 0}.link-sm{font-size:13px;text-decoration:none}.spacer{flex:1}.err{margin:8px 0 0}header .actions{align-items:center;gap:8px;margin-left:auto;display:inline-flex}header h1{margin-right:0}header .pick{margin-right:auto}.gear{width:36px;height:36px;color:var(--text-secondary);border:1px solid var(--border);background:var(--surface-1);border-radius:8px;place-items:center;display:grid}.gear:hover{color:var(--text-primary)}.gear .ico{display:block}.fab{display:none}@media (max-width:760px){.add-btn{display:none}.fab{z-index:6;width:56px;height:56px;right:calc(16px + env(safe-area-inset-right));bottom:calc(80px + env(safe-area-inset-bottom));background:var(--series-1);color:#fff;border:0;border-radius:16px;place-items:center;padding:0;display:grid;position:fixed;box-shadow:0 6px 18px #00000047}main{padding-bottom:calc(150px + env(safe-area-inset-bottom))}}nav.side .settings-link{color:var(--text-secondary);border-radius:8px;align-items:center;gap:8px;margin-top:auto;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}nav.side .settings-link .ico{width:18px;height:18px;display:block}nav.side .settings-link:hover{background:var(--track);color:var(--text-primary)}nav.side .settings-link[aria-current=page]{background:var(--surface-1);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);font-weight:600}@media (min-width:761px){.gear{display:none}}@media (max-width:760px){nav.side .settings-link{display:none}}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.card-head h2{margin:0}.editor-wrap{margin-top:14px}.card h3{color:var(--text-secondary);margin:18px 0 8px;font-size:13px;font-weight:600}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--track)}tr.archived td,li.archived{color:var(--muted)}.row-acts{justify-content:flex-end;align-items:center;gap:6px;display:flex}.hint-card{border-style:dashed}.field{min-width:0;color:var(--text-secondary);flex-direction:column;gap:4px;font-size:13px;display:flex}.field input,.field select,.amount-input input,.split-row input,.add-inline input,.rename input{font:inherit;color:var(--text-primary);background:var(--page);border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;padding:8px 10px;font-size:15px}@media (max-width:760px){.field input,.field select,.code-input,.mv-search,.add input,.add select,textarea{font-size:16px!important}}.field-row{gap:10px;display:flex}.field-row .field.grow{flex:1}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.modal-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.btn-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.inline-form{border-top:1px solid var(--grid);margin-top:16px;padding-top:14px}.inline-form h3{margin-top:0}.seg{background:var(--track);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-secondary);background:0 0;border:0;border-radius:8px;padding:6px 12px}.seg button.on{background:var(--surface-1);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px #0000001f}dialog.modal{border:1px solid var(--border);background:var(--surface-1);color:var(--text-primary);border-radius:16px;width:min(480px,100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;overflow:auto}dialog.modal::backdrop{background:#00000073}.mv-form{gap:12px;display:grid}.mv-form h2{color:var(--text-primary);margin:0;font-size:17px}.mv-form .seg{width:100%}.mv-form .seg button{flex:1}@media (max-width:600px){dialog.modal{width:100vw;max-width:100vw;padding-bottom:calc(20px + env(safe-area-inset-bottom));border-radius:16px 16px 0 0;margin:auto auto 0}}.budget-editor table td{vertical-align:middle}.amount-input{gap:6px;display:inline-flex}.amount-input input{text-align:right;width:140px}.amount-input select{font:inherit}@media (max-width:600px){.amount-input input{width:100px}}.toc{flex-wrap:wrap;gap:6px 16px;font-size:14px;display:flex}.toc a{text-decoration:none}.settings .card{scroll-margin-top:16px}.two-cols{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:700px){.two-cols{grid-template-columns:1fr}}.cat-list{margin:0;padding:0;list-style:none;display:grid}.cat-list li{border-bottom:1px solid var(--grid);align-items:center;gap:6px;padding:5px 0;font-size:14px;display:flex}.cat-list .grow{flex:1;min-width:0}.cat-list .rename{flex:1;gap:6px;display:flex}.add-inline{gap:8px;margin-top:10px;display:flex}.splits{gap:8px;display:grid}.split-row{grid-template-columns:minmax(0,1fr) 96px minmax(0,1.4fr) auto;align-items:center;gap:8px;display:grid}.split-row .pct{color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.split-row .pct input{text-align:right}@media (max-width:600px){.split-row{grid-template-columns:minmax(0,1fr) 84px auto}.split-row .note{grid-area:2/1/auto/-1}}.split-foot{justify-content:space-between;align-items:center;gap:12px;display:flex}.danger-title{color:var(--critical)!important}.confirm-delete{max-width:420px}main.narrow{max-width:560px;padding-top:calc(48px + env(safe-area-inset-top))}main.narrow h1{margin:0 0 8px;font-size:26px}.lead{color:var(--text-secondary);margin:0 0 20px;font-size:15px}.brand-big{letter-spacing:-.02em;margin-bottom:6px;font-size:30px;font-weight:700}.center{text-align:center}.code-form form{gap:12px;display:grid}.code-input{letter-spacing:6px;text-align:center;color:var(--text-primary);background:var(--page);border:1px solid var(--border);border-radius:10px;width:100%;padding:12px;font:700 24px ui-monospace,SFMono-Regular,Menlo,monospace}.dev-btn{width:100%;color:var(--muted);border-style:dashed;margin-top:16px}.welcome{gap:16px;display:grid}.welcome-row{border-bottom:1px solid var(--grid);grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) 90px minmax(0,1fr) auto auto;align-items:end;gap:8px;padding:10px 0;display:grid}.welcome-row .radio{color:var(--text-secondary);white-space:nowrap;padding-bottom:9px;font-size:13px}.welcome-row .del{padding-bottom:9px}.welcome>.card>button{margin-top:12px}@media (max-width:600px){.welcome-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.welcome-row .field.grow{grid-column:1/-1}}.prose section h2{color:var(--text-primary);margin:22px 0 6px;font-size:15px}.prose p{color:var(--text-secondary);margin:0}main.narrow.wide{max-width:820px}.welcome-row .field span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:600px){header{grid-template-columns:minmax(0,1fr) auto;row-gap:10px;display:grid}header h1{grid-area:1/1}header .actions{grid-area:1/2}header .pick{grid-area:2/1/auto/-1;margin:0}}
