:root{--surface-bright: #f5f6f7;--secondary-fixed: #e5e2e1;--primary-fixed-dim: #efc900;--on-error: #ffefec;--error-container: #f95630;--on-primary-fixed-variant: #665500;--tertiary-fixed-dim: #d5ee68;--tertiary-fixed: #e3fd74;--surface-container-low: #eff1f2;--error-dim: #b92902;--inverse-surface: #0c0f10;--primary: #22a652;--error: #b02500;--on-tertiary: #e5ff76;--surface-tint: #6c5a00;--surface-dim: #d1d5d7;--secondary: #5c5b5b;--on-primary-container: #5b4b00;--on-background: #2c2f30;--inverse-on-surface: #9b9d9e;--surface-container-lowest: #ffffff;--surface: #f5f6f7;--surface-container: #e6e8ea;--inverse-primary: #ffd709;--background: #f5f6f7;--tertiary-container: #e3fd74;--on-secondary-container: #525151;--secondary-fixed-dim: #d6d4d3;--on-tertiary-fixed-variant: #5b6b00;--surface-container-highest: #dadddf;--primary-fixed: #ffd709;--primary-container: #ffd709;--on-surface-variant: #595c5d;--secondary-container: #e5e2e1;--on-surface: #2c2f30;--tertiary: #536200;--on-secondary-fixed-variant: #5c5b5b;--tertiary-dim: #485500;--on-primary-fixed: #453900;--outline: #757778;--on-tertiary-container: #516000;--on-primary: #ffffff;--surface-container-high: #e0e3e4;--secondary-dim: #504f4f;--on-tertiary-fixed: #414d00;--on-error-container: #520c00;--surface-variant: #dadddf;--on-secondary: #f5f2f1;--outline-variant: #abadae;--on-secondary-fixed: #403f3f;--primary-dim: #5e4e00;--success: #22a652;--success-dark: #1f8f45;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-4xl: 2.5rem;--radius-full: 9999px;--shadow-header: 0px 20px 40px rgba(108, 90, 0, .06);--shadow-primary-btn: 0px 10px 25px rgba(108, 90, 0, .15);--shadow-balance: 0px 15px 35px rgba(108, 90, 0, .1);--shadow-card: 0px 10px 30px rgba(0, 0, 0, .02);--shadow-item: 0px 4px 12px rgba(0, 0, 0, .02);--font-headline: "Plus Jakarta Sans", sans-serif;--font-body: "Inter", sans-serif;--font-modal: "Montserrat", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-body);background:var(--surface);color:var(--on-surface);min-height:100dvh;padding-bottom:6rem;overflow-x:hidden}body.modal-open{overflow:hidden}h1,h2,h3,.font-headline{font-family:var(--font-headline)}a{text-decoration:none;color:inherit}button{border:0;font:inherit;background:none;cursor:pointer;padding:0}input,select{font:inherit}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;line-height:1;-webkit-user-select:none;user-select:none}.page-header{position:fixed;top:0;left:0;width:100%;z-index:50;display:flex;align-items:center;justify-content:center;padding:1.1rem 1.5rem;background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-header);text-align:center}.brand{display:flex;align-items:center;gap:.5rem}.brand-text{font-size:1.25rem;font-weight:900;letter-spacing:-.03em;color:#171717}.main-content{width:100%;max-width:980px;margin:0 auto;padding:6rem 1rem 0}.section-stack>*+*{margin-top:1.5rem}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.action-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem;border-radius:var(--radius-lg);transition:transform .2s ease;text-align:center}.action-button:active{transform:scale(.95)}.action-button.primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-primary-btn)}.action-button.secondary{background:var(--surface-container-lowest);color:var(--on-surface);border:1px solid rgba(171,173,174,.15)}.action-button .icon{font-size:1.875rem}.action-button .label{font-family:var(--font-headline);font-weight:700;font-size:.875rem;line-height:1.2}.error-icon{color:var(--error)}.balance-card{background:transparent;padding:0;border-radius:0;box-shadow:none}.card{background:var(--surface-container-lowest);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-card)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem}.chart-card-header{align-items:flex-start}.card-title,.section-title{margin:0;font-family:var(--font-headline);font-size:1.125rem;font-weight:800;color:#171717}.chart-legend{display:flex;gap:1rem;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.375rem}.legend-dot{width:.625rem;height:.625rem;border-radius:var(--radius-full);flex-shrink:0}.legend-dot.income{background:var(--success)}.legend-dot.expense{background:var(--error-container)}.legend-text{font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:-.02em;color:var(--on-surface-variant)}.chart{height:18rem;display:flex;align-items:stretch;justify-content:flex-start;gap:.75rem;padding:.5rem .25rem 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.chart-day{min-width:2.75rem;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.5rem}.chart-bars{width:100%;min-height:12.5rem;position:relative;display:flex;align-items:flex-end;justify-content:center}.chart-bar-group{width:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:.35rem;min-height:12.5rem}.chart-bar-wrap{position:relative;width:100%;display:flex;align-items:flex-end;justify-content:center}.chart-value-label{position:absolute;bottom:calc(100% + .2rem);left:50%;transform:translate(-50%);font-size:.54rem;font-weight:800;line-height:1;color:var(--on-surface);white-space:nowrap;background:#ffffffeb;padding:.12rem .3rem;border-radius:999px;box-shadow:0 2px 6px #0000000f}.chart-value-label.expense{color:var(--error)}.chart-value-label.income{color:var(--success-dark)}.bar{width:100%;min-height:.5rem;border-top-left-radius:.35rem;border-top-right-radius:.35rem}.bar.income{background:var(--success)}.bar.expense{background:var(--error-container)}.chart-label{margin-top:0;font-size:.7rem;font-weight:800;color:var(--on-surface-variant)}.monthly-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.monthly-summary-card{background:var(--surface-container-lowest);border-radius:1rem;padding:1rem;box-shadow:var(--shadow-card)}.monthly-summary-label{margin:0 0 .35rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant)}.monthly-summary-value{margin:0;font-size:1.05rem;font-family:var(--font-headline);font-weight:900}.monthly-summary-value.balance{color:var(--primary)}.monthly-summary-value.income{color:var(--success-dark)}.monthly-summary-value.expense{color:var(--error)}.transactions-section>*+*,.expenses-section>*+*{margin-top:1rem}.section-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;gap:1rem}.transactions-header{display:flex;flex-direction:column;align-items:stretch;gap:1rem}.transactions-filters{display:grid;grid-template-columns:auto auto;gap:.75rem;width:100%}.transactions-filter-select{min-width:0;flex:1 1 140px;height:2.75rem;padding:0 .875rem;border:1px solid rgba(171,173,174,.35);border-radius:.75rem;background:var(--surface-container-lowest);color:var(--on-surface);font:inherit;outline:none}.transactions-filter-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #6c5a001f}.transactions-filter-search,.transactions-filter-clear{height:2.75rem;padding:0 1rem;border-radius:.75rem;font-weight:700;white-space:nowrap}.transactions-filter-search{background:var(--primary);color:var(--on-primary)}.transactions-filter-clear{background:var(--surface-container);color:var(--on-surface)}.transactions-list>*+*,.expenses-list>*+*{margin-top:.75rem}.daily-month-overview{background:var(--surface-container-lowest);border-radius:1rem;box-shadow:var(--shadow-card);padding:1rem}.daily-month-overview-title{margin:0 0 .9rem;font-size:.82rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--on-surface-variant)}.daily-month-overview-grid.large{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.daily-month-overview-item{display:flex;flex-direction:column;gap:.5rem}.daily-month-overview-card{background:var(--surface-container-low);border-radius:.9rem;padding:.9rem;max-height:max-content}.daily-month-overview-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.daily-month-overview-main{min-width:0;flex:1}.daily-month-overview-toggle{width:2rem;height:2rem;border-radius:999px;background:#0000000a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease}.daily-month-overview-toggle:hover{background:#00000014}.daily-month-overview-toggle .material-symbols-outlined{font-size:1.15rem;color:var(--on-surface-variant);transition:transform .2s ease}.daily-month-overview-item.is-open .daily-month-overview-toggle .material-symbols-outlined{transform:rotate(180deg)}.daily-month-overview-details{display:none;grid-template-columns:1fr;gap:.5rem;padding-top:.25rem}.daily-month-overview-item.is-open .daily-month-overview-details{display:grid}.daily-month-overview-detail{background:var(--surface-container-lowest);border-radius:.75rem;padding:.7rem .75rem;border:1px solid rgba(171,173,174,.18)}.daily-month-overview-detail-label{margin:0 0 .18rem;font-size:.68rem;font-weight:800;color:var(--on-surface-variant)}.daily-month-overview-detail-value{margin:0;font-size:.82rem;font-weight:900;font-family:var(--font-headline)}.daily-month-overview-label{margin:0 0 .3rem;font-size:.72rem;font-weight:800;color:var(--on-surface-variant)}.daily-month-overview-value{margin:0;font-size:.95rem;font-weight:900;font-family:var(--font-headline)}.daily-month-overview-value.income{color:var(--success-dark)}.daily-month-overview-value.expense{color:var(--error)}.daily-month-overview-value.drinks{color:var(--tertiary)}.daily-month-overview-value.balance{color:var(--primary)}.daily-month-overview-value.cash,.daily-inner-summary-value.cash,.daily-month-overview-detail-value.cash,.daily-inner-summary-detail-value.cash{color:#2f6f3e}.daily-month-overview-detail-value.pix,.daily-inner-summary-detail-value.pix{color:var(--primary)}.daily-month-overview-detail-value.credit_card,.daily-inner-summary-detail-value.credit_card{color:#7a4cff}.daily-month-overview-detail-value.debit_card,.daily-inner-summary-detail-value.debit_card{color:#1d7a8c}.daily-month-overview-detail-value.voucher,.daily-inner-summary-detail-value.voucher{color:#9b6b00}.daily-list,.expense-day-list{display:grid;gap:.85rem}.daily-group,.expense-day-group{background:var(--surface-container-lowest);border-radius:1rem;box-shadow:var(--shadow-card);overflow:hidden}.daily-group-header,.expense-day-header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;text-align:left}.daily-group-title-wrap,.expense-day-title-wrap{min-width:0;flex:1}.daily-group-title,.expense-day-title{margin:0;font-size:.95rem;font-weight:900;color:#171717;font-family:var(--font-headline)}.daily-group-totals,.expense-day-totals{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.daily-group-total,.expense-day-total{font-size:.76rem;font-weight:800;white-space:nowrap}.daily-group-total.balance{color:var(--primary)}.expense-day-total.total{color:var(--error)}.daily-group-chevron,.expense-day-chevron{color:var(--on-surface-variant);transition:transform .2s ease;flex-shrink:0}.daily-group.is-open .daily-group-chevron,.expense-day-group.is-open .expense-day-chevron{transform:rotate(180deg)}.daily-group-body,.expense-day-body{display:none;padding:0 1rem 1rem;border-top:1px solid rgba(171,173,174,.18)}.daily-group.is-open .daily-group-body,.expense-day-group.is-open .expense-day-body{display:block}.daily-inner-summary.large{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding-top:.85rem}.daily-inner-summary-item{display:flex;flex-direction:column;gap:.5rem}.daily-inner-summary-card,.expense-inner-summary-card{background:var(--surface-container-low);border-radius:.85rem;padding:.85rem;max-height:max-content}.daily-inner-summary-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.daily-inner-summary-main{min-width:0;flex:1}.daily-inner-summary-toggle{width:2rem;height:2rem;border-radius:999px;background:#0000000a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s ease,transform .2s ease}.daily-inner-summary-toggle:hover{background:#00000014}.daily-inner-summary-toggle .material-symbols-outlined{font-size:1.15rem;color:var(--on-surface-variant);transition:transform .2s ease}.daily-inner-summary-item.is-open .daily-inner-summary-toggle .material-symbols-outlined{transform:rotate(180deg)}.daily-inner-summary-details{display:none;grid-template-columns:1fr;gap:.5rem;padding-top:.25rem}.daily-inner-summary-item.is-open .daily-inner-summary-details{display:grid}.daily-inner-summary-detail{background:var(--surface-container-lowest);border-radius:.7rem;padding:.7rem .75rem;border:1px solid rgba(171,173,174,.18)}.daily-inner-summary-detail-label{margin:0 0 .18rem;font-size:.68rem;font-weight:800;color:var(--on-surface-variant)}.daily-inner-summary-detail-value{margin:0;font-size:.82rem;font-weight:900;font-family:var(--font-headline)}.expense-inner-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding-top:.85rem}.expense-inner-summary-card{border:1px solid transparent;transition:transform .2s ease,border-color .2s ease,background .2s ease;cursor:pointer;text-align:left}.expense-inner-summary-card:hover{transform:translateY(-1px)}.expense-inner-summary-card.is-active{background:var(--surface-container-lowest);border-color:#b0250038;box-shadow:0 8px 18px #b0250014}.daily-inner-summary-label,.expense-inner-summary-label{margin:0 0 .25rem;font-size:.72rem;font-weight:800;color:var(--on-surface-variant)}.daily-inner-summary-value,.expense-inner-summary-value{margin:0;font-size:.9rem;font-weight:900;font-family:var(--font-headline)}.daily-inner-summary-value.income{color:var(--success-dark)}.daily-inner-summary-value.expense,.expense-inner-summary-value.fixed,.expense-inner-summary-value.variable,.expense-inner-summary-value.purchase{color:var(--error)}.daily-inner-summary-value.drinks{color:var(--tertiary)}.daily-inner-summary-value.balance{color:var(--primary)}.daily-transactions,.expense-transactions{display:grid;gap:.65rem;padding-top:.85rem}.daily-transaction,.expense-transaction{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .9rem;border-radius:.85rem;background:var(--surface-container-low)}.daily-transaction-left,.expense-transaction-left{display:flex;align-items:center;gap:.75rem;min-width:0}.daily-transaction-icon,.expense-transaction-icon{width:2.5rem;height:2.5rem;border-radius:.85rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.daily-transaction-icon.income{background:#22a65224;color:var(--success-dark)}.daily-transaction-icon.expense,.expense-transaction-icon{background:#f956301f;color:var(--error)}.daily-transaction-title,.expense-transaction-title{margin:0 0 .18rem;font-size:.84rem;font-weight:800;color:var(--on-surface)}.daily-transaction-meta,.expense-transaction-meta{margin:0;font-size:.7rem;color:var(--on-surface-variant);font-weight:500}.daily-transaction-value,.expense-transaction-value{font-size:.82rem;font-weight:900;white-space:nowrap}.daily-transaction-value.income{color:var(--success-dark)}.daily-transaction-value.expense,.expense-transaction-value{color:var(--error)}.empty-state{padding:1rem;border-radius:var(--radius-lg);background:var(--surface-container-low);color:var(--on-surface-variant);font-size:.875rem;width:100%}.form-input{width:100%;height:3.5rem;padding:0 1rem;border:none;border-radius:var(--radius-lg);background:var(--surface-container-low);color:var(--on-surface);font-weight:600;outline:none}.form-input:focus{background:var(--surface-container-lowest);box-shadow:0 0 0 2px var(--primary)}.currency-field{position:relative;display:flex;align-items:center}.currency-prefix.fixed{position:absolute;left:1rem;z-index:1;font-size:.95rem;font-weight:800;color:var(--on-surface)}.currency-input{padding-left:3rem}.expense-confirm-button{background:var(--error-container);color:var(--on-error-container);box-shadow:0 18px 30px #b025002e}.modal-root{position:fixed;inset:0;z-index:200;pointer-events:none;opacity:0;transition:opacity .25s ease}.modal-root.is-open{opacity:1;pointer-events:auto}.modal-backdrop{position:absolute;inset:0;background:#2c2f3066;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.entry-modal{position:absolute;left:50%;bottom:0;transform:translate(-50%) translateY(100%);width:100%;max-width:28rem;max-height:min(90dvh,52rem);background:var(--surface);border-top-left-radius:2.5rem;border-top-right-radius:2.5rem;box-shadow:0 -12px 40px #0000002e;display:flex;flex-direction:column;overflow:hidden;transition:transform .28s ease}.modal-root.is-open .entry-modal{transform:translate(-50%) translateY(0)}.modal-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:7rem}.modal-handle-wrap{display:flex;justify-content:center;padding-top:1rem;padding-bottom:.5rem;flex-shrink:0}.modal-handle{width:3rem;height:.375rem;background:var(--surface-container-highest);border-radius:var(--radius-full)}.modal-header{padding:1rem 2rem 1.5rem}.modal-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.modal-title{margin:0;font-family:var(--font-modal);font-size:1.875rem;font-weight:900;font-style:italic;text-transform:uppercase;letter-spacing:-.04em;color:var(--on-surface);line-height:1.05}.close-button{width:2.5rem;height:2.5rem;border-radius:var(--radius-full);background:var(--surface-container);display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease;flex-shrink:0}.close-button:hover{background:var(--surface-container-high)}.close-button .material-symbols-outlined{color:var(--on-surface-variant)}.modal-subtitle{margin:0;font-size:.875rem;font-weight:500;color:var(--on-surface-variant)}.entry-form{padding:0 2rem}.form-section+.form-section{margin-top:2rem}.section-label{display:block;margin-bottom:.75rem;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--primary)}.date-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.select-wrap{position:relative}.field-select{width:100%;height:3.5rem;padding-left:1rem;padding-right:2.5rem;border:none;border-radius:var(--radius-lg);appearance:none;background:var(--surface-container-low);color:var(--on-surface);font-weight:600;transition:all .2s ease;outline:none}.field-select:focus{background:var(--surface-container-lowest);box-shadow:0 0 0 2px var(--primary)}.select-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);color:var(--on-surface-variant);pointer-events:none}.payment-list{display:grid;grid-template-columns:1fr;gap:1rem}.payment-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--surface-container-low);border-radius:1rem;transition:all .2s ease}.payment-card:focus-within{background:var(--surface-container-lowest);box-shadow:0 12px 24px #6c5a000f}.payment-icon-box{width:3rem;height:3rem;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.payment-icon-box.primary{background:var(--primary-container);color:var(--on-primary-container)}.payment-icon-box.neutral{background:var(--surface-container-highest);color:var(--on-surface)}.payment-content{flex:1;min-width:0}.payment-name{display:block;margin-bottom:.125rem;font-size:.625rem;font-weight:700;text-transform:uppercase;color:var(--on-surface-variant)}.currency-row{display:flex;align-items:baseline}.currency-prefix{margin-right:.25rem;font-size:.875rem;font-weight:700;color:var(--on-surface)}.payment-input{width:100%;padding:0;border:none;background:transparent;font-size:1.25rem;font-weight:700;color:var(--on-surface);outline:none}.payment-input::placeholder{color:var(--outline-variant)}.special-box{padding:1.5rem;border:2px dashed rgba(83,98,0,.2);border-radius:2rem;background:#e3fd744d}.special-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.special-icon{width:2.5rem;height:2.5rem;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--tertiary-container);color:var(--tertiary);flex-shrink:0}.special-label{font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:-.03em;color:var(--tertiary);font-family:var(--font-modal)}.special-input-row{display:flex;align-items:baseline;padding-bottom:.5rem;border-bottom:2px solid rgba(83,98,0,.1);transition:border-color .2s ease}.special-input-row:focus-within{border-color:var(--tertiary)}.special-currency{margin-right:.5rem;font-size:1.5rem;font-weight:900;color:var(--tertiary)}.special-input{width:100%;padding:0;border:none;background:transparent;font-size:2.25rem;font-weight:900;color:var(--tertiary);outline:none}.special-input::placeholder{color:#5362004d}.special-note{margin:.75rem 0 0;font-size:.625rem;font-weight:500;font-style:italic;line-height:1.4;color:#53620099}.modal-footer{position:absolute;left:0;bottom:0;width:100%;padding:1.5rem;background:linear-gradient(to top,var(--surface) 0%,rgba(245,246,247,.95) 60%,rgba(245,246,247,0) 100%);z-index:2}.confirm-button{width:100%;height:4rem;border-radius:1rem;border:none;display:flex;align-items:center;justify-content:center;gap:.75rem;background:var(--primary-container);color:var(--on-primary-container);font-size:1.125rem;font-weight:900;box-shadow:0 18px 30px #6c5a0033;transition:transform .2s ease}.confirm-button:active{transform:scale(.98)}.hidden{display:none!important}@media(max-width:640px){.monthly-summary-grid,.daily-month-overview-grid,.daily-inner-summary,.expense-inner-summary,.daily-month-overview-grid.large,.daily-inner-summary.large{grid-template-columns:1fr}}@media(max-width:480px){.main-content{padding-left:1rem;padding-right:1rem}.entry-modal{max-width:100%}.modal-header,.entry-form{padding-left:1.25rem;padding-right:1.25rem}.modal-title{font-size:1.625rem}.date-grid,.transactions-filters{grid-template-columns:1fr;flex-direction:column}.transactions-filter-select,.transactions-filter-search,.transactions-filter-clear{width:100%}.daily-group-header,.expense-day-header{align-items:flex-start}.daily-transaction,.expense-transaction{align-items:flex-start;flex-direction:column}.modal-footer{padding:1rem 1.25rem 1.25rem}}
