:root{--bg:#f3f5f4;--card:#fff;--card-hover:#f6f8f7;--border:#e6eae8;--text:#1c211f;--text-muted:#5f6b66;--text-subtle:#6d7772;--green:#217a54;--green-dark:#1b5e42;--green-soft:#e4f1ea;--red:#d64545;--red-soft:#fbecec;--amber:#a16207;--amber-soft:#fdf3e0;--ink:#232826;--shadow:0 1px 2px #1c211f0d, 0 4px 16px #1c211f0d;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--sidebar-w:232px}:root[data-theme=dark]{--bg:#121614;--card:#1a1f1c;--card-hover:#222825;--border:#2b332e;--text:#e8edeb;--text-muted:#a3aea8;--text-subtle:#8a948e;--green:#34a06f;--green-dark:#2b8a5e;--green-soft:#16382a;--red:#e06767;--red-soft:#3b2222;--amber:#d6a339;--amber-soft:#3b3018;--ink:#cfd8d2;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040}:root[data-theme=dark] .toast{color:var(--text);background:#0e1210}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121614;--card:#1a1f1c;--card-hover:#222825;--border:#2b332e;--text:#e8edeb;--text-muted:#a3aea8;--text-subtle:#8a948e;--green:#34a06f;--green-dark:#2b8a5e;--green-soft:#16382a;--red:#e06767;--red-soft:#3b2222;--amber:#d6a339;--amber-soft:#3b3018;--ink:#cfd8d2;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040}:root:not([data-theme=light]) .toast{color:var(--text);background:#0e1210}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sidebar{width:var(--sidebar-w);background:var(--card);border-right:1px solid var(--border);z-index:10;flex-direction:column;padding:26px 16px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar .brand{letter-spacing:-.02em;align-items:center;gap:10px;margin-bottom:32px;padding:0 8px;font-size:16px;font-weight:700;display:flex}.brand-logo{background:var(--green);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.sidebar .brand small{color:var(--text-subtle);margin-top:1px;font-size:11px;font-weight:400;display:block}.nav-item{color:var(--text-muted);text-align:left;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;align-items:center;gap:11px;width:100%;margin-bottom:4px;padding:11px 12px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--card-hover);color:var(--text)}.nav-item.active{background:var(--green);color:#fff;font-weight:600}.nav-item svg{flex-shrink:0}.sidebar .spacer{flex:1}.sidebar .backup-actions{flex-direction:column;gap:6px;display:flex}.sidebar .backup-actions button{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;padding:9px 10px;font-family:inherit;font-size:12px;font-weight:500;transition:background .2s}.sidebar .backup-actions button:hover{background:var(--card-hover);color:var(--text)}.main{max-width:calc(1320px + var(--sidebar-w) + 80px);padding:36px 40px 80px calc(var(--sidebar-w) + 40px);margin:0 auto}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;display:flex}.greeting h1{letter-spacing:-.03em;font-size:26px;font-weight:700}.greeting p{color:var(--text-muted);margin-top:4px;font-size:14px}.month-nav{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex}.month-nav button.arrow{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;width:34px;height:34px;font-size:17px;transition:background .2s}.month-nav button.arrow:hover{background:var(--card-hover)}.month-label{letter-spacing:-.01em;text-align:center;min-width:150px;padding:0 6px;font-size:14px;font-weight:600}.summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px}.card .label{color:var(--text-muted);align-items:center;gap:7px;margin-bottom:8px;font-size:13px;font-weight:500;display:flex}.card .label svg{color:var(--text-subtle)}.card .value{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(19px,2vw,26px);font-weight:700}.card .sub{color:var(--text-subtle);margin-top:7px;font-size:12px}.value.green{color:var(--green)}.value.red{color:var(--red)}.card.highlight{background:var(--green);border-color:var(--green)}.card.highlight .label,.card.highlight .sub,.card.highlight .label svg{color:#ffffffd9}.card.highlight .value{color:#fff}.meta-card input{background:var(--bg);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-sm);margin-top:4px;padding:7px 10px;font-family:inherit;font-size:14px}.meta-card input:focus{border-color:var(--green);outline:none}.meta-bar{background:var(--bg);border-radius:999px;height:7px;margin-top:10px;overflow:hidden}.meta-bar div{background:var(--green);border-radius:999px;height:100%;transition:width .4s}.meta-bar div.fail{background:var(--amber)}.charts{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.chart-card h3,.pending-card h3{letter-spacing:-.01em;margin-bottom:4px;font-size:15px;font-weight:600}.chart-card .card-sub,.pending-card .card-sub{color:var(--text-subtle);margin-bottom:16px;font-size:12px}.card-sub{color:var(--text-subtle);font-size:12px}.legend{color:var(--text-muted);gap:16px;margin-top:12px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.cat-row{align-items:center;gap:10px;margin-bottom:11px;font-size:13px;display:flex}.cat-row .cat-name{width:105px;color:var(--text-muted);flex-shrink:0}.cat-row .cat-bar-wrap{background:var(--bg);border-radius:999px;flex:1;height:9px;overflow:hidden}.cat-row .cat-bar{background:var(--green);border-radius:999px;height:100%}.cat-row .cat-val{text-align:right;width:90px;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}.section{margin-bottom:36px}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.section-header h2{letter-spacing:-.02em;font-size:17px;font-weight:700}.section-header .total{font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}table{border-collapse:collapse;width:100%}.table-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}th{text-align:left;color:var(--text-subtle);border-bottom:1px solid var(--border);background:var(--card-hover);padding:11px 16px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}tr:last-child td{border-bottom:none}td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}th.num{text-align:right}td.center,th.center{text-align:center}tr.paid td{color:var(--text-subtle)}tr.paid td.num{font-weight:400;text-decoration:line-through}.badge{background:var(--bg);color:var(--text-muted);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-block}.status-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:5px 11px;font-family:inherit;font-size:11px;font-weight:600;transition:filter .15s}.status-btn.pago{background:var(--green-soft);color:var(--green-dark)}.status-btn.pendente{background:var(--amber-soft);color:var(--amber)}.status-btn:hover{filter:brightness(.96)}.status-tag{background:var(--amber-soft);color:var(--amber);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.icon-btn{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:14px;transition:all .15s}.icon-btn:hover{color:var(--text);background:var(--bg)}.icon-btn.danger:hover{color:var(--red);background:var(--red-soft)}.add-form{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.add-form input,.add-form select{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:10px 13px;font-family:inherit;font-size:14px}.add-form input:focus,.add-form select:focus{border-color:var(--green);outline:none}.add-form input::placeholder{color:var(--text-subtle)}.add-form .f-desc{flex:2;min-width:160px}.add-form .f-val{width:120px}.add-form .f-cat{width:150px}.add-form .f-dia{width:92px}.add-form button[type=submit]{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:background .2s}.add-form button[type=submit]:hover{background:var(--green-dark)}.btn-ghost{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:background .2s}.btn-ghost:hover{background:var(--card-hover)}.empty-row{color:var(--text-subtle);padding:18px 16px;font-size:13px}.hint-link{color:var(--green);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:600;text-decoration:underline}.hint-link:hover{color:var(--green-dark)}.new-month{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:80px 20px}.new-month p{color:var(--text-muted);margin-bottom:24px;font-size:15px}.new-month button{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:13px 26px;font-family:inherit;font-size:15px;font-weight:600;transition:background .2s}.new-month button:hover{background:var(--green-dark)}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:100;border-radius:999px;padding:12px 22px;font-size:14px;transition:opacity .3s;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1c211f40}.toast.show{opacity:1}@media (width<=800px){.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:6px;width:auto;padding:10px 12px;position:fixed;inset:0 0 auto;overflow-x:auto}.sidebar .brand{white-space:nowrap;margin-bottom:0;margin-right:6px;padding:0 4px;font-size:14px}.brand-logo{width:28px;height:28px}.sidebar .brand small{display:none}.nav-item,.sidebar .backup-actions button{white-space:nowrap}.nav-item{width:auto;margin-bottom:0;padding:8px 13px;font-size:13px}.nav-item svg{display:none}.sidebar .backup-actions{flex-direction:row}.sidebar .backup-actions button{padding:7px 10px;font-size:11px}.main{margin-left:0;padding:78px 14px 60px}.page-head{justify-content:center}.greeting{text-align:center;width:100%}.greeting h1{font-size:21px}.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.charts{grid-template-columns:1fr}.hide-mobile{display:none}td,th{padding:10px 8px;font-size:13px}.status-btn,.status-tag{padding:3px 8px;font-size:10px}.icon-btn{padding:3px 4px}.card .value{font-size:21px}}a.nav-item{text-decoration:none}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:360px;box-shadow:var(--shadow);padding:32px}.auth-card h1{letter-spacing:-.02em;margin-bottom:18px;font-size:20px}.auth-card input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;margin-bottom:10px;padding:10px 12px;font-family:inherit;font-size:14px}.auth-card input:focus{border-color:var(--green);outline:none}.auth-card button[type=submit]{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:999px;width:100%;padding:11px;font-family:inherit;font-size:14px;font-weight:600}.auth-card button[type=submit]:hover{background:var(--green-dark)}.auth-error{color:var(--red);margin-bottom:10px;font-size:13px}.budget-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.budget-row:last-child{border-bottom:none}.budget-row .b-cat{width:110px;color:var(--text);flex-shrink:0;font-size:14px}.budget-row .b-limit{background:var(--bg);border:1px solid var(--border);width:110px;color:var(--text);border-radius:var(--radius-sm);flex-shrink:0;padding:7px 10px;font-family:inherit;font-size:14px}.budget-row .b-limit:focus{border-color:var(--green);outline:none}.budget-row .b-bar{background:var(--bg);border-radius:999px;flex:1;height:9px;overflow:hidden}.budget-row .b-bar div{background:var(--green);border-radius:999px;height:100%;transition:width .3s}.budget-row .b-bar div.over{background:var(--red)}.budget-row .b-bar div.warn{background:var(--amber)}.budget-row .b-spent{text-align:right;width:170px;color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.orc-resumo{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.orc-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.orc-head h4{font-size:13px;font-weight:600}.orc-pills{flex-wrap:wrap;gap:6px;display:flex}.orc-pill{background:var(--green-soft);color:var(--green-dark);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;text-decoration:none;transition:filter .15s;display:inline-flex}.orc-pill:hover{filter:brightness(.95)}.orc-pill i{background:currentColor;border-radius:50%;width:7px;height:7px}.orc-pill span{font-variant-numeric:tabular-nums;font-weight:700}.orc-pill.alerta{background:var(--amber-soft);color:var(--amber)}.orc-pill.estourou{background:var(--red-soft);color:var(--red)}.pills{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.pill{border:1px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;border-radius:999px;align-items:baseline;gap:6px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.pill:hover{border-color:var(--green);color:var(--text)}.pill .v{color:var(--text-subtle);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.pill.active{background:var(--green);border-color:var(--green);color:#fff}.pill.active .v{color:#ffffffd9}.filtro-resumo{border-radius:var(--radius-md);background:var(--green-soft);color:var(--text);flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:20px;padding:12px 16px;font-size:14px;display:flex}.filtro-resumo .hint-link{margin-left:auto}a.cat-link{border-radius:var(--radius-sm);margin:0 -8px 5px;padding:3px 8px;text-decoration:none;transition:background .15s}a.cat-link:hover{background:var(--card-hover)}a.cat-link:hover .cat-name{color:var(--green)}.badge.cartao{background:var(--amber-soft);color:var(--amber);margin-left:6px}.parcela-tag{font-variant-numeric:tabular-nums;border:1px solid var(--border);color:var(--text-muted);border-radius:999px;margin-left:8px;padding:2px 7px;font-size:11px;font-weight:600;display:inline-block}.add-form .f-check{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 6px;font-size:13px;display:inline-flex}.add-form .f-check input{width:16px;height:16px;accent-color:var(--green);box-shadow:none}.card-variacao{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.card-variacao.sobe{color:var(--red)}.card-variacao.desce{color:var(--green)}.card-config{max-width:640px}.card-config summary{cursor:pointer;color:var(--text-muted);font-size:14px;font-weight:600}.card-config[open] summary{margin-bottom:12px}.cat-card{flex-direction:column;display:flex}.month-note{border-top:1px solid var(--border);flex-direction:column;flex:1;min-height:130px;margin-top:18px;padding-top:14px;display:flex}.month-note-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.month-note-head h4{font-size:13px;font-weight:600}.month-note-body{color:var(--text);white-space:pre-wrap;cursor:text;background:var(--amber-soft);border-left:3px solid var(--amber);border-radius:var(--radius-sm);flex:1;padding:12px 14px;font-size:14px;line-height:1.55}.month-note-empty{border:1.5px dashed var(--border);border-radius:var(--radius-sm);color:var(--green);cursor:pointer;background:0 0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:14px;font-family:inherit;font-size:13px;font-weight:600;transition:border-color .15s;display:flex}.month-note-empty span{color:var(--text-subtle);font-size:12px;font-weight:400}.month-note-empty:hover{border-color:var(--green)}.month-note textarea{resize:vertical;background:var(--bg);border:1px solid var(--green);width:100%;min-height:100px;color:var(--text);border-radius:var(--radius-sm);flex:1;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5}.month-note textarea:focus{outline:none}.cal-total{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.cal-total strong{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.cal-total span{color:var(--text-muted);font-size:12px}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-head{letter-spacing:.06em;color:var(--text-subtle);text-align:center;padding-bottom:2px;font-size:10px;font-weight:600}.cal-cell{border-radius:var(--radius-sm);background:var(--bg);min-height:54px;color:var(--text);text-align:left;cursor:pointer;border:1px solid #0000;flex-direction:column;justify-content:space-between;gap:6px;padding:6px 7px;font-family:inherit;transition:filter .15s;display:flex}.cal-cell:hover:not(:disabled){filter:brightness(.95)}.cal-cell:disabled{cursor:default;color:var(--text-subtle);opacity:1}.cal-cell .d{color:var(--text-muted);font-size:11px}.cal-cell .v{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;font-size:11px;font-weight:600;overflow:hidden}.cal-cell:disabled .v{font-weight:400}.cal-cell.today{border-color:var(--green)}.cal-cell.sel{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}.cal-detail{border:1px solid var(--border);border-radius:var(--radius-md);margin-top:12px;padding:10px 12px}.cal-detail-head{justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px;display:flex}.cal-detail-head strong:first-letter{text-transform:uppercase}.cal-detail-row{border-top:1px solid var(--border);align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.cal-detail-row span:first-child{flex:1}.cal-detail-row .num{font-variant-numeric:tabular-nums;font-weight:500}.cal-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:26px;margin-top:16px;padding-top:12px;display:flex}.cal-foot .k{letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);font-size:10px;font-weight:600}.cal-foot .n{font-variant-numeric:tabular-nums;margin-top:3px;font-size:14px;font-weight:700}.cal-hint{color:var(--text-subtle);margin-left:auto;font-size:11px}.card-info{color:var(--text-muted);flex-wrap:wrap;gap:24px;margin-top:8px;font-size:13px;display:flex}.card-info strong{color:var(--text);font-variant-numeric:tabular-nums}@media (width<=800px){.budget-row{flex-wrap:wrap}.budget-row .b-spent{text-align:left;width:100%}.cal-grid{gap:4px}.cal-cell{gap:2px;min-height:46px;padding:4px}.cal-cell .d,.cal-cell .v{font-size:9px}.cal-cell .rs{display:none}.pills{scrollbar-width:none;flex-wrap:nowrap;margin:0 -14px 18px;padding:0 14px 4px;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill{flex-shrink:0}.cal-hint{width:100%;margin-left:0}}.senha-form{flex-direction:column;gap:8px;max-width:320px;display:flex}.senha-form input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:9px 12px;font-family:inherit;font-size:14px}.senha-form input:focus{border-color:var(--green);outline:none}.senha-form button{align-self:flex-start}.auth-card input{color:var(--text)}
