:root{--bg:#f5f7f8;--surface:#fff;--ink:#18252b;--muted:#7b8a90;--line:#e8edef;--green:#16866a;--green-soft:#e7f5ef;--red:#d95f63;--red-soft:#fff0f0;--orange:#c88734;--orange-soft:#fff5e7;--purple:#7b6bc4;--shadow:0 7px 24px rgba(31,55,63,.045);--radius:16px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--ink);font-size:13px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:218px minmax(0,1fr);width:100%;height:100dvh;min-height:600px;overflow:hidden}.sidebar{background:#fff;border-right:1px solid var(--line);padding:27px 17px 18px;display:flex;flex-direction:column;min-height:0}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:800 20px Manrope,sans-serif;letter-spacing:-.8px;padding:0 7px 36px}.brand-mark{width:36px;height:36px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center}.brand-mark svg{width:20px}.brand-dot{color:var(--green)}.brand small{display:block;font:700 8px 'DM Sans',sans-serif;letter-spacing:1.7px;color:#9aa6aa;margin-top:2px}.nav-caption{font-size:9px;font-weight:700;letter-spacing:1.4px;color:#a1adb1;padding:0 10px 12px}.nav-link{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:#75858a;padding:11px 12px;border-radius:10px;text-align:left;font-weight:600;margin-bottom:4px;transition:.18s}.nav-link svg{width:17px;height:17px}.nav-link:hover{background:#f5f8f7;color:var(--green)}.nav-link.active{background:var(--green-soft);color:var(--green)}.sidebar-bottom{margin-top:auto}.backup-note{display:flex;gap:9px;align-items:flex-start;padding:12px 10px;margin:0 0 12px;border-radius:11px;background:#f6f8f8;color:#8b989d;font-size:10px;line-height:1.5}.backup-note svg{width:16px;flex-shrink:0;color:var(--green)}.main{height:100%;min-width:0;min-height:0;overflow:hidden;padding:24px 27px 13px;display:flex;flex-direction:column;gap:15px}.topbar{display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.7px;color:var(--green);margin-bottom:5px}.topbar h1{font:800 25px Manrope,sans-serif;letter-spacing:-1px;margin:0}.subtitle{color:var(--muted);margin:3px 0 0;font-size:12px}.primary-btn,.secondary-btn,.danger-btn{border:0;border-radius:9px;padding:10px 14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s;white-space:nowrap}.primary-btn{background:var(--green);color:#fff;box-shadow:0 4px 10px #16866a20}.primary-btn:hover{background:#116f58;transform:translateY(-1px)}.primary-btn svg,.secondary-btn svg{width:15px;height:15px}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;flex-shrink:0}.metric-card{min-width:0;background:var(--surface);border:1px solid #edf0f1;border-radius:14px;padding:13px 14px 12px;box-shadow:var(--shadow)}.balance-card{background:#173e35;color:#fff;border-color:#173e35}.metric-top{display:flex;justify-content:space-between;align-items:center;gap:6px;color:#7c8b90;font-size:10px;font-weight:600}.balance-card .metric-top{color:#c3d9d2}.metric-icon{display:grid;place-items:center;width:27px;height:27px;background:#ffffff16;color:#d7eee5;border-radius:8px;flex-shrink:0}.metric-icon svg{width:14px;height:14px}.green-icon{background:var(--green-soft);color:var(--green)}.red-icon{background:var(--red-soft);color:var(--red)}.orange-icon{background:var(--orange-soft);color:var(--orange)}.purple-icon{background:#f0edff;color:var(--purple)}.metric-value{font:800 clamp(15px,1.35vw,22px) Manrope,sans-serif;letter-spacing:-.7px;margin:11px 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-foot{display:flex;align-items:center;gap:5px;color:#9aa6aa;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.balance-card .metric-foot{color:#c3d9d2}.green{color:var(--green)}.red{color:var(--red)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block}.green-dot{background:#70d5ad}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.9fr) minmax(230px,.9fr);gap:12px;flex:1.1;min-height:0}.panel{background:var(--surface);border:1px solid #edf0f1;border-radius:var(--radius);box-shadow:var(--shadow);padding:15px;min-width:0;min-height:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:11px}.panel-head h2{font:800 13px Manrope,sans-serif;letter-spacing:-.2px;margin:0}.panel-head p{margin:4px 0 0;font-size:10px;color:#98a4a8}.panel-head select{border:1px solid var(--line);border-radius:7px;background:#fff;color:#69797e;padding:6px 7px;font-size:10px;outline:none}.chart-panel,.category-panel,.pending-panel{display:flex;flex-direction:column}.chart-area{position:relative;flex:1;min-height:0}.chart-area canvas{width:100%!important;height:100%!important}.category-content{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;min-height:0}.donut-wrap{width:54%;height:100%;max-height:180px;min-width:90px;position:relative}.donut-wrap canvas{width:100%!important;height:100%!important}.category-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;max-height:100%;overflow:hidden}.legend-item{display:flex;align-items:center;gap:6px;font-size:10px;color:#748388;min-width:0}.legend-swatch{width:7px;height:7px;border-radius:3px;flex-shrink:0}.legend-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.legend-value{font-weight:700;color:var(--ink);white-space:nowrap}.small-count{background:#f0f5f3;color:var(--green);font-size:10px;font-weight:700;padding:4px 8px;border-radius:7px}.pending-list{display:flex;flex-direction:column;gap:6px;min-height:0;overflow:auto;scrollbar-width:none}.pending-list::-webkit-scrollbar,.compact-list::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{display:none}.pending-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #f0f2f3;padding:8px 0}.pending-item:last-child{border-bottom:0}.pending-name{font-size:11px;font-weight:700;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-due{font-size:9px;color:#9aa6aa;margin-top:3px}.pending-value{font-size:11px;font-weight:700;white-space:nowrap}.empty-inline{display:none;align-items:center;justify-content:center;gap:8px;color:#9aa6aa;font-size:11px;min-height:50px;text-align:center}.empty-inline svg{width:16px;height:16px;opacity:.7}.lower-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(200px,.85fr) minmax(190px,.75fr);gap:12px;flex:1;min-height:0}.transactions-panel,.debts-panel,.subscriptions-panel{display:flex;flex-direction:column}.text-btn{border:0;background:transparent;color:var(--green);font-weight:700;font-size:10px;display:flex;align-items:center;gap:4px;white-space:nowrap}.text-btn svg{width:13px;height:13px}.table-wrap{min-height:0;overflow:auto;scrollbar-width:none}table{width:100%;border-collapse:collapse;table-layout:auto}thead th{font-size:9px;color:#9aa6aa;text-align:left;font-weight:700;padding:8px 7px;border-bottom:1px solid #edf0f1;white-space:nowrap}tbody td{font-size:10px;padding:9px 7px;border-bottom:1px solid #f1f3f4;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.transaction-name{font-weight:700;max-width:155px;overflow:hidden;text-overflow:ellipsis}.transaction-sub{font-size:9px;color:#9aa6aa;margin-top:3px}.right{text-align:right}.status-pill{display:inline-flex;padding:4px 6px;border-radius:6px;font-size:8px;font-weight:700}.status-pill.pago{background:var(--green-soft);color:var(--green)}.status-pill.pendente{background:var(--orange-soft);color:var(--orange)}.row-actions{display:flex;gap:3px;justify-content:flex-end}.mini-action{border:0;background:transparent;color:#9aa6aa;padding:4px;border-radius:5px;display:grid;place-items:center}.mini-action:hover{background:#f2f6f5;color:var(--green)}.mini-action.delete:hover{background:var(--red-soft);color:var(--red)}.mini-action svg{width:12px;height:12px}.icon-btn{width:28px;height:28px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--green);display:grid;place-items:center;flex-shrink:0}.icon-btn:hover{background:var(--green-soft)}.icon-btn svg{width:15px;height:15px}.compact-list{display:flex;flex-direction:column;gap:8px;overflow:auto;min-height:0;scrollbar-width:none}.compact-item{padding:9px 10px;border:1px solid #eef1f1;border-radius:10px;min-width:0}.compact-item-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.compact-name{font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-value{font-size:11px;font-weight:800;white-space:nowrap}.compact-meta{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#99a5a9;font-size:9px;margin-top:7px}.progress-track{height:4px;background:#edf2f0;border-radius:5px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;background:var(--green);border-radius:5px}.compact-actions{display:flex;gap:2px}.footer-note{display:flex;align-items:center;justify-content:space-between;color:#9aa6aa;font-size:9px;flex-shrink:0}.footer-note>span{display:flex;align-items:center;gap:6px}.footer-note b{color:var(--green)}.status-dot{width:6px;height:6px;background:#36b985;border-radius:50%;box-shadow:0 0 0 3px #36b98518}.modal-overlay{display:none;position:fixed;inset:0;background:#12201f70;backdrop-filter:blur(4px);z-index:20;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;width:min(100%,480px);max-height:92dvh;overflow:auto;border-radius:18px;padding:22px;box-shadow:0 25px 90px #132a2a30;animation:pop .18s ease}.modal-small{width:min(100%,380px)}@keyframes pop{from{opacity:0;transform:translateY(7px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.modal-kicker{font-size:9px;letter-spacing:1.4px;color:var(--green);font-weight:800}.modal-head h3{font:800 20px Manrope,sans-serif;margin:5px 0 0;letter-spacing:-.6px}.close-btn{border:0;background:#f4f7f6;color:#718187;width:30px;height:30px;border-radius:8px;display:grid;place-items:center}.close-btn svg{width:16px}.form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.form-group label{font-size:11px;font-weight:700;color:#5d6c71}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid #e4eaea;background:#fbfcfc;color:var(--ink);padding:11px 12px;border-radius:9px;outline:none;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#67bca1;box-shadow:0 0 0 3px #16866a12}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.optional{font-weight:400;color:#a0aaae}.modal-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.secondary-btn{background:#f3f6f5;color:#68777c}.secondary-btn:hover{background:#e9efed}.danger-btn{background:var(--red);color:#fff}.confirm-copy{font-size:12px;color:#6e7c81;line-height:1.6}.toast{position:fixed;right:22px;bottom:20px;background:#173e35;color:#fff;display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:11px;box-shadow:0 10px 30px #173e3530;z-index:50;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;font-size:12px}.toast.show{opacity:1;transform:translateY(0)}.toast svg{width:16px;color:#77ddb6}
@media (min-width:1500px) and (min-height:900px){.main{padding:29px 34px 17px;gap:18px}.metric-card{padding:16px 17px}.analytics-grid,.lower-grid{gap:15px}.panel{padding:18px}.metric-value{font-size:23px}.analytics-grid{flex:1.15}.lower-grid{flex:1}}
@media (max-width:1350px){.app-shell{grid-template-columns:215px minmax(0,1fr)}.main{padding:18px 18px 10px;gap:10px}.sidebar{padding:20px 12px 12px}.metrics{gap:7px}.metric-card{padding:10px}.metric-top{font-size:9px}.metric-icon{width:23px;height:23px}.metric-value{font-size:clamp(13px,1.2vw,17px);margin:9px 0 6px}.metric-foot{font-size:8px}.panel{padding:11px}.panel-head{margin-bottom:7px}.panel-head h2{font-size:12px}.panel-head p{font-size:9px}.analytics-grid{grid-template-columns:minmax(0,1.25fr) minmax(190px,.8fr) minmax(205px,.9fr);gap:8px}.lower-grid{grid-template-columns:minmax(0,1.5fr) minmax(175px,.8fr) minmax(165px,.75fr);gap:8px}thead th{padding:7px 5px;font-size:8px}tbody td{padding:7px 5px;font-size:9px}.compact-item{padding:7px 8px}.compact-meta{font-size:8px}}
@media (max-height:760px) and (min-width:769px){.main{padding-top:12px;gap:8px}.topbar h1{font-size:21px}.subtitle{font-size:10px}.metric-card{padding:8px 10px}.metric-value{margin:6px 0 4px}.analytics-grid{flex:.95}.lower-grid{flex:1}.panel{padding:10px}.panel-head{margin-bottom:5px}.pending-item{padding:5px 0}.compact-list{gap:5px}.compact-item{padding:6px 7px}.footer-note{font-size:8px}}
@media (max-width:900px){html,body{height:auto;min-height:100%;overflow:auto}.app-shell{height:auto;min-height:100dvh;display:block;overflow:visible}.sidebar{display:none}.main{height:auto;min-height:100dvh;overflow:visible;padding:18px;display:block}.topbar{margin-bottom:16px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:12px}.metric-value{font-size:18px}.analytics-grid,.lower-grid{grid-template-columns:1fr;margin-bottom:12px}.analytics-grid{display:grid}.panel{min-height:230px;margin-bottom:10px}.chart-area{height:180px;flex:none}.category-content{min-height:170px}.lower-grid .panel{min-height:210px}.footer-note{padding:8px 0;gap:8px;flex-wrap:wrap}.pending-list,.compact-list,.table-wrap{overflow:auto}.transactions-panel{min-height:260px!important}.table-wrap{overflow-x:auto}.form-row{grid-template-columns:1fr}.modal{padding:18px}}
@media (max-width:430px){.main{padding:14px}.topbar h1{font-size:22px}.topbar .primary-btn{padding:9px 10px;font-size:11px}.metric-card{padding:11px}.metric-top{font-size:9px}.metric-value{font-size:16px}.metric-foot{font-size:8px}.panel{padding:12px}.footer-note span:last-child{display:none}}

/* Tema alternável */
:root{color-scheme:light;--line:#e8edef;--muted:#7b8a90;--surface:#fff;--ink:#18252b;--bg:#f5f7f8;--green-soft:#e7f5ef;--red-soft:#fff0f0;--orange-soft:#fff5e7}
:root[data-theme='dark']{color-scheme:dark;--bg:#101820;--surface:#1b2731;--ink:#e8eef2;--muted:#9aabb5;--line:#30404c;--green:#36bd91;--green-soft:#173b33;--red:#f17d82;--red-soft:#432a30;--orange:#efb35f;--orange-soft:#423522;--purple:#a99be9;--shadow:0 7px 24px rgba(0,0,0,.18)}
:root[data-theme='dark'] .sidebar{background:#151f28;border-color:var(--line)}
:root[data-theme='dark'] .metric-card,:root[data-theme='dark'] .panel{border-color:var(--line)}
:root[data-theme='dark'] .balance-card{background:#173e35;border-color:#245548}
:root[data-theme='dark'] .projected-card{background:#202d37}
:root[data-theme='dark'] .nav-link{color:#a9b7bf}
:root[data-theme='dark'] .nav-link:hover,:root[data-theme='dark'] .mini-action:hover{background:#273640}
:root[data-theme='dark'] .backup-note{background:#202d37;color:#a4b2bb}
:root[data-theme='dark'] .panel-head p,:root[data-theme='dark'] .pending-due,:root[data-theme='dark'] .transaction-sub{color:#9aabb5}
:root[data-theme='dark'] .panel-head select,:root[data-theme='dark'] .icon-btn{background:#202d37;color:var(--ink);border-color:var(--line)}
:root[data-theme='dark'] .pending-item,:root[data-theme='dark'] thead th,:root[data-theme='dark'] tbody td{border-color:#2a3944}
:root[data-theme='dark'] .compact-item{border-color:#30404c}
:root[data-theme='dark'] .progress-track{background:#34444e}
:root[data-theme='dark'] .modal{background:#1b2731;color:var(--ink)}
:root[data-theme='dark'] .close-btn,:root[data-theme='dark'] .secondary-btn{background:#2a3944;color:#d1dce2}
:root[data-theme='dark'] .form-group label{color:#c4d0d6}
:root[data-theme='dark'] .form-group input,:root[data-theme='dark'] .form-group select,:root[data-theme='dark'] .form-group textarea{background:#14202a;color:var(--ink);border-color:#3a4b57}
:root[data-theme='dark'] .form-group input::placeholder,:root[data-theme='dark'] .form-group textarea::placeholder{color:#82939e}
:root[data-theme='dark'] .confirm-copy{color:#b3c0c7}
.sort-control-wrap .sort-control{color-scheme:light}
.sort-control-wrap .sort-control option,.sort-control-wrap .sort-control optgroup{background-color:#fff;color:#18252b}
:root[data-theme='dark'] .sort-control-wrap{background:#202d37;color:#e8eef2;border-color:#3a4b57}
:root[data-theme='dark'] .sort-control-wrap .sort-control{color:#e8eef2;color-scheme:dark}
:root[data-theme='dark'] .sort-control-wrap .sort-control option,:root[data-theme='dark'] .sort-control-wrap .sort-control optgroup{background-color:#202d37;color:#e8eef2}
.topbar-actions{display:flex;align-items:center;gap:9px}
.chart-head-actions,.category-head-actions{display:flex;align-items:center;gap:7px;min-width:0}.chart-type-control select{height:29px;max-width:94px;padding:0 7px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:9px;font-weight:700;outline:0;cursor:pointer;color-scheme:light}.chart-type-control select option{background:#fff;color:#18252b}:root[data-theme='dark'] .chart-type-control select{color-scheme:dark}:root[data-theme='dark'] .chart-type-control select option{background:#202d37;color:#e8eef2}.category-head-actions{flex-direction:row;align-items:center;gap:6px}.category-head-actions .category-mode-toggle{height:29px;align-items:center;padding:2px}.category-head-actions .category-mode-toggle button{height:23px;padding:0 8px}.category-content.category-bars .donut-wrap{width:61%;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-weight:700;transition:.18s}
.theme-toggle:hover{border-color:var(--green);color:var(--green)}
.theme-toggle svg{width:16px;height:16px}
@media(max-width:520px){.topbar-actions{gap:6px}.theme-toggle{padding:9px}.theme-toggle span{display:none}}

/* Interações de navegação: calendário, investimentos e cartão (prévia) */
.draft-caption{margin-top:22px}.nav-soon{margin-left:auto;flex:0 0 48px;width:48px;min-height:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;white-space:normal;overflow-wrap:anywhere;font-size:7px;line-height:1.05;letter-spacing:.55px;color:var(--green);background:var(--green-soft);padding:3px;border-radius:5px;font-weight:800}.nav-soon svg{display:block;width:9px;height:9px;flex:none;stroke-width:2.4}
.draft-view{display:none;position:fixed;inset:0 0 0 218px;z-index:8;background:var(--bg);padding:26px 28px 18px;overflow:auto}.draft-view.active{display:flex;flex-direction:column;gap:20px}.draft-view-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.draft-view-head h1{font:800 27px Manrope,sans-serif;letter-spacing:-1px;margin:0}.draft-view-actions{display:flex;gap:9px;align-items:center}.draft-back{min-height:38px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr);gap:14px;flex:1;min-height:0}.calendar-panel,.day-panel{padding:20px;min-height:0}.calendar-panel{display:flex;flex-direction:column}.calendar-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.calendar-toolbar h2{font:800 17px Manrope,sans-serif;margin:0;min-width:160px;text-align:center}.calendar-today{margin-left:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;flex:1}.calendar-weekday{text-align:center;color:var(--muted);font-size:10px;font-weight:800;padding:6px}.calendar-day{position:relative;min-height:58px;border:1px solid transparent;border-radius:10px;background:color-mix(in srgb,var(--bg) 58%,var(--surface));color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;padding:8px;font-weight:700;transition:.16s}.calendar-day:hover{border-color:var(--green);background:var(--green-soft)}.calendar-day.outside{opacity:.38}.calendar-day.today{border-color:var(--green)}.calendar-day.selected{background:var(--green-soft);box-shadow:inset 0 0 0 1px var(--green)}.calendar-day-number{font-size:11px}.calendar-dots{display:flex;gap:4px;margin-top:auto;padding-top:7px}.key-dot,.calendar-dots i{width:6px;height:6px;border-radius:50%;display:inline-block}.income-key,.dot-income{background:#24a77c}.expense-key,.dot-expense{background:#e4676d}.debt-key,.dot-debt{background:#e7a33e}.calendar-key{display:flex;gap:16px;padding-top:14px;color:var(--muted);font-size:10px}.calendar-key span{display:flex;align-items:center;gap:6px}.day-panel{display:flex;flex-direction:column}.day-items{display:flex;flex-direction:column;gap:8px;overflow:auto}.day-event{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px}.event-rail{width:3px;height:31px;border-radius:4px}.event-rail.income{background:#24a77c}.event-rail.expense{background:#e4676d}.event-rail.debt{background:#e7a33e}.event-copy{min-width:0;flex:1}.event-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-meta{color:var(--muted);font-size:10px;margin-top:3px}.event-value{font-weight:800;white-space:nowrap}.day-summary{margin-top:auto;padding-top:12px;color:var(--muted);font-size:11px}.investment-hero{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;min-height:280px;padding:34px 42px;overflow:hidden;background:linear-gradient(120deg,var(--surface),color-mix(in srgb,var(--green-soft) 48%,var(--surface)))}.card-hero{background:linear-gradient(120deg,var(--surface),color-mix(in srgb,#5a9fd2 12%,var(--surface)))}.card-illustration .investment-center{background:#438db9;box-shadow:0 16px 40px #438db945}.card-illustration .investment-orbit{border-color:color-mix(in srgb,#438db9 25%,transparent)}.card-illustration .investment-spark{color:#438db9}.card-coming-action{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:700}.card-coming-action svg{width:15px;height:15px;color:#438db9}.card-flow-grid .investment-preview-card strong{font-size:16px}.card-flow-grid .investment-preview-card p{line-height:1.5;max-width:260px}.investment-tag{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-size:9px;font-weight:800;letter-spacing:1.2px}.investment-tag svg{width:14px}.investment-hero h2{font:800 clamp(24px,3vw,36px) Manrope,sans-serif;letter-spacing:-1.5px;margin:14px 0 9px;max-width:440px}.investment-hero p{color:var(--muted);line-height:1.65;max-width:470px;margin:0 0 20px}.investment-illustration{height:220px;position:relative;display:grid;place-items:center}.investment-orbit{position:absolute;border:1px solid color-mix(in srgb,var(--green) 24%,transparent);border-radius:50%;transform:rotate(-24deg)}.orbit-one{width:270px;height:128px}.orbit-two{width:210px;height:180px;transform:rotate(35deg)}.investment-center{width:90px;height:90px;border-radius:30px;background:var(--green);color:white;display:grid;place-items:center;box-shadow:0 16px 40px #16866a45;transform:rotate(-8deg)}.investment-center svg{width:42px;height:42px}.investment-spark{position:absolute;color:var(--green);font-size:25px}.spark-a{top:29px;right:22%}.spark-b{bottom:30px;left:22%}.investment-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.investment-preview-card{padding:18px}.investment-preview-card .metric-icon{margin-bottom:13px}.preview-label{color:var(--muted);font-size:11px;font-weight:700}.investment-preview-card strong{display:block;font:800 22px Manrope,sans-serif;margin:5px 0}.investment-preview-card p{color:var(--muted);font-size:10px;margin:0}.investment-next{display:flex;align-items:center;gap:14px;padding:17px 19px}.next-icon{width:42px;height:42px;border-radius:13px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex:none}.next-icon svg{width:20px}.investment-next h2{font:800 13px Manrope,sans-serif;margin:0 0 5px}.investment-next p{color:var(--muted);font-size:10px;line-height:1.55;margin:0;max-width:690px}.coming-badge{margin-left:auto;white-space:nowrap;color:var(--green);background:var(--green-soft);font-size:8px;font-weight:800;letter-spacing:.6px;padding:7px 9px;border-radius:7px}
:root[data-theme='dark'] .calendar-day{background:#202d37}:root[data-theme='dark'] .calendar-day:hover,:root[data-theme='dark'] .calendar-day.selected{background:var(--green-soft)}
@media(max-width:1350px){.draft-view{left:215px;padding:20px}.draft-view.active{gap:13px}.calendar-day{min-height:48px}.investment-hero{min-height:235px;padding:24px 30px}}
@media(max-width:900px){.draft-view{inset:0;padding:18px;z-index:12}.calendar-layout{grid-template-columns:1fr}.calendar-panel{min-height:440px}.day-panel{min-height:220px}.calendar-day{min-height:50px}.investment-hero{grid-template-columns:1fr;padding:25px}.investment-illustration{display:none}}
@media(max-width:520px){.draft-view{padding:14px}.draft-view-head{align-items:flex-start}.draft-view-head h1{font-size:22px}.draft-view-head .subtitle{font-size:10px}.draft-view-actions{gap:5px}.draft-back{padding:8px}.draft-view-actions .primary-btn{font-size:10px;padding:9px}.draft-view-actions .theme-toggle span{display:none}.calendar-panel,.day-panel{padding:13px}.calendar-grid{gap:3px}.calendar-day{min-height:41px;padding:5px;border-radius:7px}.calendar-toolbar h2{min-width:130px;font-size:14px}.calendar-key{gap:8px;font-size:8px}.investment-preview-grid{grid-template-columns:1fr}.investment-next{align-items:flex-start;flex-wrap:wrap}.coming-badge{margin-left:56px}}

/* Seletor de perfil do rascunho */
.profile-gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:grid;place-items:center;padding:22px}.profile-gate-card{width:min(100%,610px);padding:38px;border-radius:22px}.gate-brand{padding:0 0 34px}.profile-gate-card h1{font:800 28px Manrope,sans-serif;letter-spacing:-.8px;margin:7px 0}.profile-gate-card>.subtitle{margin:0 0 23px}.profile-choices{display:grid;grid-template-columns:1fr 1fr;gap:13px}.profile-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:170px;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--bg);color:var(--ink);text-align:left;transition:.18s}.profile-choice:hover{border-color:var(--green);transform:translateY(-2px);box-shadow:var(--shadow)}.profile-avatar{width:47px;height:47px;border-radius:15px;display:grid;place-items:center;font:800 21px Manrope,sans-serif;margin-bottom:15px}.carlos-avatar{color:#137758;background:#dff4e9}.paloma-avatar{color:#7759ae;background:#eee8fb}.profile-choice-name{font:800 17px Manrope,sans-serif}.profile-choice-caption{color:var(--muted);font-size:10px;margin-top:3px}.profile-choice-arrow{position:absolute;right:15px;top:15px;color:var(--muted)}.profile-choice-arrow svg{width:16px}.gate-note{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding-top:17px;margin-top:21px}.gate-note svg{width:15px;flex:none;color:var(--green)}.profile-switch{display:flex;align-items:center;gap:9px;text-align:left;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);margin:0 0 22px;cursor:pointer}.profile-switch:hover{border-color:var(--green)}.profile-switch-avatar{width:30px;height:30px;border-radius:9px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;font-weight:800}.profile-switch-copy{display:flex;flex-direction:column;flex:1;gap:2px}.profile-switch-copy small{font-size:7px;letter-spacing:1px;color:var(--muted);font-weight:800}.profile-switch-copy strong{font-size:11px}.profile-switch>svg{width:14px;color:var(--muted)}.profile-gate[hidden]{display:none}
:root[data-theme='dark'] .profile-choice{background:#17232d}:root[data-theme='dark'] .carlos-avatar{background:#173b33;color:#59d4a4}:root[data-theme='dark'] .paloma-avatar{background:#332b48;color:#bdabf5}
@media(max-width:520px){.profile-gate-card{padding:24px}.profile-gate-card h1{font-size:23px}.profile-choices{gap:9px}.profile-choice{padding:14px;min-height:150px}.profile-choice-caption{font-size:9px}.profile-switch{margin-bottom:15px}}
.auth-gate{position:fixed;inset:0;z-index:110;background:var(--bg);display:grid;place-items:center;padding:20px}.auth-gate[hidden]{display:none}.auth-card{width:min(100%,400px);padding:32px;border-radius:20px;display:flex;flex-direction:column}.auth-mark{margin-bottom:22px}.auth-card h1{font:800 25px Manrope,sans-serif;margin:7px 0}.auth-card>.subtitle{margin:0 0 22px}.auth-label{font-size:11px;font-weight:700;margin:0 0 6px;color:var(--ink)}.auth-input{height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);margin-bottom:14px;outline:none}.auth-input:focus{border-color:var(--green);box-shadow:0 0 0 3px #16866a15}.auth-submit{margin-top:5px}.auth-submit:disabled{opacity:.72;cursor:wait}.auth-submit svg{width:15px}.auth-error{min-height:17px;margin:10px 0 0;color:var(--red);font-size:10px}
.month-switcher{display:flex;align-items:center;gap:7px;padding:5px;border:1px solid var(--line);border-radius:11px;background:var(--surface);flex-shrink:0}.month-switcher .icon-btn{width:30px;height:30px;background:transparent}.month-switcher input{width:136px;border:0;outline:0;background:transparent;color:var(--ink);font:700 12px 'DM Sans',sans-serif;padding:6px}.month-switcher input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.72}.chart-year-label{font:800 12px 'Manrope',sans-serif;color:var(--green);background:var(--green-soft);border-radius:7px;padding:5px 8px}.mini-action.mark-paid{color:var(--green)}.mini-action.mark-paid:hover{background:var(--green-soft);color:var(--green)}
:root[data-theme='dark'] .month-switcher{background:var(--surface);border-color:var(--line)}
:root[data-theme='dark'] .month-switcher input{color:var(--ink);color-scheme:dark}
@media(max-width:600px){.topbar{align-items:flex-start;gap:10px;flex-wrap:wrap}.month-switcher{margin-left:auto}.month-switcher input{width:126px}}

.form-hint{display:block;margin-top:6px;color:var(--muted);font-size:10px;line-height:1.45}.pending-item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px}.pending-item .mini-action{width:26px;height:26px}

.first-date-warning{color:var(--orange);font-size:9px}

.transaction-delete-action{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;border-radius:6px;padding:5px 7px;background:var(--red-soft);color:var(--red);font-size:9px;font-weight:700;white-space:nowrap}.transaction-delete-action:hover{filter:brightness(.96)}.transaction-delete-action svg{width:12px;height:12px}

/* Ampliar painéis sem perder o contexto do dashboard */
.panel-head>div:first-child{min-width:0}.panel-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-shrink:0}.panel-expand-btn{width:28px;height:28px;display:grid;place-items:center;flex:none;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);transition:.16s}.panel-expand-btn:hover{border-color:var(--green);background:var(--green-soft);color:var(--green)}.panel-expand-btn svg{width:14px;height:14px}.panel-expanded-open{overflow:hidden!important}.panel-expanded-open::after{content:"";position:fixed;inset:0;z-index:80;background:rgba(13,22,27,.58);backdrop-filter:blur(3px)}.panel.panel-expanded{position:fixed!important;inset:18px!important;z-index:81;width:auto!important;height:auto!important;max-height:calc(100dvh - 36px);min-height:0!important;overflow:auto!important;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.28)}.panel-expanded .panel-head{flex:none}.panel-expanded .table-wrap,.panel-expanded .compact-list,.panel-expanded .pending-list,.panel-expanded .chart-area,.panel-expanded .category-content{flex:1;min-height:0;overflow:auto}.panel-expanded .chart-area{min-height:320px}.panel-expanded .category-legend{overflow:auto}.panel-expanded .transaction-name{max-width:none}.panel-expanded .transaction-delete-action{width:auto;flex:initial;padding:5px 8px}.panel-expanded .transaction-delete-action span{display:inline}.modal-overlay{z-index:120}.toast{z-index:130}

/* Tabela de lançamentos com ações sempre visíveis */
.transactions-panel table{width:100%;table-layout:fixed}.transactions-panel th:nth-child(1),.transactions-panel td:nth-child(1){width:24%}.transactions-panel th:nth-child(2),.transactions-panel td:nth-child(2){width:14%}.transactions-panel th:nth-child(3),.transactions-panel td:nth-child(3){width:12%}.transactions-panel th:nth-child(4),.transactions-panel td:nth-child(4){width:12%}.transactions-panel th:nth-child(5),.transactions-panel td:nth-child(5){width:18%}.transactions-panel th:nth-child(6),.transactions-panel td:nth-child(6){width:20%;padding-left:2px;padding-right:2px}.transactions-panel tbody td{overflow:hidden;text-overflow:ellipsis}.transactions-panel td:first-child{min-width:0}.transaction-name,.transaction-sub{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-actions{gap:1px;flex-wrap:nowrap}.row-actions .mini-action{width:24px;height:24px;flex:0 0 24px;padding:3px}.transaction-delete-action{width:24px;height:24px;flex:0 0 24px;padding:4px}.transaction-delete-action span{display:none}.transactions-panel .status-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.panel.panel-expanded{inset:8px!important;max-height:calc(100dvh - 16px);padding:14px}.panel-expanded .table-wrap{overflow:auto}.transactions-panel th:nth-child(1),.transactions-panel td:nth-child(1){width:23%}.transactions-panel th:nth-child(2),.transactions-panel td:nth-child(2){width:13%}.transactions-panel th:nth-child(3),.transactions-panel td:nth-child(3){width:13%}.transactions-panel th:nth-child(4),.transactions-panel td:nth-child(4){width:13%}.transactions-panel th:nth-child(5),.transactions-panel td:nth-child(5){width:18%}.transactions-panel th:nth-child(6),.transactions-panel td:nth-child(6){width:20%}}

/* Erros longos de sincronização precisam continuar legíveis em telas estreitas. */
.toast{max-width:min(620px,calc(100vw - 28px));white-space:normal;overflow-wrap:anywhere;line-height:1.45}
@media(max-width:600px){.toast{right:14px;bottom:14px;left:14px;width:auto;max-width:none;align-items:flex-start}}

/* Menus rápidos nos campos mais usados dos lançamentos */
.quick-edit-chip{max-width:100%;display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;border-radius:7px;padding:4px 6px;background:transparent;color:inherit;font:inherit;font-size:9px;font-weight:700;cursor:pointer;vertical-align:middle}
.quick-edit-chip:hover,.quick-edit-chip:focus-visible{border-color:var(--line);background:var(--surface);outline:0;box-shadow:0 0 0 2px var(--green-soft)}
.quick-edit-chip svg{width:10px;height:10px;flex:none;opacity:.65}
.category-chip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transactions-panel .quick-edit-chip.status-pill{max-width:100%;}
.quick-edit-menu{position:fixed;z-index:150;width:250px;max-height:min(320px,calc(100dvh - 20px));overflow:hidden;padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 14px 38px rgba(16,31,35,.2)}
.quick-edit-search{width:100%;height:34px;margin-bottom:5px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);outline:0;font-size:11px}
.quick-edit-search:focus{border-color:var(--green)}
.quick-edit-options{max-height:260px;overflow:auto;overscroll-behavior:contain}
.quick-edit-option{width:100%;display:flex;align-items:center;gap:8px;padding:8px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;font-size:11px;cursor:pointer}
.quick-edit-option:hover,.quick-edit-option.selected{background:var(--green-soft);color:var(--green)}
.quick-edit-option svg{width:14px;height:14px;flex:none}
.quick-edit-option span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quick-edit-empty{display:block;padding:10px;color:var(--muted);font-size:11px}
:root[data-theme='dark'] .quick-edit-menu{box-shadow:0 14px 38px rgba(0,0,0,.45)}

.category-panel .panel-head{align-items:flex-start}
.category-mode-toggle{display:inline-flex;flex:none;gap:2px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}
.category-mode-toggle button{border:0;border-radius:6px;padding:5px 8px;background:transparent;color:var(--muted);font-size:9px;font-weight:700;line-height:1.2}
.category-mode-toggle button[aria-pressed='true']{background:var(--surface);color:var(--green);box-shadow:0 1px 4px rgba(20,40,45,.12)}
.category-mode-toggle button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.sort-control{min-width:0;max-width:148px;height:28px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);font-size:9px;font-weight:600;outline:0;cursor:pointer}
.sort-control:focus{border-color:var(--green);box-shadow:0 0 0 2px var(--green-soft)}
.panel-head-actions .sort-control{max-width:132px}
@media(max-width:1100px){.sort-control{max-width:112px}.panel-head-actions .sort-control{max-width:105px}}

/* Ordenação compacta e valores alinhados nos vencimentos */
.sort-control-wrap{display:flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;min-width:0;height:29px;padding:0 6px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted)}
.sort-control-wrap>svg{width:12px;height:12px;flex:none;color:var(--green)}
.sort-control-wrap .sort-control{width:112px;max-width:112px;height:25px;padding:0 3px!important;border:0!important;background:transparent!important;color:var(--ink);font-size:9px;font-weight:600;box-shadow:none!important}
.table-sort-button{display:inline-flex;align-items:center;gap:4px;padding:2px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:inherit;white-space:nowrap}.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--green)}.table-sort-button:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:3px}.table-sort-button svg{width:11px;height:11px;opacity:.65}.table-sort-button[aria-label*="ordem"] svg{color:var(--green);opacity:1}.transactions-panel th.right .table-sort-button{justify-content:flex-end;width:100%}
.pending-panel .sort-control-wrap{height:29px;padding:0 6px}.pending-panel .sort-control-wrap .sort-control{height:25px}
.panel-head-actions{align-items:center;gap:6px}
.pending-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,max-content) 26px;justify-content:initial;align-items:center;gap:8px}
.pending-item-copy{min-width:0}
.pending-name{max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pending-value{min-width:92px;text-align:right;justify-self:end;font-variant-numeric:tabular-nums}
.pending-action-spacer{width:26px;height:26px;display:block}
@media(max-width:1100px){.sort-control-wrap .sort-control{width:96px;max-width:96px}.pending-item{grid-template-columns:minmax(0,1fr) minmax(84px,max-content) 24px;gap:5px}.pending-value{min-width:84px}.pending-action-spacer{width:24px}}

.backup-preview{display:grid;gap:0;margin:16px 0 10px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--bg)}
.backup-preview>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px}
.backup-preview>div:last-child{border-bottom:0}
.backup-preview span{color:var(--muted)}
.backup-preview strong{color:var(--ink);text-align:right;font-weight:700}
.backup-preview-note{margin:10px 0 0;padding:9px 10px;border-radius:8px;background:var(--orange-soft);color:var(--orange);font-size:10px;line-height:1.5}
.modal-actions #btnConfirmImport{min-width:174px}

/* O ícone do menu não pode colapsar: com "Investimentos" + selo "EM BREVE" a linha estoura
   e o SVG (único item flexível) era comprimido até largura zero.
   A sidebar estreita também era pequena demais (190px): o selo de "Investimentos" era
   empurrado além do padding e ficava desalinhado do selo de "Cartão". Em 200px os dois
   selos ficam na mesma posição, a 12px da borda.
   Para garantir o alinhamento mesmo com barra de rolagem, o selo é posicionado de
   forma absoluta (12px da borda direita) e reserva-se 60px à direita dos itens. */
.nav-link>svg:first-child{flex:0 0 17px}
.nav-link[data-view="investments"],.nav-link[data-view="cards"]{position:relative;padding-right:60px}
.nav-soon{position:absolute;right:12px;top:50%;transform:translateY(-50%);margin-left:0}
@media(max-width:1350px){
  .nav-link{gap:6px}
  .nav-soon{flex:0 0 32px;width:32px;min-width:32px;font-size:6.4px;letter-spacing:.15px;overflow-wrap:normal;padding:3px 2px}
  .nav-soon svg{width:8px;height:8px}
}
.sidebar{scrollbar-width:thin}

/* ===== Responsividade =====
   Cabeçalhos: o título nunca quebra palavra por palavra; quando falta espaço,
   os controles descem para uma segunda linha. */
.panel-head{flex-wrap:wrap;row-gap:6px}
.panel-head>div:first-child{flex:1 1 110px;min-width:0}
.panel-head h2,.panel-head p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-head-actions{flex-wrap:wrap;margin-left:auto;min-width:0}
.mobile-nav-toggle,.mobile-nav-backdrop{display:none}

/* Tablet e notebook pequeno: a página rola e os painéis ficam em duas colunas,
   em vez de espremer três colunas numa tela só. */
@media (min-width:901px) and (max-width:1200px){
  html,body{height:auto;min-height:100%;overflow:auto}
  .app-shell{height:auto;min-height:100dvh;overflow:visible}
  .sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto}
  .main{height:auto;overflow:visible}
  .metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .analytics-grid,.lower-grid{grid-template-columns:repeat(2,minmax(0,1fr));flex:none}
  .chart-panel,.transactions-panel{grid-column:1/-1}
  .panel{min-height:250px}
  .chart-panel{min-height:300px}
  .transactions-panel{min-height:320px}
  .draft-view{left:215px}
}

/* Celular: a barra lateral vira uma gaveta aberta pelo botão de menu. */
@media (max-width:900px){
  .mobile-nav-toggle{display:grid;place-items:center;position:fixed;top:14px;left:14px;z-index:26;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
  .mobile-nav-toggle svg{width:18px;height:18px}
  .sidebar{display:flex;position:fixed;inset:0 auto 0 0;width:min(280px,84vw);z-index:30;overflow-y:auto;transform:translateX(-100%);transition:transform .22s ease;box-shadow:none}
  .mobile-nav-open .sidebar{transform:none;box-shadow:0 20px 60px #0d1f1d40}
  .mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:29;background:#12201f70;opacity:0;pointer-events:none;transition:opacity .2s}
  .mobile-nav-open .mobile-nav-backdrop{opacity:1;pointer-events:auto}
  .mobile-nav-open{overflow:hidden}
  .topbar,.draft-view-head{padding-left:50px}
  .topbar{flex-wrap:wrap;gap:12px}
  .draft-view-head{flex-wrap:wrap}
}

/* Celular estreito: cada lançamento vira um cartão (descrição e valor em cima;
   categoria, data, status e ações embaixo). Os títulos da tabela continuam
   clicáveis para ordenar. */
@media (max-width:600px){
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .month-switcher{width:100%}
  .transactions-panel table,.transactions-panel tbody{display:block;width:100%}
  .transactions-panel thead{display:block}
  .transactions-panel thead tr{display:flex;flex-wrap:wrap;gap:4px 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
  .transactions-panel thead th{display:block;width:auto!important;padding:4px 0;border:0}
  .transactions-panel thead th:empty{display:none}
  .transactions-panel tbody tr{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:6px 8px;padding:10px 0;border-bottom:1px solid var(--line)}
  .transactions-panel tbody tr:last-child{border-bottom:0}
  .transactions-panel tbody td{display:block;width:auto!important;padding:0;border:0;min-width:0}
  .transactions-panel tbody td:nth-child(1){grid-column:1/4;grid-row:1}
  .transactions-panel tbody td:nth-child(5){grid-column:4;grid-row:1;font-size:12px;font-weight:700}
  .transactions-panel tbody td:nth-child(2){grid-column:1;grid-row:2}
  .transactions-panel tbody td:nth-child(3){grid-column:2;grid-row:2;color:var(--muted)}
  .transactions-panel tbody td:nth-child(4){grid-column:3;grid-row:2;justify-self:start}
  .transactions-panel tbody td:nth-child(6){grid-column:4;grid-row:2}
  .transactions-panel .transaction-name{max-width:none;white-space:normal;font-size:12px}
  .transactions-panel .table-wrap{overflow-x:visible}
}

/* Avatares dos perfis */
.profile-avatar.has-avatar,#profileSwitchAvatar.has-avatar{font-size:26px;line-height:1}
#profileSwitchAvatar.has-avatar{font-size:17px}
.manage-profiles-btn{display:flex;width:fit-content;align-items:center;gap:7px;margin:16px auto 0;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:9px;padding:8px 13px;font-size:11px;font-weight:700}
.manage-profiles-btn:hover{color:var(--green);border-color:var(--green)}
.manage-profiles-btn svg{width:14px;height:14px}
.managing-profiles .profile-choice{outline:2px dashed color-mix(in srgb,var(--green) 45%,transparent);outline-offset:3px}
.managing-profiles .profile-choice-arrow{opacity:0}
.managing-profiles .profile-avatar{position:relative}
.managing-profiles .profile-avatar::after{content:'✎';position:absolute;right:-6px;bottom:-6px;width:20px;height:20px;border-radius:50%;background:var(--green);color:#fff;font-size:11px;display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface)}
.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:10px}
.avatar-option{aspect-ratio:1;border:2px solid transparent;border-radius:16px;font:800 26px Manrope,sans-serif;display:grid;place-items:center;transition:transform .15s,border-color .15s}
.avatar-option:hover{transform:translateY(-2px)}
.avatar-option.selected{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}

/* Lançamentos que se repetem */
.form-check{display:flex;align-items:flex-start;gap:10px;margin:2px 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;cursor:pointer}
.form-check input{margin-top:2px;accent-color:var(--green);width:16px;height:16px;flex:none}
.form-check strong{display:block;font-size:12px;color:var(--ink)}
.form-check small{display:block;font-size:10px;color:var(--muted);margin-top:2px;line-height:1.4}
.recurring-icon{width:11px;height:11px;margin-right:5px;vertical-align:-1px;color:var(--green)}
.recurring-banner{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:8px 10px 8px 14px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:11px;background:var(--green-soft);color:var(--ink);font-size:12px}
.recurring-banner[hidden]{display:none}
.recurring-banner>svg{width:16px;height:16px;color:var(--green);flex:none}
.recurring-banner span{flex:1;min-width:0}
.recurring-banner .primary-btn{padding:7px 14px}
@media (max-width:900px){.recurring-banner{margin-bottom:12px}}

/* Mensagens de "vazio": sempre no centro do espaço livre do painel */
.empty-inline{flex:1 1 auto;min-height:60px;flex-direction:column;gap:6px;padding:12px}
.empty-inline svg{width:20px;height:20px}
.transactions-panel .table-wrap{display:flex;flex-direction:column;flex:1 1 auto}
.transactions-panel .table-wrap>table{flex:none}
.category-content.is-empty .donut-wrap{display:none}
.category-content.is-empty .category-legend{flex:1;align-self:stretch;justify-content:center;max-height:none}
.day-items{flex:1 1 auto}

/* Carregando: substitui as mensagens de vazio enquanto o perfil chega do banco */
.is-loading .empty-inline>*{display:none}
.is-loading .empty-inline::before{content:'Carregando…';color:var(--muted);font-size:11px}

/* Visão do ano sem movimentações pagas */
.chart-empty{position:absolute;inset:0;min-height:0}

/* Busca nos lançamentos */
.transaction-search{display:flex;align-items:center;gap:6px;margin-left:auto;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);min-width:0;width:170px;transition:border-color .15s,width .15s}
.transaction-search:focus-within{border-color:var(--green);width:220px}
.transaction-search>svg{width:14px;height:14px;flex:none}
.transaction-search input{border:0;outline:0;background:transparent;color:var(--ink);font-size:11px;min-width:0;flex:1}
.transaction-search input::-webkit-search-cancel-button{display:none}
.transaction-search button{border:0;background:transparent;color:var(--muted);padding:2px;display:grid;place-items:center}
.transaction-search button[hidden]{display:none}
.transaction-search button svg{width:13px;height:13px}
.transactions-panel .panel-head-actions{flex-wrap:nowrap}
@media (max-width:600px){.transaction-search,.transaction-search:focus-within{width:100%;order:3;flex:1 1 100%}.transactions-panel .panel-head-actions{flex-wrap:wrap;width:100%}}

/* Celular: barra fixa no topo com o menu, no lugar do botão flutuante */
.mobile-appbar{display:none}
@media (max-width:900px){
  .mobile-appbar{display:flex;align-items:center;gap:10px;position:fixed;top:0;left:0;right:0;z-index:26;height:calc(56px + env(safe-area-inset-top));padding:0 14px;padding-top:env(safe-area-inset-top);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  .mobile-appbar .mobile-nav-toggle{position:static;box-shadow:none}
  .mobile-appbar-brand{font:800 18px Manrope,sans-serif;letter-spacing:-.6px;color:var(--ink)}
  .mobile-appbar-avatar{margin-left:auto;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font:800 14px Manrope,sans-serif;background:var(--green-soft);color:var(--green)}
  .mobile-appbar-avatar.has-avatar{font-size:17px}
  .topbar,.draft-view-head{padding-left:0}
  .draft-view{top:calc(56px + env(safe-area-inset-top))}
  .main{padding-top:calc(72px + env(safe-area-inset-top))}
}

/* Seletor de mês: largura para o nome mais longo ("fevereiro de 2026") e,
   no celular, ocupa a linha inteira com as setas nas pontas. */
.month-switcher input{width:162px;min-width:0}
@media (max-width:600px){
  .month-switcher{justify-content:space-between}
  .month-switcher input{flex:1 1 auto;width:auto;text-align:center;font-size:13px}
}

/* Mês e ano separados no topo do painel */
.month-switcher{gap:4px}
.period-select{appearance:none;-webkit-appearance:none;border:0;outline:0;background:transparent;color:var(--ink);font:700 13px 'DM Sans',sans-serif;padding:6px 18px 6px 8px;border-radius:7px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 9px) 52%,calc(100% - 5px) 52%;background-size:4px 4px;background-repeat:no-repeat}
.period-select:hover,.period-select:focus-visible{background-color:var(--green-soft)}
.period-select option{color:#18252b;background:#fff}
.year-select{color:var(--muted);font-weight:600}
@media (max-width:600px){.month-switcher{justify-content:space-between}.month-select{margin-left:auto}.year-select{margin-right:auto}}

/* ===== Temas de cor =====
   Cada tema troca a cor de destaque (--green), o tom claro (--green-soft),
   o fundo (--bg) e o cartão escuro do saldo (--hero). No modo escuro só
   o destaque muda. O nome --green ficou por compatibilidade: é "a cor do tema". */
:root{--hero:#173e35}
:root:not([data-theme='dark'])[data-accent='verde']{--green:#16866a;--green-soft:#e7f5ef;--bg:#f5f7f8;--hero:#173e35}
:root[data-theme='dark'][data-accent='verde']{--green:#36bd91;--green-soft:#173b33;--hero:color-mix(in srgb,#36bd91 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='ambar']{--green:#b7790c;--green-soft:#fbf0d9;--bg:#faf7f0;--hero:#4a3a14}
:root[data-theme='dark'][data-accent='ambar']{--green:#e6b04a;--green-soft:#3d321b;--hero:color-mix(in srgb,#e6b04a 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='azul']{--green:#2f6fb5;--green-soft:#e3eefa;--bg:#f3f6fa;--hero:#173353}
:root[data-theme='dark'][data-accent='azul']{--green:#6aa5e6;--green-soft:#1c2f45;--hero:color-mix(in srgb,#6aa5e6 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='lavanda']{--green:#6b5bbf;--green-soft:#eeebfa;--bg:#f6f5fa;--hero:#2f2759}
:root[data-theme='dark'][data-accent='lavanda']{--green:#a99be9;--green-soft:#2c2748;--hero:color-mix(in srgb,#a99be9 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='rose']{--green:#b84f72;--green-soft:#fbe8ee;--bg:#faf5f6;--hero:#55223a}
:root[data-theme='dark'][data-accent='rose']{--green:#e891ae;--green-soft:#45232f;--hero:color-mix(in srgb,#e891ae 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='oceano']{--green:#0f7f8c;--green-soft:#dff3f5;--bg:#f3f8f9;--hero:#123e44}
:root[data-theme='dark'][data-accent='oceano']{--green:#4fc3cf;--green-soft:#163a3f;--hero:color-mix(in srgb,#4fc3cf 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='terracota']{--green:#b9592f;--green-soft:#fbe9e0;--bg:#faf6f3;--hero:#4e2717}
:root[data-theme='dark'][data-accent='terracota']{--green:#ec956c;--green-soft:#43291d;--hero:color-mix(in srgb,#ec956c 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='oliva']{--green:#5f7a22;--green-soft:#eef3dc;--bg:#f7f8f2;--hero:#2f3a14}
:root[data-theme='dark'][data-accent='oliva']{--green:#a9c463;--green-soft:#2e3519;--hero:color-mix(in srgb,#a9c463 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='grafite']{--green:#475569;--green-soft:#e8ecf1;--bg:#f5f6f8;--hero:#1e2733}
:root[data-theme='dark'][data-accent='grafite']{--green:#94a3b8;--green-soft:#263241;--hero:color-mix(in srgb,#94a3b8 28%,#101820)}
:root:not([data-theme='dark'])[data-accent='vinho']{--green:#8e3b56;--green-soft:#f6e4ea;--bg:#f9f5f6;--hero:#3e1a27}
:root[data-theme='dark'][data-accent='vinho']{--green:#d47a96;--green-soft:#3d2129;--hero:color-mix(in srgb,#d47a96 28%,#101820)}
.balance-card,:root[data-theme='dark'] .balance-card{background:var(--hero);border-color:var(--hero)}
.toast{background:var(--hero);box-shadow:0 10px 30px color-mix(in srgb,var(--hero) 20%,transparent)}
.balance-card .metric-top,.balance-card .metric-foot{color:color-mix(in srgb,var(--green) 22%,#fff)}
.balance-card .metric-icon{color:color-mix(in srgb,var(--green) 15%,#fff)}
.primary-btn{box-shadow:0 4px 10px color-mix(in srgb,var(--green) 13%,transparent)}
.primary-btn:hover{background:color-mix(in srgb,var(--green) 82%,#000)}
.nav-link:hover{background:color-mix(in srgb,var(--green-soft) 55%,var(--surface))}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.auth-input:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}
.investment-center{box-shadow:0 16px 40px color-mix(in srgb,var(--green) 27%,transparent)}
body,.sidebar,.panel,.metric-card{transition:background-color .25s,border-color .25s}

/* Seletor de cor na barra lateral */
.accent-picker{padding:6px 12px 10px}
.accent-picker-label{display:block;font-size:9px;font-weight:700;letter-spacing:1.2px;color:var(--muted);margin-bottom:8px}
.accent-swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;justify-items:center}
.accent-swatch{width:20px;height:20px;border-radius:50%;border:2px solid var(--surface);background:var(--swatch);box-shadow:0 0 0 1px var(--line);padding:0;transition:transform .12s,box-shadow .12s}
.accent-swatch:hover{transform:scale(1.12)}
.accent-swatch[aria-checked='true']{box-shadow:0 0 0 2px var(--swatch)}

/* Cor do tema: botão na lateral que abre um pop-up com as cores */
.accent-picker{position:relative;padding:0}
.accent-current{margin-left:auto;width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--line)}
.accent-popover{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:40;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 40px rgba(18,32,31,.14);animation:pop .14s ease}
.accent-popover[hidden]{display:none}
.accent-popover-title{font-size:9px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.accent-swatches{display:grid;grid-template-columns:1fr 1fr;gap:4px;justify-items:stretch}
.accent-swatch{width:auto;height:auto;border:0;border-radius:8px;background:transparent;box-shadow:none;display:flex;align-items:center;gap:7px;padding:6px 7px;color:var(--ink);font-size:11px;font-weight:600;text-align:left}
.accent-swatch:hover{transform:none;background:color-mix(in srgb,var(--swatch) 10%,var(--surface))}
.accent-swatch[aria-checked='true']{box-shadow:none;background:color-mix(in srgb,var(--swatch) 14%,var(--surface))}
.accent-dot{width:14px;height:14px;border-radius:50%;background:var(--swatch);flex:none}
.accent-swatch[aria-checked='true'] .accent-dot{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--swatch)}

/* Avatares ilustrados */
.profile-avatar.has-illustration,#profileSwitchAvatar.has-illustration,.mobile-appbar-avatar.has-illustration{padding:0;overflow:hidden}
.profile-avatar img,#profileSwitchAvatar img,.mobile-appbar-avatar img,.avatar-option img{width:100%;height:100%;display:block;object-fit:cover}
.avatar-picker{width:min(100%,460px)}
.avatar-picker .avatar-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));margin-bottom:6px}
.avatar-option{overflow:hidden;padding:0}
.avatar-group-title{font-size:9px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.avatar-credits{margin:14px 0 0;font-size:9px;line-height:1.5;color:var(--muted)}
.debt-total-preview{margin:-4px 0 12px;padding:10px 12px;border-radius:9px;background:var(--green-soft);color:var(--green);font-weight:700;font-size:12px}.check-row{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;cursor:pointer}.check-row input{width:16px;height:16px;accent-color:var(--green)}
.paid-toggle{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:6px;padding:3px 7px;font-size:9px;font-weight:700}.paid-toggle svg{width:11px;height:11px}.paid-toggle:hover{color:var(--green);border-color:var(--green)}.paid-toggle.done{background:var(--green-soft);color:var(--green);border-color:transparent}.paid-toggle:disabled{cursor:default;opacity:.7}
.sort-order{display:inline-grid;place-items:center;min-width:13px;height:13px;margin-left:2px;border-radius:7px;background:var(--green-soft);color:var(--green);font-size:8px;font-weight:800}[data-transaction-sort].active{color:var(--green)}
.sort-menu{padding:6px}.sort-menu-group{padding:8px 8px 4px;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.sort-menu-group:not(:first-child){margin-top:4px;border-top:1px solid var(--line)}.sort-menu .quick-edit-option.selected{color:var(--green);font-weight:700}.sort-menu .quick-edit-option svg{width:14px;height:14px;margin-left:auto}
.nav-soon{right:8px;width:auto;min-width:0;flex:none;flex-direction:row;white-space:nowrap;font-size:7px;letter-spacing:.4px;padding:3px 6px;border-radius:999px}.nav-soon svg{display:none}.nav-link[data-view="investments"],.nav-link[data-view="cards"]{padding-right:64px}
.cat-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex:0 0 7px;margin-right:5px;vertical-align:1px}.cat-dot.receita{background:var(--green)}.cat-dot.despesa{background:var(--red)}
.label-row{display:flex;align-items:center;justify-content:space-between}.link-btn{border:0;background:transparent;color:var(--green);font-size:10px;font-weight:700;padding:0;cursor:pointer}
.modal-wide{width:min(100%,640px)}.cat-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cat-col h4{display:flex;align-items:center;margin:0 0 8px;font:800 12px Manrope,sans-serif}
.cat-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:2px}.cat-row{display:flex;align-items:center;gap:4px;min-height:32px;padding:4px 6px;border-radius:8px;font-size:12px}.cat-row:hover{background:var(--bg)}
.cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-count{font-size:10px;color:var(--muted);min-width:14px;text-align:right}.cat-lock{display:grid;place-items:center;width:24px;color:var(--muted)}.cat-lock svg{width:12px;height:12px}.cat-row .mini-action{opacity:.65}.cat-row:hover .mini-action{opacity:1}
.cat-input{flex:1;min-width:0;border:1px solid var(--line);border-radius:7px;padding:5px 8px;font-size:12px;background:var(--surface);color:var(--ink)}
.cat-add{display:flex;gap:6px}.cat-add input{flex:1;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:12px;background:var(--surface);color:var(--ink)}.cat-add .secondary-btn{padding:8px 10px;font-size:11px}.cat-add svg{width:13px;height:13px}
.cat-delete{display:flex;flex-direction:column;gap:6px;width:100%;padding:6px;border-radius:8px;background:var(--red-soft);font-size:11px}.cat-move{border:1px solid var(--line);border-radius:7px;padding:5px;font-size:11px;background:var(--surface);color:var(--ink)}.cat-delete-actions{display:flex;justify-content:flex-end;gap:6px}.cat-delete-actions button{padding:6px 10px;font-size:11px}
@media(max-width:600px){.cat-columns{grid-template-columns:1fr}}
.theme-mode-btn{width:100%;display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}.theme-mode-btn svg{width:14px;height:14px}.theme-mode-hint{margin-left:auto;font-size:9px;font-weight:600;color:var(--muted)}.accent-popover-title+.theme-mode-btn{margin-top:6px}
.settings-section{padding:14px 0;border-top:1px solid var(--line)}.settings-section:first-of-type{border-top:0;padding-top:0}.settings-section h4{display:flex;align-items:center;gap:7px;margin:0 0 10px;font:800 13px Manrope,sans-serif}.settings-section h4 svg{width:15px;height:15px;color:var(--green)}
.settings-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.settings-row .form-group{flex:1;min-width:150px;margin-bottom:0}.settings-row .secondary-btn{height:41px}.settings-line{margin:0 0 10px;font-size:12px;color:var(--muted)}.settings-line b{color:var(--ink)}.settings-section .form-hint{margin-top:8px}.settings-section>.link-btn{margin-top:10px}.settings-section .secondary-btn svg{width:14px;height:14px}
[data-export][hidden]{display:none!important}.export-range{margin-top:10px}.export-range .settings-line{flex:1;margin:0;align-self:center}
/* Leitura: nenhum texto do painel abaixo de 11px. */
.transaction-sub,.pending-due,.compact-meta,.metric-foot,.panel-head p,.legend-item,thead th,.nav-caption,.small-count,.text-btn,.sort-control,.footer-note,.form-hint,.metric-top,.cat-count,.theme-mode-hint{font-size:11px}
.status-pill,.paid-toggle,.sort-order{font-size:10px}
tbody td,.compact-name,.pending-name,.pending-value,.compact-value,.transaction-name{font-size:12px}
.panel-head h2{font-size:14px}.panel-head p{margin-top:3px}
/* Toque: alvos de pelo menos 40px em telas de toque. */
@media (pointer:coarse){.mini-action,.icon-btn,.transaction-delete-action,.row-actions .mini-action{min-width:40px;min-height:40px}.paid-toggle,.status-pill.quick-edit-chip,.quick-edit-chip,.text-btn,.link-btn{min-height:36px;padding-left:10px;padding-right:10px}.sort-control-wrap{height:40px}.quick-edit-option{min-height:40px}.nav-link{min-height:44px}}
/* Relógio e telas muito estreitas. */
@media (max-width:320px){.month-switcher{flex-wrap:wrap;justify-content:center;gap:6px;width:100%}.month-switcher .period-select{min-width:0;flex:1}.topbar{flex-direction:column;align-items:stretch;gap:10px}.metrics{grid-template-columns:1fr}}
@media(min-width:601px){.transactions-panel th:nth-child(1),.transactions-panel td:nth-child(1){width:25%}.transactions-panel th:nth-child(2),.transactions-panel td:nth-child(2){width:16%}.transactions-panel th:nth-child(3),.transactions-panel td:nth-child(3){width:15%;font-size:11px}.transactions-panel th:nth-child(4),.transactions-panel td:nth-child(4){width:13%}.transactions-panel th:nth-child(5),.transactions-panel td:nth-child(5){width:17%}.transactions-panel th:nth-child(6),.transactions-panel td:nth-child(6){width:14%}}
@media(max-width:600px){.transactions-panel tbody td{width:auto!important}.transactions-panel .category-chip{font-size:11px}}
@media(max-width:600px){.transactions-panel tbody td:nth-child(4){grid-column:1/4;grid-row:3}.transactions-panel tbody td:nth-child(6){grid-column:4;grid-row:3}.transactions-panel tbody td:nth-child(3){grid-column:2/5}}
@media(max-width:320px){.month-switcher{display:grid!important;grid-template-columns:36px minmax(0,1fr) 36px;gap:6px}.month-switcher .icon-btn{min-width:36px;min-height:36px;width:36px;height:36px}#monthPrev{grid-column:1;grid-row:1}#monthSelect{grid-column:2;grid-row:1;width:100%}#monthNext{grid-column:3;grid-row:1}#yearSelect{grid-column:1/4;grid-row:2;width:100%}}
@media(min-width:601px) and (max-width:1200px){.transactions-panel th:nth-child(1),.transactions-panel td:nth-child(1){width:22%}.transactions-panel th:nth-child(2),.transactions-panel td:nth-child(2){width:20%}.transactions-panel th:nth-child(6),.transactions-panel td:nth-child(6){width:12%}}
.app-version{margin-left:6px;font-size:9px;font-weight:600;letter-spacing:.3px;color:var(--muted);opacity:.75}
.metric-foot,.topbar .subtitle{display:none}.metric-value{margin-bottom:2px}
@media(max-width:600px){.transactions-panel .panel-head p,.transactions-panel .transaction-sub{display:none}.sort-control-wrap{overflow-x:auto;scrollbar-width:none}.sort-control-wrap::-webkit-scrollbar{display:none}.sort-control{flex-wrap:nowrap!important;white-space:nowrap;gap:10px}.transactions-panel tbody tr{row-gap:2px!important;padding-top:10px!important;padding-bottom:10px!important}.transactions-panel tbody td:nth-child(4){grid-column:1/3;grid-row:3}.transactions-panel tbody td:nth-child(6){grid-column:3/5;grid-row:3;justify-self:end}.transactions-panel tbody td:nth-child(6) .mini-action,.transactions-panel tbody td:nth-child(4) .status-pill{min-height:32px;padding-top:4px;padding-bottom:4px}}
@media(max-width:600px){.transactions-panel thead tr{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:4px 12px!important}.transactions-panel thead tr::-webkit-scrollbar{display:none}.transactions-panel thead th{flex-shrink:0}}
/* Objetivos */
.goals-summary{display:flex;flex-direction:column;gap:12px;padding:16px 18px;flex-shrink:0}.goals-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.goals-stats div{display:flex;flex-direction:column;gap:4px;min-width:0}.goals-stats span{font-size:11px;color:var(--muted);font-weight:600}.goals-stats strong{font:800 18px Manrope,sans-serif;letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.goals-overall{display:flex;align-items:center;gap:10px}.goals-overall .goal-track{flex:1;margin:0}.goals-overall b{font-size:12px;color:var(--green);min-width:36px;text-align:right}
.goal-track{height:10px;background:var(--line);border-radius:99px;overflow:hidden}.goal-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--green) 70%,#fff),var(--green));transition:width .5s ease}
.goals-filter{display:flex;gap:6px;flex-shrink:0}.goals-filter button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:700;font-size:12px;padding:7px 12px;border-radius:99px;display:flex;align-items:center;gap:6px}.goals-filter button span{background:var(--line);border-radius:99px;padding:1px 7px;font-size:11px}.goals-filter button.active{background:var(--green-soft);color:var(--green);border-color:transparent}.goals-filter button.active span{background:var(--green);color:#fff}
.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;align-content:start}
.goal-card{display:flex;flex-direction:column;gap:10px;padding:16px}.goal-card.reached{border-color:color-mix(in srgb,var(--green) 35%,transparent)}
.goal-head{display:flex;align-items:center;gap:10px}.goal-icon{width:40px;height:40px;border-radius:12px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex:none}.goal-icon svg{width:20px;height:20px}.goal-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.goal-title strong{font:800 14px Manrope,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-title small{font-size:11px;color:var(--muted)}.goal-actions{display:flex;gap:2px}
.goal-progress{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.goal-progress b{font:800 26px Manrope,sans-serif;letter-spacing:-1px;color:var(--green)}.goal-progress span{font-size:11px;color:var(--muted);text-align:right}
.goal-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.goal-meta b{color:var(--ink)}
.goal-notes{display:flex;flex-direction:column;gap:5px;min-height:18px}.goal-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink)}.goal-note svg{width:14px;height:14px;color:var(--green);flex:none}.goal-note.done{color:var(--green);font-weight:700}.goal-note.warn,.goal-note.warn svg{color:var(--orange)}.goal-note.muted{color:var(--muted)}
.goal-buttons{display:flex;gap:6px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px;margin-top:auto}.goal-buttons button{font-size:12px}.goal-buttons svg{width:14px;height:14px}.goal-buttons>:only-child{margin-left:auto}
.goals-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 16px;color:var(--muted)}.goals-empty[hidden]{display:none}.goals-empty h2{font:800 16px Manrope,sans-serif;color:var(--ink);margin:4px 0 0}.goals-empty p{margin:0 0 6px;font-size:12px;max-width:300px}
.goal-icon-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.goal-icon-opt{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:9px;height:38px;display:grid;place-items:center}.goal-icon-opt svg{width:17px;height:17px}.goal-icon-opt.active{background:var(--green-soft);color:var(--green);border-color:var(--green)}
.goal-preview{font-size:12px;color:var(--green);font-weight:600;margin:0;min-height:16px}
@media(max-width:600px){.goals-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.goals-stats strong{font-size:16px}.goals-grid{grid-template-columns:1fr}.goal-icon-picker{grid-template-columns:repeat(7,1fr);gap:4px}.goal-icon-opt{height:36px}}
.draft-view>.goals-summary,.draft-view>.goals-grid,.draft-view>.goals-filter{flex:none}
.draft-view>.panel.goals-summary,.panel.goal-card{min-height:0}
.profile-avatar.has-illustration{overflow:visible}.profile-avatar.has-illustration img{border-radius:inherit}
/* Contas e perfis */
.auth-field{display:flex;flex-direction:column}.auth-field[hidden],.auth-switch[hidden],.auth-forgot[hidden]{display:none}
.auth-forgot{align-self:flex-end;margin:-6px 0 8px;min-height:28px;padding:0}
.auth-switch{margin:4px 0 0;text-align:center;font-size:12px;color:var(--muted)}.auth-switch .link-btn{margin:0;min-height:28px;padding:0 4px;font-size:12px}
.auth-error.ok{color:var(--green)}
#modalProfileOverlay,#modalConfirmOverlay,#avatarPickerOverlay{z-index:120}
.profile-add,.profile-delete{display:none}
.managing-profiles .profile-add{display:flex;border-style:dashed;background:transparent}.profile-add .profile-avatar{background:var(--green-soft);color:var(--green)}.profile-add .profile-avatar svg{width:20px;height:20px}
.managing-profiles .profile-delete{display:grid;place-items:center;position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:9px;color:var(--muted)}.managing-profiles .profile-delete:hover{background:var(--red-soft);color:var(--red)}.profile-delete svg{width:15px;height:15px}
.profile-choices{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.managing-profiles .profile-add .profile-avatar::after{display:none}
/* Login e perfis, versão completa */
.pw-wrap{position:relative;display:flex;flex-direction:column}.pw-wrap .auth-input{padding-right:46px}.pw-toggle{position:absolute;right:4px;top:3px;width:36px;height:36px;border:0;border-radius:8px;background:transparent;color:var(--muted);display:grid;place-items:center}.pw-toggle:hover{color:var(--green);background:var(--green-soft)}.pw-toggle svg{width:17px;height:17px}
.pw-meter{height:4px;border-radius:9px;background:var(--line);overflow:hidden;margin:-8px 0 6px}.pw-meter[hidden]{display:none}.pw-meter span{display:block;height:100%;width:0;border-radius:9px;background:var(--red);transition:width .25s,background .25s}.pw-meter span[data-score="2"]{background:var(--orange)}.pw-meter span[data-score="3"],.pw-meter span[data-score="4"]{background:var(--green)}
.auth-hint{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);margin:0 0 12px}.auth-hint[hidden]{display:none}.auth-hint.warn{color:var(--orange);font-weight:700}.auth-hint svg{width:14px;height:14px}
.auth-resend{align-self:center;margin:2px 0 0;min-height:32px;font-size:12px}.auth-resend[hidden]{display:none}.auth-resend:disabled{color:var(--muted);cursor:default}
.auth-error{font-size:12px;line-height:1.45}
@media(max-width:600px){.auth-input,.form-group input,.form-group select,.form-group textarea{font-size:16px}.auth-card{padding:24px 20px}}
.profile-gate-card{position:relative}.gate-close{position:absolute;top:16px;right:16px}.gate-close[hidden]{display:none}
.profile-add{display:flex;border-style:dashed;background:transparent}
.gate-account{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--muted)}.gate-account>span{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis}.gate-account svg{width:15px;height:15px;flex:none}.gate-account .link-btn{display:flex;align-items:center;gap:5px;margin:0;font-size:12px}
.profile-edit-avatar{display:flex;align-items:center;gap:12px;border:0;background:transparent;color:var(--green);font-weight:700;font-size:12px;padding:0;margin:0 0 16px}.profile-edit-avatar[hidden]{display:none}.profile-edit-avatar .profile-avatar{margin:0;width:56px;height:56px}
.danger-link{margin-right:auto;border:0;background:transparent;color:var(--red);font-weight:700;font-size:12px;display:flex;align-items:center;gap:6px;padding:8px 4px}.danger-link[hidden]{display:none}.danger-link:disabled{color:var(--muted);cursor:not-allowed}.danger-link svg{width:15px;height:15px}
@media(max-width:600px){.profile-choices{grid-template-columns:1fr 1fr}.profile-choice{min-height:128px;padding:14px}.profile-choice-name{font-size:15px}.profile-gate-card h1{font-size:24px;padding-right:36px}.modal-actions{flex-wrap:wrap}.danger-link{width:100%;justify-content:center;order:3}}
@media(max-width:600px){.transactions-panel .transaction-sub.has-tag{display:block}}
/* Logo novo */
.brand-mark .logo-glyph{width:58%;height:58%;display:block}.brand-dot{color:inherit}
.mobile-appbar-brand{display:flex;align-items:center;gap:8px}.mobile-appbar-brand .brand-mark{width:30px;height:30px;border-radius:9px;flex:none}
/* Teste: valores centralizados nos cards do resumo */
.metric-card{display:flex;flex-direction:column}.metric-card .metric-value{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;margin:10px 0 6px}
/* Cards do resumo: faixa colorida, título com ícone centralizado, valor maior */
.metric-card{--stripe:var(--muted);position:relative;overflow:hidden;align-items:center;text-align:center;padding-top:16px}
.metric-card::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:var(--stripe)}
.metric-card:has(.green-icon){--stripe:var(--green)}.metric-card:has(.red-icon){--stripe:var(--red)}.metric-card:has(.orange-icon){--stripe:var(--orange)}.metric-card:has(.purple-icon){--stripe:var(--purple)}
.metric-card.balance-card{--stripe:color-mix(in srgb,var(--green) 60%,#fff)}.metric-card.projected-card{--stripe:color-mix(in srgb,var(--green) 45%,var(--muted))}
.metric-card .metric-top{flex-direction:row-reverse;justify-content:center;gap:7px;width:100%}
.metric-card .metric-icon{width:24px;height:24px;border-radius:7px}
.metric-card .metric-value{font-size:clamp(20px,1.9vw,28px);letter-spacing:-1px;margin:8px 0 4px}
@media(max-width:1350px){.metric-card .metric-value{font-size:clamp(18px,1.7vw,24px)}}
@media(max-width:600px){.metric-card .metric-value{font-size:20px}.metric-card .metric-top{font-size:11px}}
/* Ícones dos cards com mais destaque: cor cheia da faixa, em qualquer tema */
.metric-card.projected-card{--stripe:#22a597}
.metric-card .metric-icon{width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--stripe) 16%,transparent)!important;color:var(--stripe)!important}
.metric-card .metric-icon svg{width:16px;height:16px;stroke-width:2.4}
.metric-card.balance-card .metric-icon{background:rgba(255,255,255,.16)!important;color:#fff!important}
[data-theme="dark"] .metric-card .metric-icon{background:color-mix(in srgb,var(--stripe) 30%,transparent)!important;color:color-mix(in srgb,var(--stripe) 80%,#fff)!important}
.metric-card::before{display:none}
/* Saldo realizado com o mesmo visual dos outros cards */
.metric-card.balance-card,:root[data-theme='dark'] .metric-card.balance-card{background:var(--surface);color:var(--ink);border-color:var(--line)}
.metric-card.balance-card .metric-top{color:#7c8b90}
:root[data-theme='dark'] .metric-card.balance-card{border-color:#edf0f11a}
.metric-card.balance-card{--stripe:var(--green)}
.metric-card.balance-card .metric-icon{background:color-mix(in srgb,var(--stripe) 16%,transparent)!important;color:var(--stripe)!important}
[data-theme="dark"] .metric-card.balance-card .metric-icon{background:color-mix(in srgb,var(--stripe) 30%,transparent)!important;color:color-mix(in srgb,var(--stripe) 80%,#fff)!important}
.transaction-name .recurring-icon{margin-right:0;margin-left:5px}
/* Conta e LGPD */
.auth-terms{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--muted);margin:2px 0 12px;line-height:1.45;cursor:pointer}.auth-terms[hidden]{display:none}.auth-terms input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--green)}.auth-terms a{color:var(--green);font-weight:700}
.danger-zone h4{color:var(--red)}.danger-zone .danger-btn svg{width:15px;height:15px}.danger-zone .form-hint a{color:var(--green)}
.captcha-box{display:flex;justify-content:center}.captcha-box:not(:empty){margin:4px 0 10px}#settingsCaptcha{width:100%}
/* Ocultar valores */
.topbar-actions{display:flex;align-items:center;gap:8px}.values-toggle{width:36px;height:36px;border-radius:10px}.values-toggle svg{width:17px;height:17px}
.mobile-values-toggle{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:var(--ink);margin-left:auto;margin-right:6px}.mobile-values-toggle svg{width:19px;height:19px}
.values-hidden [data-values-toggle]{color:var(--green)}
@media(max-width:600px){.topbar .values-toggle{display:none}}
@media(min-width:601px){.mobile-values-toggle{display:none}}
.mobile-values-toggle+.mobile-appbar-avatar{margin-left:0}.mobile-values-toggle{margin-right:0}
.report-month{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:4px}.report-month strong{font:800 13px Manrope,sans-serif;min-width:130px;text-align:center}.report-month .icon-btn{border:0}#reportsView>.report-hero,#reportsView>.report-metrics{flex:none}.report-hero{min-height:230px}.report-hero h2{max-width:520px}.report-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.report-metrics strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-delta{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--muted)}.report-delta svg{width:12px;height:12px}.report-delta.good{color:var(--green)}.report-delta.bad{color:var(--red)}.report-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:13px;flex:none}.report-grid>.panel{padding:18px;min-height:0}.report-table tbody td{font-size:11px;padding:9px 7px}.report-table thead th{text-transform:capitalize}.report-table td b{font-weight:800}.report-cat{display:inline-flex;align-items:center;gap:8px;min-width:0}.report-up,.report-down{width:12px;height:12px;vertical-align:-2px;margin-left:4px}.report-up{color:var(--red)}.report-down{color:var(--green)}.report-shares{display:flex;flex-direction:column;gap:12px}.report-share-top{display:flex;justify-content:space-between;align-items:center;font-size:11px}.report-share .progress-track{height:6px;margin-top:6px}.report-chart{position:relative;height:190px}.report-chart canvas{width:100%!important;height:100%!important}#reportTop .pending-name{max-width:none}.report-split{height:14px;border-radius:8px;background:color-mix(in srgb,var(--green) 22%,var(--surface));overflow:hidden;margin:6px 0 10px}.report-split span{display:block;height:100%;background:var(--green);border-radius:8px 0 0 8px;transition:width .3s}.report-fixed-key{background:var(--green)}.report-variable-key{background:color-mix(in srgb,var(--green) 22%,var(--surface))}.report-grid .pending-item{font-size:11px}.report-muted{color:var(--muted);font-size:11px;margin:0}#reportsView .goals-empty{flex:none}
@media(max-width:1100px){.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.report-grid{grid-template-columns:1fr}}
@media(max-width:520px){.report-month strong{min-width:104px;font-size:12px}.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.report-metrics .investment-preview-card{padding:13px}.report-metrics strong{font-size:16px}.report-hero h2{font-size:22px}.report-grid>.panel{padding:13px}.report-table thead th,.report-table tbody td{font-size:10px;padding:8px 3px;white-space:normal}.report-table td:not(:first-child),.report-table th:not(:first-child){white-space:nowrap}.report-table .legend-swatch{display:none}.report-up,.report-down{display:none}}
#reportsView [data-report-body][hidden]{display:none}
#reportsView .panel{min-height:0;margin-bottom:0}@media(max-width:900px){#reportsView .report-hero{min-height:0}}
.pending-panel .panel-head{position:relative}.push-bell{width:29px;height:29px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:#9aa6aa;display:grid;place-items:center;padding:0;margin-left:auto;flex-shrink:0;transition:.18s}.push-bell svg{width:14px;height:14px}.push-bell:hover{color:var(--green);border-color:var(--green)}.push-bell.on{background:var(--green-soft);color:var(--green);border-color:transparent}.pending-panel .panel-head>div:first-child{margin-right:auto}.push-bell+.sort-control-wrap{margin-left:0}
.push-menu{position:fixed;z-index:60;width:230px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px #12201f26;padding:12px;display:flex;flex-direction:column;gap:6px;animation:pop .15s ease}.push-menu strong{font:800 12px Manrope,sans-serif}.push-menu p{margin:0 0 4px;color:var(--muted);font-size:10px;line-height:1.45}.push-menu button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:9px 10px;font-weight:700;font-size:11px;text-align:left}.push-menu button:hover{border-color:var(--green);color:var(--green);background:var(--green-soft)}.push-menu svg{width:14px;height:14px}
.pending-panel.flash{box-shadow:0 0 0 2px var(--green),var(--shadow);transition:box-shadow .3s}
#pushTest[hidden]{display:none}
.secondary-btn{transition:background .18s,color .18s,box-shadow .18s}.secondary-btn:hover:not(:disabled),.secondary-btn:focus-visible{background:var(--green-soft);color:var(--green);font-weight:800;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 35%,transparent)}
.settings-modal{width:min(100%,860px);padding:0;display:flex;flex-direction:column;overflow:hidden}.settings-modal>.modal-head{padding:22px 24px 18px;margin:0;border-bottom:1px solid var(--line)}.settings-layout{display:grid;grid-template-columns:200px minmax(0,1fr);flex:1;min-height:0;overflow:hidden}.settings-nav{display:flex;flex-direction:column;gap:3px;padding:16px 12px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,var(--surface));overflow:auto}.settings-tab{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--muted);padding:10px 12px;border-radius:10px;font-weight:700;font-size:12px;text-align:left;white-space:nowrap;transition:.16s}.settings-tab svg{width:16px;height:16px;flex-shrink:0}.settings-tab:hover{color:var(--green);background:var(--green-soft)}.settings-tab.active{background:var(--surface);color:var(--green);box-shadow:0 1px 3px #12201f14,inset 0 0 0 1px var(--line)}.settings-tab.danger-tab{margin-top:auto;color:var(--red)}.settings-tab.danger-tab:hover,.settings-tab.danger-tab.active{color:var(--red);background:var(--red-soft)}.settings-panes{padding:22px 24px 24px;overflow:auto;min-height:420px;max-height:calc(92dvh - 120px)}
.settings-modal .settings-section{padding:0;border:0;display:flex;flex-direction:column;gap:14px}.settings-modal .settings-section[hidden]{display:none}.settings-pane-head{display:flex;align-items:flex-start;gap:12px}.settings-pane-icon{width:38px;height:38px;border-radius:11px;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex-shrink:0}.settings-pane-icon svg{width:18px;height:18px}.settings-pane-head h4{margin:0 0 3px;font:800 16px Manrope,sans-serif;letter-spacing:-.3px}.settings-pane-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.danger-zone .settings-pane-icon{background:var(--red-soft);color:var(--red)}
.settings-card{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--surface);display:flex;flex-direction:column;gap:16px}.settings-card .form-group{margin-bottom:0}.settings-grid{display:grid;gap:14px 16px}.settings-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-grid .span-2{grid-column:span 2}.settings-grid .span-3{grid-column:1/-1}.settings-grid [hidden]{display:none}.settings-card.settings-grid{display:grid}.settings-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}.settings-actions .form-hint{margin:0 auto 0 0}.settings-actions .primary-btn,.settings-actions .secondary-btn,.settings-actions .danger-btn{height:40px;padding:0 16px}.settings-actions svg{width:15px;height:15px}.settings-kv{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--bg) 70%,var(--surface));font-size:12px}.settings-kv span{color:var(--muted)}.settings-kv b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-status{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--bg) 70%,var(--surface));color:var(--muted);font-size:12px;font-weight:700;line-height:1.45}.settings-status svg{width:16px;height:16px;flex-shrink:0}.settings-inline{flex-direction:row;align-items:center;justify-content:space-between;gap:18px}.settings-inline p{margin:0;color:var(--muted);font-size:12px;line-height:1.55;max-width:360px}.settings-modal .form-hint{margin:0;line-height:1.5}.settings-modal .settings-line{margin:0}.settings-legal{margin:0;padding:12px 24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);text-align:center}.settings-legal a{color:var(--muted)}.settings-legal a:hover{color:var(--green)}
@media(max-width:720px){.settings-modal{max-height:94dvh}.settings-modal>.modal-head{padding:18px 18px 14px}.settings-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.settings-nav{flex-direction:row;border-right:0;border-bottom:1px solid var(--line);padding:10px 12px;gap:6px;scrollbar-width:none}.settings-nav::-webkit-scrollbar{display:none}.settings-tab{padding:8px 11px;flex-shrink:0}.settings-tab.danger-tab{margin-top:0}.settings-panes{padding:18px;min-height:0;max-height:none}.settings-grid.two,.settings-grid.three{grid-template-columns:1fr}.settings-grid .span-2{grid-column:auto}.settings-inline{flex-direction:column;align-items:stretch}.settings-actions>button{flex:1}.settings-actions .form-hint{flex-basis:100%}}
.settings-status.on{background:var(--green-soft);color:var(--green)}
.nav-link:has(.nav-soon){position:relative;padding-right:76px}.nav-link .nav-soon{right:6px;padding:3px 6px;font-size:6.5px;letter-spacing:.3px}.nav-link:has(.nav-soon){gap:9px}
@media(max-width:900px){.topbar{flex-wrap:wrap;gap:12px}.topbar>div:first-child{flex:1 1 100%}.topbar-actions{flex:1 1 100%;width:100%}.topbar-actions .month-switcher{flex:1;width:100%;margin-left:0;display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1fr) 40px;align-items:center;gap:6px}.topbar-actions .month-switcher .month-select{margin-left:0;justify-self:end}.topbar-actions .month-switcher .year-select{margin-right:0;justify-self:start}.topbar-actions .month-switcher #monthNext{justify-self:end}#reportsView .draft-view-actions{flex:1 1 100%}.report-month{flex:1;justify-content:space-between}.report-month strong{flex:1}}
.empty-inline.is-visible{display:flex}.legend-swatch.swatch-green{background:var(--green)}.legend-swatch.swatch-orange{background:var(--orange)}.legend-swatch.swatch-red{background:var(--red)}.text-orange{color:var(--orange)}
/* Listas dos cards mostram tudo e rolam por dentro, com uma barra fina visível. */
.pending-list,.compact-list,.table-wrap,.report-shares,#reportTop{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--muted) 45%,transparent) transparent}.pending-list::-webkit-scrollbar,.compact-list::-webkit-scrollbar,.table-wrap::-webkit-scrollbar{display:block;width:6px;height:6px}.pending-list::-webkit-scrollbar-thumb,.compact-list::-webkit-scrollbar-thumb,.table-wrap::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:6px}.pending-list::-webkit-scrollbar-track,.compact-list::-webkit-scrollbar-track,.table-wrap::-webkit-scrollbar-track{background:transparent}.pending-list,.compact-list{padding-right:2px}
/* Resumo em colunas: receitas | despesas | dívidas e saldo, com o pendente embaixo de cada um. */
.metrics{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"inc exp debt" "incp expp proj"}.m-inc{grid-area:inc}.m-exp{grid-area:exp}.m-incp{grid-area:incp}.m-expp{grid-area:expp}.m-debt{grid-area:debt}.m-proj{grid-area:proj}
@media (max-width:900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"inc exp" "incp expp" "debt proj"}}
@media (min-width:901px){.metrics{gap:8px}.metrics .metric-card{padding:8px 14px 9px}.metrics .metric-value{margin:5px 0 0;font-size:clamp(16px,1.45vw,22px)}.metrics .metric-foot{display:none}}
/* Cards do resumo no modelo A: ícone à esquerda, título e valor empilhados, alinhados à esquerda. */
.metrics .metric-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon label" "icon value";align-items:center;column-gap:11px;row-gap:1px;padding:9px 13px;text-align:left}
.metrics .metric-top{display:contents}
.metrics .metric-top>span:first-child{grid-area:label;align-self:end;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.metrics .metric-icon{grid-area:icon;width:34px;height:34px;margin:0}
.metrics .metric-value{grid-area:value;align-self:start;margin:0;font-size:17px;text-align:left;justify-self:start}
.metrics .metric-foot{display:none}
@media (min-width:1201px){.analytics-grid{flex:.8}.lower-grid{flex:1.2}}
/* Itens de Planejamento arrastáveis. */
#planNav .nav-link{cursor:grab}
#planNav .nav-link:active{cursor:grabbing}
.nav-drag-ghost{opacity:.35}
.nav-drag-chosen{background:var(--green-soft);color:var(--green)}
/* Valores do resumo com verde e vermelho fixos: não mudam com a cor do tema. */
.metrics .metric-value.green{color:#16866a}.metrics .metric-value.red{color:#d95f63}
:root[data-theme='dark'] .metrics .metric-value.green{color:#36bd91}
/* Acessibilidade no celular e tablet: nada escondido em faixas que só rolam para o lado, e áreas de toque maiores. */
@media (max-width:900px){
  .sidebar{visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}
  .mobile-nav-open .sidebar{visibility:visible;transition:transform .22s ease,visibility 0s}
  .settings-nav{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));overflow:visible!important}
  .settings-nav>*{justify-content:center;min-height:38px;white-space:nowrap}
  .table-sort-button,.sort-control,[data-category-mode]{min-height:32px}
  .transaction-search{min-height:36px}
}
@media (max-width:600px){
  .transactions-panel thead tr{flex-wrap:wrap!important;overflow:visible!important}
}
/* Celulares bem estreitos (até 360px): valores e barra do calendário cabem sem cortar. */
@media (max-width:360px){
  .metrics .metric-card{column-gap:8px;padding:8px 10px}
  .metrics .metric-icon{width:28px;height:28px}
  .metrics .metric-value{font-size:15px}
  .calendar-toolbar{gap:6px}
  .calendar-toolbar h2{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
/* Telas de toque (celular e tablet): botões pequenos ganham área de toque de pelo menos 34px. */
@media (pointer:coarse){
  .mini-action,.transaction-delete-action{min-width:34px;min-height:34px}
  .quick-edit-chip,.status-pill.quick-edit-chip{min-height:32px}
  .text-btn,.link-btn{min-height:32px;padding-top:6px;padding-bottom:6px}
  .table-sort-button,.sort-control,[data-category-mode]{min-height:32px}
}
/* Teclado: todo elemento focado mostra um contorno visível. */
:where(button,a,select,input,textarea,[tabindex]):focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* Topo de Investimentos, Cartão e Relatórios no celular: a ilustração aparece menor, em cima do texto, e nada fica cortado. */
@media (max-width:900px){
  .investment-hero{height:auto!important;min-height:0!important;max-height:none!important;flex:0 0 auto!important;overflow:hidden}
  .investment-illustration{display:grid!important;order:-1;height:130px;margin:-6px 0 4px;transform:scale(.62);transform-origin:center}
  .investment-hero h2{margin-top:4px}
}
/* Card Contas atrasadas: clicável, mostra a quantidade embaixo do valor. */
.late-card{cursor:pointer}
.late-card:hover{border-color:color-mix(in srgb,var(--red) 30%,transparent)}
.metrics .late-card{grid-template-areas:"icon label" "icon value" "icon foot"}
.metrics .late-card .late-foot{display:block;grid-area:foot;font-size:10px;margin:0;text-align:left;justify-self:start;color:var(--muted)}
.metrics .late-card.is-late .late-foot{color:#d95f63;font-weight:700}
/* Login social. */
.auth-social{display:grid;gap:8px;margin-top:14px}
.auth-divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;margin-bottom:2px}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line)}
.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-weight:700}
.auth-social-btn svg{width:18px;height:18px}
.auth-social-btn:hover{border-color:var(--green);color:var(--green)}
.auth-social[hidden],.auth-social-btn[hidden]{display:none}
#loginForm:not([data-mode="login"]):not([data-mode="signup"]) .auth-social{display:none}
.backup-card{display:grid;gap:10px;margin-top:12px}.backup-card .settings-actions{flex-wrap:wrap}
/* Barra inferior e botão "+" (só celular e tablet). */
.bottom-nav,.quick-add-sheet,.quick-add-backdrop{display:none}
@media (max-width:900px){
  .bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);align-items:center;position:fixed;left:0;right:0;bottom:0;z-index:25;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:none;color:var(--muted);font-size:10px;font-weight:700;padding:6px 0;min-height:48px;border-radius:12px}
  .bottom-nav-item svg{width:20px;height:20px}
  .bottom-nav-item.active{color:var(--green)}
  .bottom-nav-add{justify-self:center;width:54px;height:54px;margin-top:-22px;border:0;border-radius:18px;background:var(--green);color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px color-mix(in srgb,var(--green) 40%,transparent);transition:transform .2s}
  .bottom-nav-add svg{width:26px;height:26px}
  .bottom-nav-add.open{transform:rotate(45deg)}
  .quick-add-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:24;background:#0d1f1d55}
  .quick-add-sheet:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:26;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:0 20px 50px #0d1f1d33;animation:qaUp .18s ease}
  .quick-add-sheet button{display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);font-weight:700;text-align:left}
  .qa-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}
  .qa-icon svg{width:18px;height:18px}
  .qa-green{background:#e7f5ef;color:#16866a}.qa-red{background:#fff0f0;color:#d95f63}.qa-orange{background:#fff5e7;color:#c88734}.qa-blue{background:#eaf3fb;color:#3a7ab8}
  .main{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
  .toast,#toast{bottom:calc(90px + env(safe-area-inset-bottom))!important}
}
@keyframes qaUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Guia de primeiro acesso. */
.onboard-modal{max-width:460px}
.ob-progress{display:flex;gap:6px;margin-bottom:16px}
.ob-progress span{flex:1;height:4px;border-radius:4px;background:var(--line)}
.ob-progress span.on{background:var(--green)}
.ob-lead{color:var(--muted);line-height:1.6;margin:6px 0 16px}
.ob-bills{display:grid;gap:8px}
.ob-bill{display:grid;grid-template-columns:1fr 120px;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px}
.ob-bill-name{display:flex;align-items:center;gap:8px;font-weight:700}
.ob-bill-name svg{width:18px;height:18px;color:var(--green)}
.ob-bill input{text-align:right}
.ob-choice{display:grid;gap:8px}
.ob-choice button{min-height:48px;justify-content:center}
.onboard-modal .modal-actions .link-btn{margin-right:auto}
.onboard-modal [hidden]{display:none!important}
/* Sobra do mês em destaque, com medidor de quanto da receita já está comprometido. */
.metrics .projected-card{background:linear-gradient(135deg,color-mix(in srgb,var(--green) 9%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--green) 22%,var(--line))}
.metrics .projected-card{grid-template-areas:"icon label" "icon value" "meter meter" "foot foot"}
.spend-meter{grid-area:meter;height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:6px}
.spend-meter span{display:block;height:100%;width:0;border-radius:6px;background:#16866a;transition:width .5s ease}
.spend-meter span.warn{background:#c88734}.spend-meter span.over{background:#d95f63}
.metrics .projected-card .spend-foot{display:block;grid-area:foot;font-size:10px;margin:4px 0 0;text-align:left;justify-self:start;color:var(--muted)}
@media (max-width:900px){
  .metrics{grid-template-areas:"proj proj" "inc exp" "incp expp" "debt debt"!important}
  .metrics .projected-card .metric-value{font-size:24px}
  .metrics .projected-card .metric-icon{width:40px;height:40px}
}
/* Carregando: blocos animados no lugar de R$ 0,00. */
.is-loading .metric-value,.is-loading .spend-foot,.is-loading .late-foot{color:transparent!important;border-radius:8px;background:linear-gradient(90deg,var(--line) 25%,color-mix(in srgb,var(--line) 40%,var(--surface)) 50%,var(--line) 75%);background-size:200% 100%;animation:skel 1.2s linear infinite;min-width:96px}
@keyframes skel{from{background-position:200% 0}to{background-position:-200% 0}}
.metrics .projected-card.is-negative{background:linear-gradient(135deg,color-mix(in srgb,#d95f63 9%,var(--surface)),var(--surface));border-color:color-mix(in srgb,#d95f63 25%,var(--line))}
.toast-undo{margin-left:8px;border:0;background:transparent;color:#7ee0bd;font-weight:800;padding:6px 8px;border-radius:8px;min-height:32px}
.toast-undo[hidden]{display:none}
.toast:has(.toast-undo:not([hidden])){pointer-events:auto}
/* Estados vazios com convite. */
.empty-inline.is-visible,.empty-inline[style*="flex"]{flex-direction:column;text-align:center;gap:8px;padding:18px 12px}
.empty-inline>svg{width:34px;height:34px;padding:8px;border-radius:12px;background:var(--green-soft);color:var(--green)}
.empty-copy{display:grid;gap:3px}
.empty-copy strong{font-size:12px;color:var(--ink)}
.empty-copy small{font-size:11px;color:var(--muted);line-height:1.5;max-width:260px}
.empty-cta{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));background:var(--surface);color:var(--green);font-weight:800;font-size:11px;padding:7px 12px;border-radius:10px;min-height:34px}
.empty-cta svg{width:14px;height:14px}
.empty-cta:hover{background:var(--green-soft)}
.cat-dot.cat-icon{width:20px;height:20px;border-radius:7px;display:inline-grid;place-items:center;color:#fff;flex:none}
.cat-dot.cat-icon svg{width:12px;height:12px}
@media (max-width:340px){.bottom-nav-item span{display:none}.bottom-nav-item{min-height:44px}}
/* Erro no campo. */
.form-group.has-error input,.form-group.has-error select{border-color:#d95f63!important;box-shadow:0 0 0 3px #d95f6322}
.field-error{display:block;margin-top:5px;color:#d95f63;font-size:11px;font-weight:700}
/* Resumo no modelo neutro: cards brancos; só o número, o ícone e a barra têm cor. */
.metrics .projected-card,.metrics .projected-card.is-negative{background:var(--surface);border-color:var(--line)}
.metrics .projected-card .metric-icon{background:var(--green-soft);color:var(--green)}
/* Resumo: cards brancos com ícone colorido por tipo (Sobra lilás, Receitas verde, Despesas coral, Pendentes amarelo, Atrasadas azul). */
.metrics .m-proj .metric-icon{background:#EEEDFE!important;color:#534AB7!important}
.metrics .m-inc .metric-icon{background:#E1F5EE!important;color:#0F6E56!important}
.metrics .m-exp .metric-icon{background:#FAECE7!important;color:#993C1D!important}
.metrics .m-incp .metric-icon,.metrics .m-expp .metric-icon{background:#FAEEDA!important;color:#854F0B!important}
.metrics .m-debt .metric-icon{background:#E6F1FB!important;color:#185FA5!important}
/* Computador: Sobra do mês à esquerda, ocupando as duas linhas; Atrasadas à direita. */
@media (min-width:901px){
  .metrics{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))!important;grid-template-areas:"proj inc exp debt" "proj incp expp debt"!important}
  .metrics .projected-card .metric-value{font-size:22px}
}
/* Resumo com 5 cards: sem Receitas pendentes. Cor no número só para receitas (verde) e despesas (vermelho). */
.metrics{grid-template-areas:"proj proj" "inc exp" "expp debt"!important}
@media (min-width:901px){.metrics{grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr))!important;grid-template-areas:"proj inc exp" "proj expp debt"!important}}
.metrics .m-expp .metric-value,.metrics .m-debt .metric-value{color:var(--ink)!important}
/* Celular: o menu (☰) fica na barra de baixo; no topo, marca à esquerda e perfil à direita. */
@media (max-width:900px){.mobile-appbar .mobile-nav-toggle{display:none!important}}
button.mobile-appbar-avatar{border:0;padding:0;cursor:pointer;font:inherit}
/* Escolha de perfil: ícone à esquerda e nome centralizado na altura do ícone, mesmo com nome longo (até 2 linhas). */
.profile-choice{display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"av name" "av cap";align-content:center;align-items:center;column-gap:12px;min-height:96px!important;padding:14px 30px 14px 14px!important}
.profile-choice .profile-avatar{grid-area:av;margin:0;flex:none}
.profile-choice-name{grid-area:name;align-self:end;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.profile-choice-caption{grid-area:cap;align-self:start;margin-top:2px}
.profile-switch-avatar{flex:none}
.profile-switch-copy{min-width:0}
.profile-switch-copy strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;line-height:1.25}
@media (max-width:600px){.profile-choices{grid-template-columns:1fr!important}}
/* Tela de perfis mais limpa: só título curto, cards com ícone e nome inteiro (sem cortar). */
#profileGate .eyebrow,#profileGate .subtitle,#profileGate .gate-note,.profile-choice-caption{display:none!important}
#profileGate h1{margin-bottom:14px}
.profile-choice{grid-template-areas:"av name"!important;min-height:72px!important}
.profile-choice-name{align-self:center!important;display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;overflow-wrap:anywhere}
.profile-switch-copy strong{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;overflow-wrap:anywhere}
.profile-choices{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.profile-choice-name{font-size:15px!important;overflow-wrap:break-word!important;word-break:normal!important;hyphens:none}
@media (max-width:600px){.profile-choices{grid-template-columns:1fr!important}}
/* Gráficos sempre com o total: sem o seletor Pagas/Total. */
.category-mode-toggle{display:none!important}
/* Celular e tablet (até 900px): o mesmo topo — marca à esquerda; olho e perfil juntos no canto direito. */
@media (max-width:900px){
  .mobile-appbar .mobile-values-toggle{display:grid!important;margin-left:auto;margin-right:6px}
  .mobile-appbar .mobile-appbar-avatar{margin-left:0!important}
  .topbar .values-toggle{display:none!important}
}
/* Rodapé fora do computador: centralizado, um item embaixo do outro. */
@media (max-width:900px){
  .footer-note{flex-direction:column!important;justify-content:center!important;align-items:center!important;text-align:center;gap:6px!important;padding:18px 0 8px!important;font-size:10px!important}
  .footer-note>span,.footer-note span:last-child{display:flex!important;justify-content:center;flex-wrap:wrap;gap:6px}
}
/* Mês e ano juntos e com o mesmo peso: "Outubro 2026". */
.month-switcher .year-select,.report-month .year-select{color:var(--ink)!important;font-weight:700!important}
.month-switcher .period-select{flex:0 0 auto!important;padding-left:4px;padding-right:16px}
.month-switcher .month-select{margin-left:auto!important}
.month-switcher .year-select{margin-right:auto!important;margin-left:0!important}
.topbar-actions .month-switcher{display:flex!important;align-items:center}
/* Lançamentos no celular: 2 linhas por item (descrição e valor; categoria, data, status e ações). */
@media (max-width:600px){
  .transactions-panel tbody tr{grid-template-columns:auto auto minmax(0,1fr) auto auto!important;grid-template-areas:"desc desc desc desc val" "cat date . stat act"!important;row-gap:6px!important;column-gap:8px!important;padding:10px 0!important}
  .transactions-panel tbody td{grid-row:auto!important;grid-column:auto!important}
  .transactions-panel tbody td:nth-child(1){grid-area:desc!important;min-width:0}
  .transactions-panel tbody td:nth-child(5){grid-area:val!important;align-self:start}
  .transactions-panel tbody td:nth-child(2){grid-area:cat!important}
  .transactions-panel tbody td:nth-child(3){grid-area:date!important;font-size:11px;color:var(--muted)}
  .transactions-panel tbody td:nth-child(4){grid-area:stat!important;justify-self:end}
  .transactions-panel tbody td:nth-child(6){grid-area:act!important;justify-self:end}
  .transactions-panel tbody td:nth-child(1) .transaction-sub,.transactions-panel tbody td:nth-child(1) small{display:none!important}
  .transactions-panel tbody td:nth-child(1) .transaction-name,.transactions-panel tbody td:nth-child(1){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .transactions-panel .category-chip{font-size:0!important;gap:0!important;padding:0!important;border:0!important;background:none!important;min-height:0!important}
  .transactions-panel .category-chip svg:not(.cat-icon svg){display:none}
  .transactions-panel .category-chip .cat-icon{width:24px;height:24px;border-radius:8px}
  .transactions-panel tbody td:nth-child(4) .status-pill{min-height:26px!important;padding:2px 8px!important;font-size:10px!important}
  .transactions-panel tbody td:nth-child(6) .mini-action,.transactions-panel tbody td:nth-child(6) .transaction-delete-action{min-width:28px!important;min-height:28px!important;width:28px;height:28px}
}
