*{box-sizing:border-box;font-family:inherit;margin:0;padding:0}body{-webkit-overflow-scrolling:touch;background:#fafafa;color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;min-height:100vh;overscroll-behavior:none;touch-action:manipulation}.container{margin:0 auto;max-width:1200px;padding:20px}.header{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 3px #0000001a;color:#1a1a1a;margin-bottom:2rem;padding:2rem}.header:before{background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:100%;pointer-events:none;position:absolute;right:-50%;top:-50%;width:100%}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.card,.form-group{margin-bottom:1rem}.form-group label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1a1a1a;font-family:inherit;font-size:1rem;padding:.75rem;transition:all .2s ease;width:100%}select{-webkit-appearance:none!important;appearance:none!important;background-color:#fff!important;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")!important;background-position:right .5rem center!important;background-repeat:no-repeat!important;background-size:1.5em 1.5em!important;border:1px solid #d1d5db!important;border-radius:8px!important;color:#1a1a1a!important;cursor:pointer!important;font-family:inherit!important;font-size:1rem!important;padding:.75rem!important;transition:all .2s ease!important}select:hover{border-color:#9ca3af!important}select:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")!important;border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61a!important;outline:none!important}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.btn{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:500;margin-right:.5rem;padding:.75rem 1rem;transition:all .2s ease}.btn:hover{background:#2563eb}.btn:active{transform:translateY(0)}.btn-active{background:#1f2937}.btn-danger{background:#ef4444}.btn-danger:hover{background:#dc2626}.transaction-list{max-height:400px;overflow-y:auto}.transaction-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:1rem;transition:all .2s ease}.transaction-item:hover{background:#f9fafb;box-shadow:0 1px 3px #0000001a}.transaction-item:last-child{border-bottom:none}.income{color:#10b981;font-weight:500}.expense{color:#f87171;font-weight:500}.ai-analysis{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:1rem;padding:1.5rem;white-space:pre-line}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}input,select,textarea{-webkit-user-select:text;user-select:text}button{-webkit-tap-highlight-color:rgba(0,0,0,.1);transition:all .2s ease}button:active{opacity:.8;transform:scale(.95)}@media (max-width:768px){.container{padding:.5rem}nav{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-radius:0 0 20px 20px;box-shadow:0 1px 3px #0000001a;display:flex;overflow-x:auto;padding:1rem 0;position:-webkit-sticky;position:sticky;scrollbar-width:none;top:0;z-index:100}nav::-webkit-scrollbar{display:none}nav button{font-size:.85rem;margin-right:.75rem;min-width:90px;padding:.75rem 1rem;white-space:nowrap}.card,nav button{border-radius:20px}.card{box-shadow:0 1px 3px #0000001a;margin-bottom:1rem;padding:1.5rem}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:.75rem}.transaction-item{background:#ffffffb3;border:1px solid #e5e7eb;border-radius:15px;margin-bottom:.75rem;padding:1.25rem}}@media (display-mode:standalone){body{padding-bottom:env(safe-area-inset-bottom);padding-top:env(safe-area-inset-top)}.mobile-header{padding-top:calc(1rem + env(safe-area-inset-top))}.main-content{padding-top:calc(70px + env(safe-area-inset-top))}}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;display:inline-block;height:20px;margin-right:.5rem;width:20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:480px){.header h1{font-size:1.5rem}.btn,.header p{font-size:.9rem}.btn{padding:.6rem 1rem}}.swipe-container{transition:transform .3s ease}.chart-selector,.month-selector{-webkit-appearance:none!important;appearance:none!important;background:#fff!important;border:1px solid #d1d5db!important;border-radius:8px!important;color:#374151!important;cursor:pointer!important;font-family:inherit!important;font-size:.875rem!important;min-width:140px!important;padding:.75rem 1rem!important;transition:all .2s ease!important}.chart-selector:hover,.month-selector:hover{border-color:#9ca3af!important}.chart-selector:focus,.month-selector:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f61a!important;outline:none!important}.chart-selector{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")!important;background-position:right .5rem center!important;background-repeat:no-repeat!important;background-size:1.5em 1.5em!important;padding-right:2.5rem!important}.chart-selector:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")!important}.app-layout{background:#fafafa;display:flex;min-height:100vh}.sidebar{background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;height:100vh;overflow-y:auto;position:fixed;width:280px;z-index:1000}.sidebar-header{border-bottom:1px solid #f3f4f6;padding:2rem 1.5rem 1rem}.sidebar-header h1{color:#1f2937;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.sidebar-header p{color:#6b7280;font-size:.875rem}.sidebar-nav{flex:1 1;padding:1rem 0}.nav-section{margin-bottom:2rem}.nav-section h3{color:#9ca3af;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin:0;padding:0 1.5rem .75rem;text-transform:uppercase}.nav-item{align-items:center;background:none;border:none;border-radius:0;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;margin:0;padding:.75rem 1.5rem;text-align:left;transition:all .2s ease;width:100%}.nav-item:hover{background:#f9fafb;color:#374151}.nav-item.active{background:#eff6ff;border-right:3px solid #2563eb;color:#2563eb;font-weight:500}.sidebar-footer{border-top:1px solid #f3f4f6;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.5rem}.install-btn{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease}.install-btn:hover{background:#059669}.logout-btn{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease}.logout-btn:hover{background:#dc2626}.main-content{display:flex;flex:1 1;flex-direction:column;margin-left:280px}.page-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.page-header h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.content-area{flex:1 1;overflow-y:auto;padding:2rem}.mobile-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:none;justify-content:space-between;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1001}.menu-toggle{background:none;border:none;cursor:pointer;font-size:1.5rem;padding:.5rem}.mobile-header h1{font-size:1.25rem;margin:0}.user-name{color:#6b7280;font-size:.875rem}.mobile-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1001}.mobile-menu{background:#fff;display:flex;flex-direction:column;height:100vh;left:0;overflow-y:auto;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease;width:280px;z-index:1002}.mobile-menu.open{transform:translateX(0)}.mobile-menu-header{border-bottom:1px solid #f3f4f6;padding:2rem 1.5rem 1rem}.mobile-menu-header h2{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.mobile-menu-header p{color:#6b7280;font-size:.875rem;margin:0}.mobile-menu-nav{flex:1 1;padding:1rem 0}.mobile-nav-item{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:1rem;padding:1rem 1.5rem;text-align:left;transition:all .2s ease;width:100%}.mobile-nav-item:hover{background:#f9fafb;color:#374151}.mobile-nav-item.active{background:#eff6ff;border-right:3px solid #2563eb;color:#2563eb;font-weight:500}.mobile-menu-footer{border-top:1px solid #f3f4f6;display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.5rem}.mobile-install-btn{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease}.mobile-install-btn:hover{background:#059669}.mobile-logout-btn{background:#ef4444;border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease}.mobile-logout-btn:hover{background:#dc2626}@media (max-width:1024px){.mobile-header{display:flex}.sidebar{display:none}.main-content{margin-left:0;padding-top:70px}.card,.content-area,.page-header{padding:1rem}.card{margin-bottom:1rem}.form-group input,.form-group select,.form-group textarea{font-size:16px}}@media (max-width:768px){.mobile-menu{width:100%}.page-header h2{font-size:1.25rem}.content-area{padding:.75rem}}.calendar{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:1rem}.calendar-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.5rem 0}.calendar-header h3{color:#1f2937;font-size:1.125rem;font-weight:600;margin:0}.calendar-nav{display:flex;gap:.5rem}.calendar-nav button{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.875rem;padding:.5rem;transition:all .2s ease}.calendar-nav button:hover{background:#f3f4f6;border-color:#d1d5db}.calendar-grid{grid-gap:1px;background:#e5e7eb;border-radius:8px;display:grid;gap:1px;grid-template-columns:repeat(7,1fr);overflow:hidden}.calendar-day-header{background:#f9fafb;color:#6b7280;font-size:.75rem;font-weight:500;letter-spacing:.05em;padding:.75rem .5rem;text-align:center;text-transform:uppercase}.calendar-day{background:#fff;border:1px solid #0000;color:#374151;cursor:pointer;display:flex;flex-direction:column;font-size:.875rem;justify-content:space-between;min-height:80px;padding:.5rem;text-align:left;transition:all .2s ease}.calendar-day:hover{background:#f3f4f6;border-color:#d1d5db}.calendar-day.other-month{background:#f9fafb;color:#9ca3af}.calendar-day.today{background:#dbeafe;border-color:#3b82f6;color:#1d4ed8;font-weight:600}.calendar-day.selected{background:#1f2937;border-color:#1f2937;color:#fff}.calendar-day.selected:hover{background:#374151}@media (max-width:768px){.calendar-grid{gap:0}.calendar-day{font-size:.75rem;min-height:60px;padding:.25rem}.calendar-day-header{font-size:.7rem;padding:.5rem .25rem}}.install-prompt{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#667eea,#764ba2);border:1px solid #ffffff1a;border-radius:20px;bottom:20px;box-shadow:0 20px 40px #0000004d;color:#fff;display:flex;justify-content:space-between;left:20px;padding:1.5rem;position:fixed;right:20px;z-index:1000}.install-prompt button{background:#ffffffe6;border:none;border-radius:12px;color:#667eea;cursor:pointer;font-family:inherit;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.install-prompt button:hover{background:#fff;transform:translateY(-2px)}
/*# sourceMappingURL=main.fe50f870.css.map*/