.protected-route__screen{display:flex;align-items:center;justify-content:center;height:100vh;background-color:#f9fafb}.protected-route__spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:.75rem}.protected-route__loading-text{color:#6b7280;font-size:.875rem;line-height:1.25rem}.landing{min-height:100vh;position:relative;background:linear-gradient(260deg,#f1f1f1,#fff,#eee);isolation:isolate}.landing:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");opacity:.035;pointer-events:none;z-index:1}.oficial-logo{color:#fff;font-weight:700;margin:0;font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center}.landing__nav{background-color:#fff;max-width:auto;box-shadow:0 0 10px #0000001e;padding:1.25rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.landing__nav-logo{display:flex;align-items:center;gap:.5rem}.landing__nav-logo-icon{width:2rem;height:2rem;background-color:#10b77f;border-radius:.5rem;display:flex;text-align:center;align-items:center;justify-content:center}.landing__nav-logo-text{font-size:1.25rem;font-weight:700;color:#111827}.landing__nav-links{display:flex;align-items:center;gap:.75rem}.landing__nav-login{font-size:.875rem;font-weight:500;color:#4b5563;text-decoration:none;transition:color .15s}.landing__nav-login:hover{color:#111827}.landing__hero{max-width:72rem;margin-left:auto;margin-right:auto;padding:5rem 1.5rem;text-align:center}.landing__badge{display:inline-flex;align-items:center;gap:.5rem;background-color:#d1fae5;color:#10b77f;padding:.375rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;margin-bottom:1.5rem}.landing__h1{font-size:3rem;font-weight:800;color:#111827;line-height:1.1;margin-bottom:1.5rem;letter-spacing:-.02em}@media (min-width: 768px){.landing__h1{font-size:4rem}}@media (min-width: 1024px){.landing__h1{font-size:4.5rem}}.landing__h1-accent{color:#10b77f;display:block}.landing__lead{font-size:1.25rem;color:#6b7280;max-width:42rem;margin:0 auto 2.5rem;line-height:1.625}.landing__cta-row{display:flex;flex-direction:column;gap:1rem;justify-content:center}@media (min-width: 640px){.landing__cta-row{flex-direction:row}}.landing__hero-visual{margin-top:4rem;max-width:56rem;margin-left:auto;margin-right:auto}.data-title{margin-left:10px;color:#fff;font-weight:700}.landing__hero-window{border:1.5px solid #10b77f;border-radius:1rem;padding:.25rem;box-shadow:1px 1px 10px #0000001c;transition:.3s ease}.landing__hero-window:hover{transform:scale(1.01);box-shadow:0 25px 50px -12px #00000040}.landing__hero-inner{background:linear-gradient(135deg,#0a9e6e,#10b77f 45%,#34d399);border-radius:.75rem;padding:1.5rem;text-align:left}.landing__hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.landing__hero-stat{background-color:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6}.landing__hero-stat-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.landing__hero-chart{background-color:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;height:8rem;display:flex;align-items:flex-end;gap:.5rem}.span-ai{margin:10px black}.landing__hero-bar{flex:1 1 0%;display:flex;flex-direction:column;justify-content:flex-end;gap:.25rem}.landing__features{position:relative;background:linear-gradient(110deg,#1c8d62,#1c885e,#23a371 70%,#36b985);padding:5rem 0;overflow:hidden}.landing__features-inner{max-width:72rem;margin-left:auto;margin-right:auto;padding:0 1.5rem}.landing__features-title{font-size:1.875rem;font-weight:800;text-align:center;color:#fff;margin-bottom:1rem;letter-spacing:-.01em}@media (min-width: 768px){.landing__features-title{font-size:2.25rem}}.landing__features-sub{text-align:center;color:#fff;margin-bottom:3rem;max-width:36rem;margin-left:auto;margin-right:auto}.landing__features-grid{display:grid;gap:1.5rem}@media (min-width: 640px){.landing__features-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.landing__features-grid{grid-template-columns:repeat(4,1fr)}}.landing__feature-card{background-color:#fff;border-radius:1.25rem;box-shadow:0 1px 3px #0000000f,0 4px 16px -4px #00000014;border:1px solid rgba(255,255,255,.7);padding:1.75rem 1.5rem;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.landing__feature-card:hover{box-shadow:0 8px 24px -4px #00000024,0 2px 4px -2px #0000000f;transform:translateY(-3px)}.landing__feature-icon{width:3rem;height:3rem;border-radius:.875rem;background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#10b77f;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.landing__feature-title{font-weight:600;color:#111827;margin-bottom:.5rem}.landing__feature-desc{font-size:.875rem;color:#6b7280;line-height:1.625}.landing__cta{padding:5rem 0;background-color:#fff}.landing__cta-inner{max-width:42rem;margin-left:auto;margin-right:auto;padding:0 1.5rem;text-align:center}.landing__cta-title{font-size:1.875rem;font-weight:700;color:#111827;margin-bottom:1rem}.landing__cta-sub{color:#6b7280;margin-bottom:2rem}.landing__footer{border-top:1px solid rgba(255,255,255,.08);padding:3rem 0 1.25rem;background:radial-gradient(900px 220px at 20% 0%,#10b77f38,#10b77f00 60%),#1c885e}.landing__footer-inner{max-width:72rem;margin-left:auto;margin-right:auto;padding:0 1.5rem;font-size:.875rem;color:#ffffffb8}.landing__footer-top{display:grid;gap:2rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.08)}@media (min-width: 768px){.landing__footer-top{grid-template-columns:1.2fr 2fr;align-items:start}}.landing__footer-brand{max-width:26rem}.landing__footer-logo{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.landing__footer-logo-mark{width:2.25rem;height:2.25rem;border-radius:.75rem;background:linear-gradient(135deg,#0a9e6e,#10b77f 55%,#34d399);display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:0 14px 26px #10b77f47}.landing__footer-logo-text{font-size:1rem;font-weight:800;letter-spacing:-.01em;color:#ffffffeb}.landing__footer-tagline{color:#ffffffa6;line-height:1.6;margin:0}.landing__footer-cols{display:grid;gap:1.25rem}@media (min-width: 640px){.landing__footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.landing__footer-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}.landing__footer-col-title{font-size:.875rem;font-weight:700;color:#ffffffeb;margin:0 0 .75rem}.landing__footer-links{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.landing__footer-link{color:#ffffffad;text-decoration:none;transition:color .15s ease;display:inline-flex;align-items:center}.landing__footer-link:hover{color:#fff}.landing__footer-link:focus-visible{outline:2px solid rgba(16,183,127,.6);outline-offset:3px;border-radius:.375rem}.landing__footer-bottom{padding-top:1.25rem;display:flex;flex-direction:column;gap:.75rem;justify-content:space-between;align-items:flex-start}@media (min-width: 768px){.landing__footer-bottom{flex-direction:row;align-items:center}}.landing__footer-copy{margin:0;color:#ffffff8c}.landing__footer-bottom-links{display:inline-flex;gap:.5rem;align-items:center}.landing__footer-sep{color:#ffffff47}.landing__social-proof{padding:2rem 0;background:linear-gradient(110deg,#1c8d62,#1c885e,#23a371 70%,#36b985);border-top:1px solid #f3f4f6;border-bottom:1px solid #f3f4f6}.landing__social-proof-inner{max-width:72rem;margin:0 auto;padding:0 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem}@media (min-width: 640px){.landing__social-proof-inner{flex-direction:row;justify-content:center;gap:1.5rem}}.landing__avatars{display:flex}.landing__avatar{width:2.25rem;height:2.25rem;border-radius:9999px;border:2px solid #ffffff;margin-left:-.5rem;flex-shrink:0}.landing__avatar:first-child{margin-left:0}.landing__social-proof-text{font-size:.9375rem;color:#fff;margin:0}.landing__social-proof-rating{display:flex;align-items:center;gap:.375rem}.landing__stars{color:#fccc7a;margin-right:10px;font-size:.9375rem;letter-spacing:.05em}.landing__rating-score{font-size:.875rem;font-weight:600;color:#fff}.landing__how-it-works{padding:5rem 0;background-color:#fff}.landing__how-it-works-inner{max-width:72rem;margin:0 auto;padding:0 1.5rem}.landing__how-it-works-title{font-size:1.875rem;font-weight:700;color:#111827;text-align:center;margin-bottom:.75rem}@media (min-width: 768px){.landing__how-it-works-title{font-size:2.25rem}}.landing__how-it-works-sub{text-align:center;color:#6b7280;margin:0 auto 3.5rem;max-width:36rem;font-size:1.0625rem}.landing__steps{display:grid;gap:2rem;position:relative}@media (min-width: 768px){.landing__steps{grid-template-columns:repeat(3,1fr);gap:3rem}}.landing__step{display:flex;flex-direction:column;align-items:flex-start;position:relative}.landing__step-number{width:3rem;height:3rem;border-radius:.875rem;background:linear-gradient(135deg,#0a9e6e,#10b77f);color:#fff;font-size:.875rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;box-shadow:0 4px 12px #10b77f59;flex-shrink:0}.landing__step-title{font-size:1.25rem;font-weight:700;color:#111827;margin:0 0 .5rem}.landing__step-desc{font-size:.9375rem;color:#6b7280;line-height:1.6;margin:0}.landing__step-connector{display:none}@media (min-width: 768px){.landing__step-connector{display:block;position:absolute;top:1.5rem;right:-1.75rem;width:.5rem;height:2px;background:linear-gradient(90deg,#10b77f,#d1fae5);transform:scaleX(3.5);transform-origin:left;pointer-events:none}}.auth-page{min-height:100vh;background:linear-gradient(135deg,#fff,#f9fafb 40%,#f3f4f6);display:flex;align-items:center;justify-content:center;padding:1rem}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(https://grainy-gradients.vercel.app/noise.svg);opacity:.12;pointer-events:none}.logo-symbol{font-size:26px;font-weight:700;color:#fff}.center-card{display:block;align-items:center;justify-content:center;text-align:center}.auth-page__container{width:100%;max-width:28rem}.auth-page__logo-wrap{text-align:center;margin-bottom:2rem}.auth-page__logo-link{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none}.auth-page__logo-icon{width:2.5rem;height:2.5rem;background-color:#10b77f;border-radius:.75rem;display:flex;align-items:center;justify-content:center}.auth-page__logo-text{font-size:1.5rem;font-weight:700;color:#111827}.auth-page__error{background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-size:.875rem;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.auth-page__link{color:#10b77f;font-weight:500;text-decoration:none}.auth-page__link:hover{text-decoration:underline}.insights__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.insights__title-wrap{display:flex;align-items:center;gap:.5rem}.insights__icon{width:2rem;height:2rem;background-color:#f3e8ff;border-radius:.5rem;display:flex;align-items:center;justify-content:center;font-size:1rem}.insights__title{font-weight:600;color:#111827}.insights__spinner{width:1rem;height:1rem;border:2px solid #d1d5db;border-top-color:#10b77f;border-radius:9999px;animation:spin 1s linear infinite}.insights__error{background-color:#fef2f2;border:1px solid #fee2e2;color:#dc2626;font-size:.875rem;border-radius:.5rem;padding:.75rem 1rem}.insights__placeholder{color:#9ca3af;font-size:.875rem}.insights__result{background-image:linear-gradient(to bottom right,#faf5ff,#eff6ff);border-radius:.75rem;padding:1rem}.insights__result-text{color:#374151;font-size:.875rem;line-height:1.625}.tx-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem}.tx-modal__box{background-color:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;width:100%;max-width:28rem}.tx-modal__type-btn{flex:1;padding:.5rem;font-size:.875rem;font-weight:500;border:none;background:transparent;cursor:pointer;transition:background-color 10ms,color .15s;color:#4b5563}.tx-modal__type-btn:hover{opacity:.9}.tx-modal__type-btn--income{background-color:#22c55e;color:#fff}.tx-modal__type-btn--expense{background-color:#ef4444;color:#fff}.tx-modal__form input[type=date]{font-family:inherit}.tx-modal__keep-open input[type=checkbox]{accent-color:#23a57a}.tx-modal__keep-open{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#6b7280;cursor:pointer}.tx-modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #f3f4f6}.tx-modal__header-actions{display:flex;align-items:center;gap:.25rem}.tx-modal__title{font-size:1.125rem;font-weight:600;color:#111827}.tx-modal__close-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;transition:background-color .15s}.tx-modal__close-btn:hover{background-color:#f3f4f6}.tx-modal__close-icon{width:1.25rem;height:1.25rem;color:#6b7280}.tx-modal__star-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#d1d5db;transition:background-color .15s,color .15s;display:flex;align-items:center;justify-content:center}.tx-modal__star-btn:hover{background-color:#fef3c7;color:#f59e0b}.tx-modal__star-btn--active{color:#f59e0b}.tx-modal__star-btn--active:hover{background-color:#fef3c7;color:#d97706}.tx-modal__form{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.tx-modal__error{background-color:#fef2f2;border:1px solid #fee2e2;color:#dc2626;font-size:.875rem;border-radius:.5rem;padding:.75rem 1rem}.tx-modal__type-toggle{display:flex;border-radius:.5rem;border:1px solid #e5e7eb;overflow:hidden}.tx-modal__checkboxes{display:flex;flex-direction:column;gap:.5rem}.tx-modal__actions{display:flex;gap:.75rem;padding-top:.5rem}.tx-modal__recurring-notice{display:flex;align-items:center;gap:.5rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;padding:.625rem .875rem;font-size:.875rem}.tx-modal__recurring-notice__icon{display:flex;align-items:center;color:#10b77f;flex-shrink:0}.tx-modal__recurring-notice__text{color:#15803d;flex:1}.tx-modal__recurring-remove-btn{background:transparent;border:1px solid #ef4444;color:#ef4444;font-size:.75rem;font-weight:500;border-radius:.375rem;padding:.25rem .625rem;cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap;flex-shrink:0}.tx-modal__recurring-remove-btn:hover{background-color:#ef4444;color:#fff}@media (min-width: 768px) and (max-width: 1023px){.tx-modal__box{max-width:90vw}}.tx-confirm__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0009;z-index:60;display:flex;align-items:center;justify-content:center;padding:1rem}.tx-confirm__box{background-color:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;width:100%;max-width:24rem;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.tx-confirm__title{font-size:1rem;font-weight:600;color:#111827}.tx-confirm__message{font-size:.875rem;color:#6b7280;line-height:1.6}.tx-confirm__actions{display:flex;gap:.75rem;padding-top:.25rem}.dashboard{display:flex;flex-direction:column;gap:1.5rem}.dashboard__greeting{font-size:1.5rem;font-weight:700;color:#111827}.dashboard__subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.dashboard__stats{display:grid;gap:1rem}.header-div{display:flex;justify-content:space-between;align-items:center}@media (min-width: 640px){.dashboard__stats{grid-template-columns:repeat(3,1fr)}}.stat-card{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;padding:1.5rem;display:flex;align-items:flex-start;gap:1rem}.budget-div{display:flex;gap:16px;flex-wrap:nowrap}.budget-div>div{flex:1;min-width:0}@media (max-width: 768px){.budget-div{flex-direction:column}}.stat-card__body{display:flex;flex-direction:column;gap:0;min-width:0}.stat-card__value-row{display:flex;align-items:center;gap:.5rem}.stat-card__toggle-btn{background:transparent;border:none;cursor:pointer;color:#9ca3af;display:flex;align-items:center;justify-content:center;padding:.25rem;border-radius:.375rem;flex-shrink:0;transition:color .15s,background-color .15s}.stat-card__toggle-btn:hover{color:#6b7280;background-color:#f3f4f6}.stat-card__trend{font-size:.75rem;font-weight:500;margin:.25rem 0 0}.stat-card__trend--positive{color:#16a34a}.stat-card__trend--negative{color:#dc2626}.stat-card__icon{width:3rem;height:3rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card__icon--balance{background-color:#d1fae5;color:#10b77f}.stat-card__icon--income{background-color:#dcfce7;color:#16a34a}.stat-card__icon--expense{background-color:#fee2e2;color:#dc2626}.stat-card__label{font-size:.875rem;color:#6b7280}.stat-card__value{font-size:1.5rem;font-weight:700;color:#111827}.dashboard__month-nav{display:inline-flex;align-items:center;gap:.25rem;margin-top:.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:.625rem;padding:.25rem}.dashboard__month-nav__btn{width:1.875rem;height:1.875rem;border-radius:.375rem;border:none;background:transparent;color:#374151;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s,color .15s;flex-shrink:0}.dashboard__month-nav__btn:hover:not(:disabled){background-color:#f3f4f6;color:#111827}.dashboard__month-nav__btn:disabled{opacity:.35;cursor:not-allowed}.dashboard__month-nav__label{font-size:.875rem;font-weight:600;color:#111827;min-width:7.5rem;text-align:center;padding:0 .25rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dashboard__chart-title__month,.dashboard__section-title__month{font-weight:400;color:#6b7280;font-size:.8125rem}.dashboard__budget-widget{display:flex;flex-direction:column;gap:.75rem}.dashboard__budget-widget--warning{border-color:#fca5a5;background-color:#fff7f7}.dashboard__budget-widget__header{display:flex;align-items:center;justify-content:space-between}.dashboard__budget-widget__title{font-size:.9375rem;font-weight:600;color:#111827;margin:0}.dashboard__budget-widget__pct{font-size:.875rem;font-weight:600;color:#10b77f}.dashboard__budget-widget__pct--over{color:#dc2626}.dashboard__budget-widget__amounts{display:flex;justify-content:space-between;font-size:.875rem;color:#374151;font-weight:500}.dashboard__budget-widget__amounts-label{color:#6b7280;font-weight:400}.dashboard__budget-widget__track{background-color:#f3f4f6;border-radius:9999px;height:.5rem;overflow:hidden}.dashboard__budget-widget__fill{height:100%;border-radius:9999px;background-color:#10b77f;transition:width .3s ease}.dashboard__budget-widget__fill--over{background-color:#dc2626}.dashboard__budget-widget__warning-text{font-size:.8125rem;color:#dc2626;font-weight:500;margin:0}.dashboard__budget-widget__empty{display:flex;align-items:center;gap:1rem}.dashboard__budget-widget__empty-text{font-size:.875rem;color:#6b7280;margin:0}.dashboard__budget-widget__link{font-size:.875rem;color:#10b77f;font-weight:500;text-decoration:none}.dashboard__budget-widget__link:hover{text-decoration:underline}.dashboard__charts{display:grid;gap:1.5rem}@media (min-width: 1024px){.dashboard__charts{grid-template-columns:repeat(2,1fr)}}.dashboard__chart-title{font-weight:600;color:#111827;margin-bottom:1rem}.dashboard__chart-loading{height:16rem;display:flex;align-items:center;justify-content:center}.dashboard__recent{display:flex;flex-direction:column;gap:0}.dashboard__recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dashboard__section-title{font-size:.9375rem;font-weight:600;color:#111827;margin:0}.dashboard__view-all{font-size:.8125rem;color:#10b77f;font-weight:500;text-decoration:none}.dashboard__view-all:hover{text-decoration:underline}.dashboard__recent-list{display:flex;flex-direction:column;max-height:320px;overflow-y:auto}.dashboard__recent-list::-webkit-scrollbar{width:4px}.dashboard__recent-list::-webkit-scrollbar-track{background:transparent}.dashboard__recent-list::-webkit-scrollbar-thumb{background-color:#e5e7eb;border-radius:9999px}.dashboard__recent-list::-webkit-scrollbar-thumb:hover{background-color:#d1d5db}.dashboard__recent-empty{font-size:.875rem;color:#9ca3af;text-align:center;padding:1.5rem 0;margin:0}.dashboard__recent-row{display:flex;align-items:center;gap:.875rem;padding:.75rem 0;border-bottom:1px solid #f9fafb;border-radius:5px;transition:.3s ease-in-out}.dashboard__recent-row:hover{background-color:#f1f1f1e0}.dashboard__recent-row:last-child{border-bottom:none}.dashboard__recent-row__icon{width:2.25rem;height:2.25rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;flex-shrink:0}.dashboard__recent-row__icon--income{background-color:#dcfce7;color:#16a34a}.dashboard__recent-row__icon--expense{background-color:#fee2e2;color:#dc2626}.dashboard__recent-row__info{flex:1 1 0%;min-width:0}.dashboard__recent-row__desc{font-size:.875rem;font-weight:500;color:#111827;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:.375rem}.dashboard__recent-row__recurring{display:inline-flex;align-items:center;color:#10b77f;flex-shrink:0}.dashboard__recent-row__meta{font-size:.75rem;color:#9ca3af;margin:.125rem 0 0}.dashboard__recent-row__amount{font-size:.875rem;font-weight:600;flex-shrink:0}.dashboard__recent-row__amount--income{color:#16a34a}.dashboard__recent-row__amount--expense{color:#dc2626}.dashboard__recent-row__actions{display:flex;align-items:center;gap:.125rem;flex-shrink:0;margin-left:.5rem;opacity:0;transition:opacity .15s}.dashboard__recent-row:hover .dashboard__recent-row__actions{opacity:1}.dashboard__recent-row__btn{padding:.3rem;border-radius:.375rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;display:flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s}.dashboard__recent-row__btn:hover{background-color:#e5e7eb;color:#4b5563}.dashboard__recent-row__btn--delete:hover{background-color:#fee2e2;color:#ef4444}.dashboard__budgets-mini{display:flex;flex-direction:column;gap:.75rem}.dashboard__budgets-mini__header{display:flex;align-items:center;justify-content:space-between}.dashboard__budgets-mini__empty{font-size:.875rem;color:#9ca3af;margin:0;padding:.5rem 0}.dashboard__budgets-mini__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.875rem}.dashboard__budgets-mini__item{display:flex;flex-direction:column;gap:.375rem}.dashboard__budgets-mini__item-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dashboard__budgets-mini__item-name{font-size:.875rem;font-weight:500;color:#374151}.dashboard__budgets-mini__item-amounts{font-size:.8125rem;font-weight:600;color:#374151;flex-shrink:0}.dashboard__budgets-mini__item-of{font-weight:400;color:#9ca3af}.dashboard__budgets-mini__bar-track{background-color:#f3f4f6;border-radius:9999px;height:.375rem;overflow:hidden}.dashboard__budgets-mini__bar-fill{height:100%;border-radius:9999px;background-color:#10b77f;transition:width .3s ease}.dashboard__budgets-mini__bar-fill--warning{background-color:#f59e0b}.dashboard__budgets-mini__bar-fill--danger{background-color:#dc2626}.dashboard__goals-mini{display:flex;flex-direction:column;gap:.75rem}.dashboard__goals-mini__header{display:flex;align-items:center;justify-content:space-between}.dashboard__goals-mini__empty{font-size:.875rem;color:#9ca3af;margin:0;padding:.5rem 0}.dashboard__goals-mini__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.875rem}.dashboard__goals-mini__item{display:flex;flex-direction:column;gap:.375rem}.dashboard__goals-mini__item-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.dashboard__goals-mini__item-info{display:flex;flex-direction:column;gap:.125rem;min-width:0}.dashboard__goals-mini__item-name{font-size:.875rem;font-weight:500;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard__goals-mini__item-deadline{font-size:.75rem;color:#9ca3af}.dashboard__goals-mini__item-amounts{font-size:.8125rem;font-weight:600;color:#374151;flex-shrink:0}.dashboard__goals-mini__item-of{font-weight:400;color:#9ca3af}.dashboard__goals-mini__bar-track{background-color:#f3f4f6;border-radius:9999px;height:.375rem;overflow:hidden}.dashboard__goals-mini__bar-fill{height:100%;border-radius:9999px;background-color:#10b77f;transition:width .3s ease}@media (min-width: 768px) and (max-width: 1023px){.dashboard__stats{grid-template-columns:repeat(2,1fr)}.dashboard__charts{grid-template-columns:1fr}}.transactions__header{display:flex;align-items:center;justify-content:space-between}.transactions__title{font-size:1.5rem;font-weight:700;color:#111827}.transactions__subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.transactions__filters{display:flex;flex-wrap:wrap;gap:.75rem}.transactions__list-card{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;padding:0;overflow:hidden}.transactions__loading{display:flex;align-items:center;justify-content:center;padding:4rem 0}.transactions__empty{text-align:center;padding:4rem 0}.transactions__empty-title{color:#6b7280;font-weight:500}.transactions__empty-sub{color:#9ca3af;font-size:.875rem;margin-top:.25rem}.transactions__rows{padding:.5rem}.transactions__rows>*+*{border-top:1px solid #f9fafb}.tx-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:.75rem;transition:background-color .15s}.tx-row:hover{background-color:#f9fafb}.tx-row__left{display:flex;align-items:center;gap:.75rem;min-width:0}.tx-row__icon{width:2.5rem;height:2.5rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tx-row__info{min-width:0}.tx-row__desc{font-weight:500;color:#111827;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.375rem}.tx-row__recurring{display:inline-flex;align-items:center;color:#10b77f;flex-shrink:0}.tx-row__meta{font-size:.75rem;color:#9ca3af;margin-top:.125rem}.tx-row__right{display:flex;align-items:center;gap:.75rem;flex-shrink:0;margin-left:1rem}.tx-row__edit-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;transition:background-color .15s,color .15s}.tx-row__edit-btn:hover{background-color:#e5e7eb;color:#4b5563}.tx-row__delete-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;transition:background-color .15s,color .15s}.tx-row__delete-btn:hover{background-color:#fee2e2;color:#ef4444}.budget-card__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.budget-card__category{display:flex;align-items:center;gap:.75rem}.budget-card__name{font-weight:600;color:#111827}.budget-card__date{font-size:.75rem;color:#9ca3af}.budget-card__delete{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;transition:background-color .15s,color .15s}.budget-card__delete:hover{background-color:#fee2e2;color:#ef4444}.budget-card__progress-section{margin-bottom:.75rem}.budget-card__progress-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280;margin-bottom:.375rem}.budget-card__progress-track{width:100%;background-color:#e5e7eb;border-radius:9999px;height:.625rem;overflow:hidden}.budget-card__progress-fill{height:.625rem;border-radius:9999px;transition:width .5s}.budget-card__footer{display:flex;align-items:center;justify-content:space-between}.budget-card__pct{font-size:.875rem;font-weight:700;color:#374151}.budgets__header{display:flex;align-items:center;justify-content:space-between}.budgets__title{font-size:1.5rem;font-weight:700;color:#111827}.budgets__subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.budgets__form-card{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #10b77f;padding:1.5rem}.budgets__form-title{font-weight:600;color:#111827;margin-bottom:1rem}.budgets__form-error{background-color:#fef2f2;border:1px solid #fee2e2;color:#dc2626;font-size:.875rem;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.budgets__form-grid{display:grid;gap:.75rem;align-items:end}@media (min-width: 640px){.budgets__form-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.budgets__form-grid{grid-template-columns:repeat(5,1fr)}}.budgets__loading{display:flex;align-items:center;justify-content:center;padding:4rem 0}.budgets__empty{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;padding:4rem 1.5rem;text-align:center}.budgets__empty-title{color:#6b7280;font-weight:500}.budgets__empty-sub{color:#9ca3af;font-size:.875rem;margin-top:.25rem}.budgets__grid{display:grid;gap:1rem}@media (min-width: 640px){.budgets__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.budgets__grid{grid-template-columns:repeat(3,1fr)}}.goal-card__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.75rem}.goal-card__info{flex:1 1 0%;min-width:0}.goal-card__title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.goal-card__badge{font-size:.75rem;background-color:#10b77f;color:#fff;padding:.125rem .5rem;border-radius:9999px;font-weight:500;white-space:nowrap}.goal-card__name{font-weight:600;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.goal-card__delete{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;flex-shrink:0;margin-left:.5rem;transition:background-color .15s,color .15s}.goal-card__delete:hover{background-color:#fee2e2;color:#ef4444}.goal-card__progress-section{margin-bottom:1rem}.goal-card__progress-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#6b7280;margin-bottom:.375rem}.goal-card__progress-track{width:100%;background-color:#e5e7eb;border-radius:9999px;height:.625rem;overflow:hidden}.goal-card__progress-fill{height:.625rem;border-radius:9999px;transition:width .5s;background-color:#10b77f}.goal-card__pct{text-align:right;font-size:.75rem;color:#9ca3af;margin-top:.25rem}.goal-card__form{display:flex;gap:.5rem}.goals__header{display:flex;align-items:center;justify-content:space-between}.goals__title{font-size:1.5rem;font-weight:700;color:#111827}.goals__subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.goals__form-card{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #10b77f;padding:1.5rem}.goals__form-title{font-weight:600;color:#111827;margin-bottom:1rem}.goals__form-error{background-color:#fef2f2;border:1px solid #fee2e2;color:#dc2626;font-size:.875rem;border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.goals__form-grid{display:grid;gap:.75rem;align-items:end}@media (min-width: 640px){.goals__form-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.goals__form-grid{grid-template-columns:repeat(4,1fr)}}.goals__loading{display:flex;align-items:center;justify-content:center;padding:4rem 0}.goals__empty{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;padding:4rem 1.5rem;text-align:center}.goals__empty-title{color:#6b7280;font-weight:500}.goals__empty-sub{color:#9ca3af;font-size:.875rem;margin-top:.25rem}.goals__grid{display:grid;gap:1rem}@media (min-width: 640px){.goals__grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1024px){.goals__grid{grid-template-columns:repeat(3,1fr)}}.profile{display:flex;flex-direction:column;gap:1.5rem;max-width:40rem}.profile__header{display:flex;flex-direction:column;gap:.25rem}.profile__title{font-size:1.5rem;font-weight:700;color:#111827;margin:0}.profile__subtitle{color:#6b7280;font-size:.875rem;margin:0}.profile__form{display:flex;flex-direction:column;gap:2rem}.profile__section{display:flex;flex-direction:column;gap:1rem}.profile__section-title{font-size:1rem;font-weight:600;color:#111827;margin:0;padding-bottom:.75rem;border-bottom:1px solid #f3f4f6}.profile__field{display:flex;flex-direction:column;gap:.25rem}.profile__input--disabled{background-color:#f9fafb;color:#9ca3af;cursor:not-allowed}.profile__field-hint{font-size:.75rem;color:#9ca3af;margin:0}.profile__actions{display:flex;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #f3f4f6}.profile__category-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.profile__category-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:.5rem;transition:background-color .15s}.profile__category-item:hover{background-color:#f9fafb}.profile__category-item__name{font-size:.875rem;color:#374151}.profile__category-item__actions{display:flex;align-items:center;gap:.25rem;opacity:0;transition:opacity .15s}.profile__category-item:hover .profile__category-item__actions{opacity:1}.profile__category-btn{padding:.3rem;border-radius:.375rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;display:flex;align-items:center;justify-content:center;transition:background-color .15s,color .15s}.profile__category-btn:hover{background-color:#e5e7eb;color:#4b5563}.profile__category-btn--delete:hover{background-color:#fee2e2;color:#ef4444}.profile__category-edit-row{display:flex;align-items:center;gap:.5rem;width:100%}.profile__category-edit-input{flex:1;font-size:.875rem}.profile__category-save-btn{font-size:.8125rem;padding:.375rem .75rem;white-space:nowrap}.profile__category-add-row{display:flex;gap:.5rem;margin-top:.75rem}.profile__category-add-input{flex:1}.profile__category-empty{font-size:.875rem;color:#9ca3af;padding:.5rem .75rem}.profile__error{background-color:#fef2f2;border:1px solid #fca5a5;color:#dc2626;font-size:.875rem;padding:.625rem .875rem;border-radius:.5rem}.profile__tags-loading{display:flex;justify-content:center;padding:1.5rem 0}.profile__tags-group{display:flex;flex-direction:column;gap:.5rem}.profile__tags-group+.profile__tags-group{margin-top:1.25rem}.profile__tags-group-title{font-size:.8125rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem}.profile__tags-table{width:100%;border-collapse:collapse;font-size:.875rem}.profile__tags-table th{text-align:left;padding:.375rem .625rem;color:#9ca3af;font-weight:500;font-size:.75rem;border-bottom:1px solid #f3f4f6}.profile__tag-row td{padding:.5rem .625rem;border-bottom:1px solid #f9fafb}.profile__tag-row:last-child td{border-bottom:none}.profile__tag-name{font-weight:500;color:#374151}.profile__tag-count{color:#6b7280}.profile__tag-total{font-weight:600;text-align:right}.profile__tag-total--income{color:#16a34a}.profile__tag-total--expense{color:#dc2626}@media (min-width: 768px) and (max-width: 1023px){.profile{max-width:100%}}.marked__header{display:flex;align-items:center;justify-content:space-between}.marked__title{font-size:1.5rem;font-weight:700;color:#111827}.marked__subtitle{color:#6b7280;font-size:.875rem;margin-top:.25rem}.marked__list-card{background-color:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid #f3f4f6;overflow:hidden}.marked__loading{display:flex;align-items:center;justify-content:center;padding:4rem 0}.marked__empty{text-align:center;padding:4rem 0}.marked__empty-title{color:#6b7280;font-weight:500}.marked__empty-sub{color:#9ca3af;font-size:.875rem;margin-top:.25rem}.marked__rows{padding:.5rem}.marked__rows>*+*{border-top:1px solid #f9fafb}.marked-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:.75rem;transition:background-color .15s}.marked-row:hover{background-color:#f9fafb}.marked-row__left{display:flex;align-items:center;gap:.75rem;min-width:0}.marked-row__icon{width:2.5rem;height:2.5rem;border-radius:.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}.marked-row__icon--income{background-color:#dcfce7;color:#16a34a}.marked-row__icon--expense{background-color:#fee2e2;color:#dc2626}.marked-row__info{min-width:0}.marked-row__desc{font-weight:500;color:#111827;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.375rem}.marked-row__meta{font-size:.75rem;color:#9ca3af;margin-top:.125rem}.marked-row__recurring{display:inline-flex;align-items:center;color:#10b77f;flex-shrink:0}.marked-row__right{display:flex;align-items:center;gap:.5rem;flex-shrink:0;margin-left:1rem}.marked-row__amount{font-weight:600;font-size:.875rem}.marked-row__amount--income{color:#16a34a}.marked-row__amount--expense{color:#dc2626}.marked-row__unmark-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#f59e0b;transition:background-color .15s,color .15s}.marked-row__unmark-btn:hover{background-color:#fef3c7;color:#d97706}.marked-row__edit-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;transition:background-color .15s,color .15s}.marked-row__edit-btn:hover{background-color:#e5e7eb;color:#4b5563}.marked-row__delete-btn{padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#9ca3af;transition:background-color .15s,color .15s}.marked-row__delete-btn:hover{background-color:#fee2e2;color:#ef4444}.sidebar{display:flex;flex-direction:column;height:100%;box-shadow:1px 1px 10px #0000000f;overflow:hidden}.logo-side{color:#fff;font-size:16px}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem;border-bottom:1px solid #f3f4f6;flex-shrink:0;min-height:4rem}.sidebar--collapsed .sidebar__header{justify-content:center;padding:1.25rem .75rem}.sidebar__logo{display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden}.sidebar__logo-icon{width:2rem;height:2rem;background-color:#10b77f;border-radius:.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar__logo-text{font-size:1.25rem;font-weight:700;color:#111827;white-space:nowrap}.sidebar__collapse-btn{display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#6b7280;flex-shrink:0;transition:background-color .15s,color .15s;min-width:2rem;min-height:2rem}.sidebar__collapse-btn:hover{background-color:#f3f4f6;color:#111827}.sidebar__close-btn{display:none;padding:.25rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;color:#6b7280;transition:background-color .15s;min-width:2rem;min-height:2rem;align-items:center;justify-content:center}.sidebar__close-btn:hover{background-color:#f3f4f6}@media (max-width: 767px){.sidebar__close-btn{display:flex}}.sidebar__nav{flex:1 1 0%;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.sidebar__nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:.75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;min-height:2.75rem}.sidebar--collapsed .sidebar__nav-link{justify-content:center;padding:.75rem;gap:0}.sidebar__nav-icon{width:1.25rem;height:1.25rem;flex-shrink:0}.sidebar__nav-label{white-space:nowrap}.sidebar__nav-link--active{background-color:#d1fae5;color:#10b77f}.sidebar__nav-link--inactive{color:#4b5563}.sidebar__nav-link--inactive:hover{background-color:#f3f4f6;color:#111827}.sidebar__footer{padding:.75rem;border-top:1px solid #f3f4f6;flex-shrink:0}.sidebar__logout-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border-radius:.75rem;font-size:.875rem;font-weight:500;color:#4b5563;background:transparent;border:none;cursor:pointer;transition:all .15s;min-height:2.75rem}.sidebar--collapsed .sidebar__logout-btn{justify-content:center;padding:.75rem;gap:0}.sidebar__logout-btn:hover{background-color:#fee2e2;color:#dc2626}.navbar{background-color:#fff;border-bottom:1px solid #f3f4f6;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;box-shadow:1px 1px 10px #0000000f}.navbar__left{display:flex;align-items:center;gap:1rem}.navbar__menu-btn{display:none;padding:.5rem;border-radius:.5rem;background:transparent;border:none;cursor:pointer;transition:background-color .15s}.navbar__menu-btn:hover{background-color:#f3f4f6}@media (max-width: 1023px){.navbar__menu-btn{display:block}}.navbar__menu-icon{width:1.25rem;height:1.25rem;color:#000}.navbar__mobile-logo{font-size:1.125rem;font-weight:700;color:#10b77f;display:none}@media (max-width: 1023px){.navbar__mobile-logo{display:block}}.navbar__right{display:flex;align-items:center;gap:1rem;margin-left:auto}.navbar__user{display:flex;align-items:center;gap:.75rem}.navbar__avatar{width:2rem;height:2rem;border-radius:9999px;background-color:#d1fae5;display:flex;align-items:center;justify-content:center}.navbar__avatar-initial{color:#10b77f;font-weight:600;font-size:.875rem}.navbar__username{font-size:.875rem;font-weight:500;color:#374151;display:none}@media (min-width: 640px){.navbar__username{display:block}}.navbar__logout{font-size:.875rem;color:#6b7280;font-weight:500;background:transparent;border:none;cursor:pointer;transition:color .15s}.navbar__logout:hover{color:#ef4444}.layout{display:flex;height:100vh;background-color:#f9fafb;overflow:hidden}.layout__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0006;z-index:20}@media (min-width: 1024px){.layout__overlay{display:none}}.layout__overlay--ipad{display:block;z-index:25}.layout__sidebar{position:fixed;top:0;bottom:0;left:0;z-index:30;width:16rem;background-color:#fff;border-right:1px solid #f3f4f6;transform:translate(-100%);transition:transform .2s,width .2s}.layout__sidebar--mobile-open{transform:translate(0)}@media (min-width: 1024px){.layout__sidebar{position:relative;transform:translate(0);flex-shrink:0}}.layout__sidebar--ipad{position:relative;transform:translate(0);flex-shrink:0;width:4.5rem;z-index:auto;transition:width .2s ease}.layout__sidebar--ipad-expanded{position:fixed;width:16rem;z-index:30}.layout__content{display:flex;flex-direction:column;flex:1 1 0%;min-width:0;overflow:hidden}.layout__main{flex:1 1 0%;overflow-y:auto;padding:1.5rem}.layout__content--blurred{filter:blur(6px);pointer-events:none;transition:filter .2s}:root{--primary: #10b77f;--primary-dark: #0a9e6e;--primary-light: #34d399;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-700: #374151;--gray-900: #111827;--red-500: #ef4444;--red-600: #dc2626;--green-100: #dcfce7;--green-800: #166534;--red-100: #fee2e2;--red-800: #991b1b}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:var(--gray-50);color:var(--gray-900);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn-primary{background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;border:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,opacity .2s ease}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--gray-700);padding:.5rem 1rem;border-radius:.5rem;font-weight:500;border:1px solid var(--gray-200);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,border-color .2s ease}.btn-secondary:hover{background:var(--gray-50)}.btn-danger{background:var(--red-500);color:#fff;padding:.5rem 1rem;border-radius:.5rem;font-weight:500;border:0;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease}.btn-danger:hover{background:var(--red-600)}.card{background:#fff;border-radius:1rem;box-shadow:0 1px 2px #0000000d;border:1px solid var(--gray-100);padding:1.5rem}.input{width:100%;padding:.5rem .75rem;border:1px solid var(--gray-200);border-radius:.5rem;font-size:.875rem;transition:box-shadow .15s ease,border-color .15s ease}.input:focus{outline:none;border-color:transparent;box-shadow:0 0 0 2px #10b77f59}.label{display:block;font-size:.875rem;font-weight:500;color:var(--gray-700);margin-bottom:.25rem}.badge-income,.badge-expense{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-income{background:var(--green-100);color:var(--green-800)}.badge-expense{background:var(--red-100);color:var(--red-800)}.spinner{border:4px solid var(--primary);border-top-color:transparent;border-radius:9999px;animation:spin 1s linear infinite}.spinner--sm{width:2rem;height:2rem}.spinner--md{width:2.5rem;height:2.5rem}@keyframes spin{to{transform:rotate(360deg)}}.flex{display:flex}.grid{display:grid}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.flex-1{flex:1 1 0%}.w-full{width:100%}.w-4{width:1rem}.h-4{height:1rem}.w-5{width:1.25rem}.h-5{height:1.25rem}.h-64{height:16rem}.gap-2{gap:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-4xl{font-size:2.25rem}.text-center{text-align:center}.font-medium{font-weight:500}.font-bold{font-weight:700}.rounded-sm{border-radius:.125rem}.text-white{color:#fff}.text-primary{color:var(--primary)}.text-gray-900{color:var(--gray-900)}.text-gray-700{color:var(--gray-700)}.text-gray-500{color:var(--gray-500)}.text-gray-600{color:#4b5563}.text-gray-400{color:var(--gray-400)}.text-green-600{color:#16a34a}.text-red-500{color:var(--red-500)}.bg-primary{background-color:var(--primary)}.bg-primary-light{background-color:var(--primary-light)}.bg-gray-50{background-color:var(--gray-50)}.border{border-width:1px;border-style:solid}.border-primary{border-color:var(--primary)}.border-gray-100{border-color:var(--gray-100)}.hover\:bg-gray-50:hover{background-color:var(--gray-50)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:ease}.mb-1{margin-bottom:.25rem}.mb-3{margin-bottom:.75rem}.mb-6{margin-bottom:1.5rem}.mt-6{margin-top:1.5rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}@media (min-width: 640px){.sm\:col-span-2{grid-column:span 2 / span 2}}@media (min-width: 1024px){.lg\:col-span-1{grid-column:span 1 / span 1}}
