.auth-form{width:100%;max-width:400px;padding:2rem;background:#fff;border-radius:.75rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);animation:fadeInUp .5s ease-out;box-sizing:border-box}.auth-form__header{text-align:center;margin-bottom:1.5rem}.auth-form__header h1{font-size:1.75rem;font-weight:700;color:#111827;margin-bottom:.25rem}.auth-form__header p{font-size:.875rem;color:#4b5563}.auth-form__error{padding:.5rem 1rem;background:rgba(239,68,68,.1);border-left:3px solid #ef4444;border-radius:.375rem;color:#ef4444;font-size:.875rem;margin-bottom:1rem;animation:shake .4s ease-in-out}.auth-form__fields{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.auth-form__fields,.auth-form__submit{width:100%;box-sizing:border-box}.auth-form__footer{text-align:center;font-size:.875rem;color:#4b5563;margin-top:1rem}.auth-form__footer a{color:#6366f1;font-weight:600;text-decoration:none;transition:all .15s cubic-bezier(.4,0,.2,1)}.auth-form__footer a:hover{color:#4f46e5;text-decoration:underline}.password-strength{margin-top:.25rem;width:100%;box-sizing:border-box}.password-strength__bar{height:4px;width:100%;background:#e5e7eb;border-radius:9999px;overflow:hidden;margin-bottom:.25rem;box-sizing:border-box}.password-strength__fill{height:100%;transition:all .3s ease;border-radius:9999px}.password-strength__text{font-size:.75rem;font-weight:500;transition:color .3s ease}.password-strength__bar--weak .password-strength__fill{background:#ef4444}.password-strength__bar--fair .password-strength__fill{background:#f59e0b}.password-strength__bar--good .password-strength__fill{background:#3b82f6}.password-strength__bar--strong .password-strength__fill{background:#10b981}.password-strength__text--weak{color:#ef4444}.password-strength__text--fair{color:#f59e0b}.password-strength__text--good{color:#3b82f6}.password-strength__text--strong{color:#10b981}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.budget-card{display:flex;flex-direction:column;gap:.875rem}.budget-card__header{display:flex;justify-content:space-between;align-items:center}.budget-card__header h3{font-size:1rem;font-weight:600;margin:0;color:#111827}.budget-card__badge{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:#6b7280;background:#f3f4f6;padding:.25rem .5rem;border-radius:.375rem}.budget-card__badge span{line-height:1}.budget-card__period{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#4b5563;padding:.375rem .5rem;background:#f9fafb;border-radius:.375rem;width:-moz-fit-content;width:fit-content}.budget-card__period svg{flex-shrink:0}.budget-card__balance{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:linear-gradient(135deg,#6366f1,#4f46e5);border-radius:.5rem;color:#fff}.budget-card__balance span{font-size:.7rem;opacity:.9;display:block;margin-bottom:.25rem}.budget-card__balance h2{font-size:1.25rem;font-weight:700;margin:0}.budget-card__balance h2.negative{opacity:.85}.budget-card__stats{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.budget-card__stats .stat{display:flex;align-items:center;gap:.5rem;padding:.625rem;background:#f9fafb;border-radius:.375rem}.budget-card__stats .stat .icon-success{color:#10b981}.budget-card__stats .stat .icon-danger{color:#ef4444}.budget-card__stats .stat span{font-size:.7rem;color:#6b7280;display:block;margin-bottom:.125rem}.budget-card__stats .stat strong{font-size:.8rem;color:#111827;font-weight:600}.budget-card__actions{margin-top:.5rem}.budget-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}@media(max-width:1024px){.budget-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.budget-summary{grid-template-columns:repeat(2,1fr);gap:.5rem}}.create-budget-form{display:flex;flex-direction:column;gap:1rem}.create-budget-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.create-budget-form .form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.edit-budget-modal{display:flex;flex-direction:column;gap:1rem}.edit-budget-modal__actions{display:flex;justify-content:flex-end;gap:.75rem}.delete-budget{display:flex;flex-direction:column;gap:1rem}.delete-budget__warning{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:rgba(239,68,68,.1);border-left:2px solid #ef4444;border-radius:.5rem;color:#ef4444}.delete-budget__warning p{margin:0;font-size:.875rem}.delete-budget__warning p strong{font-weight:600}.delete-budget__info{font-size:.875rem;color:#4b5563;margin:0}.delete-budget__actions{display:flex;gap:.75rem;justify-content:flex-end}.archive-budget{display:flex;flex-direction:column;gap:1rem}.archive-budget__warning{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:rgba(99,102,241,.1);border-left:2px solid #6366f1;border-radius:.5rem;color:#6366f1}.archive-budget__warning p{margin:0;font-size:.875rem}.archive-budget__warning p strong{font-weight:600}.archive-budget__info{font-size:.875rem;color:#4b5563;margin:0}.archive-budget__actions{display:flex;gap:.75rem;justify-content:flex-end}.transaction-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);gap:.75rem}.transaction-item__left{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0}.transaction-item__icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:.375rem;flex-shrink:0}.transaction-item__icon--income{background:rgba(16,185,129,.1);color:#10b981}.transaction-item__icon--expense{background:rgba(239,68,68,.1);color:#ef4444}.transaction-item__details{flex:1;min-width:0}.transaction-item__name{font-size:.875rem;font-weight:500;margin:0 0 .125rem;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-item__meta{font-size:.75rem;color:#6b7280;margin:0}.transaction-item__right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.transaction-item__amount{font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums}.transaction-item__amount--income{color:#10b981}.transaction-item__amount--expense{color:#ef4444}.transaction-item__actions{display:flex;gap:.25rem}.transaction-item__action{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0);border:none;border-radius:.375rem;color:#4b5563;cursor:pointer;transition:all .2s}.transaction-item__action:hover{background:#f3f4f6;color:#111827}.transaction-list{display:flex;flex-direction:column;gap:.5rem}.transaction-list-empty{text-align:center;padding:3rem 1rem;color:#4b5563;background:#fff;border-radius:.5rem;border:2px dashed #e5e7eb}.transaction-list-empty p{margin:0;font-size:.875rem}.add-transaction-modal{display:flex;flex-direction:column;gap:1rem}.add-transaction-modal__fields{display:flex;flex-direction:column;gap:.875rem}.add-transaction-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:640px){.add-transaction-modal__row{grid-template-columns:1fr}}.add-transaction-modal__textarea-wrapper{display:flex;flex-direction:column;gap:.25rem}.add-transaction-modal__label{font-size:.875rem;font-weight:500;color:#111827}.add-transaction-modal__textarea{width:100%;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;resize:vertical;outline:none;transition:all .2s;box-sizing:border-box}.add-transaction-modal__textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.add-transaction-modal__actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.edit-transaction-modal{display:flex;flex-direction:column;gap:1rem}.edit-transaction-modal__fields{display:flex;flex-direction:column;gap:.875rem}.edit-transaction-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}@media(max-width:640px){.edit-transaction-modal__row{grid-template-columns:1fr}}.edit-transaction-modal__textarea-wrapper{display:flex;flex-direction:column;gap:.25rem}.edit-transaction-modal__label{font-size:.875rem;font-weight:500;color:#111827}.edit-transaction-modal__textarea{width:100%;padding:.5rem .75rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;resize:vertical;outline:none;transition:all .2s;box-sizing:border-box}.edit-transaction-modal__textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}.edit-transaction-modal__actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.5rem}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:400;padding:1rem;animation:fadeIn .2s ease-out}.modal{background:#fff;border-radius:.75rem;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);max-height:90vh;width:100%;display:flex;flex-direction:column;animation:slideInUp .3s ease-out}.modal--sm{max-width:400px}.modal--md{max-width:600px}.modal--lg{max-width:800px}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal__header h2{font-size:1.25rem;font-weight:700}.modal__close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:rgba(0,0,0,0);border:none;border-radius:.375rem;color:#4b5563;cursor:pointer;transition:all .2s}.modal__close:hover{background:#f3f4f6;color:#111827}.modal__content{padding:1.5rem;overflow-y:auto}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:500;line-height:1;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.button:disabled{cursor:not-allowed;opacity:.5}.button:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.button--primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:500;line-height:1;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.button--primary:disabled{cursor:not-allowed;opacity:.5}.button--primary:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.button--primary{background:#6366f1;color:#fff}.button--primary:hover:not(:disabled){background:#4f46e5;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.button--primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}.button--secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:500;line-height:1;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.button--secondary:disabled{cursor:not-allowed;opacity:.5}.button--secondary:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.button--secondary{background:#f3f4f6;color:#111827}.button--secondary:hover:not(:disabled){background:#e5e7eb}.button--danger{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:500;line-height:1;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.button--danger:disabled{cursor:not-allowed;opacity:.5}.button--danger:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.button--danger{background:#ef4444;color:#fff}.button--danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.button--ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1.5rem;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;font-weight:500;line-height:1;border:none;border-radius:.5rem;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);text-decoration:none;white-space:nowrap}.button--ghost:disabled{cursor:not-allowed;opacity:.5}.button--ghost:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.button--ghost{background:rgba(0,0,0,0);color:#111827}.button--ghost:hover:not(:disabled){background:#f3f4f6}.button--sm{padding:.25rem 1rem;font-size:.875rem}.button--md{padding:.5rem 1.5rem;font-size:1rem}.button--lg{padding:1rem 2rem;font-size:1.125rem}.button__icon{display:inline-flex;align-items:center;justify-content:center;font-size:1.25em}.button__spinner,.button__text{display:inline-block}.button__spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,0);border-top-color:currentcolor;border-radius:9999px;animation:spin .6s linear infinite}.delete-transaction-modal{display:flex;flex-direction:column;gap:1rem}.delete-transaction-modal__message{font-size:.875rem;color:#111827;margin:0}.delete-transaction-modal__message strong{color:#ef4444;font-weight:600}.delete-transaction-modal__actions{display:flex;gap:.75rem;justify-content:flex-end}.summary-card{display:flex;align-items:center;gap:.625rem;padding:.75rem;background:#fff;border-radius:.5rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}@media(max-width:640px){.summary-card{padding:.625rem;gap:.5rem}}.summary-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:.375rem;flex-shrink:0}@media(max-width:640px){.summary-card__icon{width:28px;height:28px}.summary-card__icon svg{width:14px;height:14px}}.summary-card--success .summary-card__icon{background:rgba(16,185,129,.1);color:#10b981}.summary-card--danger .summary-card__icon{background:rgba(239,68,68,.1);color:#ef4444}.summary-card--info .summary-card__icon{background:rgba(99,102,241,.1);color:#6366f1}.summary-card__content{flex:1;min-width:0}.summary-card__content p{font-size:.65rem;color:#6b7280;margin:0 0 .125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.summary-card__content p{font-size:.6rem}}.summary-card__content h3{font-size:1rem;font-weight:700;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.summary-card__content h3{font-size:.875rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInLeft{0%{transform:translateX(-20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInRight{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scaleOut{0%{transform:scale(1);opacity:1}to{transform:scale(.95);opacity:0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalContentIn{0%{transform:scale(.95) translateY(-20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.animate-fade-in{animation:fadeIn .2s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-out{animation:fadeOut .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-up{animation:slideInUp ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-down{animation:slideInDown ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-left{animation:slideInLeft ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-slide-in-right{animation:slideInRight ease-out .2s cubic-bezier(.4,0,.2,1) forwards}.animate-scale-in{animation:scaleIn ease-out .15s cubic-bezier(.4,0,.2,1) forwards}.animate-scale-out{animation:scaleOut ease-in .15s cubic-bezier(.4,0,.2,1) forwards}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-bounce{animation:bounce 1s infinite}.stagger-children>*{opacity:0;animation:slideInUp ease-out .3s cubic-bezier(.4,0,.2,1) forwards}.stagger-children>:first-child{animation-delay:.05s}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.35s}.stagger-children>:nth-child(8){animation-delay:.4s}.stagger-children>:nth-child(9){animation-delay:.45s}.stagger-children>:nth-child(10){animation-delay:.5s}.stagger-children>:nth-child(11){animation-delay:.55s}.stagger-children>:nth-child(12){animation-delay:.6s}.stagger-children>:nth-child(13){animation-delay:.65s}.stagger-children>:nth-child(14){animation-delay:.7s}.stagger-children>:nth-child(15){animation-delay:.75s}.stagger-children>:nth-child(16){animation-delay:.8s}.stagger-children>:nth-child(17){animation-delay:.85s}.stagger-children>:nth-child(18){animation-delay:.9s}.stagger-children>:nth-child(19){animation-delay:.95s}.stagger-children>:nth-child(20){animation-delay:1s}.hover-lift{transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1)}.hover-scale{transition:transform .15s cubic-bezier(.4,0,.2,1)}.hover-scale:hover{transform:scale(1.05)}.hover-glow{position:relative;transition:box-shadow .2s cubic-bezier(.4,0,.2,1)}.hover-glow:hover{box-shadow:0 0 20px rgba(99,102,241,.3)}.hover-shine{position:relative;overflow:hidden}.hover-shine:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.hover-shine:hover:before{left:100%}.skeleton{background:linear-gradient(90deg,#e5e7eb,#f3f4f6 50%,#e5e7eb);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:.5rem}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;border-radius:50%;background:currentColor;animation:bounce 1.4s ease-in-out infinite both}.loading-dots span:first-child{animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.transition-all{transition:all .2s cubic-bezier(.4,0,.2,1)}.transition-colors{transition:background-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1)}.transition-transform{transition:transform .2s cubic-bezier(.4,0,.2,1)}.transition-opacity{transition:opacity .2s cubic-bezier(.4,0,.2,1)}.filters-search{position:relative;width:100%}.filters-search svg{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#6b7280;pointer-events:none}.filters-search input{width:100%;padding:.5rem .75rem .5rem 2.5rem;border:1px solid #e5e7eb;border-radius:.5rem;font-size:.875rem;background:#fff;outline:none;transition:all .2s;box-sizing:border-box}.filters-search input::-moz-placeholder{color:#6b7280}.filters-search input::placeholder{color:#6b7280}.filters-search input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.1)}@media(max-width:768px){.filters-search input{font-size:.8125rem}}.filters-row{display:contents}@media(max-width:768px){.filters-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;grid-column:1}}