:root{--ink:#16273e;--muted:#708094;--line:#e6ebef;--bg:#f6f8fb;--card:#fff;--nav:#12243b;--accent:#1c9d87;--accent-soft:#e2f6ef;--red:#bd4d51;--amber:#b77c26;--amber-bg:#fff4e4;--radius:16px;--shadow:0 8px 28px rgba(22,39,62,.045);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);min-height:100%;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a3dcd0;outline-offset:2px}#app-shell{display:flex;min-height:100vh}.sidebar{width:235px;background:var(--nav);color:#eaf3fa;padding:30px 18px 24px;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:2px 12px 36px}.brand strong{display:block;font-size:25px;letter-spacing:-1.3px;line-height:1.1}.brand-dot,.mobile-logo span{color:#6ddeba}.brand small{display:block;font-size:11px;color:#b7c5d4;margin-top:5px}.brand-mark{width:33px;height:33px;display:flex;align-items:flex-end;gap:4px}.brand-mark span{display:block;width:8px;border-radius:4px;background:#63d4b2}.brand-mark span:nth-child(1){height:15px}.brand-mark span:nth-child(2){height:25px}.brand-mark span:nth-child(3){height:33px}.sidebar nav{display:grid;gap:8px}.nav-btn{border:0;background:transparent;color:#b8c8d8;text-align:left;padding:13px 15px;border-radius:11px;font-size:14px;font-weight:650}.nav-btn.active,.nav-btn:hover{background:#2c425b;color:white}.nav-ico{width:28px;display:inline-block;font-size:22px;line-height:16px;vertical-align:-1px}.side-bottom{margin-top:auto;padding:12px;color:#8ea4b8;font-size:11px}.privacy-note{line-height:1.5;max-width:155px;margin-bottom:15px}.subtle-btn{border:0;background:none;color:#b7c9d9;padding:0;text-align:left;font-size:12px}.main-area{flex:1;min-width:0}.topbar{height:75px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(26px,calc((100vw - 1220px)/2));gap:12px}.topbar-name{font-weight:650;letter-spacing:.05px}.mobile-logo{display:none}.header-actions{display:flex;gap:12px;align-items:center}.mode-pill{padding:7px 10px;border-radius:30px;background:#fff4e4;color:#936224;font-size:11px;font-weight:750;white-space:nowrap}.mode-pill.connected{background:var(--accent-soft);color:#16755d}.icon-btn{border:1px solid var(--line);background:#fff;color:#64758b;border-radius:10px;width:34px;height:34px;font-size:21px}.container{max-width:1080px;margin:0 auto;padding:34px 30px 90px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:var(--accent);font-size:10px;letter-spacing:1.8px;font-weight:850;text-transform:uppercase;margin:0 0 8px}.page-heading h1{font-size:28px;letter-spacing:-.8px;line-height:1.2;margin:0 0 5px;font-weight:800}.description{font-size:13px;color:var(--muted);margin:0}.btn{border:0;border-radius:10px;padding:12px 16px;font-weight:750;background:var(--nav);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;white-space:nowrap}.btn.primary{background:var(--accent);color:white}.btn.secondary{background:white;border:1px solid #d6dfe7;color:var(--ink)}.btn.ghost{background:transparent;color:var(--muted)}.btn.tiny{font-size:12px;min-height:32px;padding:7px 11px}.btn:active{transform:translateY(1px)}.plus{font-size:20px;line-height:.75;font-weight:400}.summary{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:14px;margin-bottom:25px}.metric{border:1px solid var(--line);background:white;border-radius:var(--radius);padding:22px;min-height:135px;box-shadow:var(--shadow)}.metric.primary-card{background:var(--nav);border-color:var(--nav);color:white}.metric-label{font-size:11px;text-transform:uppercase;letter-spacing:1.15px;font-weight:800;color:var(--muted)}.primary-card .metric-label{color:#b6c8d7}.metric-value{font-size:28px;font-weight:800;letter-spacing:-.6px;margin:17px 0 3px;font-variant-numeric:tabular-nums}.metric:not(.primary-card) .metric-value{font-size:30px}.metric-foot{font-size:11px;color:var(--muted)}.primary-card .metric-foot{color:#b1c7d8}.metric-icon{float:right;border-radius:8px;background:var(--accent-soft);padding:5px 8px;color:var(--accent);font-size:18px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:25px 0 13px}.section-header h2{font-size:17px;margin:0;letter-spacing:-.2px}.section-side{display:flex;align-items:center;gap:8px}.select-compact{border:1px solid #dde5ea;padding:8px 28px 8px 11px;border-radius:9px;background:#fff;color:var(--ink);font-size:12px}.expense-list{display:grid;gap:10px}.expense-card{border:1px solid var(--line);background:white;border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.expense-card.reviewed{border-color:#dfe9e7}.expense-main{padding:17px 18px}.expense-top{display:flex;gap:14px;align-items:center}.merchant-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#edf5f3;color:#267e71;font-size:19px;flex-shrink:0}.merchant-info{min-width:0;flex:1}.merchant{font-weight:800;font-size:14px;overflow-wrap:anywhere}.signature{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.55}.expense-amount{text-align:right;white-space:nowrap;font-size:17px;font-weight:850;font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:750;white-space:nowrap}.pill.pending{background:var(--amber-bg);color:#97662a}.pill.done{background:var(--accent-soft);color:#1a8067}.expense-actions{padding-top:13px;margin-top:13px;border-top:1px solid #f0f2f4;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.expense-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.small-tag{font-size:11px;color:#66778b;background:#f2f5f8;border-radius:6px;padding:5px 8px}.action-right{display:flex;align-items:center;gap:12px;margin-left:auto}.check-label{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.check-label input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.card-edit{border-top:1px solid var(--line);background:#fcfdfd;padding:18px;display:grid;gap:14px}.editor-head{font-size:13px;font-weight:800;display:flex;justify-content:space-between;align-items:center}.editor-head span{font-size:11px;color:var(--muted);font-weight:500}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 140px 32px;gap:8px;align-items:end}.field{display:grid;gap:6px;min-width:0}.field label{color:#728297;font-size:11px;font-weight:700}.input{min-width:0;width:100%;height:41px;background:white;border:1px solid #d8e2e9;border-radius:9px;padding:0 10px;color:var(--ink);outline:none}.input:focus{border-color:#67bea8;box-shadow:0 0 0 3px #e8f6f1}.money-input{text-align:right;font-variant-numeric:tabular-nums;font-weight:750;font-size:14px}.balance-box{background:#e9f4f0;border-radius:9px;height:41px;padding:10px;text-align:right;color:#137b63;white-space:nowrap;font-weight:800;display:flex;align-items:center;justify-content:flex-end}.balance-box.invalid{background:#ffeff0;color:var(--red)}.remove-btn{height:41px;width:32px;background:transparent;border:0;font-size:23px;color:#98a4b3}.add-split{border:1px dashed #b5cbd0;background:transparent;color:#307e72;border-radius:10px;padding:12px;font-size:12px;font-weight:800;width:100%}.editor-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px}.editor-footer{display:flex;gap:9px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:15px}.editor-footer .btn{flex:0 1 auto}.validation{font-size:12px;color:var(--red)}.form-note{font-size:11px;color:var(--muted)}.filter-panel{background:white;border:1px solid var(--line);border-radius:15px;padding:18px;margin-bottom:18px}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.filter-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:15px}.filters-summary{font-size:12px;color:var(--muted)}.records-table{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden}.table-scroll{overflow-x:auto}.records-table table{border-collapse:collapse;width:100%;min-width:680px}.records-table th{text-transform:uppercase;letter-spacing:.9px;font-size:10px;color:var(--muted);font-weight:800;text-align:left;background:#fafbfd}.records-table th,.records-table td{padding:15px 16px;border-bottom:1px solid #edf0f3}.records-table tr:last-child td{border:0}.records-table td{font-size:12px}.records-table td strong{display:block;font-size:12px}.records-table td small{color:var(--muted);display:block;margin-top:5px}.records-table td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:750}.section-card{background:white;border:1px solid var(--line);border-radius:15px;padding:20px}.hint{color:var(--muted);font-size:12px;line-height:1.6}.empty{background:white;border:1px dashed #d2dce3;border-radius:15px;text-align:center;padding:35px 20px;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin-bottom:7px}.recurrence-row{display:flex;gap:14px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0}.recurrence-row:first-of-type{border-top:0}.recurrence-row strong{font-size:12px}.recurrence-row small{display:block;color:var(--muted);margin-top:4px;font-size:11px}.recurrence-actions{display:flex;gap:8px;align-items:center}.subtabs{display:flex;gap:8px}.subtab{border:1px solid #d9e2ea;background:white;border-radius:9px;padding:8px 13px;color:#6b7888;font-size:12px;font-weight:700}.subtab.active{background:var(--nav);color:white;border-color:var(--nav)}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.chart-panel{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;min-width:0}.chart-panel h3{font-size:14px;margin:0 0 6px}.chart-panel .mini-desc{font-size:11px;color:var(--muted);margin:0 0 18px}.horizontal-bars{display:grid;gap:13px}.bar-title{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:6px}.bar-title span:first-child{white-space:nowrap;max-width:65%;overflow:hidden;text-overflow:ellipsis}.bar-title strong{font-variant-numeric:tabular-nums;font-size:12px}.bar-track{height:9px;border-radius:30px;background:#ecf1f4;overflow:hidden}.bar-fill{height:100%;border-radius:30px;background:var(--accent)}.donut-wrap{display:flex;gap:28px;align-items:center;justify-content:space-around;padding:7px 0}.donut{border-radius:50%;height:195px;width:195px;flex-shrink:0;display:grid;place-items:center}.donut-center{height:118px;width:118px;border-radius:50%;background:white;display:grid;place-items:center;align-content:center;text-align:center}.donut-center strong{font-size:18px}.donut-center small{font-size:10px;color:var(--muted)}.legend{display:grid;gap:12px;flex:1;min-width:0}.legend-line{display:flex;align-items:center;gap:8px;font-size:11px}.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.legend-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-value{color:#657386;font-variant-numeric:tabular-nums}.monthly-bars{height:202px;display:flex;gap:12px;align-items:end;justify-content:space-around;border-bottom:1px solid #e3e8ed;padding-top:24px}.monthly-col{height:100%;min-width:25px;flex:1;max-width:75px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px}.monthly-line{width:100%;max-width:43px;min-height:3px;background:#a8dfd2;border-radius:6px 6px 0 0}.monthly-line.now{background:var(--accent)}.monthly-col label{font-size:10px;color:var(--muted);white-space:nowrap;margin-bottom:-17px}.chart-subtotal{display:flex;justify-content:space-between;gap:12px;margin-top:28px;font-size:12px}.chart-subtotal b{font-size:14px}.modal-overlay{position:fixed;inset:0;background:rgba(10,25,41,.54);z-index:10;display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}.modal{max-width:520px;width:100%;background:white;border-radius:19px;padding:23px;box-shadow:0 20px 80px rgba(0,0,0,.21);max-height:92vh;overflow-y:auto}.modal.wide{max-width:640px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px;gap:14px}.modal-head h2{font-size:18px;letter-spacing:-.35px;margin:0}.close-btn{font-size:27px;border:0;background:transparent;color:#778699;line-height:1}.modal-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.span-2{grid-column:span 2}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:21px;flex-wrap:wrap}.source-tag{display:inline-block;padding:5px 8px;border-radius:6px;background:#eef3f5;color:#607183;font-size:10px}.notice{background:#e9f6ef;color:#32715d;padding:11px 13px;border-radius:10px;font-size:12px;line-height:1.5}.notice.warning{background:#fff1e1;color:#8e622d}.weekday-row{display:flex;gap:5px;flex-wrap:wrap}.weekday-row label{display:flex;flex-direction:column;gap:4px;align-items:center;font-size:11px;border:1px solid #e1e6ec;border-radius:7px;padding:8px}.weekday-row input{accent-color:var(--accent)}#toast{position:fixed;bottom:24px;right:24px;z-index:30;pointer-events:none;background:var(--nav);color:white;border-radius:11px;box-shadow:0 10px 35px rgba(0,0,0,.2);padding:12px 16px;font-size:12px;max-width:350px;opacity:0;transform:translateY(10px);transition:.2s}#toast.show{opacity:1;transform:none}.mobile-nav{display:none}.mini-toolbar{display:flex;gap:8px;align-items:center}.mini-toolbar input,.mini-toolbar select{max-width:175px}.right{margin-left:auto}.danger{color:var(--red)}.muted{color:var(--muted)}.pointer{cursor:pointer}.two-actions{display:flex;gap:8px;flex-wrap:wrap}.record-review{width:16px;height:16px;accent-color:var(--accent)}.demo-ribbon{background:#fff9ee;color:#865f33;border:1px solid #f0d9b6;border-radius:10px;padding:11px 14px;font-size:12px;margin-bottom:20px;line-height:1.5}.sync-message{display:inline-block;margin-left:5px;color:var(--muted);font-size:11px}
@media(max-width:1080px){.summary{grid-template-columns:1.5fr 1fr 1fr}.donut-wrap{gap:12px}.donut{width:170px;height:170px}.donut-center{width:103px;height:103px}}@media(max-width:850px){.sidebar{width:192px}.brand{padding-left:5px}.brand strong{font-size:22px}.container{padding:25px 17px 95px}.topbar{padding:0 18px}.summary{grid-template-columns:1.6fr 1fr 1fr;gap:8px}.metric{padding:16px}.metric-value{font-size:24px}.charts-grid{grid-template-columns:1fr}}@media(max-width:700px){.sidebar{display:none}.topbar{height:62px;padding:0 16px}.topbar-name{display:flex;align-items:center;gap:12px}.mobile-logo{display:block;font-size:23px;letter-spacing:-1px;font-weight:850}.topbar-name #topbar-subtitle{font-size:11px;color:var(--muted);border-left:1px solid #d9e1e7;padding-left:11px}.mode-pill{font-size:10px;padding:6px 8px}.container{padding:21px 15px 110px}.page-heading{align-items:flex-start}.page-heading h1{font-size:23px}.description{font-size:12px}.page-heading>.btn{font-size:11px;padding:11px;min-height:37px}.summary{grid-template-columns:1fr 1fr;gap:9px}.summary .metric:first-child{grid-column:span 2;min-height:122px}.summary .metric{min-height:102px;padding:16px}.metric-value,.metric:not(.primary-card) .metric-value{font-size:25px;margin:11px 0 3px}.summary .metric:first-child .metric-value{font-size:31px}.metric-label{font-size:10px}.metric-foot{font-size:10px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:#fff;border-top:1px solid #e3e9ec;z-index:5;padding:8px 8px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -6px 25px rgba(20,35,57,.03)}.mobile-nav button{background:none;border:0;display:grid;place-items:center;gap:4px;color:#8793a3;font-size:10px;font-weight:750;width:33%}.mobile-nav button span{font-size:24px;line-height:25px}.mobile-nav button.active{color:var(--accent)}.expense-main{padding:14px}.merchant-icon{height:38px;width:38px;border-radius:10px}.merchant{font-size:13px}.expense-amount{font-size:15px}.signature{font-size:10px}.action-right{gap:7px}.expense-actions{align-items:center}.small-tag{font-size:10px}.section-header h2{font-size:16px}.editor-grid{grid-template-columns:minmax(0,1fr) 105px 25px;gap:5px}.remove-btn{width:25px}.editor-meta,.filters{grid-template-columns:1fr 1fr}.filter-panel{padding:14px}.charts-grid{grid-template-columns:1fr}.donut-wrap{gap:8px}.donut{width:155px;height:155px}.donut-center{height:94px;width:94px}.donut-center strong{font-size:14px}.modal-fields{gap:10px}.modal{padding:19px}.section-card{padding:16px}.chart-panel{padding:18px}#toast{left:15px;right:15px;bottom:90px;max-width:none}}
@media(max-width:380px){.expense-top{gap:8px}.merchant-icon{width:32px;height:32px}.signature{font-size:9.5px}.action-right{margin-left:0;width:100%;justify-content:space-between}.editor-grid{grid-template-columns:minmax(0,1fr) 90px 24px}.donut{width:135px;height:135px}}

/* Evolução mensal v0.2: valores visíveis sobre cada barra e parcelas futuras. */
.monthly-bars{height:auto;min-height:240px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:8px;padding:8px 0 0;border-bottom:0}
.monthly-col{height:auto;min-width:0;max-width:none;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;gap:6px}
.monthly-value{font-size:10px;font-weight:800;color:var(--ink);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.35px}
.monthly-bar-area{height:155px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #d9e4e7}
.monthly-line{width:72%;max-width:48px;min-height:3px;background:#9bb4bc;border-radius:6px 6px 0 0}
.monthly-col.future .monthly-line{background:#a8dfd2}
.monthly-col.selected .monthly-line{background:var(--accent)}
.monthly-col label{font-size:11px;font-weight:750;color:var(--ink);margin:0;text-align:center;white-space:nowrap}
.monthly-col label span{font-size:9px;color:var(--muted)}
.monthly-type{font-size:9px;color:var(--muted);text-align:center;white-space:nowrap}
.monthly-col.future .monthly-type{color:#2e8e7b}
.chart-footnote{font-size:11px;color:var(--muted);line-height:1.5;margin:17px 0 0}
@media(max-width:520px){.monthly-bars{gap:3px}.monthly-value{font-size:9px;letter-spacing:-.55px}.monthly-type{font-size:8px}.monthly-col label{font-size:10px}.monthly-col label span{font-size:8px}.monthly-bar-area{height:140px}}

/* Vorrat 0.2.2: marca original, texto opcional e controles de edição claros. */
.brand-image {width:36px;height:36px;object-fit:cover;border-radius:9px;flex-shrink:0}
.mobile-logo {align-items:center;gap:6px}
.mobile-brand-image {width:28px;height:28px;border-radius:6px;object-fit:cover}
.notes-textarea {width:100%;min-height:88px;resize:vertical;padding:11px;line-height:1.45}
.note-wide {grid-column:1/-1}
.editor-footer [data-action="delete-expense"] {margin-right:auto}
@media(max-width:700px){.editor-footer {flex-wrap:wrap}.editor-footer [data-action="delete-expense"] {width:100%;text-align:left}.editor-footer [data-action="cancel-edit"],.editor-footer [data-action="save-edit"]{flex:1}.mobile-logo {display:flex}}
