@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--font-display: "Bricolage Grotesque Variable", system-ui, sans-serif;--font-body: "IBM Plex Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-data: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--bg: #eef1ec;--surface: #fff;--surface-2: #f6f8f5;--ink: #14201b;--ink-2: #5a6b62;--line: #dbe2db;--line-strong: #c3cec5;--brand: #14503c;--brand-hover: #0f3d2e;--brand-ink: #fff;--topbar-bg: var(--brand);--topbar-ink: #fff;--topbar-hover: rgb(255 255 255 / .1);--topbar-active: rgb(255 255 255 / .16);--accent: #b45309;--accent-soft: #fdf3e3;--plan: #4338ca;--plan-soft: #e6e6fb;--pos: #15803d;--neg: #b3261e;--neg-soft: #fdecea;--pos-soft: #e6f5ec;--radius: 12px;--radius-sm: 7px;--shadow: 0 1px 2px rgb(20 32 27 / .06), 0 6px 16px -10px rgb(20 32 27 / .25);font-family:var(--font-body);color:var(--ink);background:var(--bg);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f1512;--surface: #171f1a;--surface-2: #1d2721;--ink: #e7ede8;--ink-2: #96a79c;--line: #2a352e;--line-strong: #3a473f;--brand: #4fae87;--brand-hover: #61c199;--brand-ink: #0f1512;--topbar-bg: #0a0f0c;--topbar-ink: var(--ink);--topbar-hover: rgb(255 255 255 / .07);--topbar-active: rgb(79 174 135 / .2);--accent: #e0a44e;--accent-soft: #2e2415;--plan: #a5a0f5;--plan-soft: #241f4d;--pos: #58c98a;--neg: #f0857c;--neg-soft: #331d1b;--pos-soft: #14291d;--shadow: 0 1px 2px rgb(0 0 0 / .4), 0 6px 16px -10px rgb(0 0 0 / .7);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}main{max-width:1040px;margin:0 auto;padding:1.5rem 1rem 4rem}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.02em}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.7rem max(1rem,calc((100% - 1040px)/2));background:var(--topbar-bg);color:var(--topbar-ink);flex-wrap:wrap}.topbar button.link{color:inherit;opacity:.72}.topbar button.link:hover:not(:disabled){color:inherit;opacity:1}.topbar .brand{font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:-.03em}.topbar nav{display:flex;gap:.35rem;flex:1;flex-wrap:wrap}.topbar a{color:inherit;opacity:.72;text-decoration:none;padding:.3rem .6rem;border-radius:var(--radius-sm);transition:opacity .15s ease,background-color .15s ease}.topbar a:hover{opacity:1;background:var(--topbar-hover)}.topbar a.router-link-active{opacity:1;font-weight:600;background:var(--topbar-active)}.topbar .user{display:flex;align-items:center;gap:.6rem;font-size:.875rem}button{font:inherit;font-weight:500;padding:.45rem .95rem;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--brand);color:var(--brand-ink);cursor:pointer;transition:background-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--brand-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;padding:.2rem .3rem;border-radius:4px}button.link:hover:not(:disabled){background:none;color:var(--ink)}button.danger{background:var(--neg);color:#fff}@media(prefers-color-scheme:dark){button.danger{color:var(--brand-ink)}}input,select,textarea{font:inherit;padding:.42rem .55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink)}input[type=number],input[type=date]{font-family:var(--font-data);font-variant-numeric:tabular-nums}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.25rem 1.25rem;margin-bottom:1.1rem;box-shadow:var(--shadow)}.card h2{margin:0 0 .9rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.form-row{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end}.form-row label{display:flex;flex-direction:column;gap:.25rem;flex:1 1 9rem;max-width:22rem;min-width:0;font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.form-row label input,.form-row label select{width:100%}.form-row>button{margin-left:auto;flex:0 0 auto}label.check{flex:0 1 auto;flex-direction:row;align-items:center;gap:.4rem;padding-bottom:.45rem;text-transform:none;letter-spacing:0;font-size:.85rem}label.check input{width:auto;accent-color:var(--brand)}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;padding:.4rem .6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);border-bottom:1px solid var(--line-strong)}td{text-align:left;padding:.6rem;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--surface-2)}td[data-label=Fecha],td[data-label=Cadencia],td[data-label=Próximo],td[data-label=Estado],td[data-label=Día],td[data-label=Tipo],td[data-label=Cuotas]{white-space:nowrap}tbody td:last-child{white-space:nowrap}td.num,th.num{text-align:right;font-family:var(--font-data);font-variant-numeric:tabular-nums}td.num input{width:7.5rem;text-align:right}.ingreso{color:var(--pos)}.egreso{color:var(--neg)}.transferencia{color:var(--ink-2)}tr.vencido td{background:var(--accent-soft)}tr.vencido td:first-child{box-shadow:inset 3px 0 0 var(--accent)}tr.vencido strong{display:inline-block;margin-left:.35rem;padding:.05rem .4rem;border-radius:999px;background:var(--accent);color:var(--surface);font-family:var(--font-body);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}@media(prefers-color-scheme:dark){tr.vencido strong{color:#0f1512}}.plan{display:inline-block;background:var(--plan-soft);color:var(--plan);border-radius:999px;padding:.1rem .55rem;font-family:var(--font-data);font-size:.8rem;font-variant-numeric:tabular-nums;cursor:help}tr.finalizada{color:var(--ink-2)}tr.finalizada .plan{background:var(--surface-2);color:var(--ink-2)}.saldos{list-style:none;padding:.9rem 1rem;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:.15rem 2.5rem;background:var(--surface-2);border:1px dashed var(--line-strong);border-radius:var(--radius-sm)}.saldos li{display:flex;align-items:baseline;gap:.5rem;padding:.3rem 0}.saldos li span{display:flex;align-items:baseline;gap:.5rem;flex:1;min-width:0;color:var(--ink-2);font-size:.85rem}.saldos li span:after{content:"";flex:1;min-width:1.5rem;border-bottom:1px dotted var(--line-strong);transform:translateY(-.28em)}.saldos li strong{font-family:var(--font-data);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.card .row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.card .row h3{margin:0;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2)}.toggle{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;cursor:pointer;font-size:.95rem}.toggle input{accent-color:var(--brand);width:1.05rem;height:1.05rem}.toggle .hint{margin:0;font-family:var(--font-data)}.error,.success{padding:.6rem .9rem;border-radius:var(--radius-sm);margin-bottom:.75rem;font-size:.9rem;border:1px solid transparent}.error{background:var(--neg-soft);color:var(--neg);border-color:color-mix(in srgb,var(--neg) 25%,transparent)}.success{background:var(--pos-soft);color:var(--pos);border-color:color-mix(in srgb,var(--pos) 25%,transparent)}.field-error{color:var(--neg);font-size:.85rem;margin:-.35rem 0 0}.hint{color:var(--ink-2);font-size:.85rem;margin-bottom:1rem}.muted{color:var(--ink-2);font-size:.85rem}label.muted{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:.9rem;cursor:pointer}label.muted input{accent-color:var(--brand)}.empty{padding:2rem 1rem;text-align:center;color:var(--ink-2);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.empty strong{display:block;font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:.25rem}.empty p{margin:0;font-size:.875rem}.skeleton{display:grid;gap:.55rem;padding:.4rem 0}.skeleton span{display:block;height:1.15rem;border-radius:4px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:skeleton 1.4s ease-in-out infinite}.skeleton span:nth-child(2){width:92%}.skeleton span:nth-child(3){width:78%}.skeleton span:nth-child(4){width:85%}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pager{display:flex;gap:.75rem;align-items:center;margin-top:1rem;padding-top:.85rem;border-top:1px dashed var(--line-strong)}.pager .muted{font-family:var(--font-data);font-size:.78rem}.login-wrap{max-width:380px;margin:10vh auto 0;padding:1.75rem 1.6rem 1.6rem}.login-wrap h2{font-size:2rem;line-height:1.1;text-transform:none;letter-spacing:-.04em;color:var(--ink);margin-bottom:.3rem}.login-wrap form,.password-wrap form{display:flex;flex-direction:column;gap:.85rem}.login-wrap label,.password-wrap label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.login-wrap button[type=submit],.password-wrap button[type=submit]{margin-top:.25rem;padding:.55rem .95rem}.password-wrap{max-width:440px}@media(max-width:720px){main{padding:1rem .7rem 3rem}.card{padding:1rem .9rem}table,tbody,tr,td{display:block;width:100%}thead{display:none}tbody tr{border:1px solid var(--line);border-radius:var(--radius-sm);padding:.35rem .7rem;margin-bottom:.7rem;background:var(--surface)}tbody tr:last-child td,td{display:flex;align-items:baseline;justify-content:flex-start;gap:.4rem;padding:.35rem 0;border-bottom:1px dotted var(--line);text-align:right}td:before{margin-right:auto}tbody tr td:last-child{border-bottom:none;justify-content:flex-start;gap:.5rem;padding-top:.55rem}td:not([data-label]){justify-content:flex-start;text-align:left}td:before{content:attr(data-label);flex:none;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);text-align:left}tbody tr:hover td{background:none}tr.vencido{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}tr.vencido td{background:none}td.num input{width:9rem}.form-row label{flex:1 1 10rem}.topbar{gap:.75rem}}
