:root{--bg:#F4F6F7;--surface:#FFFFFF;--surface-2:#EEF2F4;--sunken:#E9EEF1;--ink:#15202A;--ink-2:#3B4B57;--muted:#667885;--faint:#93A5B0;--border:#DFE6EA;--border-strong:#C7D3DA;--accent:#14556E;--accent-ink:#0E3F52;--accent-wash:#E2EDF2;--receita:#0E8F73;--despesa:#D65A2B;--alerta:#B07A12;--receita-wash:#E1F2ED;--despesa-wash:#FAE9E1;--alerta-wash:#F7EEDC;--grid:#E7EDF0;--shadow:0 1px 2px rgba(21,32,42,.06),0 8px 24px -18px rgba(21,32,42,.35);--r:10px;--f-ui:"Archivo","Helvetica Neue",Arial,sans-serif;--f-num:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0D1418;--surface:#141E25;--surface-2:#1A262E;--sunken:#101A20;--ink:#E7EEF2;--ink-2:#C2D0D9;--muted:#94A7B3;--faint:#6E828F;--border:#22323C;--border-strong:#31454F;--accent:#5AA9C9;--accent-ink:#8FC9E0;--accent-wash:#16303C;--receita:#35BFA0;--despesa:#F0805A;--alerta:#DDA83F;--receita-wash:#12312B;--despesa-wash:#361E16;--alerta-wash:#33280F;--grid:#1E2C34;--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -20px rgba(0,0,0,.9)}}:root[data-theme=dark]{--bg:#0D1418;--surface:#141E25;--surface-2:#1A262E;--sunken:#101A20;--ink:#E7EEF2;--ink-2:#C2D0D9;--muted:#94A7B3;--faint:#6E828F;--border:#22323C;--border-strong:#31454F;--accent:#5AA9C9;--accent-ink:#8FC9E0;--accent-wash:#16303C;--receita:#35BFA0;--despesa:#F0805A;--alerta:#DDA83F;--receita-wash:#12312B;--despesa-wash:#361E16;--alerta-wash:#33280F;--grid:#1E2C34;--shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -20px rgba(0,0,0,.9)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;text-wrap:balance;font-weight:600;letter-spacing:-.01em}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.num{font-family:var(--f-num);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.eyebrow{font-family:var(--f-num);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500}.shell{display:grid;grid-template-columns:216px 1fr;min-height:100vh}.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:20px;padding:20px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center;flex:none}.mark svg{width:17px;height:17px}.brand b{font-size:15.5px;font-weight:700;letter-spacing:-.02em}.brand span{display:block;font-size:10.5px;color:var(--faint);font-family:var(--f-num);letter-spacing:.04em}.nav{display:flex;flex-direction:column;gap:2px}.nav a,.nav button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:0;border-radius:8px;cursor:pointer;color:var(--ink-2);font-size:13.5px;font-weight:500;text-align:left}.nav a:hover,.nav button:hover{background:var(--surface-2);text-decoration:none}.nav a[aria-current=true],.nav button[aria-current=true]{background:var(--accent-wash);color:var(--accent-ink);font-weight:600}.nav svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.nav .tag{margin-left:auto;font-family:var(--f-num);font-size:10px;background:var(--despesa-wash);color:var(--despesa);padding:1px 5px;border-radius:20px;font-weight:600}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}.user{display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--border);border-radius:9px}.avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-wash);color:var(--accent-ink);display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}.user small{display:block;color:var(--faint);font-size:10.5px}.themetog{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:7px;cursor:pointer;color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:center;gap:7px}.themetog:hover{border-color:var(--border-strong);color:var(--ink)}.main{padding:22px 26px 56px;max-width:1240px;width:100%}.topbar{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.topbar h1{font-size:24px}.topbar p{margin:2px 0 0;color:var(--muted);font-size:13px}.monthpick{margin-left:auto;display:flex;align-items:center;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:3px}.monthpick button{background:none;border:0;padding:5px 8px;border-radius:6px;cursor:pointer;color:var(--muted);line-height:0}.monthpick button:hover{background:var(--surface-2);color:var(--ink)}.monthpick svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.monthpick .label{padding:0 8px;font-family:var(--f-num);font-size:12.5px;font-weight:500}.demo{display:flex;align-items:center;gap:9px;background:var(--alerta-wash);border:1px solid color-mix(in srgb,var(--alerta) 30%,transparent);color:var(--ink-2);padding:8px 12px;border-radius:9px;font-size:12.5px;margin-bottom:18px}.demo b{color:var(--alerta)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow)}.card>header{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.card>header h3{font-size:14.5px}.card>header .sub{color:var(--faint);font-size:11.5px;margin-left:auto;font-family:var(--f-num)}.grid{display:grid;grid-gap:14px;gap:14px;align-items:start}.g-2{grid-template-columns:1.55fr 1fr}.g-half{grid-template-columns:1fr 1fr}section[hidden]{display:none!important}.band{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:14px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:5px;box-shadow:var(--shadow)}.stat .v{font-family:var(--f-num);font-size:26px;font-weight:600;letter-spacing:-.035em;line-height:1.1}.stat .v.neg{color:var(--despesa)}.stat .meta{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-top:1px;flex-wrap:wrap}.chip{font-family:var(--f-num);font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:20px;border:1px solid transparent;white-space:nowrap}.chip.ok{background:var(--receita-wash);color:var(--receita)}.chip.bad{background:var(--despesa-wash);color:var(--despesa)}.chip.warn{background:var(--alerta-wash);color:var(--alerta)}.chip.neutral{background:var(--surface-2);color:var(--muted)}.stat.flag{border-left:3px solid var(--alerta)}.chartwrap{position:relative}.chartwrap svg{display:block;width:100%;height:auto;overflow:visible}.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;box-shadow:var(--shadow);font-size:12px;min-width:150px;opacity:0;transition:opacity .1s;z-index:5}.tip .d{font-size:10.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.06em}.tip .b,.tip .d{font-family:var(--f-num)}.tip .b{font-size:16px;font-weight:600;margin:2px 0 4px}.tip ul{margin:4px 0 0;list-style:none;border-top:1px solid var(--border);padding:4px 0 0;display:flex;flex-direction:column;gap:2px}.tip li{display:flex;gap:10px;font-size:11.5px;color:var(--ink-2)}.tip li span:last-child{margin-left:auto;font-family:var(--f-num)}.legend{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--muted);margin-top:10px}.legend i{display:inline-block;width:16px;height:0;border-top-width:2.5px;border-top-style:solid;vertical-align:middle;margin-right:6px}.cats{display:flex;flex-direction:column;gap:11px}.catrow{display:grid;grid-template-columns:1fr auto;grid-gap:2px 10px;gap:2px 10px;align-items:baseline}.catrow .n{font-size:12.5px;color:var(--ink-2)}.catrow .v{font-family:var(--f-num);font-size:12.5px;font-weight:500}.track{grid-column:1/-1;height:9px;background:var(--sunken);position:relative;overflow:visible}.fill,.track{border-radius:4px}.fill{inset:0 auto 0 0;background:var(--accent);min-width:4px}.fill,.prev{position:absolute}.prev{top:-3px;bottom:-3px;width:2px;background:var(--border-strong);border-radius:1px}.catrow .delta{font-family:var(--f-num);font-size:10.5px;color:var(--muted)}.ruler{padding:6px 2px 2px}.rulerbar{position:relative;height:34px;margin:36px 0 38px}.rulerbar.plain{margin:10px 0 16px;height:34px}.rulerbar .seg{position:absolute;top:11px;height:12px;border-radius:6px}.rulerbar .past{background:var(--accent);opacity:.9}.rulerbar .open{background:var(--accent-wash);border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent)}.rulerbar .grace{background:repeating-linear-gradient(135deg,var(--alerta-wash),var(--alerta-wash) 5px,transparent 5px,transparent 10px);border:1px solid color-mix(in srgb,var(--alerta) 30%,transparent);border-radius:6px}.pin{position:absolute;top:0;bottom:-4px;width:2px;background:var(--ink);border-radius:1px}.pin.today{background:var(--despesa)}.pin.due{background:var(--alerta)}.pinlab{position:absolute;font-family:var(--f-num);font-size:10px;white-space:nowrap;color:var(--muted);transform:translateX(-50%)}.pinlab.top{top:-26px}.pinlab.bot{bottom:-26px}.pinlab b{display:block;color:var(--ink);font-size:11px}.rulernote{font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:11px}.rulernote b{color:var(--ink)}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-family:var(--f-num);font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:500;padding:0 10px 8px;white-space:nowrap}td,th{border-bottom:1px solid var(--border)}td{padding:9px 10px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--surface-2)}td.r,th.r{text-align:right}.money{font-family:var(--f-num);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap}.money.in{color:var(--receita)}.money.out{color:var(--ink)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:baseline;flex:none}.desc{display:flex;align-items:center;gap:0}.sub{color:var(--faint);font-size:11.5px}.instal{font-family:var(--f-num);font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:5px;padding:1px 5px;white-space:nowrap}.upcoming{display:flex;flex-direction:column;gap:0}.up{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--border)}.up:last-child{border-bottom:0}.update{font-family:var(--f-num);font-size:11px;text-align:center;background:var(--surface-2);border-radius:7px;padding:4px 0;width:38px;flex:none;line-height:1.15}.update b{display:block;font-size:14px}.up .t{flex:1 1;min-width:0}.up .t b{display:block;font-size:13px;font-weight:500}.up .t small{color:var(--faint);font-size:11.5px}.bullet{display:flex;flex-direction:column;gap:7px}.bulletrow{display:grid;grid-template-columns:1fr auto;grid-gap:3px 10px;gap:3px 10px}.btrack{grid-column:1/-1;height:14px;background:var(--sunken);position:relative}.bfill,.btrack{border-radius:4px}.bfill{position:absolute;left:0;top:0;bottom:0;background:var(--accent)}.bfill.over{background:var(--despesa)}.bfill.good{background:var(--receita)}.btarget{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink);border-radius:1px}.cardface{background:linear-gradient(135deg,var(--accent) 0,var(--accent-ink) 100%);color:#fff;border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:16px;min-height:118px}.cardface .top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.cardface b{font-size:14.5px}.cardface small{opacity:.75;display:block}.cardface .lim,.cardface small{font-size:11px;font-family:var(--f-num)}.cardface .lim{opacity:.85}.limtrack{height:6px;background:rgba(255,255,255,.22);border-radius:3px;position:relative;margin-top:6px}.limfill{position:absolute;inset:0 auto 0 0;background:#fff;border-radius:3px}.goal{display:flex;gap:13px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.goal:last-child{border-bottom:0}.goalico{width:36px;height:36px;border-radius:9px;background:var(--accent-wash);color:var(--accent-ink);display:grid;place-items:center;flex:none}.goalico svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.goal .body{flex:1 1;min-width:0}.split{display:flex;gap:2px;height:30px;border-radius:7px;overflow:hidden;margin:6px 0 10px}.split div{display:grid;place-items:center;font-family:var(--f-num);font-size:11px;font-weight:600;color:#fff}.splitlegend{display:flex;flex-direction:column;gap:8px}.sl{display:flex;align-items:center;gap:9px;font-size:12.5px}.sl .v{margin-left:auto;font-family:var(--f-num);font-weight:500}.form{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:9px;gap:9px}.form label{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--muted)}.form input,.form select{font:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--ink);width:100%}.form .btn{grid-column:span 1;align-self:end}.btn{background:var(--accent);color:#fff;border:0;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;width:100%}.btn:hover{filter:brightness(1.08)}.btn.ghost{background:none;border:1px solid var(--border);color:var(--ink-2);width:auto}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters input,.filters select{font:inherit;font-size:12.5px;padding:6px 9px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--ink)}.note{font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:10px 12px;line-height:1.55}.note b{color:var(--ink)}.note code{font-family:var(--f-num);font-size:11.5px;background:var(--surface);padding:1px 4px;border-radius:4px;border:1px solid var(--border)}@media (max-width:1020px){.band{grid-template-columns:1fr 1fr}.g-2,.g-half{grid-template-columns:1fr}.form{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.shell{grid-template-columns:1fr}.rail{position:static;height:auto;align-items:center;gap:12px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border);padding:10px 12px}.nav,.rail{flex-direction:row}.nav{gap:4px}.nav a,.nav button{white-space:nowrap;padding:7px 10px}.nav .tag{display:none}.rail-foot{margin-top:0;flex-direction:row}.user{display:none}.main{padding:16px 14px 44px}.band{grid-template-columns:1fr}}.authpage{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.authbox{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;box-shadow:var(--shadow)}.authbox .brand{margin-bottom:22px;padding:0}.authbox h1{font-size:19px;margin-bottom:4px}.authbox p.lead{color:var(--muted);font-size:13px;margin:0 0 20px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}.field label{font-size:12px;color:var(--muted)}.field input,.field select,.field textarea{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);width:100%}.field input:focus,.field select:focus{border-color:var(--accent)}.error{background:var(--despesa-wash);color:var(--despesa);border:1px solid color-mix(in srgb,var(--despesa) 30%,transparent);border-radius:8px}.error,.ok{padding:9px 11px;font-size:12.5px;margin-bottom:14px}.ok{background:var(--receita-wash);color:var(--receita);border:1px solid color-mix(in srgb,var(--receita) 30%,transparent);border-radius:8px}.authfoot{margin-top:16px;text-align:center;font-size:12.5px;color:var(--muted)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.empty{text-align:center;padding:34px 20px;color:var(--muted)}.empty h4{font-size:15px;color:var(--ink);margin-bottom:6px}.empty p{margin:0 auto 16px;max-width:46ch;font-size:13px;line-height:1.6}.form textarea{grid-column:1/-1;min-height:56px;resize:vertical}.rowform{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;align-items:end}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.iconbtn{background:none;border:1px solid var(--border);border-radius:7px;padding:5px 9px;font-size:12px;cursor:pointer;color:var(--muted)}.iconbtn:hover{color:var(--ink);border-color:var(--border-strong)}.iconbtn.danger:hover{color:var(--despesa);border-color:var(--despesa)}.token{font-family:var(--f-num);font-size:12px;background:var(--sunken);padding:9px 11px;border-radius:8px;word-break:break-all;border:1px solid var(--border)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs a{padding:8px 12px;font-size:13px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}.tabs a:hover{color:var(--ink);text-decoration:none}.tabs a[data-active=true]{color:var(--accent-ink);border-bottom-color:var(--accent);font-weight:600}.pagenav{display:flex;gap:8px;justify-content:center;margin-top:14px}.marcos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.marcos>div{display:flex;flex-direction:column;gap:1px}.marcos b{font-size:14px;font-weight:600;letter-spacing:-.02em}.marcos small{color:var(--faint);font-size:11px}