body{background-color:#f5f5f5;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.app-layout{background-color:#f5f5f5;display:flex;min-height:100vh;position:relative}.mobile-menu-btn{background:#2c3e50;border:none;border-radius:4px;cursor:pointer;display:none;flex-direction:column;height:40px;justify-content:space-around;left:15px;padding:8px;position:fixed;top:15px;width:40px;z-index:1001}.hamburger{background-color:#fff;border-radius:2px;height:3px;transition:all .3s ease;width:24px}.sidebar-overlay{background-color:#00000080;display:none;height:100%;left:0;position:fixed;top:0;width:100%;z-index:999}.sidebar{background-color:#2c3e50;box-shadow:2px 0 5px #0000001a;color:#fff;display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding:20px;position:relative;transition:transform .3s ease;width:250px}.logo{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.logo h2{color:#ecf0f1;font-size:24px;margin:0}.user-info{align-items:center;background-color:#ffffff1a;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:15px}.user-avatar{font-size:20px;font-weight:600;height:45px;width:45px}.user-details{display:flex;flex-direction:column;gap:2px;overflow:hidden}.user-name{color:#fff;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:#bdc3c7;font-size:12px;text-transform:capitalize}.close-btn{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:none;font-size:24px;height:30px;padding:0;transition:background-color .3s;width:30px}.close-btn:hover{background-color:#ffffff1a}.nav-menu{list-style:none;margin:0;padding:0}.nav-menu li{margin-bottom:10px}.nav-menu a{border-radius:5px;color:#ecf0f1;display:block;padding:12px 15px;text-decoration:none;transition:background-color .3s}.nav-menu a:hover{background-color:#34495e}.nav-menu a.active{background-color:#3498db}.main-content{flex:1 1;overflow-y:auto;padding:30px}.sidebar-footer{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:20px}.logout-btn{align-items:center;background-color:initial;border:1px solid #fff3;border-radius:5px;color:#ecf0f1;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 15px;text-align:left;transition:all .3s;width:100%}.logout-btn:hover{background-color:#e74c3c;border-color:#e74c3c;color:#fff}@media (max-width:768px){.mobile-menu-btn{display:flex}.sidebar-overlay{display:block}.sidebar{height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);width:280px;z-index:1000}.sidebar.sidebar-open{transform:translateX(0)}.close-btn{display:block}.main-content{padding:60px 20px 20px;width:100%}.logo h2{font-size:20px}.nav-menu a{font-size:16px;padding:15px}}@media (min-width:769px) and (max-width:1024px){.sidebar{width:220px}.main-content{padding:25px}.logo h2{font-size:22px}}@media (max-width:480px){.sidebar{max-width:320px;width:100%}.main-content{padding:50px 15px 15px}.mobile-menu-btn{height:35px;left:10px;top:10px;width:35px}.hamburger{height:2px;width:20px}}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.loading-content{text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;margin:0 auto 20px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-content p{color:#fff;font-size:18px;font-weight:500;margin:0}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-container{animation:slideUp .4s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:420px;padding:40px;width:100%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#2c3e50;font-size:32px;font-weight:700;margin:0 0 10px}.login-header p{color:#7f8c8d;font-size:16px;margin:0}.error-message{align-items:center;animation:shake .5s;border-radius:6px;display:flex;gap:10px;padding:12px 15px}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}.login-form{margin-bottom:20px}.form-group label{font-size:14px}.form-group input{border:2px solid #e0e0e0;border-radius:6px;box-sizing:border-box;font-size:16px;padding:12px 15px;transition:border-color .3s,box-shadow .3s;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.btn-login{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:transform .2s,box-shadow .2s;width:100%}.btn-login:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.btn-login:active:not(:disabled){transform:translateY(0)}.btn-login:disabled{cursor:not-allowed;opacity:.7;transform:none}.login-footer{border-top:1px solid #e0e0e0;padding-top:20px;text-align:center}.help-text{color:#7f8c8d;font-size:13px;line-height:1.5;margin:8px 0}.help-text strong{background-color:#f8f9fa;border-radius:3px;color:#2c3e50;font-weight:600;padding:2px 6px}@media (max-width:480px){.login-container{padding:30px 20px}.login-header h1{font-size:28px}.login-header p{font-size:14px}.form-group input{padding:10px 12px}.btn-login{padding:12px}}@media (prefers-color-scheme:dark){.login-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}}.dashboard{max-width:1200px}.dashboard h1{color:#2c3e50;margin-bottom:30px}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:40px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:25px}.stat-card h3{color:#7f8c8d;font-size:14px;margin:0 0 10px;text-transform:uppercase}.stat-value{color:#2c3e50;font-size:32px;font-weight:700;margin:0}.stat-value.positive{color:#27ae60}.stat-value.negative{color:#e74c3c}.stat-label{color:#7f8c8d;display:block;font-size:12px;margin-top:5px;text-transform:uppercase}.stat-card.net-balance{border-left:4px solid #3498db}.stat-card.earnings{border-left:4px solid #27ae60}.stat-card.expenses{border-left:4px solid #e74c3c}.stats-grid.secondary{margin-top:20px}.dashboard-sections{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:30px}.section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:25px}.section h2{color:#2c3e50;font-size:20px;margin-top:0}.category-list,.expense-list{list-style:none;margin:20px 0;padding:0}.expense-item{align-items:center;border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;padding:15px 0}.expense-item:last-child{border-bottom:none}.expense-info{flex-direction:column;gap:5px}.expense-desc{color:#2c3e50;font-weight:500}.expense-category{color:#7f8c8d;font-size:12px}.expense-meta{align-items:flex-end;display:flex;flex-direction:column;gap:5px}.transaction-icon{font-size:24px;margin-right:10px}.expense-info{align-items:center;display:flex;gap:10px}.expense-item.earning{background-color:#f0fff4}.expense-item.earning,.expense-item.expense{border-radius:5px;margin-bottom:5px;padding:15px 10px}.expense-item.expense{background-color:#fff5f5}.expense-amount{font-size:16px;font-weight:700}.expense-amount.expense{color:#e74c3c}.category-amount.positive,.expense-amount.earning{color:#27ae60}.category-amount.negative{color:#e74c3c}.expense-date{color:#7f8c8d;font-size:12px}.category-item{border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;padding:12px 0}.category-item:last-child{border-bottom:none}.category-name{color:#2c3e50}.category-amount{color:#3498db;font-weight:700}.view-all-link{color:#3498db;display:inline-block;font-weight:500;margin-top:15px;text-decoration:none}.view-all-link:hover{text-decoration:underline}.quick-actions{display:flex;gap:15px}.btn{display:inline-block;text-decoration:none}.btn-primary:hover{background-color:#2980b9}.error,.loading{background:#fff;border-radius:8px;margin:20px 0;padding:20px;text-align:center}.expense-list-page{max-width:1400px}.filters{align-items:flex-end;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px;padding:20px}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{color:#7f8c8d;font-size:14px;font-weight:500}.filter-group input,.filter-group select{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px;padding:8px 12px}.expense-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;width:100%}.expense-table thead{background-color:#34495e;color:#fff}.expense-table th{font-weight:600;padding:15px;text-align:left}.expense-table td{border-bottom:1px solid #ecf0f1;padding:15px}.expense-table tbody tr:hover{background-color:#f8f9fa}.expense-table tbody tr:last-child td{border-bottom:none}.category-badge{background-color:#3498db;border-radius:12px;color:#fff;display:inline-block;font-size:12px;padding:4px 12px}.transaction-badge{display:inline-block;font-size:20px}.earning-row{background-color:#f0fff4}.expense-row{background-color:#fff5f5}.amount{font-size:16px;font-weight:700}.amount.expense{color:#e74c3c}.amount.earning{color:#27ae60}.actions{display:flex;gap:10px}.btn-edit{background-color:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px;text-decoration:none}.btn-edit:hover{background-color:#2980b9}.btn-delete{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px}.btn-delete:hover{background-color:#c0392b}.no-data{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;color:#7f8c8d;padding:40px;text-align:center}.expense-form-page{max-width:800px}.expense-form-page h1{color:#2c3e50;margin-bottom:30px}.expense-form{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:30px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:5px;box-sizing:border-box;font-size:16px;padding:10px 12px;width:100%}.transaction-type-select{background-color:#f8f9fa;cursor:pointer;font-size:18px;font-weight:500;padding:12px 15px}.transaction-type-select:focus{background-color:#fff}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.reports-page{max-width:1200px}.reports-page h1{color:#2c3e50;margin-bottom:30px}.report-controls{align-items:flex-end;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:20px;margin-bottom:30px;padding:20px}.control-group{display:flex;flex-direction:column;gap:5px}.control-group label{color:#7f8c8d;font-size:14px;font-weight:500}.control-group select{border:1px solid #ddd;border-radius:5px;font-size:16px;min-width:150px;padding:10px 15px}.report-content{display:flex;flex-direction:column;gap:30px}.report-summary h2{color:#2c3e50;margin-bottom:20px}.summary-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.summary-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:25px}.summary-card h3{color:#7f8c8d;font-size:14px;margin:0 0 10px;text-transform:uppercase}.summary-value{color:#2c3e50;font-size:32px;font-weight:700;margin:0}.summary-value.positive{color:#27ae60}.summary-value.negative{color:#e74c3c}.summary-label{color:#7f8c8d;display:block;font-size:12px;margin-top:5px;text-transform:uppercase}.summary-card.net-balance{border-left:4px solid #3498db}.summary-card.earnings{border-left:4px solid #27ae60}.summary-card.expenses{border-left:4px solid #e74c3c}.breakdown-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.report-breakdown{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:25px}.report-breakdown h3{color:#2c3e50;font-size:20px;margin-bottom:20px;margin-top:0}.breakdown-table{border-collapse:collapse;width:100%}.breakdown-table th{background-color:#ecf0f1;color:#2c3e50;font-weight:600;padding:12px;text-align:left}.breakdown-table td{border-bottom:1px solid #ecf0f1;padding:12px}.breakdown-table tr:last-child td{border-bottom:none}.breakdown-table tr:hover{background-color:#f8f9fa}.breakdown-table td.positive{color:#27ae60;font-weight:600}.breakdown-table td.negative{color:#e74c3c;font-weight:600}.btn{padding:10px 20px}.action-buttons{border-top:1px solid #ecf0f1;display:flex;gap:10px;padding-top:15px}.icon-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;position:relative;transition:all .2s ease;width:36px}.icon-btn svg{fill:#fff;height:18px;width:18px}.icon-btn:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.icon-btn:active{transform:translateY(0)}.icon-btn.btn-edit{background-color:#3498db}.icon-btn.btn-edit:hover{background-color:#2980b9}.icon-btn.btn-toggle{background-color:#f39c12}.icon-btn.btn-toggle:hover{background-color:#e67e22}.icon-btn.btn-toggle.activate{background-color:#27ae60}.icon-btn.btn-toggle.activate:hover{background-color:#229954}.icon-btn.btn-delete{background-color:#e74c3c}.icon-btn.btn-delete:hover{background-color:#c0392b}.icon-btn:after{background-color:#2c3e50;border-radius:4px;bottom:100%;color:#fff;content:attr(data-tooltip);font-size:12px;left:50%;opacity:0;padding:6px 10px;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(-5px);transition:opacity .2s ease,transform .2s ease;white-space:nowrap;z-index:1000}.icon-btn:hover:after{opacity:1;transform:translateX(-50%) translateY(-8px)}.icon-btn:before{border:5px solid #0000;border-top-color:#2c3e50;bottom:100%;content:"";left:50%;opacity:0;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(5px);transition:opacity .2s ease,transform .2s ease;z-index:1000}.icon-btn:hover:before{opacity:1;transform:translateX(-50%) translateY(2px)}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.page-header h1{color:#2c3e50;margin:0}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-group,.form-row{margin-bottom:20px}.form-group label{color:#2c3e50;display:block;font-weight:500;margin-bottom:8px}.form-group input[type=email],.form-group input[type=text],.form-group select{border:1px solid #ddd;border-radius:5px;box-sizing:border-box;font-size:16px;padding:10px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3498db;outline:none}.form-actions{display:flex;gap:15px;margin-top:30px}.btn{border:none;border-radius:5px;cursor:pointer;font-size:16px;padding:12px 24px;transition:background-color .3s}.btn-primary{background-color:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2980b9}.btn-primary:disabled{background-color:#95a5a6;cursor:not-allowed}.btn-secondary{background-color:#95a5a6;color:#fff}.btn-secondary:hover{background-color:#7f8c8d}.card-grid{grid-gap:20px;display:grid;gap:20px}.card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.error-message{background-color:#ffe6e6;border-left:4px solid #e74c3c;border-radius:5px;color:#e74c3c;margin-bottom:20px;padding:12px 20px}@media (max-width:768px){.form-row{grid-template-columns:1fr}.page-header{align-items:flex-start;flex-direction:column;gap:15px}.action-buttons{justify-content:flex-start}}.categories-page{max-width:1200px}.category-form-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:30px}.category-form-container h2{color:#2c3e50;margin-bottom:20px;margin-top:0}.category-form{max-width:600px}.color-input-group{align-items:center;display:flex;gap:10px}.color-input-group input[type=color]{border:1px solid #ddd;border-radius:5px;cursor:pointer;height:40px;width:60px}.color-input-group .color-text{flex:1 1}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.categories-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.category-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.category-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.category-card.inactive{opacity:.6}.category-header{justify-content:space-between;margin-bottom:15px}.category-header,.category-info{align-items:flex-start;display:flex}.category-info{gap:15px}.category-color{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:50px;justify-content:center;width:50px}.category-icon{font-size:24px}.category-card h3{color:#2c3e50;font-size:18px;margin:0 0 5px}.category-desc{color:#7f8c8d;font-size:14px;margin:0}.category-status{align-items:center;display:flex}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.no-categories{background:#fff;border-radius:8px;color:#7f8c8d;grid-column:1/-1;padding:40px;text-align:center}@media (max-width:768px){.categories-grid{grid-template-columns:1fr}}.users-page{max-width:1200px}.user-form-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:30px}.user-form-container h2{color:#2c3e50;margin-bottom:20px;margin-top:0}.user-form{max-width:600px}.users-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.user-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .2s,box-shadow .2s}.user-card:hover{box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.user-header{align-items:flex-start;display:flex;gap:15px;margin-bottom:20px}.user-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:24px;font-weight:700;height:60px;justify-content:center;width:60px}.user-info{flex:1 1}.user-card h3{color:#2c3e50;font-size:18px;margin:0 0 8px}.user-email{color:#7f8c8d;font-size:14px;margin:0 0 10px}.role-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.role-badge.admin{background-color:#fff3cd;color:#856404}.role-badge.member{background-color:#d1ecf1;color:#0c5460}.no-users{background:#fff;border-radius:8px;color:#7f8c8d;grid-column:1/-1;padding:40px;text-align:center}@media (max-width:768px){.users-grid{grid-template-columns:1fr}}*{box-sizing:border-box;margin:0;padding:0}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}.App{min-height:100vh}.loading{align-items:center;color:#7f8c8d;display:flex;font-size:18px;justify-content:center;padding:40px}.error{background-color:#ffe6e6;border-left:4px solid #e74c3c;border-radius:5px;color:#e74c3c;margin:20px 0;padding:15px 20px}
/*# sourceMappingURL=main.a8e0a52c.css.map*/