*{margin:0;padding:0;box-sizing:border-box}:root{--primary-color: #dbf40c;--primary-dark: #c4db0a;--primary-light: #e5f73d;--accent-color: #dbf40c;--success-color: #4caf50;--warning-color: #ff9800;--error-color: #f44336;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-light: #808080;--text-on-primary: #000000;--bg-primary: #000000;--bg-secondary: #000000;--bg-card: #262626;--border-color: #404040;--shadow: 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .4);--border-radius: 12px;--border-radius-sm: 8px;--navbar-height: 60px;--header-height: 56px}html,body{height:100%;font-family:Roboto,sans-serif;font-size:16px;line-height:1.5;color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:480px;margin:0 auto;padding:0 16px}.page-content{padding-top:var(--header-height);padding-bottom:calc(var(--navbar-height) + 16px);min-height:100vh}.card{background:var(--bg-card);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:16px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:14px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s ease;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary-color);color:var(--text-on-primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:transparent;color:var(--primary-color);border:1px solid var(--primary-color)}.btn-secondary:hover:not(:disabled){background:#dbf40c1a}.btn-success{background:var(--success-color);color:#fff}.btn-success:hover:not(:disabled){background:#3d8b40}.btn-danger{background:var(--error-color);color:#fff}.btn-danger:hover:not(:disabled){background:#ea1c0d}.btn-block{width:100%}.btn-sm{padding:8px 16px;font-size:12px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--text-secondary)}.form-control{width:100%;padding:14px 16px;font-size:16px;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-card);color:var(--text-primary);transition:border-color .2s ease}.form-control:focus{outline:none;border-color:var(--primary-color)}.form-control::placeholder{color:var(--text-light)}.form-control.error{border-color:var(--error-color)}.form-control:-webkit-autofill,.form-control:-webkit-autofill:hover,.form-control:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0px 1000px var(--bg-card) inset;transition:background-color 5000s ease-in-out 0s}.form-error{color:var(--error-color);font-size:12px;margin-top:4px}.text-center{text-align:center}.text-muted{color:var(--text-secondary)}.text-success{color:var(--success-color)}.text-error{color:var(--error-color)}.text-sm{font-size:14px}.text-lg{font-size:18px}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.badge{display:inline-block;padding:4px 8px;font-size:12px;font-weight:500;border-radius:4px}.badge-success{background:#4caf5026;color:var(--success-color)}.badge-warning{background:#ff980026;color:var(--warning-color)}.badge-error{background:#f4433626;color:var(--error-color)}.badge-info{background:#dbf40c26;color:var(--primary-color)}.spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}.tabs{display:flex;background:var(--bg-card);border-radius:var(--border-radius-sm);padding:4px;margin-bottom:16px}.tabs .tab{flex:1;padding:10px;text-align:center;font-size:14px;font-weight:500;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--border-radius-sm);cursor:pointer;transition:all .2s ease}.tabs .tab.active{background:var(--primary-color);color:var(--text-on-primary)}.month-header{font-size:14px;font-weight:500;color:var(--text-secondary);padding:8px 0;margin-top:8px}.empty-state{text-align:center;padding:40px 20px;color:var(--text-secondary)}.empty-state .empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state .empty-title{font-size:18px;font-weight:500;margin-bottom:8px}.empty-state .empty-text{font-size:14px}
