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