:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color-scheme:light;--bg:#f5f7f6;--surface:#fff;--raised:#edf2ef;--text:#17251f;--muted:#62736a;--line:#dce5df;--accent:#97d5b3;--accent-soft:#e0f1e6;--accent-text:#286441;--negative:#b84f4b;--positive:#2d7550}html[data-theme=dark]{color-scheme:dark;--bg:#111917;--surface:#1a2420;--raised:#24322b;--text:#eef3ef;--muted:#a0b0a5;--line:#2e3c34;--accent:#a0dabb;--accent-soft:#243e30;--accent-text:#a0dabb;--negative:#eda39e;--positive:#a0dabb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:28px;font-weight:600;letter-spacing:-.7px;line-height:1.25}h2{font-size:18px;font-weight:600;letter-spacing:-.2px;line-height:1.4}h3{font-size:16px;font-weight:600}p{line-height:1.55}.ico{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;pointer-events:none}small{font-size:12px;line-height:1.5;color:var(--muted)}.app-frame{max-width:1050px;margin:auto;min-height:100dvh}.app-header{padding:40px 40px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.app-header h1{font-size:26px}.app-header p{font-size:14px;color:var(--muted);margin-top:6px}.profile-avatar{width:42px;height:42px;background:var(--raised);border-radius:50%;display:grid;place-items:center;border:1px solid var(--line)}.content{padding:0 40px 135px}.bottom-nav{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;width:min(590px,calc(100% - 36px));padding:9px 12px;background:var(--surface);border:1px solid var(--line);border-radius:22px;z-index:20;box-shadow:0 8px 35px #0002}.bottom-nav button{display:flex;flex:1;flex-direction:column;align-items:center;gap:5px;padding:0 2px;background:none;color:var(--muted)}.bottom-nav button>span{display:grid;place-items:center;min-width:62px;height:32px;border-radius:20px}.bottom-nav b{font-size:12px;font-weight:400;line-height:1.5}.bottom-nav button.active{color:var(--text)}.bottom-nav button.active>span{background:var(--accent);color:#153021}.bottom-nav button.active b{font-weight:600}.btn{min-height:44px;border-radius:10px;padding:12px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--raised);font-size:14px;font-weight:600;line-height:1.4;color:var(--text)}.btn.primary{background:var(--accent);color:#173422}.btn.text,.btn.back{background:none;color:var(--accent-text);padding:8px 0;font-weight:400;min-height:35px}.btn.back{color:var(--muted);gap:5px}.btn.danger{color:var(--negative)}.icon-button{width:42px;height:42px;display:grid;place-items:center;background:none;color:var(--muted);border-radius:50%;flex-shrink:0}.icon-button:hover{background:var(--raised)}.full-width{width:100%}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 26px}.section-title h1{font-size:26px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 14px;min-height:34px}.section-heading h2{font-size:17px}.space-top{margin-top:26px}.month-picker{display:flex;align-items:center;justify-content:center;gap:14px;padding:0 0 22px}.month-label{display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:500;min-height:42px;padding:10px 17px;border-radius:24px;background:var(--surface);color:var(--text);text-transform:capitalize}.month-label .ico{width:16px;height:16px;color:var(--muted)}.home-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:start}.home-grid>section:nth-child(2)>.section-heading:first-child{margin-top:0}.money-overview{padding:25px 26px 0;border:1px solid var(--line);border-radius:19px;background:var(--surface)}.balance-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:var(--muted);margin-top:-4px;margin-right:-10px}.balance{font-size:39px;letter-spacing:-1.2px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3;margin:5px 0}.balance-note{font-size:12px;color:var(--muted);margin-bottom:24px}.income-expense{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding:21px 0;gap:16px}.income-expense>div+div{border-left:1px solid var(--line);padding-left:22px}.income-expense>div:first-child{padding-right:6px}.income-expense span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;margin-bottom:9px}.income-expense span .ico{width:14px;height:14px}.income-expense b{font-size:18px;font-weight:500;font-variant-numeric:tabular-nums}.quick-actions{display:flex;gap:10px;margin-top:15px}.quick-actions .btn{flex:1;min-height:49px}.category-summary{padding:0 2px}.category-row{display:block;width:100%;text-align:left;background:none;color:var(--text);padding:13px 0}.category-line{display:flex;justify-content:space-between;gap:15px;font-size:14px}.category-line b{font-weight:500}.track{display:block;height:4px;border-radius:4px;background:var(--line);overflow:hidden;margin:10px 0 5px}.track i{display:block;height:100%;border-radius:4px}.category-row small{font-size:12px}.quiet-empty{font-size:14px;color:var(--muted);padding:12px 0}.list-surface{border-radius:15px;background:var(--surface);padding:0 16px;border:1px solid var(--line)}.transaction-row{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:18px 0;background:none;color:var(--text);border-bottom:1px solid var(--line)}.transaction-row:last-child{border-bottom:0}.category-icon{width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:var(--raised);color:var(--muted);flex-shrink:0}.category-icon .ico{width:19px;height:19px}.category-icon.income{color:var(--positive);background:var(--accent-soft)}.row-copy{flex:1;min-width:0}.row-copy b{display:block;font-size:14px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}.row-copy small{display:block;margin-top:4px}.row-value{font-size:14px;font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.row-value small{display:block;font-size:11px;font-weight:400;margin-top:4px}.positive{color:var(--positive)}.negative{color:var(--negative)}.reminder-row{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:18px 0}.reminder-row:last-child{border-bottom:0}.check-button{width:25px;height:25px;display:grid;place-items:center;background:none;border:1.5px solid var(--muted);border-radius:8px;flex-shrink:0;margin-top:2px}.check-button .ico{width:17px;height:17px}.reminder-copy{flex:1;text-align:left;background:none;color:var(--text);padding:0;min-width:0}.reminder-copy b{font-size:14px;font-weight:600;line-height:1.5;display:block;overflow-wrap:anywhere}.reminder-copy small{display:block;margin-top:4px;max-height:55px;overflow:hidden}.priority{display:block;font-size:11px;margin-top:8px;color:var(--muted)}.priority.high{color:var(--negative)}.priority.med{color:#bdac7d}.done .check-button{background:var(--accent);border-color:var(--accent);color:#163622}.done .reminder-copy b{text-decoration:line-through;color:var(--muted)}.reminder-row>.icon-button{width:34px;height:34px;margin-right:-8px;margin-top:-3px}.empty{text-align:center;padding:30px 12px;color:var(--muted)}.empty h3{color:var(--text)}.empty p{font-size:14px;margin:9px auto 16px;max-width:340px}.search-field{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:12px;padding:0 16px;border:1px solid var(--line)}.search-field .ico{color:var(--muted)}.search-field input{width:100%;min-height:50px;background:none;border:0;outline:none;font-size:16px}.filters{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;margin:18px 0 22px}.segments{display:flex;gap:4px;background:var(--surface);padding:4px;border-radius:11px}.segments .btn{background:none;padding:8px 16px;min-height:37px;font-weight:400;border-radius:8px}.segments .selected{background:var(--accent-soft);color:var(--accent-text)}.compact-select{font-size:14px;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:11px;max-width:100%;min-height:44px}.list-caption{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin-bottom:12px}.list-caption .btn{font-size:12px;padding:6px 0;min-height:28px}.date-heading{font-size:12px;color:var(--muted);padding:20px 0 11px;text-transform:capitalize}.date-heading:first-of-type{padding-top:5px}.reminder-tabs{margin:0 0 22px;width:fit-content}.footnote{font-size:12px;color:var(--muted);margin:20px 0;line-height:1.6}.subtext{font-size:14px;color:var(--muted);line-height:1.6}.profile-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:26px}.settings-section{padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:15px;align-self:start}.settings-section h2{margin-bottom:23px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border:0;padding-bottom:0}.settings-row b{font-size:14px;font-weight:500;display:block}.settings-row small{display:block;margin-top:5px}.control{background:var(--raised);border:1px solid var(--line);border-radius:9px;padding:11px 12px;max-width:150px;font-size:16px;min-height:44px}.settings-actions{display:flex;flex-direction:column;gap:9px;margin-top:21px}.settings-actions .btn{justify-content:flex-start}.sync-info{display:flex;align-items:center;gap:9px;color:var(--accent-text);font-size:14px;margin-bottom:13px}.field{display:flex;flex-direction:column;gap:8px;font-size:14px;margin-bottom:18px;min-width:0}.field input,.field textarea,.field select{background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:12px;min-height:47px;font-size:16px;width:100%}.field textarea{min-height:90px;resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-grid .full{grid-column:1/-1}.amount-field{padding:4px 0 22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.amount-field>label{color:var(--muted);font-size:14px}.amount-field>div{display:flex;align-items:baseline;gap:10px;margin-top:9px}.amount-field span{font-size:23px;color:var(--muted)}.amount-field input{background:none;border:0;outline:none;font-size:37px;font-weight:500;letter-spacing:-1px;width:100%;min-width:0;color:var(--text);padding:6px 0}.details{margin:22px 0}.details>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.details dt{color:var(--muted)}.details dd{margin:0;text-align:right}.detail-amount{font-size:35px;letter-spacing:-.7px;font-weight:600;margin-top:8px}.comparison{padding:15px;background:var(--accent-soft);color:var(--accent-text);border-radius:11px;font-size:14px}.assistant-layout{max-width:720px;margin:auto}.chat-log{display:flex;flex-direction:column;gap:15px;min-height:min(340px,42dvh);max-height:55dvh;overflow-y:auto;padding:8px 0 20px}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;max-width:93%;border-radius:15px;background:var(--surface);padding:15px 18px;font-size:15px;line-height:1.6;align-self:flex-start}.bubble.user{background:var(--accent-soft);align-self:flex-end}.assistant-welcome{padding:35px 5px;max-width:470px;margin:auto;text-align:center}.assistant-welcome>span{display:grid;place-items:center;width:48px;height:48px;background:var(--surface);color:var(--accent-text);border-radius:15px;margin:0 auto 18px}.assistant-welcome p{color:var(--muted);font-size:14px;margin-top:10px}.prompt-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;justify-content:center}.prompt-list .btn{font-size:13px;font-weight:400}.composer{display:flex;align-items:flex-end;gap:7px;background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:10px}.composer textarea{flex:1;min-height:44px;max-height:130px;resize:vertical;background:none;border:0;padding:11px 4px;color:var(--text);font-size:16px;min-width:0}.composer .btn{font-size:14px;padding:12px}.composer .icon-button{flex-shrink:0}.proposal-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-soft);padding:14px;border-radius:12px;margin-bottom:16px;font-size:14px}.proposal-row{padding:17px 0;border-bottom:1px solid var(--line)}.proposal-row>b{display:block;margin:9px 0 5px;font-size:15px;font-weight:500}.proposal-row p{font-size:14px;color:var(--muted)}.badge{font-size:12px;color:var(--accent-text);background:var(--accent-soft);padding:4px 8px;border-radius:5px}.badge.danger{color:var(--negative)}dialog{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:0;width:min(600px,calc(100% - 28px));max-height:90dvh;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#0008;backdrop-filter:blur(4px)}.dialog-header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 23px;background:var(--surface);border-bottom:1px solid var(--line);z-index:2}.dialog-header h2{font-size:19px}.dialog-body{padding:23px}.dialog-body>p{font-size:14px;line-height:1.6}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}.dialog-actions .btn{flex-grow:1}#toast{position:fixed;bottom:115px;left:50%;transform:translateX(-50%);display:none;padding:14px 18px;background:var(--text);color:var(--bg);border-radius:10px;z-index:100;box-shadow:0 5px 25px #0003;font-size:14px;max-width:90%}#toast.show{display:block}@media(max-width:780px){.app-frame{max-width:580px}.app-header{padding:calc(24px + env(safe-area-inset-top)) 22px 20px}.content{padding:0 22px 120px}.app-header h1{font-size:25px}.app-header p{font-size:13px}.home-grid,.profile-grid{grid-template-columns:1fr;gap:25px}.month-picker{padding-bottom:20px;gap:10px}.month-label{min-height:39px;font-size:13px;padding:10px 15px}.money-overview{padding:20px 22px 0}.balance{font-size:37px}.balance-note{margin-bottom:20px}.income-expense{padding:18px 0}.income-expense b{font-size:18px}.home-grid>section:nth-child(2)>.section-heading:first-child{margin-top:0}.home-grid>section:first-child .category-summary{display:none}.home-grid>section:first-child>.section-heading{margin:16px 0 0;justify-content:flex-end}.home-grid>section:first-child>.section-heading h2{display:none}.home-grid>section:first-child>.section-heading .btn{font-size:13px;min-height:30px}.home-grid{gap:18px}.bottom-nav{bottom:0;left:0;width:100%;transform:none;border-left:0;border-right:0;border-bottom:0;border-radius:0;padding:9px 8px calc(9px + env(safe-area-inset-bottom));box-shadow:none}.bottom-nav b{font-size:12px}.bottom-nav button>span{height:30px;min-width:62px}.list-surface{padding:0 14px}.transaction-row{gap:10px;padding:17px 0}.row-copy b{font-size:14px}.row-value{font-size:13px}.row-copy small{font-size:11px}.category-icon{width:36px;height:36px;border-radius:10px}.section-title{margin-top:4px;margin-bottom:23px}.section-title h1{font-size:25px}.section-title>.btn{padding:11px 13px;font-size:13px}.filters{gap:12px;margin-bottom:15px}.segments{flex:1}.segments .btn{flex:1;font-size:13px;padding:8px 12px}.compact-select{width:100%;font-size:14px}.reminder-tabs{width:100%}.reminder-row{gap:10px}.reminder-copy b{font-size:14px}.form-grid{gap:0 12px}.settings-section{padding:20px}.settings-row{gap:12px}.control{max-width:130px}.profile-grid{gap:20px}.composer{gap:3px}.composer .btn{font-size:0;width:42px;padding:10px;gap:0}.composer .btn .ico{width:19px}.composer .icon-button{width:35px}.chat-log{min-height:min(350px,40dvh);max-height:calc(100dvh - 330px)}.view-assistant .section-title{margin-bottom:10px}.assistant-welcome{padding:24px 5px}.bubble{font-size:14px}.proposal-strip{font-size:13px}.proposal-strip .btn{font-size:13px}dialog{width:100%;max-width:none;margin:auto 0 0;max-height:91dvh;border-radius:22px 22px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom)}.dialog-header{padding:13px 20px}.dialog-body{padding:20px}#toast{bottom:calc(100px + env(safe-area-inset-bottom))}.footnote{font-size:12px}.home-grid>section:first-child>.section-heading>.btn .ico{width:16px}}@media(max-width:360px){.app-header{padding-left:16px;padding-right:16px}.content{padding-left:16px;padding-right:16px}.balance{font-size:33px}.income-expense b{font-size:16px}.row-value{font-size:12px}.category-icon{width:32px;height:32px}.bottom-nav b{font-size:11px}.bottom-nav button>span{min-width:53px}.form-grid{grid-template-columns:1fr}.settings-row{flex-wrap:wrap}.control{max-width:100%;width:100%}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* ---- correcoes de alinhamento ---- */
.bottom-nav b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bottom-nav button{min-width:0}
.bottom-nav button.active b{font-weight:600;letter-spacing:-.15px}
.settings-row>div,.settings-row>label,.proposal-strip>span,.sync-info>span,.list-caption>span,.filters>*{min-width:0}
.settings-row b,.settings-row small,.list-caption>span,.proposal-strip{overflow-wrap:anywhere}
.settings-row>.control,.settings-row>.btn{flex-shrink:0}
.reminder-copy small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;max-height:none;overflow:hidden}
.dialog-header h2,.section-title h1,.section-heading h2{min-width:0;overflow-wrap:anywhere}
.section-heading>.btn,.section-title>.btn{flex-shrink:0}
.month-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.segments{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.segments::-webkit-scrollbar{display:none}
.segments .btn{flex-shrink:0;white-space:nowrap}
.category-line{min-width:0}
.category-line>span:first-child{min-width:0;overflow-wrap:anywhere}
.category-line b{flex-shrink:0;font-variant-numeric:tabular-nums}
.details dd{min-width:0;overflow-wrap:anywhere}
.details dt{flex-shrink:0}
.priority.med{color:#a3894f}
html[data-theme=dark] .priority.med{color:#d3bd85}
.amount-field input{font-variant-numeric:tabular-nums}
.balance,.detail-amount{overflow-wrap:anywhere}
.empty p{max-width:340px}
.quick-actions .btn{min-width:0}
.quick-actions .btn>span{overflow:hidden;text-overflow:ellipsis}
html{scroll-behavior:smooth}

/* ---- animacoes ---- */
@keyframes g-fade-up{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes g-fade{from{opacity:0}to{opacity:1}}
@keyframes g-slide-down{from{opacity:0;transform:translate3d(0,-10px,0)}to{opacity:1;transform:none}}
@keyframes g-pop{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes g-toast-in{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes g-sheet-in{from{opacity:0;transform:translate3d(0,26px,0)}to{opacity:1;transform:none}}
@keyframes g-bubble-in{from{opacity:0;transform:translate3d(0,10px,0) scale(.985)}to{opacity:1;transform:none}}
@keyframes g-track{from{transform:scaleX(0)}to{transform:none}}

.app-header h1,.app-header .btn.back{animation:g-slide-down .38s cubic-bezier(.22,.61,.36,1) both}
.app-header p{animation:g-slide-down .44s cubic-bezier(.22,.61,.36,1) .06s both}
.section-title h1{animation:g-slide-down .38s cubic-bezier(.22,.61,.36,1) both}
.view-enter .money-overview{animation:g-fade-up .46s cubic-bezier(.22,.61,.36,1) both}
.view-enter .balance{animation:g-fade .5s ease .08s both}
.track i{transform-origin:left center;animation:g-track .6s cubic-bezier(.22,.61,.36,1) both}

.g-reveal{opacity:0;transform:translate3d(0,16px,0)}
.g-reveal.g-in{animation:g-fade-up .5s cubic-bezier(.22,.61,.36,1) forwards;animation-delay:var(--g-d,0ms)}
.g-reveal.g-pop.g-in{animation-name:g-pop;animation-duration:.4s}

.btn,.icon-button,.transaction-row,.reminder-row,.category-row,.check-button,.bottom-nav button>span,.profile-avatar,.month-label,.segments .btn,.control{transition:transform .18s cubic-bezier(.22,.61,.36,1),background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease}
.track i{transition:width .5s cubic-bezier(.22,.61,.36,1)}
.btn:active,.transaction-row:active,.category-row:active,.month-label:active,.segments .btn:active{transform:scale(.975)}
.check-button:active{transform:scale(.9)}
.bottom-nav button.active>span{animation:g-pop .32s cubic-bezier(.22,.61,.36,1)}
.done .check-button{animation:g-pop .3s cubic-bezier(.22,.61,.36,1)}
.bubble{animation:g-bubble-in .36s cubic-bezier(.22,.61,.36,1) both}
.assistant-welcome{animation:g-fade-up .45s cubic-bezier(.22,.61,.36,1) both}
.proposal-strip{animation:g-fade-up .4s cubic-bezier(.22,.61,.36,1) both}
#toast.show{animation:g-toast-in .32s cubic-bezier(.22,.61,.36,1)}
dialog[open]{animation:g-pop .3s cubic-bezier(.22,.61,.36,1)}
dialog[open]::backdrop{animation:g-fade .3s ease}
.transaction-row:hover,.category-row:hover{background:color-mix(in srgb,var(--raised) 45%,transparent)}
.list-surface .transaction-row:hover{border-radius:10px}

@media(max-width:780px){dialog[open]{animation:g-sheet-in .34s cubic-bezier(.22,.61,.36,1)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.g-reveal{opacity:1;transform:none}}
