:root{--ultramar:#3D5AFE;--ultramar-700:#2A3FC4;--coral:#FF6B4A;--coral-ink:#C93A20;--tinta:#0F172A;--pizarra:#5B6478;--niebla:#EEF1FF;--linea:#D9DEF7;--blanco:#FFFFFF;--bg:var(--blanco);--surface:var(--niebla);--ink:var(--tinta);--muted:var(--pizarra);--line:var(--linea);--brand:var(--ultramar);--brand-ink:var(--ultramar);--on-brand:#FFFFFF;--accent:var(--coral);--accent-ink:var(--coral-ink);--good:#1E7A4F;--emi:var(--coral-ink);--eze:var(--ultramar);--ambos:var(--pizarra);--sans:"Sora", system-ui, -apple-system, "Segoe UI", sans-serif;--space-2:8px;--space-4:16px;--space-6:24px;--space-10:40px;--radius-sm:6px;--radius-md:12px;--radius-lg:20px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0B1020;--surface:#141B33;--ink:#E9ECFA;--muted:#A3ABC4;--line:#262F52;--brand:#3D5AFE;--brand-ink:#9AAAFF;--accent:#FF6B4A;--accent-ink:#FF8E74;--good:#5CC892;--emi:#FF8E74;--eze:#9AAAFF;--ambos:#A3ABC4;color-scheme:dark}}:root[data-theme=dark]{--bg:#0B1020;--surface:#141B33;--ink:#E9ECFA;--muted:#A3ABC4;--line:#262F52;--brand:#3D5AFE;--brand-ink:#9AAAFF;--accent:#FF6B4A;--accent-ink:#FF8E74;--good:#5CC892;--emi:#FF8E74;--eze:#9AAAFF;--ambos:#A3ABC4;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55;font-variant-numeric:tabular-nums}.wrap{max-width:1160px;margin:0 auto;padding-block:var(--space-6) var(--space-10);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:var(--space-6)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--brand-ink);outline-offset:2px;border-radius:var(--radius-sm)}h1,h2,h3{margin:0;text-wrap:balance;font-weight:600}.overline{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}a{color:var(--brand-ink)}header.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4)}.brand{display:flex;flex-direction:column;gap:4px}.brand h1{font-size:30px;line-height:36px;letter-spacing:-.5px}.brand h1 .light{font-weight:300}.brand .bar{width:36px;height:5px;border-radius:var(--radius-sm);background:var(--accent);margin-top:6px}.sync{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:13px}.btn{border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-md);padding:8px 14px;font-size:13px;font-weight:600}.btn:hover{border-color:var(--brand-ink)}.btn.primary{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}.btn.primary:hover{background:var(--ultramar-700)}.btn[disabled]{opacity:.55;cursor:default}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.ok{background:var(--good)}.dot.bad{background:var(--accent)}.periods{display:flex;flex-direction:column;gap:12px;min-width:0}.years{align-items:center}.years button{font-size:14px;font-weight:600;padding:6px 16px}.months{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.months button{flex:0 0 auto;border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;display:flex;flex-direction:column;align-items:center;min-width:58px}.months button .y{font-size:10px;color:var(--muted)}.months button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.months button.on .y{color:var(--on-brand);opacity:.8}.months button.now:not(.on){border-color:var(--brand-ink)}.summary{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-6);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}.fig{display:flex;flex-direction:column;gap:2px;min-width:0}.fig .v{font-size:30px;line-height:38px;font-weight:600;letter-spacing:-.5px;overflow-wrap:anywhere}.fig .s{font-size:13px;color:var(--muted)}.fig.neg .v{color:var(--accent-ink)}.fig.pos .v{color:var(--good)}.notice{grid-column:1/-1;font-size:13px;border-top:1px solid var(--line);padding-top:var(--space-4);color:var(--muted);display:flex;gap:var(--space-2);align-items:flex-start}.notice .pin{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:6px}.grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:var(--space-6);align-items:start}.col{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.card-h{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap}.card-h h2{font-size:20px;line-height:28px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:4px 12px;font-size:12px}.chips button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.rows{display:flex;flex-direction:column}.row{display:grid;grid-template-columns:62px minmax(0,1fr) auto 28px;align-items:center;gap:var(--space-2) 12px;padding:9px 0;border-bottom:1px solid var(--line);position:relative}.row:last-child{border-bottom:0}.row.empty .name{color:var(--muted)}.who{font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.who.Emi{color:var(--emi)}.who.Eze{color:var(--eze)}.who.Ambos{color:var(--ambos)}.name{min-width:0;overflow-wrap:anywhere;display:flex;flex-direction:column}.name small{font-size:11px;color:var(--muted)}.meter{height:3px;border-radius:2px;background:var(--line);margin-top:5px;overflow:hidden}.meter i{display:block;height:100%;background:var(--brand)}.amt{justify-self:end;text-align:right}.amt button{border:1px dashed transparent;background:transparent;border-radius:var(--radius-sm);padding:4px 8px;font-weight:600;font-size:15px}.amt button:hover{border-color:var(--line);background:var(--surface)}.amt button.blank{color:var(--muted);font-weight:400}.amt input{width:130px;text-align:right;border:1px solid var(--brand-ink);border-radius:var(--radius-sm);padding:4px 8px;background:var(--bg);font-weight:600}.amt .lock{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;font-weight:600}.amt .lock svg{width:12px;height:12px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round}.amt .saving{opacity:.5}.foot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:13px}.del{border:0;background:transparent;width:28px;height:28px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;padding:0}.del svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.del:hover{background:var(--surface)}.del:hover svg{stroke:var(--accent-ink)}.del[disabled]{opacity:.4;cursor:default}.confirm{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;background:var(--surface);border-radius:var(--radius-sm);padding:8px 10px}.confirm span{flex:1 1 220px;min-width:0}.btn.danger{background:var(--coral-ink);border-color:var(--coral-ink);color:#fff}.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.addform{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr);gap:12px;align-items:end;background:var(--surface);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-2)}.addform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:0}.addform input,.addform select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;background:var(--bg);font-size:14px;width:100%;min-width:0}.addform .acts{grid-column:1/-1}.people{display:flex;flex-direction:column;gap:var(--space-4)}.person{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;align-items:baseline}.person .nm{font-weight:600;font-size:16px}.person .bal{justify-self:end;font-weight:600}.person .bal.neg{color:var(--accent-ink)}.person .bal.pos{color:var(--good)}.person .det{grid-column:1/-1;font-size:13px;color:var(--muted)}.split{display:flex;height:10px;border-radius:var(--radius-sm);overflow:hidden;background:var(--line)}.split i{display:block;height:100%}.legend{display:flex;gap:var(--space-4);flex-wrap:wrap;font-size:12px;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--c)}.agenda{display:flex;flex-direction:column;gap:var(--space-4);max-height:420px;overflow-y:auto}.day{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px}.day .d{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;line-height:1.1}.day .d b{font-size:20px;font-weight:600}.day .d span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.evs{display:flex;flex-direction:column;gap:6px;min-width:0}.ev{background:var(--surface);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;overflow-wrap:anywhere;display:flex;gap:8px;align-items:baseline;text-decoration:none;color:var(--ink)}.ev:hover{outline:1px solid var(--line)}.ev .t{color:var(--muted);font-size:12px;flex:0 0 auto}.ev.pay{background:transparent;border:1px solid var(--accent)}.ev.pay .t{color:var(--accent-ink);font-weight:600}form.sched{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:12px;align-items:end}form.sched label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);min-width:0}form.sched select,form.sched input[type=number]{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;background:var(--bg);font-size:14px;width:100%;min-width:0}form.sched .full{grid-column:1/-1}form.sched .check{flex-direction:row;align-items:center;gap:8px;color:var(--ink);font-size:13px}.chart-wrap{overflow-x:auto}.chart-wrap svg{display:block;min-width:640px;width:100%;height:auto}svg .grid-l{stroke:var(--line);stroke-width:1}svg .lbl{fill:var(--muted);font-size:11px;font-family:var(--sans)}svg .lbl.on{fill:var(--ink);font-weight:600}svg .b-inc{fill:var(--brand)}svg .b-exp{fill:var(--accent)}svg .sel{fill:var(--surface)}svg .hit{fill:transparent;cursor:pointer}svg .saldo{fill:none;stroke:var(--ink);stroke-width:1.5}svg .saldo-pt{fill:var(--bg);stroke:var(--ink);stroke-width:1.5}svg .zero{stroke:var(--muted);stroke-width:1}.state{border:1px dashed var(--line);border-radius:var(--radius-md);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-start;font-size:14px}.state b{font-weight:600}.skel{height:14px;border-radius:4px;background:var(--surface);width:70%}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:var(--radius-md);font-size:13px;max-width:min(520px,calc(100vw - 32px));z-index:20}.toast.err{background:var(--coral-ink);color:#fff}@media(max-width:880px){.grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:620px){.summary{grid-template-columns:minmax(0,1fr);gap:var(--space-4);padding:var(--space-4)}.fig .v{font-size:26px;line-height:32px}.card{padding:var(--space-4)}.row{grid-template-columns:minmax(0,1fr) auto 28px}.addform{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.addform label:first-child{grid-column:1/-1}.row .who{grid-column:1/-1;margin-bottom:-6px}.amt input{width:110px}}@media(prefers-reduced-motion:no-preference){.months button,.btn,.chips button{transition:background .15s,border-color .15s}}.gate{min-height:100%;display:flex;align-items:center;justify-content:center;padding-block:var(--space-10);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.gate-card{max-width:420px;width:100%;display:flex;flex-direction:column;gap:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-6)}.gate-card p{margin:0;color:var(--muted)}.who-me{font-size:13px;color:var(--muted)}.usd-note{display:block;font-size:11px;font-weight:400;color:var(--muted)}html,body{height:100%}[hidden]{display:none!important}body{margin:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:transparent;padding:10px 16px;font-size:15px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.tabs button:hover{color:var(--ink)}.period{display:flex;flex-direction:column;gap:12px}.period-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.period-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-md);padding:8px 14px;font-size:20px;font-weight:600;text-transform:capitalize}.period-toggle svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;transition:transform .15s}.period-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.nav-arrow{border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-md);width:40px;height:40px;font-size:20px;line-height:1}.nav-arrow:hover,.period-toggle:hover{border-color:var(--brand-ink)}.nav-arrow[disabled]{opacity:.35;cursor:default}.period-totals{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-left:auto}.period-totals b{color:var(--ink);font-weight:600}.period-totals b.neg{color:var(--accent-ink)}.period-totals b.pos{color:var(--good)}.picker{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4);background:var(--surface)}.month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.month-grid button{border:1px solid var(--line);background:var(--bg);border-radius:var(--radius-sm);padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:13px;font-weight:600}.month-grid button small{font-size:11px;font-weight:400;color:var(--muted)}.month-grid button.on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.month-grid button.on small{color:var(--on-brand);opacity:.85}.month-grid button.now:not(.on){border-color:var(--brand-ink)}.cats{display:flex;flex-direction:column;gap:8px}.cat{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.cat-h{width:100%;display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:10px;align-items:center;border:0;background:var(--surface);padding:10px 14px;text-align:left}.cat-h svg{width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2;stroke-linecap:round;transition:transform .15s}.cat-h[aria-expanded=false] svg{transform:rotate(-90deg)}.cat-name{font-weight:600;font-size:15px;min-width:0;overflow-wrap:anywhere}.cat-count{font-size:12px;color:var(--muted)}.cat-sum{font-weight:600;min-width:96px;text-align:right}.cat-body{display:flex;flex-direction:column;padding:4px 14px}.line{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:6px 12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line)}.line:last-child{border-bottom:0}.line.editing{grid-template-columns:minmax(0,1fr) 150px auto}.ln-name{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;overflow-wrap:anywhere}.tag{font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;border-radius:999px;padding:2px 7px;border:1px solid currentColor;flex:0 0 auto}.tag.Emi{color:var(--emi)}.tag.Eze{color:var(--eze)}.tag.Ambos{color:var(--ambos)}.ln-amt{position:relative}.ln-amt .cur{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px;pointer-events:none}.ln-amt input{width:100%;text-align:right;border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 10px 7px 24px;background:var(--bg);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}.ln-amt input::placeholder{font-weight:400;color:var(--muted)}.ln-amt input:focus{border-color:var(--brand-ink);outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent)}.ln-amt.saving input{opacity:.5}.ln-note{grid-column:1/-1;font-size:11px;color:var(--muted);margin-top:-4px;text-align:right}.ln-edit{display:flex;gap:6px;align-items:center}.ln-edit select{border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 8px;background:var(--bg);font-size:12px;max-width:150px}.btn.small{padding:6px 12px;font-size:12px}.btn[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.hint{font-size:12px;color:var(--muted)}.addform{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr)}.year-figs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.year-figs .fig{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}.year-figs .v{font-size:22px;line-height:28px;font-weight:600}.year-figs .neg .v{color:var(--accent-ink)}.year-figs .pos .v{color:var(--good)}.bars{display:flex;flex-direction:column;gap:12px}.bar-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:14px}.bar-row b{font-weight:600}.bar-row .track{grid-column:1/-1;height:8px;border-radius:4px;background:var(--surface);overflow:hidden}.bar-row .track i{display:block;height:100%;background:var(--accent);border-radius:4px}@media(max-width:620px){.month-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.period-totals{margin-left:0;width:100%}.line,.line.editing{grid-template-columns:minmax(0,1fr) 130px}.line.editing .ln-edit{grid-column:1/-1}.addform{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.year-figs{grid-template-columns:minmax(0,1fr)}.cat-h{grid-template-columns:18px minmax(0,1fr) auto}.cat-count{display:none}}
