body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.auth-page-bg{background-color:#e3f2fd}.auth-card{border:none;border-radius:.75rem;max-width:450px;width:100%}.auth-card a{color:#1976d2;text-decoration:none}.auth-card a:hover{text-decoration:underline}.btn-primary{background-color:#1976d2;border-color:#1976d2;padding-bottom:.75rem;padding-top:.75rem}.btn-primary:hover{background-color:#1565c0;border-color:#1565c0}.main-header{align-items:center;background-color:#fff;box-shadow:0 2px 5px #0000001a;display:flex;justify-content:space-between;padding:20px}.logo a{color:#2c3e50;font-size:24px;font-weight:700;text-decoration:none}.main-nav ul{display:flex;list-style:none;margin:0;padding:0}.main-nav li{margin:0 15px}.main-nav a{color:#34495e;font-weight:500;padding:5px;text-decoration:none;transition:color .3s}.main-nav a:hover{color:#3498db}.main-nav a.active{color:#007bff;font-weight:700;position:relative}.main-nav a.active:after{background-color:#007bff;bottom:-3px;content:"";height:2px;left:0;position:absolute;width:100%}.header-actions{align-items:center;display:flex}.header-actions .logout-button{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .3s}.header-actions .logout-button:hover{background-color:#c0392b}.user-greeting{border-radius:4px;font-weight:500;margin-right:15px;padding:8px 12px}.user-menu{cursor:pointer;position:relative}.user-menu:hover .user-greeting{background-color:#0000000d}.dropdown-menu{background-color:#fff;border:none;border-radius:4px;box-shadow:0 4px 12px #0000001a;margin-top:8px;min-width:150px;overflow:hidden;position:absolute;right:0;top:100%;z-index:1000}.dropdown-item{background:none;border:none;color:#333;cursor:pointer;display:block;font-size:14px;padding:10px 15px;text-align:left;text-decoration:none;transition:background-color .2s;width:100%}.dropdown-item:hover{background-color:#f5f5f5}.dropdown-item:active{background-color:#1976d2;color:#fff!important}.navbar{background-color:#fff;box-shadow:0 2px 4px #0000001a}.navbar-brand{color:#1976d2!important;font-size:1.5rem;font-weight:700}.nav-link{border-radius:4px;color:#424242!important;font-weight:500;padding:.5rem 1rem!important;transition:background-color .2s ease,color .2s ease}.nav-link:hover{background-color:#1976d20d;color:#1976d2!important}.nav-link.active{background-color:#1976d21a;color:#1976d2!important;font-weight:700}.btn-logout{background-color:#e57373;border-color:#e57373;color:#fff}.btn-logout:hover{background-color:#ef5350;border-color:#ef5350}@media (max-width:768px){.main-header{flex-direction:column;padding:15px}.logo{margin-bottom:15px}.main-nav ul{flex-wrap:wrap;justify-content:center}.main-nav li{margin:5px 10px}.header-actions{margin-top:15px}}.main-footer{background-color:#263238;color:#cfd8dc;font-size:.9rem;margin-top:auto;padding:2rem 0}.footer-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1140px;padding:0 15px}.footer-content p{margin:0}.footer-links{display:flex}.footer-links a{color:#90a4ae;margin-left:1.5rem;text-decoration:none;transition:color .3s}.footer-links a:hover{color:#b0bec5}@media (max-width:768px){.footer-content{flex-direction:column;text-align:center}.footer-links{justify-content:center;margin-top:1rem}.footer-links a{margin:0 .75rem}}.home-container{margin:0 auto;max-width:1200px;padding:20px}header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.logout-button{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:8px 16px;transition:background-color .3s}.logout-button:hover{background-color:#c82333}.user-info{background-color:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:20px}.loading{align-items:center;color:#7f8c8d;display:flex;font-size:20px;height:100vh;justify-content:center}.page-container{display:flex;flex-direction:column;min-height:100vh}.page-container-home{background-color:#f8f9fa}.content-container{flex:1 1;margin:0 auto;max-width:1200px;padding:20px;width:100%}.dashboard-container h1{color:#2c3e50;margin-bottom:30px}.dashboard-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:30px}.summary-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.summary-card .card-title{font-size:.9rem;font-weight:500}.summary-card h3{color:#7f8c8d;font-size:16px;margin-top:0}.balance,.expenses,.income{font-size:28px;font-weight:700;margin:10px 0}.income{color:#27ae60}.expenses{color:#e74c3c}.trend{font-size:14px}.trend.positive{color:#27ae60}.trend.negative{color:#e74c3c}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:3fr 2fr}.dashboard-card{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px}.dashboard-card h2{color:#2c3e50;font-size:20px;margin-bottom:20px;margin-top:0}.transaction-list{margin-bottom:20px}.transaction-item{border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;padding:15px 0}.transaction-info p{margin:0}.transaction-name{font-weight:500}.transaction-date{color:#7f8c8d;font-size:14px;margin-top:5px}.transaction-amount{font-weight:700}.transaction-amount.income{color:#27ae60}.transaction-amount.expense{color:#e74c3c}.view-all-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;display:block;padding:10px;transition:background-color .3s;width:100%}.view-all-button:hover{background-color:#2980b9}.budget-categories{display:flex;flex-direction:column;gap:15px}.budget-category,.category-header{margin-bottom:5px}.category-header{display:flex;font-size:14px;justify-content:space-between}.progress-bar{background-color:#ecf0f1;border-radius:5px;height:10px;overflow:hidden}.progress{background-color:#3498db;border-radius:5px;height:100%}.progress.danger{background-color:#e74c3c}.list-group-item{border-left:0;border-right:0}.list-group-item:first-child{border-top:0}.list-group-item:last-child{border-bottom:0}.text-success-emphasis{color:#0a3622!important}.text-danger-emphasis{color:#58151c!important}@media (max-width:768px){.dashboard-grid{grid-template-columns:1fr}}.modal-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:500px;padding:20px;position:relative;width:90%}.modal-close-button{background:none;border:none;cursor:pointer;font-size:1.5rem;position:absolute;right:10px;top:10px}.main-content{flex:1 1;min-height:calc(100vh - 120px);padding-top:80px;width:100%}.transactions-container{margin:0 auto;max-width:1200px;padding:20px}.transactions-summary{display:flex;justify-content:space-between;margin-bottom:30px}.summary-item{border-radius:8px;box-shadow:0 2px 4px #0000001a;flex:1 1;margin:0 10px;padding:15px;text-align:center}.summary-item h3{margin-top:0}.summary-item p{font-size:24px;font-weight:700;margin-bottom:0}.income{background-color:#e3f9e5;color:#0d8a22}.expenses{background-color:#ffebee;color:#c62828}.balance{background-color:#e3f2fd;color:#1565c0}.transaction-actions{display:flex;justify-content:space-between;margin-bottom:20px}.primary-button{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 20px;transition:background-color .3s}.primary-button:hover{background-color:#2980b9}.filter-select{border:1px solid #ddd;border-radius:4px;min-width:200px;padding:8px}.transactions-table{border-collapse:collapse;box-shadow:0 2px 8px #0000001a;margin-top:20px;width:100%}.transactions-table th{background-color:#f8f9fa;border-bottom:2px solid #ecf0f1;color:#2c3e50;font-weight:600;padding:12px;text-align:left}.transactions-table td{border-bottom:1px solid #ecf0f1;padding:12px}.income-row{background-color:#27ae600d}.expense-row{background-color:#e74c3c0d}.income-amount{color:#27ae60;font-weight:600}.expense-amount{color:#e74c3c;font-weight:600}.action-button{border:none;border-radius:4px;cursor:pointer;font-size:12px;margin-right:5px;padding:5px 10px}.action-button.edit{background-color:#3498db;color:#fff}.action-button.delete{background-color:#e74c3c;color:#fff}.action-button.edit:hover{background-color:#2980b9}.action-button.delete:hover{background-color:#c0392b}.add-button{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px}.add-button:hover{background-color:#388e3c}.transaction-form-container{background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;padding:20px}.transaction-form{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.form-group{margin-bottom:15px}.form-group label{display:block;font-weight:500;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;font-size:16px;padding:10px;width:100%}.form-group textarea{height:100px;resize:vertical}.form-actions{display:flex;gap:10px;grid-column:1/-1;justify-content:flex-end;margin-top:10px}.save-button{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:10px 20px}.save-button:hover{background-color:#1976d2}.cancel-button{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;color:#333;cursor:pointer;font-size:16px;padding:10px 20px}.cancel-button:hover{background-color:#e0e0e0}.transactions-list{overflow-x:auto;width:100%}table{border-collapse:collapse;margin-top:20px;width:100%}thead{background-color:#f5f5f5}td,th{border-bottom:1px solid #ddd;padding:12px 15px;text-align:left}th{font-weight:600}tr.income .amount{color:#0d8a22}tr.expense .amount{color:#c62828}.actions{display:flex;gap:5px}.delete-button,.edit-button{border:none;border-radius:4px;cursor:pointer;padding:5px 10px}.edit-button{background-color:#2196f3;color:#fff}.edit-button:hover{background-color:#1976d2}.delete-button{background-color:#f44336;color:#fff}.delete-button:hover{background-color:#d32f2f}.loading,.no-transactions{color:#666;font-size:18px;padding:30px;text-align:center}.error-message{background-color:#ffebee;border-radius:4px;color:#c62828;margin-bottom:20px;padding:15px}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{border-bottom:1px solid #ddd;padding:20px}.app-footer,.app-header{background-color:#f0f0f0;text-align:center}.app-footer{border-top:1px solid #ddd;margin-top:auto;padding:10px}@media (max-width:768px){.transaction-actions{flex-direction:column;gap:10px}.transactions-table{display:block;overflow-x:auto}.transactions-summary{flex-direction:column}.summary-item{margin:5px 0}.transaction-form{grid-template-columns:1fr}}.page-container-transactions{background-color:#f8f9fa}.summary-card{border:none;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.summary-card:hover{box-shadow:0 4px 15px #0000001a!important;transform:translateY(-3px)}.summary-card-income{background-color:#e8f5e9}.summary-card-expenses{background-color:#ffebee}.summary-card-balance{background-color:#e3f2fd}.table th{color:#343a40;font-weight:600}.table td{vertical-align:middle}.table-hover tbody tr:hover{background-color:#0000000a}.badge{font-size:.8rem}.modal-content{border:none;border-radius:.5rem}.modal-header{border-bottom:none}.modal-footer{border-top:none}.form-label{font-weight:500;margin-bottom:.25rem}.reports-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));margin-top:20px}.report-card{background-color:#fff;border:none;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:20px;transition:transform .2s ease-in-out,box-shadow .2s ease-in-out}.report-card:hover{box-shadow:0 4px 15px #0000001a!important;transform:translateY(-3px)}.report-card h2{color:#2c3e50;font-size:18px;margin-top:0}.chart-container{background-color:#f8f9fa;height:200px;margin:15px 0}.report-card p{color:#7f8c8d;margin-bottom:0}.report-filters{background-color:#f8f9fa;border-radius:8px;gap:15px;margin-bottom:20px;padding:20px}.filter-group,.report-filters{display:flex;flex-direction:column}.filter-group{gap:10px}.filter-group h3{color:#2c3e50;font-size:16px;margin:0}.period-buttons{display:flex;gap:10px}.period-buttons button{background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 16px;transition:all .2s}.period-buttons button.active{background-color:#3498db;border-color:#3498db;color:#fff}.period-buttons button:hover:not(.active){background-color:#f0f0f0}.date-range-picker{display:flex;gap:15px}.filter-field{display:flex;flex-direction:column;gap:5px}.filter-field label{color:#2c3e50;font-size:14px}.filter-field input,.user-select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.date-range-picker input,.user-select select{-webkit-appearance:none;appearance:none;background-clip:padding-box;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);color:var(--bs-body-color);display:block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.page-container-reports{background-color:#f8f9fa}.report-filters-card{border:none}.card-header.bg-info-subtle{background-color:#cff4fc!important;border-bottom:1px solid #b6effb}@media (max-width:768px){.reports-grid{grid-template-columns:1fr}.date-range-picker,.period-buttons{flex-direction:column}}.page-container-profile{background-color:#f8f9fa}dl.row dt{color:#495057;font-weight:600}.card .list-group-flush .list-group-item{border-left:0;border-right:0}.card .list-group-flush .list-group-item:first-child{border-top:0}.card .list-group-flush .list-group-item:last-child{border-bottom:0}.list-group-item:nth-child(odd){background-color:#00000005}.vh-100{min-height:100vh}.card-header.bg-primary-subtle{background-color:#cfe2ff!important;border-bottom:1px solid #b6d4fe}.card-header.bg-success-subtle{background-color:#d1e7dd!important;border-bottom:1px solid #badbcc}.card-header.bg-warning-subtle{background-color:#fff3cd!important;border-bottom:1px solid #ffe69c}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ai-assistant-container{align-items:flex-end;bottom:30px;display:flex;flex-direction:column;font-family:var(--bs-body-font-family);position:fixed;right:30px;z-index:1000}.ai-assistant-button{align-items:center;background-color:var(--bs-primary);border:none;border-radius:50%;box-shadow:0 6px 20px #00000026;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:60px;justify-content:center;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:60px}.ai-assistant-button:hover{background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);box-shadow:0 10px 25px #0003;transform:scale(1.1) translateY(-2px)}.ai-assistant-button:active{transform:scale(.95)}.ai-assistant-panel{background-color:#fff;border:1px solid var(--bs-border-color-translucent);border-radius:.75rem;bottom:75px;display:none;flex-direction:column;height:600px;max-height:600px;opacity:0;overflow:hidden;padding:1rem;position:absolute;right:0;transform:translateY(20px);transition:all .3s cubic-bezier(.68,-.55,.27,1.55);width:350px}.ai-assistant-panel.active{animation:slideUp .3s forwards;display:flex;opacity:1;transform:translateY(0)}.ai-assistant-header{align-items:center;border-bottom:1px solid var(--bs-border-color);display:flex;justify-content:space-between;margin-bottom:.75rem;padding-bottom:.75rem}.ai-assistant-header h3{color:var(--bs-body-color);font-size:1.1rem;font-weight:600}.ai-assistant-content{flex-grow:1;margin-bottom:1rem;overflow-y:auto;padding-right:8px;scroll-behavior:smooth}.ai-assistant-content::-webkit-scrollbar{width:6px}.ai-assistant-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.ai-assistant-content::-webkit-scrollbar-thumb{background:#d0d0d0;border-radius:10px}.ai-assistant-content::-webkit-scrollbar-thumb:hover{background:#b8b8b8}.ai-assistant-welcome{padding-bottom:10px}.ai-assistant-welcome p{color:var(--bs-secondary-color);font-size:.9rem;line-height:1.5;margin-bottom:1rem}.ai-assistant-message{word-wrap:break-word;border-radius:.75rem;box-shadow:var(--bs-box-shadow-sm);font-size:.9rem;line-height:1.5;margin-bottom:.75rem;max-width:85%;padding:.6rem .9rem;position:relative}.ai-assistant-message p{margin-bottom:.25rem}.ai-assistant-message p:last-child{margin-bottom:0}.ai-assistant-message.user{align-self:flex-end;background-color:var(--bs-primary);border-bottom-right-radius:4px;color:#fff;margin-left:auto}.ai-assistant-message.assistant{align-self:flex-start;background-color:var(--bs-light);border:1px solid var(--bs-border-color-translucent);border-bottom-left-radius:4px;color:var(--bs-body-color);margin-right:auto}.ai-nav-suggestion{font-size:.85rem;margin-bottom:.25rem!important;text-align:left!important}.ai-assistant-input{border-top:1px solid var(--bs-border-color);display:flex;gap:.5rem;margin-top:auto;padding-top:.75rem}.typing-indicator{align-items:center;display:flex;height:20px;justify-content:flex-start;padding:0 5px}.typing-indicator span{animation:bounce 1.5s ease-in-out infinite;background:var(--bs-primary);border-radius:50%;display:inline-block;height:8px;margin:0 2px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}@media (max-width:768px){.ai-assistant-container{bottom:20px;right:20px}.ai-assistant-button{font-size:20px;height:50px;width:50px}.ai-assistant-panel{bottom:65px;height:70vh;max-height:70vh;max-width:350px;width:calc(100vw - 40px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-assistant-message{animation:fadeIn .3s forwards}.ai-assistant-tip{background-color:var(--bs-secondary-bg);border-left:3px solid var(--bs-primary);border-radius:0 var(--bs-border-radius) var(--bs-border-radius) 0;color:var(--bs-secondary-color);font-size:.8rem;font-style:italic;margin-bottom:.75rem;padding:.5rem .75rem}